diff options
24 files changed, 4116 insertions, 215 deletions
diff --git a/adapters/mso-network-adapter/src/main/java/org/openecomp/mso/adapters/network/HealthCheckHandler.java b/adapters/mso-network-adapter/src/main/java/org/openecomp/mso/adapters/network/HealthCheckHandler.java index 85bca6fdf9..5314de0e35 100644 --- a/adapters/mso-network-adapter/src/main/java/org/openecomp/mso/adapters/network/HealthCheckHandler.java +++ b/adapters/mso-network-adapter/src/main/java/org/openecomp/mso/adapters/network/HealthCheckHandler.java @@ -48,7 +48,7 @@ import org.openecomp.mso.utils.UUIDChecker; MsoLogger.setServiceName ("Healthcheck"); UUIDChecker.verifyOldUUID(requestId, msoLogger); HealthCheckUtils healthCheck = new HealthCheckUtils (); - if (!healthCheck.siteStatusCheck(msoLogger, startTime)) { + if (!healthCheck.siteStatusCheck(msoLogger)) { return HealthCheckUtils.HEALTH_CHECK_NOK_RESPONSE; } diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/HealthCheckHandler.java b/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/HealthCheckHandler.java index 0c4c1c4c09..2a74d797da 100644 --- a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/HealthCheckHandler.java +++ b/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/HealthCheckHandler.java @@ -46,7 +46,7 @@ import org.openecomp.mso.utils.UUIDChecker; MsoLogger.setServiceName ("Healthcheck"); UUIDChecker.verifyOldUUID(requestId, msoLogger); HealthCheckUtils healthCheck = new HealthCheckUtils (); - if (!healthCheck.siteStatusCheck(msoLogger, startTime)) { + if (!healthCheck.siteStatusCheck(msoLogger)) { return HealthCheckUtils.HEALTH_CHECK_NOK_RESPONSE; } diff --git a/adapters/mso-sdnc-adapter/src/main/java/org/openecomp/mso/adapters/sdnc/impl/SDNCAdapterRestImpl.java b/adapters/mso-sdnc-adapter/src/main/java/org/openecomp/mso/adapters/sdnc/impl/SDNCAdapterRestImpl.java index c69aee52da..f6a3e36a71 100644 --- a/adapters/mso-sdnc-adapter/src/main/java/org/openecomp/mso/adapters/sdnc/impl/SDNCAdapterRestImpl.java +++ b/adapters/mso-sdnc-adapter/src/main/java/org/openecomp/mso/adapters/sdnc/impl/SDNCAdapterRestImpl.java @@ -131,7 +131,7 @@ public class SDNCAdapterRestImpl { MsoLogger.setServiceName ("Healthcheck"); UUIDChecker.verifyOldUUID(requestId, msoLogger); HealthCheckUtils healthCheck = new HealthCheckUtils (); - if (!healthCheck.siteStatusCheck(msoLogger, startTime)) { + if (!healthCheck.siteStatusCheck(msoLogger)) { return HealthCheckUtils.HEALTH_CHECK_NOK_RESPONSE; } @@ -152,7 +152,7 @@ public class SDNCAdapterRestImpl { // Generate a Request Id String requestId = UUIDChecker.generateUUID(msoLogger); HealthCheckUtils healthCheck = new HealthCheckUtils (); - if (!healthCheck.siteStatusCheck (msoLogger, startTime)) { + if (!healthCheck.siteStatusCheck (msoLogger)) { return HealthCheckUtils.HEALTH_CHECK_NOK_RESPONSE; } @@ -175,7 +175,7 @@ public class SDNCAdapterRestImpl { // Generate a Request Id String requestId = UUIDChecker.generateUUID(msoLogger); HealthCheckUtils healthCheck = new HealthCheckUtils (); - if (!healthCheck.siteStatusCheck (msoLogger, startTime)) { + if (!healthCheck.siteStatusCheck (msoLogger)) { return HealthCheckUtils.HEALTH_CHECK_NOK_RESPONSE; } diff --git a/adapters/mso-sdnc-adapter/src/main/java/org/openecomp/mso/adapters/sdnc/sdncrest/SDNCAdapterRest.java b/adapters/mso-sdnc-adapter/src/main/java/org/openecomp/mso/adapters/sdnc/sdncrest/SDNCAdapterRest.java index 0c787cac83..f7a37fc202 100644 --- a/adapters/mso-sdnc-adapter/src/main/java/org/openecomp/mso/adapters/sdnc/sdncrest/SDNCAdapterRest.java +++ b/adapters/mso-sdnc-adapter/src/main/java/org/openecomp/mso/adapters/sdnc/sdncrest/SDNCAdapterRest.java @@ -58,7 +58,7 @@ public class SDNCAdapterRest { UUIDChecker.verifyOldUUID(requestId, LOGGER); HealthCheckUtils healthCheck = new HealthCheckUtils(); - if (!healthCheck.siteStatusCheck(LOGGER, startTime)) { + if (!healthCheck.siteStatusCheck(LOGGER)) { return HealthCheckUtils.HEALTH_CHECK_NOK_RESPONSE; } diff --git a/adapters/mso-tenant-adapter/src/main/java/org/openecomp/mso/adapters/tenant/HealthCheckHandler.java b/adapters/mso-tenant-adapter/src/main/java/org/openecomp/mso/adapters/tenant/HealthCheckHandler.java index ce2113ec69..1a4bec4798 100644 --- a/adapters/mso-tenant-adapter/src/main/java/org/openecomp/mso/adapters/tenant/HealthCheckHandler.java +++ b/adapters/mso-tenant-adapter/src/main/java/org/openecomp/mso/adapters/tenant/HealthCheckHandler.java @@ -45,7 +45,7 @@ import org.openecomp.mso.utils.UUIDChecker; MsoLogger.setServiceName ("Healthcheck"); UUIDChecker.verifyOldUUID(requestId, msoLogger); HealthCheckUtils healthCheck = new HealthCheckUtils (); - if (!healthCheck.siteStatusCheck(msoLogger, startTime)) { + if (!healthCheck.siteStatusCheck(msoLogger)) { return HealthCheckUtils.HEALTH_CHECK_NOK_RESPONSE; } diff --git a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/HealthCheckHandler.java b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/HealthCheckHandler.java index 13e963fbb3..8e163d4d25 100644 --- a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/HealthCheckHandler.java +++ b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/HealthCheckHandler.java @@ -56,7 +56,7 @@ public class HealthCheckHandler { MsoLogger.setServiceName("Healthcheck"); UUIDChecker.verifyOldUUID(requestId, msoLogger); HealthCheckUtils healthCheck = new HealthCheckUtils(); - if(!healthCheck.siteStatusCheck(msoLogger, startTime)) { + if(!healthCheck.siteStatusCheck(msoLogger)) { return HealthCheckUtils.HEALTH_CHECK_NOK_RESPONSE; } diff --git a/adapters/mso-vnf-adapter/src/main/java/org/openecomp/mso/adapters/vnf/HealthCheckHandler.java b/adapters/mso-vnf-adapter/src/main/java/org/openecomp/mso/adapters/vnf/HealthCheckHandler.java index 3b619d96d7..840bd025fb 100644 --- a/adapters/mso-vnf-adapter/src/main/java/org/openecomp/mso/adapters/vnf/HealthCheckHandler.java +++ b/adapters/mso-vnf-adapter/src/main/java/org/openecomp/mso/adapters/vnf/HealthCheckHandler.java @@ -49,7 +49,7 @@ public class HealthCheckHandler { MsoLogger.setServiceName ("Healthcheck"); UUIDChecker.verifyOldUUID(requestId, msoLogger); HealthCheckUtils healthCheck = new HealthCheckUtils (); - if (!healthCheck.siteStatusCheck(msoLogger, startTime)) { + if (!healthCheck.siteStatusCheck(msoLogger)) { return HealthCheckUtils.HEALTH_CHECK_NOK_RESPONSE; } diff --git a/adapters/mso-workflow-message-adapter/src/main/java/org/openecomp/mso/adapters/workflowmessage/WMAdapterRest.java b/adapters/mso-workflow-message-adapter/src/main/java/org/openecomp/mso/adapters/workflowmessage/WMAdapterRest.java index dc94a78733..4be6b93d5c 100644 --- a/adapters/mso-workflow-message-adapter/src/main/java/org/openecomp/mso/adapters/workflowmessage/WMAdapterRest.java +++ b/adapters/mso-workflow-message-adapter/src/main/java/org/openecomp/mso/adapters/workflowmessage/WMAdapterRest.java @@ -30,8 +30,6 @@ import javax.ws.rs.HeaderParam; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @@ -62,7 +60,7 @@ public class WMAdapterRest { UUIDChecker.verifyOldUUID(requestId, LOGGER); HealthCheckUtils healthCheck = new HealthCheckUtils(); - if (!healthCheck.siteStatusCheck(LOGGER, startTime)) { + if (!healthCheck.siteStatusCheck(LOGGER)) { return HealthCheckUtils.HEALTH_CHECK_NOK_RESPONSE; } diff --git a/aria/aria-rest-server/build.py b/aria/aria-rest-server/build.py new file mode 100644 index 0000000000..cc36d2f855 --- /dev/null +++ b/aria/aria-rest-server/build.py @@ -0,0 +1,95 @@ +# +# ============LICENSE_START=================================================== +# Copyright (c) 2017 Cloudify.co. All rights reserved. +# =================================================================== +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy +# of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +# ============LICENSE_END==================================================== +# + +import subprocess +import os +import sys +import glob +import xml.etree.ElementTree as etree + +# create and enter venv +def create_venv( name): + if subprocess.call("virtualenv {}".format(name), shell = True): + raise Exception("virtualenv create failed") + ret = subprocess.call(". {}/bin/activate && python {} run". \ + format(name,__file__), shell = True) + sys.exit(ret) + +def init_venv(): + subprocess.call("pip install -U pip", shell = True) + subprocess.call("pip install -U setuptools", shell = True) + subprocess.call("pip install wheel", shell = True) + subprocess.call("pip install twine", shell = True) + + +if len(sys.argv) == 1: + create_venv ("mavenvenv") +else: + init_venv() + + if os.environ['MVN_PHASE'] == 'package': + wheelname = os.environ['WHEEL_NAME'] + inputdir = os.environ['INPUT_DIR'] + outputdir = os.environ['OUTPUT_DIR'] + savedir = os.getcwd() + os.chdir(inputdir) + + if subprocess.call( [ "python", + "setup.py", + "bdist_wheel", + "-d", + outputdir + ]): + sys.stderr("wheel create failed") + sys.exit(1) + f = glob.glob(outputdir+"/*.whl")[0] + os.rename(f , outputdir+"/"+ wheelname) + + elif os.environ['MVN_PHASE'] == 'deploy': + + it = etree.iterparse(os.environ['SETTINGS_FILE']) + for _, el in it: + el.tag = el.tag.split('}', 1)[1] # strip namespace + settings = it.root + + username = settings.find('.//server[id="{}"]/username'.format( + os.environ['PYPI_SERVERID'])).text + password = settings.find('.//server[id="{}"]/password'.format( + os.environ['PYPI_SERVERID'])).text + + try: + if subprocess.call( [ "twine", + "upload", + "--username", + username, + "--password", + password, + "--repository-url", + os.environ["PYPI_SERVER_BASEURL"], + os.environ["WHEEL_PATH"] + ] ): + sys.stderr.write("pypi upload failed") + sys.exit(1) + finally: + subprocess.call("rm -rf mavenvenv", shell = True) + + sys.exit(0) + else: + sys.stderr.write("Unrecognized phase '{}'\n".format( + os.environ('MVN_PHASE'))) + sys.exit(1) diff --git a/aria/aria-rest-server/pom.xml b/aria/aria-rest-server/pom.xml index 7af381c220..d7e4a49311 100644 --- a/aria/aria-rest-server/pom.xml +++ b/aria/aria-rest-server/pom.xml @@ -33,18 +33,13 @@ <version>1.1.0-SNAPSHOT</version> </parent> - <pluginRepositories> - <pluginRepository> - <id>jitpack.io</id> - <url>https://jitpack.io</url> - </pluginRepository> - </pluginRepositories> - <properties> - <python_version>2.7</python_version> + <python_version>2</python_version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <wheel.name>${project.artifactId}-${python_version}-py2-none-any.whl</wheel.name> + <wheel.name>${project.artifactId}-${project.version}-py${python_version}-none-any.whl</wheel.name> <python.sourceDirectory>${project.basedir}/src/main/python/aria-rest</python.sourceDirectory> + <onap.nexus.pypiserver.baseurl>http://192.168.33.1:8081/repository/pypi-internal/</onap.nexus.pypiserver.baseurl> + <onap.nexus.pypiserver.serverid>ecomp-snapshots</onap.nexus.pypiserver.serverid> </properties> <build> <plugins> @@ -67,48 +62,51 @@ <failIfNoMatch>false</failIfNoMatch> </configuration> </execution> - <execution> - <id>attach-artifacts</id> - <phase>package</phase> - <goals> - <goal>attach-artifact</goal> - </goals> - <configuration> - <artifacts> - <artifact> - <file>${project.build.directory}/maven-python/dist/${wheel.name}</file> - <type>whl</type> - </artifact> - </artifacts> - </configuration> - </execution> </executions> </plugin> <plugin> - <groupId>com.github.UltimateDogg</groupId> - <artifactId>maven-python-distribute-plugin</artifactId> - <version>0.2.0</version> - <configuration> - <packageVersion>${python_version}</packageVersion> - <sourceDirectory>${python.sourceDirectory}</sourceDirectory> - <distributionType>wheel</distributionType> - </configuration> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <version>1.6.0</version> <executions> <execution> - <id>package</id> - <phase>prepare-package</phase> - <goals> - <goal>package</goal> - </goals> - </execution> - <execution> - <id>process</id> - <phase>process-sources</phase> - <goals> - <goal>process-sources</goal> - </goals> + <id>package</id> + <phase>package</phase> + <goals><goal>exec</goal></goals> + <configuration> + <executable>python</executable> + <arguments> + <argument>${project.basedir}/build.py</argument> + </arguments> + <environmentVariables> + <MVN_PHASE>package</MVN_PHASE> + <WHEEL_NAME>${wheel.name}</WHEEL_NAME> + <INPUT_DIR>${project.basedir}/src/main/python/aria-rest</INPUT_DIR> + <OUTPUT_DIR>${project.build.directory}</OUTPUT_DIR> + </environmentVariables> + </configuration> </execution> - </executions> + <execution> + <id>deploy</id> + <phase>deploy</phase> + <goals><goal>exec</goal></goals> + <configuration> + <executable>python</executable> + <arguments> + <argument>${project.basedir}/build.py</argument> + </arguments> + <environmentVariables> + <MVN_PHASE>deploy</MVN_PHASE> + <PROJECT_VERSION>${project.version}</PROJECT_VERSION> + <DOCKERREGISTRY_SNAPSHOT>${onap.nexus.dockerregistry.snapshot}</DOCKERREGISTRY_SNAPSHOT> + <DOCKERREGISTRY_RELEASE>${onap.nexus.dockerregistry.release}</DOCKERREGISTRY_RELEASE> + <PYPI_SERVER_BASEURL>${onap.nexus.pypiserver.baseurl}</PYPI_SERVER_BASEURL> + <PYPI_SERVERID>${onap.nexus.pypiserver.serverid}</PYPI_SERVERID> + <WHEEL_PATH>${project.build.directory}/${wheel.name}</WHEEL_PATH> + </environmentVariables> + </configuration> + </execution> + </executions> </plugin> </plugins> </build> diff --git a/aria/aria-rest-server/src/main/python/aria-rest/aria_rest/rest.py b/aria/aria-rest-server/src/main/python/aria-rest/aria_rest/rest.py index 45fb4299d9..7b9223d1c9 100644 --- a/aria/aria-rest-server/src/main/python/aria-rest/aria_rest/rest.py +++ b/aria/aria-rest-server/src/main/python/aria-rest/aria_rest/rest.py @@ -116,7 +116,7 @@ def install_template(template_name, model_storage, resource_storage, elif rtype == "json": - body = request.json + body = request.json or {} # Check body if "service_template_path" in body: @@ -169,7 +169,7 @@ def validate_template(model_storage, resource_storage, plugin_manager, logger): """ Validates a TOSCA template """ - body = request.json + body = request.json or {} # Check body if "service_template_path" in body: @@ -385,7 +385,7 @@ def create_service(template_id, service_name, model_storage, resource_storage, """ Creates a service from the specified service template """ - body = request.json + body = request.json or {} inputs = {} if 'inputs' in body: inputs = body['inputs'] @@ -542,7 +542,7 @@ def start_execution( """ Start an execution for the specified service """ - body = request.json + body = request.json or {} executor = DryExecutor( ) if 'executor' in body and body['executor'] == 'dry' else None @@ -585,7 +585,7 @@ def resume_execution( """ Resume the specified execution """ - body = request.json + body = request.json or {} execution = model_storage.execution.get(execution_id) if execution.status != execution.status.CANCELLED: return "cancelled execution cannot be resumed", 400 @@ -619,7 +619,7 @@ def cancel_execution(execution_id, model_storage, logger): Cancel the specified execution """ logger.info("cancelling execution {}".format(execution_id)) - body = request.json + body = request.json or {} try: execution = model_storage.execution.get(execution_id) diff --git a/aria/aria-rest-server/src/main/python/aria-rest/setup.py b/aria/aria-rest-server/src/main/python/aria-rest/setup.py index 81beb0f9a7..84e9a19560 100644 --- a/aria/aria-rest-server/src/main/python/aria-rest/setup.py +++ b/aria/aria-rest-server/src/main/python/aria-rest/setup.py @@ -34,6 +34,7 @@ setup( license='LICENSE', description='Aria REST API for ONAP', install_requires=[ + 'distribute', 'Flask==0.12.2', 'flask-autodoc==0.1.2', 'apache-ariatosca==0.1.1' diff --git a/asdc-controller/src/main/java/org/openecomp/mso/asdc/healthcheck/HealthCheckHandler.java b/asdc-controller/src/main/java/org/openecomp/mso/asdc/healthcheck/HealthCheckHandler.java index 24e1153703..2162607bae 100644 --- a/asdc-controller/src/main/java/org/openecomp/mso/asdc/healthcheck/HealthCheckHandler.java +++ b/asdc-controller/src/main/java/org/openecomp/mso/asdc/healthcheck/HealthCheckHandler.java @@ -59,7 +59,7 @@ import org.openecomp.mso.utils.UUIDChecker; MsoLogger.setServiceName ("Healthcheck"); UUIDChecker.verifyOldUUID(requestId, msoLogger); HealthCheckUtils healthCheck = new HealthCheckUtils (); - if (!healthCheck.siteStatusCheck(msoLogger, startTime)) { + if (!healthCheck.siteStatusCheck(msoLogger)) { return HealthCheckUtils.HEALTH_CHECK_NOK_RESPONSE; } diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateE2EServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateE2EServiceInstance.groovy index 9404364910..d15be38042 100644 --- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateE2EServiceInstance.groovy +++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateE2EServiceInstance.groovy @@ -413,7 +413,11 @@ public class DoCreateE2EServiceInstance extends AbstractServiceTaskProcessor { String nsServiceDescription = jsonUtil.getJsonValue(incomingRequest, "service.description") execution.setVariable("nsServiceDescription", nsServiceDescription) utils.log("INFO", "Prepare VFC Request nsServiceDescription:" + nsServiceDescription, isDebugEnabled) - List<String> resourceList = jsonUtil.StringArrayToList(execution, resourcesStr) + List<String> resourceList = jsonUtil.StringArrayToList(execution, resourcesStr) + //reset the variables + execution.setVariable("resourceUUID", "") + execution.setVariable("resourceInvariantUUID", "") + execution.setVariable("resourceParameters", "") for(String resource : resourceList){ String resourceName = jsonUtil.getJsonValue(resource, "resourceName") if(StringUtils.containsIgnoreCase(resourceName, resourceType)){ diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCustomDeleteE2EServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCustomDeleteE2EServiceInstance.groovy index ffd8372913..ecc1488cbc 100644 --- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCustomDeleteE2EServiceInstance.groovy +++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCustomDeleteE2EServiceInstance.groovy @@ -406,7 +406,7 @@ public class DoCustomDeleteE2EServiceInstance extends AbstractServiceTaskProcess } } } - execution.setVariable("serviceRelationShip", jArray) + execution.setVariable("serviceRelationShip", jArray.toString()) } } }else{ diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoJavaProperties.java b/common/src/main/java/org/openecomp/mso/properties/MsoJavaProperties.java index 3675dd6178..f0ca191978 100644 --- a/common/src/main/java/org/openecomp/mso/properties/MsoJavaProperties.java +++ b/common/src/main/java/org/openecomp/mso/properties/MsoJavaProperties.java @@ -115,7 +115,6 @@ public class MsoJavaProperties extends AbstractMsoProperties { } finally { this.automaticRefreshInMinutes = this.getIntProperty(RELOAD_TIME_PROPERTY, DEFAULT_RELOAD_TIME_MIN); - // Always close the file try { if (reader != null) { reader.close(); @@ -155,27 +154,31 @@ public class MsoJavaProperties extends AbstractMsoProperties { return false; } MsoJavaProperties other = (MsoJavaProperties) obj; - if (!msoProperties.equals(other.msoProperties)) { - return false; - } - return true; + + return msoProperties.equals(other.msoProperties); } @Override public String toString() { - StringBuffer response = new StringBuffer(); - response.append("Config file " + propertiesFileName + "(Timer:" + automaticRefreshInMinutes + "mins):" - + System.getProperty("line.separator")); + StringBuilder response = new StringBuilder(); + response.append("Config file ") + .append(propertiesFileName) + .append("(Timer:") + .append(automaticRefreshInMinutes) + .append("mins):") + .append(System.lineSeparator()); + for (Object key : this.msoProperties.keySet()) { String propertyName = (String) key; response.append(propertyName); response.append("="); response.append(this.msoProperties.getProperty(propertyName)); - response.append(System.getProperty("line.separator")); + response.append(System.lineSeparator()); } - response.append(System.getProperty("line.separator")); - response.append(System.getProperty("line.separator")); + response.append(System.lineSeparator()); + response.append(System.lineSeparator()); + return response.toString(); } } diff --git a/docs/SO_R1_Interface.rst b/docs/SO_R1_Interface.rst index ddac76b2f4..10b894c457 100644 --- a/docs/SO_R1_Interface.rst +++ b/docs/SO_R1_Interface.rst @@ -7,21 +7,1672 @@ SO Amsterdam Interfaces .. image:: images/SO_R1_1.png
-Service Orchestrator in Amsterdam release uses interfaces from both the MSO seed code and as well as new interfaces between the new components of ONAP.
-The below documentation of the SO APIs and are reviewed in the architecture committee meeting on 22/08/2017.
+SO APIs
+============
+
+North Bound APIs
+----------------
+Create service instance
+++++++++++++++++++++++++
+
++--------------------+-------------------------------------+
+|Interface Definition|Description |
++====================+=====================================+
+|URI |{serverRoot}/serviceInstances/v2 |
++--------------------+-------------------------------------+
+|Operation Type |POST |
++--------------------+-------------------------------------+
+|Content-Type |application/json |
++--------------------+-------------------------------------+
-See :download:`SO_API_v0.1.2.pdf`
+Request Body:
-The interface between UUI and SO for the E2E VoLTE service:
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++================+=========+===========+==========================+===========================================+
+|requestDetails |M |1 |requestDetails Object |Content of requestDetails object. |
++----------------+---------+-----------+--------------------------+-------------------------------------------+
-See :download:`UUI-SO_API_Specification_v0.1.docx`
+RequestDetails Object
-The interface between Multi VIM and SO:
++-------------------+-------------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++===================+=========================+=================================================+
+|modelInfo |modelInfo Object |Content of modelInfo object. |
++-------------------+-------------------------+-------------------------------------------------+
+|subscriberInfo |subscriberInfo Object |Content of subscriberInfo object. |
++-------------------+-------------------------+-------------------------------------------------+
+|requestInfo |requestInfo Object |Content of requestInfo object. |
++-------------------+-------------------------+-------------------------------------------------+
+|requestParameters |requestParameters Object |Content of requestParameters object. |
++-------------------+-------------------------+-------------------------------------------------+
-See :download:`SO_MultiCloud.xlsx`
+ModelInfo Object
-SO APIs
-============
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|ModelType |String |Type of model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelInvariantId |String |The Model Invariant Id. |
++-------------------------+------------------+-------------------------------------------------+
+|ModelNameVersionId |String |The modelname Version Id |
++-------------------------+------------------+-------------------------------------------------+
+|ModelName |String |Name of the Model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelVersion |String |Version of the model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelCustomization Name |String |The Model Customization name |
++-------------------------+------------------+-------------------------------------------------+
+
+SubscriberInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|GlobalSubscriberId |String |Global customer Id (in A&AI) |
++-------------------------+------------------+-------------------------------------------------+
+|SubscriberName |String |Name of the Subscriber |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|InstanceName |String |The instance Name |
++-------------------------+------------------+-------------------------------------------------+
+|ProductFamilyId |String |The product family Id. |
++-------------------------+------------------+-------------------------------------------------+
+|Source |String |source of the request |
++-------------------------+------------------+-------------------------------------------------+
+|SuppressRollback |Boolean |SuppressRollback |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestParameters Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|SubscriptionServiceType |String |The service type of the Subscription |
++-------------------------+------------------+-------------------------------------------------+
+|UserParams |Array |The product family Id. |
++-------------------------+------------------+-------------------------------------------------+
+
+UserParams Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|name |String |Tag name of attribute |
++-------------------------+------------------+-------------------------------------------------+
+|value |String |Value of the tag |
++-------------------------+------------------+-------------------------------------------------+
+
+Delete service instance
+++++++++++++++++++++++++
+
++--------------------+---------------------------------------------------------+
+|Interface Definition|Description |
++====================+=========================================================+
+|URI |{serverRoot}/serviceInstances/v2/{serviceInstanceId} |
++--------------------+---------------------------------------------------------+
+|Operation Type |DELETE |
++--------------------+---------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+---------------------------------------------------------+
+
+Request Body:
+
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++================+=========+===========+==========================+===========================================+
+|requestDetails |M |1 |requestDetails Object |Content of requestDetails object. |
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+
+RequestDetails Object
+
++-------------------+-------------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++===================+=========================+=================================================+
+|modelInfo |modelInfo Object |Content of modelInfo object. |
++-------------------+-------------------------+-------------------------------------------------+
+|requestInfo |requestInfo Object |Content of requestInfo object. |
++-------------------+-------------------------+-------------------------------------------------+
+
+ModelInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|ModelType |String |Type of model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelInvariantId |String |The Model Invariant Id. |
++-------------------------+------------------+-------------------------------------------------+
+|ModelName |String |Name of the Model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelVersion |String |Version of the model |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|Source |String |source of the request |
++-------------------------+------------------+-------------------------------------------------+
+
+Create Volume Group
+++++++++++++++++++++++++
+
++--------------------+-------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+===========================================================================================+
+|URI |{serverRoot}/serviceInstances/v2/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups |
++--------------------+-------------------------------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+-------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-------------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++================+=========+===========+==========================+===========================================+
+|requestDetails |M |1 |requestDetails Object |Content of requestDetails object. |
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+
+RequestDetails Object
+
++---------------------+-------------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=====================+=========================+=================================================+
+|modelInfo |modelInfo Object |Content of modelInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+|cloudConfiguration |cloudConfiguration Object|Content of cloudConfiguration object. |
++---------------------+-------------------------+-------------------------------------------------+
+|requestInfo |requestInfo Object |Content of requestInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+|relatedInstanceList |List |Content of relatedInstanceList. |
++---------------------+-------------------------+-------------------------------------------------+
+
+ModelInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|ModelType |String |Type of model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelInvariantId |String |The Model Invariant Id. |
++-------------------------+------------------+-------------------------------------------------+
+|ModelNameVersionId |String |The modelname Version Id |
++-------------------------+------------------+-------------------------------------------------+
+|ModelName |String |Name of the Model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelVersion |String |Version of the model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelCustomization Name |String |The Model Customization name |
++-------------------------+------------------+-------------------------------------------------+
+
+CloudConfiguration Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|lcpCloudRegionId |String |CloudRegion Id (in A&AI) |
++-------------------------+------------------+-------------------------------------------------+
+|tenantId |String |Name of the Subscriber |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|InstanceName |String |The instance Name |
++-------------------------+------------------+-------------------------------------------------+
+|Source |String |source of the request |
++-------------------------+------------------+-------------------------------------------------+
+|SuppressRollback |Boolean |SuppressRollback |
++-------------------------+------------------+-------------------------------------------------+
+
+relatedInstance List
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|relatedInstance |Object |relatedInstance Object |
++-------------------------+------------------+-------------------------------------------------+
+
+relatedInstance List
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|instanceId |String |instanceId |
++-------------------------+------------------+-------------------------------------------------+
+|modelInfo |Object |Content of modelInfo object. |
++-------------------------+------------------+-------------------------------------------------+
+
+Delete Volume Group
+++++++++++++++++++++++++
+
++--------------------+---------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=====================================================================================================================+
+|URI |{serverRoot}/serviceInstances/v2/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups/{volume-groupinstance-id} |
++--------------------+---------------------------------------------------------------------------------------------------------------------+
+|Operation Type |DELETE |
++--------------------+---------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+---------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++================+=========+===========+==========================+===========================================+
+|requestDetails |M |1 |requestDetails Object |Content of requestDetails object. |
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+
+RequestDetails Object
+
++---------------------+-------------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=====================+=========================+=================================================+
+|modelInfo |modelInfo Object |Content of modelInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+|cloudConfiguration |cloudConfiguration Object|Content of cloudConfiguration object. |
++---------------------+-------------------------+-------------------------------------------------+
+|requestInfo |requestInfo Object |Content of requestInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+
+ModelInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|ModelType |String |Type of model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelName |String |Name of the Model |
++-------------------------+------------------+-------------------------------------------------+
+
+CloudConfiguration Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|lcpCloudRegionId |String |CloudRegion Id (in A&AI) |
++-------------------------+------------------+-------------------------------------------------+
+|tenantId |String |Name of the Subscriber |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|Source |String |source of the request |
++-------------------------+------------------+-------------------------------------------------+
+
+Create VF Module
++++++++++++++++++
+
++--------------------+----------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+========================================================================================+
+|URI |{serverRoot}/serviceInstances/v2/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules |
++--------------------+----------------------------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+----------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+----------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++================+=========+===========+==========================+===========================================+
+|requestDetails |M |1 |requestDetails Object |Content of requestDetails object. |
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+
+RequestDetails Object
+
++---------------------+-------------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=====================+=========================+=================================================+
+|modelInfo |modelInfo Object |Content of modelInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+|cloudConfiguration |cloudConfiguration Object|Content of cloudConfiguration object. |
++---------------------+-------------------------+-------------------------------------------------+
+|requestInfo |requestInfo Object |Content of requestInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+|relatedInstanceList |List |Content of relatedInstanceList. |
++---------------------+-------------------------+-------------------------------------------------+
+
+ModelInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|ModelType |String |Type of model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelInvariantId |String |The Model Invariant Id. |
++-------------------------+------------------+-------------------------------------------------+
+|ModelNameVersionId |String |The modelname Version Id |
++-------------------------+------------------+-------------------------------------------------+
+|ModelName |String |Name of the Model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelVersion |String |Version of the model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelCustomization Name |String |The Model Customization name |
++-------------------------+------------------+-------------------------------------------------+
+
+CloudConfiguration Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|lcpCloudRegionId |String |CloudRegion Id (in A&AI) |
++-------------------------+------------------+-------------------------------------------------+
+|tenantId |String |Name of the Subscriber |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|InstanceName |String |The instance Name |
++-------------------------+------------------+-------------------------------------------------+
+|Source |String |source of the request |
++-------------------------+------------------+-------------------------------------------------+
+|SuppressRollback |Boolean |SuppressRollback |
++-------------------------+------------------+-------------------------------------------------+
+
+relatedInstance List
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|relatedInstance |Object |relatedInstance Object |
++-------------------------+------------------+-------------------------------------------------+
+
+relatedInstance List
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|instanceId |String |instanceId |
++-------------------------+------------------+-------------------------------------------------+
+|modelInfo |Object |Content of modelInfo object. |
++-------------------------+------------------+-------------------------------------------------+
+|instanceName |String |Name of the instance |
++-------------------------+------------------+-------------------------------------------------+
+
+Delete Volume Group
+++++++++++++++++++++++++
+
++--------------------+--------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+==============================================================================================================+
+|URI |{serverRoot}/serviceInstances/v2/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleinstance-id} |
++--------------------+--------------------------------------------------------------------------------------------------------------+
+|Operation Type |DELETE |
++--------------------+--------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+--------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++================+=========+===========+==========================+===========================================+
+|requestDetails |M |1 |requestDetails Object |Content of requestDetails object. |
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+
+RequestDetails Object
+
++---------------------+-------------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=====================+=========================+=================================================+
+|modelInfo |modelInfo Object |Content of modelInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+|cloudConfiguration |cloudConfiguration Object|Content of cloudConfiguration object. |
++---------------------+-------------------------+-------------------------------------------------+
+|requestInfo |requestInfo Object |Content of requestInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+
+ModelInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|ModelType |String |Type of model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelInvariantId |String |The Model Invariant Id. |
++-------------------------+------------------+-------------------------------------------------+
+|ModelNameVersionId |String |The modelname Version Id |
++-------------------------+------------------+-------------------------------------------------+
+|ModelName |String |Name of the Model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelVersion |String |Version of the model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelCustomization Name |String |The Model Customization name |
++-------------------------+------------------+-------------------------------------------------+
+
+CloudConfiguration Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|lcpCloudRegionId |String |CloudRegion Id (in A&AI) |
++-------------------------+------------------+-------------------------------------------------+
+|tenantId |String |Name of the Subscriber |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|Source |String |source of the request |
++-------------------------+------------------+-------------------------------------------------+
+
+Create Network
++++++++++++++++
+
++--------------------+------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+==================================================================+
+|URI |{serverRoot}/serviceInstances/v2/{serviceInstanceId}/networks |
++--------------------+------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+------------------------------------------------------------------+
+
+Request Body:
+
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++================+=========+===========+==========================+===========================================+
+|requestDetails |M |1 |requestDetails Object |Content of requestDetails object. |
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+
+RequestDetails Object
+
++---------------------+-------------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=====================+=========================+=================================================+
+|modelInfo |modelInfo Object |Content of modelInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+|cloudConfiguration |cloudConfiguration Object|Content of cloudConfiguration object. |
++---------------------+-------------------------+-------------------------------------------------+
+|requestInfo |requestInfo Object |Content of requestInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+|relatedInstanceList |List |Content of relatedInstanceList. |
++---------------------+-------------------------+-------------------------------------------------+
+|requestParameters |requestParameters Object |Content of requestParameters object. |
++---------------------+-------------------------+-------------------------------------------------+
+
+ModelInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|ModelType |String |Type of model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelName |String |Name of the Model |
++-------------------------+------------------+-------------------------------------------------+
+
+CloudConfiguration Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|lcpCloudRegionId |String |CloudRegion Id (in A&AI) |
++-------------------------+------------------+-------------------------------------------------+
+|tenantId |String |Name of the Subscriber |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|InstanceName |String |The instance Name |
++-------------------------+------------------+-------------------------------------------------+
+|ProductFamilyId |String |The product family Id. |
++-------------------------+------------------+-------------------------------------------------+
+|Source |String |source of the request |
++-------------------------+------------------+-------------------------------------------------+
+|SuppressRollback |Boolean |SuppressRollback |
++-------------------------+------------------+-------------------------------------------------+
+
+relatedInstance List
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|relatedInstance |Object |relatedInstance Object |
++-------------------------+------------------+-------------------------------------------------+
+
+relatedInstance List
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|instanceId |String |instanceId |
++-------------------------+------------------+-------------------------------------------------+
+|modelInfo |Object |Content of modelInfo object. |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestParameters Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|UserParams |Array |The product family Id. |
++-------------------------+------------------+-------------------------------------------------+
+
+UserParams Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|name |String |Tag name of attribute |
++-------------------------+------------------+-------------------------------------------------+
+|value |String |Value of the tag |
++-------------------------+------------------+-------------------------------------------------+
+
+Delete Network
++++++++++++++++
+
++--------------------+--------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+======================================================================================+
+|URI |{serverRoot}/serviceInstances/v2/{serviceInstanceId}/networks/{networkInstanceId} |
++--------------------+--------------------------------------------------------------------------------------+
+|Operation Type |DELETE |
++--------------------+--------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+--------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++================+=========+===========+==========================+===========================================+
+|requestDetails |M |1 |requestDetails Object |Content of requestDetails object. |
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+
+RequestDetails Object
+
++---------------------+-------------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=====================+=========================+=================================================+
+|modelInfo |modelInfo Object |Content of modelInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+|cloudConfiguration |cloudConfiguration Object|Content of cloudConfiguration object. |
++---------------------+-------------------------+-------------------------------------------------+
+|requestInfo |requestInfo Object |Content of requestInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+
+ModelInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|ModelType |String |Type of model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelName |String |Name of the Model |
++-------------------------+------------------+-------------------------------------------------+
+
+CloudConfiguration Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|lcpCloudRegionId |String |CloudRegion Id (in A&AI) |
++-------------------------+------------------+-------------------------------------------------+
+|tenantId |String |Name of the Subscriber |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|Source |String |source of the request |
++-------------------------+------------------+-------------------------------------------------+
+
+Create VNF
++++++++++++++++
+
++--------------------+--------------------------------------------------------------+
+|Interface Definition|Description |
++====================+==============================================================+
+|URI |{serverRoot}/serviceInstances/v2/{serviceInstanceId}/vnfs |
++--------------------+--------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+--------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+--------------------------------------------------------------+
+
+Request Body:
+
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++================+=========+===========+==========================+===========================================+
+|requestDetails |M |1 |requestDetails Object |Content of requestDetails object. |
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+
+RequestDetails Object
+
++---------------------+-------------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=====================+=========================+=================================================+
+|modelInfo |modelInfo Object |Content of modelInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+|cloudConfiguration |cloudConfiguration Object|Content of cloudConfiguration object. |
++---------------------+-------------------------+-------------------------------------------------+
+|requestInfo |requestInfo Object |Content of requestInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+|relatedInstanceList |List |Content of relatedInstanceList. |
++---------------------+-------------------------+-------------------------------------------------+
+|requestParameters |requestParameters Object |Content of requestParameters object. |
++---------------------+-------------------------+-------------------------------------------------+
+
+ModelInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|ModelType |String |Type of model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelInvariantId |String |The Model Invariant Id. |
++-------------------------+------------------+-------------------------------------------------+
+|ModelNameVersionId |String |The modelname Version Id |
++-------------------------+------------------+-------------------------------------------------+
+|ModelName |String |Name of the Model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelVersion |String |Version of the model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelCustomization Name |String |The Model Customization name |
++-------------------------+------------------+-------------------------------------------------+
+
+CloudConfiguration Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|lcpCloudRegionId |String |CloudRegion Id (in A&AI) |
++-------------------------+------------------+-------------------------------------------------+
+|tenantId |String |Name of the Subscriber |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|InstanceName |String |The instance Name |
++-------------------------+------------------+-------------------------------------------------+
+|ProductFamilyId |String |The product family Id. |
++-------------------------+------------------+-------------------------------------------------+
+|Source |String |source of the request |
++-------------------------+------------------+-------------------------------------------------+
+|SuppressRollback |Boolean |SuppressRollback |
++-------------------------+------------------+-------------------------------------------------+
+
+relatedInstance List
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|relatedInstance |Object |relatedInstance Object |
++-------------------------+------------------+-------------------------------------------------+
+
+relatedInstance List
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|instanceId |String |instanceId |
++-------------------------+------------------+-------------------------------------------------+
+|modelInfo |Object |Content of modelInfo object. |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestParameters Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|UserParams |Array |The product family Id. |
++-------------------------+------------------+-------------------------------------------------+
+
+UserParams Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|name |String |Tag name of attribute |
++-------------------------+------------------+-------------------------------------------------+
+|value |String |Value of the tag |
++-------------------------+------------------+-------------------------------------------------+
+
+Delete VNF
++++++++++++++++
+
++--------------------+------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+==============================================================================+
+|URI |{serverRoot}/serviceInstances/v2/{serviceInstanceId}/vnfs/{vnfInstanceId} |
++--------------------+------------------------------------------------------------------------------+
+|Operation Type |DELETE |
++--------------------+------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++================+=========+===========+==========================+===========================================+
+|requestDetails |M |1 |requestDetails Object |Content of requestDetails object. |
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+
+RequestDetails Object
+
++---------------------+-------------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=====================+=========================+=================================================+
+|modelInfo |modelInfo Object |Content of modelInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+|cloudConfiguration |cloudConfiguration Object|Content of cloudConfiguration object. |
++---------------------+-------------------------+-------------------------------------------------+
+|requestInfo |requestInfo Object |Content of requestInfo object. |
++---------------------+-------------------------+-------------------------------------------------+
+|requestParameters |requestParameters Object |Content of requestParameters object. |
++---------------------+-------------------------+-------------------------------------------------+
+
+ModelInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|ModelType |String |Type of model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelName |String |Name of the Model |
++-------------------------+------------------+-------------------------------------------------+
+
+CloudConfiguration Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|lcpCloudRegionId |String |CloudRegion Id (in A&AI) |
++-------------------------+------------------+-------------------------------------------------+
+|tenantId |String |Name of the Subscriber |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|Source |String |source of the request |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestParameters Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|UserParams |Array |The product family Id. |
++-------------------------+------------------+-------------------------------------------------+
+
+UserParams Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|name |String |Tag name of attribute |
++-------------------------+------------------+-------------------------------------------------+
+|value |String |Value of the tag |
++-------------------------+------------------+-------------------------------------------------+
+
+GET Orchestration Request
+++++++++++++++++++++++++++
+
++--------------------+--------------------------------------------------------------+
+|Interface Definition|Description |
++====================+==============================================================+
+|URI |{serverRoot}/orchestrationRequests/v2/{request-id} |
++--------------------+--------------------------------------------------------------+
+|Operation Type |GET |
++--------------------+--------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+--------------------------------------------------------------+
+
+Response Body:
+
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++================+=========+===========+==========================+===========================================+
+|request |M |1 |request Object |Content of request object. |
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+
+Request Object
+
++-------------------+---------+-----------+--------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++===================+=========+===========+==========================+===========================================+
+|requestId |M |1 |String |Request Id |
++-------------------+---------+-----------+--------------------------+-------------------------------------------+
+|startTime |M |1 |request Object |Start time. |
++-------------------+---------+-----------+--------------------------+-------------------------------------------+
+|serviceInstanceId |M |1 |request Object |Service Instance id. |
++-------------------+---------+-----------+--------------------------+-------------------------------------------+
+|requestScope |M |1 |request Object |Scope of the request. |
++-------------------+---------+-----------+--------------------------+-------------------------------------------+
+|requestType |M |1 |request Object |Type of the request. |
++-------------------+---------+-----------+--------------------------+-------------------------------------------+
+|requestDetails |M |1 |requestDetails Object |Type of the request. |
++-------------------+---------+-----------+--------------------------+-------------------------------------------+
+|requestStatus |M |1 |requestStatus Object |Type of the request. |
++-------------------+---------+-----------+--------------------------+-------------------------------------------+
+
+RequestDetails Object
+
++-------------------+-------------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++===================+=========================+=================================================+
+|modelInfo |modelInfo Object |Content of modelInfo object. |
++-------------------+-------------------------+-------------------------------------------------+
+|subscriberInfo |subscriberInfo Object |Content of subscriberInfo object. |
++-------------------+-------------------------+-------------------------------------------------+
+|requestInfo |requestInfo Object |Content of requestInfo object. |
++-------------------+-------------------------+-------------------------------------------------+
+|requestParameters |requestParameters Object |Content of requestParameters object. |
++-------------------+-------------------------+-------------------------------------------------+
+
+ModelInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|ModelType |String |Type of model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelInvariantId |String |The Model Invariant Id. |
++-------------------------+------------------+-------------------------------------------------+
+|ModelNameVersionId |String |The modelname Version Id |
++-------------------------+------------------+-------------------------------------------------+
+|ModelName |String |Name of the Model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelVersion |String |Version of the model |
++-------------------------+------------------+-------------------------------------------------+
+
+SubscriberInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|GlobalSubscriberId |String |Global customer Id (in A&AI) |
++-------------------------+------------------+-------------------------------------------------+
+|SubscriberName |String |Name of the Subscriber |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|InstanceName |String |The instance Name |
++-------------------------+------------------+-------------------------------------------------+
+|Source |String |source of the request |
++-------------------------+------------------+-------------------------------------------------+
+|SuppressRollback |Boolean |SuppressRollback |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestParameters Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|SubscriptionServiceType |String |The service type of the Subscription |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestStatus Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|timestamp |String |Time |
++-------------------------+------------------+-------------------------------------------------+
+|requestState |String |state of the request |
++-------------------------+------------------+-------------------------------------------------+
+|statusMessage |String |statusMessage |
++-------------------------+------------------+-------------------------------------------------+
+|percentProgress |String |percentage of progress |
++-------------------------+------------------+-------------------------------------------------+
+
+GET Orchestration Requests
+++++++++++++++++++++++++++
+
++--------------------+--------------------------------------------------------------+
+|Interface Definition|Description |
++====================+==============================================================+
+|URI |{serverRoot}/orchestrationRequests/v2 |
++--------------------+--------------------------------------------------------------+
+|Operation Type |GET |
++--------------------+--------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+--------------------------------------------------------------+
+
+Response Body:
+
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++================+=========+===========+==========================+===========================================+
+|requestList |M |1 |Array |Content of request List. |
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+
+RequestList :
+
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++================+=========+===========+==========================+===========================================+
+|request |M |1 |request Object |Content of request object. |
++----------------+---------+-----------+--------------------------+-------------------------------------------+
+
+Request Object
+
++-------------------+---------+-----------+--------------------------+-------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++===================+=========+===========+==========================+===========================================+
+|requestId |M |1 |String |Request Id |
++-------------------+---------+-----------+--------------------------+-------------------------------------------+
+|startTime |M |1 |request Object |Start time. |
++-------------------+---------+-----------+--------------------------+-------------------------------------------+
+|serviceInstanceId |M |1 |request Object |Service Instance id. |
++-------------------+---------+-----------+--------------------------+-------------------------------------------+
+|requestScope |M |1 |request Object |Scope of the request. |
++-------------------+---------+-----------+--------------------------+-------------------------------------------+
+|requestType |M |1 |request Object |Type of the request. |
++-------------------+---------+-----------+--------------------------+-------------------------------------------+
+|requestDetails |M |1 |requestDetails Object |Type of the request. |
++-------------------+---------+-----------+--------------------------+-------------------------------------------+
+|requestStatus |M |1 |requestStatus Object |Type of the request. |
++-------------------+---------+-----------+--------------------------+-------------------------------------------+
+
+RequestDetails Object
+
++-------------------+-------------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++===================+=========================+=================================================+
+|modelInfo |modelInfo Object |Content of modelInfo object. |
++-------------------+-------------------------+-------------------------------------------------+
+|subscriberInfo |subscriberInfo Object |Content of subscriberInfo object. |
++-------------------+-------------------------+-------------------------------------------------+
+|requestInfo |requestInfo Object |Content of requestInfo object. |
++-------------------+-------------------------+-------------------------------------------------+
+|requestParameters |requestParameters Object |Content of requestParameters object. |
++-------------------+-------------------------+-------------------------------------------------+
+
+ModelInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|ModelType |String |Type of model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelInvariantId |String |The Model Invariant Id. |
++-------------------------+------------------+-------------------------------------------------+
+|ModelNameVersionId |String |The modelname Version Id |
++-------------------------+------------------+-------------------------------------------------+
+|ModelName |String |Name of the Model |
++-------------------------+------------------+-------------------------------------------------+
+|ModelVersion |String |Version of the model |
++-------------------------+------------------+-------------------------------------------------+
+
+SubscriberInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|GlobalSubscriberId |String |Global customer Id (in A&AI) |
++-------------------------+------------------+-------------------------------------------------+
+|SubscriberName |String |Name of the Subscriber |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestInfo Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|InstanceName |String |The instance Name |
++-------------------------+------------------+-------------------------------------------------+
+|Source |String |source of the request |
++-------------------------+------------------+-------------------------------------------------+
+|SuppressRollback |Boolean |SuppressRollback |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestParameters Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|SubscriptionServiceType |String |The service type of the Subscription |
++-------------------------+------------------+-------------------------------------------------+
+
+RequestStatus Object
+
++-------------------------+------------------+-------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+=================================================+
+|timestamp |String |Time |
++-------------------------+------------------+-------------------------------------------------+
+|requestState |String |state of the request |
++-------------------------+------------------+-------------------------------------------------+
+|statusMessage |String |statusMessage |
++-------------------------+------------------+-------------------------------------------------+
+|percentProgress |String |percentage of progress |
++-------------------------+------------------+-------------------------------------------------+
+
+SDC API
+--------
+
+Get List of Existing Catalog Assets
++++++++++++++++++++++++++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |sdc/v1/catalog/{assetType}|
++--------------------+--------------------------+
+|Operation Type |GET |
++--------------------+--------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|assetType |M |1 |String |The requested asset type.valid values are resources/services.|
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|service-type |M |1 |String |Service Type |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|service-instance-id|M |1 |String |Service Instance ID |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|X-ECOMP-RequestID |N |request ID.If it is not sent it will be automatically generated by SDC on request receipt|
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-InstanceID |Y |Instance ID |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Accept |N |Determines the format of the body of the response. Valid values are : “application/json”|
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Response:
+
++------------------+---------+-----------+-------+--------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++==================+=========+===========+=======+======================================================================================+
+|uuid |M |1 |String |Global Asset Version Identifier: UUID generated by SDC per each version of the asset. |
++------------------+---------+-----------+-------+--------------------------------------------------------------------------------------+
+|invariantUUID |M |1 |String |UUID generated by SDC per each asset. |
++------------------+---------+-----------+-------+--------------------------------------------------------------------------------------+
+|name |M |1 |String |The name of the asset |
++------------------+---------+-----------+-------+--------------------------------------------------------------------------------------+
+|version |M |1 |String |The asset version in SDC catalog. |
++------------------+---------+-----------+-------+--------------------------------------------------------------------------------------+
+|toscaModelURL |M |1 |String |Relative asset’s URL. Should be used in REST GET API to download the asset’s CSAR. |
++------------------+---------+-----------+-------+--------------------------------------------------------------------------------------+
+|category |M |1 |String |Category of the asset. |
++------------------+---------+-----------+-------+--------------------------------------------------------------------------------------+
+|subcategory |M |1 |String |Sub-category of the asset |
++------------------+---------+-----------+-------+--------------------------------------------------------------------------------------+
+|resourceType |M |1 |String |The type of resource.resource types are VF, VL, CP, VFC, VFCMT, PNF. |
++------------------+---------+-----------+-------+--------------------------------------------------------------------------------------+
+|lifecycleState |M |1 |String |The lifecycle state of the asset |
++------------------+---------+-----------+-------+--------------------------------------------------------------------------------------+
+|lastUpdaterUserId |M |1 |String |UserID of the SDC designer who was the last to update the asset for this major version|
++------------------+---------+-----------+-------+--------------------------------------------------------------------------------------+
+
+Get Specific Asset Detailed Metadata
+++++++++++++++++++++++++++++++++++++
+
++--------------------+-------------------------------------------+
+|Interface Definition|Description |
++====================+===========================================+
+|URI |/sdc/v1/catalog/{assetType}/{uuid}/metadata|
++--------------------+-------------------------------------------+
+|Operation Type |GET |
++--------------------+-------------------------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=====================================================================================+
+|assetType |M |1 |String |The requested asset type.valid values are resources/services. |
++-------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|uuid |M |1 |String |Global Asset Version Identifier: UUID generated by SDC per each version of the asset.|
++-------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|X-ECOMP-RequestID |N |request ID.If it is not sent it will be automatically generated by SDC on request receipt|
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-InstanceID |Y |Instance ID |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Accept |N |Determines the format of the body of the response. Valid values are : “application/json”|
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Response:
+
++--------------------+---------+-------+--------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Content|Description |
++====================+=========+=======+======================================================================================+
+|uuid |M |String |Global Asset Version Identifier: UUID generated by SDC per each version of the asset. |
++--------------------+---------+-------+--------------------------------------------------------------------------------------+
+|invariantUUID |M |String |UUID generated by SDC per each asset. |
++--------------------+---------+-------+--------------------------------------------------------------------------------------+
+|name |M |String |The name of the asset |
++--------------------+---------+-------+--------------------------------------------------------------------------------------+
+|version |M |String |The asset version in SDC catalog. |
++--------------------+---------+-------+--------------------------------------------------------------------------------------+
+|toscaModelURL |M |String |Relative asset’s URL. Should be used in REST GET API to download the asset’s CSAR. |
++--------------------+---------+-------+--------------------------------------------------------------------------------------+
+|description |M |String |Short description of the resource |
++--------------------+---------+-------+--------------------------------------------------------------------------------------+
+|lastUpdaterUserId |M |String |UserID of the SDC designer who was the last to update the asset for this major version|
++--------------------+---------+-------+--------------------------------------------------------------------------------------+
+|lastUpdaterFullName |M |String |UserID of the SDC designer who was the last to update the asset for this major version|
++--------------------+---------+-------+--------------------------------------------------------------------------------------+
+|category |M |String |Category of the asset |
++--------------------+---------+-------+--------------------------------------------------------------------------------------+
+|subCategory |M |String |Sub-category of the asset. |
++--------------------+---------+-------+--------------------------------------------------------------------------------------+
+|toscaResourceName |M |String |The full name of the asset |
++--------------------+---------+-------+--------------------------------------------------------------------------------------+
+|resourceType |M |String |The type of resource. |
++--------------------+---------+-------+--------------------------------------------------------------------------------------+
+|lifecycleState |M |String |The lifecycle state of the asset |
++--------------------+---------+-------+--------------------------------------------------------------------------------------+
+|resources |N |Object |Category of the asset |
++--------------------+---------+-------+--------------------------------------------------------------------------------------+
+|artifacts |M |Object |Category of the asset |
++--------------------+---------+-------+--------------------------------------------------------------------------------------+
+
+Resource Object:
+
++---------------------+---------+-------+-------------------------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Content|Description | |
++=====================+=========+=======+===================================================================================================================+
+|resourceInstanceName |M |String |Logical Resource Instance Name.Unique Identifier of the instance of the specific resource in the service context.|
++---------------------+---------+-------+-------------------------------------------------------------------------------------------------------------------+
+|resourceName |M |String |Resource Name |
++---------------------+---------+-------+-------------------------------------------------------------------------------------------------------------------+
+|resourceInvariantUUID|M |String |The invariant UUID of the resource |
++---------------------+---------+-------+-------------------------------------------------------------------------------------------------------------------+
+|resourceVersion |M |String |Resource Version |
++---------------------+---------+-------+-------------------------------------------------------------------------------------------------------------------+
+|resoucreType |M |String |Resource Type |
++---------------------+---------+-------+-------------------------------------------------------------------------------------------------------------------+
+|resourceUUID |M |String |Global UUID of the resource that specific artifact belongs to |
++---------------------+---------+-------+-------------------------------------------------------------------------------------------------------------------+
+|artifacts |M |Object |Array of resource instance deployment artifacts. |
++---------------------+---------+-------+-------------------------------------------------------------------------------------------------------------------+
+
+Artifact Metadata Object:
+
++---------------------+---------+--------+-------------------------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Content |Description |
++=====================+=========+========+===================================================================================================================+
+|artifactName |M |String |Artifact File name |
++---------------------+---------+--------+-------------------------------------------------------------------------------------------------------------------+
+|artifactLabel |M |String |Identifier of the artifact within the VF / Service. |
++---------------------+---------+--------+-------------------------------------------------------------------------------------------------------------------+
+|artifactType |M |String |Artifact Type |
++---------------------+---------+--------+-------------------------------------------------------------------------------------------------------------------+
+|artifactGroupType |M |String |Whether the artifact is informational or deployment. |
++---------------------+---------+--------+-------------------------------------------------------------------------------------------------------------------+
+|artifactURL |M |String |Relative artifact’s URL. |
++---------------------+---------+--------+-------------------------------------------------------------------------------------------------------------------+
+|artifactDescription |M |String |Artifact Description |
++---------------------+---------+--------+-------------------------------------------------------------------------------------------------------------------+
+|artifactTimeout |N |Integer |Artifact Description |
++---------------------+---------+--------+-------------------------------------------------------------------------------------------------------------------+
+|artifactChecksum |M |String |Base-64 encoded MD5 checksum of the artifact’s payload. |
++---------------------+---------+--------+-------------------------------------------------------------------------------------------------------------------+
+|artifactUUID |M |String |Global UUID generated by SDC each time when artifact payload is updated. |
++---------------------+---------+--------+-------------------------------------------------------------------------------------------------------------------+
+|artifactVersion |M |String |Service Version |
++---------------------+---------+--------+-------------------------------------------------------------------------------------------------------------------+
+|generatedFromUUID |N |String |This attribute will be sent only in the case of an artifact generated on basis of other artifact |
++---------------------+---------+--------+-------------------------------------------------------------------------------------------------------------------+
+
+Download (CSAR of) Specific Asset
++++++++++++++++++++++++++++++++++
+
++--------------------+-----------------------------------------------------------+
+|Interface Definition|Description |
++====================+===========================================================+
+|URI |/sdc/v1/catalog/{assetType}/{uuid}/artifacts/{artifactUUID}|
++--------------------+-----------------------------------------------------------+
+|Operation Type |GET |
++--------------------+-----------------------------------------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=====================================================================================+
+|assetType |M |1 |String |The requested asset type.valid values are resources/services. |
++-------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|Uuid |M |1 |String |The uuid of the asset as published in the metadata |
++-------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|artifactUUID |M |1 |String |The artifactUUID of the asset as published in the metadata |
++-------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+
+Response:
+
++--------------------+---------+--------------------------------------------------------------------------------------------------------------------------+
+|Header name |Qualifier|Description |
++====================+=========+==========================================================================================================================+
+|Content-Type |M |Specifies the downloaded payload format as “ arbitrary data in binary format” .Valid value is : application/octet-stream |
++--------------------+---------+--------------------------------------------------------------------------------------------------------------------------+
+|Content-Length |M |Streamed artifact payload size |
++--------------------+---------+--------------------------------------------------------------------------------------------------------------------------+
+|Content-Disposition |M |Specifies the name of file to store the downloaded artifact’s payload ( RFC 2183) . |
++--------------------+---------+--------------------------------------------------------------------------------------------------------------------------+
+
+Upload Artifact
++++++++++++++++
+
++--------------------+-----------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+===============================================================================================+
+|URI |/sdc/v1/catalog/{assetType}/{uuid}/resourceInstances/{resourceInstanceNormalizedName}/artifacts|
++--------------------+-----------------------------------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+-----------------------------------------------------------------------------------------------+
+
+Request Parameters:
+
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++==============================+=========+===========+=======+=====================================================================================+
+|assetType |M |1 |String |The requested asset type.valid values are resources/services. |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|Uuid |M |1 |String |The uuid of the asset as published in the metadata |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|resourceInstanceNormalizedName|M |1 |String |Normalized name of resource |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+
+Request Body
+++++++++++++
+
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++==============================+=========+===========+=======+=====================================================================================+
+|payloadData |M |1 |String |The data of the artifact after Base64 encoding |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|artifactLabel |M |1 |String |Identifier of the artifact within the VF / Service. |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|artifactName |M |1 |String |The name of the artifact |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|artifactType |M |1 |String |The type of the artifact |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|artifactGroupType |M |1 |String |Whether the artifact is informational or deployment. |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|description |M |1 |String |Description of the artifact |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|X-ECOMP-RequestID |N |request ID.If it is not sent it will be automatically generated by SDC on request receipt|
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-InstanceID |Y |Instance ID |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Accept |N |Determines the format of the body of the response. Valid values are : “application/json”|
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|USER_ID |Y |The user ID of the DCAE Designer. This user must also have Designer role in SDC |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Content-Type |Y |Valid value is : application/json |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Content-MD5 |Y |The value for this header must be the MD5 checksum over the whole json body |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Response:
+
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Content|Description |
++====================+=========+=======+===================================================================================================+
+|artifactName |M |String |Artifact File name |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|artifactType |M |String |Artifact Type |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|artifactURL |M |String |Relative artifact’s URL. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|artifactDescription |M |String |Artifact Description. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|artifactTimeout |N |String |Will be populated only if its value is not 0. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|artifactChecksum |Y |String |Base-64 encoded MD5 checksum of the artifact’s payload. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|artifactUUID |Y |String |Global UUID generated by SDC each time when artifact payload is updated. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|artifactVersion |Y |String |Service Version . |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|generatedFromUUID |N |String |This attribute will be sent only in the case of an artifact generated on basis of other artifact |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+
+Update Artifact
++++++++++++++++
+
++--------------------+--------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+==============================================================================================================+
+|URI |/sdc/v1/catalog/{assetType}/{uuid}/resourceInstances/{resourceInstanceNormalizedName}/artifacts/{artifactUUID}|
++--------------------+--------------------------------------------------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+--------------------------------------------------------------------------------------------------------------+
+
+Request Parameters:
+
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++==============================+=========+===========+=======+=====================================================================================+
+|assetType |M |1 |String |The requested asset type.valid values are resources/services. |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|Uuid |M |1 |String |The uuid of the asset as published in the metadata |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|artifactUUID |M |1 |String |The uuid of the artifact as published in the response of the upload/update operation |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|resourceInstanceNormalizedName|M |1 |String |Normalized name of resource |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|X-ECOMP-RequestID |N |request ID.If it is not sent it will be automatically generated by SDC on request receipt|
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-InstanceID |Y |Instance ID |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Accept |N |Determines the format of the body of the response. Valid values are : “application/json”|
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|USER_ID |Y |The user ID of the DCAE Designer. This user must also have Designer role in SDC |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Content-Type |Y |Valid value is : application/json |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Content-MD5 |Y |The value for this header must be the MD5 checksum over the whole json body |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Request Body:
+
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++==============================+=========+===========+=======+=====================================================================================+
+|payloadData |M |1 |String |The data of the artifact after Base64 encoding |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|artifactLabel |M |1 |String |Identifier of the artifact within the VF / Service. |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|artifactName |M |1 |String |The name of the artifact |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|artifactType |M |1 |String |The type of the artifact |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|artifactGroupType |M |1 |String |Whether the artifact is informational or deployment. |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|description |M |1 |String |Description of the artifact |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+
+Response:
+
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Content|Description |
++====================+=========+=======+===================================================================================================+
+|artifactName |M |String |Artifact File name |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|artifactType |M |String |Artifact Type |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|artifactURL |M |String |Relative artifact’s URL. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|artifactDescription |M |String |Artifact Description. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|artifactTimeout |N |String |Will be populated only if its value is not 0. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|artifactChecksum |Y |String |Base-64 encoded MD5 checksum of the artifact’s payload. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|artifactUUID |Y |String |Global UUID generated by SDC each time when artifact payload is updated. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|artifactVersion |Y |String |Service Version . |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|generatedFromUUID |N |String |This attribute will be sent only in the case of an artifact generated on basis of other artifact |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+
+Delete Artifact
++++++++++++++++
+
++--------------------+--------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+==============================================================================================================+
+|URI |/sdc/v1/catalog/{assetType}/{uuid}/resourceInstances/{resourceInstanceNormalizedName}/artifacts/{artifactUUID}|
++--------------------+--------------------------------------------------------------------------------------------------------------+
+|Operation Type |DELETE |
++--------------------+--------------------------------------------------------------------------------------------------------------+
+
+Request Parameters:
+
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++==============================+=========+===========+=======+=====================================================================================+
+|assetType |M |1 |String |The requested asset type.valid values are resources/services. |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|Uuid |M |1 |String |The uuid of the asset as published in the metadata |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|artifactUUID |M |1 |String |The uuid of the artifact as published in the response of the upload/update operation |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+|resourceInstanceNormalizedName|M |1 |String |Normalized name of resource |
++------------------------------+---------+-----------+-------+-------------------------------------------------------------------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|X-ECOMP-RequestID |N |request ID.If it is not sent it will be automatically generated by SDC on request receipt|
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-InstanceID |Y |Instance ID |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Accept |N |Determines the format of the body of the response. Valid values are : “application/json”|
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|USER_ID |Y |The user ID of the DCAE Designer. This user must also have Designer role in SDC |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Response:
+
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Content|Description |
++====================+=========+=======+===================================================================================================+
+|artifactUUID |Y |String |Global UUID generated by SDC each time when artifact payload is updated. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+
+Update Lifecycle
+++++++++++++++++
+
++--------------------+--------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+==============================================================================================================+
+|URI |/sdc/v1/catalog/{assetType}/{uuid}/lifecycleState/{lifecycleOperation} |
++--------------------+--------------------------------------------------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+--------------------------------------------------------------------------------------------------------------+
+
+Request Parameters:
+
++------------------------------+---------+-----------+-------+-----------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++==============================+=========+===========+=======+=====================================================================================================+
+|assetType |M |1 |String |The requested asset type.valid values are resources/services. |
++------------------------------+---------+-----------+-------+-----------------------------------------------------------------------------------------------------+
+|Uuid |M |1 |String |The uuid of the asset as published in the metadata |
++------------------------------+---------+-----------+-------+-----------------------------------------------------------------------------------------------------+
+|lifecycleOperation |M |1 |String |The lifecycle operation to be performed on the asset.Valid values are: Checkin / Checkout / Certify |
++------------------------------+---------+-----------+-------+-----------------------------------------------------------------------------------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|X-ECOMP-RequestID |N |request ID.If it is not sent it will be automatically generated by SDC on request receipt|
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-InstanceID |Y |Instance ID |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Accept |N |Determines the format of the body of the response. Valid values are : “application/json”|
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|USER_ID |Y |The user ID of the DCAE Designer. This user must also have Designer role in SDC |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Description |
++===================+=========+=========================================================================================+
+|userRemarks |N |Short description (free text) about the asset version being changed |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Response:
+
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Content|Description |
++====================+=========+=======+===================================================================================================+
+|uuid |Y |String |UUID generated by SDC per each major version of the asset |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|invariantUUID |Y |String |UUID generated by SDC per each asset. This UUID stays constant for all the asset’s versions |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|name |Y |String |The name of the asset. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|version |Y |String |The asset version in SDC catalog |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|category |Y |String |Category of the asset. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|subcategory |Y |String |Sub-category of the asset. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|resourceType |Y |String |The type of resource. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|lifecycleState |Y |String |The lifecycle state of the asset. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|lastUpdaterUserId |Y |String |User ID of the SDC designer who was the last to update the asset for this major version. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+
+Create Resource
++++++++++++++++
+
++--------------------+--------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+==============================================================================================================+
+|URI |/sdc/v1/catalog/resources |
++--------------------+--------------------------------------------------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+--------------------------------------------------------------------------------------------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|X-ECOMP-RequestID |N |request ID.If it is not sent it will be automatically generated by SDC on request receipt|
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-InstanceID |Y |Instance ID |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Accept |N |Determines the format of the body of the response. Valid values are : “application/json”|
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|USER_ID |Y |The user ID of the DCAE Designer. This user must also have Designer role in SDC |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Content-Type |Y |Valid value is : application/json |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Description |
++===================+=========+=========================================================================================+
+|name |Y |The name of the resource |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|description |Y |Short description of the resource |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|resourceType |Y |“VFCMT” / “VF” / “PNF” |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|category |Y |VFCMT category is “Template”. |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|subcategory |Y |VFCMT subcategory is “Monitoring Template”. |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|vendorName |Y |Vendor Name |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|vendorRelease |Y |Vendor Release |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|tags |Y |The tags are used for search options. |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|icon |Y |The icon should be pre-defined in SDC. |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|contactId |Y |The user ID of user responsible for this VFCMT. |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Response:
+
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Content|Description |
++====================+=========+=======+===================================================================================================+
+|uuid |Y |String |UUID generated by SDC per each major version of the asset |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|invariantUUID |Y |String |UUID generated by SDC per each asset. This UUID stays constant for all the asset’s versions |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|name |Y |String |The name of the asset. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|version |Y |String |The asset version in SDC catalog |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|category |Y |String |Category of the asset. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|subcategory |Y |String |Sub-category of the asset. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|resourceType |Y |String |The type of resource. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|lifecycleState |Y |String |The lifecycle state of the asset. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
+|lastUpdaterUserId |Y |String |User ID of the SDC designer who was the last to update the asset for this major version. |
++--------------------+---------+-------+---------------------------------------------------------------------------------------------------+
UUI API
----------------
@@ -35,7 +1686,7 @@ Create E2E service instance +--------------------+-------------------------------------+
|Operation Type |POST |
+--------------------+-------------------------------------+
-|Content-Type |multipart/form-data |
+|Content-Type |application/json |
+--------------------+-------------------------------------+
Request Body:
@@ -75,7 +1726,7 @@ Parameter Object +----------------------+------------------+-----------------------------------------------------+
|templateName |String |The service Template name |
+----------------------+------------------+-----------------------------------------------------+
-|resources |Parameter Object |This field manages parameters of resources |
+|resources |Object |This field manages parameters of resources |
+----------------------+------------------+-----------------------------------------------------+
|resourceName |String |The resource name |
+----------------------+------------------+-----------------------------------------------------+
@@ -179,7 +1830,7 @@ Response: |finishedAt |M |1 |String |Time that it finished executing operation. |
+------------------+---------+-----------+-------+------------------------------------------------------------------------+
-AAI API
+Inventory APIs
----------------
create or update an existing service-instance
@@ -364,4 +2015,2158 @@ Response: |Attribute|Qualifier|Cardinality|Content|Description |
+---------+---------+-----------+-------+-------------------+
|HTTP code|M |1 |Integer|HTTP response code |
-+---------+---------+-----------+-------+-------------------+
\ No newline at end of file ++---------+---------+-----------+-------+-------------------+
+
+
+VFC APIs
+---------
+
+Create NS
++++++++++++
+
++--------------------+-------------------+
+|Interface Definition|Description |
++====================+===================+
+|URI |/ns |
++--------------------+-------------------+
+|Operation Type |POST |
++--------------------+-------------------+
+|Content-Type |application/json |
++--------------------+-------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-----------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=======================+
+|context |M |1 |Object |Context |
++-------------------+---------+-----------+-------+-----------------------+
+|csarId |M |1 |String |csarId |
++-------------------+---------+-----------+-------+-----------------------+
+|nsName |M |1 |String |Name of the NS |
++-------------------+---------+-----------+-------+-----------------------+
+|description |M |1 |String |description |
++-------------------+---------+-----------+-------+-----------------------+
+
+Response:
+
++-----------------+---------+-----------+----------------+-------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++-----------------+---------+-----------+----------------+-------------------+
+|nsInstanceId |M |1 |String |nsInstanceId |
++-----------------+---------+-----------+----------------+-------------------+
+
+Get NS
++++++++
+
++--------------------+-------------------+
+|Interface Definition|Description |
++====================+===================+
+|URI |/ns |
++--------------------+-------------------+
+|Operation Type |GET |
++--------------------+-------------------+
+|Content-Type |application/json |
++--------------------+-------------------+
+
+Response:
+
++-----------------+---------+-----------+----------------+-------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++-----------------+---------+-----------+----------------+-------------------+
+|nsInstanceId |M |1 |String |nsInstanceId |
++-----------------+---------+-----------+----------------+-------------------+
+|nsName |M |1 |String |The name of ns |
++-----------------+---------+-----------+----------------+-------------------+
+|description |M |1 |String |description |
++-----------------+---------+-----------+----------------+-------------------+
+|nsdId |M |1 |String |ID of ns |
++-----------------+---------+-----------+----------------+-------------------+
+|vnfInfo |M |1 |Array |Vnf information |
++-----------------+---------+-----------+----------------+-------------------+
+|vlInfo |M |1 |Array |vl information |
++-----------------+---------+-----------+----------------+-------------------+
+|vnffgInfo |M |1 |Array |vnffg information |
++-----------------+---------+-----------+----------------+-------------------+
+|nsState |M |1 |String |state of ns |
++-----------------+---------+-----------+----------------+-------------------+
+
+vnfInfo Object:
+
++-----------------+---------+-----------+----------------+-------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++-----------------+---------+-----------+----------------+-------------------+
+|vnfInstanceId |M |1 |String |vnfInstanceId |
++-----------------+---------+-----------+----------------+-------------------+
+|vnfInstanceName |M |1 |String |vnfInstanceName |
++-----------------+---------+-----------+----------------+-------------------+
+|vnfdId |M |1 |String |vnfdId |
++-----------------+---------+-----------+----------------+-------------------+
+
+vlInfo Object:
+
++----------------------+---------+-----------+----------------+-------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++----------------------+---------+-----------+----------------+-------------------+
+|vlInstanceId |M |1 |String |vlInstanceId |
++----------------------+---------+-----------+----------------+-------------------+
+|vlInstanceName |M |1 |String |vlInstanceName |
++----------------------+---------+-----------+----------------+-------------------+
+|vldId |M |1 |String |vldId |
++----------------------+---------+-----------+----------------+-------------------+
+|relatedCpInstanceId |M |1 |Array |relatedCpInstanceId|
++----------------------+---------+-----------+----------------+-------------------+
+
+relatedCpInstanceId Array:
+
++----------------------+---------+-----------+----------------+-------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++----------------------+---------+-----------+----------------+-------------------+
+|cpInstanceId |M |1 |String |cpInstanceId |
++----------------------+---------+-----------+----------------+-------------------+
+|cpInstanceName |M |1 |String |cpInstanceName |
++----------------------+---------+-----------+----------------+-------------------+
+|cpdId |M |1 |String |cpdId |
++----------------------+---------+-----------+----------------+-------------------+
+
+vnffgInfo Array:
+
++----------------------+---------+-----------+----------------+-------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++----------------------+---------+-----------+----------------+-------------------+
+|vnffgInstanceId |M |1 |String |vnffgInstanceId |
++----------------------+---------+-----------+----------------+-------------------+
+|vnfId |M |1 |String |vnfId |
++----------------------+---------+-----------+----------------+-------------------+
+|pnfId |M |1 |String |pnfId |
++----------------------+---------+-----------+----------------+-------------------+
+|virtualLinkId |M |1 |Array |virtualLinkId |
++----------------------+---------+-----------+----------------+-------------------+
+|cpId |M |1 |Array |cpId |
++----------------------+---------+-----------+----------------+-------------------+
+|nfp |M |1 |Array |nfp |
++----------------------+---------+-----------+----------------+-------------------+
+
+Instantiate NS
++++++++++++++++
+
++--------------------+-------------------------------------+
+|Interface Definition|Description |
++====================+=====================================+
+|URI |/ns/{nsInstanceId}/Instantiate |
++--------------------+-------------------------------------+
+|Operation Type |POST |
++--------------------+-------------------------------------+
+|Content-Type |application/json |
++--------------------+-------------------------------------+
+
+Request Parameters:
+
++----------------------+---------+-----------+-------+-----------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++======================+=========+===========+=======+=======================+
+|LocationConstraints |M |1 |Array |LocationConstraints |
++----------------------+---------+-----------+-------+-----------------------+
+|additionalParamForNs |M |1 |String |additionalParamForNs |
++----------------------+---------+-----------+-------+-----------------------+
+|nsInstanceId |M |1 |String |nsInstanceId |
++----------------------+---------+-----------+-------+-----------------------+
+
+LocationConstraints Array:
+
++----------------------+---------+-----------+-------+-----------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++======================+=========+===========+=======+=======================+
+|vnfProfileId |M |1 |String |vnfProfileId |
++----------------------+---------+-----------+-------+-----------------------+
+|vimid |M |1 |String |vimid |
++----------------------+---------+-----------+-------+-----------------------+
+
+Response:
+
++--------------+---------+-----------+-------+-----------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++==============+=========+===========+=======+=======================+
+|jobId |M |1 |String |jobId |
++--------------+---------+-----------+-------+-----------------------+
+
+Terminate NS
++++++++++++++++
+
++--------------------+-------------------------------------+
+|Interface Definition|Description |
++====================+=====================================+
+|URI |/ns/{ns_instance_id}/terminate |
++--------------------+-------------------------------------+
+|Operation Type |POST |
++--------------------+-------------------------------------+
+|Content-Type |application/json |
++--------------------+-------------------------------------+
+
+Request Parameters:
+
++----------------------------+---------+-----------+-------+-----------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++============================+=========+===========+=======+=============================+
+|terminationType |M |1 |String |terminationType |
++----------------------------+---------+-----------+-------+-----------------------------+
+|gracefulTerminationTimeout |M |1 |String |gracefulTerminationTimeout |
++----------------------------+---------+-----------+-------+-----------------------------+
+|nsInstanceId |M |1 |String |nsInstanceId |
++----------------------------+---------+-----------+-------+-----------------------------+
+
+Response:
+
++--------------+---------+-----------+-------+-----------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++==============+=========+===========+=======+=======================+
+|jobId |M |1 |String |jobId |
++--------------+---------+-----------+-------+-----------------------+
+
+Delete NS
++++++++++++++++
+
++--------------------+-------------------------------------+
+|Interface Definition|Description |
++====================+=====================================+
+|URI |/ns/{ns_instance_id} |
++--------------------+-------------------------------------+
+|Operation Type |DELETE |
++--------------------+-------------------------------------+
+
+Request Parameters:
+
++----------------------------+---------+-----------+-------+-----------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++============================+=========+===========+=======+=============================+
+|nsInstanceId |M |1 |String |nsInstanceId |
++----------------------------+---------+-----------+-------+-----------------------------+
+
+MultiVIM API
+----------------
+Get token
+++++++++++
+
+https://developer.openstack.org/api-ref/identity/v3/#password-authentication-with-unscoped-authorization
+
++--------------------+-----------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+===============================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/identity/v3/auth/tokens |
++--------------------+-----------------------------------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+-----------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++================+=========+===========+==========================+================================================================================================================================================+
+|nocatalog |O |1 |string |The authentication response excludes the service catalog. By default, the response includes the service catalog. |
++----------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
+|name |O |1 |string |The user name. Required if you do not specify the ID of the user. If you specify the user name, you must also specify the domain, by ID or name.|
++----------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
+|auth |M |1 |object |An auth object. |
++----------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
+|user |M |1 |object |A user object. |
++----------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
+|scope |O |1 |string |The authorization scope, including either a project or a domain |
++----------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
+|password |M |1 |object |The password object, contains the authentication information. |
++----------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
+|id |O |1 |string |The ID of the user. Required if you do not specify the user name. |
++----------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
+|identity |M |1 |object |An identity object. |
++----------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
+|methods |M |1 |array |The authentication method. For password authentication, specify password. |
++----------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
+
+Response:
+
++-------------------------+------------------+--------------------------------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+==========================================================================+
+|X-Subject-Token |String |The authentication token. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|domain |object |A domain object, containing: |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|region_id |String |The ID of the region that contains the service endpoint. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|methods |array |The authentication method. For password authentication, specify password. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|roles |array |A list of role objects, each containing: |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|url |String |The endpoint URL. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|region |String |The geographic location of the service endpoint. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|token |object |A token object. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|expires_at |String |The date and time when the token expires. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|project |object |A project object, containing: |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|issued_at |String |The date and time when the token was issued. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|catalog |array |A catalog object. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|extras |object |A set of metadata key and value pairs, if any. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|user |object |A user object. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|audit_ids |array |A list of one or two audit IDs. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|interface |String |The interface type, which describes the visibility of the endpoint. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|endpoints |array |A list of endpoint objects. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|type |String |The endpoint type. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|id |String |The ID of the user. Required if you do not specify the user name. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|name |String |The user name. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+
+Create stack
++++++++++++++
+
+https://developer.openstack.org/api-ref/orchestration/v1/#create-stack
+
++--------------------+-----------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+===============================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/heat/v1/{tenant-id}/stacks |
++--------------------+-----------------------------------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+-----------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------+
+
+Request Body:
+
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++==================+=========+===========+==========================+=================================================================================================+
+|tenant_id |M |1 |string |The UUID of the tenant. A tenant is also known as a project. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|disable_rollback |O |1 |boolean |Enables or disables deletion of all stack resources when stack creation fails. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|environment |O |1 |object |A JSON environment for the stack. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|files |O |1 |object |Supplies the contents of files referenced in the template or the environment. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|parameters |O |1 |object |Supplies arguments for parameters defined in the stack template. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|stack_name |M |1 |string |A name for the stack. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|tags |O |1 |string |One or more simple string tags to associate with the stack. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|template |O |1 |object |The stack template on which to perform the operation. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|template_url |O |1 |string |A URI to the location containing the stack template on which to perform the operation. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|timeout_mins |O |1 |integer |The timeout for stack creation in minutes. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+
+Response:
+
++-------------------------+------------------+--------------------------------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+==========================================================================+
+|location |String |For asynchronous resource operations. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|X-Openstack-Reqeuest-Id |object |A domain object, containing: |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|stack |String |The ID of the region that contains the service endpoint. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|id |String |The authentication method. For password authentication, specify password. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+|links |String |The authentication method. For password authentication, specify password. |
++-------------------------+------------------+--------------------------------------------------------------------------+
+
+Get stack
++++++++++++++
+
+https://developer.openstack.org/api-ref/orchestration/v1/#show-stack-details
+
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=======================================================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/heat/v1/{tenant-id}/stacks/{stack-name}/{stack-id} |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Operation Type |GET |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++==================+=========+===========+==========================+=================================================================================================+
+|tenant_id |M |1 |string |The UUID of the tenant. A tenant is also known as a project. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|stack_name |M |1 |string |The name of a stack. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|stack_id |M |1 |string |The UUID of the stack. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|resolve_outputs |O |1 |boolean |A boolean indicating whether the outputs section of a stack should be resolved. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+
+Response:
+
++-------------------------+------------------+------------------------------------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+==============================================================================+
+|X-Openstack-Reqeuest-Id |String |A unique ID for tracking service request. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|stack |Object |The stack object. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|capabilities |array |List of stack capabilities for stack. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|creation_time |String |The date and time when the resource was created. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|deletion_time |String |The date and time when the resource was (soft-) deleted. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|description |String |The description of the stack resource. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|disable_rollback |boolean |Whether deletion of all stack resources when stack creation fails is enabled. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|id |String |The UUID of the stack. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|links |array |A list of URLs for the stack. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|notification_topics |array |List of notification topics for stack. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|outputs |array |A list of stack outputs. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|parameters |object | A group of key-value pairs |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|parent |String |The stack ID of the parent stack, if this is a nested stack. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|stack_name |String |A name for the stack. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|stack_owner |String |The owner of the stack. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|stack_status |String |The status of the stack. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|stack_status_reason |String |The reason for the current status of the stack. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|stack_user_project_id |String |The project UUID of the stack user. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|tags |array |The stack tags. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|template_description |String |The description of the stack template. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|timeout_mins |integer |The timeout for stack creation in minutes. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|updated_time |String |The date and time when the object was updated. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+
+Delete stack
++++++++++++++
+
+https://developer.openstack.org/api-ref/orchestration/v1/#show-stack-details
+
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=======================================================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/heat/v1/{tenant-id}/stacks/{stack-name}/{stack-id} |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Operation Type |DELETE |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++==================+=========+===========+==========================+=================================================================================================+
+|tenant_id |M |1 |string |The UUID of the tenant. A tenant is also known as a project. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|stack_name |M |1 |string |The name of a stack. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|stack_id |M |1 |string |The UUID of the stack. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+
+Create server
++++++++++++++
+
+https://developer.openstack.org/api-ref/compute/#create-server
+
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=======================================================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/nova/v2.1/{tenant_id}/servers |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++================================================+=========+===========+==========================+=================================================================================================+
+|server |M |1 |object |A server object. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|name |M |1 |string |The server name. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|flavorRef |M |1 |string |The flavor reference, as an ID (including a UUID) or full URL |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|imageRef |M |1 |string |The UUID of the image to use for your server instance |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|security_groups |O |1 |array |One or more security groups. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|metadata |O |1 |object |Metadata key and value pairs. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|accessIPv4 |O |1 |string |IPv4 address that should be used to access this server. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|accessIPv6 |O |1 |string |IPv6 address that should be used to access this server. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|adminPass |O |1 |string |The administrative password of the server. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|user_data |O |1 |string |Configuration information or scripts to use upon launch. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|availability_zone |O |1 |string |The availability zone from which to launch the server. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|networks |M |1 |object |A networks object. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|networks.uuid |O |1 |string |To provision the server instance with a NIC for a network |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|networks.port |O |1 |string |To provision the server instance with a NIC for an already existing port |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|networks.fixed_ip |O |1 |string |A fixed IPv4 address for the NIC |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|networks.tag |O |1 |string |A device role tag that can be applied to a network interface. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|personality |O |1 |array |The file path and contents, text only, to inject into the server at launch. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|block_device_mapping_v2 |O |1 |array |Enables fine grained control of the block device mapping for an instance. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|block_device_mapping_v2.device_name |M |1 |string |A path to the device for the volume that you want to use to boot the server. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|block_device_mapping_v2.source_type |M |1 |string |The source type of the volume. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|block_device_mapping_v2.destination_type |O |1 |string |Defines where the volume comes from. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|block_device_mapping_v2.delete_on_termination |O |1 |string |To delete the boot volume when the server is destroyed, specify true. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|block_device_mapping_v2.guest_format |M |1 |string |Specifies the guest server disk file system format, such as ephemeral or swap. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|block_device_mapping_v2.boot_index |M |1 |string |Defines the order in which a hypervisor tries devices |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|block_device_mapping_v2.uuid |O |1 |string |This is the uuid of source resource. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|block_device_mapping_v2.tag |O |1 |string |A device role tag that can be applied to a block device. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|block_device_mapping_v2.disk_bus |O |1 |string |Disk bus type, some hypervisors (currently only libvirt) support specify this parameter |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|config_drive |O |1 |boolean |Indicates whether a configuration drive enables metadata injection. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|key_name |O |1 |string |Key pair name. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|os:scheduler_hints |O |1 |object |The dictionary of data to send to the scheduler. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|OS-DCF:diskConfig |O |1 |string |Controls how the API partitions the disk when you create, rebuild, or resize servers. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|description |O |1 |string |A free form description of the server. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|tags |O |1 |array |A list of tags. |
++------------------------------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+
+Response:
+
++-------------------------+------------------+------------------------------------------------------------------------------+
+|Attribute |Content |Description |
++=========================+==================+==============================================================================+
+|server |object |A server object. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|id |String |The UUID of the server. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|links |array |Links to the resources in question. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|OS-DCF:diskConfig |String |Disk configuration. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|security_groups |array |One or more security groups objects. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|security_groups.name |String |The security group name. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+|adminPass |String |The administrative password for the server. |
++-------------------------+------------------+------------------------------------------------------------------------------+
+
+Delete server
++++++++++++++
+
+https://developer.openstack.org/api-ref/compute/#delete-server
+
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=======================================================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/nova/v2.1/{tenant_id}/servers/{server_id} |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Operation Type |DELETE |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++==================+=========+===========+==========================+=================================================================================================+
+|server_id |M |1 |string |The UUID of the server. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+
+Create Keypair
++++++++++++++++
+
+https://developer.openstack.org/api-ref/compute/#create-or-import-keypair
+
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=======================================================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/nova/v2.1/{tenant_id}/os-keypairs |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++==================+=========+===========+==========================+=================================================================================================+
+|keypair |M |1 |Object |Keypair object |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|name |M |1 |string |A name for the keypair which will be used to reference it later. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|public_key |O |1 |string |The public ssh key to import. If you omit this value, a keypair is generated for you. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|type |O |1 |string |The type of the keypair. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|user_id |O |1 |string |The user_id for a keypair. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+
+Response:
+
++-----------------+------------------+------------------------------------------------------------------------------+
+|Attribute |Content |Description |
++=================+==================+==============================================================================+
+|keypair |object |Keypair object |
++-----------------+------------------+------------------------------------------------------------------------------+
+|name |String |A name for the keypair which will be used to reference it later. |
++-----------------+------------------+------------------------------------------------------------------------------+
+|public_key |String |The keypair public key. |
++-----------------+------------------+------------------------------------------------------------------------------+
+|fingerprint |String |The fingerprint for the keypair. |
++-----------------+------------------+------------------------------------------------------------------------------+
+|user_id |String |The user_id for a keypair. |
++-----------------+------------------+------------------------------------------------------------------------------+
+|private_key |String |If you do not provide a public key on create |
++-----------------+------------------+------------------------------------------------------------------------------+
+|type |String |The type of the keypair. |
++-----------------+------------------+------------------------------------------------------------------------------+
+
+Delete Keypair
++++++++++++++++
+
+https://developer.openstack.org/api-ref/compute/#delete-keypair
+
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=======================================================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/nova/v2.1/{tenant_id}/os-keypairs/{keypair-id} |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Operation Type |DELETE |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++==================+=========+===========+==========================+=================================================================================================+
+|keypair_name |M |1 |String |The keypair name. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|user_id |O |1 |String |This allows administrative users to operate key-pairs of specified user ID. |
++------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+
+Create Network
++++++++++++++++
+
+https://developer.openstack.org/api-ref/network/v2/?expanded=create-network-detail#create-network
+
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=======================================================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/neutron/v2.0/networks |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++============================+=========+===========+==========================+=================================================================================================+
+|network |M |1 |Object |A network object. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|admin_state_up |O |1 |boolean |The administrative state of the network, which is up (true) or down (false). |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|dns_domain |O |1 |string |A valid DNS domain. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|mtu |O |1 |integer |The maximum transmission unit (MTU) value to address fragmentation. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|name |O |1 |string |Human-readable name of the network. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|port_security_enabled |O |1 |boolean |The port security status of the network. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|project_id |O |1 |string |The ID of the project that owns the resource. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|provider:network_type |O |1 |string |The type of physical network that this network should be mapped to. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|provider:physical_network |O |1 |string |The physical network where this network should be implemented. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|provider:segmentation_id |O |1 |integer |The ID of the isolated segment on the physical network. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|qos_policy_id |O |1 |string |The ID of the QoS policy. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|router:external |O |1 |boolean |Indicates whether this network can provide floating IPs via a router. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|segments |O |1 |array |A list of provider segment objects. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|shared |O |1 |boolean |Indicates whether this network is shared across all tenants. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|tenant_id |O |1 |string |The ID of the project that owns the resource. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|vlan_transparent |O |1 |boolean |Indicates the VLAN transparency mode of the network, |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|description |O |1 |string |A human-readable description for the resource. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+
+Response:
+
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|Attribute |Content |Description |
++=============================+==================+==============================================================================+
+|network |object |A network object. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|admin_state_up |boolean |The administrative state of the network, which is up (true) or down (false). |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|availability_zone_hints |array |The availability zone candidate for the network. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|availability_zones |array |The availability zone for the network. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|dns_domain |String |A valid DNS domain. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|id |String |The ID of the network. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|mtu |integer |The maximum transmission unit (MTU) value to address fragmentation. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|name |String |Human-readable name of the network. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|port_security_enabled |boolean |The port security status of the network. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|project_id |String |The ID of the project. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|provider:network_type |String |The type of physical network that this network is mapped to. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|provider:physical_network |String |The physical network where this network is implemented. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|provider:segmentation_id |integer |The ID of the isolated segment on the physical network. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|qos_policy_id |String |The ID of the QoS policy. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|revision_number |integer |The revision number of the resource. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|router:external |boolean |Indicates whether this network can provide floating IPs via a router. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|segments |array |A list of provider segment objects. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|shared |boolean |Indicates whether this network is shared across all tenants. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|status |String |The network status. Values are ACTIVE, DOWN, BUILD or ERROR. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|subnets |array |The associated subnets. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|tenant_id |String |The ID of the project. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|vlan_transparent |boolean |Indicates the VLAN transparency mode of the network. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|description |String |A human-readable description for the resource. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+
+Delete Network
++++++++++++++++
+
+https://developer.openstack.org/api-ref/network/v2/?expanded=create-network-detail#delete-network
+
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=======================================================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/neutron/v2.0/networks/{network-id} |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Operation Type |DELETE |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------------------+---------+-----------+--------------------------+--------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++============================+=========+===========+==========================+==============================================================+
+|network_id |M |1 |Object |The ID of the network. |
++----------------------------+---------+-----------+--------------------------+--------------------------------------------------------------+
+
+Create Subnet
++++++++++++++++
+
+https://developer.openstack.org/api-ref/network/v2/?expanded=create-network-detail,create-subnet-detail#create-subnet
+
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=======================================================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/neutron/v2.0/subnets |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++============================+=========+===========+==========================+=================================================================================================+
+|subnet |M |1 |string |A subnet object. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|tenant_id |O |1 |string |The ID of the project that owns the resource. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|project_id |O |1 |string |The ID of the project that owns the resource. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|name |O |1 |string |Human-readable name of the resource. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|enable_dhcp |O |1 |boolean |Indicates whether dhcp is enabled or disabled for the subnet. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|network_id |M |1 |string |The ID of the network to which the subnet belongs. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|dns_nameservers |O |1 |array |List of dns name servers associated with the subnet. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|allocation_pools |O |1 |array |Allocation pools with start and end IP addresses for this subnet. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|host_routes |O |1 |array |Additional routes for the subnet. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|ip_version |M |1 |integer |The IP protocol version. Value is 4 or 6. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|gateway_ip |O |1 |string |Gateway IP of this subnet. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|cidr |M |1 |string |The CIDR of the subnet. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|description |O |1 |string |A human-readable description for the resource. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|ipv6_address_mode |O |1 |string |The IPv6 address modes specifies mechanisms for assigning IP addresses. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|ipv6_ra_mode |O |1 |string |The IPv6 router advertisement specifies whether the networking service |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|segment_id |O |1 |string |The ID of a network segment the subnet is associated with. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|subnetpool_id |O |1 |string |The ID of the subnet pool associated with the subnet. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|use_default_subnetpool |O |1 |boolean |Whether to allocate this subnet from the default subnet pool. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+
+Response:
+
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|Attribute |Content |Description |
++=============================+==================+==============================================================================+
+|subnet |string |A subnet object. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|id |string |The ID of the subnet. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|tenant_id |string |The ID of the project. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|project_id |string |The ID of the project. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|name |String |Human-readable name of the resource. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|enable_dhcp |boolean |Indicates whether dhcp is enabled or disabled for the subnet. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|network_id |String |The ID of the network to which the subnet belongs. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|dns_nameservers |array |List of dns name servers associated with the subnet. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|allocation_pools |array |Allocation pools with start and end IP addresses for this subnet. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|host_routes |array |Additional routes for the subnet. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|ip_version |integer |The IP protocol version. Value is 4 or 6. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|gateway_ip |string |Gateway IP of this subnet. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|cidr |string |The CIDR of the subnet. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|created_at |string |Time at which the subnet has been created. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|description |string |A human-readable description for the resource. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|ipv6_address_mode |string |The IPv6 address modes specifies mechanisms for assigning IP addresses. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|ipv6_ra_mode |string |The IPv6 router advertisement specifies whether the networking service |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|revision_number |integer |The revision number of the resource. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|service_types |string |The service types associated with the subnet. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|subnetpool_id |string |The ID of the subnet pool associated with the subnet. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|segment_id |string |The ID of a network segment the subnet is associated with. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|updated_at |string |Time at which the subnet has been updated. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+
+Delete Subnet
++++++++++++++++
+
+https://developer.openstack.org/api-ref/networking/v2/?expanded=create-network-detail,delete-subnet-detail#delete-subnet
+
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=======================================================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/neutron/v2.0/subnets/{subnet-id} |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Operation Type |DELETE |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------------------+---------+-----------+--------------------------+--------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++============================+=========+===========+==========================+==============================================================+
+|subnet_id |M |1 |String |The ID of the subnet. |
++----------------------------+---------+-----------+--------------------------+--------------------------------------------------------------+
+
+Create Port
++++++++++++++++
+
+https://developer.openstack.org/api-ref/networking/v2/#create-port
+
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=======================================================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/neutron/v2.0/ports |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++============================+=========+===========+==========================+=================================================================================================+
+|port |M |1 |object |A port object. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|admin_state_up |O |1 |boolean |The administrative state of the resource. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|allowed_address_pairs |O |1 |array |A set of zero or more allowed address pairs. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|binding:host_id |O |1 |string |The ID of the host where the port resides. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|binding:profile |O |1 |string |A dictionary that enables the application running on the specific host |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|binding:vnic_type |O |1 |string |The type of vNIC which this port should be attached to. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|description |O |1 |string |A human-readable description for the resource. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|device_id |O |1 |string |The ID of the device that uses this port. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|device_owner |O |1 |string |The entity type that uses this port. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|dns_domain |O |1 |string |A valid DNS domain. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|dns_name |O |1 |string |A valid DNS name. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|extra_dhcp_opts |O |1 |array |A set of zero or more extra DHCP option pairs. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|fixed_ips |O |1 |array |The IP addresses for the port. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|mac_address |O |1 |string |The MAC address of the port. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|name |O |1 |string |Human-readable name of the resource. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|network_id |M |1 |string |The ID of the attached network. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|port_security_enabled |O |1 |boolean |The port security status. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|project_id |O |1 |string |The ID of the project that owns the resource. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|security_groups |O |1 |array |The IDs of security groups applied to the port. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+|tenant_id |O |1 |string |The ID of the project that owns the resource. |
++----------------------------+---------+-----------+--------------------------+-------------------------------------------------------------------------------------------------+
+
+Response:
+
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|Attribute |Content |Description |
++=============================+==================+==============================================================================+
+|port |object |A port object. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|admin_state_up |boolean |The administrative state of the resource. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|allowed_address_pairs |array |A set of zero or more allowed address pairs. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|binding:host_id |string |The ID of the host where the port resides. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|binding:profile |String |A dictionary that enables the application running on the specific host |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|binding:vif_details |object |A dictionary which contains additional information on the port. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|binding:vif_type |String |The type of which mechanism is used for the port. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|binding:vnic_type |string |The type of vNIC which this port should be attached to. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|created_at |string |Time at which port has been created. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|data_plane_status |string |Status of the underlying data plane of a port. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|description |string |A human-readable description for the resource. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|device_id |string |The ID of the device that uses this port. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|device_owner |string |The entity type that uses this port. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|dns_assignment |object |Data assigned to a port by the Networking internal DNS |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|dns_domain |string |A valid DNS domain. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|dns_name |string |A valid DNS name. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|extra_dhcp_opts |array |A set of zero or more extra DHCP option pairs. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|fixed_ips |array |The IP addresses for the port. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|id |string |The ID of the resource. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|mac_address |string |The MAC address of the port. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|name |string |Human-readable name of the resource. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|network_id |string |The ID of the attached network. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|port_security_enabled |boolean |The port security status. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|project_id |string |The ID of the project. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|revision_number |integer |The revision number of the resource. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|security_groups |array |The IDs of security groups applied to the port. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|status |string |The port status. Values are ACTIVE, DOWN, BUILD and ERROR. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|tenant_id |string |The ID of the project. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|updated_at |string |Time at which port has been updated. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+
+Delete Port
++++++++++++++++
+
+https://developer.openstack.org/api-ref/network/v2/#delete-port
+
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=======================================================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/neutron/v2.0/ports/{port-id} |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Operation Type |DELETE |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------------------+---------+-----------+--------------------------+--------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++============================+=========+===========+==========================+==============================================================+
+|port_id |M |1 |String |The ID of the port. |
++----------------------------+---------+-----------+--------------------------+--------------------------------------------------------------+
+
+Create Security Group
+++++++++++++++++++++++
+
+https://developer.openstack.org/api-ref/network/v2/#create-security-group
+
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=======================================================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/neutron/v2.0/security-groups |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------------------+---------+-----------+--------------------------+--------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++============================+=========+===========+==========================+==============================================================+
+|security_group |M |1 |object |A security_group object. |
++----------------------------+---------+-----------+--------------------------+--------------------------------------------------------------+
+|tenant_id |M |1 |string |The ID of the project. |
++----------------------------+---------+-----------+--------------------------+--------------------------------------------------------------+
+|project_id |M |1 |string |The ID of the project. |
++----------------------------+---------+-----------+--------------------------+--------------------------------------------------------------+
+|description |O |1 |string |A human-readable description for the resource. |
++----------------------------+---------+-----------+--------------------------+--------------------------------------------------------------+
+|name |M |1 |string |Human-readable name of the resource. |
++----------------------------+---------+-----------+--------------------------+--------------------------------------------------------------+
+
+Response:
+
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|Attribute |Content |Description |
++=============================+==================+==============================================================================+
+|security_group |object |A security_group object. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|id |string |The ID of the security group. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|tenant_id |string |The ID of the project. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|project_id |string |The ID of the project. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|revision_number |integer |The revision number of the resource. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|name |string |Human-readable name of the resource. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|description |string |A human-readable description for the resource. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+|security_group_rules |array |A list of security_group_rule objects. |
++-----------------------------+------------------+------------------------------------------------------------------------------+
+
+Delete security group
+++++++++++++++++++++++
+
+https://developer.openstack.org/api-ref/network/v2/#delete-security-group
+
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=======================================================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/neutron/v2.0/security-groups/{security-group-id} |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Operation Type |DELETE |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------------------+---------+-----------+--------------------------+--------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++============================+=========+===========+==========================+==============================================================+
+|security_group_id |M |1 |String |The ID of the security group. |
++----------------------------+---------+-----------+--------------------------+--------------------------------------------------------------+
+
+Create Security Group Rule
+++++++++++++++++++++++++++
+
+https://developer.openstack.org/api-ref/network/v2/#create-security-group-rule
+
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=======================================================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/neutron/v2.0/security-group-rules |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Operation Type |POST |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+-----------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++============================+=========+===========+==========================+================================================================================================+
+|security_group_rule |M |1 |object |A security_group_rule object. |
++----------------------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------+
+|remote_group_id |O |1 |string |The remote group UUID to associate with this security group rule. |
++----------------------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------+
+|direction |M |1 |string |Ingress or egress, which is the direction in which the metering rule is applied. |
++----------------------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------+
+|protocol |M |1 |string |The IP protocol can be represented by a string, an integer, or null. |
++----------------------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------+
+|ethertype |O |1 |string |Must be IPv4 or IPv6, and addresses represented in CIDR must match the ingress or egress rules. |
++----------------------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------+
+|port_range_max |O |1 |integer |The maximum port number in the range that is matched by the security group rule. |
++----------------------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------+
+|security_group_id |M |1 |string |The security group ID to associate with this security group rule. |
++----------------------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------+
+|port_range_min |O |1 |integer |The minimum port number in the range that is matched by the security group rule. |
++----------------------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------+
+|remote_ip_prefix |M |1 |string |The remote IP prefix to associate with this metering rule packet. |
++----------------------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------+
+|description |O |1 |string |A human-readable description for the resource. Default is an empty string. |
++----------------------------+---------+-----------+--------------------------+------------------------------------------------------------------------------------------------+
+
+Response:
+
++-----------------------------+------------------+-------------------------------------------------------------------------------------------------+
+|Attribute |Content |Description |
++=============================+==================+=================================================================================================+
+|security_group_rule |object |A security_group_rule object. |
++-----------------------------+------------------+-------------------------------------------------------------------------------------------------+
+|remote_group_id |string |The remote group UUID to associate with this security group rule. |
++-----------------------------+------------------+-------------------------------------------------------------------------------------------------+
+|direction |string |Ingress or egress, which is the direction in which the metering rule is applied. |
++-----------------------------+------------------+-------------------------------------------------------------------------------------------------+
+|protocol |string |The IP protocol can be represented by a string, an integer, or null. |
++-----------------------------+------------------+-------------------------------------------------------------------------------------------------+
+|ethertype |string |Must be IPv4 or IPv6, and addresses represented in CIDR must match the ingress or egress rules. |
++-----------------------------+------------------+-------------------------------------------------------------------------------------------------+
+|port_range_max |integer |The maximum port number in the range that is matched by the security group rule. |
++-----------------------------+------------------+-------------------------------------------------------------------------------------------------+
+|security_group_id |string |The security group ID to associate with this security group rule. |
++-----------------------------+------------------+-------------------------------------------------------------------------------------------------+
+|tenant_id |string |The ID of the project. |
++-----------------------------+------------------+-------------------------------------------------------------------------------------------------+
+|project_id |string |The ID of the project. |
++-----------------------------+------------------+-------------------------------------------------------------------------------------------------+
+|port_range_min |integer |The minimum port number in the range that is matched by the security group rule. |
++-----------------------------+------------------+-------------------------------------------------------------------------------------------------+
+|remote_ip_prefix |string |The remote IP prefix to associate with this metering rule packet. |
++-----------------------------+------------------+-------------------------------------------------------------------------------------------------+
+|revision_number |integer |The revision number of the resource. |
++-----------------------------+------------------+-------------------------------------------------------------------------------------------------+
+|id |string |The ID of the security group rule. |
++-----------------------------+------------------+-------------------------------------------------------------------------------------------------+
+|description |string |A human-readable description for the resource. |
++-----------------------------+------------------+-------------------------------------------------------------------------------------------------+
+
+Delete security group
+++++++++++++++++++++++
+
+https://developer.openstack.org/api-ref/networking/v2/#delete-security-group-rule
+
++--------------------+---------------------------------------------------------------------------------------------------------------------------------+
+|Interface Definition|Description |
++====================+=================================================================================================================================+
+|URI |http://msb.onap.org/api/multicloud/v0/{cloud-owner}_{cloud-region}/neutron/v2.0/security-group-rules/{security-group-rule-id} |
++--------------------+---------------------------------------------------------------------------------------------------------------------------------+
+|Operation Type |DELETE |
++--------------------+---------------------------------------------------------------------------------------------------------------------------------+
+|Content-Type |application/json |
++--------------------+---------------------------------------------------------------------------------------------------------------------------------+
+
+Request Body:
+
++----------------------------+---------+-----------+--------------------------+--------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content |Description |
++============================+=========+===========+==========================+==============================================================+
+|security_group_rule_id |M |1 |String |The ID of the security group rule. |
++----------------------------+---------+-----------+--------------------------+--------------------------------------------------------------+
+
+Policy API
+----------
+
+Create a dictionary item
+++++++++++++++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |/createDictionaryItem |
++--------------------+--------------------------+
+|Operation Type |PUT |
++--------------------+--------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|dictionory |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|dictionaryJson |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|dictionaryType |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|requestId |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|ClientAuth |Y |encoded client authentication details |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-RequestID |N |Request ID to track the requests |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Environment |Y |execution environments |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+HTTP Response Code:
+
++------------------+---------------------+
+|HTTP CODE |Description |
++==================+=====================+
+|200 |successful |
++------------------+---------------------+
+|400 |Invalid Request |
++------------------+---------------------+
+|401 |Unauthorized |
++------------------+---------------------+
+|500 |Error |
++------------------+---------------------+
+
+Create Policy
++++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |/createPolicy |
++--------------------+--------------------------+
+|Operation Type |PUT |
++--------------------+--------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|attributes |M |1 |Object |set of attributes in key value pair |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|configBody |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|configBodyType |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|configName |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|ecompName |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|policyClass |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|policyConfigType |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|policyDescription |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|policyName |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|requestID |M |1 |String |request ID |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|ClientAuth |Y |encoded client authentication details |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-RequestID |N |Request ID to track the requests |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Environment |Y |execution environments |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+HTTP Response Code:
+
++------------------+---------------------+
+|HTTP CODE |Description |
++==================+=====================+
+|200 |successful |
++------------------+---------------------+
+|400 |Invalid Request |
++------------------+---------------------+
+|401 |Unauthorized |
++------------------+---------------------+
+|500 |Error |
++------------------+---------------------+
+
+Delete Policy
++++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |/deletePolicy |
++--------------------+--------------------------+
+|Operation Type |DELETE |
++--------------------+--------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|deleteCondition |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|pdpGroup |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|policyComponent |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|policyName |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|policyType |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|requestID |M |1 |String |request ID |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|ClientAuth |Y |encoded client authentication details |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-RequestID |N |Request ID to track the requests |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Environment |Y |execution environments |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+HTTP Response Code:
+
++------------------+---------------------+
+|HTTP CODE |Description |
++==================+=====================+
+|200 |successful |
++------------------+---------------------+
+|400 |Invalid Request |
++------------------+---------------------+
+|401 |Unauthorized |
++------------------+---------------------+
+|500 |Error |
++------------------+---------------------+
+
+Get Configuration
++++++++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |/getConfig |
++--------------------+--------------------------+
+|Operation Type |POST |
++--------------------+--------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|configAttributes |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|configName |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|ecompName |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|policyName |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|unique |M |1 |Boolean| |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|requestID |M |1 |String |request ID |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|ClientAuth |Y |encoded client authentication details |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-RequestID |N |Request ID to track the requests |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Environment |Y |execution environments |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+HTTP Response Code:
+
++------------------+---------------------+
+|HTTP CODE |Description |
++==================+=====================+
+|200 |successful |
++------------------+---------------------+
+|400 |Invalid Request |
++------------------+---------------------+
+|401 |Unauthorized |
++------------------+---------------------+
+|500 |Error |
++------------------+---------------------+
+
+Get Decision
+++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |/getDecision |
++--------------------+--------------------------+
+|Operation Type |POST |
++--------------------+--------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|decisionAttributes |M |1 |Object | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|ecompComponentName |M |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|requestID |M |1 |String |request ID |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|ClientAuth |Y |encoded client authentication details |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-RequestID |N |Request ID to track the requests |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Environment |Y |execution environments |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+HTTP Response Code:
+
++------------------+---------------------+
+|HTTP CODE |Description |
++==================+=====================+
+|200 |successful |
++------------------+---------------------+
+|400 |Invalid Request |
++------------------+---------------------+
+|401 |Unauthorized |
++------------------+---------------------+
+|500 |Error |
++------------------+---------------------+
+
+Response Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|decision |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|details |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+Get Dictionary Items
+++++++++++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |/getDictionaryItems |
++--------------------+--------------------------+
+|Operation Type |POST |
++--------------------+--------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|dictionary |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|dictionaryJson |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|dictionaryType |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|requestID |M |1 |String |request ID |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|ClientAuth |Y |encoded client authentication details |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-RequestID |N |Request ID to track the requests |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Environment |Y |execution environments |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+HTTP Response Code:
+
++------------------+---------------------+
+|HTTP CODE |Description |
++==================+=====================+
+|200 |successful |
++------------------+---------------------+
+|400 |Invalid Request |
++------------------+---------------------+
+|401 |Unauthorized |
++------------------+---------------------+
+|500 |Error |
++------------------+---------------------+
+
+Response Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|dictionaryData |N |1 |Object | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|dictionaryJson |N |1 |Object | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|responseCode |N |1 |Integer| |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|responseMessage |N |1 |Object | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+Get Metrics
++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |/getMetrics |
++--------------------+--------------------------+
+|Operation Type |GET |
++--------------------+--------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|ClientAuth |Y |encoded client authentication details |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-RequestID |N |Request ID to track the requests |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Environment |Y |execution environments |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+HTTP Response Code:
+
++------------------+---------------------+
+|HTTP CODE |Description |
++==================+=====================+
+|200 |successful |
++------------------+---------------------+
+|400 |Invalid Request |
++------------------+---------------------+
+|401 |Unauthorized |
++------------------+---------------------+
+|500 |Error |
++------------------+---------------------+
+
+Response Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|metricsTotal |N |1 |Integer| |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|papMetrics |N |1 |Integer| |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|pdpMetrics |N |1 |Integer| |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|responseCode |N |1 |Object | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|responseMessage |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+Get Notification
+++++++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |/getNotification |
++--------------------+--------------------------+
+|Operation Type |POST |
++--------------------+--------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|ClientAuth |Y |encoded client authentication details |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-RequestID |N |Request ID to track the requests |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Environment |Y |execution environments |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+HTTP Response Code:
+
++------------------+---------------------+
+|HTTP CODE |Description |
++==================+=====================+
+|200 |successful |
++------------------+---------------------+
+|400 |Invalid Request |
++------------------+---------------------+
+|401 |Unauthorized |
++------------------+---------------------+
+|500 |Error |
++------------------+---------------------+
+
+Response Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|metricsTotal |N |1 |Integer| |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|papMetrics |N |1 |Integer| |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|pdpMetrics |N |1 |Integer| |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|responseCode |N |1 |Object | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|responseMessage |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+List Configuration
+++++++++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |/listConfiguration |
++--------------------+--------------------------+
+|Operation Type |POST |
++--------------------+--------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|ClientAuth |Y |encoded client authentication details |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-RequestID |N |Request ID to track the requests |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Environment |Y |execution environments |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|configAttributes |N |1 |Object | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|configName |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|ecompName |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|policyName |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|requestID |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|unique |N |1 |Boolean| |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+HTTP Response Code:
+
++------------------+---------------------+
+|HTTP CODE |Description |
++==================+=====================+
+|200 |successful |
++------------------+---------------------+
+|400 |Invalid Request |
++------------------+---------------------+
+|401 |Unauthorized |
++------------------+---------------------+
+|500 |Error |
++------------------+---------------------+
+
+Import policy
++++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |/policyEngineImport |
++--------------------+--------------------------+
+|Operation Type |POST |
++--------------------+--------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|ClientAuth |Y |encoded client authentication details |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-RequestID |N |Request ID to track the requests |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Environment |Y |execution environments |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|importParameterJson|Y |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|file |Y |1 |File | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+HTTP Response Code:
+
++------------------+---------------------+
+|HTTP CODE |Description |
++==================+=====================+
+|200 |successful |
++------------------+---------------------+
+|400 |Invalid Request |
++------------------+---------------------+
+|401 |Unauthorized |
++------------------+---------------------+
+|500 |Error |
++------------------+---------------------+
+
+Push Policy
++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |/pushPolicy |
++--------------------+--------------------------+
+|Operation Type |PUT |
++--------------------+--------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|ClientAuth |Y |encoded client authentication details |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-RequestID |N |Request ID to track the requests |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Environment |Y |execution environments |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|pdpGroup |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|policyName |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|policyType |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+HTTP Response Code:
+
++------------------+---------------------+
+|HTTP CODE |Description |
++==================+=====================+
+|200 |successful |
++------------------+---------------------+
+|400 |Invalid Request |
++------------------+---------------------+
+|401 |Unauthorized |
++------------------+---------------------+
+|500 |Error |
++------------------+---------------------+
+
+Send Event
+++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |/sendEvent |
++--------------------+--------------------------+
+|Operation Type |POST |
++--------------------+--------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|ClientAuth |Y |encoded client authentication details |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-RequestID |N |Request ID to track the requests |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Environment |Y |execution environments |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|eventAttributes |N |1 |Object | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|requestID |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+HTTP Response Code:
+
++------------------+---------------------+
+|HTTP CODE |Description |
++==================+=====================+
+|200 |successful |
++------------------+---------------------+
+|400 |Invalid Request |
++------------------+---------------------+
+|401 |Unauthorized |
++------------------+---------------------+
+|500 |Error |
++------------------+---------------------+
+
+Send Heartbeat
+++++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |/sendEvent |
++--------------------+--------------------------+
+|Operation Type |POST |
++--------------------+--------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|ClientAuth |Y |encoded client authentication details |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-RequestID |N |Request ID to track the requests |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Environment |Y |execution environments |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|notificationTopic |Y |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+HTTP Response Code:
+
++------------------+---------------------+
+|HTTP CODE |Description |
++==================+=====================+
+|200 |successful |
++------------------+---------------------+
+|400 |Invalid Request |
++------------------+---------------------+
+|401 |Unauthorized |
++------------------+---------------------+
+|500 |Error |
++------------------+---------------------+
+
+Stop Notification
++++++++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |/stopNotification |
++--------------------+--------------------------+
+|Operation Type |POST |
++--------------------+--------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|ClientAuth |Y |encoded client authentication details |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-RequestID |N |Request ID to track the requests |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Environment |Y |execution environments |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|notificationTopic |Y |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+HTTP Response Code:
+
++------------------+---------------------+
+|HTTP CODE |Description |
++==================+=====================+
+|200 |successful |
++------------------+---------------------+
+|400 |Invalid Request |
++------------------+---------------------+
+|401 |Unauthorized |
++------------------+---------------------+
+|500 |Error |
++------------------+---------------------+
+
+Update Dictionary
++++++++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |/updateDictionaryItem |
++--------------------+--------------------------+
+|Operation Type |PUT |
++--------------------+--------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|ClientAuth |Y |encoded client authentication details |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-RequestID |N |Request ID to track the requests |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Environment |Y |execution environments |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|dictionary |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|dictionaryJson |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|dictionaryType |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|requestID |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+HTTP Response Code:
+
++------------------+---------------------+
+|HTTP CODE |Description |
++==================+=====================+
+|200 |successful |
++------------------+---------------------+
+|400 |Invalid Request |
++------------------+---------------------+
+|401 |Unauthorized |
++------------------+---------------------+
+|500 |Error |
++------------------+---------------------+
+
+Update Policy
++++++++++++++
+
++--------------------+--------------------------+
+|Interface Definition|Description |
++====================+==========================+
+|URI |/updatePolicy |
++--------------------+--------------------------+
+|Operation Type |PUT |
++--------------------+--------------------------+
+
+Request Headers:
+
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Header Name |Qualifier|Description |
++===================+=========+=========================================================================================+
+|ClientAuth |Y |encoded client authentication details |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|X-ECOMP-RequestID |N |Request ID to track the requests |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Environment |Y |execution environments |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+|Authorization |Y |Base64 encoded username:password |
++-------------------+---------+-----------------------------------------------------------------------------------------+
+
+Request Parameters:
+
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|Attribute |Qualifier|Cardinality|Content|Description |
++===================+=========+===========+=======+=============================================================+
+|attributes |N |1 |Object | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|configBody |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|configBodyType |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|configName |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|ecompName |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|policyClass |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|policyConfigType |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|policyDescription |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|policyName |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+|requestID |N |1 |String | |
++-------------------+---------+-----------+-------+-------------------------------------------------------------+
+
+HTTP Response Code:
+
++------------------+---------------------+
+|HTTP CODE |Description |
++==================+=====================+
+|200 |successful |
++------------------+---------------------+
+|400 |Invalid Request |
++------------------+---------------------+
+|401 |Unauthorized |
++------------------+---------------------+
+|500 |Error |
++------------------+---------------------+
\ No newline at end of file diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/GlobalHealthcheckHandler.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/GlobalHealthcheckHandler.java index af0fabc380..52256d91b9 100644 --- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/GlobalHealthcheckHandler.java +++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/GlobalHealthcheckHandler.java @@ -53,7 +53,7 @@ public class GlobalHealthcheckHandler { // Generate a Request Id
String requestId = UUIDChecker.generateUUID(msoLogger);
HealthCheckUtils healthCheck = new HealthCheckUtils ();
- if (!healthCheck.siteStatusCheck (msoLogger, startTime)) {
+ if (!healthCheck.siteStatusCheck (msoLogger)) {
return HealthCheckUtils.HEALTH_CHECK_NOK_RESPONSE;
}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/HealthcheckHandler.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/HealthcheckHandler.java index 291414bf10..55f44a7449 100644 --- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/HealthcheckHandler.java +++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/HealthcheckHandler.java @@ -51,7 +51,7 @@ public class HealthcheckHandler { MsoLogger.setServiceName ("Healthcheck"); UUIDChecker.verifyOldUUID(requestId, msoLogger); HealthCheckUtils healthCheck = new HealthCheckUtils (); - if (!healthCheck.siteStatusCheck(msoLogger, startTime)) { + if (!healthCheck.siteStatusCheck(msoLogger)) { return HealthCheckUtils.HEALTH_CHECK_NOK_RESPONSE; } diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/NodeHealthcheckHandler.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/NodeHealthcheckHandler.java index beb26af88b..0191b546e3 100644 --- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/NodeHealthcheckHandler.java +++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/NodeHealthcheckHandler.java @@ -51,7 +51,7 @@ public class NodeHealthcheckHandler { // Generate a Request Id
String requestId = UUIDChecker.generateUUID(msoLogger);
HealthCheckUtils healthCheck = new HealthCheckUtils ();
- if (!healthCheck.siteStatusCheck (msoLogger, startTime)) {
+ if (!healthCheck.siteStatusCheck (msoLogger)) {
return HealthCheckUtils.HEALTH_CHECK_NOK_RESPONSE;
}
diff --git a/packages/docker/src/main/docker/docker-files/Dockerfile.aria b/packages/docker/src/main/docker/docker-files/Dockerfile.aria index ee16d73733..26f672e51d 100644 --- a/packages/docker/src/main/docker/docker-files/Dockerfile.aria +++ b/packages/docker/src/main/docker/docker-files/Dockerfile.aria @@ -15,15 +15,30 @@ # the License. # ============LICENSE_END==================================================== # - FROM httpd:alpine +ARG aria_rest_url +ARG aria_rest_branch RUN apk update RUN apk add python2 py2-pip gcc python2-dev linux-headers musl-dev git curl - -RUN pip install apache-ariatosca==0.2.0 jinja2==2.8 aria-extension-cloudify==4.1 -RUN curl -sL http://github.com/dfilppi/aria-rest/archive/master.tar.gz|tar xzf - -WORKDIR aria-rest-master +WORKDIR /tmp +RUN git clone -b 0.1.1 https://github.com/cloudify-cosmo/aria-extension-cloudify +WORKDIR /tmp/aria-extension-cloudify +RUN pip install -U setuptools +RUN pip install . +RUN pip install apache-ariatosca==0.1.1 jinja2==2.8 +WORKDIR /tmp +RUN git clone -b ${aria_rest_branch} ${aria_rest_url} +WORKDIR /tmp/so/aria/aria-rest-server/src/main/python/aria-rest RUN pip install . +WORKDIR /tmp +RUN git clone -b 2.0.1 https://github.com/cloudify-cosmo/cloudify-openstack-plugin +RUN wagon create ./cloudify-openstack-plugin +RUN aria plugins install cloudify_openstack_plugin-2.0.1-py27-none-linux_x86_64.wgn +RUN rm cloudify_openstack_plugin-2.0.1-py27-none-linux_x86_64.wgn +RUN git clone -b 1.4.10 https://github.com/cloudify-cosmo/cloudify-aws-plugin +RUN wagon create ./cloudify-aws-plugin +RUN aria plugins install cloudify_aws_plugin-1.4.10-py27-none-linux_x86_64.wgn +RUN rm cloudify_aws_plugin-1.4.10-py27-none-linux_x86_64.wgn CMD aria-rest @@ -32,6 +32,7 @@ <module>status-control</module> <module>bpmn</module> <module>packages</module> + <module>aria/aria-rest-server</module> </modules> <properties> <project.mso.base.folder>.</project.mso.base.folder> diff --git a/status-control/src/main/java/org/openecomp/mso/HealthCheckUtils.java b/status-control/src/main/java/org/openecomp/mso/HealthCheckUtils.java index e7c4e0d3de..b64f5bf232 100644 --- a/status-control/src/main/java/org/openecomp/mso/HealthCheckUtils.java +++ b/status-control/src/main/java/org/openecomp/mso/HealthCheckUtils.java @@ -55,7 +55,7 @@ public class HealthCheckUtils { .entity (NOT_FOUND) .build (); - public enum NodeType {APIH, RA, BPMN}; + public enum NodeType {APIH, RA, BPMN} public boolean catalogDBCheck (MsoLogger subMsoLogger, long startTime) { try(CatalogDatabase catalogDB = CatalogDatabase.getInstance()) { @@ -79,7 +79,7 @@ public class HealthCheckUtils { return true; } - public boolean siteStatusCheck (MsoLogger subMsoLogger, long startTime) { + public boolean siteStatusCheck(MsoLogger subMsoLogger) { // Check the Site Status value in DB first, if set to false, return NOK String site = getProperty("site-name"); @@ -180,57 +180,26 @@ public class HealthCheckUtils { if (null == topologyProp) { return false; } - String port = topologyProp.getProperty("server-port", null); - String ip = System.getProperty("jboss.qualified.host.name"); - String sslEnabled = topologyProp.getProperty("ssl-enable", null); - if (null == port || null == ip || ip.isEmpty() || port.isEmpty()) { - msoLogger.error (MessageEnum.GENERAL_EXCEPTION_ARG, "Not able to get the IP or the Port value. IP:" + ip + "; Port:" + port, "", HEALTH_CHECK, MsoLogger.ErrorCode.DataError, "Not able to get the IP or the Port value. IP:" + ip + "; Port:" + port); - return false; + checkHealthForProperty(topologyProp, "", requestId); + + boolean healthCheck = false; + switch (type) { + case APIH: + healthCheck = checkHealthForProperty(topologyProp, "apih-healthcheck-urn", requestId); + break; + case RA: + healthCheck = checkHealthForProperty(topologyProp, "jra-healthcheck-urn", requestId); + break; + case BPMN: + healthCheck = checkHealthForProperty(topologyProp, "camunda-healthcheck-urn", requestId); + break; + default: + msoLogger.error(MessageEnum.GENERAL_EXCEPTION_ARG, "Unknown NodeType:" + type, "", HEALTH_CHECK, MsoLogger.ErrorCode.DataError, "Unknown NodeType:" + type); + break; } - String[] apis; - if (NodeType.APIH.equals (type)) { - String apiList = topologyProp.getProperty("apih-healthcheck-urn", null); - if (null == apiList) { - String errorDescription = "Not able to get apih-healthcheck-urn parameter"; - msoLogger.error (MessageEnum.GENERAL_EXCEPTION_ARG, errorDescription, "", HEALTH_CHECK, MsoLogger.ErrorCode.DataError, errorDescription); - return false; - } - apis = apiList.split(","); - } else if (NodeType.RA.equals (type)){ - String apiList = topologyProp.getProperty("jra-healthcheck-urn", null); - if (null == apiList) { - String errorDescription = "Not able to get jra-healthcheck-urn parameter"; - msoLogger.error (MessageEnum.GENERAL_EXCEPTION_ARG, errorDescription, "", HEALTH_CHECK, MsoLogger.ErrorCode.DataError, errorDescription); - return false; - } - apis = apiList.split(","); - } else if (NodeType.BPMN.equals (type)){ - String apiList = topologyProp.getProperty("camunda-healthcheck-urn", null); - if (null == apiList) { - String errorDescription = "Not able to get camunda-healthcheck-urn parameter"; - msoLogger.error (MessageEnum.GENERAL_EXCEPTION_ARG, errorDescription, "", HEALTH_CHECK, MsoLogger.ErrorCode.DataError, errorDescription); - return false; - } - apis = apiList.split(","); - } else { - msoLogger.error (MessageEnum.GENERAL_EXCEPTION_ARG, "Unknown NodeType:" + type, "", HEALTH_CHECK, MsoLogger.ErrorCode.DataError, "Unknown NodeType:" + type); - return false; - } - - // Verify health check on APIH servers - for (String url : apis) { - // if any of the parameters is null or empty, no need to establish the health check request, just go to the next iteration - if ((url == null) || url.isEmpty()) { - continue; - } - // Exit the loop if local health check returns false from any of the sub component - if (!this.verifyLocalHealth(ip, port, url, sslEnabled, requestId)) { - return false; - } - } - return true; + return healthCheck; } public boolean verifyGlobalHealthCheck(boolean verifyBpmn, String requestId) { @@ -241,56 +210,99 @@ public class HealthCheckUtils { return false; } - String apihLB = topologyProp.getProperty("apih-load-balancer", null); - String apihApi = topologyProp.getProperty("apih-nodehealthcheck-urn", null); - String bpmnLB= topologyProp.getProperty("camunda-load-balancer", null); - String bpmnApi = topologyProp.getProperty("camunda-nodehealthcheck-urn", null); + return verifyApihServersHealthCheck(topologyProp, requestId) && + verifyCamundaServersHealthCheck(topologyProp, requestId, verifyBpmn) && + verifyRaServersHealthCheck(topologyProp, requestId); + } + + public String getProperty (String name) { + MsoJavaProperties prop = this.loadTopologyProperties(); + + return prop.getProperty(name, null); + } + + protected String getFinalUrl (String ip, String port, String url, String sslEnabled) { + if (null == port && null == sslEnabled) { + int length = ip.length(); + if ("/".equals(ip.substring(length - 1))) { + ip = ip.substring(0, length - 1); + } + return ip + url; + } else if ("true".equalsIgnoreCase(sslEnabled)) { + return "https://" + ip + ":" + port + url; + } else { + return "http://" + ip + ":" + port + url; + } + } + + private boolean verifyRaServersHealthCheck(MsoJavaProperties topologyProp, String requestId) { String jraLB = topologyProp.getProperty("jra-load-balancer", null); String jraApi = topologyProp.getProperty("jra-nodehealthcheck-urn", null); - if (null == apihLB || null == apihApi || null == bpmnLB || null == bpmnApi || null == jraLB || null == jraApi - || apihLB.isEmpty () || apihApi.isEmpty () || bpmnLB.isEmpty () || bpmnApi.isEmpty () || jraLB.isEmpty () || jraApi.isEmpty () ) { - msoLogger.error (MessageEnum.GENERAL_EXCEPTION_ARG, "Key parameters are missing from the topology file", "", HEALTH_CHECK, MsoLogger.ErrorCode.DataError, "Key parameters are missing from the topology file"); + if (null == jraLB || null == jraApi || jraLB.isEmpty() || jraApi.isEmpty()) { + msoLogger.error(MessageEnum.GENERAL_EXCEPTION_ARG, "Key parameters are missing from the topology file", "", HEALTH_CHECK, MsoLogger.ErrorCode.DataError, "Key parameters are missing from the topology file"); return false; } - // Verify health check on APIH servers - if (!this.verifyLocalHealth (apihLB, null, apihApi, null, requestId)) { + return verifyLocalHealth(jraLB, null, jraApi, null, requestId); + } + + private boolean verifyCamundaServersHealthCheck(MsoJavaProperties topologyProp, String requestId, boolean verifyBpmn) { + String bpmnLB = topologyProp.getProperty("camunda-load-balancer", null); + String bpmnApi = topologyProp.getProperty("camunda-nodehealthcheck-urn", null); + + if (null == bpmnLB || null == bpmnApi || bpmnLB.isEmpty() || bpmnApi.isEmpty()) { + msoLogger.error(MessageEnum.GENERAL_EXCEPTION_ARG, "Key parameters are missing from the topology file", "", HEALTH_CHECK, MsoLogger.ErrorCode.DataError, "Key parameters are missing from the topology file"); return false; } - // Verify health check on Camunda servers - if (verifyBpmn) { - if (!this.verifyLocalHealth (bpmnLB, null, bpmnApi, null, requestId)) { - return false; - } - } + return !verifyBpmn || verifyLocalHealth(bpmnLB, null, bpmnApi, null, requestId); + } - // Verify health check on RA servers - if (!verifyLocalHealth (jraLB, null, jraApi, null, requestId)) { + private boolean verifyApihServersHealthCheck(MsoJavaProperties topologyProp, String requestId) { + String apihLB = topologyProp.getProperty("apih-load-balancer", null); + String apihApi = topologyProp.getProperty("apih-nodehealthcheck-urn", null); + + if (null == apihLB || null == apihApi || apihLB.isEmpty() || apihApi.isEmpty()) { + msoLogger.error(MessageEnum.GENERAL_EXCEPTION_ARG, "Key parameters are missing from the topology file", "", HEALTH_CHECK, MsoLogger.ErrorCode.DataError, "Key parameters are missing from the topology file"); return false; } - return true; + return verifyLocalHealth(apihLB, null, apihApi, null, requestId); } - public String getProperty (String name) { - MsoJavaProperties prop = this.loadTopologyProperties(); - - return prop.getProperty(name, null); + private boolean checkHealthForProperty(MsoJavaProperties topologyProp, String property, String requestId) { + String apiList = topologyProp.getProperty(property, null); + if (apiList == null) { + String errorDescription = "Not able to get " + property + " parameter"; + msoLogger.error(MessageEnum.GENERAL_EXCEPTION_ARG, errorDescription, "", HEALTH_CHECK, MsoLogger.ErrorCode.DataError, errorDescription); + return false; + } + String[] apis = apiList.split(","); + return checkHealthForEachApi(topologyProp, apis, requestId); } - protected String getFinalUrl (String ip, String port, String url, String sslEnabled) { - if (null == port && null == sslEnabled) { - int length = ip.length(); - if (ip.substring(length - 1).equals ("/")) { - ip = ip.substring (0, length - 1); + private boolean checkHealthForEachApi(MsoJavaProperties topologyProp, String[] apis, String requestId) { + + String port = topologyProp.getProperty("server-port", null); + String ip = System.getProperty("jboss.qualified.host.name"); + String sslEnabled = topologyProp.getProperty("ssl-enable", null); + + if (null == port || null == ip || ip.isEmpty() || port.isEmpty()) { + msoLogger.error(MessageEnum.GENERAL_EXCEPTION_ARG, "Not able to get the IP or the Port value. IP:" + ip + "; Port:" + port, "", HEALTH_CHECK, MsoLogger.ErrorCode.DataError, "Not able to get the IP or the Port value. IP:" + ip + "; Port:" + port); + return false; + } + + for (String url : apis) { + // if any of the parameters is null or empty, no need to establish the health check request, just go to the next iteration + if ((url == null) || url.isEmpty()) { + continue; + } + // Exit the loop if local health check returns false from any of the sub component + if (!this.verifyLocalHealth(ip, port, url, sslEnabled, requestId)) { + return false; } - return ip + url; - } else if ("true".equalsIgnoreCase(sslEnabled)) { - return "https://" + ip + ":" + port + url; - } else { - return "http://" + ip + ":" + port + url; } + return true; } } diff --git a/status-control/src/test/java/org/openecomp/mso/HealthCheckUtilsTest.java b/status-control/src/test/java/org/openecomp/mso/HealthCheckUtilsTest.java index cdb5695f2c..91016d2475 100644 --- a/status-control/src/test/java/org/openecomp/mso/HealthCheckUtilsTest.java +++ b/status-control/src/test/java/org/openecomp/mso/HealthCheckUtilsTest.java @@ -21,22 +21,16 @@ package org.openecomp.mso; -import org.openecomp.mso.logger.MsoLogger; -import org.openecomp.mso.properties.MsoJavaProperties; -import org.openecomp.mso.requestsdb.RequestsDatabase; import org.apache.http.HttpStatus; import org.apache.http.HttpVersion; import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.message.BasicStatusLine; import org.junit.BeforeClass; import org.junit.Test; import org.mockito.Mockito; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; +import org.openecomp.mso.properties.MsoJavaProperties; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -63,7 +57,7 @@ public class HealthCheckUtilsTest { private static CloseableHttpResponse nokRes, okRes; @BeforeClass - public static final void prepareMockvalues() { + public static void prepareMockvalues() { utils = Mockito.mock(HealthCheckUtils.class); client = Mockito.mock(CloseableHttpClient.class); nokRes = Mockito.mock(CloseableHttpResponse.class); @@ -207,11 +201,11 @@ public class HealthCheckUtilsTest { try { Mockito.when (client.execute (any(HttpUriRequest.class))).thenReturn (okRes); - Boolean res1 = (Boolean)invokeProtectedMethod(tempUtil, "verifyLocalHealth", ip1, port, apihUrl1, sslEnable, null); + boolean res1 = tempUtil.verifyLocalHealth(ip1, port, apihUrl1, sslEnable, null); assertTrue(res1); Mockito.when (client.execute (any(HttpUriRequest.class))).thenReturn (nokRes); - Boolean res2 = (Boolean)invokeProtectedMethod(tempUtil, "verifyLocalHealth", ip1, port, apihUrl1, sslEnable, null); + boolean res2 = tempUtil.verifyLocalHealth(ip1, port, apihUrl1, sslEnable, null); assertFalse(res2); } catch (Exception e) { @@ -270,29 +264,4 @@ public class HealthCheckUtilsTest { Mockito.when(utils.loadTopologyProperties()).thenReturn(properties); } - // User reflection to invoke to avoid change the publicity of the method - private static Object invokeProtectedMethod (HealthCheckUtils tempUtil, String methodName, String arg1, String arg2, String arg3, String arg4, String arg5) { - Method method; - try { - method = HealthCheckUtils.class.getDeclaredMethod(methodName, String.class, String.class, String.class, String.class, String.class); - method.setAccessible(true); - return method.invoke(tempUtil, arg1, arg2, arg3, arg4, arg5); - } catch (NoSuchMethodException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (SecurityException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return null; - } }
\ No newline at end of file |