diff --git a/cucumber-js-test-apis-ci/.gitignore b/cucumber-js-test-apis-ci/.gitignore
new file mode 100644
index 0000000..316e398
--- /dev/null
+++ b/cucumber-js-test-apis-ci/.gitignore
@@ -0,0 +1,11 @@
+.idea
+.vscode
+.history
+debug.log
+dist
+docs
+node_modules
+.npmrc
+npm-debug.log
+devConfig.json
+jenkinsConfig.json
diff --git a/cucumber-js-test-apis-ci/README.txt b/cucumber-js-test-apis-ci/README.txt
new file mode 100644
index 0000000..35250ed
--- /dev/null
+++ b/cucumber-js-test-apis-ci/README.txt
@@ -0,0 +1,4 @@
+In order to setup the project:
+
+Run "mvn install -DskipTests", this will create the documentation under the "docs".
+Open the index.html under the docs directory and continue from there.
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/config.json b/cucumber-js-test-apis-ci/config.json
new file mode 100644
index 0000000..35c3127
--- /dev/null
+++ b/cucumber-js-test-apis-ci/config.json
@@ -0,0 +1,28 @@
+{
+  "protocol" : "http",
+
+  "onboarding" : {
+    "port" : "onboarding.port",
+    "prefix" : "sdc1/feProxy/onboarding-api/v1.0",
+    "server" : "onboarding.server",
+    "user" : "onboarding.user"
+  },
+  "vf" : {
+    "port" : "vf.port",
+    "prefix" : "sdc1/feProxy/rest/v1",
+    "server" : "vf.server",
+    "user" : "vf.user"
+  },
+  "catalog" : {
+    "port" : "CatalogBE.port",
+    "prefix" : "sdc2/rest/v1",
+    "server" : "CatalogBE.server",
+    "user" : "CatalogBE.user"
+  },
+  "activity_spec" : {
+    "port" : "activity-spec.port",
+    "prefix" : "activity-spec-api/v1.0",
+    "server" : "activity_spec.server",
+    "user" : "activity-spec.user"
+  }
+}
diff --git a/cucumber-js-test-apis-ci/cucumber.js b/cucumber-js-test-apis-ci/cucumber.js
new file mode 100644
index 0000000..4ade9b1
--- /dev/null
+++ b/cucumber-js-test-apis-ci/cucumber.js
@@ -0,0 +1,3 @@
+module.exports = {
+	"default" : "--require stepDefinitions -f summary -r ./features -f json:report/report.json"
+};
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/dev_pom.xml b/cucumber-js-test-apis-ci/dev_pom.xml
new file mode 100644
index 0000000..7ad10f8
--- /dev/null
+++ b/cucumber-js-test-apis-ci/dev_pom.xml
@@ -0,0 +1,138 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>onboarding-cucumber</artifactId>
+    <name>cucumber-report</name>
+
+    <parent>
+        <groupId>org.openecomp.sdc</groupId>
+        <artifactId>sdc-onboarding</artifactId>
+        <version>1.3.1-SNAPSHOT</version>
+        <relativePath>../onboarding/pom.xml</relativePath>
+    </parent>
+
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-clean-plugin</artifactId>
+                <version>2.6.1</version>
+                <executions>
+                    <execution>
+                        <id>clean.dist.folder</id>
+                        <phase>clean</phase>
+                        <goals>
+                            <goal>clean</goal>
+                        </goals>
+                        <configuration>
+                            <filesets>
+                                <fileset>
+                                    <directory>${basedir}/report</directory>
+                                    <includes>
+                                        <include>**/*</include>
+                                    </includes>
+                                </fileset>
+                                <fileset>
+                                    <directory>${basedir}/resources/downloads</directory>
+                                    <includes>
+                                        <include>**/*</include>
+                                    </includes>
+                                </fileset>
+                              <fileset>
+                                <directory>${basedir}/docs</directory>
+                                <includes>
+                                  <include>**/*</include>
+                                </includes>
+                              </fileset>
+                            </filesets>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+
+            <plugin>
+                <artifactId>maven-antrun-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>create-reporting-folders</id>
+                        <phase>generate-sources</phase>
+                        <configuration>
+                            <tasks>
+                                <echo message="Generate reports and downloads folders"/>
+                                <mkdir dir="${basedir}/report"/>
+                                <mkdir dir="${basedir}/resources/downloads"/>
+                            </tasks>
+                        </configuration>
+                        <goals>
+                            <goal>run</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <!-- ============================================= -->
+            <!-- Build the UI module node code -->
+            <!-- ============================================= -->
+            <plugin>
+                <groupId>com.github.eirslett</groupId>
+                <artifactId>frontend-maven-plugin</artifactId>
+                <version>1.6</version>
+
+                <configuration>
+                    <installDirectory>${project.parent.parent.basedir}</installDirectory>
+                </configuration>
+
+                <executions>
+
+                    <execution>
+                        <id>install node and yarn</id>
+                        <goals>
+                            <goal>install-node-and-yarn</goal>
+                        </goals>
+                        <configuration>
+                            <nodeVersion>v9.4.0</nodeVersion>
+                            <yarnVersion>v1.3.2</yarnVersion>
+                        </configuration>
+                    </execution>
+
+                    <execution>
+                        <id>yarn run install</id>
+                        <goals>
+                            <goal>yarn</goal>
+                        </goals>
+                        <configuration>
+                            <arguments>install</arguments>
+                        </configuration>
+                    </execution>
+                  <execution>
+                    <id>yarn run cucumber docs</id>
+                    <goals>
+                      <goal>yarn</goal>
+                    </goals>
+                    <configuration>
+                        <yarnInheritsProxyConfigFromMaven>false</yarnInheritsProxyConfigFromMaven>
+                      <arguments>run cucumber-docs</arguments>
+                    </configuration>
+                  </execution>
+
+                  <execution>
+                    <id>yarn run cucumber test</id>
+                    <goals>
+                      <goal>yarn</goal>
+                    </goals>
+                    <configuration>
+                        <yarnInheritsProxyConfigFromMaven>false</yarnInheritsProxyConfigFromMaven>
+                      <arguments>run test-and-report</arguments>
+                    </configuration>
+                    <phase>test</phase>
+                  </execution>
+
+
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/cucumber-js-test-apis-ci/docker/Dockerfile b/cucumber-js-test-apis-ci/docker/Dockerfile
new file mode 100644
index 0000000..8679bd5
--- /dev/null
+++ b/cucumber-js-test-apis-ci/docker/Dockerfile
@@ -0,0 +1,11 @@
+FROM node:6
+
+
+ENV TESTS_BASE /var/lib/tests
+USER root
+RUN mkdir $TESTS_BASE
+COPY cucumber $TESTS_BASE 
+COPY startup.sh $TESTS_BASE 
+RUN chmod 777 $TESTS_BASE/startup.sh
+
+ENTRYPOINT [ "/var/lib/tests/startup.sh" ]
diff --git a/cucumber-js-test-apis-ci/docker/startup.sh b/cucumber-js-test-apis-ci/docker/startup.sh
new file mode 100644
index 0000000..f38acad
--- /dev/null
+++ b/cucumber-js-test-apis-ci/docker/startup.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+cd /var/lib/tests
+yarn install
+yarn run test-and-report
diff --git a/cucumber-js-test-apis-ci/docker_run.sh b/cucumber-js-test-apis-ci/docker_run.sh
new file mode 100644
index 0000000..dc39627
--- /dev/null
+++ b/cucumber-js-test-apis-ci/docker_run.sh
@@ -0,0 +1 @@
+docker run --volume /data/environments:/var/lib/tests/environments --volume /data/logs/cucumber:/var/lib/tests/report nfv/cucumber-sdc-api-tests:latest
diff --git a/cucumber-js-test-apis-ci/features/AbortFunctionality/TestAbort_ForInvalidHeatFile.feature b/cucumber-js-test-apis-ci/features/AbortFunctionality/TestAbort_ForInvalidHeatFile.feature
new file mode 100644
index 0000000..1c501d6
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/AbortFunctionality/TestAbort_ForInvalidHeatFile.feature
@@ -0,0 +1,45 @@
+# Copyright © 2016-2018 European Support Limited
+#
+# 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.
+
+Feature: Abort Flow - Test validation data
+
+  Background: Init
+    Given I want to create a VLM
+
+  Scenario: Test abort functionality , Check validation data for invalid heat
+    When I want to create a VSP with onboarding type "NetworkPackage"
+    Then I want to make sure this Item has status "Draft"
+
+    When I want to upload a NetworkPackage for this VSP from path "resources/uploads/errorHeat.zip"
+    # abort
+    When I want to delete for path "/vendor-software-products/{item.id}/versions/{item.versionId}/orchestration-template-candidate"
+
+    When I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}"
+    Then I want to check property "onboardingOrigin" does not exist
+    Then I want to check property "candidateOnboardingOrigin" does not exist
+    Then I want to check property "validationData" does not exist
+
+    When I want to upload a NetworkPackage for this VSP from path "resources/uploads/errorHeat.zip"
+    When I want to process the NetworkPackage file for this VSP
+    # validation data should have been updated as heat is invalid
+    Then I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}"
+    Then I want to check property "validationData" exists
+
+    # abort - processed invalid file and check validation data
+    When I want to delete for path "/vendor-software-products/{item.id}/versions/{item.versionId}/orchestration-template-candidate"
+
+    When I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}"
+    Then I want to check property "onboardingOrigin" does not exist
+    Then I want to check property "candidateOnboardingOrigin" does not exist
+    Then I want to check property "validationData" does not exist
diff --git a/cucumber-js-test-apis-ci/features/AbortFunctionality/TestAbort_ForValidHeatFile.feature b/cucumber-js-test-apis-ci/features/AbortFunctionality/TestAbort_ForValidHeatFile.feature
new file mode 100644
index 0000000..c3ee8a5
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/AbortFunctionality/TestAbort_ForValidHeatFile.feature
@@ -0,0 +1,30 @@
+# Copyright © 2016-2018 European Support Limited
+#
+# 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.
+
+Feature: Abort Flow - Test for valid heat
+
+  Background: Init
+    Given I want to create a VLM
+
+  Scenario: Test abort functionality for valid heat
+    When I want to create a VSP with onboarding type "NetworkPackage"
+    Then I want to make sure this Item has status "Draft"
+
+    When I want to upload a NetworkPackage for this VSP from path "resources/uploads/BASE_MUX.zip"
+    Then I want to process the NetworkPackage file for this VSP
+
+    When I want to delete for path "/vendor-software-products/{item.id}/versions/{item.versionId}/orchestration-template-candidate"
+    Then I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}"
+    Then I want to check property "candidateOnboardingOrigin" does not exist
+    Then I want to check property "onboardingOrigin" for value "zip"
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/AbortFunctionality/TestProperties.feature b/cucumber-js-test-apis-ci/features/AbortFunctionality/TestProperties.feature
new file mode 100644
index 0000000..e9e9acd
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/AbortFunctionality/TestProperties.feature
@@ -0,0 +1,32 @@
+# Copyright © 2016-2018 European Support Limited
+#
+# 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.
+
+Feature: Abort Flow - Test Properties
+
+  Background: Init
+    Given I want to create a VLM
+
+  Scenario: Create VSP , Upload Network Pacakage and check properties candidateOnboardingOrigin,onboardingOrigin
+    When I want to create a VSP with onboarding type "NetworkPackage"
+    Then I want to make sure this Item has status "Draft"
+
+    When I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}"
+    Then I want to check property "onboardingOrigin" does not exist
+    Then I want to check property "candidateOnboardingOrigin" does not exist
+
+    When I want to upload a NetworkPackage for this VSP from path "resources/uploads/errorHeat.zip"
+    Then I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}"
+    Then I want to check property "candidateOnboardingOrigin" exists
+    Then I want to check property "candidateOnboardingOrigin" for value "zip"
+    Then I want to check property "onboardingOrigin" does not exist
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/AbortFunctionality/TestRollback.feature b/cucumber-js-test-apis-ci/features/AbortFunctionality/TestRollback.feature
new file mode 100644
index 0000000..d61a1cc
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/AbortFunctionality/TestRollback.feature
@@ -0,0 +1,41 @@
+# Copyright © 2016-2018 European Support Limited
+#
+# 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.
+
+Feature: Abort Flow - Test rollback
+
+  Background: Init
+    Given I want to create a VLM
+
+  Scenario: Test rollback. In case abort it should successfully rollback to previously processed service model
+    When I want to create a VSP with onboarding type "NetworkPackage"
+    Then I want to make sure this Item has status "Draft"
+
+    When I want to upload a NetworkPackage for this VSP from path "resources/uploads/BASE_MUX.zip"
+    Then I want to process the NetworkPackage file for this VSP
+
+    When I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}"
+    Then I want to check property "onboardingOrigin" for value "zip"
+
+    When I want to upload a NetworkPackage for this VSP from path "resources/uploads/errorHeat.zip"
+    Then I want to process the NetworkPackage file for this VSP
+    Then I want to check property "status" for value "Failure"
+
+    When I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}"
+    Then I want to check property "candidateOnboardingOrigin" for value "zip"
+
+    When I want to delete for path "/vendor-software-products/{item.id}/versions/{item.versionId}/orchestration-template-candidate"
+    # rollback - check whether it rolled back to previous processed file
+    Then I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}"
+    Then I want to check property "onboardingOrigin" for value "zip"
+    Then I want to check property "candidateOnboardingOrigin" does not exist
diff --git a/cucumber-js-test-apis-ci/features/AbortFunctionality/TestSubmit.feature b/cucumber-js-test-apis-ci/features/AbortFunctionality/TestSubmit.feature
new file mode 100644
index 0000000..3153022
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/AbortFunctionality/TestSubmit.feature
@@ -0,0 +1,35 @@
+# Copyright © 2016-2018 European Support Limited
+#
+# 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.
+
+Feature: Abort Flow - Test Submit
+
+  Background: Init
+    Given I want to create a VLM
+
+  Scenario: Test submit if file is just uploaded
+    When I want to create a VSP with onboarding type "NetworkPackage"
+    Then I want to make sure this Item has status "Draft"
+
+    When I want to upload a NetworkPackage for this VSP from path "resources/uploads/BASE_MUX.zip"
+    Then I want the following to fail
+    When I want to submit this VSP
+
+  Scenario: Test submit if invalid file is uploaded and procced for validation
+    When I want to create a VSP with onboarding type "NetworkPackage"
+    Then I want to make sure this Item has status "Draft"
+
+    When I want to upload a NetworkPackage for this VSP from path "resources/uploads/errorHeat.zip"
+    Then I want to process the NetworkPackage file for this VSP
+    Then I want the following to fail
+    When I want to submit this VSP
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/ActivitySpec/TestCreate.feature b/cucumber-js-test-apis-ci/features/ActivitySpec/TestCreate.feature
new file mode 100644
index 0000000..c4e77a7
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/ActivitySpec/TestCreate.feature
@@ -0,0 +1,70 @@
+#Feature: ActivitySpec Flow - Test Create Activity Spec
+#
+#Given Default prefix "activity_spec"
+#
+#  # SDC-6350
+#  Scenario: Test Create Activity Spec functionality
+#    #Create ActivitySpec
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with a random value
+#    When I want to create an ActivitySpec
+#    #Check id and versionId returned in response
+#    Then I want to check property "id" exists
+#    And I want to check property "versionId" exists
+#
+#    #List ActivitySpec
+#    And I want to list ActivitySpecs with status "Draft"
+#    And I want to check property "listCount" exists
+#
+#    #Get ActivitySpec and verify its status
+#    And I want to get the ActivitySpec for the current item
+#    And I want to check property "status" for value "Draft"
+#
+#    #Certify and Get ActivitySpec and verify its status
+#    And I want to call action "CERTIFY" on this ActivitySpec item
+#    And I want to get the ActivitySpec for the current item
+#    And I want to check property "status" for value "Certified"
+#
+#    #Deprecate and Get ActivitySpec and verify its status
+#    And I want to call action "DEPRECATE" on this ActivitySpec item
+#    And I want to get the ActivitySpec for the current item
+#    And I want to check property "status" for value "Deprecated"
+#
+#    #Delete and Get ActivitySpec and verify its status
+#    And I want to call action "DELETE" on this ActivitySpec item
+#    And I want to get the ActivitySpec for the current item
+#    And I want to check property "status" for value "Deleted"
+#
+#    #Pass Invalid Id to Get and verify error message
+#    Then I want to set property "item.id" to value "invalidId"
+#    Then I want the following to fail with error message "No Activity Spec found for the given identifiers"
+#    And I want to get the ActivitySpec for the current item
+#
+#  # SDC-6353
+#  Scenario: Test Create Activity Spec With Duplicate Name
+#    #Create ActivitySpec with name "test"
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with value "test"
+#    When I want to create an ActivitySpec
+#    Then I want to check property "id" exists
+#    And I want to check property "versionId" exists
+#
+#    #Again Create ActivitySpec with name "test" and verify error message
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with value "test"
+#    Then I want the following to fail with error message "name already in use"
+#    When I want to create an ActivitySpec
+#
+#  # SDC-6354
+#  Scenario: Test Create Activity Spec With Invalid Name Format
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with value "test!@"
+#    Then I want the following to fail with error message "name should match with \"^[a-zA-Z0-9-]*$\" pattern"
+#    When I want to create an ActivitySpec
+#
+#  # SDC-6355
+#  Scenario: Test Create Activity Spec With Null/Blank Name
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with value ""
+#    Then I want the following to fail with error message "Mandatory name field is missing/null"
+#    When I want to create an ActivitySpec
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/ActivitySpec/TestInvalidStatusTransition.feature b/cucumber-js-test-apis-ci/features/ActivitySpec/TestInvalidStatusTransition.feature
new file mode 100644
index 0000000..452570e
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/ActivitySpec/TestInvalidStatusTransition.feature
@@ -0,0 +1,29 @@
+#Feature: ActivitySpec Flow
+#
+#Given Default prefix "activity_spec"
+#
+#  Scenario: Test Invalid Status Transition for Activity Spec
+#    #Create Activity Spec
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with a random value
+#    When I want to create an ActivitySpec
+#    Then I want to check property "id" exists
+#    And I want to check property "versionId" exists
+#
+#    #Get Activity Spec and verify status
+#    When I want to get the ActivitySpec for the current item
+#    Then I want to check property "status" for value "Draft"
+#
+#    #Deprecate "Draft" activity status and verify error message
+#    Then I want the following to fail with error message "Activity Spec is in an invalid state"
+#    When I want to call action "DEPRECATE" on this ActivitySpec item
+#
+#    #Delete "Draft" activity spec and verify error code
+#    Then I want the following to fail with error message "Activity Spec is in an invalid state"
+#    When I want to call action "DELETE" on this ActivitySpec item
+#
+#    #Certify activity spec
+#    When I want to call action "CERTIFY" on this ActivitySpec item
+#    #Certify "certified" activity spec and verify error code
+#    Then I want the following to fail with error message "Activity Spec is in an invalid state"
+#    When I want to call action "CERTIFY" on this ActivitySpec item
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/ComponentData.feature b/cucumber-js-test-apis-ci/features/ComponentData.feature
new file mode 100644
index 0000000..62f09a3
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/ComponentData.feature
@@ -0,0 +1,52 @@
+Feature: Component - Test Component Composition and Questionnaire Data
+
+  Background: Init
+    Given I want to create a VLM
+
+  Scenario: Test Component Composition and Questionnaire Data After Same Heat Reupload
+    When I want to create a VSP with onboarding type "NetworkPackage"
+    Then I want to make sure this Item has status "Draft"
+
+    When I want to upload a NetworkPackage for this VSP from path "resources/uploads/vMME_Ericsson_small_v2.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    When I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}/components"
+    Then I want to copy to property "componentId" from response data path "results[0].id"
+    Then I want to check property "listCount" for value 4
+    Then I want to check property "results[0].id" exists
+
+    #Verify composition data for first component
+    When I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}/components/{componentId}"
+    Then I want to check property "data.name" exists
+    Then I want to check property "data.displayName" exists
+    Then I want to copy to property "firstCompDisplayName" from response data path "data.displayName"
+    #Ensure composition data does not have vfcCode and nfcFunction since they are moved to questionnaire
+    Then I want to check property "data.vfcCode" does not exist
+    Then I want to check property "data.nfcFunction" does not exist
+
+    When I want to get the questionnaire for this component
+    #Ensure questionnaire data has nfcNamingCode in "general" and populated with value of component displayName
+    Then I want to check value of "general.nfcNamingCode" in the questionnaire data with value of property "firstCompDisplayName"
+
+    #Update questionnaire nfcNamingCode and nfcFunction in "general"
+    And I want to update this questionnaire with value "general/nfcNamingCode" for property "test_update_naming_code"
+    And I want to update this questionnaire with value "general/nfcFunction" for property "test_function"
+    And I want to update this questionnaire
+
+    #Retrive questionnaire and verify nfcNamingCode and nfcFunction in "general" has updated value
+    When I want to get the questionnaire for this component
+    Then I want to check this questionnaire has value "general/nfcNamingCode" for property "test_update_naming_code"
+    Then I want to check this questionnaire has value "general/nfcFunction" for property "test_function"
+
+    #Reupload the same Heat
+    When I want to upload a NetworkPackage for this VSP from path "resources/uploads/vMME_Ericsson_small_v2.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    When I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}/components"
+    #Find component id for which nfcNamingCode and nfcFunction were set in previous HEAT based on component display name
+    Then I want to set componentId for component name in property "firstCompDisplayName"
+
+    #Retrive questionnaire and verify nfcNamingCode and nfcFunction in "general" has retained values that were before heat upload
+    When I want to get the questionnaire for this component
+    Then I want to check this questionnaire has value "general/nfcNamingCode" for property "test_update_naming_code"
+    Then I want to check this questionnaire has value "general/nfcFunction" for property "test_function"
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/Example_Collaboration.feature b/cucumber-js-test-apis-ci/features/Example_Collaboration.feature
new file mode 100644
index 0000000..c799efd
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Example_Collaboration.feature
@@ -0,0 +1,26 @@
+Feature: Collaboration Example File
+
+  Background: Init
+    Given I want to create a VLM
+    Scenario: Testing permissions for contributors and Owners
+      Then I want to check user "mb033001" has no permissions on this Item
+
+      When I want to add user "mb0001" as a contributor to this Item
+      Then I want to get the permissions for this Item
+      Then I want to check property "listCount" for value 2
+      Then I want to check user "cs0008" has role "owner" on this Item
+      Then I want to check user "mb0001" has role "contributor" on this Item
+
+      When I want to set the user to "aaaa"
+      Then I want the following to fail
+      When I want to get the permissions for this Item
+
+      When I want to set the user to "mb0001"
+      Then I want the following to fail
+      When I want to change the owner to user "mb0001" on this Item
+
+      When I want to set the user to "cs0008"
+      When I want to change the owner to user "mb0001" on this Item
+      Then I want to get the permissions for this Item
+      Then I want to check user "cs0008" has role "contributor" on this Item
+      Then I want to check user "mb0001" has role "owner" on this Item
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/Example_HEAT.feature b/cucumber-js-test-apis-ci/features/Example_HEAT.feature
new file mode 100644
index 0000000..778fd96
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Example_HEAT.feature
@@ -0,0 +1,30 @@
+# Copyright © 2016-2018 European Support Limited
+#
+# 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.
+
+Feature: Heat Example File
+  Scenario: Test with update for heat file and check for validation warning
+    Given I want to create a VLM
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+    Then I want to make sure this Item has status "Draft"
+
+    When I want to upload a NetworkPackage for this VSP from path "resources/uploads/BASE_MUX.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    When I want to download the NetworkPackage for this VSP to path "resources/downloads/base_mux.zip"
+    Then I want to check property "data[0].file" for value "CB_BASE.yaml"
+
+    When I want to upload a NetworkPackage for this VSP from path "resources/uploads/BASE_MUX_with_no_base.zip"
+    Then I want to process the NetworkPackage file for this VSP
+    Then I want to check property "errors['CB_MUX.yaml'][0].level" for value "WARNING"
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/Example_ResponseData_CheckAndManipulation.feature b/cucumber-js-test-apis-ci/features/Example_ResponseData_CheckAndManipulation.feature
new file mode 100644
index 0000000..ffc74f1
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Example_ResponseData_CheckAndManipulation.feature
@@ -0,0 +1,22 @@
+Feature: Example for checking response data
+  Scenario: Example Checks
+    # setting some data just for testing purposes
+    Given Response Data:
+    """
+    {
+      "field1" : "string field",
+      "field2" : true,
+      "field3": "5",
+      "field4" : [{"entry1":"a"},{"entry2":"b"},{"entry3":"c"}]
+    }
+    """
+    # printing out for test purposes
+    Then I want to print the context data
+
+    # running the different options of checking the respone data
+    Then I want to check property "field1" for value "string field"
+    Then I want to check property "field2" to be true
+    Then I want to check property "field3" for value 5
+    Then I want to check property "field4" to have length 3
+    Then I want to check property "field4[0].entry1" exists
+    Then I want to check property "field4[0].no_exist" does not exist
diff --git a/cucumber-js-test-apis-ci/features/Example_Rest_Calls.feature b/cucumber-js-test-apis-ci/features/Example_Rest_Calls.feature
new file mode 100644
index 0000000..e650fed
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Example_Rest_Calls.feature
@@ -0,0 +1,36 @@
+Feature: Example Rest Calls
+  Scenario: Call Rest CRUD
+
+# Following will override the server set in the config.json. Use ONLY during development
+#    Given Server host "localhost"
+    Given I want to create a VLM
+    Given I want to create a VSP with onboarding type "Manual"
+
+    # do an update
+    Then I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}"
+
+    # dealing with getting to the correct input data from the request
+    Then I want to remove "id" from the input data
+    Then I want to remove "version" from the input data
+    Then I want to remove "candidateOnboardingOrigin" from the input data
+    Then I want to remove "onboardingOrigin" from the input data
+    Then I want to remove "onboardingMethod" from the input data
+    Then I want to update the input property "description" with value "updated"
+    Then I want to update for path "/vendor-software-products/{item.id}/versions/{item.versionId}" with the input data from the context
+
+    # do a create
+    Then I want to create input data
+    Then I want to update the input property "name" with a random value
+    Then I want to create for path "/vendor-software-products/{item.id}/versions/{item.versionId}/processes" with the input data from the context
+    Then I want to copy to property "lastProcessId" from response data path "value"
+    # do a delete
+    Then I want to delete for path "/vendor-software-products/{item.id}/versions/{item.versionId}/processes" with the value from saved property "lastProcessId"
+
+    When I want to set property "lastProcessId" to value "NotExisting"
+    Then I want the following to fail
+    When I want to delete for path "/vendor-software-products/{item.id}/versions/{item.versionId}/processes" with the value from saved property "lastProcessId"
+
+  Scenario: Create VLM through commands
+    When I want to set the input data to file "resources/json/createVLM.json"
+    Then I want to update the input property "vendorName" with a random value
+    Then I want to create for path "/vendor-license-models" with the input data from the context
diff --git a/cucumber-js-test-apis-ci/features/Example_Toggle.feature b/cucumber-js-test-apis-ci/features/Example_Toggle.feature
new file mode 100644
index 0000000..2d93077
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Example_Toggle.feature
@@ -0,0 +1,8 @@
+Feature: Enable all toggls
+
+Scenario: Enable/Disable all toggls
+    When I want to list Togglz
+    Then I want to set all Togglz to be "true"
+    Then I want to list Togglz
+    Then I want to set all Togglz to be "false"
+    Then I want to list Togglz
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/Example_ToscaTranslationFlow.feature b/cucumber-js-test-apis-ci/features/Example_ToscaTranslationFlow.feature
new file mode 100644
index 0000000..5ec35f9
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Example_ToscaTranslationFlow.feature
@@ -0,0 +1,48 @@
+Feature: Example Tosca Validation Flow
+
+  Background: Init
+    Given I want to create a VLM
+
+  Scenario: Full - Create and submit VSP Network Package and Create VF
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/BASE_MUX.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+    And I want to compare the content of the entry "Artifacts/CB_BASE.yaml" in the zip "resources/downloads/VSPPackage.zip" with file "resources/yaml/CB_BASE.yaml"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Full - Same flow for different HEAT file
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/NEW_NC_with_manifest.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+    Then I want to create a VF for this Item
+
+  Scenario: Test Validation Error
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/errorHeat.zip"
+    And I want to process the NetworkPackage file for this VSP
+    And I want to print the context data
+
+    Then I want to check property "errors['first.env'][0].level" for value "ERROR"
+    Then I want to check property "errors['first.env'][0].message" for value "ERROR: [YML1]: Invalid YAML format Problem - [empty yaml]"
+
+  Scenario: yaml to json
+    When I want to load the yaml content of the entry "CB_BASE.yaml" in the zip "resources/uploads/BASE_MUX.zip" to context
+    Then I want to check property "parameters.vnf_name.description" for value "Unique name for this VF instance"
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/Example_VLM.feature b/cucumber-js-test-apis-ci/features/Example_VLM.feature
new file mode 100644
index 0000000..f4093ff
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Example_VLM.feature
@@ -0,0 +1,46 @@
+Feature: VLM Example File
+  Scenario: VLM Defaults
+
+    When I want to create a VLM
+    Then I want to make sure this Item has status "Draft"
+    When I want to submit this VLM
+    Then I want to make sure this Item has status "Certified"
+    Then I want to create a new version for this Item
+
+  Scenario: Testing revisions with VLM
+    When I want to create a VLM
+
+    When I want to get path "/items/{item.id}/versions/{item.versionId}/revisions"
+    Then I want to check property "listCount" for value 1
+
+    # example creating input data
+    Then I want to create input data
+    Then I want to update the input property "name" with a random value
+    Then I want to update the input property "type" with value "Universal"
+    Then I want to create for path "/vendor-license-models/{item.id}/versions/{item.versionId}/license-key-groups" with the input data from the context
+    Then I want to copy to property "lastProcessId" from response data path "value"
+    Then I want to commit this Item
+
+    Then I want to get path "/items/{item.id}/versions/{item.versionId}/revisions"
+    Then I want to check property "listCount" for value 2
+    Then I want to copy to property "setRevision" from response data path "results[1].id"
+
+    When I want to revert this Item to the revision with the value from saved property "setRevision"
+    Then I want to get path "/items/{item.id}/versions/{item.versionId}/revisions"
+    Then I want to check property "listCount" for value 2
+
+    When I want to get path "/vendor-license-models/{item.id}/versions/{item.versionId}/license-key-groups"
+    Then I want to check property "listCount" for value 0
+
+    Then I want to create input data
+    Then I want to update the input property "name" with a random value
+    Then I want to update the input property "type" with value "Universal"
+    Then I want to create for path "/vendor-license-models/{item.id}/versions/{item.versionId}/license-key-groups" with the input data from the context
+    Then I want to copy to property "newLKG" from response data path "value"
+    Then I want to delete for path "/vendor-license-models/{item.id}/versions/{item.versionId}/license-key-groups" with the value from saved property "newLKG"
+
+    When I want to set property "NotExisting" to value "NotExisting"
+    Then I want the following to fail with error code "GENERAL_ERROR_REST_ID"
+    Then I want to revert this Item to the revision with the value from saved property "NotExisting"
+    Then I want to revert this Item to the revision with the value from saved property "setRevision"
+
diff --git a/cucumber-js-test-apis-ci/features/Example_VSP.feature b/cucumber-js-test-apis-ci/features/Example_VSP.feature
new file mode 100644
index 0000000..5cffa58
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Example_VSP.feature
@@ -0,0 +1,60 @@
+Feature: VSP Example File
+
+  Background: Init
+    Given I want to create a VLM
+
+  Scenario: Create and submit VSP Network Package
+    When I want to create a VSP with onboarding type "NetworkPackage"
+    Then I want to make sure this Item has status "Draft"
+
+    When I want to upload a NetworkPackage for this VSP from path "resources/uploads/BASE_MUX.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+    When I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+    Then I want to compare the content of the entry "Artifacts/CB_BASE.yaml" in the zip "resources/downloads/VSPPackage.zip" with file "resources/yaml/CB_BASE.yaml"
+    When I want to load the yaml content of the entry "Artifacts/CB_BASE.yaml" in the zip "resources/downloads/VSPPackage.zip" to context
+    Then I want to check property "parameters.vnf_name.description" for value "Unique name for this VF instance"
+    When I want to load the json content of the entry "Artifacts/MANIFEST.json" in the zip "resources/downloads/VSPPackage.zip" to context
+    Then I want to check property "description" for value "for testing"
+  Scenario: Create VSP Manual
+    When I want to create a VSP with onboarding type "Manual"
+    Then I want to make sure this Item has status "Draft"
+
+    When I want to create a VSP with onboarding type "Manual"
+    Then I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}"
+
+    When I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}/components"
+    Then I want to check property "listCount" for value 0
+
+    When I want to add a component
+    Then I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}/components"
+    Then I want to check property "listCount" for value 1
+
+    Then I want the following to fail with error code "VSP_VFC_COUNT_EXCEED"
+    When I want to add a component
+
+    Then I want to commit this Item
+    Then I want the following to fail
+    When I want to submit this VSP
+
+
+  Scenario: VSP Questionnaire Examples
+    Given I want to create a VSP with onboarding type "Manual"
+
+    When I want to get the questionnaire for this item
+
+    When I want to add a component
+    Then I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}/components"
+    Then I want to check property "listCount" for value 1
+
+    Then I want to get the questionnaire for this item
+    And I want to update this questionnaire with value "15" for property "general/storageDataReplication/storageReplicationSize"
+    And I want to update this questionnaire
+
+    When I want to get the questionnaire for this item
+    Then I want to check this questionnaire has value "15" for property "general/storageDataReplication/storageReplicationSize"
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/GlobalTypes/TestInterfaceLifecycleTypes.feature b/cucumber-js-test-apis-ci/features/GlobalTypes/TestInterfaceLifecycleTypes.feature
new file mode 100644
index 0000000..ef98fa5
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/GlobalTypes/TestInterfaceLifecycleTypes.feature
@@ -0,0 +1,8 @@
+Feature: Interface Lifecycle Types
+
+Scenario: Test Interface Lifecycle Types
+
+  When I want to get interface lifecycle types
+  Then I want to check property "tosca.interfaces.node.lifecycle.standard" exists
+  Then I want to check property "tosca.interfaces.nfv.vnf.lifecycle.nfv" exists
+
diff --git a/cucumber-js-test-apis-ci/features/InterfaceOperation/TestResourceInterfaceOperation.feature b/cucumber-js-test-apis-ci/features/InterfaceOperation/TestResourceInterfaceOperation.feature
new file mode 100644
index 0000000..ed09f2f
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/InterfaceOperation/TestResourceInterfaceOperation.feature
@@ -0,0 +1,98 @@
+Feature: Interface Operation Feature
+
+ Background: Init
+  Given I want to create a VF
+
+ Scenario: Test InterfaceOperation CRUD
+    #Create Operations
+  When I want to create an Operation
+  Then I want to check property "uniqueId" exists
+  And  I want to create an Operation with workflow
+  Then I want to check property "uniqueId" exists
+  And  I want to create an Operation
+  Then I want to check property "uniqueId" exists
+  When I want to create an Operation with input output
+  Then I want to check property "uniqueId" exists
+
+   #List All Operations
+  When I want to list Operations
+
+    #Get Operation By OperationId
+  When I want to get an Operation by Id
+  Then I want to check property "uniqueId" exists
+   #Update Operation
+  When I want to update an Operation
+  Then I want to check property "uniqueId" exists
+
+   #Delete Operation
+  When I want to delete an Operation
+
+  #Checkin
+  When I want to checkin this component
+  Then I want to check property "lifecycleState" for value "NOT_CERTIFIED_CHECKIN"
+
+  #Certify
+  Then I want to certify this component
+  And I want to check property "lifecycleState" for value "CERTIFIED"
+
+ Scenario: Test InterfaceOperation CREATE
+  #Create Operations
+  When I want to create an Operation
+  Then I want to check property "uniqueId" exists
+  And  I want to create an Operation
+  Then I want to check property "uniqueId" exists
+  And  I want to create an Operation
+  Then I want to check property "uniqueId" exists
+
+ #List All Operations
+  When I want to list Operations
+
+#Checkin
+  When I want to checkin this component
+  Then I want to check property "lifecycleState" for value "NOT_CERTIFIED_CHECKIN"
+
+#Certify
+  Then I want to certify this component
+  And I want to check property "lifecycleState" for value "CERTIFIED"
+
+
+ Scenario: Test InterfaceOperation UPDATE
+    #Create Operation
+  When I want to create an Operation
+  Then I want to check property "uniqueId" exists
+
+    #Get Operation By OperationId
+  When I want to get an Operation by Id
+  Then I want to check property "uniqueId" exists
+   #Update Operation
+  When I want to update an Operation
+  Then I want to check property "uniqueId" exists
+
+  #Checkin
+  When I want to checkin this component
+  Then I want to check property "lifecycleState" for value "NOT_CERTIFIED_CHECKIN"
+
+  #Certify
+  Then I want to certify this component
+  And I want to check property "lifecycleState" for value "CERTIFIED"
+
+
+ Scenario: Test InterfaceOperation DELETE
+    #Create Operation
+  When I want to create an Operation
+  Then I want to check property "uniqueId" exists
+
+    #Get Operation By OperationId
+  When I want to get an Operation by Id
+  Then I want to check property "uniqueId" exists
+
+   #Delete Operation
+  When I want to delete an Operation
+
+  #Checkin
+  When I want to checkin this component
+  Then I want to check property "lifecycleState" for value "NOT_CERTIFIED_CHECKIN"
+
+  #certify
+  Then I want to certify this component
+  And I want to check property "lifecycleState" for value "CERTIFIED"
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/InterfaceOperation/TestServiceInterfaceOperation.feature b/cucumber-js-test-apis-ci/features/InterfaceOperation/TestServiceInterfaceOperation.feature
new file mode 100644
index 0000000..1ff0ba3
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/InterfaceOperation/TestServiceInterfaceOperation.feature
@@ -0,0 +1,37 @@
+Feature: Interface Operation Feature
+
+ Background: Init
+  Given I want to create a Service
+
+ Scenario: Test InterfaceOperation CRUD
+   #Create Operations
+  When I want to create an Operation
+  Then I want to check property "uniqueId" exists
+  And  I want to create an Operation with workflow
+  Then I want to check property "uniqueId" exists
+  And  I want to create an Operation
+  Then I want to check property "uniqueId" exists
+  When I want to create an Operation with input output
+  Then I want to check property "uniqueId" exists
+
+   #List All Operations
+  When I want to list Operations
+
+   #Get Operation By OperationId
+  When I want to get an Operation by Id
+  Then I want to check property "uniqueId" exists
+
+   #Update Operation
+  When I want to update an Operation
+  Then I want to check property "uniqueId" exists
+
+   #Delete Operation
+  When I want to delete an Operation
+
+   #Checkin
+  When I want to checkin this component
+  Then I want to check property "lifecycleState" for value "NOT_CERTIFIED_CHECKIN"
+
+   #Submit
+  Then I want to submit this component
+  And I want to check property "lifecycleState" for value "READY_FOR_CERTIFICATION"
diff --git a/cucumber-js-test-apis-ci/features/Onboarding/ArchiveItem/ArchiveVlm.feature b/cucumber-js-test-apis-ci/features/Onboarding/ArchiveItem/ArchiveVlm.feature
new file mode 100644
index 0000000..f4b524b
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Onboarding/ArchiveItem/ArchiveVlm.feature
@@ -0,0 +1,42 @@
+Feature: Archive and Restore VLM
+
+    Scenario: Archive VLM with Draft
+        When I want to create a VLM
+        Then I want to create input data
+        Then I want to update the input property "name" with a random value
+        Then I want to update the input property "type" with value "Universal"
+        Then I want to create for path "/vendor-license-models/{item.id}/versions/{item.versionId}/license-key-groups" with the input data from the context
+        Then I want to commit this Item
+
+        Then I want to archive this item
+        Then I want to list Archived VLMs
+        Then I want to check that item exits in response
+
+    Scenario: Archive Already Archived VLM - Negative
+        When I want to create a VLM
+        Then I want to create input data
+        Then I want to update the input property "name" with a random value
+        Then I want to update the input property "type" with value "Universal"
+        Then I want to create for path "/vendor-license-models/{item.id}/versions/{item.versionId}/license-key-groups" with the input data from the context
+        Then I want to submit this VLM
+
+        Then I want to archive this item
+        Then I want to list Archived VLMs
+        Then I want to check that item exits in response
+        Then I want the following to fail with error message "Archive item failed, item {item.id} is already Archived"
+        Then I want to archive this item
+
+
+    Scenario: Archive Certified VLM
+            When I want to create a VLM
+            Then I want to create input data
+            Then I want to update the input property "name" with a random value
+            Then I want to update the input property "type" with value "Universal"
+            Then I want to create for path "/vendor-license-models/{item.id}/versions/{item.versionId}/license-key-groups" with the input data from the context
+            Then I want to submit this VLM
+
+            Then I want to archive this item
+            Then I want to list Archived VLMs
+            Then I want to check that item exits in response
+            Then I want to list Active VLMs
+            Then I want to check that item does not exits in response
diff --git a/cucumber-js-test-apis-ci/features/Onboarding/ArchiveItem/ArchiveVsp.feature b/cucumber-js-test-apis-ci/features/Onboarding/ArchiveItem/ArchiveVsp.feature
new file mode 100644
index 0000000..2cc0574
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Onboarding/ArchiveItem/ArchiveVsp.feature
@@ -0,0 +1,58 @@
+Feature: Archive and Restore VSP
+
+    Background: Init
+        Given I want to create a VLM
+
+    Scenario: Archive VSP with Draft
+            When I want to create a VSP with onboarding type "NetworkPackage"
+            When I want to upload a NetworkPackage for this VSP from path "resources/uploads/BASE_MUX.zip"
+            And I want to process the NetworkPackage file for this VSP
+
+            Then I want to commit this Item
+            Then I want to get path "/items/{item.id}/versions"
+            Then I want to check property "listCount" for value 1
+            Then I want to make sure this Item has status "Draft"
+
+            Then I want to archive this item
+            Then I want to list Archived VSPs
+            Then I want to check that item exits in response
+            Then I want to list Active VSPs
+            Then I want to check that item does not exits in response
+
+    Scenario: Archive Already Archived VSP - Negative
+            When I want to create a VSP with onboarding type "NetworkPackage"
+            When I want to upload a NetworkPackage for this VSP from path "resources/uploads/BASE_MUX.zip"
+            And I want to process the NetworkPackage file for this VSP
+            Then I want to commit this Item
+
+            Then I want to archive this item
+            Then I want to list Archived VSPs
+            Then I want to check that item exits in response
+            Then I want to list Active VSPs
+            Then I want to check that item does not exits in response
+
+            Then I want the following to fail with error message "Archive item failed, item {item.id} is already Archived"
+            Then I want to archive this item
+
+
+    Scenario: Archive Certified VSP
+            When I want to create a VSP with onboarding type "NetworkPackage"
+            Then I want to make sure this Item has status "Draft"
+            When I want to upload a NetworkPackage for this VSP from path "resources/uploads/BASE_MUX.zip"
+            And I want to process the NetworkPackage file for this VSP
+
+            Then I want to commit this Item
+            Then I want to get path "/items/{item.id}/versions"
+            Then I want to check property "listCount" for value 1
+            Then I want to make sure this Item has status "Draft"
+
+            When I want to submit this VSP
+            Then I want to make sure this Item has status "Certified"
+            Then I want to get path "/items/{item.id}/versions"
+            Then I want to check property "listCount" for value 1
+
+            Then I want to archive this item
+            Then I want to list Archived VSPs
+            Then I want to check that item exits in response
+            Then I want to list Active VSPs
+            Then I want to check that item does not exits in response
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/Onboarding/ArchiveItem/FilterArchivedVSPpackage.feature b/cucumber-js-test-apis-ci/features/Onboarding/ArchiveItem/FilterArchivedVSPpackage.feature
new file mode 100644
index 0000000..f68eece
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Onboarding/ArchiveItem/FilterArchivedVSPpackage.feature
@@ -0,0 +1,40 @@
+Feature: Filter Archived VSP Package Details
+
+  Background: Init
+    Given I want to create a VLM
+
+  Scenario: Active VSP Package
+        When I want to create a VSP with onboarding type "NetworkPackage"
+        Then I want to make sure this Item has status "Draft"
+
+        When I want to upload a NetworkPackage for this VSP from path "resources/uploads/BASE_MUX.zip"
+        And I want to process the NetworkPackage file for this VSP
+        Then I want to commit this Item
+        Then I want to submit this VSP
+        Then I want to package this VSP
+        Then I want to make sure this Item has status "Certified"
+        Then I want to get path "/items/{item.id}/versions"
+        Then I want to check property "listCount" for value 1
+
+        Then I want to list Active VSPs packages
+        Then I want to check that VSP package exits in response
+
+
+  Scenario: Archived VSP Package
+          When I want to create a VSP with onboarding type "NetworkPackage"
+          Then I want to make sure this Item has status "Draft"
+
+          When I want to upload a NetworkPackage for this VSP from path "resources/uploads/BASE_MUX.zip"
+          And I want to process the NetworkPackage file for this VSP
+          Then I want to commit this Item
+          Then I want to submit this VSP
+          Then I want to package this VSP
+          Then I want to make sure this Item has status "Certified"
+          Then I want to get path "/items/{item.id}/versions"
+          Then I want to check property "listCount" for value 1
+          Then I want to archive this item
+
+          Then I want to list Archived VSPs packages
+          Then I want to check that VSP package exits in response
+
+
diff --git a/cucumber-js-test-apis-ci/features/Onboarding/DeleteItem/DeleteVLMCertified.feature b/cucumber-js-test-apis-ci/features/Onboarding/DeleteItem/DeleteVLMCertified.feature
new file mode 100644
index 0000000..4eb31ae
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Onboarding/DeleteItem/DeleteVLMCertified.feature
@@ -0,0 +1,24 @@
+Feature: Delete VLM Certified
+
+    Scenario: Delete VLM that was certified - negative
+        When I want to create a VLM
+        Then I want to create input data
+        Then I want to update the input property "name" with a random value
+        Then I want to update the input property "type" with value "Universal"
+        Then I want to create for path "/vendor-license-models/{item.id}/versions/{item.versionId}/license-key-groups" with the input data from the context
+        Then I want to copy to property "lastProcessId" from response data path "value"
+        Then I want to commit this Item
+
+        Then I want to get path "/items/{item.id}/versions"
+        Then I want to check property "listCount" for value 1
+        Then I want to make sure this Item has status "Draft"
+        When I want to submit this VLM
+        Then I want to make sure this Item has status "Certified"
+        Then I want to get path "/items/{item.id}/versions"
+        Then I want to check property "listCount" for value 1
+
+        Then I want the following to fail with error message "VLM has been certified and cannot be deleted."
+        Then I want to delete this VLM
+
+       Then I want to get path "/items/{item.id}/versions"
+       Then I want to check property "listCount" for value 1
diff --git a/cucumber-js-test-apis-ci/features/Onboarding/DeleteItem/DeleteVLMDraft.feature b/cucumber-js-test-apis-ci/features/Onboarding/DeleteItem/DeleteVLMDraft.feature
new file mode 100644
index 0000000..ad8bec5
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Onboarding/DeleteItem/DeleteVLMDraft.feature
@@ -0,0 +1,24 @@
+Feature: Delete VLM
+
+Scenario: Delete VLM with only draft
+    When I want to create a VLM
+    Then I want to create input data
+    Then I want to update the input property "name" with a random value
+    Then I want to update the input property "type" with value "Universal"
+    Then I want to create for path "/vendor-license-models/{item.id}/versions/{item.versionId}/license-key-groups" with the input data from the context
+    Then I want to copy to property "lastProcessId" from response data path "value"
+    Then I want to commit this Item
+
+    Then I want to get path "/items/{item.id}/versions"
+    Then I want to check property "listCount" for value 1
+    Then I want to make sure this Item has status "Draft"
+
+    Then I want to delete this VLM
+
+   Then I want the following to fail with error code "ENTITY_NOT_FOUND"
+   Then I want to get path "/items/{item.id}/versions"
+
+
+
+
+
diff --git a/cucumber-js-test-apis-ci/features/Onboarding/DeleteItem/DeleteVSPCertified.feature b/cucumber-js-test-apis-ci/features/Onboarding/DeleteItem/DeleteVSPCertified.feature
new file mode 100644
index 0000000..35a506a
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Onboarding/DeleteItem/DeleteVSPCertified.feature
@@ -0,0 +1,29 @@
+Feature: Delete VSP Draft
+
+    Background: Init
+        Given I want to create a VLM
+
+    Scenario: Delete VSP with only draft
+        When I want to create a VSP with onboarding type "NetworkPackage"
+        Then I want to make sure this Item has status "Draft"
+
+        When I want to upload a NetworkPackage for this VSP from path "resources/uploads/BASE_MUX.zip"
+        And I want to process the NetworkPackage file for this VSP
+
+        Then I want to commit this Item
+
+        Then I want to get path "/items/{item.id}/versions"
+        Then I want to check property "listCount" for value 1
+        Then I want to make sure this Item has status "Draft"
+
+        When I want to submit this VSP
+        Then I want to make sure this Item has status "Certified"
+        Then I want to get path "/items/{item.id}/versions"
+        Then I want to check property "listCount" for value 1
+
+        Then I want the following to fail with error message "VSP has been certified and cannot be deleted."
+        Then I want to delete this VSP
+
+        Then I want to get path "/items/{item.id}/versions"
+        Then I want to check property "listCount" for value 1
+
diff --git a/cucumber-js-test-apis-ci/features/Onboarding/DeleteItem/DeleteVSPDraft.feature b/cucumber-js-test-apis-ci/features/Onboarding/DeleteItem/DeleteVSPDraft.feature
new file mode 100644
index 0000000..5248131
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Onboarding/DeleteItem/DeleteVSPDraft.feature
@@ -0,0 +1,22 @@
+Feature: Delete VSP Certified
+
+    Background: Init
+        Given I want to create a VLM
+
+    Scenario: Delete VSP with certified - negative
+        When I want to create a VSP with onboarding type "NetworkPackage"
+        Then I want to make sure this Item has status "Draft"
+
+        When I want to upload a NetworkPackage for this VSP from path "resources/uploads/BASE_MUX.zip"
+        And I want to process the NetworkPackage file for this VSP
+
+        Then I want to commit this Item
+
+        Then I want to get path "/items/{item.id}/versions"
+        Then I want to check property "listCount" for value 1
+        Then I want to make sure this Item has status "Draft"
+
+        Then I want to delete this VSP
+
+        Then I want the following to fail with error code "ENTITY_NOT_FOUND"
+        Then I want to get path "/items/{item.id}/versions"
diff --git a/cucumber-js-test-apis-ci/features/Onboarding/ListItems/ListItemsFilters.feature b/cucumber-js-test-apis-ci/features/Onboarding/ListItems/ListItemsFilters.feature
new file mode 100644
index 0000000..8b0a232
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Onboarding/ListItems/ListItemsFilters.feature
@@ -0,0 +1,86 @@
+Feature: List items with various filters
+
+  Background: Init - create various items in order to test list items filters
+    Given I want to set the user to "cs0008"
+    Given I want to create a VLM
+    Then I want to copy to property "noPermissionDraftVlmId" from response data path "itemId"
+
+    Given I want to create a VLM
+    Then I want to copy to property "noPermissionCertifiedVlmId" from response data path "itemId"
+    And I want to submit this VLM
+
+    Given I want to set the user to "mb1001"
+
+    Given I want to create a VLM
+    Then I want to copy to property "draftVlmId" from response data path "itemId"
+
+    Given I want to create a VLM
+    Then I want to copy to property "certifiedVlmId" from response data path "itemId"
+    And I want to submit this VLM
+
+    Given I want to create a VLM
+    Then I want to copy to property "archivedDraftVlmId" from response data path "itemId"
+    And I want to archive this item
+
+    Given I want to create a VLM
+    Then I want to copy to property "archivedCertifiedVlmId" from response data path "itemId"
+    And I want to submit this VLM
+    And I want to archive this item
+
+    Given I want to create a VSP with onboarding type "NetworkPackage"
+    Then I want to copy to property "npDraftVspId" from response data path "itemId"
+
+    Given I want to create a VSP with onboarding type "Manual"
+    Then I want to copy to property "manualDraftVspId" from response data path "itemId"
+
+  Scenario: List workspace items - active, draft, editable by the user
+    When I want to get path "/items?itemStatus=ACTIVE&versionStatus=Draft&permission=Owner,Contributor"
+
+    Then I want to check that element in the response list with "id" equals to value of saved property "draftVlmId" exists
+    And I want to check that element in the response list with "id" equals to value of saved property "npDraftVspId" exists
+    And I want to check that element in the response list with "id" equals to value of saved property "manualDraftVspId" exists
+
+    But I want to check that element in the response list with "id" equals to value of saved property "noPermissionDraftVlmId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "noPermissionCertifiedVlmId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "certifiedVlmId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "archivedDraftVlmId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "archivedCertifiedVlmId" does not exist
+
+  Scenario: List catalog items - active, certified
+    When I want to get path "/items?itemStatus=ACTIVE&versionStatus=Certified"
+
+    Then I want to check that element in the response list with "id" equals to value of saved property "noPermissionCertifiedVlmId" exists
+    And I want to check that element in the response list with "id" equals to value of saved property "certifiedVlmId" exists
+
+    But I want to check that element in the response list with "id" equals to value of saved property "draftVlmId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "npDraftVspId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "manualDraftVspId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "noPermissionDraftVlmId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "archivedDraftVlmId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "archivedCertifiedVlmId" does not exist
+
+  Scenario: List archived certified items
+    When I want to get path "/items?itemStatus=ARCHIVED&versionStatus=Certified"
+
+    Then I want to check that element in the response list with "id" equals to value of saved property "archivedCertifiedVlmId" exists
+
+    But I want to check that element in the response list with "id" equals to value of saved property "archivedDraftVlmId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "noPermissionCertifiedVlmId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "certifiedVlmId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "draftVlmId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "npDraftVspId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "manualDraftVspId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "noPermissionDraftVlmId" does not exist
+
+  Scenario: List only active draft manual vsps + vlms owned by the user
+    When I want to get path "/items?itemStatus=ACTIVE&versionStatus=Draft&onboardingMethod=Manual&permission=Owner"
+
+    Then I want to check that element in the response list with "id" equals to value of saved property "draftVlmId" exists
+    And I want to check that element in the response list with "id" equals to value of saved property "manualDraftVspId" exists
+
+    But I want to check that element in the response list with "id" equals to value of saved property "npDraftVspId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "noPermissionDraftVlmId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "noPermissionCertifiedVlmId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "certifiedVlmId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "archivedDraftVlmId" does not exist
+    And I want to check that element in the response list with "id" equals to value of saved property "archivedCertifiedVlmId" does not exist
diff --git a/cucumber-js-test-apis-ci/features/Onboarding/ListItems/ListItemsFiltersFailures.feature b/cucumber-js-test-apis-ci/features/Onboarding/ListItems/ListItemsFiltersFailures.feature
new file mode 100644
index 0000000..53807af
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Onboarding/ListItems/ListItemsFiltersFailures.feature
@@ -0,0 +1,24 @@
+Feature: List items with incorrect filter values
+
+  Scenario: Filter by incorrect item type - negative
+    When I want the following to fail with error code "GENERAL_ERROR_REST_ID"
+    Then I want to get path "/items?itemType=bsp"
+
+  Scenario: Filter by incorrect permission - negative
+    When I want the following to fail with error code "GENERAL_ERROR_REST_ID"
+    Then I want to get path "/items?permission=Contributer"
+
+  Scenario: Filter by incorrect version status - negative
+    When I want the following to fail with error code "GENERAL_ERROR_REST_ID"
+    Then I want to get path "/items?versionStatus=Draftt"
+
+  Scenario: Filter by incorrect item status - negative
+    When I want the following to fail with error code "GENERAL_ERROR_REST_ID"
+    Then I want to get path "/items?itemStatus=active"
+
+  Scenario: Filter by incorrect onboarding method - negative
+    When I want the following to fail with error code "GENERAL_ERROR_REST_ID"
+    Then I want to get path "/items?onboardingMethod=heat"
+
+    Then I want to print the context data
+
diff --git a/cucumber-js-test-apis-ci/features/Onboarding/UniqueValue.feature b/cucumber-js-test-apis-ci/features/Onboarding/UniqueValue.feature
new file mode 100644
index 0000000..31e41b9
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/Onboarding/UniqueValue.feature
@@ -0,0 +1,33 @@
+Feature: Unique value
+
+  Scenario: List unique types
+    When I want to get path "/unique-types"
+    Then I want to check property "listCount" for value 2
+    And I want to check property "results[0]" for value "VspName"
+    And I want to check property "results[1]" for value "VlmName"
+
+  Scenario: Get unique value - non existing type (negative)
+    Given I want the following to fail with error code "UNIQUE_TYPE_NOT_FOUND"
+    When I want to get path "/unique-types/nonExistingType/values/someValue"
+
+  Scenario: Get unique value - non existing VLM name
+    When I want to get path "/unique-types/VlmName/values/nonExistingName"
+    Then I want to check property "occupied" to be false
+
+  Scenario: Get unique value - non existing VSP name
+    When I want to get path "/unique-types/VspName/values/nonExistingName"
+    Then I want to check property "occupied" to be false
+
+  Scenario: Get unique value - existing VLM name
+    Given I want to create a VLM
+
+    When I want to get path "/unique-types/VlmName/values/{vlm.name}"
+    Then I want to check property "occupied" to be true
+
+  Scenario: Get unique value - existing VSP name
+    Given I want to create a VLM
+    And I want to create a VSP with onboarding type "NetworkPackage"
+    And I want to get path "/vendor-software-products/{item.id}/versions/{item.versionId}"
+
+    When I want to get path "/unique-types/VspName/values/{responseData.name}"
+    Then I want to check property "occupied" to be true
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/TOSCA/CapabilityDataType.feature b/cucumber-js-test-apis-ci/features/TOSCA/CapabilityDataType.feature
new file mode 100644
index 0000000..ef240e3
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/TOSCA/CapabilityDataType.feature
@@ -0,0 +1,20 @@
+Feature: Tosca Capability Refactor Flow
+
+  Background: Init
+    Given I want to create a VLM
+    Given I want to set all Togglz to be "true"
+
+  Scenario: Test Capability type in service template
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/zipWithExternalPort.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+   Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+   And I want to compare the content of the entry "Definitions/Nested_FSB1ServiceTemplate.yaml" in the zip "resources/downloads/VSPPackage.zip" with file "resources/yaml/Nested_FSB1ServiceTemplate.yaml"
+
+    Then I want to create a VF for this Item
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/TOSCA/HeatToToscaTranslation.feature b/cucumber-js-test-apis-ci/features/TOSCA/HeatToToscaTranslation.feature
new file mode 100644
index 0000000..ae08036
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/TOSCA/HeatToToscaTranslation.feature
@@ -0,0 +1,194 @@
+Feature: Tosca Validation Flow
+
+  Background: Init
+    Given I want to create a VLM
+    Given I want to set all Togglz to be "true"
+
+  Scenario: Full - Create and submit VSP Network Package and Create VF
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/BASE_MUX.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Validate Input parameter - annotation was added
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/inputsForNestedHeat.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+    When I want to load the yaml content of the entry "Definitions/MainServiceTemplate.yaml" in the zip "resources/downloads/VSPPackage.zip" to context
+
+    Then I want to check property "topology_template.inputs.pcm_flavor_name.annotations.source.type" for value "org.openecomp.annotations.Source"
+    Then I want to check property "topology_template.inputs.pcm_flavor_name.annotations.source.properties.source_type" for value "HEAT"
+    Then I want to check property "topology_template.inputs.pcm_flavor_name.annotations.source.properties.vf_module_label" to have length 2
+    Then I want to check property "topology_template.inputs.pcm_flavor_name.annotations.source.properties.vf_module_label[0]" for value "main-heat2"
+    Then I want to check property "topology_template.inputs.pcm_flavor_name.annotations.source.properties.vf_module_label[1]" for value "main-heat1"
+    Then I want to check property "topology_template.inputs.pcm_flavor_name.annotations.source.properties.param_name" for value "pcm_flavor_name"
+
+    Then I want to check property "topology_template.inputs.sm_server_names.annotations.source.type" for value "org.openecomp.annotations.Source"
+    Then I want to check property "topology_template.inputs.sm_server_names.annotations.source.properties.source_type" for value "HEAT"
+    Then I want to check property "topology_template.inputs.sm_server_names.annotations.source.properties.vf_module_label" to have length 1
+    Then I want to check property "topology_template.inputs.sm_server_names.annotations.source.properties.vf_module_label[0]" for value "main-heat1"
+    Then I want to check property "topology_template.inputs.sm_server_names.annotations.source.properties.param_name" for value "sm_server_names"
+
+    Then I want to check property "topology_template.inputs.dummy_net_netmask_1.annotations.source.type" for value "org.openecomp.annotations.Source"
+    Then I want to check property "topology_template.inputs.dummy_net_netmask_1.annotations.source.properties.source_type" for value "HEAT"
+    Then I want to check property "topology_template.inputs.dummy_net_netmask_1.annotations.source.properties.vf_module_label" to have length 1
+    Then I want to check property "topology_template.inputs.dummy_net_netmask_1.annotations.source.properties.vf_module_label[0]" for value "main-heat2"
+    Then I want to check property "topology_template.inputs.dummy_net_netmask_1.annotations.source.properties.param_name" for value "dummy_net_netmask_1"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Validate Input parameter for volume HEAT file
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/annotationMultVolume.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+    When I want to load the yaml content of the entry "Definitions/MainServiceTemplate.yaml" in the zip "resources/downloads/VSPPackage.zip" to context
+
+    Then I want to check property "topology_template.inputs.pcrf_oam_vol_size.annotations.source.type" for value "org.openecomp.annotations.Source"
+    Then I want to check property "topology_template.inputs.pcrf_oam_vol_size.annotations.source.properties.source_type" for value "HEAT"
+    Then I want to check property "topology_template.inputs.pcrf_oam_vol_size.annotations.source.properties.vf_module_label" to have length 1
+    Then I want to check property "topology_template.inputs.pcrf_oam_vol_size.annotations.source.properties.vf_module_label[0]" for value "hot-nimbus-oam_v1.0"
+    Then I want to check property "topology_template.inputs.pcrf_oam_vol_size.annotations.source.properties.param_name" for value "pcrf_oam_vol_size"
+
+    Then I want to check property "topology_template.inputs.pcrf_pcm_vol_size.annotations.source.type" for value "org.openecomp.annotations.Source"
+    Then I want to check property "topology_template.inputs.pcrf_pcm_vol_size.annotations.source.properties.source_type" for value "HEAT"
+    Then I want to check property "topology_template.inputs.pcrf_pcm_vol_size.annotations.source.properties.vf_module_label" to have length 1
+    Then I want to check property "topology_template.inputs.pcrf_pcm_vol_size.annotations.source.properties.vf_module_label[0]" for value "hot-nimbus-pcm_v1.0"
+    Then I want to check property "topology_template.inputs.pcrf_pcm_vol_size.annotations.source.properties.param_name" for value "pcrf_pcm_vol_size"
+
+
+    Then I want to check property "topology_template.inputs.pcm-volumes_and_pcm_main_param.annotations.source.type" for value "org.openecomp.annotations.Source"
+    Then I want to check property "topology_template.inputs.pcm-volumes_and_pcm_main_param.annotations.source.properties.source_type" for value "HEAT"
+    Then I want to check property "topology_template.inputs.pcm-volumes_and_pcm_main_param.annotations.source.properties.vf_module_label" to have length 1
+    Then I want to check property "topology_template.inputs.pcm-volumes_and_pcm_main_param.annotations.source.properties.vf_module_label[0]" for value "hot-nimbus-pcm_v1.0"
+    Then I want to check property "topology_template.inputs.pcm-volumes_and_pcm_main_param.annotations.source.properties.param_name" for value "pcm-volumes_and_pcm_main_param"
+
+    Then I want to check property "topology_template.inputs.oam-volumes_pcm_main_param.annotations.source.type" for value "org.openecomp.annotations.Source"
+    Then I want to check property "topology_template.inputs.oam-volumes_pcm_main_param.annotations.source.properties.source_type" for value "HEAT"
+    Then I want to check property "topology_template.inputs.oam-volumes_pcm_main_param.annotations.source.properties.vf_module_label" to have length 2
+    Then I want to check property "topology_template.inputs.oam-volumes_pcm_main_param.annotations.source.properties.vf_module_label[0]" for value "hot-nimbus-pcm_v1.0"
+    Then I want to check property "topology_template.inputs.oam-volumes_pcm_main_param.annotations.source.properties.vf_module_label[1]" for value "hot-nimbus-oam_v1.0"
+    Then I want to check property "topology_template.inputs.oam-volumes_pcm_main_param.annotations.source.properties.param_name" for value "oam-volumes_pcm_main_param"
+
+    Then I want to check property "topology_template.inputs.oam-volumes_pcm-volumes_and_oam_main_param.annotations.source.type" for value "org.openecomp.annotations.Source"
+    Then I want to check property "topology_template.inputs.oam-volumes_pcm-volumes_and_oam_main_param.annotations.source.properties.source_type" for value "HEAT"
+    Then I want to check property "topology_template.inputs.oam-volumes_pcm-volumes_and_oam_main_param.annotations.source.properties.vf_module_label" to have length 2
+    Then I want to check property "topology_template.inputs.oam-volumes_pcm-volumes_and_oam_main_param.annotations.source.properties.vf_module_label[0]" for value "hot-nimbus-pcm_v1.0"
+    Then I want to check property "topology_template.inputs.oam-volumes_pcm-volumes_and_oam_main_param.annotations.source.properties.vf_module_label[1]" for value "hot-nimbus-oam_v1.0"
+    Then I want to check property "topology_template.inputs.oam-volumes_pcm-volumes_and_oam_main_param.annotations.source.properties.param_name" for value "oam-volumes_pcm-volumes_and_oam_main_param"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Validate Input parameter  - annotation was no added for Volume associated to Nested
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/volumeUnderNested.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    When I want to load the yaml content of the entry "Definitions/nestedServiceTemplate.yaml" in the zip "resources/downloads/VSPPackage.zip" to context
+    Then I want to check property "topology_template.inputs.CMAUI_volume_type.annotations" does not exist
+
+    Then I want to create a VF for this Item
+
+  Scenario: Validate Input parameter  - annotation was not added
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/inputsForNestedHeat.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    When I want to load the yaml content of the entry "Definitions/MainServiceTemplate.yaml" in the zip "resources/downloads/VSPPackage.zip" to context
+    Then I want to check property "topology_template.inputs.OS::stack_name" exists
+    Then I want to check property "topology_template.inputs.OS::stack_name.annotations" does not exist
+
+    When I want to load the yaml content of the entry "Definitions/nested-pcm_v0.1ServiceTemplate.yaml" in the zip "resources/downloads/VSPPackage.zip" to context
+    Then I want to check property "topology_template.inputs.port_pcm_port_0_network_role.annotations" does not exist
+    Then I want to check property "topology_template.inputs.availabilityzone_name.annotations" does not exist
+    Then I want to check property "topology_template.inputs.pcm_server_name.annotations" does not exist
+    Then I want to check property "topology_template.inputs.sm_server_names.annotations" does not exist
+
+    When I want to load the yaml content of the entry "Definitions/nested-pcm_v0.2ServiceTemplate.yaml" in the zip "resources/downloads/VSPPackage.zip" to context
+    Then I want to check property "topology_template.inputs.port_pcm_port_13_mac_requirements.annotations" does not exist
+    Then I want to check property "topology_template.inputs.availabilityzone_name.annotations" does not exist
+    Then I want to check property "topology_template.inputs.pcm_server_name.annotations" does not exist
+
+    When I want to load the yaml content of the entry "Definitions/Nested_computeServiceTemplate.yaml" in the zip "resources/downloads/VSPPackage.zip" to context
+    Then I want to check property "topology_template.inputs.compute_compute_user_data_format.annotations" does not exist
+    Then I want to check property "topology_template.inputs.vm_image_name.annotations" does not exist
+    Then I want to check property "topology_template.inputs.compute_compute_name.annotations" does not exist
+
+    Then I want to create a VF for this Item
+
+  Scenario: Validate Input parameter for nested HEAT belongs to volume HEAT
+            when volume heat is associated to main HEAT
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/nested-belongs-to-volume.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    When I want to load the yaml content of the entry "Definitions/ocgmgr_nested_volumeServiceTemplate.yaml" in the zip "resources/downloads/VSPPackage.zip" to context
+    Then I want to check property "topology_template.inputs.volume_type.annotations" does not exist
+    Then I want to check property "topology_template.inputs.vnf_name.annotations" does not exist
+    Then I want to check property "topology_template.inputs.index.annotations" does not exist
+    Then I want to check property "topology_template.inputs.size.annotations" does not exist
+
+    When I want to load the yaml content of the entry "Definitions/MainServiceTemplate.yaml" in the zip "resources/downloads/VSPPackage.zip" to context
+
+    Then I want to check property "topology_template.inputs.index" does not exist
+    Then I want to check property "topology_template.inputs.size" does not exist
+    Then I want to check property "topology_template.inputs.volume_type" does not exist
+
+    Then I want to check property "topology_template.inputs.vnf_name.annotations.source.type" for value "org.openecomp.annotations.Source"
+    Then I want to check property "topology_template.inputs.vnf_name.annotations.source.properties.source_type" for value "HEAT"
+    Then I want to check property "topology_template.inputs.vnf_name.annotations.source.properties.vf_module_label" to have length 6
+    Then I want to check property "topology_template.inputs.vnf_name.annotations.source.properties.vf_module_label[0]" for value "ocgapp_03"
+    Then I want to check property "topology_template.inputs.vnf_name.annotations.source.properties.vf_module_label[1]" for value "ocgapp_02"
+    Then I want to check property "topology_template.inputs.vnf_name.annotations.source.properties.vf_module_label[2]" for value "ocgmgr"
+    Then I want to check property "topology_template.inputs.vnf_name.annotations.source.properties.vf_module_label[3]" for value "ocgapp_01"
+    Then I want to check property "topology_template.inputs.vnf_name.annotations.source.properties.vf_module_label[4]" for value "ocgapp_04"
+    Then I want to check property "topology_template.inputs.vnf_name.annotations.source.properties.vf_module_label[5]" for value "base_ocg"
+
+    Then I want to create a VF for this Item
diff --git a/cucumber-js-test-apis-ci/features/TOSCA/HeatValidation.feature b/cucumber-js-test-apis-ci/features/TOSCA/HeatValidation.feature
new file mode 100644
index 0000000..dba54ff
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/TOSCA/HeatValidation.feature
@@ -0,0 +1,15 @@
+Feature: Heat Validation Flow
+
+  Background: Init
+    Given I want to create a VLM
+    Given I want to set all Togglz to be "true"
+
+  Scenario: Test Validation Error
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/errorHeat.zip"
+    And I want to process the NetworkPackage file for this VSP
+    And I want to print the context data
+
+    Then I want to check property "errors['first.env'][0].level" for value "ERROR"
+    Then I want to check property "errors['first.env'][0].message" for value "ERROR: [YML1]: Invalid YAML format Problem - [empty yaml]"
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/TOSCA/VirtualMachineInterfaceValidation-positive.feature b/cucumber-js-test-apis-ci/features/TOSCA/VirtualMachineInterfaceValidation-positive.feature
new file mode 100644
index 0000000..280ec8b
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/TOSCA/VirtualMachineInterfaceValidation-positive.feature
@@ -0,0 +1,14 @@
+Feature: Tosca VMI Positive Flow
+
+  Background: Init
+    Given I want to create a VLM
+    Given I want to set all Togglz to be "true"
+
+  Scenario: VirtualMachineInterface Validation Flow - No Validations Errors
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlan-tagging-positive.zip"
+    And I want to process the NetworkPackage file for this VSP
+    And I want to print the context data
+
+    Then I want to check property "errors['nested.yml'][0].level" does not exist
diff --git a/cucumber-js-test-apis-ci/features/TOSCA/VirtualMachineInterfaceValidationGuideline3violations.feature b/cucumber-js-test-apis-ci/features/TOSCA/VirtualMachineInterfaceValidationGuideline3violations.feature
new file mode 100644
index 0000000..b0e5b44
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/TOSCA/VirtualMachineInterfaceValidationGuideline3violations.feature
@@ -0,0 +1,31 @@
+Feature: Tosca VMI Flow
+
+  Background: Init
+    Given I want to create a VLM
+    Given I want to set all Togglz to be "true"
+
+  Scenario:VirtualMachineInterface Validation Flow - Guideline Validation issues present
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/all-violations.zip"
+    And I want to process the NetworkPackage file for this VSP
+    And I want to print the context data
+
+    Then I want to check property "errors['nested.yml'][3].level" for value "WARNING"
+    Then I want to check property "errors['nested.yml'][3].message" for value:
+    """
+ WARNING: [VlANG1]: VLAN Resource will not be translated as the VLAN Sub-interface [template_Vlan_2] is not modeled as resource group
+    """
+
+
+    Then I want to check property "errors['nested.yml'][1].level" for value "ERROR"
+    Then I want to check property "errors['nested.yml'][1].message" for value:
+    """
+    ERROR: [VlANG2]: There should not be any Compute Server Node, Port, Parent Port in nested file [nested.yml]
+"""
+
+    Then I want to check property "errors['main.yml'][6].level" for value "WARNING"
+    Then I want to check property "errors['main.yml'][6].message" for value:
+    """
+  WARNING: [VlANG3]: Network role associated with VLAN Sub-interface id[test_Vlan1] is not following the naming convention
+    """
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/TOSCA/VirtualMachineInterfaceValidationHeatResourceMissingProperties.feature b/cucumber-js-test-apis-ci/features/TOSCA/VirtualMachineInterfaceValidationHeatResourceMissingProperties.feature
new file mode 100644
index 0000000..3cf52f6
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/TOSCA/VirtualMachineInterfaceValidationHeatResourceMissingProperties.feature
@@ -0,0 +1,31 @@
+Feature: Tosca VMI Flow
+
+  Background: Init
+    Given I want to create a VLM
+    Given I want to set all Togglz to be "true"
+
+  Scenario: VirtualMachineInterface Validation Flow - Missing Refs Element Validation Error
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/refs_missing.zip"
+    And I want to process the NetworkPackage file for this VSP
+    And I want to print the context data
+
+    Then I want to check property "errors['nested.yml'][0].level" for value "WARNING"
+    Then I want to check property "errors['nested.yml'][0].message" for value:
+    """
+    WARNING: [VLAN2]: Parent port property virtual_machine_interface_refs is missing in VLAN Resource ID [template_Vlan_2]
+    """
+
+  Scenario: VirtualMachineInterface Validation Flow - Missing Tag Validation Error
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/tag_missing.zip"
+    And I want to process the NetworkPackage file for this VSP
+    And I want to print the context data
+
+    Then I want to check property "errors['nested.yml'][0].level" for value "WARNING"
+    Then I want to check property "errors['nested.yml'][0].message" for value:
+    """
+    WARNING: [VLAN2]: VLAN Tag property virtual_machine_interface_properties_sub_interface_vlan_tag is missing in VLAN Resource ID [template_Vlan_2]
+    """
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/TOSCA/VirtualMachineInterfaceValidationHeatResourceMultipleParents.feature b/cucumber-js-test-apis-ci/features/TOSCA/VirtualMachineInterfaceValidationHeatResourceMultipleParents.feature
new file mode 100644
index 0000000..0b9e092
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/TOSCA/VirtualMachineInterfaceValidationHeatResourceMultipleParents.feature
@@ -0,0 +1,18 @@
+Feature: Tosca VMI Flow
+
+  Background: Init
+    Given I want to create a VLM
+    Given I want to set all Togglz to be "true"
+
+  Scenario: VirtualMachineInterface Validation Flow - Multiple Parent Port Validation Error
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/multiple-parents.zip"
+    And I want to process the NetworkPackage file for this VSP
+    And I want to print the context data
+
+    Then I want to check property "errors['nested.yml'][0].level" for value "ERROR"
+    Then I want to check property "errors['nested.yml'][0].message" for value:
+    """
+    ERROR: [VLAN1]: More than one parent port found, there should be only one parent port for a VLAN sub-interface ID [template_Vlan_2]
+    """
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/TOSCA/VlanTagging.feature b/cucumber-js-test-apis-ci/features/TOSCA/VlanTagging.feature
new file mode 100644
index 0000000..7adf99f
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/TOSCA/VlanTagging.feature
@@ -0,0 +1,372 @@
+Feature: Vlan Tagging - Full Flow tests
+
+  Background: Init
+    Given I want to create a VLM
+    Given I want to set all Togglz to be "true"
+
+  Scenario: Pattern 1A Full - Create and submit VSP Network Package containing one compute, one
+  port and one subinterface connected to that port. Both port and subinterface are connected to
+  different internal networks.
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/pattern1a/subInterfaceGetAttrInOut.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Pattern 1A Full - Create and submit VSP Network Package containing one compute, one
+  port and one regular nested resource subinterface connected to that port. Only port is connected
+  to an internal network.
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/pattern1a/regularNestedSubinterface.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Pattern 1A Negative - Create and submit VSP Network Package containing one compute, one
+  port and multiple subinterface resource groups which are not bound to parent port. Only port is
+  connected to an internal network.
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/pattern1a/negativeNotBoundToParentPort.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Pattern 1B Full - Create and submit VSP Network Package containing Sub Interface and different compute type and Create VF
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/pattern1b/diffCompute_SubInterface.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Pattern 1B Full - Create and submit VSP Network Package containing Sub Interface and same Compute type and different Port type and Create VF
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/pattern1b/diffPort_SubInterface.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Pattern 1B Full - Create and submit VSP Network Package containing Sub Interface and same Compute type same Port type and different Sub interface file and Create VF
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/pattern1b/diffSubInterfaceFile.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Pattern 1B Full - Create and submit VSP Network Package containing Sub Interface and same Compute type different Port type and same Sub interface file and Create VF
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/pattern1b/regularNestedSubInterface.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Pattern 1C1 Full - Create and submit VSP Network Package containing two computes of different type, four ports of two types
+  each and four subinterface resource groups of two types each and Create VF
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/pattern1c1/multiplePortsMultipleVlans.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Pattern 1C1 Full - Create and submit VSP Network Package containing two computes, two ports of same type
+  connected to network and two subinterface resource represented through a regular nested resource and not using a
+  resource group not connected to network and Create VF
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/pattern1c1/regularNestedSubInterface.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Pattern 1C2 Full - Create and submit VSP Network Package containing two computes of the same type,
+  each one has one port with one sub interface (same type) resource group have a different count and Create VF
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/pattern1c2/differentResourceGroupCount.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Pattern 1C2 Full - Create and submit VSP Network Package containing two computes of the same type,
+  each one has one port with one sub interface each (same type, different network connectivity) and Create VF
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/pattern1c2/differentNetwork.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Pattern 4 Full - Create and submit VSP Network Package containing one computes, one
+  port represented through a nested resource having one subinterface nested resource and Create VF
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/pattern4/Pattern_4_SinglePort_SingleSubInterface.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Pattern 4 Full - Create and submit VSP Network Package containing one computes, two
+  ports represented through a nested resource both port connected to different nested subinterface
+  resource and Create VF
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/pattern4/Pattern_4_MultiplePort_MultipleSubInterface.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Pattern 4 Full - Create and submit VSP Network Package containing one computes, one
+  port represented through a regular nested resource and Create VF
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/pattern4/regularNestedSubInterface.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Pattern 5 Full - Create and submit VSP Network Package containing one nested
+  component which is having two VFCs of different type both connected with two port and one port
+  is connected with sub interface resource and Create VF
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/pattern5/Pattern_5_NestedResourceWithMultipleComputeAndPort.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: Pattern 5 Full - Create and submit VSP Network Package containing different
+  subinterface connectivity scenario and Create VF
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/pattern5/Pattern_5ComplexVSPWithDiffSubInfConn.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: VFC Instance Group per Network Role - Create and submit VSP Network Package of pattern 1A heat
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/vfcinstancegroup/groupPattern1aHeat.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: VFC Instance Group per Network Role - Create and submit VSP Network Package of pattern 1B heat
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/vfcinstancegroup/groupPattern1bHeat.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: VFC Instance Group per Network Role - Create and submit VSP Network Package of pattern 1C1 heat
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/vfcinstancegroup/groupPattern1c1Heat.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: VFC Instance Group per Network Role - Create and submit VSP Network Package of pattern 1C2 heat
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/vfcinstancegroup/groupPattern1c2Heat.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
+
+  Scenario: VFC Instance Group per Network Role - Create and submit VSP Network Package of pattern 4 heat
+
+    When I want to create a VSP with onboarding type "NetworkPackage"
+
+    Then I want to upload a NetworkPackage for this VSP from path "resources/uploads/vlantagging/vfcinstancegroup/groupPattern4Heat.zip"
+    And I want to process the NetworkPackage file for this VSP
+
+    Then I want to commit this Item
+    And I want to submit this VSP
+    And I want to package this VSP
+
+    Then I want to make sure this Item has status "Certified"
+
+    Then I want to get the package for this Item to path "resources/downloads/VSPPackage.zip"
+
+    Then I want to create a VF for this Item
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/features/UserFeedback/TestMD5.feature b/cucumber-js-test-apis-ci/features/UserFeedback/TestMD5.feature
new file mode 100644
index 0000000..bb80c92
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/UserFeedback/TestMD5.feature
@@ -0,0 +1,68 @@
+# Copyright © 2018 European Support Limited
+#
+# 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.
+
+Feature: User Feedback - Test MD5
+
+  Scenario: Test MD5
+
+    When I want to create a VLM
+    Then I want to copy to property "licensingVersion" from response data path "version.id"
+
+    #create feature group
+    When I want to create input data
+    Then I want to update the input property "name" with value "FG1"
+    Then I want to update the input property "partNumber" with value "999"
+    Then I want to create for path "/vendor-license-models/{item.id}/versions/{item.versionId}/feature-groups" with the input data from the context
+    Then I want to copy to property "featureGroupId" from response data path "value"
+
+    #create license agreements
+    When I want to create input data
+    Then I want to update the input property "name" with value "LA"
+    Then I want to update the input property "licenseTerm.choice" with value "Unlimited"
+    Then I want to update the input property "addedFeatureGroupsIds[0]" from property "featureGroupId"
+    Then I want to create for path "/vendor-license-models/{item.id}/versions/{item.versionId}/license-agreements" with the input data from the context
+    Then I want to copy to property "licenseAgreement" from response data path "value"
+
+    When I want to create a VSP with onboarding type Manual
+    Then I want to make sure this Item has status "Draft"
+
+    When I want to add a component
+
+    #create image
+    When I want to create input data
+    Then I want to update the input property "fileName" with value "Image_1"
+    Then I want to create for path "/vendor-software-products/{vsp.id}/versions/{vsp.versionId}/components/{componentId}/images" with the input data from the context
+
+    #update image questionnaire
+    Then I want to get the questionnaire for this path "/vendor-software-products/{vsp.id}/versions/{vsp.versionId}/components/{componentId}/images/{responseData.id}/questionnaire"
+    And I want to update this questionnaire with value "md5" for property "5555555555555555555555555555555555555555555555555555555555555"
+    And I want to update this questionnaire with value "version" for property "1"
+    And I want to update this questionnaire
+
+    #create compute flavor
+    When I want to create input data
+    Then I want to update the input property "name" with value "ComputeFlavor1"
+    When I want to create for path "/vendor-software-products/{vsp.id}/versions/{vsp.versionId}/components/{componentId}/compute-flavors" with the input data from the context
+    Then I want to copy to property "computeFlavorId" from response data path "id"
+
+    #create deployment flavor with Component , compute flavor associations
+    When I want to create input data
+    Then I want to update the input property "model" with value "DeploymentFlavorModel"
+    Then I want to update the input property "componentComputeAssociations[0].componentId" from property "componentId"
+    Then I want to update the input property "componentComputeAssociations[0].computeFlavorId" from property "computeFlavorId"
+    Then I want to update the input property "featureGroupId" from property "featureGroupId"
+    Then I want to create for path "/vendor-software-products/{vsp.id}/versions/{vsp.versionId}/deployment-flavors" with the input data from the context
+
+    Then I want the following to fail
+    When I want to submit this VSP
diff --git a/cucumber-js-test-apis-ci/features/UserFeedback/TestMRN.feature b/cucumber-js-test-apis-ci/features/UserFeedback/TestMRN.feature
new file mode 100644
index 0000000..161ea57
--- /dev/null
+++ b/cucumber-js-test-apis-ci/features/UserFeedback/TestMRN.feature
@@ -0,0 +1,50 @@
+# Copyright © 2018 European Support Limited
+#
+# 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.
+
+Feature: User Feedback - Enhance EP & LKG to include MRN
+
+  Scenario: Test Feature Group and Entitlement Pool
+
+    Then I want to create a VLM
+    Then I want to make sure this Item has status "Draft"
+
+    When I want to get path "/items/{item.id}/versions/{item.versionId}/revisions"
+    Then I want to check property "listCount" for value 1
+
+    Then I want to create input data
+    Then I want to update the input property "name" with value "FG_01"
+    Then I want to update the input property "description" with value "FG without MRN"
+    Then I want to update the input property "partNumber" with value "999"
+    Then I want to create for path "/vendor-license-models/{item.id}/versions/{item.versionId}/feature-groups" with the input data from the context
+
+    When I want to create input data
+    Then I want to update the input property "name" with value "EP_01"
+    Then I want to update the input property "description" with value "EP without MRN"
+    Then I want the following to fail
+    Then I want to create for path "/vendor-license-models/{item.id}/versions/{item.versionId}/entitlement-pools" with the input data from the context
+
+
+    When I want to create input data
+    Then I want to update the input property "name" with value "EP_02"
+    Then I want to update the input property "description" with value "EP with MRN"
+    Then I want to update the input property "manufacturerReferenceNumber" with value "12345"
+    Then I want to create for path "/vendor-license-models/{item.id}/versions/{item.versionId}/entitlement-pools" with the input data from the context
+    Then I want to get path "/vendor-license-models/{item.id}/versions/{item.versionId}/entitlement-pools/{responseData.value}"
+    Then I want to check property "manufacturerReferenceNumber" for value "12345"
+
+
+
+
+
+
diff --git a/cucumber-js-test-apis-ci/package.json b/cucumber-js-test-apis-ci/package.json
new file mode 100644
index 0000000..0aecbdc
--- /dev/null
+++ b/cucumber-js-test-apis-ci/package.json
@@ -0,0 +1,31 @@
+{
+  "name": "sdctests",
+  "version": "1.0.0",
+  "description": "SDC Cucumber testing",
+  "main": "reporter.js",
+  "directories": {
+    "doc": "docs"
+  },
+  "scripts": {
+    "test": "cucumber-js",
+    "test-and-report": "npm-run-all -c -s test cucumber-html-report",
+    "cucumber-html-report": "node plugins/reporter.js",
+    "cucumber-docs": "jsdoc ./stepDefinitions  -c plugins/jsdoc_config.json --readme plugins/README.md"
+  },
+  "author": "",
+  "license": "Apache-2.0",
+  "dependencies": {
+    "assert": "^1.4.1",
+    "cucumber": "^3.2.1",
+    "cucumber-html-reporter": "^3.0.4",
+    "docdash": "^0.4.0",
+    "jsdoc": "^3.5.5",
+    "jsdoc-one-page": "0.0.5",
+    "lodash": "^4.17.4",
+    "node-zip": "^1.1.1",
+    "normalize-newline": "^3.0.0",
+    "npm-run-all": "^4.1.2",
+    "request": "^2.83.0",
+    "yamljs": "^0.3.0"
+  }
+}
diff --git a/cucumber-js-test-apis-ci/plugins/README.md b/cucumber-js-test-apis-ci/plugins/README.md
new file mode 100644
index 0000000..956fe77
--- /dev/null
+++ b/cucumber-js-test-apis-ci/plugins/README.md
@@ -0,0 +1,23 @@
+<br>
+<h1>Welcome!</h1>
+This is the documentation for using the BDD testing framework for SDC.<br>
+The Modules on the left contains all steps for particalar aress and/or explanations of what they do.<br>
+<br><br>
+<h3>How to set the server configuration</h3>
+<li> Copy the config.json to devConfig.json
+<li> Replace the server and user values with the correct values
+<h3>How to run with Maven</h3>
+<li>"mvn install" will install npm if needed, download all modules and create the documentation under the "docs" folder
+<li>"mvn test-and-report" will run all  tests in the features folder and create an HTML report under the "reports" folder
+<h3>How to develop tests</h3>
+You can open the project in IntelliJ and Webstorm to run and develop scenarios.<br>
+<li><b>You will need to install the Cucumber.Js plugin</b> In order to install, go to "Settings/Plugins". If cucumber.js in not on the list, go to "Browse repositories.." and install .
+<li>First time only: Right click on feature file and try to run. Now go to "Run/edit configurations" and set the "executable path" to the "node_modules\.bin\cucumber-js.cmd" under your current project.
+<li>Now you can run the feature files by right clicking on the file and selecting "Run" from IDEA.<br>
+<li>Add to existing scenarios or create new files under the "features" directory for additional tests
+<br>
+<li>You can also run a specific test from the command line by running "npm run test -- [features/path to file]
+<h3>More Information</h3>
+<li> More on <a href="https://cucumber.io/docs/reference">Cucumber</a>
+<li> More on <a herf="https://github.com/cucumber/cucumber/wiki/Gherkin">Gherkin</a>
+<li> More on <a href="https://github.com/cucumber/cucumber-js">Cucumber-js</a>
diff --git a/cucumber-js-test-apis-ci/plugins/jsdoc_config.json b/cucumber-js-test-apis-ci/plugins/jsdoc_config.json
new file mode 100644
index 0000000..a5a608e
--- /dev/null
+++ b/cucumber-js-test-apis-ci/plugins/jsdoc_config.json
@@ -0,0 +1,15 @@
+{
+  "tags": {
+    "allowUnknownTags": true
+  },
+  "templates": {
+    "default": {
+      "outputSourceFiles": false
+    }
+  },
+  "plugins": ["plugins/steps"],
+  "opts": {
+    "template": "node_modules/jsdoc-one-page",
+    "destination": "docs/"
+  }
+}
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/plugins/reporter.js b/cucumber-js-test-apis-ci/plugins/reporter.js
new file mode 100644
index 0000000..8913789
--- /dev/null
+++ b/cucumber-js-test-apis-ci/plugins/reporter.js
@@ -0,0 +1,31 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+var reporter = require('cucumber-html-reporter');
+
+var options = {
+	theme: 'bootstrap',
+	jsonFile: 'report/report.json',
+	output: 'report/report.html',
+	reportSuiteAsScenarios: true,
+	launchReport: false,
+	metadata: {
+		"ONAP" : "Some build",
+		"Executed": "Local"
+	}
+};
+
+reporter.generate(options);
+
diff --git a/cucumber-js-test-apis-ci/plugins/steps.js b/cucumber-js-test-apis-ci/plugins/steps.js
new file mode 100644
index 0000000..2faa7ef
--- /dev/null
+++ b/cucumber-js-test-apis-ci/plugins/steps.js
@@ -0,0 +1,65 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+/**
+ * @module plugins/steptag
+ */
+'use strict';
+
+
+exports.handlers = {
+	/**
+	 * Support @step tag.
+	 *
+	 * @step description
+	 */
+	newDoclet: function(e) {
+		var tags = e.doclet.tags;
+		var tag;
+		var value;
+
+		// any user-defined tags in this doclet?
+		if (typeof tags !== 'undefined') {
+
+			tags = tags.filter(function($) {
+				return $.title === 'step' || $.title === 'examplefile';
+			});
+
+			if (tags.length) {
+				// take the first one
+				tag = tags[0];
+				let step = null;
+				let exampleFile = null;
+				for (tag in tags) {
+					if (tags[tag].title === "step") {
+						step = "<b>" + tags[tag].value + "</b><br>";
+					}
+					if (tags[tag].title === "examplefile") {
+						exampleFile = "<i> Example Features File: " + tags[tag].value + "</i><br>";
+					}
+				}
+				if (exampleFile !== null) {
+					step += exampleFile;
+				}
+				e.doclet.meta = e.doclet.meta || {};
+				if (e.doclet.description !== undefined) {
+					e.doclet.description =  step +  e.doclet.description;
+				} else {
+					e.doclet.description =  step;
+				}
+			}
+		}
+	}
+};
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/pom.xml b/cucumber-js-test-apis-ci/pom.xml
new file mode 100644
index 0000000..d3dda71
--- /dev/null
+++ b/cucumber-js-test-apis-ci/pom.xml
@@ -0,0 +1,157 @@
+<?xml version="1.0"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.openecomp.sdc</groupId>
+    <artifactId>sdc-main</artifactId>
+    <version>1.3.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>cucumber-bdd</artifactId>
+  <name>cucumber-bdd</name>
+  <groupId>org.openecomp.sdc</groupId>
+  <version>1.3.1-SNAPSHOT</version>
+  <packaging>jar</packaging>
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-clean-plugin</artifactId>
+        <version>2.6.1</version>
+        <executions>
+          <execution>
+            <id>clean.dist.folder</id>
+            <phase>clean</phase>
+            <goals>
+              <goal>clean</goal>
+            </goals>
+            <configuration>
+              <filesets>
+                <fileset>
+                  <directory>${basedir}/report</directory>
+                  <includes>
+                    <include>**/*</include>
+                  </includes>
+                </fileset>
+                <fileset>
+                  <directory>${basedir}/resources/downloads</directory>
+                  <includes>
+                    <include>**/*</include>
+                  </includes>
+                </fileset>
+                <fileset>
+                  <directory>${basedir}/docs</directory>
+                  <includes>
+                    <include>**/*</include>
+                  </includes>
+                </fileset>
+                <fileset>
+                  <directory>${basedir}</directory>
+                  <includes>
+                    <include>jenkinsConfig.json</include>
+                  </includes>
+                </fileset>
+              </filesets>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+        <plugin>
+            <artifactId>maven-resources-plugin</artifactId>
+            <version>2.7</version>
+            <configuration>   
+            </configuration>
+        </plugin>
+    </plugins>
+    <resources>
+        <resource>
+            <directory>${basedir}/docker</directory>
+            <targetPath>${project.build.directory}/docker_assembly</targetPath>
+            <filtering>false</filtering>
+        </resource>
+        <resource>
+            <directory>${basedir}</directory>
+		<includes>
+			<include>features/**/*</include>
+			<include>stepDefinitions/**/*</include>
+			<include>plugins/**/*</include>
+			<include>resources/**/*</include>
+			<include>*.js*</include>
+		</includes>
+            <targetPath>${project.build.directory}/docker_assembly/cucumber</targetPath>
+            <filtering>false</filtering>
+        </resource>
+    </resources>  
+  </build>
+  <profiles>
+    <profile>
+      <id>docker</id>
+      <activation>
+        <activeByDefault>false</activeByDefault>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>io.fabric8</groupId>
+            <artifactId>docker-maven-plugin</artifactId>
+            <version>${fabric8.version}</version>
+            <configuration>
+              <verbose>true</verbose>
+              <apiVersion>1.23</apiVersion>
+              <registry>nexus3.onap.org:10001</registry>
+              <authConfig>
+                <pull>
+                  <username>docker</username>
+                  <password>docker</password>
+                </pull>
+              </authConfig>
+              <images>
+                <!-- Build sanity image -->
+                <image>
+                  <name>nfv/cucumber-sdc-api-tests</name>
+                  <alias>cucumber-sdc-api-tests</alias>
+                  <build>
+                    <cleanup>try</cleanup>
+                    <dockerFileDir>${project.build.directory}/docker_assembly</dockerFileDir>
+                    <tags>
+                      <tag>${docker.tag}</tag>
+                      <tag>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-latest</tag>
+                    </tags>
+                  </build>
+                </image>
+              </images>
+            </configuration>
+            <executions>
+              <execution>
+                <id>clean-images</id>
+                <phase>pre-clean</phase>
+                <goals>
+                  <goal>remove</goal>
+                </goals>
+                <configuration>
+                  <removeAll>true</removeAll>
+                  <image>nfv/cucumber-sdc-api-tests</image>
+                </configuration>
+              </execution>
+              <execution>
+                <id>generate-images</id>
+                <phase>install</phase>
+                <goals>
+                  <goal>build</goal>
+                </goals>
+              </execution>
+              <execution>
+                <id>push-images</id>
+                <phase>deploy</phase>
+                <goals>
+                  <goal>push</goal>
+                </goals>
+                <configuration>
+                  <image>nfv/cucumber-sdc-api-tests</image>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+</project>
diff --git a/cucumber-js-test-apis-ci/resources/json/createActivitySpec.json b/cucumber-js-test-apis-ci/resources/json/createActivitySpec.json
new file mode 100644
index 0000000..29ad716
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/json/createActivitySpec.json
@@ -0,0 +1,19 @@
+{
+  "name": "RANDOM",
+  "description": "Start Server",
+  "categoryList": [
+    "Server"
+  ],
+  "inputs": [{
+    "name": "host",
+    "type": "string",
+    "value": "10.1.2.3"
+  }],
+  "outputs": [{
+    "name": "status",
+    "type": "string",
+    "value": "started"
+  }],
+  "type": "string",
+  "content": "test"
+}
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/resources/json/createManualVSP.json b/cucumber-js-test-apis-ci/resources/json/createManualVSP.json
new file mode 100644
index 0000000..9ce14f5
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/json/createManualVSP.json
@@ -0,0 +1,17 @@
+{
+  "vendorId":"REPLACE",
+  "name": "RANDOM",
+  "category":"resourceNewCategory.generic",
+  "subCategory":"resourceNewCategory.generic.abstract",
+  "onboardingMethod":"Manual",
+  "description":"for testing",
+  "vendorName":"REPLACE",
+  "icon":"icon",
+  "licensingVersion": "REPLACE",
+  "licensingData":{
+    "licenseAgreement": "REPLACE",
+    "featureGroups": [
+      "REPLACE"
+    ]
+  }
+}
diff --git a/cucumber-js-test-apis-ci/resources/json/createVF.json b/cucumber-js-test-apis-ci/resources/json/createVF.json
new file mode 100644
index 0000000..2ddd0f5
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/json/createVF.json
@@ -0,0 +1,50 @@
+{
+  "artifacts": {},
+  "toscaArtifacts": {},
+  "contactId": "REPLACE USER_ID",
+  "categories": [
+    {
+      "name": "Generic",
+      "normalizedName": "generic",
+      "uniqueId": "REPLACE CATEGORY VSP",
+      "icons": null,
+      "subcategories": [
+        {
+          "name": "Abstract",
+          "normalizedName": "abstract",
+          "uniqueId": "REPLACE SUBCATEGORY VSP",
+          "icons": [
+            "objectStorage",
+            "compute"
+          ],
+          "groupings": null,
+          "ownerId": null,
+          "empty": false
+        }
+      ],
+      "ownerId": null,
+      "empty": false
+    }
+  ],
+  "description": "REPLACE VSP DESCRIPTION",
+  "icon": "defaulticon",
+  "componentInstancesProperties": {},
+  "componentInstancesAttributes": {},
+  "name": "REPLACE VSP NAME",
+  "tags": [
+    "REPLACE VSP NAME"
+  ],
+  "capabilities": {},
+  "requirements": {},
+  "deploymentArtifacts": {},
+  "componentType": "RESOURCE",
+  "vendorName": "REPLACE VLM NAME",
+  "vendorRelease": "1.0",
+  "componentInstances": [],
+  "properties": [],
+  "attributes": [],
+  "groups": [],
+  "resourceType": "VF",
+  "csarUUID": "REPLACE VSP ID",
+  "csarVersion": "1.0"
+}
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/resources/json/createVLM.json b/cucumber-js-test-apis-ci/resources/json/createVLM.json
new file mode 100644
index 0000000..9431c07
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/json/createVLM.json
@@ -0,0 +1 @@
+{"vendorName":"RANDOM","description":"VLM Description","iconRef":"icon"}
diff --git a/cucumber-js-test-apis-ci/resources/json/createVSP.json b/cucumber-js-test-apis-ci/resources/json/createVSP.json
new file mode 100644
index 0000000..6f63261
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/json/createVSP.json
@@ -0,0 +1,11 @@
+{
+        "vendorId":"REPLACE",
+        "name": "RANDOM",
+        "category":"resourceNewCategory.generic",
+        "subCategory":"resourceNewCategory.generic.abstract",
+        "onboardingMethod":"REPLACE",
+        "description":"for testing",
+        "vendorName":"REPLACE",
+        "icon":"icon",
+        "licensingData":{}
+}
diff --git a/cucumber-js-test-apis-ci/resources/json/operation/createOperation-with-workflow.json b/cucumber-js-test-apis-ci/resources/json/operation/createOperation-with-workflow.json
new file mode 100644
index 0000000..e9693ad
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/json/operation/createOperation-with-workflow.json
@@ -0,0 +1,30 @@
+{
+  "interfaceOperations": {
+    "operation": {
+      "description": "abcd description",
+      "inputParams": {
+        "listToscaDataDefinition": [
+          {
+            "name": "inp1",
+            "type": "string",
+            "property": "97477d27-8fe2-45a1-83cb-83368ef2a402.nf_naming_code",
+            "mandatory": true
+          }
+        ]
+      },
+      "outputParams": {
+        "listToscaDataDefinition": [
+          {
+            "name": "op",
+            "mandatory": true,
+            "type": "String"
+          }
+        ]
+      },
+      "operationType": "create",
+      "workflowAssociationType": "EXISTING",
+      "workflowId" : "workflowId",
+      "workflowVersionId" : "workflowVersionId"
+    }
+  }
+}
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/resources/json/operation/createOperation.json b/cucumber-js-test-apis-ci/resources/json/operation/createOperation.json
new file mode 100644
index 0000000..10c34ba
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/json/operation/createOperation.json
@@ -0,0 +1,14 @@
+{
+  "interfaceOperations": {
+    "operation": {
+      "description": "abcd description",
+      "inputParams": {
+      },
+      "outputParams": {
+      },
+      "operationType": "create",
+      "workflowId" : null,
+      "workflowVersionId" : null
+    }
+  }
+}
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/resources/json/operation/createOperationWithInputOutput.json b/cucumber-js-test-apis-ci/resources/json/operation/createOperationWithInputOutput.json
new file mode 100644
index 0000000..013d615
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/json/operation/createOperationWithInputOutput.json
@@ -0,0 +1,29 @@
+{
+  "interfaceOperations": {
+    "operation": {
+      "description": "abcd description",
+      "inputParams": {
+        "listToscaDataDefinition": [
+          {
+            "name": "inp1",
+            "type": "string",
+            "property": "97477d27-8fe2-45a1-83cb-83368ef2a402.nf_naming_code",
+            "mandatory": true
+          }
+        ]
+      },
+      "outputParams": {
+        "listToscaDataDefinition": [
+          {
+            "name": "op",
+            "mandatory": true,
+            "type": "String"
+          }
+        ]
+      },
+      "operationType": "create",
+      "workflowId" : null,
+      "workflowVersionId" : null
+    }
+  }
+}
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/resources/json/operation/createService.json b/cucumber-js-test-apis-ci/resources/json/operation/createService.json
new file mode 100644
index 0000000..e7afe2a
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/json/operation/createService.json
@@ -0,0 +1,102 @@
+{
+  "artifacts": {
+
+  },
+  "toscaArtifacts": {
+
+  },
+  "contactId": "cs0008",
+  "categories": [
+    {
+      "name": "Network L4+",
+      "normalizedName": "network l4+",
+      "uniqueId": "serviceNewCategory.network l4+",
+      "icons": [
+        "network_l_4"
+      ],
+      "subcategories": null,
+      "version": null,
+      "ownerId": null,
+      "empty": false,
+      "type": null
+    }
+  ],
+  "description": "service1 for bdd",
+  "icon": "defaulticon",
+  "componentInstancesProperties": {
+
+  },
+  "componentInstancesAttributes": {
+
+  },
+  "name": "service1",
+  "tags": [
+    "service1"
+  ],
+  "capabilities": {
+
+  },
+  "requirements": {
+
+  },
+  "deploymentArtifacts": {
+
+  },
+  "componentType": "SERVICE",
+  "projectCode": "010203",
+  "componentInstances": [
+
+  ],
+  "properties": [
+
+  ],
+
+  "inputs": [
+    {
+      "uniqueId": "03eeb10e-cf2a-41b8-9d8e-d2dbd094f9d4.test1_dasddas",
+      "type": "scalar-unit.size",
+      "required": false,
+      "definition": false,
+      "schema": {
+        "properties": {
+
+        },
+        "property": {
+          "type": "",
+          "required": false,
+          "definition": true,
+          "password": false,
+          "hidden": false,
+          "immutable": false,
+          "getInputProperty": false,
+          "empty": false
+        },
+        "empty": false
+      },
+      "password": false,
+      "name": "test1_dasddas",
+      "hidden": false,
+      "immutable": false,
+      "instanceUniqueId": "03eeb10e-cf2a-41b8-9d8e-d2dbd094f9d4",
+      "propertyId": "03eeb10e-cf2a-41b8-9d8e-d2dbd094f9d4.dasddas",
+      "parentUniqueId": "cs0008",
+      "schemaType": "",
+      "getInputProperty": false,
+      "ownerId": "cs0008",
+      "empty": false
+    }
+  ],
+
+  "attributes": [
+
+  ],
+  "forwardingPaths": {
+
+  },
+  "ecompGeneratedNaming": true,
+  "serviceApiArtifacts": {
+
+  },
+  "instantiationType": "A-la-carte",
+  "environmentContext": "General_Revenue-Bearing"
+}
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/resources/json/operation/createVF.json b/cucumber-js-test-apis-ci/resources/json/operation/createVF.json
new file mode 100644
index 0000000..6fe9688
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/json/operation/createVF.json
@@ -0,0 +1,101 @@
+{
+  "artifacts": {
+
+  },
+  "toscaArtifacts": {
+
+  },
+  "contactId": "cs0008",
+  "categories": [
+    {
+      "name": "Allotted Resource",
+      "normalizedName": "allotted resource",
+      "uniqueId": "resourceNewCategory.allotted resource",
+      "icons": null,
+      "subcategories": [
+        {
+          "name": "Tunnel XConnect",
+          "normalizedName": "tunnel xconnect",
+          "uniqueId": "resourceNewCategory.allotted resource.tunnel xconnect",
+          "icons": [
+            "tunnel_x_connect"
+          ],
+          "groupings": null,
+          "ownerId": null,
+          "empty": false
+        }
+      ],
+      "ownerId": null,
+      "empty": false
+    }
+  ],
+  "description": "sd",
+  "icon": "defaulticon",
+  "componentInstancesProperties": {
+
+  },
+  "componentInstancesAttributes": {
+
+  },
+  "name": "REPLACE",
+  "tags": [
+    "REPLACE"
+  ],
+  "capabilities": {
+
+  },
+  "requirements": {
+
+  },
+  "deploymentArtifacts": {
+
+  },
+  "componentType": "RESOURCE",
+  "vendorName": "vendor",
+  "vendorRelease": "vendor release",
+  "componentInstances": [
+
+  ],
+  "inputs": [{
+    "uniqueId": "abcdef",
+    "type": "org.openecomp.datatypes.Naming",
+    "required": false,
+    "definition": false,
+    "defaultValue": null,
+    "description": null,
+    "schema": null,
+    "password": false,
+    "name": "abcdef",
+    "value": null,
+    "label": null,
+    "hidden": false,
+    "immutable": false,
+    "inputPath": null,
+    "status": null,
+    "inputId": null,
+    "instanceUniqueId": null,
+    "propertyId": null,
+    "annotations": null,
+    "parentUniqueId": "abcd",
+    "getInputValues": null,
+    "constraints": null,
+    "inputs": null,
+    "properties": null,
+    "getInputProperty": false,
+    "schemaType": null,
+    "schemaProperty": null,
+    "version": null,
+    "ownerId": null,
+    "empty": false
+  } ],
+  "properties": [
+
+  ],
+  "attributes": [
+
+  ],
+  "groups": [
+
+  ],
+  "resourceType": "VF"
+}
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/resources/json/operation/updateOperation.json b/cucumber-js-test-apis-ci/resources/json/operation/updateOperation.json
new file mode 100644
index 0000000..698d38c
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/json/operation/updateOperation.json
@@ -0,0 +1,28 @@
+{
+  "interfaceOperations": {
+    "operation": {
+      "description": "create operation_Updated",
+      "inputParams": {
+        "listToscaDataDefinition": [
+          {
+            "name": "inp1",
+            "type": "string",
+            "property": "97477d27-8fe2-45a1-83cb-83368ef2a402.nf_naming_code",
+            "mandatory": true
+          }
+        ]
+      },
+      "outputParams": {
+        "listToscaDataDefinition": [
+          {
+            "name": "op",
+            "mandatory": true,
+            "type": "String"
+          }
+        ]
+      },
+      "operationType": "create",
+      "uniqueId": "REPLACE FROM CONTEXT"
+    }
+  }
+}
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/resources/uploads/BASE_MUX.zip b/cucumber-js-test-apis-ci/resources/uploads/BASE_MUX.zip
new file mode 100644
index 0000000..4e7fbcf
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/BASE_MUX.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/BASE_MUX_with_no_base.zip b/cucumber-js-test-apis-ci/resources/uploads/BASE_MUX_with_no_base.zip
new file mode 100644
index 0000000..8698ef7
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/BASE_MUX_with_no_base.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/NEW_NC_with_manifest.zip b/cucumber-js-test-apis-ci/resources/uploads/NEW_NC_with_manifest.zip
new file mode 100644
index 0000000..403cb7b
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/NEW_NC_with_manifest.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/all-violations.zip b/cucumber-js-test-apis-ci/resources/uploads/all-violations.zip
new file mode 100644
index 0000000..d86c7a7
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/all-violations.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/annotationMultVolume.zip b/cucumber-js-test-apis-ci/resources/uploads/annotationMultVolume.zip
new file mode 100644
index 0000000..8dc3f78
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/annotationMultVolume.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/errorHeat.zip b/cucumber-js-test-apis-ci/resources/uploads/errorHeat.zip
new file mode 100644
index 0000000..21444fa
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/errorHeat.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/inputsForNestedHeat.zip b/cucumber-js-test-apis-ci/resources/uploads/inputsForNestedHeat.zip
new file mode 100644
index 0000000..f1569ee
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/inputsForNestedHeat.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/multiple-parents.zip b/cucumber-js-test-apis-ci/resources/uploads/multiple-parents.zip
new file mode 100644
index 0000000..64d579c
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/multiple-parents.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/nested-belongs-to-volume.zip b/cucumber-js-test-apis-ci/resources/uploads/nested-belongs-to-volume.zip
new file mode 100644
index 0000000..690cb95
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/nested-belongs-to-volume.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/refs_missing.zip b/cucumber-js-test-apis-ci/resources/uploads/refs_missing.zip
new file mode 100644
index 0000000..3aec138
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/refs_missing.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/tag_missing.zip b/cucumber-js-test-apis-ci/resources/uploads/tag_missing.zip
new file mode 100644
index 0000000..84b0d8e
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/tag_missing.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vMME_Ericsson_small_v2.zip b/cucumber-js-test-apis-ci/resources/uploads/vMME_Ericsson_small_v2.zip
new file mode 100644
index 0000000..f5b1375
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vMME_Ericsson_small_v2.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlan-tagging-positive.zip b/cucumber-js-test-apis-ci/resources/uploads/vlan-tagging-positive.zip
new file mode 100644
index 0000000..b451977
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlan-tagging-positive.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1a/negativeNotBoundToParentPort.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1a/negativeNotBoundToParentPort.zip
new file mode 100644
index 0000000..129fc7e
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1a/negativeNotBoundToParentPort.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1a/regularNestedSubinterface.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1a/regularNestedSubinterface.zip
new file mode 100644
index 0000000..a64f081
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1a/regularNestedSubinterface.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1a/subInterfaceGetAttrInOut.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1a/subInterfaceGetAttrInOut.zip
new file mode 100644
index 0000000..993e9f8
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1a/subInterfaceGetAttrInOut.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1b/diffCompute_SubInterface.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1b/diffCompute_SubInterface.zip
new file mode 100644
index 0000000..c0b54c4
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1b/diffCompute_SubInterface.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1b/diffPort_SubInterface.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1b/diffPort_SubInterface.zip
new file mode 100644
index 0000000..713e429
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1b/diffPort_SubInterface.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1b/diffSubInterfaceFile.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1b/diffSubInterfaceFile.zip
new file mode 100644
index 0000000..24da28a
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1b/diffSubInterfaceFile.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1b/regularNestedSubInterface.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1b/regularNestedSubInterface.zip
new file mode 100644
index 0000000..f967bf9
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1b/regularNestedSubInterface.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1c1/multiplePortsMultipleVlans.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1c1/multiplePortsMultipleVlans.zip
new file mode 100644
index 0000000..7c6890e
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1c1/multiplePortsMultipleVlans.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1c1/regularNestedSubInterface.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1c1/regularNestedSubInterface.zip
new file mode 100644
index 0000000..57e270b
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1c1/regularNestedSubInterface.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1c2/differentNetwork.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1c2/differentNetwork.zip
new file mode 100644
index 0000000..87d724b
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1c2/differentNetwork.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1c2/differentResourceGroupCount.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1c2/differentResourceGroupCount.zip
new file mode 100644
index 0000000..13c08e9
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern1c2/differentResourceGroupCount.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern4/Pattern_4_MultiplePort_MultipleSubInterface.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern4/Pattern_4_MultiplePort_MultipleSubInterface.zip
new file mode 100644
index 0000000..fb4c68d
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern4/Pattern_4_MultiplePort_MultipleSubInterface.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern4/Pattern_4_SinglePort_SingleSubInterface.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern4/Pattern_4_SinglePort_SingleSubInterface.zip
new file mode 100644
index 0000000..87c4489
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern4/Pattern_4_SinglePort_SingleSubInterface.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern4/regularNestedSubInterface.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern4/regularNestedSubInterface.zip
new file mode 100644
index 0000000..89adb0f
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern4/regularNestedSubInterface.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern5/Pattern_5ComplexVSPWithDiffSubInfConn.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern5/Pattern_5ComplexVSPWithDiffSubInfConn.zip
new file mode 100644
index 0000000..f428240
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern5/Pattern_5ComplexVSPWithDiffSubInfConn.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern5/Pattern_5_NestedResourceWithMultipleComputeAndPort.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern5/Pattern_5_NestedResourceWithMultipleComputeAndPort.zip
new file mode 100644
index 0000000..6443023
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/pattern5/Pattern_5_NestedResourceWithMultipleComputeAndPort.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/vfcinstancegroup/groupPattern1aHeat.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/vfcinstancegroup/groupPattern1aHeat.zip
new file mode 100644
index 0000000..f4107be
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/vfcinstancegroup/groupPattern1aHeat.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/vfcinstancegroup/groupPattern1bHeat.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/vfcinstancegroup/groupPattern1bHeat.zip
new file mode 100644
index 0000000..d4244b6
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/vfcinstancegroup/groupPattern1bHeat.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/vfcinstancegroup/groupPattern1c1Heat.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/vfcinstancegroup/groupPattern1c1Heat.zip
new file mode 100644
index 0000000..2ac1604
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/vfcinstancegroup/groupPattern1c1Heat.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/vfcinstancegroup/groupPattern1c2Heat.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/vfcinstancegroup/groupPattern1c2Heat.zip
new file mode 100644
index 0000000..7d990e6
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/vfcinstancegroup/groupPattern1c2Heat.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/vlantagging/vfcinstancegroup/groupPattern4Heat.zip b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/vfcinstancegroup/groupPattern4Heat.zip
new file mode 100644
index 0000000..e744c93
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/vlantagging/vfcinstancegroup/groupPattern4Heat.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/volumeUnderNested.zip b/cucumber-js-test-apis-ci/resources/uploads/volumeUnderNested.zip
new file mode 100644
index 0000000..01798a5
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/volumeUnderNested.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/uploads/zipWithExternalPort.zip b/cucumber-js-test-apis-ci/resources/uploads/zipWithExternalPort.zip
new file mode 100644
index 0000000..3d6b3d0
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/uploads/zipWithExternalPort.zip
Binary files differ
diff --git a/cucumber-js-test-apis-ci/resources/yaml/CB_BASE.yaml b/cucumber-js-test-apis-ci/resources/yaml/CB_BASE.yaml
new file mode 100644
index 0000000..4aef40b
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/yaml/CB_BASE.yaml
@@ -0,0 +1,91 @@
+heat_template_version: 2013-05-23
+
+description: >
+ BASE TEMPLATE
+
+parameters:
+    vnf_name:
+        type: string
+        description: Unique name for this VF instance
+        
+    vnf_id:
+        type: string
+        description: Unique ID for this VF instance        
+      
+    network_in_cidr:
+      type: string
+      description: IN network address (CIDR notation)
+      
+    network_out_cidr:
+      type: string
+      description: MUX out network address (CIDR notation)
+
+    network_in_gw_ip:
+      type: string
+      description: IN network gw address 
+
+    network_out_gw_ip:
+      type: string
+      description: MUX out network gw address 
+    
+resources:
+ 
+    random-str:
+      type: OS::Heat::RandomString
+      properties:
+        length: 4
+        
+    CB_IN_Net:
+        type: OS::Neutron::Net
+        properties:
+            name: 
+              str_replace:
+                template: CB_IN_Net_rand
+                params:
+                  rand: { get_resource: random-str }
+
+    CB_IN_Subnet:
+      type: OS::Neutron::Subnet
+      properties:
+        name:
+          str_replace:
+            template: CB_IN_Net_rand
+            params:
+              rand: { get_resource: random-str }
+        network_id: { get_resource: CB_IN_Net }
+        cidr: { get_param: network_in_cidr }
+        gateway_ip: { get_param: network_in_gw_ip }
+      
+    CB_OUT_Net:
+        type: OS::Neutron::Net
+        properties:
+            name: 
+              str_replace:
+                template: CB_OUT_Net_rand
+                params:
+                  rand: { get_resource: random-str }
+
+    CB_OUT_Subnet:
+        type: OS::Neutron::Subnet
+        properties:
+            network_id: { get_resource: CB_OUT_Net }
+            cidr: { get_param: network_out_cidr }
+            gateway_ip: { get_param: network_out_gw_ip }
+            
+outputs:
+
+    CB_IN_Net:
+      description: ID of the customer facing network
+      value: { get_resource: CB_IN_Net }
+      
+    CB_IN_Subnet:
+      description: ID of the customer facing subnet
+      value: { get_resource: CB_IN_Subnet }
+      
+    CB_OUT_Net:
+      description: ID of the Internet Facing network
+      value: { get_resource: CB_OUT_Net }
+      
+    CB_OUT_Subnet:
+      description: ID of the Internet Facing subnet
+      value: { get_resource: CB_OUT_Subnet }
diff --git a/cucumber-js-test-apis-ci/resources/yaml/Nested_FSB1ServiceTemplate.yaml b/cucumber-js-test-apis-ci/resources/yaml/Nested_FSB1ServiceTemplate.yaml
new file mode 100644
index 0000000..fb301b6
--- /dev/null
+++ b/cucumber-js-test-apis-ci/resources/yaml/Nested_FSB1ServiceTemplate.yaml
@@ -0,0 +1,309 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_FSB1
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.FSB1:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    port_FSB1_OAM_subnetpoolid:
+      type: string
+      required: true
+    compute_FSB1_availability_zone:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    port_FSB1_OAM_order:
+      type: integer
+      required: true
+    port_FSB1_OAM_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_FSB1_OAM_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    vm_flavor_name:
+      type: string
+      required: true
+    port_FSB1_OAM_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_FSB1_OAM_network_role:
+      type: string
+      required: true
+    port_FSB1_OAM_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_FSB1_OAM_network_role_tag:
+      type: string
+      required: true
+    compute_FSB1_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_FSB1_OAM_fixed_ips:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+    port_FSB1_OAM_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+  node_templates:
+    FSB1_FSB1_OAM:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        exCP_naming:
+          get_input: port_FSB1_OAM_exCP_naming
+        vlan_requirements:
+          get_input: port_FSB1_OAM_vlan_requirements
+        subinterface_indicator: false
+        ip_requirements:
+          get_input: port_FSB1_OAM_ip_requirements
+        network_role_tag:
+          get_input: port_FSB1_OAM_network_role_tag
+        mac_requirements:
+          get_input: port_FSB1_OAM_mac_requirements
+        order:
+          get_input: port_FSB1_OAM_order
+        network_role:
+          get_input: port_FSB1_OAM_network_role
+        subnetpoolid:
+          get_input: port_FSB1_OAM_subnetpoolid
+        fixed_ips:
+          get_input:
+          - port_FSB1_OAM_fixed_ips
+          - index_value
+        network:
+          get_input:
+          - port_FSB1_OAM_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: FSB1
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: FSB1
+              network_role:
+                get_input: port_FSB1_OAM_network_role
+              pps_capacity: ''
+    FSB1:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.FSB1
+      properties:
+        availability_zone:
+          get_input:
+          - compute_FSB1_availability_zone
+          - index_value
+        flavor:
+          get_input: vm_flavor_name
+        name:
+          get_input:
+          - compute_FSB1_name
+          - index_value
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.FSB1
+    capabilities:
+      network.incoming.bytes.rate_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - network.incoming.bytes.rate
+      network.outgoing.bytes_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - network.outgoing.bytes
+      disk.capacity_FSB1:
+      - FSB1
+      - disk.capacity
+      disk.read.bytes.rate_FSB1:
+      - FSB1
+      - disk.read.bytes.rate
+      disk.device.latency_FSB1:
+      - FSB1
+      - disk.device.latency
+      disk.allocation_FSB1:
+      - FSB1
+      - disk.allocation
+      disk.read.bytes_FSB1:
+      - FSB1
+      - disk.read.bytes
+      disk.device.capacity_FSB1:
+      - FSB1
+      - disk.device.capacity
+      cpu_util_FSB1:
+      - FSB1
+      - cpu_util
+      disk.device.write.requests.rate_FSB1:
+      - FSB1
+      - disk.device.write.requests.rate
+      network.outgoing.bytes.rate_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - network.outgoing.bytes.rate
+      disk.root.size_FSB1:
+      - FSB1
+      - disk.root.size
+      feature_FSB1:
+      - FSB1
+      - feature
+      forwarder_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - forwarder
+      memory.resident_FSB1:
+      - FSB1
+      - memory.resident
+      network.incoming.packets.rate_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - network.incoming.packets.rate
+      cpu_FSB1:
+      - FSB1
+      - cpu
+      disk.write.requests.rate_FSB1:
+      - FSB1
+      - disk.write.requests.rate
+      feature_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - feature
+      instance_FSB1:
+      - FSB1
+      - instance
+      disk.device.read.bytes.rate_FSB1:
+      - FSB1
+      - disk.device.read.bytes.rate
+      cpu.delta_FSB1:
+      - FSB1
+      - cpu.delta
+      disk.write.bytes_FSB1:
+      - FSB1
+      - disk.write.bytes
+      disk.device.read.requests.rate_FSB1:
+      - FSB1
+      - disk.device.read.requests.rate
+      disk.device.read.requests_FSB1:
+      - FSB1
+      - disk.device.read.requests
+      disk.ephemeral.size_FSB1:
+      - FSB1
+      - disk.ephemeral.size
+      binding_FSB1:
+      - FSB1
+      - binding
+      disk.device.write.bytes_FSB1:
+      - FSB1
+      - disk.device.write.bytes
+      network.outgoing.packets.rate_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - network.outgoing.packets.rate
+      binding_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - binding
+      attachment_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - attachment
+      network.incoming.bytes_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - network.incoming.bytes
+      memory_FSB1:
+      - FSB1
+      - memory
+      network.incoming.packets_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - network.incoming.packets
+      disk.device.read.bytes_FSB1:
+      - FSB1
+      - disk.device.read.bytes
+      disk.device.usage_FSB1:
+      - FSB1
+      - disk.device.usage
+      disk.write.bytes.rate_FSB1:
+      - FSB1
+      - disk.write.bytes.rate
+      scalable_FSB1:
+      - FSB1
+      - scalable
+      disk.usage_FSB1:
+      - FSB1
+      - disk.usage
+      network.outpoing.packets_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - network.outpoing.packets
+      host_FSB1:
+      - FSB1
+      - host
+      disk.device.allocation_FSB1:
+      - FSB1
+      - disk.device.allocation
+      os_FSB1:
+      - FSB1
+      - os
+      vcpus_FSB1:
+      - FSB1
+      - vcpus
+      disk.write.requests_FSB1:
+      - FSB1
+      - disk.write.requests
+      disk.device.write.bytes.rate_FSB1:
+      - FSB1
+      - disk.device.write.bytes.rate
+      endpoint_FSB1:
+      - FSB1
+      - endpoint
+      disk.latency_FSB1:
+      - FSB1
+      - disk.latency
+      memory.usage_FSB1:
+      - FSB1
+      - memory.usage
+      disk.read.requests_FSB1:
+      - FSB1
+      - disk.read.requests
+      disk.device.write.requests_FSB1:
+      - FSB1
+      - disk.device.write.requests
+      disk.iops_FSB1:
+      - FSB1
+      - disk.iops
+      disk.device.iops_FSB1:
+      - FSB1
+      - disk.device.iops
+      port_mirroring_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - port_mirroring
+    requirements:
+      link_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - link
+      dependency_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - dependency
+      dependency_FSB1:
+      - FSB1
+      - dependency
+      local_storage_FSB1:
+      - FSB1
+      - local_storage
diff --git a/cucumber-js-test-apis-ci/stepDefinitions/ActivitySpec_steps.js b/cucumber-js-test-apis-ci/stepDefinitions/ActivitySpec_steps.js
new file mode 100644
index 0000000..7fe8ddf
--- /dev/null
+++ b/cucumber-js-test-apis-ci/stepDefinitions/ActivitySpec_steps.js
@@ -0,0 +1,47 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.
+ */
+
+const {Then, When} = require('cucumber');
+const assert = require('assert');
+const util = require('./Utils.js');
+const _ = require('lodash');
+
+When('I want to create an ActivitySpec', function () {
+  let path = '/activity-spec';
+  return util.request(this.context, 'POST', path, this.context.inputData, false, 'activity_spec').then((result)=> {
+    this.context.item = {id : result.data.id, versionId: result.data.versionId};
+    this.context.activityspec = {id : result.data.id, versionId: result.data.versionId};
+  });
+});
+
+When('I want to list ActivitySpecs with status {string}', function (string) {
+  let path = '/activity-spec?status='+string;
+  return util.request(this.context, 'GET', path, null, false, 'activity_spec').then((result)=> {
+    this.context.listCount = result.data.listCount;
+  });
+});
+
+When('I want to get the ActivitySpec for the current item', function () {
+  let path = '/activity-spec/'+ this.context.item.id+'/versions/'+this.context.item.versionId ;
+  return util.request(this.context, 'GET', path, null, false, 'activity_spec').then((result)=> {
+  });
+});
+
+Then('I want to call action {string} on this ActivitySpec item', function(string)  {
+  let path = '/activity-spec/'+ this.context.item.id+'/versions/'+this.context.item.versionId+'/actions' ;
+  let inputData = JSON.parse('{"action" : "' +string+ '"}');
+  return util.request(this.context, 'PUT', path, inputData, false, 'activity_spec')
+});
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/stepDefinitions/Collaboration_Steps.js b/cucumber-js-test-apis-ci/stepDefinitions/Collaboration_Steps.js
new file mode 100644
index 0000000..c4de758
--- /dev/null
+++ b/cucumber-js-test-apis-ci/stepDefinitions/Collaboration_Steps.js
@@ -0,0 +1,113 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+const {Then, When, Given} = require('cucumber');
+const assert = require('assert');
+const util = require('./Utils.js');
+
+/**
+ * @module Collaboration
+ * @description Adds the user with the given user ID as a contributor on the item
+ * @exampleFile Example_Collaboration.feature
+ * @step I want to add user {string} as a contributor to this Item
+ **/
+When('I want to add user {string} as a contributor to this Item', function(string)  {
+	let path = '/items/' + this.context.item.id + '/permissions/Contributor';
+	let inputData = {removedUsersIds:[],addedUsersIds:[string]};
+	return util.request(this.context, 'PUT', path, inputData);
+});
+
+/**
+ * @module Collaboration
+ * @description Adds the user with the given user ID as a contributor on the item
+ * @exampleFile Example_Collaboration.feature
+ * @step I want to remove user {string} as a contributor to this Item
+ **/
+When('I want to remove user {string} as a contributor to this Item', function(string)  {
+	let path = '/items/' + this.context.item.id + '/permissions/Contributor';
+	let inputData = {removedUsersIds:[string],addedUsersIds:[]};
+	return util.request(this.context, 'PUT', path, inputData);
+});
+
+/**
+ * @module Collaboration
+ * @description Changes the owner to the given User ID
+ * @exampleFile Example_Collaboration.feature
+ * @step I want to change the owner to user {string} on this Item
+ **/
+When('I want to change the owner to user {string} on this Item', function(string)  {
+	let path = '/items/' + this.context.item.id + '/permissions/Owner';
+	let inputData = {removedUsersIds:[],addedUsersIds:[string]};
+	return util.request(this.context, 'PUT', path, inputData);
+});
+
+
+/**
+ * @module Collaboration
+ * @description Checks the role for a user on the item by User id and Role can be either: Contributor/Owner
+ * @exampleFile Example_Collaboration.feature
+ * @step I want check user {string} has role {string} on this Item
+ **/
+When('I want to check user {string} has role {string} on this Item', function(string, string2)  {
+	let path = '/items/' + this.context.item.id + '/permissions';
+	return util.request(this.context, 'GET', path).then(results => {
+		for (i in results.data.results) {
+			if (results.data.results[i].userId === string) {
+				assert.equal(string2.toLowerCase(), results.data.results[i].permission.toLowerCase());
+				return;
+			}
+		}
+		assert.fail('User not found');
+	});
+});
+
+/**
+ * @module Collaboration
+ * @description Checks the user wth this Id has no permissions on this item
+ * @exampleFile Example_Collaboration.feature
+ * @step I want check user {string} has rno permissions on this Item
+ **/
+When('I want to check user {string} has no permissions on this Item', function(string)  {
+	let path = '/items/' + this.context.item.id + '/permissions';
+	return util.request(this.context, 'GET', path).then(results => {
+		for (i in results.data.results) {
+			if (results.data.results[i].userId === string) {
+				assert.fail('Found', null, 'User should not have permissions');
+				return;
+			}
+		}
+	});
+});
+
+/**
+ * @module Collaboration
+ * @description Gets the permissions for the Item
+ * @exampleFile Example_Collaboration.feature
+ * @step I want to get the permissions for this Item
+ **/
+When('I want to get the permissions for this Item', function()  {
+	let path = '/items/' + this.context.item.id + '/permissions';
+	return util.request(this.context, 'GET', path);
+});
+
+/**
+ * @module Collaboration
+ * @description Changes the user for the Rest calls
+ * @exampleFile Example_Collaboration.feature
+ * @step I want to set the user to {string}
+ **/
+When('I want to set the user to {string}', function(string)  {
+	this.context.headers['onboarding'].USER_ID = string;
+});
diff --git a/cucumber-js-test-apis-ci/stepDefinitions/General_Steps.js b/cucumber-js-test-apis-ci/stepDefinitions/General_Steps.js
new file mode 100644
index 0000000..2076366
--- /dev/null
+++ b/cucumber-js-test-apis-ci/stepDefinitions/General_Steps.js
@@ -0,0 +1,304 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+const {Then, When, Given} = require('cucumber');
+const assert = require('assert');
+const _ = require('lodash');
+const normalizeNewline = require('normalize-newline');
+require('node-zip');
+YAML = require('yamljs');
+const fs = require('fs');
+const util = require('./Utils.js');
+
+function getPath(path, context) {
+	let compiled = _.template(path);
+	return compiled(context);
+}
+
+/**
+ * @module ContextData
+ * @description  Use with "Given". Use ONLY for local testing when you know the value of the Item you want to use
+ * instead of creating a new one.
+ * @step Item {string} and version Id {string}
+ **/
+Given('Item {string} and version Id {string}', function (string, string2) {
+	this.context.item.id = string;
+	this.context.item.versionId = string2;
+});
+/**
+ * @module ContextData
+ * @exampleFile Example_ResponseData_CheckAndManipulation.feature
+ * @description Response Data::<br>
+ *     """<br>
+ *         {jsonObject}<br>
+ *             """<br>
+ * @step  Use with "Given". Use ONLY for local testing, creates a response data object
+ **/
+Given('Response Data:', function (docString) {
+	this.context.responseData = JSON.parse(docString);
+});
+
+/**
+ * @module ContextData
+ * @description Copy a property from the response data to context Item/VLM/VSP data, example: vsp.componentId
+ * @step I want to save on the context for {string} property {string} with value {string}
+ **/
+Then('I want to save on the context for {string} property {string} with value {string}', function(string, string1, string2)  {
+	assert.equal(_.includes(['VLM', 'VSP', 'Item'], string), true);
+	let val = _.get(this.context.responseData, string2);
+	_.set(this.context, string1, val);
+});
+/**
+ * @module ContextData
+ * @description Copy a property from the response data to saved data on the context. Example: save newly generated IDs. Response data value can be from a path, xample: results[0].id
+ * @exampleFile Example_Rest_Calls.feature
+ * @step I want to save to property {string} from response data path {string}
+ **/
+Then('I want to copy to property {string} from response data path {string}', function(string, string2)  {
+	let val = _.get(this.context.responseData, string2);
+	_.set(this.context, string, val);
+});
+/**
+ * @module ContextData
+ * @description This will set the value of a saved property on the context
+ * @exampleFile Example_Rest_Calls.feature
+ * @step I want to set property {string} to value {string}
+ **/
+Then('I want to set property {string} to value {string}', function(string, string2)  {
+	_.set(this.context, string, string2);
+});
+
+/**
+ * @module ResponseData
+ * @description Will check the output data for a property and a value. property can be a path (example: results[0].id)
+ * @exampleFile Example_ResponseData_CheckAndManipulation.feature
+ * @step I want to check property {string} for value {string}
+ **/
+Then('I want to check property {string} for value {string}', function(string, string2)  {
+	assert.equal(_.get(this.context.responseData, string), string2);
+});
+/**
+ * @module ResponseData
+ * @description Will check the output data for a property and a value. property can be a path
+ * (example: results[0].id). Supports comparison to a long String by allowing a line break
+ * @exampleFile VirtualMachineInterfaceValidationHeatResourceMissingProperties.feature
+ * @step I want to check property {string} for value {string}
+ **/
+
+Then('I want to check property {string} for value:', function(string, docString)  {
+	assert.equal(_.get(this.context.responseData, string), docString.trim());
+});
+/**
+ * @module ResponseData
+ * @description Will check the output data for a property and a integer. property can be a path (example: results[0].id)
+ * @exampleFile Example_ResponseData_CheckAndManipulation.feature
+ * @step I want to check property {string} for value {int}
+ **/
+Then('I want to check property {string} for value {int}', function(string, int)  {
+	assert.equal(_.get(this.context.responseData, string), int);
+});
+/**
+ * @module ResponseData
+ * @description Will check the output data for a property and a boolean. property can be a path (example: results[0].id)
+ * @exampleFile Example_ResponseData_CheckAndManipulation.feature
+ * @step I want to check property {string} to be "True/False"
+ **/
+Then('I want to check property {string} to be {word}', function(string, string2)  {
+    assert.equal(_.get(this.context.responseData, string), string2.toLowerCase() == "true");
+});
+/**
+ * @module ResponseData
+ * @description Will check the output data for a property and a boolean. property can be a path (example: results[0].id)
+ * @exampleFile Example_ResponseData_CheckAndManipulation.feature
+ * @step I want to check property {string} to have length {int}
+ **/
+Then('I want to check property {string} to have length {int}', function(string, intLength)  {
+	let arrayProp = _.get(this.context.responseData, string);
+	assert.equal(arrayProp.length, intLength);
+});
+/**
+ * @module ResponseData
+ * @description Will check the output data for a property and make sure it exists
+ * @exampleFile Example_ResponseData_CheckAndManipulation.feature
+ * @step I want to check property {string} exists
+ **/
+Then('I want to check property {string} exists', function(string)  {
+	assert.equal(_.has(this.context.responseData, string), true);
+});
+/**
+ * @module ResponseData
+ * @description Will check the output data for a property and make sure it does not exist
+ * @exampleFile Example_ResponseData_CheckAndManipulation.feature
+ * @step I want to check property {string} does not exist
+ **/
+Then('I want to check property {string} does not exist', function(string)  {
+	assert.equal(_.has(this.context.responseData, string), false);
+});
+
+/**
+* @module ContextData
+* @description Use during development to see what is on the context
+ * @exampleFile Example_ResponseData_CheckAndManipulation.feature
+* @step I want to print context data
+**/
+Then('I want to print the context data', function()  {
+	console.log('------------ context ---------------');
+	console.log(JSON.stringify(this.context, null, 2));
+	console.log('--------------------------------------');
+});
+/**
+ * @module ContextData
+ * @description Set this in order to check that the following Rest call will not have response code 200
+ * @exampleFile Example_Rest_Calls.feature
+ * @step I want the following to fail
+ **/
+Then('I want the following to fail', function()  {
+	this.context.shouldFail = true;
+});
+
+/**
+ * @module ContextData
+ * @description Set this in order to check that the following Rest call will have the error code on the return data
+ * @exampleFile Example_VSP.feature
+ * @step I want the following to fail with error code {string}
+ **/
+Then('I want the following to fail with error code {string}', function(string)  {
+	this.context.shouldFail = true;
+	this.context.errorCode = string;
+});
+
+
+/**
+ * @module ContextData
+ * @description Set this in order to check that the following Rest call will have the error message on the return data
+ * @exampleFile DeleteVLMCertified.feature
+ * @step I want the following to fail with error message {string}
+ **/
+Then('I want the following to fail with error message {string}', function(string)  {
+	this.context.shouldFail = true;
+	let errorMessage = getPath(string, this.context);
+	this.context.errorMessage = errorMessage;
+});
+
+/**
+ * @module ZipData
+ * @description Use this in order to extract a file from a zip file and to compare it to a local file (string comparison).
+ * @exampleFile Example_VSP.feature
+ * @step I want to compare the content of the entry {string} in the zip {string} with file {string}
+ **/
+Then ('I want to compare the content of the entry {string} in the zip {string} with file {string}', function (string, string2, string3) {
+	let zipFile = fs.readFileSync(string2, 'binary');
+	let zip = new JSZip(zipFile, {base64: false, checkCRC32: true});
+	let fileData = zip.files[string]._data;
+	let compareFileData = fs.readFileSync(string3, {encoding: 'ascii'});
+	assert.equal(normalizeNewline(compareFileData), normalizeNewline(fileData));
+});
+
+/**
+ * @module ZipData
+ * @description Loads the yaml from zip file onto the context responseData as JSON for running checks on the output
+ * @exampleFile Example_VSP.feature
+ * @step I want to load the yaml content of the entry {string} in the zip {string} to context
+ **/
+Then ('I want to load the yaml content of the entry {string} in the zip {string} to context', function (string, string2, callback) {
+	let zipFile = fs.readFileSync(string2, 'binary');
+	let zip = new JSZip(zipFile, {base64: false, checkCRC32: true});
+	let fileData = zip.files[string]._data;
+	let nativeObject = YAML.parse(fileData);
+	this.context.responseData = nativeObject;
+	callback();
+});
+
+
+/**
+ * @module ZipData
+ * @description Loads the json from zip file onto the context responseData for running check son the output
+ * @exampleFile Example_VSP.feature
+ * @step I want to load the json content of the entry {string} in the zip {string} to context
+ **/
+When('I want to load the json content of the entry {string} in the zip {string} to context', function (string, string2, callback) {
+	let zipFile = fs.readFileSync(string2, 'binary');
+	let zip = new JSZip(zipFile, {base64: false, checkCRC32: true});
+	let str = zip.files[string]._data;
+	this.context.responseData = JSON.parse(str);
+	callback();
+});
+
+/**
+ * @module ResponseData
+ * @description Check that the result list doesn't contain an element with property x which has value
+ * equals to saved property y
+ * @exampleFile ListItemsFilters.feature
+ * @step I want to check that element in the response list with {string} equals to value of saved property {string} does not exist
+ **/
+Then('I want to check that element in the response list with {string} equals to value of saved property {string} does not exist', function (propertyPath, valueProperty) {
+    const results = this.context.responseData.results;
+    assert.equal(results.find(result => this.context[valueProperty] === _.get(result, propertyPath)), undefined);
+});
+
+/**
+ * @module ResponseData
+ * @description Check that the result list contains an element with property x which has value
+ * equals to saved property y
+ * @exampleFile ListItemsFilters.feature
+ * @step I want to check that element in the response list with {string} equals to value of saved property {string} exists
+ **/
+Then('I want to check that element in the response list with {string} equals to value of saved property {string} exists', function(propertyPath, valueProperty) {
+    const results = this.context.responseData.results;
+    assert.notEqual(results.find(result => this.context[valueProperty] === _.get(result, propertyPath)), undefined);
+});
+
+/**
+ * @module ResponseData
+ * @description Check that the itemId from context exits in result of responseData
+ * exampleFile ArchiveItem.feature
+ * step I want to check that item exits in response
+ **/
+Then('I want to check that item exits in response', function() {
+
+  const id = this.context.item.id;
+  const results = this.context.responseData.results;
+  var testResult = false;
+
+  for(var i=0; i< results.length; i++){
+     if ( id == results[i].id){
+            testResult = true;
+     }
+  }
+
+   assert.equal(testResult,true);
+});
+
+
+/**
+ * @module ResponseData
+ * @description Check that the itemId from context does NOT exits in result of responseData
+ * exampleFile ArchiveItem.feature
+ * step I want to check that item does not exits in response
+ **/
+Then('I want to check that item does not exits in response', function() {
+
+  const id = this.context.item.id;
+  const results = this.context.responseData.results;
+  var testResult = false;
+
+  for(var i=0; i< results.length; i++){
+     if ( id == results[i].id){
+            testResult = true;
+     }
+  }
+
+   assert.equal(testResult,false);
+});
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/stepDefinitions/GlobalTypes.js b/cucumber-js-test-apis-ci/stepDefinitions/GlobalTypes.js
new file mode 100644
index 0000000..461fee7
--- /dev/null
+++ b/cucumber-js-test-apis-ci/stepDefinitions/GlobalTypes.js
@@ -0,0 +1,24 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.
+ */
+
+const {Then, When} = require('cucumber');
+const assert = require('assert');
+const util = require('./Utils.js');
+
+When('I want to get interface lifecycle types', function () {
+    let path = '/catalog/interfaceLifecycleTypes';
+    return util.request(this.context, 'GET', path, null, false, 'catalog');
+});
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/stepDefinitions/InputData_steps.js b/cucumber-js-test-apis-ci/stepDefinitions/InputData_steps.js
new file mode 100644
index 0000000..57a374b
--- /dev/null
+++ b/cucumber-js-test-apis-ci/stepDefinitions/InputData_steps.js
@@ -0,0 +1,94 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+const {Then, When, Given} = require('cucumber');
+const assert = require('assert');
+const _ = require('lodash');
+const fs = require('fs');
+const util = require('./Utils.js');
+
+/**
+ * @module InputData
+ * @description creates an ampty input data object
+ * @exampleFile Example_Rest_Calls.feature, Example_VLM.feature
+ * @step I want to create input data
+ **/
+When('I want to create input data', function () {
+	this.context.inputData = {};
+});
+
+/**
+ * @module InputData
+ * @exampleFile Example_Heat.feature
+ * @description I want to set the input data to:<br>
+ *     """<br>
+ *         {jsonObject}<br>
+ *             """<br>
+ * @step creates an input data element with the given json object
+ **/
+When('I want to set the input data to:', function (docString) {
+	this.context.inputData = JSON.parse(docString);
+});
+
+/**
+ * @module InputData
+ * @description creates an input data object from the json in the given file
+ * @exampleFile Example_Rest_Calls.feature
+ * @step I want to set the input data to file {string}
+ **/
+When('I want to set the input data to file {string}', function (string) {
+	this.context.inputData = util.getJSONFromFile(string);
+});
+
+/**
+ * @module InputData
+ * @description sets the property on the input data to the given value
+ * @exampleFile Example_Rest_Calls.feature, Example_VLM.feature
+ * @step I want to update the input property {string} with value {string}
+ **/
+Then('I want to update the input property {string} with value {string}', function(string, string2)  {
+	_.set(this.context.inputData, string, string2);
+});
+
+/**
+ * @module InputData
+ * @description sets the input property on the input data to the value from property
+ * @exampleFile TestMD5.feature
+ * @step I want to update the input property {string} from property {string}
+ **/
+Then('I want to update the input property {string} from property {string}', function(string, string2)  {
+	let val = _.get(this.context, string2);
+    _.set(this.context.inputData, string, val);
+});
+
+/**
+ * @module InputData
+ * @description removes a property from the input data object
+ * @exampleFile Example_Rest_Calls.feature
+ * @step I want to remove {string} from the input data
+ **/
+Then('I want to remove {string} from the input data', function(string)  {
+	delete this.context.inputData[string];
+});
+
+/**
+ * @module InputData
+ * @description sets the input data property to a random value
+ * @exampleFile Example_Rest_Calls.feature
+ * @step I want to update the input property {string} with a random value
+ **/
+Then('I want to update the input property {string} with a random value', function(string)  {
+	_.set(this.context.inputData, string, util.random());
+});
diff --git a/cucumber-js-test-apis-ci/stepDefinitions/InterfaceOperationSteps.js b/cucumber-js-test-apis-ci/stepDefinitions/InterfaceOperationSteps.js
new file mode 100644
index 0000000..408db9e
--- /dev/null
+++ b/cucumber-js-test-apis-ci/stepDefinitions/InterfaceOperationSteps.js
@@ -0,0 +1,156 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+const {Then, When} = require('cucumber');
+const assert = require('assert');
+const util = require('./Utils.js');
+
+
+When('I want to create a VF', function()  {
+    let inputData = util.getJSONFromFile('resources/json/operation/createVF.json');
+
+    inputData.name =  util.random();
+    inputData.tags[0] = util.random();
+
+    var type = "resources";
+    let path = '/catalog/' + type;
+    return util.request(this.context, 'POST', path,  inputData, false, 'catalog').then(result => {
+        this.context.component = {uniqueId : result.data.uniqueId, type : type, id : result.data.inputs[0].uniqueId};
+});
+});
+
+When('I want to create a Service', function()  {
+    let inputData = util.getJSONFromFile('resources/json/operation/createService.json');
+
+    inputData.name =  util.random();
+    inputData.tags[0] = util.random();
+
+    var type = "services";
+    let path = '/catalog/' + type;
+    return util.request(this.context, 'POST', path,  inputData, false, 'catalog').then(result => {
+        this.context.component = {uniqueId : result.data.uniqueId, type : type, id : result.data.inputs[0].uniqueId};
+});
+});
+
+function makeType() {
+    var text = "";
+    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+
+    for (var i = 0; i < 5; i++)
+        text += possible.charAt(Math.floor(Math.random() * possible.length));
+
+    return text;
+}
+
+When('I want to create an Operation with input output', function()  {
+    let path = '/catalog/' + this.context.component.type + '/' + this.context.component.uniqueId + '/interfaceOperations';
+    let inputData = util.getJSONFromFile('resources/json/operation/createOperationWithInputOutput.json');
+
+    inputData.interfaceOperations.operation.inputParams.listToscaDataDefinition[0].name = util.random();
+    inputData.interfaceOperations.operation.inputParams.listToscaDataDefinition[0].property = this.context.component.id;
+    inputData.interfaceOperations.operation.outputParams.listToscaDataDefinition[0].name = util.random();
+    inputData.interfaceOperations.operation.operationType = makeType();
+    inputData.interfaceOperations.operation.description = makeType();
+
+    return util.request(this.context, 'POST', path, inputData, false, 'catalog').then(result => {
+        this.context.operation = {uniqueId : result.data.uniqueId, operationType : result.data.operationType};
+});
+});
+
+When('I want to create an Operation', function()  {
+    let path = '/catalog/' + this.context.component.type + '/' + this.context.component.uniqueId + '/interfaceOperations';
+    let inputData  = util.getJSONFromFile('resources/json/operation/createOperation.json');
+    inputData.interfaceOperations.operation.operationType = makeType();
+    inputData.interfaceOperations.operation.description = makeType();
+
+    return util.request(this.context, 'POST', path, inputData, false, 'catalog').then(result => {
+        this.context.operation = {uniqueId : result.data.uniqueId, operationType : result.data.operationType};
+});
+});
+
+When('I want to create an Operation with workflow', function()  {
+    let path = '/catalog/' + this.context.component.type + '/' + this.context.component.uniqueId + '/interfaceOperations';
+    let inputData = util.getJSONFromFile('resources/json/operation/createOperation-with-workflow.json');
+
+    inputData.interfaceOperations.operation.inputParams.listToscaDataDefinition[0].name = util.random();
+    inputData.interfaceOperations.operation.inputParams.listToscaDataDefinition[0].property = this.context.component.id;
+    inputData.interfaceOperations.operation.outputParams.listToscaDataDefinition[0].name = util.random();
+    inputData.interfaceOperations.operation.operationType = makeType();
+    inputData.interfaceOperations.operation.description = makeType();
+    inputData.interfaceOperations.operation.workflowId = makeType();
+    inputData.interfaceOperations.operation.workflowVersionId = makeType();
+
+    return util.request(this.context, 'POST', path, inputData, false, 'catalog').then(result => {
+        this.context.operation = {uniqueId : result.data.uniqueId, operationType : result.data.operationType};
+});
+});
+
+When('I want to list Operations', function () {
+    let path = '/catalog/'+ this.context.component.type + '/' + this.context.component.uniqueId + '/filteredDataByParams?include=interfaces';
+    return util.request(this.context, 'GET', path, null, false, 'catalog').then((result)=> {
+    });
+});
+
+When('I want to get an Operation by Id', function () {
+    let path = '/catalog/'+ this.context.component.type + '/' + this.context.component.uniqueId + '/interfaceOperations/' + this.context.operation.uniqueId;
+    return util.request(this.context, 'GET', path, null, false, 'catalog').then((result)=> {
+    this.context.operation = {uniqueId : result.data.uniqueId, operationType : result.data.operationType};
+});
+});
+
+When('I want to update an Operation', function () {
+    let inputData = util.getJSONFromFile('resources/json/operation/updateOperation.json');
+    let path = '/catalog/'+ this.context.component.type + '/'+ this.context.component.uniqueId +'/interfaceOperations';
+    inputData.interfaceOperations.operation.uniqueId = this.context.operation.uniqueId;
+    inputData.interfaceOperations.operation.operationType = this.context.operation.operationType;
+    inputData.interfaceOperations.operation.inputParams.listToscaDataDefinition[0].name = util.random();
+    inputData.interfaceOperations.operation.inputParams.listToscaDataDefinition[0].property = this.context.component.id;
+    inputData.interfaceOperations.operation.outputParams.listToscaDataDefinition[0].name = util.random();
+    return util.request(this.context, 'PUT', path, inputData, false, 'catalog').then((result)=> {
+    this.context.operation = {uniqueId : result.data.uniqueId, operationType : result.data.operationType};
+});
+});
+
+
+When('I want to delete an Operation', function()  {
+    let path = '/catalog/'+ this.context.component.type + '/'+ this.context.component.uniqueId +'/interfaceOperations/' + this.context.operation.uniqueId;
+    return util.request(this.context, 'DELETE', path, null, false, 'catalog');
+});
+
+
+When('I want to checkin this component', function () {
+    let path = '/catalog/'+ this.context.component.type + '/' + this.context.component.uniqueId + '/lifecycleState/CHECKIN' ;
+    let inputData = {userRemarks: 'checkin'};
+    return util.request(this.context, 'POST', path, inputData, false, 'catalog').then((result)=> {
+    this.context.component = {uniqueId : result.data.uniqueId, type : this.context.component.type};
+});
+});
+
+
+Then('I want to submit this component', function () {
+    let path = '/catalog/'+ this.context.component.type + '/' + this.context.component.uniqueId + '/lifecycleState/certificationRequest' ;
+    let inputData = {userRemarks: 'submit'};
+    return util.request(this.context, 'POST', path, inputData, false, 'catalog').then((result)=> {
+    this.context.component = {uniqueId : result.data.uniqueId};
+});
+});
+
+Then('I want to certify this component', function () {
+    let path = '/catalog/'+ this.context.component.type +'/' + this.context.component.uniqueId + '/lifecycleState/certify' ;
+    let inputData = {userRemarks: 'certify'};
+    return util.request(this.context, 'POST', path, inputData, false, 'catalog').then((result)=> {
+    this.context.component = {uniqueId : result.data.uniqueId};
+});
+});
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/stepDefinitions/Item_steps.js b/cucumber-js-test-apis-ci/stepDefinitions/Item_steps.js
new file mode 100644
index 0000000..3ff7f20
--- /dev/null
+++ b/cucumber-js-test-apis-ci/stepDefinitions/Item_steps.js
@@ -0,0 +1,91 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+const {Then, When} = require('cucumber');
+const assert = require('assert');
+const util = require('./Utils.js');
+/**
+ * @module Item
+ * @description uses item id and version id from context
+ * @exampleFile Example_VSP.feature, Example_VLM.feature
+ * @step I want to make sure this Item has status {string}
+ **/
+Then('I want to make sure this Item has status {string}', function (string) {
+	let path = '/items/' + this.context.item.id + '/versions';
+	return util.request(this.context, 'GET', path).then(result => {
+		assert.equal(result.data.results[0].id, this.context.item.versionId);
+		assert.equal(result.data.results[0].status, string);
+	});
+});
+/**
+ * @module Item
+ * @description uses item id and version id from context
+ * @exampleFile Example_VSP.feature, Example_VLM.feature
+ * @step I want to commit this Item
+ **/
+Then('I want to commit this Item', function () {
+	let path = '/items/' + this.context.item.id + '/versions/' + this.context.item.versionId + '/actions';
+	let inputData = {action: 'Commit', commitRequest: {message: '00Behave'}};
+	return util.request(this.context, 'PUT', path, inputData);
+});
+/**
+ * @module Item
+ * @description creates a new major version. item id and version id from context
+ * @exampleFile Example_VLM.feature
+ * @step I want to create a new version for this Item
+ **/
+Then('I want to create a new version for this Item', function () {
+	let path = '/items/' + this.context.item.id + '/versions/' + this.context.item.versionId;
+	let inputData = {description: 'Behave Version', creationMethod: 'major'};
+	return util.request(this.context, 'POST', path, inputData).then(result => {
+		assert.equal(result.data.status, 'Draft');
+	});
+});
+/**
+ * @module Item
+ * @description reverts to a revision with a given saved property. Should be set from the revision list first
+ * @exampleFile Example_VLM.feature
+ * @step I want to commit this Item
+ **/
+Then('I want to revert this Item to the revision with the value from saved property {string}', function (string) {
+	let path = '/items/' + this.context.item.id + '/versions/' + this.context.item.versionId + '/actions';
+	let inputData = {action: 'Revert', revisionRequest: {revisionId: this.context[string]}};
+	return util.request(this.context, 'PUT', path, inputData);
+});
+
+
+/**
+ * @module Item
+ * @exampleFile ArchiveItem.feature
+ * @step I want to archive this item
+ **/
+Then('I want to archive this item', function()  {
+    let path = '/items/' + this.context.item.id + '/actions'
+    let inputData = {action: 'ARCHIVE'};
+	return util.request(this.context, 'PUT', path, inputData);
+});
+
+
+/**
+ * @module Item
+ * @exampleFile ArchiveItem.feature
+ * @step I want to restore this item
+ **/
+Then('I want to restore this item', function()  {
+    let path = '/items/' + this.context.item.id + '/actions'
+    let inputData = {action: 'RESTORE'};
+	return util.request(this.context, 'PUT', path, inputData);
+});
+
diff --git a/cucumber-js-test-apis-ci/stepDefinitions/NetworkPackage_steps.js b/cucumber-js-test-apis-ci/stepDefinitions/NetworkPackage_steps.js
new file mode 100644
index 0000000..731d5b8
--- /dev/null
+++ b/cucumber-js-test-apis-ci/stepDefinitions/NetworkPackage_steps.js
@@ -0,0 +1,54 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+const {Then, When} = require('cucumber');
+const assert = require('assert');
+const util = require('./Utils.js');
+const _ = require('lodash');
+const fs = require('fs');
+require('node-zip');
+
+/**
+ * @module NetworkPackage
+ * @description Uploads the NetworkPackage file to the VSP on the context
+ * @exampleFile Example_HEAT.feature
+ * @step I want to upload a NetworkPackage for this VSP from path {string}
+ **/
+Then('I want to upload a NetworkPackage for this VSP from path {string}', function (string) {
+	let path =  '/vendor-software-products/' + this.context.item.id + '/versions/' + this.context.item.versionId + '/orchestration-template-candidate';
+	return util.request(this.context, 'POST', path, string, true);
+});
+
+/**
+ * @module NetworkPackage
+ * @description Downloads the network package to disk
+ * @exampleFile Example_HEAT.feature
+ * @step I want to download the NetworkPackage for this VSP to path {string}
+ **/
+When('I want to download the NetworkPackage for this VSP to path {string}', function (string, callback) {
+	let path =  '/vendor-software-products/' + this.context.item.id + '/versions/' + this.context.item.versionId + '/orchestration-template-candidate';
+	return [util.download(this.context, path, string, callback)];
+});
+
+/**
+ * @module NetworkPackage
+ * @description Processes the NetworkPackage file on the server
+ * @exampleFile Example_HEAT.feature
+ * @step I want to process the NetworkPackage file for this VSP
+ **/
+Then('I want to process the NetworkPackage file for this VSP', function () {
+	let path = '/vendor-software-products/' + this.context.item.id + '/versions/' + this.context.item.versionId + '/orchestration-template-candidate/process';
+	return util.request(this.context, 'PUT', path, this.context.inputData);
+});
diff --git a/cucumber-js-test-apis-ci/stepDefinitions/Questionnaire_steps.js b/cucumber-js-test-apis-ci/stepDefinitions/Questionnaire_steps.js
new file mode 100644
index 0000000..2e169fa
--- /dev/null
+++ b/cucumber-js-test-apis-ci/stepDefinitions/Questionnaire_steps.js
@@ -0,0 +1,129 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+const {Then, When} = require('cucumber');
+const assert = require('assert');
+const util = require('./Utils.js');
+const _ = require('lodash');
+
+function getPath(path, context) {
+    let compiled = _.template(path);
+    return compiled(context);
+}
+
+/**
+ * @module Questionnaire
+ * @description Gets the questionnaire for the current item and saves it on the context
+ * @exampleFile Example_VSP.feature
+ * @step I want to get the questionnaire for this item
+ **/
+Then('I want to get the questionnaire for this item', function () {
+	let path = "/vendor-software-products/" + this.context.item.id + "/versions/" + this.context.item.versionId + "/questionnaire";
+	return util.request(this.context, 'GET', path).then(result => {
+		this.context.qdata = JSON.parse(result.data.data);
+		this.context.qschema = result.data.schema;
+		this.context.qurl = path;
+	});
+});
+
+/**
+ * @module Questionnaire
+ * @description Gets the questionnaire for the current item and component and saves it on the context
+ * @exampleFile Example_VSP.feature
+ * @step I want to get the questionnaire for this component
+ **/
+Then('I want to get the questionnaire for this component', function () {
+	let path = "/vendor-software-products/" + this.context.item.id + "/versions/" + this.context.item.versionId + "/components/" + this.context.componentId  + "/questionnaire";
+	return util.request(this.context, 'GET', path).then(result => {
+		this.context.qdata = JSON.parse(result.data.data);
+		this.context.qschema = result.data.schema;
+		this.context.qurl = path;
+	});
+});
+
+/**
+ * @module Questionnaire
+ * @description Gets the questionnaire from path and saves it on the context
+ * @exampleFile TestMD5.feature
+ * @step I want to get the questionnaire for this path {string}
+ **/
+Then('I want to get the questionnaire for this path {string}', function (string) {
+    let path = getPath(string, this.context);
+    return util.request(this.context, 'GET', path).then(result => {
+        this.context.qdata = JSON.parse(result.data.data);
+        this.context.qschema = result.data.schema;
+        this.context.qurl = path;
+    });
+});
+
+/**
+ * @module Questionnaire
+ * @description Updates the property for the saved questionnaire
+ * @exampleFile Example_VSP.feature
+ * @step I want to update this questionnaire with value {string} for path {string}
+ **/
+Then('I want to update this questionnaire with value {string} for property {string}', function (string, string2) {
+	_.set(this.context.qdata, string, string2);
+});
+
+/**
+ * @module Questionnaire
+ * @description Checks the questionnaire data on the context for the given value and property
+ * @exampleFile Example_VSP.feature
+ * @step I want to check this questionnaire has value {string} for property {string}
+ **/
+Then('I want to check this questionnaire has value {string} for property {string}', function (string, string2) {
+	assert.equal(_.get(this.context.qdata, string), string2);
+});
+
+/**
+ * @module Questionnaire
+ * @description Updates the the questionnaire data from the context to the same url that loaded it
+ * @exampleFile Example_VSP.feature
+ * @step I want to update this questionnaire
+ **/
+Then('I want to update this questionnaire', function () {
+	return util.request(this.context, 'PUT', this.context.qurl, this.context.qdata);
+});
+
+/**
+ * @module Questionnaire
+ * @description Checks if the value of given property name in questionnaire data on the context is same as provided value
+ * @exampleFile ComponentData.feature
+ * @step I want to check value of {string} in the questionnaire data with value of property {string}
+ */
+Then('I want to check value of {string} in the questionnaire data with value of property {string}', function (string,
+																									propertyName) {
+    expectedValue = _.get(this.context, propertyName)
+	data1 = this.context.qdata;
+    assert.equal(_.get(data1, string), expectedValue);
+});
+
+/**
+ * @module Questionnaire - Defined in Questionnaire module since this is used to fetch componentId for which questionnaire is to be fetched
+ * @description Finds and set componentId in context from list of components in responseData for component name in given property
+ * @exampleFile ComponentData.feature
+ * @step I want to set componentId for component name in property {string}
+ */
+Then('I want to set componentId for component name in property {string}', function (string) {
+    displayName = _.get(this.context, string);
+    results = this.context.responseData.results;
+    for (i=0; i<results.length; i++) {
+        if (results[i].displayName == displayName ){
+            this.context.componentId = results[i].id;
+            return;
+        }
+    }
+});
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/stepDefinitions/REST_Steps.js b/cucumber-js-test-apis-ci/stepDefinitions/REST_Steps.js
new file mode 100644
index 0000000..c384412
--- /dev/null
+++ b/cucumber-js-test-apis-ci/stepDefinitions/REST_Steps.js
@@ -0,0 +1,80 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.
+ */
+const {When} = require('cucumber');
+const _ = require('lodash');
+const util = require('./Utils.js');
+_.templateSettings.interpolate = /{([\s\S]+?)}/g;
+
+function getPath(path, context) {
+	let compiled = _.template(path);
+	return compiled(context);
+}
+/**
+ * @module Rest_Calls
+ * @description makes a GET request to the given path (path is appended after the "onboarding-api/v1.0" prefix)<br>
+ * @exampleFile Example_Rest_Calls.feature
+ * @step I want to get path {string}
+ **/
+When('I want to get path {string}', function(string)  {
+	let path = getPath(string, this.context);
+	return util.request(this.context, 'GET', path);
+});
+
+/**
+ * @module Rest_Calls
+ * @description makes a DELETE request to the given path and appends the saved property (path is appended after the "onboarding-api/v1.0" prefix)<br>
+ * @exampleFile Example_Rest_Calls.feature
+ * @step I want to delete for path {string} with the value from saved property {string}
+ **/
+When('I want to delete for path {string} with the value from saved property {string}', function(string, string2)  {
+	let path = getPath(string, this.context);
+	path += '/' + this.context[string2];
+	return util.request(this.context, 'DELETE', path);
+});
+
+/**
+ * @module Rest_Calls
+ * @description makes a DELETE request to the given path and appends the saved property (path is appended after the "onboarding-api/v1.0" prefix)<br>
+ * @exampleFile Example_Rest_Calls.feature
+ * @step I want to delete for path {string} with the value from saved property {string}
+ **/
+When('I want to delete for path {string}', function (string) {
+    let path = getPath(string, this.context);
+    //path += '/' + this.context[string2];
+    return util.request(this.context, 'DELETE', path);
+});
+
+/**
+ * @module Rest_Calls
+ * @description makes a PUT request to the given path and sends the input data from the context (path is appended after the "onboarding-api/v1.0" prefix)<br>
+ *     @exampleFile Example_Rest_Calls.feature
+ * @step I want to update for path {string} with the input data from the context
+ **/
+When('I want to update for path {string} with the input data from the context', function(string)  {
+	let path = getPath(string, this.context);
+	return util.request(this.context, 'PUT', path, this.context.inputData);
+});
+
+/**
+ * @module Rest_Calls
+ * @description makes a POST request to the given path and sends the input data from the context (path is appended after the "onboarding-api/v1.0" prefix)<br>
+ *     @exampleFile Example_Rest_Calls.feature
+ * @step I want to create for path {string} with the input data from the context
+ **/
+When('I want to create for path {string} with the input data from the context', function(string)  {
+	let path = getPath(string, this.context);
+	return util.request(this.context, 'POST', path, this.context.inputData);
+});
diff --git a/cucumber-js-test-apis-ci/stepDefinitions/Toggle_Steps.js b/cucumber-js-test-apis-ci/stepDefinitions/Toggle_Steps.js
new file mode 100644
index 0000000..16bcc2a
--- /dev/null
+++ b/cucumber-js-test-apis-ci/stepDefinitions/Toggle_Steps.js
@@ -0,0 +1,48 @@
+/*
+* Copyright © 2016-2018 European Support Limited
+*
+* 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.
+*/
+
+const {Then, When, Given} = require('cucumber');
+const assert = require('assert');
+const util = require('./Utils.js');
+
+
+/**
+ * @module Toggle
+ * @description this step will retrun and print to console the list of toggled features with their status
+ * @exampleFile Example_Toggle.feature
+ * @step I want to list Togglz
+ **/
+
+Then('I want to list Togglz', function()  {
+    let path = '/togglz' ;
+   return util.request(this.context, 'GET', path).then(result => {
+   	    const featureList = result.data.features;
+   	    console.log(featureList);
+   	});
+
+});
+
+/**
+ * @module Toggle
+ * @description this step will set the status for all toggled features
+ * @exampleFile Example_Toggle.feature
+ * @step I want to set all Togglz  to be "true/false"
+ **/
+
+Then('I want to set all Togglz to be {string}', function(string)  {
+    let path = '/togglz/state/' + string ;
+    return util.request(this.context, 'PUT', path);
+});
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/stepDefinitions/Utils.js b/cucumber-js-test-apis-ci/stepDefinitions/Utils.js
new file mode 100644
index 0000000..66e959f
--- /dev/null
+++ b/cucumber-js-test-apis-ci/stepDefinitions/Utils.js
@@ -0,0 +1,148 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+const request = require('request');
+const fs = require('fs');
+require('node-zip');
+
+function _request(context, method, path, data, isBinary=false, type='onboarding') {
+	let server = context.getUrlForType(type);
+
+	let options = {
+		method: method,
+		url: server + path,
+		headers: context.headers[type]
+	};
+	console.log('--> Calling REST ' + options.method +' url: ' + options.url);
+
+	return new Promise(function (resolve, reject) {
+		if (method === 'POST' || method === 'PUT') {
+			if (isBinary) {
+				var formData = {
+					upload: fs.createReadStream(data),
+				};
+				options.formData = formData;
+			} else {
+				options.json = data;
+			}
+		}
+		request(options, function (err, result, data) {
+			context.inputData = null;
+			if (err) {
+				console.error('Request URL: ' + result.request.uri.href);
+				console.error('Request Method: ' + result.request.method);
+				console.error('Response Status Code: ' +result.statusCode);
+				console.log(err);
+				reject(err);
+			} else {
+				let isExpected = (context.shouldFail) ? (result.statusCode != 200 && result.statusCode != 201) : (result.statusCode == 200 || result.statusCode == 201);
+				if (!isExpected) {
+					console.error('Request URL: ' + result.request.uri.href);
+					console.error('Request Method: ' + result.request.method);
+					console.error('Response Status Code: ' +result.statusCode);
+					console.error(result.body);
+					reject('Status Code was ' + result.statusCode);
+				}
+				if (context.shouldFail && context.errorCode) {
+                    if (typeof data === 'string' && data) {
+                        data = JSON.parse(data);
+                    }
+					let errorCode = data.errorCode;
+					let contextErrorCode = context.errorCode;
+					context.errorCode = null;
+					if (errorCode !== contextErrorCode) {
+						reject('Error Code was ' + errorCode + ' instead of ' + contextErrorCode);
+					}
+				}
+				if (context.shouldFail && context.errorMessage) {
+				    if (typeof data === 'string' && data) {
+                        data = JSON.parse(data);
+                    }
+                    let errorMessage = data.message;
+                    let contextErrorMessage = context.errorMessage;
+                    context.errorMessage = null;
+                    if (errorMessage !== contextErrorMessage) {
+                    	reject('Error Message was ' + errorMessage + ' instead of ' + contextErrorMessage);
+                    }
+                }
+				if (context.shouldFail) {
+					context.shouldFail = false;
+					resolve({statusCode: result.statusCode, data: {}});
+					return;
+				}
+				if (method === 'GET' && isBinary) {
+					// downloading (NetworkPackage) files
+					return ({
+						blob: blobUtil.createBlob([data], {type: 'text/plain'}),
+						headers: result.headers
+					});
+				} else {
+					if (typeof data === 'string' && data) {
+						data = JSON.parse(data);
+					}
+					context.responseData = data;
+					context.inputData = data;
+					resolve({statusCode: result.statusCode, data: data});
+				}
+			}
+		});
+	});
+}
+
+function download(context, path, filePath,  callback, type='onboarding') {
+	let server = context.getUrlForType(type);
+	let options = {
+			method: 'GET',
+			url: server + path,
+			headers: context.headers[type]
+		};
+	console.log('--> Calling REST download url: ' + options.url);
+
+	var file = fs.createWriteStream(filePath);
+		var r = request(options).pipe(file);
+		r.on('error', function (err) {
+			console.log(err);
+			callback(err);
+		});
+		r.on('finish', function () {
+			file.close();
+			let zipFile = fs.readFileSync(filePath, 'binary');
+			let zip = new JSZip(zipFile, {base64: false, checkCRC32: true});
+			if (zip.files['MANIFEST.json']) {
+				let manifestData = zip.files['MANIFEST.json']._data;
+				manifestData = manifestData.replace(/\\n/g, '');
+				context.responseData = JSON.parse(manifestData);
+			}
+			callback();
+		});
+
+};
+
+function _random() {
+	let d = new Date();
+	return d.getTime().toString().split('').reverse().join('');
+}
+
+function _getJSONFromFile(file) {
+	return JSON.parse(fs.readFileSync(file, 'utf8'));
+}
+
+
+module.exports = {
+	request: _request,
+	random : _random,
+	getJSONFromFile: _getJSONFromFile,
+	download: download
+};
diff --git a/cucumber-js-test-apis-ci/stepDefinitions/VF_steps.js b/cucumber-js-test-apis-ci/stepDefinitions/VF_steps.js
new file mode 100644
index 0000000..3411a25
--- /dev/null
+++ b/cucumber-js-test-apis-ci/stepDefinitions/VF_steps.js
@@ -0,0 +1,43 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+const {Then, When} = require('cucumber');
+const assert = require('assert');
+const util = require('./Utils.js');
+
+
+/**
+ * @module VF
+ * @description Creates a VF for this Item (does NOT work on localhost). will get the data for the item and then update the input
+ * data for the VF call.
+ * @exampleFile Example_VSP.feature
+ * @step I want to create a VF for this Item
+ **/
+Then('I want to create a VF for this Item', function () {
+	return util.request(this.context, 'GET', '/vendor-software-products/' + this.context.item.id + '/versions/' + this.context.item.versionId).then(result => {
+		this.context.inputData = util.getJSONFromFile('resources/json/createVF.json');
+		// start replacing stuff
+		this.context.inputData.contactId = this.context.headers['vf']["USER_ID"];
+		this.context.inputData.categories[0].uniqueId = result.data.category;
+		this.context.inputData.categories[0].subcategories[0].uniqueId = result.data.subCategory;
+		this.context.inputData.description = result.data.description;
+		this.context.inputData.name = result.data.name;
+		this.context.inputData.tags[0] = result.data.name;
+		this.context.inputData.vendorName = result.data.vendorName;
+		this.context.inputData.csarUUID = this.context.item.id;
+		return util.request(this.context, 'POST', '/catalog/resources', this.context.inputData, false, 'vf');
+	});
+});
+
diff --git a/cucumber-js-test-apis-ci/stepDefinitions/VLM_steps.js b/cucumber-js-test-apis-ci/stepDefinitions/VLM_steps.js
new file mode 100644
index 0000000..35e78b2
--- /dev/null
+++ b/cucumber-js-test-apis-ci/stepDefinitions/VLM_steps.js
@@ -0,0 +1,79 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+const {Then, When, Given} = require('cucumber');
+const assert = require('assert');
+const util = require('./Utils.js');
+
+/**
+ * @module VLM
+ * @description Creates a new VLM with a random name and saves the id and versionId on the context item object and the context vlm object<br>
+ *     Input data  will be taken from the 'resources/json/createVLM.json' file.
+ *@exampleFile Example_VLM.feature
+ * @step I want to create a VLM
+ **/
+When('I want to create a VLM', function()  {
+	let inputData = util.getJSONFromFile('resources/json/createVLM.json');
+	inputData.vendorName = util.random();
+	let path = '/vendor-license-models';
+	return util.request(this.context, 'POST', path, inputData).then(result => {
+		this.context.item ={id : result.data.itemId, versionId: result.data.version.id};
+		this.context.vlm = {id : result.data.itemId, name : inputData.vendorName};
+	});
+});
+
+/**
+ * @module VLM
+ * @exampleFile Example_VLM.feature
+ * @step I want to submit this VLM
+ **/
+Then('I want to submit this VLM', function()  {
+	let inputData = {action: 'Submit'};
+	let path = '/vendor-license-models/' + this.context.item.id + '/versions/' + this.context.item.versionId + '/actions';
+	return util.request(this.context, 'PUT', path, inputData);
+});
+
+/**
+ * @module VLM
+ * @exampleFile DeleteVLMDraft.feature
+ * @step I want to delete this VLM
+ **/
+Then('I want to delete this VLM', function()  {
+	let path = '/vendor-license-models/' + this.context.item.id ;
+	return util.request(this.context, 'DELETE', path);
+});
+
+
+/**
+ * @module VLM
+ * @exampleFile ArchiveItem.feature
+ * @step I want to list Archived VLMs
+ **/
+Then('I want to list Archived VLMs', function()  {
+	let path = '/vendor-license-models/?Status=ARCHIVED';
+	return util.request(this.context, 'GET', path);
+});
+
+/**
+ * @module VLM
+ * @exampleFile ArchiveItem.feature
+ * @step I want to list Active VLMs
+ **/
+Then('I want to list Active VLMs', function()  {
+	let path = '/vendor-license-models';
+	return util.request(this.context, 'GET', path);
+});
+
+
diff --git a/cucumber-js-test-apis-ci/stepDefinitions/VSP_steps.js b/cucumber-js-test-apis-ci/stepDefinitions/VSP_steps.js
new file mode 100644
index 0000000..b9b928a
--- /dev/null
+++ b/cucumber-js-test-apis-ci/stepDefinitions/VSP_steps.js
@@ -0,0 +1,185 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+const {Then, When} = require('cucumber');
+const assert = require('assert');
+const util = require('./Utils.js');
+const _ = require('lodash');
+
+
+/**
+ * @module VSP
+ * @description Creates a new VSP with a random name and saves the id and versionId on the context item object and the context vsp object<br>
+ *     Input data will be taken from the 'resources/json/createVSP.json' file.
+ *     Vendor id and name are taken from the vlm on the context (requires a VLM to be created first).
+ *     @exampleFile Example_VSP.feature
+ * @step I want to create a VSP with onboarding type {string}
+ **/
+When('I want to create a VSP with onboarding type {string}', function(string)  {
+	let inputData = util.getJSONFromFile('resources/json/createVSP.json');
+	inputData.onboardingMethod = string;
+	inputData.vendorName = this.context.vlm.name;
+	inputData.vendorId = this.context.vlm.id;
+	inputData.name = util.random();
+	let path = '/vendor-software-products';
+	return util.request(this.context, 'POST', path, inputData).then(result => {
+		this.context.item = {id : result.data.itemId, versionId: result.data.version.id};
+		this.context.vsp = {id : result.data.itemId, versionId: result.data.version.id};
+	});
+});
+
+/**
+ * @module VSP
+ * @description Creates a new VSP with the 'NetowrkPackage' onboarding type and with a random name and saves the id and versionId on the context item object and the context vsp object<br>
+ *     Input data will be taken from the 'resources/json/createVSP.json' file.
+ *     Vendor id and name are taken from the vlm on the context (requires a VLM to be created first).
+ *     @exampleFile Example_VSP.feature
+ * @step I want to create a VSP with onboarding type {string}
+ **/
+When('I want to create a VSP with onboarding type Manual', function()  {
+	let inputData = util.getJSONFromFile('resources/json/createManualVSP.json');
+	inputData.vendorName = this.context.vlm.name;
+	inputData.vendorId = this.context.vlm.id;
+	inputData.name = util.random();
+    inputData.licensingVersion = this.context.licensingVersion;
+    inputData.licensingData.licenseAgreement = this.context.licenseAgreement;
+	inputData.licensingData.featureGroups[0] = this.context.featureGroupId;
+	let path = '/vendor-software-products';
+	return util.request(this.context, 'POST', path, inputData).then(result => {
+		this.context.item = {id : result.data.itemId, versionId: result.data.version.id};
+		this.context.vsp = {id : result.data.itemId, versionId: result.data.version.id};
+	});
+});
+
+
+/**
+ * @module VSP
+ * @exampleFile Example_VSP.feature
+ * @step I want to submit this VSP
+ **/
+Then('I want to submit this VSP', function () {
+	let path = '/vendor-software-products/' + this.context.item.id + '/versions/' + this.context.item.versionId + '/actions';
+	let inputData = {action: 'Submit'};
+	return util.request(this.context, 'PUT', path, inputData);
+});
+
+/**
+ * @module VSP
+ * @exampleFile Example_VSP.feature
+ * @step I want to package this VSP
+ **/
+Then('I want to package this VSP', function () {
+	let path = '/vendor-software-products/' + this.context.item.id + '/versions/' + this.context.item.versionId + '/actions';
+	let inputData = {action: 'Create_Package'};
+	return util.request(this.context, 'PUT', path, inputData);
+});
+
+/**
+ * @module VSP
+ * @description Adds a component to the current item
+ * @exampleFile Example_VSP.feature
+ * @step I want to add a component
+ **/
+Then('I want to add a component', function () {
+	let path = '/vendor-software-products/' + this.context.item.id + '/versions/' + this.context.item.versionId + '/components';
+	let inputData = {name: 'Cucumber Name', displayName: 'Cucumber', description: 'Cucumber Description'};
+	return util.request(this.context, 'POST', path, inputData).then(result => {
+		this.context.componentId = result.data.vfcId;
+	});
+});
+
+
+/**
+ * @module VSP
+ * @description Downloads the packaged file for this component to the given path
+ * @exampleFile Example_VSP.feature
+ * @step I want to get the package for this Item to path {string}
+ **/
+When('I want to get the package for this Item to path {string}', function (string, callback) {
+	let path =  '/vendor-software-products/packages/' + this.context.item.id;
+	return [util.download(this.context, path, string, callback)];
+});
+
+
+/**
+ * @module VSP
+ * @exampleFile DeleteVSPDraft.feature
+ * @step I want to delete this VSP
+ **/
+Then('I want to delete this VSP', function()  {
+	let path = '/vendor-software-products/' + this.context.item.id ;
+	return util.request(this.context, 'DELETE', path);
+});
+
+/**
+ * @module VSP
+ * @exampleFile ArchiveItem.feature
+ * @step I want to list Archived VSPs
+ **/
+Then('I want to list Archived VSPs', function()  {
+	let path = '/vendor-software-products/?Status=ARCHIVED';
+	return util.request(this.context, 'GET', path);
+});
+
+/**
+ * @module VSP
+ * @exampleFile ArchiveItem.feature
+ * @step I want to list Active VSPs
+ **/
+Then('I want to list Active VSPs', function()  {
+	let path = '/vendor-software-products';
+	return util.request(this.context, 'GET', path);
+});
+
+
+/**
+ * @module VSP
+ * @exampleFile FilterArchivedVSPpackage.feature
+ * @step I want to list Archived VSPs packages
+ **/
+Then('I want to list Archived VSPs packages', function()  {
+	let path = '/vendor-software-products/packages?Status=ARCHIVED';
+	return util.request(this.context, 'GET', path);
+});
+
+/**
+ * @module VSP
+ * @exampleFile FilterArchivedVSPpackage.feature
+ * @step I want to list Active VSPs packages
+ **/
+Then('I want to list Active VSPs packages', function()  {
+	let path = '/vendor-software-products/packages';
+	return util.request(this.context, 'GET', path);
+
+});
+
+/**
+ * @module VSP
+ * @exampleFile FilterArchivedVSPpackage.feature
+ * @step I want to check that VSP package exits in response
+ **/
+Then('I want to check that VSP package exits in response', function()  {
+
+      const packages = this.context.responseData.results;
+      const id = this.context.item.id;
+      var testResult = false;
+
+      for(var i=0; i< packages.length; i++){
+          if (id == packages[i].packageId){
+               testResult = true;
+          }
+      }
+      assert.equal(testResult,true);
+});
\ No newline at end of file
diff --git a/cucumber-js-test-apis-ci/stepDefinitions/world.js b/cucumber-js-test-apis-ci/stepDefinitions/world.js
new file mode 100644
index 0000000..eaf48aa
--- /dev/null
+++ b/cucumber-js-test-apis-ci/stepDefinitions/world.js
@@ -0,0 +1,92 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+const { setWorldConstructor } = require('cucumber');
+const _ = require('lodash');
+
+let config = require('../config.json');
+let localConfig = {};
+try {
+	localConfig = require('../devConfig.json');
+} catch (e) {
+	try {
+		localConfig = require('../environments/dockerConfig.json');
+	} catch (e) {
+		console.error("no env configuration was found!");
+	}
+}
+
+config = _.merge(config, localConfig);
+var {setDefaultTimeout} = require('cucumber');
+
+
+/**
+ * @module Context
+ * @description Context that is used per feature file and can be accessed as 'this.context' in all steps.<Br>
+ *<Br>
+ * Contains the following items:<br>
+ * <li>this.context.server <ul>REST server and onboarding prefix including version. set either in configuration file or from the command line or SERVER environment variable</ul>
+ * <li>this.context.vlm <ul>When a VLM has been created, this has the an id and versionId set to the correct IDs.</ul>
+ * <li>this.context.vsp <ul>When a VSP has been created, this has the an id and versionId and componentId set to the correct IDs.</ul>
+ * <li>this.context.item <ul>When a VLM or VSP has been created, this has the an id and versionId set to the correct IDs.</ul>
+ * <li>this.context <ul>Object with properties that were saved in the steps.</ul>
+ * <li>this.context.inputdata <ul><b>Automatically updated with the last responseData from the Rest call</b><br>Object with properties that were prepares in the steps.</ul>
+ * <li>this.context.responseData <ul>Response from the last REST call.</ul>
+ **/
+class CustomWorld {
+	constructor(options) {
+		this.context = {};
+		this.context.headers = {};
+		let typeName;
+		for (typeName in config) {
+			this.context.headers[typeName] = {};
+			if (config[typeName].user) {
+				this.context.headers[typeName]['USER_ID'] = config[typeName].user;
+			}
+		}
+
+		this.context.vlm = {id: null, versionId: null};
+		this.context.vsp = {id: null, versionId: null};
+		this.context.item = {id: null, versionId: null, componentId: null};
+
+		this.context.shouldFail = false;
+		this.context.errorCode = null;
+		this.context.inputData = null;
+		this.context.responseData = null;
+
+		this.context.defaultServerType = 'onboarding';
+
+		this.config = config;
+
+		let context = this.context;
+		this.context.getUrlForType = (function(type) {
+			var _server = context.server;
+			var _config = config;
+			return function(type) {
+				let typeData = _config[type];
+				let _url = _config.protocol + '://' +
+					typeData.server + ':' +
+					typeData.port + '/' +
+					typeData.prefix;
+				return _url;
+			}
+		})();
+
+		setDefaultTimeout(60 * 1000);
+	}
+}
+
+
+setWorldConstructor(CustomWorld);
diff --git a/cucumber-js-test-apis-ci/yarn.lock b/cucumber-js-test-apis-ci/yarn.lock
new file mode 100644
index 0000000..6324af4
--- /dev/null
+++ b/cucumber-js-test-apis-ci/yarn.lock
@@ -0,0 +1,1186 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+ajv@^5.1.0:
+  version "5.5.2"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
+  dependencies:
+    co "^4.6.0"
+    fast-deep-equal "^1.0.0"
+    fast-json-stable-stringify "^2.0.0"
+    json-schema-traverse "^0.3.0"
+
+ansi-styles@^3.1.0, ansi-styles@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
+  dependencies:
+    color-convert "^1.9.0"
+
+any-promise@^1.0.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
+
+argparse@^1.0.7:
+  version "1.0.9"
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
+  dependencies:
+    sprintf-js "~1.0.2"
+
+array-filter@~0.0.0:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec"
+
+array-map@~0.0.0:
+  version "0.0.0"
+  resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662"
+
+array-reduce@~0.0.0:
+  version "0.0.0"
+  resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b"
+
+asn1@~0.2.3:
+  version "0.2.3"
+  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
+
+assert-plus@1.0.0, assert-plus@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+
+assert@^1.4.1:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
+  dependencies:
+    util "0.10.3"
+
+assertion-error-formatter@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/assertion-error-formatter/-/assertion-error-formatter-2.0.1.tgz#6bbdffaec8e2fa9e2b0eb158bfe353132d7c0a9b"
+  dependencies:
+    diff "^3.0.0"
+    pad-right "^0.2.2"
+    repeat-string "^1.6.1"
+
+asynckit@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+
+aws-sign2@~0.7.0:
+  version "0.7.0"
+  resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+
+aws4@^1.6.0:
+  version "1.6.0"
+  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
+
+babel-runtime@^6.11.6:
+  version "6.26.0"
+  resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
+  dependencies:
+    core-js "^2.4.0"
+    regenerator-runtime "^0.11.0"
+
+babylon@7.0.0-beta.19:
+  version "7.0.0-beta.19"
+  resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.19.tgz#e928c7e807e970e0536b078ab3e0c48f9e052503"
+
+balanced-match@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+
+bcrypt-pbkdf@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
+  dependencies:
+    tweetnacl "^0.14.3"
+
+becke-ch--regex--s0-0-v1--base--pl--lib@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/becke-ch--regex--s0-0-v1--base--pl--lib/-/becke-ch--regex--s0-0-v1--base--pl--lib-1.2.0.tgz#2e73e9d21f2c2e6f5a5454045636f0ab93e46130"
+
+bluebird@^3.4.1, bluebird@~3.5.0:
+  version "3.5.1"
+  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
+
+boom@4.x.x:
+  version "4.3.1"
+  resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
+  dependencies:
+    hoek "4.x.x"
+
+boom@5.x.x:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
+  dependencies:
+    hoek "4.x.x"
+
+brace-expansion@^1.1.7:
+  version "1.1.8"
+  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
+  dependencies:
+    balanced-match "^1.0.0"
+    concat-map "0.0.1"
+
+builtin-modules@^1.0.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+
+caseless@~0.12.0:
+  version "0.12.0"
+  resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+
+catharsis@~0.8.9:
+  version "0.8.9"
+  resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.9.tgz#98cc890ca652dd2ef0e70b37925310ff9e90fc8b"
+  dependencies:
+    underscore-contrib "~0.3.0"
+
+chalk@^2.1.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba"
+  dependencies:
+    ansi-styles "^3.1.0"
+    escape-string-regexp "^1.0.5"
+    supports-color "^4.0.0"
+
+cli-table@^0.3.1:
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23"
+  dependencies:
+    colors "1.0.3"
+
+co@^4.6.0:
+  version "4.6.0"
+  resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+
+color-convert@^1.9.0:
+  version "1.9.1"
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
+  dependencies:
+    color-name "^1.1.1"
+
+color-name@^1.1.1:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+
+colors@1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
+
+colors@^1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
+
+combined-stream@^1.0.5, combined-stream@~1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
+  dependencies:
+    delayed-stream "~1.0.0"
+
+commander@^2.9.0:
+  version "2.13.0"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
+
+concat-map@0.0.1:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+
+core-js@^2.4.0:
+  version "2.5.3"
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e"
+
+core-util-is@1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+
+cross-spawn@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
+  dependencies:
+    lru-cache "^4.0.1"
+    shebang-command "^1.2.0"
+    which "^1.2.9"
+
+cryptiles@3.x.x:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
+  dependencies:
+    boom "5.x.x"
+
+cucumber-expressions@^5.0.7:
+  version "5.0.13"
+  resolved "https://registry.yarnpkg.com/cucumber-expressions/-/cucumber-expressions-5.0.13.tgz#f174597dae6d2f0121294ac2ea65443249cf1587"
+  dependencies:
+    becke-ch--regex--s0-0-v1--base--pl--lib "^1.2.0"
+
+cucumber-html-reporter@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/cucumber-html-reporter/-/cucumber-html-reporter-3.0.4.tgz#1be0dee83f30a2f4719207859a5440ce082ffadd"
+  dependencies:
+    find "^0.2.7"
+    fs-extra "^3.0.1"
+    js-base64 "^2.3.2"
+    jsonfile "^3.0.0"
+    lodash "^4.17.2"
+    open "0.0.5"
+
+cucumber-tag-expressions@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/cucumber-tag-expressions/-/cucumber-tag-expressions-1.1.1.tgz#7f5c7b70009bc2b666591bfe64854578bedee85a"
+
+cucumber@^3.2.1:
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/cucumber/-/cucumber-3.2.1.tgz#7898509bf6f3fe4ef5fa30ba987bd53d88d53251"
+  dependencies:
+    assertion-error-formatter "^2.0.1"
+    babel-runtime "^6.11.6"
+    bluebird "^3.4.1"
+    cli-table "^0.3.1"
+    colors "^1.1.2"
+    commander "^2.9.0"
+    cucumber-expressions "^5.0.7"
+    cucumber-tag-expressions "^1.1.1"
+    duration "^0.2.0"
+    escape-string-regexp "^1.0.5"
+    figures "2.0.0"
+    gherkin "^5.0.0"
+    glob "^7.0.0"
+    indent-string "^3.1.0"
+    is-generator "^1.0.2"
+    is-stream "^1.1.0"
+    lodash "^4.0.0"
+    mz "^2.4.0"
+    progress "^2.0.0"
+    resolve "^1.3.3"
+    stack-chain "^2.0.0"
+    stacktrace-js "^2.0.0"
+    string-argv "0.0.2"
+    title-case "^2.1.1"
+    util-arity "^1.0.2"
+    verror "^1.9.0"
+
+d@1:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
+  dependencies:
+    es5-ext "^0.10.9"
+
+d@~0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309"
+  dependencies:
+    es5-ext "~0.10.2"
+
+dashdash@^1.12.0:
+  version "1.14.1"
+  resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+  dependencies:
+    assert-plus "^1.0.0"
+
+define-properties@^1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
+  dependencies:
+    foreach "^2.0.5"
+    object-keys "^1.0.8"
+
+delayed-stream@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+
+diff@^3.0.0:
+  version "3.4.0"
+  resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c"
+
+docdash@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/docdash/-/docdash-0.4.0.tgz#05c3a50d83189981699ee0c076d3a3950db7ec00"
+
+duplexer@~0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
+
+duration@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/duration/-/duration-0.2.0.tgz#5f9c4dfaafff655de986112efe25c5978dd85146"
+  dependencies:
+    d "~0.1.1"
+    es5-ext "~0.10.2"
+
+ecc-jsbn@~0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
+  dependencies:
+    jsbn "~0.1.0"
+
+error-ex@^1.3.1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
+  dependencies:
+    is-arrayish "^0.2.1"
+
+error-stack-parser@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.1.tgz#a3202b8fb03114aa9b40a0e3669e48b2b65a010a"
+  dependencies:
+    stackframe "^1.0.3"
+
+es-abstract@^1.4.3:
+  version "1.10.0"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864"
+  dependencies:
+    es-to-primitive "^1.1.1"
+    function-bind "^1.1.1"
+    has "^1.0.1"
+    is-callable "^1.1.3"
+    is-regex "^1.0.4"
+
+es-to-primitive@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
+  dependencies:
+    is-callable "^1.1.1"
+    is-date-object "^1.0.1"
+    is-symbol "^1.0.1"
+
+es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14, es5-ext@~0.10.2:
+  version "0.10.38"
+  resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.38.tgz#fa7d40d65bbc9bb8a67e1d3f9cc656a00530eed3"
+  dependencies:
+    es6-iterator "~2.0.3"
+    es6-symbol "~3.1.1"
+
+es6-iterator@~2.0.3:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
+  dependencies:
+    d "1"
+    es5-ext "^0.10.35"
+    es6-symbol "^3.1.1"
+
+es6-symbol@^3.1.1, es6-symbol@~3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
+  dependencies:
+    d "1"
+    es5-ext "~0.10.14"
+
+escape-string-regexp@^1.0.5, escape-string-regexp@~1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+
+event-stream@~3.3.0:
+  version "3.3.4"
+  resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
+  dependencies:
+    duplexer "~0.1.1"
+    from "~0"
+    map-stream "~0.1.0"
+    pause-stream "0.0.11"
+    split "0.3"
+    stream-combiner "~0.0.4"
+    through "~2.3.1"
+
+extend@~3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
+
+extsprintf@1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+
+extsprintf@^1.2.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
+
+fast-deep-equal@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
+
+fast-json-stable-stringify@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
+
+figures@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
+  dependencies:
+    escape-string-regexp "^1.0.5"
+
+find@^0.2.7:
+  version "0.2.9"
+  resolved "https://registry.yarnpkg.com/find/-/find-0.2.9.tgz#4b73f1ff9e56ad91b76e716407fe5ffe6554bb8c"
+  dependencies:
+    traverse-chain "~0.1.0"
+
+foreach@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
+
+forever-agent@~0.6.1:
+  version "0.6.1"
+  resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+
+form-data@~2.3.1:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
+  dependencies:
+    asynckit "^0.4.0"
+    combined-stream "^1.0.5"
+    mime-types "^2.1.12"
+
+from@~0:
+  version "0.1.7"
+  resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
+
+fs-extra@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291"
+  dependencies:
+    graceful-fs "^4.1.2"
+    jsonfile "^3.0.0"
+    universalify "^0.1.0"
+
+fs.realpath@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+
+function-bind@^1.0.2, function-bind@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+
+getpass@^0.1.1:
+  version "0.1.7"
+  resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+  dependencies:
+    assert-plus "^1.0.0"
+
+gherkin@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/gherkin/-/gherkin-5.0.0.tgz#96def41198ec3908258b511af74f655a2764d2a1"
+
+glob@^7.0.0, glob@^7.0.5:
+  version "7.1.2"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
+  dependencies:
+    fs.realpath "^1.0.0"
+    inflight "^1.0.4"
+    inherits "2"
+    minimatch "^3.0.4"
+    once "^1.3.0"
+    path-is-absolute "^1.0.0"
+
+graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
+  version "4.1.11"
+  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
+
+har-schema@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+
+har-validator@~5.0.3:
+  version "5.0.3"
+  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
+  dependencies:
+    ajv "^5.1.0"
+    har-schema "^2.0.0"
+
+has-flag@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
+
+has@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
+  dependencies:
+    function-bind "^1.0.2"
+
+hawk@~6.0.2:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
+  dependencies:
+    boom "4.x.x"
+    cryptiles "3.x.x"
+    hoek "4.x.x"
+    sntp "2.x.x"
+
+hoek@4.x.x:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
+
+hosted-git-info@^2.1.4:
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
+
+http-signature@~1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+  dependencies:
+    assert-plus "^1.0.0"
+    jsprim "^1.2.2"
+    sshpk "^1.7.0"
+
+indent-string@^3.1.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
+
+inflight@^1.0.4:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+  dependencies:
+    once "^1.3.0"
+    wrappy "1"
+
+inherits@2:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+
+inherits@2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
+
+is-arrayish@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+
+is-builtin-module@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
+  dependencies:
+    builtin-modules "^1.0.0"
+
+is-callable@^1.1.1, is-callable@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
+
+is-date-object@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
+
+is-generator@^1.0.2:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/is-generator/-/is-generator-1.0.3.tgz#c14c21057ed36e328db80347966c693f886389f3"
+
+is-regex@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
+  dependencies:
+    has "^1.0.1"
+
+is-stream@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+
+is-symbol@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
+
+is-typedarray@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+
+isexe@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+
+isstream@~0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+
+js-base64@^2.3.2:
+  version "2.4.3"
+  resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582"
+
+js2xmlparser@~3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-3.0.0.tgz#3fb60eaa089c5440f9319f51760ccd07e2499733"
+  dependencies:
+    xmlcreate "^1.0.1"
+
+jsbn@~0.1.0:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+
+jsdoc-one-page@0.0.5:
+  version "0.0.5"
+  resolved "https://registry.yarnpkg.com/jsdoc-one-page/-/jsdoc-one-page-0.0.5.tgz#8701e022159844dbd9cb64d9504974059604f58a"
+
+jsdoc@^3.5.5:
+  version "3.5.5"
+  resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.5.5.tgz#484521b126e81904d632ff83ec9aaa096708fa4d"
+  dependencies:
+    babylon "7.0.0-beta.19"
+    bluebird "~3.5.0"
+    catharsis "~0.8.9"
+    escape-string-regexp "~1.0.5"
+    js2xmlparser "~3.0.0"
+    klaw "~2.0.0"
+    marked "~0.3.6"
+    mkdirp "~0.5.1"
+    requizzle "~0.2.1"
+    strip-json-comments "~2.0.1"
+    taffydb "2.6.2"
+    underscore "~1.8.3"
+
+json-parse-better-errors@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a"
+
+json-schema-traverse@^0.3.0:
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
+
+json-schema@0.2.3:
+  version "0.2.3"
+  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+
+json-stringify-safe@~5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+
+jsonfile@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66"
+  optionalDependencies:
+    graceful-fs "^4.1.6"
+
+jsonify@~0.0.0:
+  version "0.0.0"
+  resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
+
+jsprim@^1.2.2:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
+  dependencies:
+    assert-plus "1.0.0"
+    extsprintf "1.3.0"
+    json-schema "0.2.3"
+    verror "1.10.0"
+
+jszip@2.5.0:
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/jszip/-/jszip-2.5.0.tgz#7444fd8551ddf3e5da7198fea0c91bc8308cc274"
+  dependencies:
+    pako "~0.2.5"
+
+klaw@~2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/klaw/-/klaw-2.0.0.tgz#59c128e0dc5ce410201151194eeb9cbf858650f6"
+  dependencies:
+    graceful-fs "^4.1.9"
+
+load-json-file@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
+  dependencies:
+    graceful-fs "^4.1.2"
+    parse-json "^4.0.0"
+    pify "^3.0.0"
+    strip-bom "^3.0.0"
+
+lodash@^4.0.0, lodash@^4.17.2, lodash@^4.17.4:
+  version "4.17.4"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
+
+lower-case@^1.1.1:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
+
+lru-cache@^4.0.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
+  dependencies:
+    pseudomap "^1.0.2"
+    yallist "^2.1.2"
+
+map-stream@~0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
+
+marked@~0.3.6:
+  version "0.3.12"
+  resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.12.tgz#7cf25ff2252632f3fe2406bde258e94eee927519"
+
+memorystream@^0.3.1:
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"
+
+mime-db@~1.30.0:
+  version "1.30.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
+
+mime-types@^2.1.12, mime-types@~2.1.17:
+  version "2.1.17"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
+  dependencies:
+    mime-db "~1.30.0"
+
+minimatch@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+  dependencies:
+    brace-expansion "^1.1.7"
+
+minimist@0.0.8:
+  version "0.0.8"
+  resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+
+mkdirp@~0.5.1:
+  version "0.5.1"
+  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+  dependencies:
+    minimist "0.0.8"
+
+mz@^2.4.0:
+  version "2.7.0"
+  resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
+  dependencies:
+    any-promise "^1.0.0"
+    object-assign "^4.0.1"
+    thenify-all "^1.0.0"
+
+no-case@^2.2.0:
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
+  dependencies:
+    lower-case "^1.1.1"
+
+node-zip@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/node-zip/-/node-zip-1.1.1.tgz#94d1ad674a3cd46a1588dd736f4a9a78c757eb62"
+  dependencies:
+    jszip "2.5.0"
+
+normalize-newline@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/normalize-newline/-/normalize-newline-3.0.0.tgz#1cbea804aba436001f83938ab21ec039d69ae9d3"
+
+normalize-package-data@^2.3.2:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
+  dependencies:
+    hosted-git-info "^2.1.4"
+    is-builtin-module "^1.0.0"
+    semver "2 || 3 || 4 || 5"
+    validate-npm-package-license "^3.0.1"
+
+npm-run-all@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.2.tgz#90d62d078792d20669139e718621186656cea056"
+  dependencies:
+    ansi-styles "^3.2.0"
+    chalk "^2.1.0"
+    cross-spawn "^5.1.0"
+    memorystream "^0.3.1"
+    minimatch "^3.0.4"
+    ps-tree "^1.1.0"
+    read-pkg "^3.0.0"
+    shell-quote "^1.6.1"
+    string.prototype.padend "^3.0.0"
+
+oauth-sign@~0.8.2:
+  version "0.8.2"
+  resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
+
+object-assign@^4.0.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+
+object-keys@^1.0.8:
+  version "1.0.11"
+  resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
+
+once@^1.3.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+  dependencies:
+    wrappy "1"
+
+open@0.0.5:
+  version "0.0.5"
+  resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc"
+
+pad-right@^0.2.2:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/pad-right/-/pad-right-0.2.2.tgz#6fbc924045d244f2a2a244503060d3bfc6009774"
+  dependencies:
+    repeat-string "^1.5.2"
+
+pako@~0.2.5:
+  version "0.2.9"
+  resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
+
+parse-json@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
+  dependencies:
+    error-ex "^1.3.1"
+    json-parse-better-errors "^1.0.1"
+
+path-is-absolute@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+
+path-parse@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
+
+path-type@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
+  dependencies:
+    pify "^3.0.0"
+
+pause-stream@0.0.11:
+  version "0.0.11"
+  resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"
+  dependencies:
+    through "~2.3"
+
+performance-now@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+
+pify@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+
+progress@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
+
+ps-tree@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014"
+  dependencies:
+    event-stream "~3.3.0"
+
+pseudomap@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+
+punycode@^1.4.1:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+
+qs@~6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
+
+read-pkg@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
+  dependencies:
+    load-json-file "^4.0.0"
+    normalize-package-data "^2.3.2"
+    path-type "^3.0.0"
+
+regenerator-runtime@^0.11.0:
+  version "0.11.1"
+  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
+
+repeat-string@^1.5.2, repeat-string@^1.6.1:
+  version "1.6.1"
+  resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+
+request@^2.83.0:
+  version "2.83.0"
+  resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
+  dependencies:
+    aws-sign2 "~0.7.0"
+    aws4 "^1.6.0"
+    caseless "~0.12.0"
+    combined-stream "~1.0.5"
+    extend "~3.0.1"
+    forever-agent "~0.6.1"
+    form-data "~2.3.1"
+    har-validator "~5.0.3"
+    hawk "~6.0.2"
+    http-signature "~1.2.0"
+    is-typedarray "~1.0.0"
+    isstream "~0.1.2"
+    json-stringify-safe "~5.0.1"
+    mime-types "~2.1.17"
+    oauth-sign "~0.8.2"
+    performance-now "^2.1.0"
+    qs "~6.5.1"
+    safe-buffer "^5.1.1"
+    stringstream "~0.0.5"
+    tough-cookie "~2.3.3"
+    tunnel-agent "^0.6.0"
+    uuid "^3.1.0"
+
+requizzle@~0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.1.tgz#6943c3530c4d9a7e46f1cddd51c158fc670cdbde"
+  dependencies:
+    underscore "~1.6.0"
+
+resolve@^1.3.3:
+  version "1.5.0"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36"
+  dependencies:
+    path-parse "^1.0.5"
+
+safe-buffer@^5.0.1, safe-buffer@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+
+"semver@2 || 3 || 4 || 5":
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
+
+shebang-command@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+  dependencies:
+    shebang-regex "^1.0.0"
+
+shebang-regex@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+
+shell-quote@^1.6.1:
+  version "1.6.1"
+  resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767"
+  dependencies:
+    array-filter "~0.0.0"
+    array-map "~0.0.0"
+    array-reduce "~0.0.0"
+    jsonify "~0.0.0"
+
+sntp@2.x.x:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
+  dependencies:
+    hoek "4.x.x"
+
+source-map@0.5.6:
+  version "0.5.6"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
+
+spdx-correct@~1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
+  dependencies:
+    spdx-license-ids "^1.0.2"
+
+spdx-expression-parse@~1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
+
+spdx-license-ids@^1.0.2:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
+
+split@0.3:
+  version "0.3.3"
+  resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f"
+  dependencies:
+    through "2"
+
+sprintf-js@~1.0.2:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+
+sshpk@^1.7.0:
+  version "1.13.1"
+  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
+  dependencies:
+    asn1 "~0.2.3"
+    assert-plus "^1.0.0"
+    dashdash "^1.12.0"
+    getpass "^0.1.1"
+  optionalDependencies:
+    bcrypt-pbkdf "^1.0.0"
+    ecc-jsbn "~0.1.1"
+    jsbn "~0.1.0"
+    tweetnacl "~0.14.0"
+
+stack-chain@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/stack-chain/-/stack-chain-2.0.0.tgz#d73d1172af89565f07438b5bcc086831b6689b2d"
+
+stack-generator@^2.0.1:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.2.tgz#3c13d952a596ab9318fec0669d0a1df8b87176c7"
+  dependencies:
+    stackframe "^1.0.4"
+
+stackframe@^1.0.3, stackframe@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.0.4.tgz#357b24a992f9427cba6b545d96a14ed2cbca187b"
+
+stacktrace-gps@^3.0.1:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/stacktrace-gps/-/stacktrace-gps-3.0.2.tgz#33f8baa4467323ab2bd1816efa279942ba431ccc"
+  dependencies:
+    source-map "0.5.6"
+    stackframe "^1.0.4"
+
+stacktrace-js@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/stacktrace-js/-/stacktrace-js-2.0.0.tgz#776ca646a95bc6c6b2b90776536a7fc72c6ddb58"
+  dependencies:
+    error-stack-parser "^2.0.1"
+    stack-generator "^2.0.1"
+    stacktrace-gps "^3.0.1"
+
+stream-combiner@~0.0.4:
+  version "0.0.4"
+  resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14"
+  dependencies:
+    duplexer "~0.1.1"
+
+string-argv@0.0.2:
+  version "0.0.2"
+  resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736"
+
+string.prototype.padend@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0"
+  dependencies:
+    define-properties "^1.1.2"
+    es-abstract "^1.4.3"
+    function-bind "^1.0.2"
+
+stringstream@~0.0.5:
+  version "0.0.5"
+  resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
+
+strip-bom@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+
+strip-json-comments@~2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+
+supports-color@^4.0.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
+  dependencies:
+    has-flag "^2.0.0"
+
+taffydb@2.6.2:
+  version "2.6.2"
+  resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268"
+
+thenify-all@^1.0.0:
+  version "1.6.0"
+  resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
+  dependencies:
+    thenify ">= 3.1.0 < 4"
+
+"thenify@>= 3.1.0 < 4":
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839"
+  dependencies:
+    any-promise "^1.0.0"
+
+through@2, through@~2.3, through@~2.3.1:
+  version "2.3.8"
+  resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+
+title-case@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/title-case/-/title-case-2.1.1.tgz#3e127216da58d2bc5becf137ab91dae3a7cd8faa"
+  dependencies:
+    no-case "^2.2.0"
+    upper-case "^1.0.3"
+
+tough-cookie@~2.3.3:
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
+  dependencies:
+    punycode "^1.4.1"
+
+traverse-chain@~0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/traverse-chain/-/traverse-chain-0.1.0.tgz#61dbc2d53b69ff6091a12a168fd7d433107e40f1"
+
+tunnel-agent@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+  dependencies:
+    safe-buffer "^5.0.1"
+
+tweetnacl@^0.14.3, tweetnacl@~0.14.0:
+  version "0.14.5"
+  resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+
+underscore-contrib@~0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/underscore-contrib/-/underscore-contrib-0.3.0.tgz#665b66c24783f8fa2b18c9f8cbb0e2c7d48c26c7"
+  dependencies:
+    underscore "1.6.0"
+
+underscore@1.6.0, underscore@~1.6.0:
+  version "1.6.0"
+  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8"
+
+underscore@~1.8.3:
+  version "1.8.3"
+  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
+
+universalify@^0.1.0:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7"
+
+upper-case@^1.0.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
+
+util-arity@^1.0.2:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/util-arity/-/util-arity-1.1.0.tgz#59d01af1fdb3fede0ac4e632b0ab5f6ce97c9330"
+
+util@0.10.3:
+  version "0.10.3"
+  resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
+  dependencies:
+    inherits "2.0.1"
+
+uuid@^3.1.0:
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
+
+validate-npm-package-license@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
+  dependencies:
+    spdx-correct "~1.0.0"
+    spdx-expression-parse "~1.0.0"
+
+verror@1.10.0, verror@^1.9.0:
+  version "1.10.0"
+  resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+  dependencies:
+    assert-plus "^1.0.0"
+    core-util-is "1.0.2"
+    extsprintf "^1.2.0"
+
+which@^1.2.9:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
+  dependencies:
+    isexe "^2.0.0"
+
+wrappy@1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+
+xmlcreate@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-1.0.2.tgz#fa6bf762a60a413fb3dd8f4b03c5b269238d308f"
+
+yallist@^2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+
+yamljs@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/yamljs/-/yamljs-0.3.0.tgz#dc060bf267447b39f7304e9b2bfbe8b5a7ddb03b"
+  dependencies:
+    argparse "^1.0.7"
+    glob "^7.0.5"
