summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--adapters/mso-network-adapter/src/main/java/org/openecomp/mso/adapters/network/HealthCheckHandler.java2
-rw-r--r--adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/HealthCheckHandler.java2
-rw-r--r--adapters/mso-sdnc-adapter/src/main/java/org/openecomp/mso/adapters/sdnc/impl/SDNCAdapterRestImpl.java6
-rw-r--r--adapters/mso-sdnc-adapter/src/main/java/org/openecomp/mso/adapters/sdnc/sdncrest/SDNCAdapterRest.java2
-rw-r--r--adapters/mso-tenant-adapter/src/main/java/org/openecomp/mso/adapters/tenant/HealthCheckHandler.java2
-rw-r--r--adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/HealthCheckHandler.java2
-rw-r--r--adapters/mso-vnf-adapter/src/main/java/org/openecomp/mso/adapters/vnf/HealthCheckHandler.java2
-rw-r--r--adapters/mso-workflow-message-adapter/src/main/java/org/openecomp/mso/adapters/workflowmessage/WMAdapterRest.java4
-rw-r--r--aria/aria-rest-server/build.py95
-rw-r--r--aria/aria-rest-server/pom.xml88
-rw-r--r--aria/aria-rest-server/src/main/python/aria-rest/aria_rest/rest.py12
-rw-r--r--aria/aria-rest-server/src/main/python/aria-rest/setup.py1
-rw-r--r--asdc-controller/src/main/java/org/openecomp/mso/asdc/healthcheck/HealthCheckHandler.java2
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateE2EServiceInstance.groovy6
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCustomDeleteE2EServiceInstance.groovy2
-rw-r--r--common/src/main/java/org/openecomp/mso/properties/MsoJavaProperties.java25
-rw-r--r--docs/SO_R1_Interface.rst3831
-rw-r--r--mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/GlobalHealthcheckHandler.java2
-rw-r--r--mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/HealthcheckHandler.java2
-rw-r--r--mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/NodeHealthcheckHandler.java2
-rw-r--r--packages/docker/src/main/docker/docker-files/Dockerfile.aria25
-rw-r--r--pom.xml1
-rw-r--r--status-control/src/main/java/org/openecomp/mso/HealthCheckUtils.java176
-rw-r--r--status-control/src/test/java/org/openecomp/mso/HealthCheckUtilsTest.java39
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
diff --git a/pom.xml b/pom.xml
index c7a3b3196e..834fe196f9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -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