summaryrefslogtreecommitdiffstats
path: root/cucumber-js-test-apis-ci/features
diff options
context:
space:
mode:
authorilanap <ilanap@amdocs.com>2019-01-01 17:22:07 +0200
committerOren Kleks <orenkle@amdocs.com>2019-01-02 12:37:08 +0000
commit866418030975f2ee09a27d144de4e880218e84e8 (patch)
tree70a329025f0c382b658c667813dd4f9183e6e98e /cucumber-js-test-apis-ci/features
parent9da0b14bb0a0321f08458ba7b9148336e00d77d3 (diff)
docker for cucumber BDD
Issue-ID: SDC-2028 Change-Id: I7c1376c449ba7650c3bbc1838726cfd178d2ca40 Signed-off-by: ilanap <ilanap@amdocs.com>
Diffstat (limited to 'cucumber-js-test-apis-ci/features')
-rw-r--r--cucumber-js-test-apis-ci/features/AbortFunctionality/TestAbort_ForInvalidHeatFile.feature45
-rw-r--r--cucumber-js-test-apis-ci/features/AbortFunctionality/TestAbort_ForValidHeatFile.feature30
-rw-r--r--cucumber-js-test-apis-ci/features/AbortFunctionality/TestProperties.feature32
-rw-r--r--cucumber-js-test-apis-ci/features/AbortFunctionality/TestRollback.feature41
-rw-r--r--cucumber-js-test-apis-ci/features/AbortFunctionality/TestSubmit.feature35
-rw-r--r--cucumber-js-test-apis-ci/features/ActivitySpec/TestCreate.feature70
-rw-r--r--cucumber-js-test-apis-ci/features/ActivitySpec/TestInvalidStatusTransition.feature29
-rw-r--r--cucumber-js-test-apis-ci/features/ComponentData.feature52
-rw-r--r--cucumber-js-test-apis-ci/features/Example_Collaboration.feature26
-rw-r--r--cucumber-js-test-apis-ci/features/Example_HEAT.feature30
-rw-r--r--cucumber-js-test-apis-ci/features/Example_ResponseData_CheckAndManipulation.feature22
-rw-r--r--cucumber-js-test-apis-ci/features/Example_Rest_Calls.feature36
-rw-r--r--cucumber-js-test-apis-ci/features/Example_Toggle.feature8
-rw-r--r--cucumber-js-test-apis-ci/features/Example_ToscaTranslationFlow.feature48
-rw-r--r--cucumber-js-test-apis-ci/features/Example_VLM.feature46
-rw-r--r--cucumber-js-test-apis-ci/features/Example_VSP.feature60
-rw-r--r--cucumber-js-test-apis-ci/features/GlobalTypes/TestInterfaceLifecycleTypes.feature8
-rw-r--r--cucumber-js-test-apis-ci/features/InterfaceOperation/TestResourceInterfaceOperation.feature98
-rw-r--r--cucumber-js-test-apis-ci/features/InterfaceOperation/TestServiceInterfaceOperation.feature37
-rw-r--r--cucumber-js-test-apis-ci/features/Onboarding/ArchiveItem/ArchiveVlm.feature42
-rw-r--r--cucumber-js-test-apis-ci/features/Onboarding/ArchiveItem/ArchiveVsp.feature58
-rw-r--r--cucumber-js-test-apis-ci/features/Onboarding/ArchiveItem/FilterArchivedVSPpackage.feature40
-rw-r--r--cucumber-js-test-apis-ci/features/Onboarding/DeleteItem/DeleteVLMCertified.feature24
-rw-r--r--cucumber-js-test-apis-ci/features/Onboarding/DeleteItem/DeleteVLMDraft.feature24
-rw-r--r--cucumber-js-test-apis-ci/features/Onboarding/DeleteItem/DeleteVSPCertified.feature29
-rw-r--r--cucumber-js-test-apis-ci/features/Onboarding/DeleteItem/DeleteVSPDraft.feature22
-rw-r--r--cucumber-js-test-apis-ci/features/Onboarding/ListItems/ListItemsFilters.feature86
-rw-r--r--cucumber-js-test-apis-ci/features/Onboarding/ListItems/ListItemsFiltersFailures.feature24
-rw-r--r--cucumber-js-test-apis-ci/features/Onboarding/UniqueValue.feature33
-rw-r--r--cucumber-js-test-apis-ci/features/TOSCA/CapabilityDataType.feature20
-rw-r--r--cucumber-js-test-apis-ci/features/TOSCA/HeatToToscaTranslation.feature194
-rw-r--r--cucumber-js-test-apis-ci/features/TOSCA/HeatValidation.feature15
-rw-r--r--cucumber-js-test-apis-ci/features/TOSCA/VirtualMachineInterfaceValidation-positive.feature14
-rw-r--r--cucumber-js-test-apis-ci/features/TOSCA/VirtualMachineInterfaceValidationGuideline3violations.feature31
-rw-r--r--cucumber-js-test-apis-ci/features/TOSCA/VirtualMachineInterfaceValidationHeatResourceMissingProperties.feature31
-rw-r--r--cucumber-js-test-apis-ci/features/TOSCA/VirtualMachineInterfaceValidationHeatResourceMultipleParents.feature18
-rw-r--r--cucumber-js-test-apis-ci/features/TOSCA/VlanTagging.feature372
-rw-r--r--cucumber-js-test-apis-ci/features/UserFeedback/TestMD5.feature68
-rw-r--r--cucumber-js-test-apis-ci/features/UserFeedback/TestMRN.feature50
39 files changed, 1948 insertions, 0 deletions
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 0000000000..1c501d6599
--- /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 0000000000..c3ee8a5e6c
--- /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 0000000000..e9e9acdbe1
--- /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 0000000000..d61a1cc773
--- /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 0000000000..3153022396
--- /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 0000000000..c4e77a7c1b
--- /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 0000000000..452570e421
--- /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 0000000000..62f09a357f
--- /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 0000000000..c799efda12
--- /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 0000000000..778fd96616
--- /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 0000000000..ffc74f19bb
--- /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 0000000000..e650fede66
--- /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 0000000000..2d930773bd
--- /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 0000000000..5ec35f9a45
--- /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 0000000000..f4093ff07e
--- /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 0000000000..5cffa585c5
--- /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 0000000000..ef98fa5b42
--- /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 0000000000..ed09f2fb20
--- /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 0000000000..1ff0ba3f1b
--- /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 0000000000..f4b524b372
--- /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 0000000000..2cc057469f
--- /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 0000000000..f68eece6a8
--- /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 0000000000..4eb31aeafe
--- /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 0000000000..ad8bec50d3
--- /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 0000000000..35a506a010
--- /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 0000000000..5248131618
--- /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 0000000000..8b0a23213d
--- /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 0000000000..53807af47a
--- /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 0000000000..31e41b9931
--- /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 0000000000..ef240e33a3
--- /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 0000000000..ae0803687f
--- /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 0000000000..dba54ff9ff
--- /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 0000000000..280ec8b791
--- /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 0000000000..b0e5b4494a
--- /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 0000000000..3cf52f6527
--- /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 0000000000..0b9e092875
--- /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 0000000000..7adf99fae2
--- /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 0000000000..bb80c92d06
--- /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 0000000000..161ea57341
--- /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"
+
+
+
+
+
+