[SDC-29] rebase continue work to align source

Change-Id: I218f1c5ee23fb2c8314f1c70921d3ad8682c10f4
Signed-off-by: Michael Lando <ml636r@att.com>
diff --git a/test-apis-ci/src/test/resources/CI/ecomp-error-configuration.yaml b/test-apis-ci/src/test/resources/CI/ecomp-error-configuration.yaml
new file mode 100644
index 0000000..9d7cd74
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/ecomp-error-configuration.yaml
@@ -0,0 +1,383 @@
+###########################################
+# Note the conventions of the field values:
+# type can be one of: CONFIG_ERROR, SYSTEM_ERROR, DATA_ERROR, CONNECTION_PROBLEM, AUTHENTICATION_PROBLEM
+# severity can be one of: WARN, ERROR, FATAL
+# alarmSeverity can be one of: CRITICAL,MAJOR,MINOR,INFORMATIONAL,NONE
+# code is a unique integer in range of 3003-9999 (3000-3002 are occupied for internal usage)
+# The above enumeration values are out-of-the-box and can be changed in code. 
+# In case of config and code mismatch, the appropriate error will be printed to log
+#
+## Range of BE codes - 3010-7999
+
+errors:
+
+    BeRestApiGeneralError: {
+        type: SYSTEM_ERROR,
+        code: ASDC_4000,
+        severity: ERROR,
+        description: "Unexpected error during BE REST API execution",
+        alarmSeverity: CRITICAL
+    }
+
+    BeHealthCheckError: {
+        type: SYSTEM_ERROR,
+        code: ASDC_3010,
+        severity: ERROR,
+        description: "Error during BE Health Check",
+        alarmSeverity: CRITICAL
+    }
+    
+    BeInitializationError: {
+        type: SYSTEM_ERROR,
+        code: ASDC_4019,
+        severity: ERROR,
+        description: "Catalog-BE was not initialized properly",
+        alarmSeverity: CRITICAL
+    }
+
+    BeResourceMissingError: {
+        type: SYSTEM_ERROR,
+        code: ASDC_3011,
+        severity: ERROR,
+        description: "Mandatory resource %s cannot be found in repository",
+        alarmSeverity: MAJOR
+    }
+    
+    BeServiceMissingError: {
+        type: SYSTEM_ERROR,
+        code: ASDC_3012,
+        severity: ERROR,
+        description: "Mandatory service %s cannot be found in repository",
+        alarmSeverity: MAJOR
+    }
+    
+    BeFailedAddingResourceInstanceError: {
+        type: SYSTEM_ERROR,
+        code: ASDC_3013,
+        severity: ERROR,
+        description: "Failed to add resource instance of resource %s to service %s",
+        alarmSeverity: MAJOR
+    }
+    
+    BeIncorrectServiceError: {
+        type: SYSTEM_ERROR,
+        code: ASDC_3014,
+        severity: ERROR,
+        description: "Service %s is not valid",
+        alarmSeverity: MAJOR
+    }
+     
+    BeRepositoryDeleteError: {
+        type: SYSTEM_ERROR,
+        code: ASDC_3015,
+        severity: ERROR,
+        description: "Failed to delete object %s from repository",
+        alarmSeverity: CRITICAL
+    }
+    
+    BeRepositoryQueryError: {
+        type: SYSTEM_ERROR,
+        code: ASDC_3016,
+        severity: ERROR,
+        description: "Failed to fetch from repository %s",
+        alarmSeverity: MAJOR
+    }
+    
+    BeInvalidConfigurationError: {
+        type: CONFIG_ERROR,
+        code: ASDC_3017,
+        severity: FATAL,
+        description: "Configuration parameter %s is invalid. Value configured is %s",
+        alarmSeverity: MAJOR
+    }
+   
+    BeUebConnectionError: {
+        type: CONNECTION_PROBLEM,
+        code: ASDC_4001,
+        severity: ERROR,
+        description: "Connection problem towards U-EB server. Reason: %s",
+        alarmSeverity: MAJOR
+    }
+    
+    BeUebSystemError: {
+        type: SYSTEM_ERROR,
+        code: ASDC_3019,
+        severity: ERROR,
+        description: "Error occured during access to U-EB Server. Operation: %s",
+        alarmSeverity: MAJOR
+    }
+    
+    BeUebObjectNotFoundError: {
+        type: DATA_ERROR,
+        code: ASDC_4005,
+        severity: ERROR,
+        description: "Error occured during access to U-EB Server. Data not found: %s",
+        alarmSeverity: MAJOR
+    }
+
+    BeDistributionEngineSystemError: {
+        type: SYSTEM_ERROR,
+        code: ASDC_3021,
+        severity: ERROR,
+        description: "Error occured in Distribution Engine. Failed operation: %s",
+        alarmSeverity: MAJOR
+    }
+    
+    BeUebAuthenticationError: {
+        type: AUTHENTICATION_PROBLEM,
+        code: ASDC_4003,
+        severity: ERROR,
+        description: "Authentication problem towards U-EB server. Reason: %s",
+        alarmSeverity: MAJOR
+    }
+    
+    BeUebUnkownHostError: {
+        type: CONNECTION_PROBLEM,
+        code: ASDC_4002,
+        severity: ERROR,
+        description: "Connection problem towards U-EB server. Cannot reach host %s",
+        alarmSeverity: MAJOR
+    }
+    
+    BeDistributionEngineInvalidArtifactType: {
+        type: DATA_ERROR,
+        code: ASDC_4006,
+        severity: WARN,
+        description: "The artifact type %s does not appear in the list of valid artifacts %s",
+        alarmSeverity: MAJOR
+    }
+    BeInvalidTypeError: {
+        type: DATA_ERROR,
+        code: ASDC_4008,
+        severity: WARN,
+        description: "The type %s of %s is invalid",
+        alarmSeverity: MAJOR
+    }
+    BeInvalidValueError: {
+        type: DATA_ERROR,
+        code: ASDC_3028,
+        severity: WARN,
+        description: "The value %s of %s from type %s is invalid",
+        alarmSeverity: MAJOR
+    } 
+    
+    BeFailedDeletingResourceInstanceError: {
+        type: SYSTEM_ERROR,
+        code: ASDC_3029,
+        severity: ERROR,
+        description: "Failed to delete resource instance %s from service %s",
+        alarmSeverity: MAJOR
+    }
+    
+    BeMissingConfigurationError: {
+        type: CONFIG_ERROR,
+        code: ASDC_3030,
+        severity: FATAL,
+        description: "Configuration parameter %s is missing",
+        alarmSeverity: MAJOR
+    }
+    
+    BeConfigurationInvalidListSizeError: {
+        type: CONFIG_ERROR,
+        code: ASDC_3031,
+        severity: FATAL,
+        description: "Configuration parameter %s is invalid. At least %s values shall be configured",
+        alarmSeverity: MAJOR
+    }
+    
+    ErrorConfigFileFormat: {
+        type: CONFIG_ERROR,
+        code: ASDC_3032,
+        severity: ERROR,
+        description: "Error element not found in YAML name: %s",
+        alarmSeverity: MAJOR
+    }
+    
+    BeMissingArtifactInformationError: {
+        type: DATA_ERROR,
+        code: ASDC_4010,
+        severity: ERROR,
+        description: "Artifact uploaded has missing information. Missing %s",
+        alarmSeverity: MAJOR
+    }
+    
+    BeArtifactMissingError: {
+        type: DATA_ERROR,
+        code: ASDC_4011,
+        severity: ERROR,
+        description: "Artifact %s requested is not found",
+        alarmSeverity: MAJOR
+    }
+    
+    BeArtifactPayloadInvalid: {
+        type: DATA_ERROR,
+        code: ASDC_4012,
+        severity: ERROR,
+        description: "Payload of artifact uploaded is invalid (invalid MD5 or encryption)",
+        alarmSeverity: MAJOR
+    }
+    
+    BeUserMissingError: {
+        type: DATA_ERROR,
+        code: ASDC_4009,
+        severity: ERROR,
+        description: "User %s requested is not found",
+        alarmSeverity: MAJOR
+    }
+    
+    BeArtifactInformationInvalidError: {
+        type: DATA_ERROR,
+        code: ASDC_4013,
+        severity: ERROR,
+        description: "Input for artifact metadata is invalid",
+        alarmSeverity: MAJOR
+    }
+    BeFailedAddingCapabilityTypeError: {
+        type: DATA_ERROR,
+        code: ASDC_4015,
+        severity: ERROR,
+        description: "Failed adding capability type",
+        alarmSeverity: CRITICAL
+    }
+    
+    BeCapabilityTypeMissingError: {
+        type: DATA_ERROR,
+        code: ASDC_4016,
+        severity: ERROR,
+        description: "Capability Type %s not found",
+        alarmSeverity: CRITICAL
+    }
+    
+    BeInterfaceMissingError: {
+        type: DATA_ERROR,
+        code: ASDC_4020,
+        severity: ERROR,
+        description: "Interface %s required is missing",
+        alarmSeverity: MAJOR
+    }
+    
+    BeDaoSystemError: {
+        type: SYSTEM_ERROR,
+        code: ASDC_4014,
+        severity: ERROR,
+        description: "Operation towards database failed",
+        alarmSeverity: CRITICAL
+    }
+    
+    BeSystemError: {
+        type: SYSTEM_ERROR,
+        code: ASDC_4017,
+        severity: ERROR,
+        description: "Unexpected error during operation",
+        alarmSeverity: CRITICAL
+    }
+    
+    BeFailedLockObjectError: {
+        type: SYSTEM_ERROR,
+        code: ASDC_4007,
+        severity: WARN,
+        description: "Failed to lock object for update",
+        alarmSeverity: CRITICAL
+    }
+    
+    BeInvalidJsonInput: {
+        type: SYSTEM_ERROR,
+        code: ASDC_4018,
+        severity: ERROR,
+        description: "Failed to convert json input to object",
+        alarmSeverity: MAJOR
+    }
+    
+    BeDistributionMissingError: {
+        type: DATA_ERROR,
+        code: ASDC_4021,
+        severity: ERROR,
+        description: "Distribution %s required is missing",
+        alarmSeverity: MAJOR
+    }
+    
+    BeHealthCheckRecovery: {
+        type: RECOVERY,
+        code: ASDC_4022,
+        severity: INFO,
+        description: "BE Health Check Recovery",
+        alarmSeverity: INFORMATIONAL
+    }
+    BeFailedCreateNodeError: {
+        type: DATA_ERROR,
+        code: ASDC_6000,
+        severity: ERROR,
+        description: "Failed to create node %s on graph. status is %s",
+        alarmSeverity: MAJOR
+    }
+    BeFailedUpdateNodeError: {
+        type: DATA_ERROR,
+        code: ASDC_6001,
+        severity: ERROR,
+        description: "Failed to update node %s on graph. Status is %s",
+        alarmSeverity: MAJOR
+    }
+    
+    BeFailedDeleteNodeError: {
+        type: DATA_ERROR,
+        code: ASDC_6002,
+        severity: ERROR,
+        description: "Failed to delete node %s on graph. Status is %s",
+        alarmSeverity: MAJOR
+    }
+    
+    BeFailedRetrieveNodeError: {
+        type: DATA_ERROR,
+        code: ASDC_6003,
+        severity: ERROR,
+        description: "Failed to retrieve node %s from graph. Status is %s",
+        alarmSeverity: MAJOR
+    }
+    
+    BeExecuteRollbackError: {
+        type: DATA_ERROR,
+        code: ASDC_6004,
+        severity: ERROR,
+        description: "Going to execute rollback on graph.",
+        alarmSeverity: MAJOR
+    }
+    
+    BeFailedFindParentError: {
+        type: DATA_ERROR,
+        code: ASDC_6005,
+        severity: ERROR,
+        description: "Failed to find parent node %s on graph. Status is %s",
+        alarmSeverity: MAJOR
+    }
+    
+    BeFailedFindAllNodesError: {
+        type: DATA_ERROR,
+        code: ASDC_6006,
+        severity: ERROR,
+        description: "Failed to fetch all nodes with type %s of parent node %s . Status is %s",
+        alarmSeverity: MAJOR
+    }
+    
+    BeFailedFindAssociationError: {
+        type: DATA_ERROR,
+        code: ASDC_6007,
+        severity: ERROR,
+        description: "Cannot find node with type %s associated with node %s . Status is %s",
+        alarmSeverity: MAJOR
+    }
+    
+    BeFailedFindAssociationError: {
+        type: DATA_ERROR,
+        code: ASDC_6008,
+        severity: ERROR,
+        description: "Cannot find node with type %s associated with node %s . Status is %s",
+        alarmSeverity: MAJOR
+    }
+    BeComponentCleanerSystemError: {
+        type: SYSTEM_ERROR,
+        code: ASDC_6009,
+        severity: ERROR,
+        description: "Error occured in Component Cleaner Task. Failed operation: %s",
+        alarmSeverity: MAJOR
+    }
+    
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/error-configuration.yaml b/test-apis-ci/src/test/resources/CI/error-configuration.yaml
new file mode 100644
index 0000000..ef7a885
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/error-configuration.yaml
@@ -0,0 +1,1778 @@
+# Errors
+errors:
+    OK: {
+        code: 200,
+        message: "OK"
+    }
+    CREATED: {
+        code: 201,
+        message: "OK"
+    }
+    NO_CONTENT: {
+        code: 204,
+        message: "No Content"
+    }
+#--------POL4050-----------------------------     
+    NOT_ALLOWED: {
+        code: 405,
+        message: "Error: Method not allowed.",
+        messageId: "POL4050"
+    }
+#--------POL5000-----------------------------     
+    GENERAL_ERROR: {
+        code: 500,
+        message: "Error: Internal Server Error. Please try again later.",
+        messageId: "POL5000"
+    }
+#---------POL5001------------------------------     
+    MISSING_X_ECOMP_INSTANCE_ID: {
+        code: 400  ,
+        message: "Error: Missing 'X-ECOMP-InstanceID' HTTP header.",
+        messageId: "POL5001"
+    }
+#---------POL5002------------------------------     
+    AUTH_REQUIRED: {
+        code: 401  ,
+        message: "Error: Authentication is required to use the API.",
+        messageId: "POL5002"
+    }
+#---------POL5003------------------------------     
+    AUTH_FAILED: {
+        code: 403  ,
+        message: "Error: Not authorized to use the API.",
+        messageId: "POL5003"
+    }
+#---------POL5004------------------------------     
+    MISSING_USER_ID: {
+        code: 400  ,
+        message: "Error: Missing 'USER_ID' HTTP header.",
+        messageId: "POL5004"
+    }
+#---------SVC4000----------------------------- 
+    INVALID_CONTENT: {
+        code: 400,
+        message: "Error: Invalid content.",
+        messageId: "SVC4000"
+    }
+#---------SVC4002----------------------------- 
+    MISSING_INFORMATION: {
+        code: 403,
+        message: "Error: Missing information.",
+        messageId: "SVC4002"
+    }
+#---------SVC4003------------------------------ 
+# %1 - Users's ID     
+    USER_NOT_FOUND: {
+        code: 404,
+        message: "Error: User '%1' was not found.",
+        messageId: "SVC4003"
+    }
+#---------SVC4004----------------------------- 
+# %1 - Users's email address     
+    INVALID_EMAIL_ADDRESS: {
+        code: 400,
+        message: "Error: Invalid email address '%1'.",
+        messageId: "SVC4004"
+    }
+#---------SVC4005------------------------------ 
+# %1 - role
+    INVALID_ROLE: {
+        code: 400,
+        message: "Error: Invalid role '%1'.",
+        messageId: "SVC4005"
+    }
+#---------SVC4006------------------------------ 
+# %1 - Users's USER_ID     
+    USER_ALREADY_EXIST: {
+        code: 409,
+        message: "Error: User with '%1' ID already exists.",
+        messageId: "SVC4006"
+    }
+#---------SVC4007------------------------------ 
+    DELETE_USER_ADMIN_CONFLICT: {
+        code: 409,
+        message: "Error: An administrator can only be deleted by another administrator.",
+        messageId: "SVC4007"
+    }
+#---------SVC4008----------------------------- 
+# %1 - Users's userId     
+    INVALID_USER_ID: {
+        code: 400,
+        message: "Error: Invalid userId '%1'.",
+        messageId: "SVC4008"
+    }
+#---------SVC4049------------------------------ 
+# %1 - service/resource
+    COMPONENT_MISSING_CONTACT: {
+        code: 400,
+        message: "Error: Invalid Content. Missing %1 contact.",
+        messageId: "SVC4049"
+    } 
+#---------SVC4050----------------------------- 
+# %1 - Service/Resource/Additional parameter
+# %2 - service/resource/label name
+    COMPONENT_NAME_ALREADY_EXIST: {
+        code: 409,
+        message: "Error: %1 with name '%2' already exists.",
+        messageId: "SVC4050"
+    }
+#---------SVC4051------------------------------ 
+# %1 - resource/service 
+    COMPONENT_MISSING_CATEGORY: {
+        code: 400,
+        message: "Error: Invalid Content. Missing %1 category.",
+        messageId: "SVC4051"
+    }
+
+#---------SVC4052------------------------------ 
+    COMPONENT_MISSING_TAGS: {
+        code: 400,
+        message: "Error: Invalid Content. At least one tag has to be specified.",
+        messageId: "SVC4052"
+    }
+
+#---------SVC4053------------------------------ 
+# %1 - service/resource
+    COMPONENT_MISSING_DESCRIPTION: {
+        code: 400,
+        message: "Error: Invalid Content. Missing %1 description.",
+        messageId: "SVC4053"
+    }
+#---------SVC4054------------------------------  
+# %1 - resource/service
+    COMPONENT_INVALID_CATEGORY: {
+        code: 400,
+        message: "Error: Invalid Content. Invalid %1 category.",
+        messageId: "SVC4054"
+    }
+#---------SVC4055------------------------------ 
+    MISSING_VENDOR_NAME: {
+        code: 400,
+        message: "Error: Invalid Content. Missing vendor name.",
+        messageId: "SVC4055"
+    }
+#---------SVC4056------------------------------ 
+    MISSING_VENDOR_RELEASE: {
+        code: 400,
+        message: "Error: Invalid Content. Missing vendor release.",
+        messageId: "SVC4056"
+    }
+
+#---------SVC4057------------------------------  
+    MISSING_DERIVED_FROM_TEMPLATE: {
+        code: 400,
+        message: "Error: Invalid Content. Missing derived from template specification.",
+        messageId: "SVC4057"
+    }
+
+#---------SVC4058------------------------------ 
+# %1 - service/resource
+    COMPONENT_MISSING_ICON: {
+        code: 400,
+        message: "Error: Invalid Content. Missing %1 icon.",
+        messageId: "SVC4058"
+    }
+#---------SVC4059------------------------------ 
+# %1 - service/resource
+    COMPONENT_INVALID_ICON: {
+        code: 400,
+        message: "Error: Invalid Content. Invalid %1 icon.",
+        messageId: "SVC4059"
+    }
+#---------SVC4060------------------------------  
+    PARENT_RESOURCE_NOT_FOUND: {
+        code: 400,
+        message: "Error: Invalid Content. Derived from resource template was not found.",
+        messageId: "SVC4060"
+    }
+#---------SVC4061------------------------------  
+    MULTIPLE_PARENT_RESOURCE_FOUND: {
+        code: 400,
+        message: "Error: Invalid Content. Multiple derived from resource template is not allowed.",
+        messageId: "SVC4061"
+    }
+
+#---------SVC4062------------------------------ 
+# %1 - service/resource
+    MISSING_COMPONENT_NAME: {
+        code: 400,
+        message: "Error: Invalid Content. Missing %1 name.",
+        messageId: "SVC4062"
+    }
+#---------SVC4063------------------------------  
+    #%1  -  resource/service name
+    RESOURCE_NOT_FOUND: {
+        code: 404,
+        message: "Error: Requested '%1' resource was not found.",
+        messageId: "SVC4063"
+    }
+
+#---------SVC4064------------------------------ 
+# %1 - Service/Resource/Property
+    COMPONENT_INVALID_DESCRIPTION: {
+        code: 400,
+        message: "Error: Invalid Content. %1 description contains non-english characters.",
+        messageId: "SVC4064"
+    }
+#---------SVC4065------------------------------ 
+# %1 - Service/Resource/Property
+# %2 - max resource/service name length 
+    COMPONENT_DESCRIPTION_EXCEEDS_LIMIT: {
+        code: 400,
+        message: "Error: Invalid Content. %1 description exceeds limit of %2 characters.",
+        messageId: "SVC4065"
+    }
+#---------SVC4066------------------------------ 
+# %1 - max length   
+    COMPONENT_TAGS_EXCEED_LIMIT: {
+        code: 400,
+        message: "Error: Invalid Content. Tags overall length exceeds limit of %1 characters.",
+        messageId: "SVC4066"
+    }
+#---------SVC4067------------------------------
+# %1 - max length  
+    VENDOR_NAME_EXCEEDS_LIMIT: {
+        code: 400,
+        message: "Error: Invalid Content. Vendor name exceeds limit of %1 characters.",
+        messageId: "SVC4067"
+    }
+#---------SVC4068------------------------------
+# %1 - max length  
+    VENDOR_RELEASE_EXCEEDS_LIMIT: {
+        code: 400,
+        message: "Error: Invalid Content. Vendor release exceeds limit of %1 characters.",
+        messageId: "SVC4068"
+    }
+
+#---------SVC4069------------------------------ 
+# %1 - Service/Resource/Product
+    COMPONENT_INVALID_CONTACT: {
+        code: 400,
+        message: "Error: Invalid Content. %1 Contact Id should be in format 'mnnnnnn' or 'aannna' or 'aannnn', where m=m ,a=a-zA-Z and n=0-9",
+        messageId: "SVC4069"
+    }
+#---------SVC4070------------------------------ 
+# %1 - Service/Resource
+    INVALID_COMPONENT_NAME: {
+        code: 400,
+        message: 'Error: Invalid Content. %1 name is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
+        messageId: "SVC4070"
+    }
+
+#---------SVC4071------------------------------ 
+    INVALID_VENDOR_NAME: {
+        code: 400,
+        message: 'Error: Invalid Content. Vendor name is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
+        messageId: "SVC4071"
+    }
+#---------SVC4072------------------------------ 
+    INVALID_VENDOR_RELEASE: {
+        code: 400,
+        message: 'Error: Invalid Content. Vendor release is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
+        messageId: "SVC4072"
+    }
+#---------SVC4073------------------------------ 
+# %1 - Service/Resource
+# %2 - max  resource/service name  
+    COMPONENT_NAME_EXCEEDS_LIMIT: {
+        code: 400,
+        message: "Error: Invalid Content. %1 name exceeds limit of %2 characters.",
+        messageId: "SVC4073"
+    }
+#---------SVC4080------------------------------  
+# %1 - resource/service name
+# %2 - resource/service
+# %3 - First name of last modifier
+# %4 - Last name of last modifier
+# %5 - USER_ID of last modifier
+    COMPONENT_IN_CHECKOUT_STATE: {
+        code: 403,
+        message: "Error: Requested '%1' %2 is locked for modification by %3 %4(%5).",
+        messageId: "SVC4080"
+    }
+#---------SVC4081-----------------------------  
+# %1 - resource/service name
+# %2 - resource/service
+# %3 - First name of last modifier
+# %4 - Last name of last modifier
+# %5 - USER_ID of last modifier
+    COMPONENT_IN_CERT_IN_PROGRESS_STATE: {
+        code: 403,
+        message: "Error: Requested '%1' %2 is locked for certification by %3 %4(%5).",
+        messageId: "SVC4081"
+    }
+
+#-----------SVC4082---------------------------  
+# %1 - resource/service name
+# %2 - resource/service
+# %3 - First name of last modifier
+# %4 - Last name of last modifier
+# %5 - USER_ID of last modifier
+    COMPONENT_SENT_FOR_CERTIFICATION: {
+        code: 403,
+        message: "Error: Requested '%1' %2 is sent for certification by %3 %4(%5).",
+        messageId: "SVC4082"
+    }
+#-----------SVC4083---------------------------
+    COMPONENT_VERSION_ALREADY_EXIST: {
+        code: 409,
+        message: "Error: Version of this %1 was already promoted.",
+        messageId: "SVC4083"
+    }
+#-----------SVC4084---------------------------
+# %1 - resource/service/product name
+# %2 - resource/service/product
+# %3 - First name of last modifier
+# %4 - Last name of last modifier
+# %5 - USER_ID of last modifier
+    COMPONENT_ALREADY_CHECKED_IN: {
+        code: 409,
+        message: "Error: The current version of '%1' %2 was already checked-in by %3 %4(%5).",
+        messageId: "SVC4084"
+    }
+#-----------SVC4085---------------------------
+# %1 - resource/service/product name
+# %2 - resource/service/product
+# %3 - First name of last modifier
+# %4 - Last name of last modifier
+# %5 - USER_ID of last modifier
+    COMPONENT_CHECKOUT_BY_ANOTHER_USER: {
+        code: 403,
+        message: "Error: %1 %2 has already been checked out by %3 %4(%5).",
+        messageId: "SVC4085"
+    }
+#-----------SVC4086---------------------------
+# %1  - resource/service name
+# %2  - resource/service
+    COMPONENT_IN_USE: {
+        code: 403,
+        message: "Error: Requested '%1' %2 is in use by another user.",
+        messageId: "SVC4086"
+    }
+#-----------SVC4087---------------------------
+# %1 - component name
+# %2 - resource/service/product
+    COMPONENT_HAS_NEWER_VERSION: {
+        code: 409,
+        message: "Error: Checking out of the requested version of the '%1' %2 is not allowed as a newer version exists.",
+        messageId: "SVC4087"
+    }
+#-----------SVC4088---------------------------
+# %1 - resource/service name
+# %2 - resource/service
+# %3 - First name of last modifier
+# %4 - Last name of last modifier
+# %5 - USER_ID of last modifier
+    COMPONENT_ALREADY_CERTIFIED: {
+        code: 403,
+        message: "Error: Requested %1 %2 has already been certified by %3 %4(%5).",
+        messageId: "SVC4088"
+    }
+#-----------SVC4089---------------------------
+# %1 - resource/service name
+# %2 - resource/service
+    COMPONENT_NOT_READY_FOR_CERTIFICATION: {
+        code: 403,
+        message: "Error: Requested '%1' %2 is not ready for certification.",
+        messageId: "SVC4089"
+    }
+#-----------SVC4100---------------------------
+#%1 - property name
+    PROPERTY_NOT_FOUND: {
+        code: 404,
+        message: "Error: Requested '%1' property was not found.",
+        messageId: "SVC4100"
+    }
+#-----------SVC4101---------------------------
+#%1 - property name
+    PROPERTY_ALREADY_EXIST: {
+        code: 409,
+        message: "Error: Property with '%1' name already exists.",
+        messageId: "SVC4101"
+    }
+
+#-----------SVC4102---------------------------
+# %1 - capability type name 
+    CAPABILITY_TYPE_ALREADY_EXIST: {
+        code: 409,
+        message: "Error: Capability Type with name '%1' already exists.",
+        messageId: "SVC4102"
+    }
+#-----------SVC4114---------------------------
+    AUTH_FAILED_INVALIDE_HEADER: {
+        code: 400,
+        message: "Error: Invalid Authorization header.",
+        messageId: "SVC4114"
+    }
+#-----------SVC4115---------------------------
+# %1 - capability type name 
+    MISSING_CAPABILITY_TYPE: {
+        code: 400,
+        message: "Error: Invalid Content. Missing Capability Type '%1'.",
+        messageId: "SVC4115"
+    }
+    RESOURCE_INSTANCE_BAD_REQUEST: {
+        code: 400,
+        message: "Error: Invalid Content.",
+        messageId: "SVC4116"
+    }
+#-----------SVC4117---------------------------
+# %1 - resource instance name
+# %2 - resource instance name
+# %3 - requirement name
+    RESOURCE_INSTANCE_MATCH_NOT_FOUND: {
+        code: 404,
+        message: "Error: Match not found between resource instance '%1' and resource instance '%2' for requirement '%3'.",
+        messageId: "SVC4117"
+    }
+#-----------SVC4118---------------------------
+# %1 - resource instance name
+# %2 - resource instance name
+# %3 - requirement name
+    RESOURCE_INSTANCE_ALREADY_EXIST: {
+        code: 409,
+        message: "Error: Resource instances '%1' and '%2' are already associated with requirement '%3'.",
+        messageId: "SVC4118"
+    }
+#-----------SVC4119---------------------------
+# %1 - resource instance name
+# %2 - resource instance name
+# %3 - requirement name
+    RESOURCE_INSTANCE_RELATION_NOT_FOUND: {
+        code: 404,
+        message: "Error: No relation found between resource instances '%1' and '%2' for requirement '%3'.",
+        messageId: "SVC4119"
+    }
+#-----------SVC4120---------------------------
+# %1 - User's USER_ID
+    USER_INACTIVE: {
+        code: 404,
+        message: "Error: User %1 was not found.",
+        messageId: "SVC4120"
+    }
+#-----------SVC4121---------------------------
+# %1 - User's USER_ID
+    USER_HAS_ACTIVE_ELEMENTS: {
+        code: 403,
+        message: "Error: User with %1 ID can not be deleted since it has active elements(resources/services/artifacts).",
+        messageId: "SVC4121"
+    }
+#-----------SVC4122---------------------------
+# %1 - artifact type
+    ARTIFACT_TYPE_NOT_SUPPORTED: {
+        code: 400,
+        message: "Error: Invalid artifact type '%1'.",
+        messageId: "SVC4122"
+    }
+#-----------SVC4123---------------------------
+    ARTIFACT_LOGICAL_NAME_CANNOT_BE_CHANGED: {
+        code: 400,
+        message: "Error: Artifact logical name cannot be changed.",
+        messageId: "SVC4123"
+    }
+#-----------SVC4124---------------------------
+    MISSING_ARTIFACT_TYPE: {
+        code: 400,
+        message: "Error: Missing artifact type.",
+        messageId: "SVC4124"
+    }
+#-----------SVC4125---------------------------
+# %1-artifact name
+    ARTIFACT_EXIST: {
+        code: 400,
+        message: "Error: Artifact '%1' already exists.",
+        messageId: "SVC4125"
+    }
+#---------SVC4126------------------------------ 
+# %1 - resource/service/product/...
+# %2 - field (tag, vendor name...)
+    INVALID_FIELD_FORMAT: {
+        code: 400,
+        message: "Error:  Invalid %1 %2 format.",
+        messageId: "SVC4126"
+    }
+#-----------SVC4127---------------------------
+    ARTIFACT_INVALID_MD5: {
+        code: 400,
+        message: "Error: Invalid artifact checksum.",
+        messageId: "SVC4127"
+    }
+#-----------SVC4128---------------------------
+    MISSING_ARTIFACT_NAME: {
+        code: 400,
+        message: "Error: Invalid content. Missing artifact name.",
+        messageId: "SVC4128"
+    }
+#-----------SVC4129---------------------------
+    MISSING_PROJECT_CODE: {
+        code: 400,
+        message: "Error: Invalid Content. Missing PROJECT_CODE number.",
+        messageId: "SVC4129"
+    }
+#-----------SVC4130---------------------------
+    INVALID_PROJECT_CODE: {
+        code: 400,
+        message: "Error: Invalid Content. PROJECT_CODE must be from 3 up to 50 characters.",
+        messageId: "SVC4130"
+    }
+#-----------SVC4131---------------------------
+# %1-resource/service
+# %2-srtifact/artifacts
+# %3-semicolomn separated list of artifact 
+    COMPONENT_MISSING_MANDATORY_ARTIFACTS: {
+        code: 403,
+        message: "Error: Missing mandatory informational %1 %2: [%3].",
+        messageId: "SVC4131"
+    }
+#-----------SVC4132---------------------------
+# %1 - lifecycle  type name
+    LIFECYCLE_TYPE_ALREADY_EXIST: {
+        code: 409,
+        message: "Error: Lifecycle Type with name '%1' already exists.",
+        messageId: "SVC4132"
+    }
+#-----------SVC4133---------------------------
+# %1 - service version
+# %2 - service name
+    SERVICE_NOT_AVAILABLE_FOR_DISTRIBUTION: {
+        code: 403,
+        message: "Error: Version %1 of '%2' service is not available for distribution.",
+        messageId: "SVC4133"
+    }
+#-----------SVC4134---------------------------
+    MISSING_LIFECYCLE_TYPE: {
+        code: 400,
+        message: "Error: Invalid Content. Missing interface life-cycle type.",
+        messageId: "SVC4134"
+    }
+#---------SVC4135------------------------------ 
+    SERVICE_CATEGORY_CANNOT_BE_CHANGED: {
+        code: 400,
+        message: "Error: Service category cannot be changed once the service is certified.",
+        messageId: "SVC4135"
+    }
+#---------SVC4136------------------------------ 
+# %1 - distribution environment name    
+    DISTRIBUTION_ENVIRONMENT_NOT_AVAILABLE: {
+        code: 500,
+        message: "Error: Requested distribution environment '%1' is not available.",
+        messageId: "SVC4136"
+    }
+#---------SVC4137------------------------------ 
+# %1 - distribution environment name    
+    DISTRIBUTION_ENVIRONMENT_NOT_FOUND: {
+        code: 400,
+        message: "Error: Requested distribution environment '%1' was not found.",
+        messageId: "SVC4137"
+    }
+#---------SVC4138------------------------------     
+    DISTRIBUTION_ENVIRONMENT_INVALID: {
+        code: 400,
+        message: "Error: Invalid distribution environment.",
+        messageId: "SVC4138"
+    }
+#---------SVC4139------------------------------     
+# %1 - service name
+    DISTRIBUTION_ARTIFACT_NOT_FOUND: {
+        code: 409,
+        message: "Error: Service '%1' cannot be distributed due to missing deployment artifacts.",
+        messageId: "SVC4139"
+    }
+#---------SVC4200------------------------------ 
+# %1 - Service/Resource
+# %2 - max icon name length   
+    COMPONENT_ICON_EXCEEDS_LIMIT: {
+        code: 400,
+        message: "Error: Invalid Content. %1 icon name exceeds limit of %2 characters.",
+        messageId: "SVC4200"
+    }
+#---------SVC4300------------------------------ 
+    RESTRICTED_ACCESS: {
+        code: 403,
+        message: "Error: Restricted access.",
+        messageId: "SVC4300"
+    }
+#---------SVC4301------------------------------ 
+    RESTRICTED_OPERATION: {
+        code: 409,
+        message: "Error: Restricted operation.",
+        messageId: "SVC4301"
+    }
+#---------SVC4500------------------------------     
+    MISSING_BODY: {
+        code: 400  ,
+        message: "Error: Missing request body.",
+        messageId: "SVC4500"
+    }
+#---------SVC4501------------------------------
+    MISSING_PUBLIC_KEY: {
+        code: 400  ,
+        message: "Error: Invalid Content. Missing mandatory parameter 'apiPublicKey'." ,
+        messageId: "SVC4501"
+    }
+#---------SVC4502------------------------------     
+    DISTRIBUTION_ENV_DOES_NOT_EXIST: {
+        code: 400  ,
+        message: "Error: Invalid  Body  : Missing mandatory parameter 'distrEnvName'." ,
+        messageId: "SVC4502"
+    }
+#-----------SVC4503---------------------------
+# %1 - service name
+    SERVICE_NOT_FOUND: {
+        code: 404,
+        message: "Error: Requested '%1' service was not found.",
+        messageId: "SVC4503"
+    }
+
+#---------SVC4504------------------------------ 
+# %1 - Service/Resource
+# %2 - service/resource version
+    COMPONENT_VERSION_NOT_FOUND: {
+        code: 404,
+        message: "Error: %1 version %2 was not found.",
+        messageId: "SVC4504"
+    }
+#-----------SVC4505---------------------------
+    #%1-artifact name
+ 
+    ARTIFACT_NOT_FOUND: {
+        code: 404,
+        message: "Error: Artifact '%1' was not found.",
+        messageId: "SVC4505"
+    }
+#---------SVC4506------------------------------ 
+    MISSING_ENV_NAME: {
+        code: 400  ,
+        message: "Error: Invalid Content. Missing mandatory parameter 'distrEnvName'.",
+        messageId: "SVC4506"
+    }
+#---------SVC4507------------------------------ 
+    COMPONENT_INVALID_TAGS_NO_COMP_NAME: {
+        code: 400,
+        message: "Error: Invalid Content. One of the tags should be the component name.",
+        messageId: "SVC4507"
+    }
+ 
+#---------SVC4508------------------------------ 
+    SERVICE_NAME_CANNOT_BE_CHANGED: {
+        code: 400,
+        message: "Error: Service name cannot be changed once the service is certified.",
+        messageId: "SVC4508"
+    }
+
+#---------SVC4509------------------------------ 
+    SERVICE_ICON_CANNOT_BE_CHANGED: {
+        code: 400,
+        message: "Error: Icon cannot be changed once the service is certified.",
+        messageId: "SVC4509"
+    }
+#---------SVC4510------------------------------ 
+# %1 - icon name max length
+    SERVICE_ICON_EXCEEDS_LIMIT: {
+        code: 400,
+        message: "Error: Invalid Content. Icon name exceeds limit of %1 characters.",
+        messageId: "SVC4510"
+    }
+#---------SVC4511------------------------------ 
+    DISTRIBUTION_REQUESTED_NOT_FOUND: {
+        code: 404,
+        message: "Error: Requested distribution was not found.",
+        messageId: "SVC4511"
+    }
+#---------SVC4512------------------------------ 
+# %1 - Distribution ID
+    DISTRIBUTION_REQUESTED_FAILED: {
+        code: 403,
+        message: "Error: Requested distribution '%1' failed.",
+        messageId: "SVC4512"
+    }
+#---------SVC4513------------------------------ 
+    RESOURCE_CATEGORY_CANNOT_BE_CHANGED: {
+        code: 400,
+        message: "Error: Resource category cannot be changed once the resource is certified.",
+        messageId: "SVC4513"
+    }
+#---------SVC4514------------------------------ 
+    RESOURCE_NAME_CANNOT_BE_CHANGED: {
+        code: 400,
+        message: "Error: Resource name cannot be changed once the resource is certified.",
+        messageId: "SVC4514"
+    }
+#---------SVC4515------------------------------ 
+    RESOURCE_ICON_CANNOT_BE_CHANGED: {
+        code: 400,
+        message: "Error: Icon cannot be changed once the resource is certified.",
+        messageId: "SVC4515"
+    }
+#---------SVC4516------------------------------ 
+    RESOURCE_VENDOR_NAME_CANNOT_BE_CHANGED: {
+        code: 400,
+        message: "Error: Vendor name cannot be changed once the resource is certified.",
+        messageId: "SVC4516"
+    }
+#---------SVC4517------------------------------ 
+    RESOURCE_DERIVED_FROM_CANNOT_BE_CHANGED: {
+        code: 400,
+        message: "Error: Derived from resource template cannot be changed once the resource is certified.",
+        messageId: "SVC4517"
+    }
+#---------SVC4518------------------------------ 
+# %1 - max length 
+    COMPONENT_SINGLE_TAG_EXCEED_LIMIT: {
+        code: 400,
+        message: "Error: Invalid Content. Single tag exceeds limit of %1 characters.",
+        messageId: "SVC4518"
+    }
+#---------SVC4519------------------------------ 
+    INVALID_DEFAULT_VALUE: {
+        code: 400,
+        message: "Error: mismatch in data-type occurred for property %1. data type is %2 and default value found is %3.",
+        messageId: "SVC4519"
+    }
+#---------SVC4520------------------------------ 
+# %1 - service or resource 
+    ADDITIONAL_INFORMATION_MAX_NUMBER_REACHED: {
+        code: 409,
+        message: "Error: Maximal number of additional %1 parameters was reached.",
+        messageId: "SVC4520"
+    }
+#---------SVC4521------------------------------
+    ADDITIONAL_INFORMATION_EMPTY_STRING_NOT_ALLOWED: {
+        code: 400,
+        message: "Error: Invalid Content. The Additional information label and value cannot be empty.",
+        messageId: "SVC4521"
+    }
+#---------SVC4522------------------------------ 
+# %1 - label/value
+# %2 - Maximal length of %1
+    ADDITIONAL_INFORMATION_EXCEEDS_LIMIT: {
+        code: 400,
+        message: "Error: Invalid Content. Additional information %1 exceeds limit of %2 characters.",
+        messageId: "SVC4522"
+    }
+#---------SVC4523------------------------------
+    ADDITIONAL_INFORMATION_KEY_NOT_ALLOWED_CHARACTERS: {
+        code: 400,
+        message: 'Error: Invalid Content. Additional information label is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
+        messageId: "SVC4523"
+    }
+#---------SVC4524------------------------------
+    ADDITIONAL_INFORMATION_NOT_FOUND: {
+        code: 409,
+        message: "Error: Requested additional information was not found.",
+        messageId: "SVC4524"
+    }
+#---------SVC4525------------------------------    
+    ADDITIONAL_INFORMATION_VALUE_NOT_ALLOWED_CHARACTERS: {
+        code: 400,
+        message: 'Error: Invalid Content. Additional information contains non-english characters.',
+        messageId: "SVC4525"
+    }
+#---------SVC4526------------------------------ 
+    RESOURCE_INSTANCE_NOT_FOUND: {
+        code: 404,
+        message: "Error: Requested '%1' resource instance was not found.",
+        messageId: "SVC4526"
+    }
+#---------SVC4527------------------------------ 
+    ASDC_VERSION_NOT_FOUND: {
+        code: 500,
+        message: 'Error: ASDC version cannot be displayed.',
+        messageId: "SVC4527"
+    }
+#---------SVC4528------------------------------ 
+# %1-artifact url/artifact label/artifact description/VNF Service Indicator
+    MISSING_DATA: {
+        code: 400,
+        message: "Error: Invalid content. Missing %1.",
+        messageId: "SVC4528"
+    }
+#---------SVC4529------------------------------ 
+# %1-artifact url/artifact label/artifact description/artifact name
+# %2 - Maximal length of %1
+    EXCEEDS_LIMIT: {
+        code: 400,
+        message: "Error: Invalid Content. %1 exceeds limit of %2 characters.",
+        messageId: "SVC4529"
+    }
+#---------SVC4530------------------------------ 
+    ARTIFACT_INVALID_TIMEOUT: {
+        code: 400,
+        message: "Error: Invalid Content. Artifact Timeout should be set to valid positive non-zero number of minutes.",
+        messageId: "SVC4530"
+    }
+#---------SVC4531------------------------------ 
+    SERVICE_IS_VNF_CANNOT_BE_CHANGED: {
+        code: 400,
+        message: "Error: VNF Indicator cannot be updated for certified service.",
+        messageId: "SVC4531"
+    }
+ #---------SVC4532------------------------------ 
+    RESOURCE_INSTANCE_NOT_FOUND_ON_SERVICE: {
+        code: 404,
+        message: "Error: Requested '%1' resource instance was not found on the service '%2.",
+        messageId: "SVC4532"
+    }
+ #---------SVC4533------------------------------ 
+ # %1 -  "HEAT"/"HEAT_ENV"/"MURANO_PKG"/"YANG_XML" 
+    WRONG_ARTIFACT_FILE_EXTENSION: {
+        code: 400,
+        message: "Error: Invalid file extension for %1 artifact type.",
+        messageId: "SVC4533"
+    }
+
+#---------SVC4534------------------------------ 
+# %1 -  "HEAT"/"HEAT_ENV"             
+    INVALID_YAML: {
+        code: 400,
+        message: "Error: Uploaded YAML file for %1 artifact is invalid.",
+        messageId: "SVC4534"
+    }
+
+#---------SVC4535------------------------------ 
+# %1 -  "HEAT"             
+    INVALID_DEPLOYMENT_ARTIFACT_HEAT: {
+        code: 400,
+        message: "Error: Invalid %1 artifact.",
+        messageId: "SVC4535"
+    }
+#---------SVC4536------------------------------ 
+# %1 - "Resource"/"Service"
+# %2 -  resource/service name 
+# %3 -  "HEAT"/"HEAT_ENV"/"MURANO_PKG" 
+# %4 -  "HEAT"/"HEAT_ENV"/"MURANO_PKG
+    DEPLOYMENT_ARTIFACT_OF_TYPE_ALREADY_EXISTS: {
+        code: 400,
+        message: "Error: %1 '%2' already has a deployment artifact of %3 type .Please delete or update an existing %4 artifact.",
+        messageId: "SVC4536"
+    }
+
+#---------SVC4537------------------------------ 
+    MISSING_HEAT: {
+        code: 400,
+        message: "Error: Missing HEAT artifact. HEAT_ENV artifact cannot be uploaded without corresponding HEAT template.",
+        messageId: "SVC4537"
+    }
+#---------SVC4538------------------------------ 
+    MISMATCH_HEAT_VS_HEAT_ENV: {
+        code: 400,
+        message: "Error: Invalid artifact content. Parameter's set in HEAT_ENV '%1' artifact doesn't match the parameters in HEAT '%2' artifact.",
+        messageId: "SVC4538"
+    }
+#---------SVC4539------------------------------ 
+    INVALID_RESOURCE_PAYLOAD: {
+        code: 400,
+        message: "Error: Invalid resource payload.",
+        messageId: "SVC4539"
+    }
+#---------SVC4540------------------------------ 
+    INVALID_TOSCA_FILE_EXTENSION: {
+        code: 400,
+        message: "Error: Invalid file extension for TOSCA template.",
+        messageId: "SVC4540"
+    }
+#---------SVC4541------------------------------ 
+    INVALID_YAML_FILE: {
+        code: 400,
+        message: "Error: Invalid YAML file.",
+        messageId: "SVC4541"
+    }
+#---------SVC4542------------------------------ 
+    INVALID_TOSCA_TEMPLATE: {
+        code: 400,
+        message: "Error: Invalid TOSCA template.",
+        messageId: "SVC4542"
+    }
+#---------SVC4543------------------------------ 
+    NOT_RESOURCE_TOSCA_TEMPLATE: {
+        code: 400,
+        message: "Error: Imported Service TOSCA template.",
+        messageId: "SVC4543"
+    }
+#---------SVC4544------------------------------ 
+    NOT_SINGLE_RESOURCE: {
+        code: 400,
+        message: "Error: Imported TOSCA template should contain one resource definition.",
+        messageId: "SVC4544"
+    }
+#---------SVC4545------------------------------ 
+    INVALID_RESOURCE_NAMESPACE: {
+        code: 400,
+        message: "Error: Invalid resource namespace.",
+        messageId: "SVC4545"
+    }
+#---------SVC4546------------------------------ 
+    RESOURCE_ALREADY_EXISTS: {
+        code: 400,
+        message: "Error: Imported resource already exists in ASDC Catalog.",
+        messageId: "SVC4546"
+    }
+#---------SVC4549------------------------------ 
+    INVALID_RESOURCE_CHECKSUM: {
+        code: 400,
+        message: "Error: Invalid resource checksum.",
+        messageId: "SVC4549"
+    }
+#---------SVC4550------------------------------ 
+    #%1  -  Consumer salt
+    INVALID_LENGTH: {
+        code: 400,
+        message: "Error: Invalid %1 length.",
+        messageId: "SVC4550"
+    }
+    #---------SVC4551------------------------------  
+    #%1  -  ECOMP User name
+    ECOMP_USER_NOT_FOUND: {
+        code: 404,
+        message: "Error: ECOMP User '%1' was not found.",
+        messageId: "SVC4551"
+    }
+#---------SVC4552------------------------------
+    CONSUMER_ALREADY_EXISTS: {
+        code: 409,
+        message: "Error: ECOMP User already exists.",
+        messageId: "SVC4552"
+    }
+#---------SVC4553-----------------------------
+    #%1  -  Consumer name / Consumer password/ Consumer salt 
+    INVALID_CONTENT_PARAM: {
+        code: 400,
+        message: "Error: %1 is invalid.",
+        messageId: "SVC4553"
+    }
+    #---------SVC4554------------------------------ 
+# %1 - "Resource"/"Service"
+    COMPONENT_ARTIFACT_NOT_FOUND: {
+        code: 404,
+        message: "Error: Requested artifact doesn't belong to specified %1.",
+        messageId: "SVC4554"
+    }
+#---------SVC4554------------------------------
+# %1 - "Service name"
+    SERVICE_DEPLOYMENT_ARTIFACT_NOT_FOUND: {
+        code: 403,
+        message: "Error: Requested '%1' service is not ready for certification. Service has to have at least one deployment artifact.",
+        messageId: "SVC4554"
+    }
+#---------SVC4555------------------------------ 
+#%1 - "Resource"/"Service"/"Product"
+#%2 - "category"
+    COMPONENT_ELEMENT_INVALID_NAME_LENGTH: {
+        code: 400,
+        message: "Error: Invalid %1 %2 name length.",
+        messageId: "SVC4555"
+    }
+#---------SVC4556------------------------------ 
+#%1 - "Resource"/"Service"/"Product"
+#%2 - "category"
+    COMPONENT_ELEMENT_INVALID_NAME_FORMAT: {
+        code: 400,
+        message: "Error: Invalid %1 %2 name format.",
+        messageId: "SVC4556"
+    }
+#---------SVC4557------------------------------ 
+#%1 - "Resource"/"Service"/"Product"
+#%2 - "category name"
+    COMPONENT_CATEGORY_ALREADY_EXISTS: {
+        code: 409,
+        message: "Error: %1 category name '%2' already exists.",
+        messageId: "SVC4557"
+    }
+#---------SVC4558------------------------------
+# %1 - "service"/"VF"
+# %2 - "Resource name"
+    VALIDATED_RESOURCE_NOT_FOUND: {
+        code: 403,
+        message: "Error: Submit for Testing is not permitted as your '%1' includes non-validated '%2' resource.",
+        messageId: "SVC4558"
+    }
+#---------SVC4559------------------------------
+# %1 - "service"/"VF"
+# %2 - "Resource name"
+    FOUND_ALREADY_VALIDATED_RESOURCE: {
+        code: 403,
+        message: "Error: Submit for Testing is not permitted as your '%1' includes non-validated '%2' resource. Please use already available validated resource version.",
+        messageId: "SVC4559"
+    }
+#---------SVC4560------------------------------
+# %1 - "service"/"VF"
+# %2 - "Resource name"
+    FOUND_LIST_VALIDATED_RESOURCES: {
+        code: 403,
+        message: "Error: Submit for Testing is not permitted as your '%1' includes non-validated '%2' resource. Please use one of available validated resource versions.",
+        messageId: "SVC4560"
+    }  
+#---------SVC4561------------------------------
+# %1 - "resource"/"product"
+# %2 - "category"
+# %3 - "category name"
+    COMPONENT_CATEGORY_NOT_FOUND: {
+        code: 404,
+        message: "Error: Requested %1 %2 '%3' was not found.",
+        messageId: "SVC4561"
+    }
+#---------SVC4562------------------------------
+# %1 - "Resource"/"Product"
+# %2 - "sub-category name"
+# %3 - "category name"
+    COMPONENT_SUB_CATEGORY_EXISTS_FOR_CATEGORY: {
+        code: 409,
+        message: "Error: %1 sub-category '%2' already exists under '%3' category.",
+        messageId: "SVC4562"
+    }
+#---------SVC4563------------------------------
+# %1 - "Product"
+# %2 - "grouping name"
+# %3 - "sub-category name"
+    COMPONENT_GROUPING_EXISTS_FOR_SUB_CATEGORY: {
+        code: 409,
+        message: "Error: %1 grouping '%2' already exists under '%3' sub-category.",
+        messageId: "SVC4563"
+    }
+#---------SVC4564------------------------------ 
+# %1 - product name
+    PRODUCT_NOT_FOUND: {
+        code: 404,
+        message: "Error: Requested '%1' product was not found.",
+        messageId: "SVC4564"
+    }
+#---------SVC4565------------------------------ 
+# %1 - "HEAT"   
+# %2  - parameter type ("string" , "boolean" , "number") 
+# %3 -  parameter name
+    INVALID_HEAT_PARAMETER_VALUE: {
+        code: 400,
+        message: "Error: Invalid %1 artifact. Invalid %2 value set for '%3' parameter.",
+        messageId: "SVC4565"
+    }
+#---------SVC4566------------------------------ 
+# %1 - "HEAT"   
+# %2  - parameter type ("string" , "boolean" , "number") 
+    INVALID_HEAT_PARAMETER_TYPE: {
+        code: 400,
+        message: "Error: Invalid %1 artifact. Unsupported '%2' parameter type.",
+        messageId: "SVC4566"
+    }
+#---------SVC4567------------------------------ 
+# %1 -  "YANG_XML"             
+    INVALID_XML: {
+        code: 400,
+        message: "Error: Uploaded XML file for %1 artifact is invalid.",
+        messageId: "SVC4567"
+    }
+#---------SVC4567------------------------------ 
+# %1 - "User Name and UserId"   
+# %2  -"checked-out"/"in-certification"
+    CANNOT_DELETE_USER_WITH_ACTIVE_ELEMENTS: {
+        code: 409,
+        message: "Error: User cannot be deleted. User '%1' has %2 projects.",
+        messageId: "SVC4567"
+    }
+#---------SVC4568------------------------------ 
+# %1 - "User Name and UserId"   
+# %2  -"checked-out"/"in-certification"
+    CANNOT_UPDATE_USER_WITH_ACTIVE_ELEMENTS: {
+        code: 409,
+        message: "Error: Role cannot be changed. User '%1' has %2 projects.",
+        messageId: "SVC4568"
+    }
+#---------SVC4570------------------------------ 
+    UPDATE_USER_ADMIN_CONFLICT: {
+        code: 409,
+        message: "Error: An administrator is not allowed to change his/her role.",
+        messageId: "SVC4570"
+    }
+#---------SVC4571------------------------------ 
+    SERVICE_CANNOT_CONTAIN_SUBCATEGORY: {
+        code: 400,
+        message: "Error: Sub category cannot be defined for service",
+        messageId: "SVC4571"
+    }
+#---------SVC4572------------------------------ 
+# %1 - "Resource"/"Service"
+    COMPONENT_TOO_MUCH_CATEGORIES: {
+        code: 400,
+        message: "Error: %1 must have only 1 category",
+        messageId: "SVC4572"
+    }
+#---------SVC4574------------------------------ 
+    RESOURCE_TOO_MUCH_SUBCATEGORIES: {
+        code: 400,
+        message: "Error: Resource must have only 1 sub category",
+        messageId: "SVC4574"
+    }
+#---------SVC4575------------------------------ 
+    COMPONENT_MISSING_SUBCATEGORY: {
+        code: 400,
+        message: "Error: Missing sub category",
+        messageId: "SVC4575"
+    }
+ #---------SVC4576------------------------------ 
+# %1 - "component type"
+    UNSUPPORTED_ERROR: {
+        code: 400,
+        message: "Error : Requested component type %1 is unsupported.",
+        messageId: "SVC4576"
+    }
+    #---------SVC4577------------------------------ 
+# %1 - "resource type"
+    RESOURCE_CANNOT_CONTAIN_RESOURCE_INSTANCES: {
+        code: 409,
+        message: "Error : Resource of type %1 cannot contain resource instances.",
+        messageId: "SVC4577"
+    }
+#---------SVC4578------------------------------ 
+# %1 - "Resource"/"Service"
+# %2 -  resource/service name 
+# %3 -  "artifact name" 
+    DEPLOYMENT_ARTIFACT_NAME_ALREADY_EXISTS: {
+        code: 400,
+        message: "Error: %1 '%2' already has a deployment artifact named '%3'.",
+        messageId: "SVC4578"
+    }
+#---------SVC4579------------------------------ 
+# %1 - "Category"/"Sub-Category"/"Group"
+# %2 -  category/sub-category/grouping name.
+    INVALID_GROUP_ASSOCIATION: {
+        code: 400,
+        message: "Error: Invalid group association. %1 '%2' was not found.",
+        messageId: "SVC4579"
+    }
+#---------SVC4580------------------------------ 
+    EMPTY_PRODUCT_CONTACTS_LIST: {
+        code: 400,
+        message: "Error: Invalid content. At least one Product Contact has to be specified.",
+        messageId: "SVC4580"
+    }
+#---------SVC4581------------------------------ 
+# %1 - UserId
+    INVALID_PRODUCT_CONTACT: {
+        code: 400,
+        message: "Error: Invalid content. User '%1' cannot be set as Product Contact.",
+        messageId: "SVC4581"
+    }
+#---------SVC4582------------------------------ 
+# %1 - Product
+# %2 - "abbreviated"/"full"
+    MISSING_ONE_OF_COMPONENT_NAMES: {
+        code: 400,
+        message: "Error: Invalid content. Missing %1 %2 name.",
+        messageId: "SVC4582"
+    }    
+#---------SVC4583------------------------------
+# %1 - "Icon"
+# %2 - "resource"/"service"/"product"
+    COMPONENT_PARAMETER_CANNOT_BE_CHANGED: {
+        code: 400,
+        message: "Error: %1 cannot be changed once the %2 is certified.",
+        messageId: "SVC4583"
+    }
+#---------SVC4584------------------------------
+# %1  - service/VF name 
+# %2 - "service" /"VF"
+# %3 -  resource instance origin type
+# %4 -  resource instance name 
+# %5 -  requirement/capability
+# %6 -  requirement/capability name
+# %7 -  "fulfilled" (for req)/"consumed (for cap)"
+    REQ_CAP_NOT_SATISFIED_BEFORE_CERTIFICATION: {
+        code: 403,
+        message: "Error:  Requested '%1' %2 is not ready for certification.  %3 '%4' has to have %5 '%6' %7.",
+        messageId: "SVC4584"
+    }
+#---------SVC4585------------------------------ 
+    INVALID_OCCURRENCES: {
+        code: 400,
+        message: "Error: Invalid occurrences format.",
+        messageId: "SVC4585"
+    }
+#---------SVC4586------------------------------ 
+#---------SVC4586------------------------------ 
+    INVALID_SERVICE_API_URL: {
+        code: 400,
+        message: 'Error: Invalid Service API URL. Please check whether your URL has a valid domain extension and does not contain the following characters - #?&@%+;,=$<>~^`\[]{}|"*!',
+        messageId: "SVC4586"
+    }
+#---------SVC4587------------------------------ 
+# %1  - Data type name 
+    DATA_TYPE_ALREADY_EXIST: {
+        code: 409,
+        message: 'Error: Data type %1 already exists.',
+        messageId: "SVC4587"
+    }
+#---------SVC4588------------------------------ 
+# %1  - Data type name 
+    DATA_TYPE_NOR_PROPERTIES_NEITHER_DERIVED_FROM: {
+        code: 400,
+        message: 'Error: Invalid Data type %1. Data type must have either a valid derived from declaration or at least one valid property',
+        messageId: "SVC4588"
+    }
+#---------SVC4589------------------------------ 
+# %1  - Data type name 
+    DATA_TYPE_PROPERTIES_CANNOT_BE_EMPTY: {
+        code: 400,
+        message: "Error: Invalid Data type %1. 'properties' parameter cannot be empty if provided.",
+        messageId: "SVC4589"
+    }
+#---------SVC4590------------------------------ 
+# %1  - Property type name 
+# %2  - Property name
+    INVALID_PROPERTY_TYPE: {
+        code: 400,
+        message: "Error: Invalid Property type %1 in property %2.",
+        messageId: "SVC4590"
+    }
+#---------SVC4591------------------------------ 
+# %1  - Property inner type
+# %2  - Property name 
+    INVALID_PROPERTY_INNER_TYPE: {
+        code: 400,
+        message: "Error: Invalid property inner type %1, in property %2",
+        messageId: "SVC4591"
+    }
+#---------SVC4592------------------------------ 
+# %1  - component instance name
+# %2  - "resource instance"/"service instance"
+    COMPONENT_INSTANCE_NOT_FOUND: {
+        code: 404,
+        message: "Error: Requested '%1' %2 was not found.",
+        messageId: "SVC4592"
+    }
+#---------SVC4593------------------------------ 
+# %1 - component instance name
+# %2 - "resource instance"/"service instance"
+# %3 - "resource/"service"/"product"
+# %4 - container name 
+    COMPONENT_INSTANCE_NOT_FOUND_ON_CONTAINER: {
+        code: 404,
+        message: "Error: Requested '%1' %2 was not found on the %3 '%4'.",
+        messageId: "SVC4593"
+    }
+#---------SVC4594------------------------------
+#%1 - requirement / capability
+#%2 - requirement name
+    IMPORT_DUPLICATE_REQ_CAP_NAME: {
+        code: 400,
+        message: "Error: Imported TOSCA template contains more than one %1 named '%2'.",
+        messageId: "SVC4594"
+    }
+#---------SVC4595------------------------------
+#%1 - requirement / capability
+#%2 - requirement name
+#%3 - parent containing the requirement 
+    IMPORT_REQ_CAP_NAME_EXISTS_IN_DERIVED: {
+        code: 400,
+        message: "Error: Imported TOSCA template contains %1 '%2' that is already defined by derived template %3.",
+        messageId: "SVC4595"
+    }
+#---------SVC4596------------------------------ 
+# %1  - Data type name
+    DATA_TYPE_DERIVED_IS_MISSING: {
+        code: 400,
+        message: "Error: Invalid Content. The ancestor data type %1 cannot be found in the system.",
+        messageId: "SVC4596"
+    }
+#---------SVC4597------------------------------ 
+# %1  - Data type name
+# %2  - Property names
+    DATA_TYPE_PROPERTY_ALREADY_DEFINED_IN_ANCESTOR: {
+        code: 400,
+        message: "Error: Invalid Content. The data type %1 contains properties named %2 which are already defined in one of its ancestors.",
+        messageId: "SVC4597"
+    }
+#---------SVC4598------------------------------ 
+# %1  - Data type name
+    DATA_TYPE_DUPLICATE_PROPERTY: {
+        code: 400,
+        message: "Error: Invalid Content. The data type %1 contains duplicate property.",
+        messageId: "SVC4598"
+    }
+#---------SVC4599------------------------------ 
+# %1  - Data type name
+# %2  - Property names
+    DATA_TYPE_PROEPRTY_CANNOT_HAVE_SAME_TYPE_OF_DATA_TYPE: {
+        code: 400,
+        message: "Error: Invalid Content. The data type %1 contains properties %2 which their type is this data type.",
+        messageId: "SVC4599"
+    }
+#---------SVC4600------------------------------ 
+# %1  - Data type name
+    DATA_TYPE_CANNOT_HAVE_PROPERTIES: {
+        code: 400,
+        message: "Error: Invalid Content. The data type %1 cannot have properties since it is of type scalar",
+        messageId: "SVC4600"
+    }
+#---------SVC4601------------------------------ 
+    NOT_TOPOLOGY_TOSCA_TEMPLATE: {
+        code: 400,
+        message: "Error: TOSCA yaml file %1 cannot be modeled to VF as it does not contain 'topology_template.",
+        messageId: "SVC4601"
+    }
+#---------SVC4602--------------------------------
+# %1 - yaml file name
+# %2 - node_template label
+# %3 - node_template type
+    INVALID_NODE_TEMPLATE: {
+        code: 400,
+        message: "Error: TOSCA yaml file '%1' contains node_template '%2' of type '%3' that does not represent existing VFC/CP/VL",
+        messageId: "SVC4602"
+    }
+#---------SVC4603------------------------------  
+# %1 - component type
+# %2 - component name
+# %3 - state
+    ILLEGAL_COMPONENT_STATE: {
+        code: 403,
+        message: "Error: Component instance of %1 can not be created because the component '%2' is in an illegal state %3.",
+        messageId: "SVC4603"
+    }
+#---------SVC4604------------------------------  
+# %1 - csar file name
+    CSAR_INVALID: {
+        code: 400,
+        message: "Error: TOSCA CSAR '%1' is invalid. 'TOSCA-Metadata/Tosca.meta' file must be provided.",
+        messageId: "SVC4604"
+    }
+#---------SVC4605------------------------------  
+# %1 - csar file name
+    CSAR_INVALID_FORMAT: {
+        code: 400,
+        message: "Error: TOSCA CSAR '%1' is invalid. Invalid 'TOSCA-Metadata/Tosca.meta' file format.",
+        messageId: "SVC4605"
+    }
+#---------SVC4606------------------------------  
+# %1 - property name
+# %2 - property type
+# %3 - property innerType
+# %4 - default value is
+    INVALID_COMPLEX_DEFAULT_VALUE: {
+        code: 400,
+        message: "Error: Invalid default value of property %1. Data type is %2 with inner type %3 and default value found is %4.",
+        messageId: "SVC4606"
+    }
+#---------SVC4607------------------------------  
+# %1 - csar file name
+    CSAR_NOT_FOUND: {
+        code: 400,
+        message: "Error: TOSCA CSAR '%1' is not found.",
+        messageId: "SVC4607"
+    }
+#---------SVC4608------------------------------  
+# %1 - artifact name
+# %2 - component type
+# %3 - actual component type
+    MISMATCH_BETWEEN_ARTIFACT_TYPE_AND_COMPONENT_TYPE: {
+        code: 400,
+        message: "Error: Artifact %1 is only compatible with component of type %2, but component type is %3.",
+        messageId: "SVC4608"
+    }
+
+#---------SVC4609------------------------------ 
+# %1 -  "INVALID_JSON"             
+    INVALID_JSON: {
+        code: 400,
+        message: "Error: Uploaded JSON file for %1 artifact is invalid.",
+        messageId: "SVC4609"
+    }
+#---------SVC4610------------------------------  
+# %1 - csar file name
+# %2 - missing file name
+    YAML_NOT_FOUND_IN_CSAR: {
+        code: 400,
+        message: "Error - TOSCA CSAR %1 is invalid. TOSCA-Metadata/Tosca.meta refers to file %2 that is not provided.",
+        messageId: "SVC4610"
+    }
+#---------SVC4611------------------------------  
+# %1 - group name
+    GROUP_MEMBER_EMPTY: {
+        code: 400,
+        message: "Error: Invalid Content. Group %1 member list was provided but does not have values",
+        messageId: "SVC4611"
+    }
+#---------SVC4612------------------------------ 
+# %1  - group name 
+    GROUP_TYPE_ALREADY_EXIST: {
+        code: 409,
+        message: 'Error: Group type %1 already exists.',
+        messageId: "SVC4612"
+    }
+#---------SVC4613------------------------------  
+# %1 - group name
+# %2 - VF name(component name)
+# %3 - actual component type [VF]
+    GROUP_ALREADY_EXIST: {
+        code: 409,
+        message: "Error: Group with name '%1' already exists in %2 %3.",
+        messageId: "SVC4613"
+    }   
+#---------SVC4614------------------------------  
+# %1 - group type
+    GROUP_TYPE_IS_INVALID: {
+        code: 400,
+        message: "Error: Invalid content. Group type %1 does not exist",
+        messageId: "SVC4614"
+    }
+#---------SVC4615------------------------------  
+# %1 - group name
+    GROUP_MISSING_GROUP_TYPE: {
+        code: 400,
+        message: "Error: Invalid Content. Missing Group Type for group '%1'",
+        messageId: "SVC4615"
+    }
+#---------SVC4616------------------------------
+# %1 - member name
+# %2 - group name
+# %3 - VF name
+# %4 - component type [VF ]
+    GROUP_INVALID_COMPONENT_INSTANCE: {
+        code: 400,
+        message: "Error: Member '%1' listed in group '%2' is not part of '%3' %4.",
+        messageId: "SVC4616"
+    }                 
+#---------SVC4617------------------------------
+# %1 - member name
+# %2 - group name
+# %3 - group type
+    GROUP_INVALID_TOSCA_NAME_OF_COMPONENT_INSTANCE: {
+        code: 400,
+        message: "Error: member %1 listed in group %2 is not part of allowed members of group type %3.",
+        messageId: "SVC4617"
+    }
+#---------SVC4618------------------------------ 
+# %1 - missing file name
+# %2 - csar file name
+    ARTIFACT_NOT_FOUND_IN_CSAR: {
+        code: 400,
+        message: "Error: artifact %1 is defined in CSAR %2 manifest but is not provided",
+        messageId: "SVC4618"
+    }
+#---------SVC4619------------------------------ 
+# %1 - artifact name
+# %2 - artifact type
+# %3 - existing artifact type
+    ARTIFACT_ALRADY_EXIST_IN_DIFFERENT_TYPE_IN_CSAR: {
+        code: 400,
+        message: "Error: artifact %1 in type %2 already exists in type %3.",
+        messageId: "SVC4619"
+    }
+#---------SVC4620------------------------------ 
+    FAILED_RETRIVE_ARTIFACTS_TYPES: {
+        code: 400,
+        message: "Error: Failed to retrieve list of suported artifact types.",
+        messageId: "SVC4620"
+    }
+#---------SVC4621------------------------------ 
+# %1 - artifact name
+# %2 - master 
+    ARTIFACT_ALRADY_EXIST_IN_MASTER_IN_CSAR: {
+        code: 400,
+        message: "Error: artifact %1 already exists in master %2 .",
+        messageId: "SVC4621"
+    }
+#---------SVC4622------------------------------ 
+# %1 - artifact name
+# %2 - artifact type 
+# %3 - master name
+# %4 - master type
+    ARTIFACT_NOT_VALID_IN_MASTER: {
+        code: 400,
+        message: "Error: artifact %1 in type %2 can not be exists under master %3 in type %4.",
+        messageId: "SVC4622"
+    }
+#---------SVC4623------------------------------ 
+# %1 - artifact name
+# %2 - artifact type 
+# %3 - env name
+# %4 - existing env
+    ARTIFACT_NOT_VALID_ENV: {
+        code: 400,
+        message: "Error: Artifact %1 in type %2 with env %3 already exists with another env %4",
+        messageId: "SVC4623"
+    }
+#---------SVC4624------------------------------  
+# %1 - groups names
+# %2 - VF name
+# %3 - component type [VF ]
+    GROUP_IS_MISSING: {
+        code: 400,
+        message: "Error: Invalid Content. The groups '%1' cannot be found under %2 %3.",
+        messageId: "SVC4624"
+    }
+#---------SVC4625------------------------------  
+# %1 - groups name
+    GROUP_ARTIFACT_ALREADY_ASSOCIATED: {
+        code: 400,
+        message: "Error: Invalid Content. Artifact already associated to group '%1'.",
+        messageId: "SVC4625"
+    }
+#---------SVC4626------------------------------  
+# %1 - groups name
+    GROUP_ARTIFACT_ALREADY_DISSOCIATED: {
+        code: 400,
+        message: "Error: Invalid Content. Artifact already dissociated from group '%1'.",
+        messageId: "SVC4626"
+    }
+#---------SVC4627------------------------------
+# %1 - property name
+# %2 - group name
+# %3 - group type name
+    GROUP_PROPERTY_NOT_FOUND: {
+        code: 400,
+        message: "Error: property %1 listed in group %2 is not exist in group type %3.",
+        messageId: "SVC4627"
+    }
+#---------SVC4628------------------------------  
+# %1 - csarUUID
+# %2 - VF name
+    VSP_ALREADY_EXISTS: {
+        code: 400,
+        message: "Error: The VSP with UUID %1 was already imported for VF %2. Please select another or update the existing VF.",
+        messageId: "SVC4628"
+    }
+#---------SVC4629------------------------------  
+# %1 - VF name
+    MISSING_CSAR_UUID: {
+        code: 400,
+        message: "Error: The Csar UUID or payload name is missing for VF %1.",
+        messageId: "SVC4629"
+    }
+#---------SVC4630------------------------------  
+# %1 - VF name
+# %2 - new csarUUID
+# %3 - old csarUUID
+    RESOURCE_LINKED_TO_DIFFERENT_VSP: {
+        code: 400,
+        message: "Error: Resource %1 cannot be updated using CsarUUID %2 since the resource is linked to a different VSP with csarUUID %3.",
+        messageId: "SVC4630"
+    }
+#---------SVC4631------------------------------ 
+# %1  - policy name 
+    POLICY_TYPE_ALREADY_EXIST: {
+        code: 409,
+        message: "Error: Policy type %1 already exists.",
+        messageId: "SVC4631"
+    }
+#---------SVC4632------------------------------
+# %1 - target name
+# %2 - policy type name
+    TARGETS_NON_VALID: {
+        code: 400,
+        message: "Error: target %1 listed in policy type %2 is not a group or resource.",
+        messageId: "SVC4632"
+    }
+#---------SVC4633------------------------------
+# %1 - policy name
+    TARGETS_EMPTY: {
+        code: 400,
+        message: "Error: Invalid Content. Policy %1 target list was provided but does not have values",
+        messageId: "SVC4633"
+    }
+#---------SVC4634------------------------------
+    DATA_TYPE_CANNOT_BE_EMPTY: {
+        code: 500,
+        message: "Error: Data types are empty. Please import the data types.",
+        messageId: "SVC4634"
+    }
+#---------SVC4635------------------------------
+# %1 - csar uuid
+    RESOURCE_FROM_CSAR_NOT_FOUND: {
+        code: 400,
+        message: "Error: resource from csar uuid %1 not found",
+        messageId: "SVC4635"
+    }
+#---------SVC4636------------------------------
+# %1 - Data type name
+    DATA_TYPE_CANNOT_BE_UPDATED_BAD_REQUEST: {
+        code: 400,
+        message: 'Error: Data type %1 cannot be upgraded. The new data type does not contain old properties or the type of one of the properties has been changed.',
+        messageId: "SVC4636"
+    }
+#-----------SVC4637---------------------------
+#%1 - attribute name
+    ATTRIBUTE_NOT_FOUND: {
+        code: 404,
+        message: "Error: Requested '%1' attribute was not found.",
+        messageId: "SVC4637"
+    }    
+#-----------SVC4638---------------------------
+#%1 - attribute name
+    ATTRIBUTE_ALREADY_EXIST: {
+        code: 409,
+        message: "Error: Attribute with '%1' name already exists.",
+        messageId: "SVC4638"
+    }
+#-----------SVC4639---------------------------
+#%1 - property name
+    PROPERTY_NAME_ALREADY_EXISTS: {
+        code: 409,
+        message: "Error: Property with '%1' name and different type already exists.",
+        messageId: "SVC4639"
+    }
+#-----------SVC4640---------------------------
+#%1 - property name
+    INVALID_PROPERTY: {
+        code: 409,
+        message: "Error: Invalid property received.",
+        messageId: "SVC4640"
+    }
+#---------SVC4641-----------------------------
+#%1 - invalid filter
+#%2 - valid filters
+    INVALID_FILTER_KEY: {
+        code: 400,
+        message: "Error: The filter %1 is not applicable. Please use one of the following filters: %2",
+        messageId: "SVC4641"
+    }
+#---------SVC4642-----------------------------
+#%1 - asset type
+#%2 - filter
+    NO_ASSETS_FOUND: {
+        code: 404,
+        message: "No %1 were found to match criteria %2",
+        messageId: "SVC4642"
+    }
+#---------SVC4643------------------------------
+# %1 - "Resource"/"Product"
+# %2 - "sub-category name"
+# %3 - "category name"
+    COMPONENT_SUB_CATEGORY_NOT_FOUND_FOR_CATEGORY: {
+        code: 404,
+        message: "Error: %1 sub-category '%2' not found under category '%3'.",
+        messageId: "SVC4643"
+    }
+#---------SVC4644------------------------------
+# %1 - Format
+    CORRUPTED_FORMAT: {
+        code: 400,
+        message: "Error: %1 format is corrupted.",
+        messageId: "SVC4644"
+    }
+#---------SVC4645------------------------------
+# %1 - "groupType"
+    INVALID_VF_MODULE_TYPE: {
+        code: 400,
+        message: "Error: Invalid group type '%1' (should be VfModule).",
+        messageId: "SVC4645"
+    }
+#---------SVC4646------------------------------
+# %1 - "groupName"
+    INVALID_VF_MODULE_NAME: {
+        code: 400,
+        message: "Error: Invalid Content. VF Module name '%1' contains invalid characters",
+        messageId: "SVC4646"
+    }
+    
+#---------SVC4647------------------------------
+# %1 - "modifiedName"
+    INVALID_VF_MODULE_NAME_MODIFICATION: {
+        code: 400,
+        message: "Error: Invalid VF Module name modification, can not modify '%1'",
+        messageId: "SVC4647"
+    }
+#---------SVC4648------------------------------
+# %1 - "inputId"
+# %2 - "componentId"
+    INPUT_IS_NOT_CHILD_OF_COMPONENT: {
+        code: 400,
+        message: "Error: Input id: '%1' is not child of component id: '%2'",
+        messageId: "SVC4648"
+    }
+#---------SVC4649------------------------------
+# %1 - "groupName"
+    GROUP_HAS_CYCLIC_DEPENDENCY: {
+        code: 400,
+        message: "Error: The group '%1' has cyclic dependency",
+        messageId: "SVC4649"
+    }
+#---------SVC4650------------------------------
+# %1 - "Component Type"
+# %2 - <ServiceName>
+# %3 - error description
+    AAI_ARTIFACT_GENERATION_FAILED: {
+        code: 500,
+        message: "Error: %1 %2 automatic generation of artifacts failed. Description: %3",
+        messageId: "SVC4650"
+    }
+#---------SVC4651------------------------------
+    PARENT_RESOURCE_DOES_NOT_EXTEND: {
+        code: 400,
+        message: "Error: Once resource is certified, derived_from can be changed only to a sibling",
+        messageId: "SVC4651"
+    }
+#---------SVC4652------------------------------  
+# %1 - resource/service
+    COMPONENT_INVALID_SUBCATEGORY: {
+        code: 400,
+        message: "Error: Invalid Content. Invalid %1 sub category.",
+        messageId: "SVC4652"
+    }
+#---------SVC4653------------------------------  
+# %1 - group instance uniqueId     
+# %2 - service uniqueId
+    GROUP_INSTANCE_NOT_FOUND_ON_COMPONENT_INSTANCE: {
+        code: 404,
+        message: "Error: Requested group instance %1 was not found on component %2.",
+        messageId: "SVC4653"
+    }
+#---------SVC4654------------------------------  
+# %1 - group property name     
+# %2 - valid min limit value
+# %3 - valid max limit value
+    INVALID_GROUP_MIN_MAX_INSTANCES_PROPERTY_VALUE: {
+        code: 400,
+        message: "Error: Value of %1 must be not higher than %2, and not lower than %3.",
+        messageId: "SVC4654"
+    }
+#---------SVC4655------------------------------  
+# %1 - group property name     
+# %2 - valid min limit value
+# %3 - valid max limit value
+    INVALID_GROUP_INITIAL_COUNT_PROPERTY_VALUE: {
+        code: 400,
+        message: "Error: Value of %1 must be between %2 and %3.",
+        messageId: "SVC4655"
+    }
+#---------SVC4656------------------------------  
+# %1 - group property name     
+# %2 - lower/higher
+# %3 - valid max/min value
+    INVALID_GROUP_PROPERTY_VALUE_LOWER_HIGHER: {
+        code: 400,
+        message: "Error: Value of %1 must be %2 or equals to %3.",
+        messageId: "SVC4656"
+    }    
+#---------SVC4657------------------------------
+# %1 - certificationRequest / startTesting
+    RESOURCE_VFCMT_LIFECYCLE_STATE_NOT_VALID: {
+        code: 400,
+        message: "Error - Lifecycle state %1 is not valid for resource of type VFCMT",
+        messageId: "SVC4657"
+    }
+#---------SVC4658------------------------------
+# %1 – asset type [service / resource ]
+# %2 – main asset uuid
+# %3 – not found asset type [service / resource]
+# %4 – not found asset name 
+    ASSET_NOT_FOUND_DURING_CSAR_CREATION: {
+        code: 400,
+        message: "Error: CSAR packaging failed for %1 %2. %3 %4 was not found",
+        messageId: "SVC4658"
+    }
+#---------SVC4659------------------------------
+# %1 – asset type [service / resource ]
+# %2 – main asset uuid
+# %3 – Artifact name 
+# %4 – Artifact uuid
+    ARTIFACT_PAYLOAD_NOT_FOUND_DURING_CSAR_CREATION: {
+        code: 400,
+        message: " Error: CSAR packaging failed for %1 %2. Artifact %3 [%4] was not found",
+        messageId: "SVC4659"
+    }
+#---------SVC4660------------------------------
+# %1 - assetType
+# %2 - matching generic node type name
+    GENERIC_TYPE_NOT_FOUND: {
+        code: 404,
+        message: "Creation of %1 failed. Generic type %2 was not found",
+        messageId: "SVC4660"
+    }
diff --git a/test-apis-ci/src/test/resources/CI/importTypesTest/categoryTypesTest.yml b/test-apis-ci/src/test/resources/CI/importTypesTest/categoryTypesTest.yml
new file mode 100644
index 0000000..120f33d
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/importTypesTest/categoryTypesTest.yml
@@ -0,0 +1,23 @@
+services:
+    Mobility:
+      name: "Mobility1"
+      icons: ['mobility']
+    Network_L1_3:
+      name: "Network L1-31"
+      icons: ['network_l_1-3']
+resources:
+  NetworkLayer23:
+    name: "Network Layer 2-31"
+    subcategories: 
+      Router:
+          name: "Router"
+          icons: ['router']
+      Gateway:
+          name: "Gateway"
+          icons: ['gateway']
+      WAN_Connectors:
+          name: "WAN Connectors"
+          icons: ['connector']
+      LAN_Connectors:
+          name: "LAN Connectors"
+          icons: ['connector']
diff --git a/test-apis-ci/src/test/resources/CI/importTypesTest/categoryTypesTest.zip b/test-apis-ci/src/test/resources/CI/importTypesTest/categoryTypesTest.zip
new file mode 100644
index 0000000..68b7aa9
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/importTypesTest/categoryTypesTest.zip
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/importTypesTest/myHeatStack1/myHeatStack1.yml b/test-apis-ci/src/test/resources/CI/importTypesTest/myHeatStack1/myHeatStack1.yml
new file mode 100644
index 0000000..484ed4d
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/importTypesTest/myHeatStack1/myHeatStack1.yml
@@ -0,0 +1,13 @@
+org.openecomp.groups.MyHeatStack1:
+  derived_from: tosca.groups.Root
+  description: Grouped all heat resources which are in the same heat stack
+  properties:
+    heat_files:
+      type: list
+      description: Heat files which associate to this group/heat stack
+      required: true
+      status: SUPPORTED
+      entry_schema:
+        type: string
+    url_credential:
+      type: tosca.datatypes.Credential
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/importTypesTest/myHeatStack1/myHeatStack1.zip b/test-apis-ci/src/test/resources/CI/importTypesTest/myHeatStack1/myHeatStack1.zip
new file mode 100644
index 0000000..2619853
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/importTypesTest/myHeatStack1/myHeatStack1.zip
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/importTypesTest/myHeatStack2/myHeatStack2.yml b/test-apis-ci/src/test/resources/CI/importTypesTest/myHeatStack2/myHeatStack2.yml
new file mode 100644
index 0000000..94fbb04
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/importTypesTest/myHeatStack2/myHeatStack2.yml
@@ -0,0 +1,14 @@
+org.openecomp.groups.MyHeatStack2:
+  derived_from: tosca.groups.Root
+  description: Grouped all heat resources which are in the same heat stack
+  members: [ tosca.nodes.Compute ]
+  properties:
+    heat_files:
+      type: list
+      description: Heat files which associate to this group/heat stack
+      required: true
+      status: SUPPORTED
+      entry_schema:
+        type: string
+    url_credential:
+      type: tosca.datatypes.Credential
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/importTypesTest/myHeatStack2/myHeatStack2.zip b/test-apis-ci/src/test/resources/CI/importTypesTest/myHeatStack2/myHeatStack2.zip
new file mode 100644
index 0000000..7f43af7
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/importTypesTest/myHeatStack2/myHeatStack2.zip
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/other/mapping.json b/test-apis-ci/src/test/resources/CI/other/mapping.json
new file mode 100644
index 0000000..3310d77
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/other/mapping.json
@@ -0,0 +1,182 @@
+{ "order": 1, "template": "auditingevents-*", "settings": {}, "mappings":
+{ 
+"distributiondownloadevent":
+        { "properties": { 
+          "TIMESTAMP": { "include_in_all": true, "ignore_malformed": false, "format": "yyyy-MM-dd HH:mm:ss.SSS z", "precision_step": 4, "type": "date" }, 
+          "REQUEST_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "SERVICE_INSTANCE_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" },  
+          "ACTION": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "DESC": { "include_in_all": true, "type": "string" }, 
+          "STATUS": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "RESOURCE_URL": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "CONSUMER_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }}, 
+          "_all": { "enabled": true } },
+   "auditinggetuebclusterevent": 
+        { "properties": { 
+          "TIMESTAMP": { "include_in_all": true, "ignore_malformed": false, "format": "yyyy-MM-dd HH:mm:ss.SSS z", "precision_step": 4, "type": "date" }, 
+          "REQUEST_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "SERVICE_INSTANCE_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" },  
+          "ACTION": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "DESC": { "include_in_all": true, "type": "string" }, 
+          "STATUS": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "CONSUMER_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }}, 
+          "_all": { "enabled": true } },
+  "distributionstatusevent": 
+        { "properties": { 
+          "TIMESTAMP": { "include_in_all": true, "ignore_malformed": false, "format": "yyyy-MM-dd HH:mm:ss.SSS z", "precision_step": 4, "type": "date" }, 
+          "REQUEST_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "SERVICE_INSTANCE_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" },  
+          "ACTION": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "DESC": { "include_in_all": true, "type": "string" }, 
+          "STATUS": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "RESOURCE_URL": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "DID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "TOPIC_NAME":{ "include_in_all": true, "index": "not_analyzed", "type": "string" },
+          "CONSUMER_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }}, 
+          "_all": { "enabled": true } },
+"distributionengineevent": 
+        { "properties": { 
+          "TIMESTAMP": { "include_in_all": true, "ignore_malformed": false, "format": "yyyy-MM-dd HH:mm:ss.SSS z", "precision_step": 4, "type": "date" }, 
+          "REQUEST_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "SERVICE_INSTANCE_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" },  
+          "ACTION": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "DESC": { "include_in_all": true, "type": "string" }, 
+          "STATUS": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "TOPIC_NAME":{ "include_in_all": true, "index": "not_analyzed", "type": "string" },
+          "ROLE": { "include_in_all": true, "type": "string" }, 
+          "API_KEY": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+            "D_ENV": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+          "CONSUMER_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }}, 
+          "_all": { "enabled": true } },
+  "useraccessevent": { 
+                "properties": { 
+                  "TIMESTAMP": { "include_in_all": true, "ignore_malformed": false, "format": "yyyy-MM-dd HH:mm:ss.SSS z", "precision_step": 4, "type": "date" }, 
+              "REQUEST_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+              "SERVICE_INSTANCE_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" },  
+              "ACTION": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+              "DESC": { "include_in_all": true, "type": "string" }, 
+              "STATUS": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+                  "USER": { "include_in_all": true, "type": "string" }}, 
+                  "_all": { "enabled": true }}, 
+"resourceadminevent": 
+              { "properties": { 
+         "TIMESTAMP": { "include_in_all": true, "ignore_malformed": false, "format": "yyyy-MM-dd HH:mm:ss.SSS z", "precision_step": 4, "type": "date" },
+         "REQUEST_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+        "SERVICE_INSTANCE_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" },  
+          "ACTION": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "DESC": { "include_in_all": true, "type": "string" }, 
+          "STATUS": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+        "CURR_VERSION": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+        "CURR_STATE": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+        "DID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+        "MODIFIER": { "include_in_all": true, "type": "string" }, 
+        "PREV_VERSION": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+        "PREV_STATE": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+        "RESOURCE_NAME": { "include_in_all": true, "type": "string" }, 
+        "RESOURCE_TYPE": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+        "DPREV_STATUS": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+        "DCURR_STATUS": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+        "TOSCA_NODE_TYPE": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+        "COMMENT": { "include_in_all": true, "type": "string" }, 
+        "ARTIFACT_DATA": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+        "PREV_ARTIFACT_UUID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+        "CURR_ARTIFACT_UUID": { "include_in_all": true, "index": "not_analyzed", "type": "string" } }, 
+        "_all": { "enabled": true }} , 
+"useradminevent": 
+        { "properties": { 
+           "TIMESTAMP": { "include_in_all": true, "ignore_malformed": false, "format": "yyyy-MM-dd HH:mm:ss.SSS z", "precision_step": 4, "type": "date" }, 
+          "REQUEST_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "SERVICE_INSTANCE_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" },  
+           "ACTION": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+           "DESC": { "include_in_all": true, "type": "string" }, 
+           "STATUS": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "USER_AFTER": { "include_in_all": true, "type": "string" }, 
+          "USER_BEFORE": { "include_in_all": true, "type": "string" }, 
+          "MODIFIER": { "include_in_all": true, "type": "string" }},
+          "_all": { "enabled": true } },
+"distributionnotificationevent":
+                 {"properties":{
+                   "TIMESTAMP": { "include_in_all": true, "ignore_malformed": false, "format": "yyyy-MM-dd HH:mm:ss.SSS z", "precision_step": 4, "type": "date" }, 
+                  "REQUEST_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+                  "SERVICE_INSTANCE_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+                  "ACTION": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+                  "DESC": { "include_in_all": true, "type": "string" }, 
+                  "STATUS": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+                  "CURR_STATE": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+                  "CURR_VERSION": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+                  "DID": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+                  "MODIFIER": { "include_in_all": true, "type": "string" },
+                  "RESOURCE_NAME": { "include_in_all": true, "type": "string" }, 
+                  "RESOURCE_TYPE": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+                  "TOPIC_NAME":{ "include_in_all": true, "index": "not_analyzed", "type": "string" }}, 
+                   "_all": { "enabled": true } },
+ "categoryevent":          
+          {            "properties":{
+          "ACTION": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+          "DESC": { "include_in_all": true, "type": "string" }, 
+          "MODIFIER": { "include_in_all": true, "type": "string" }, 
+          "REQUEST_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "CATEGORY_NAME": { "include_in_all": true, "type": "string" }, 
+          "SUB_CATEGORY_NAME": { "include_in_all": true, "type": "string" }, 
+          "GROUPING_NAME": { "include_in_all": true, "type": "string" }, 
+          "RESOURCE_TYPE": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+          "SERVICE_INSTANCE_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" },  
+          "STATUS": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "TIMESTAMP": { "include_in_all": true, "ignore_malformed": false, "format": "yyyy-MM-dd HH:mm:ss.SSS z", "precision_step": 4, "type": "date" }}, 
+             "_all": { "enabled": true } },
+ "authevent": { 
+        "properties": { 
+          "TIMESTAMP": { "include_in_all": true, "ignore_malformed": false, "format": "yyyy-MM-dd HH:mm:ss.SSS z", "precision_step": 4, "type": "date" }, 
+          "DESC": { "include_in_all": true, "type": "string" }, 
+          "STATUS": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "URL": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "ACTION": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "USER": { "include_in_all": true, "type": "string" }, 
+          "AUTH_STATUS": { "include_in_all": true, "index": "not_analyzed","type": "string" } , 
+          "REALM": { "include_in_all": true, "index": "not_analyzed","type": "string" }} ,             
+          "_all": { "enabled": true }}, 
+ "consumerevent":          
+          {            "properties":{
+          "ACTION": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+          "MODIFIER": { "include_in_all": true, "type": "string" }, 
+          "STATUS": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "DESC": { "include_in_all": true, "type": "string" }, 
+          "REQUEST_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "ECOMP_USER": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+          "TIMESTAMP": { "include_in_all": true, "ignore_malformed": false, "format": "yyyy-MM-dd HH:mm:ss.SSS z", "precision_step": 4, "type": "date" }}, 
+             "_all": { "enabled": true } },
+  "getuserslistevent":          
+          {            "properties":{
+          "ACTION": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+          "MODIFIER": { "include_in_all": true, "type": "string" }, 
+          "STATUS": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "DESC": { "include_in_all": true, "type": "string" }, 
+          "REQUEST_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "DETAILS": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+          "TIMESTAMP": { "include_in_all": true, "ignore_malformed": false, "format": "yyyy-MM-dd HH:mm:ss.SSS z", "precision_step": 4, "type": "date" }}, 
+             "_all": { "enabled": true } },    
+ "getcategoryhierarchyevent":
+          {            "properties":{
+          "ACTION": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+          "MODIFIER": { "include_in_all": true, "type": "string" }, 
+          "STATUS": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "DESC": { "include_in_all": true, "type": "string" }, 
+          "REQUEST_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+          "DETAILS": { "include_in_all": true, "index": "not_analyzed", "type": "string" },
+          "TIMESTAMP": { "include_in_all": true, "ignore_malformed": false, "format": "yyyy-MM-dd HH:mm:ss.SSS z", "precision_step": 4, "type": "date" }}, 
+             "_all": { "enabled": true } },
+ "distributiondeployevent": 
+          {        "properties": {          
+            "ACTION": { "include_in_all": true, "index": "not_analyzed", "type": "string" },  
+            "CURR_VERSION": { "include_in_all": true, "index": "not_analyzed", "type": "string" },    
+            "DESC": { "include_in_all": true, "type": "string" },         
+            "DID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+            "MODIFIER": { "include_in_all": true, "type": "string" },         
+            "REQUEST_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, 
+            "RESOURCE_NAME": { "include_in_all": true, "type": "string" },         
+            "RESOURCE_TYPE": { "include_in_all": true, "index": "not_analyzed", "type": "string" },  
+            "SERVICE_INSTANCE_ID": { "include_in_all": true, "index": "not_analyzed", "type": "string" },  
+            "STATUS": { "include_in_all": true, "index": "not_analyzed", "type": "string" },    
+            "TIMESTAMP": { "include_in_all": true, "ignore_malformed": false, "format": "yyyy-MM-dd HH:mm:ss.SSS z", "precision_step": 4, "type": "date" }},
+            "_all": { "enabled": true } }}, 
+            "aliases": { "last_3_months": {}}}
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/addYangXmlArtifactToResource.xml b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/addYangXmlArtifactToResource.xml
new file mode 100644
index 0000000..0415385
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/addYangXmlArtifactToResource.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<data>
+  <sports>
+    <person>
+      <name>Lionel Andres Messi</name>
+      <birthday>1987-06-24T00:00:00-00:00</birthday>
+    </person>
+    <person>
+      <name>Cristiano Ronaldo</name>
+      <birthday>1985-02-05T00:00:00-00:00</birthday>
+    </person>
+    <team>
+      <name>FC Barcelona</name>
+      <player>
+        <name>Lionel Andres Messi</name>
+        <season>Champions League 2014-2015</season>
+        <number>10</number>
+        <scores>43</scores>
+      </player>
+    </team>
+    <team>
+      <name>Real Madrid</name>
+      <player>
+        <name>Cristiano Ronaldo</name>
+        <season>Champions League 2014-2015</season>
+        <number>7</number>
+        <scores>48</scores>
+      </player>
+    </team>
+  </sports>
+
+</data>
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat 0 2.yaml b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat 0 2.yaml
new file mode 100644
index 0000000..6835485
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat 0 2.yaml
@@ -0,0 +1,787 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+#  availability_zone_smp0:
+#    type: string
+#    default: nova
+#  availability_zone_smp1:
+#    type: string
+#    default: nova
+#  availability_zone_fe0:
+#    type: string
+#    default: nova
+#  availability_zone_fe1:
+#    type: string
+#    default: nova
+#  availability_zone_db0:
+#    type: string
+#    default: nova
+#  availability_zone_db1:
+#    type: string
+#    default: nova
+#  availability_zone_be0:
+#    type: string
+#    default: nova
+#  availability_zone_be1:
+#    type: string
+#    default: nova
+#  availability_zone_be2:
+#    type: string
+#    default: nova
+#  availability_zone_be3:
+#    type: string
+#    default: nova
+#  availability_zone_be4:
+#    type: string
+#    default: nova
+
+  vnf_name:
+    type: string
+    description: Unique name for this VNF instance
+    default: This_is_the_SCP_name
+  vnf_id:
+    type: string
+    description: Unique ID for this VNF instance
+    default: This_is_ths_SCP_id
+
+  flavor_scp_be_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_scp_fe_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_smp_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_db_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  image_scp_be_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_be
+  image_scp_fe_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_fe    
+  image_smp_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_smp
+  image_db_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_db
+
+  int_vscp_fe_cluster_net_id:
+    type: string
+    description: LAN2 FE Cluster/KA
+  int_vscp_fe_cluster_cidr:
+    type: string
+    description: Private Network2 Address (CIDR notation)
+  int_vscp_cluster_net_id:
+    type: string
+    description: LAN3 Cluster
+  int_vscp_cluster_cidr:
+    type: string
+    description: Private Network3 Address (CIDR notation)
+  int_vscp_db_network_net_id:
+    type: string
+    description: LAN4 DB
+  int_vscp_db_network_cidr:
+    type: string
+    description: Private Network4 Address (CIDR notation)
+  SIGNET_vrf_A1_direct_net_id:
+    type: string
+    description: Network name for SIGTRAN_A
+  SIGNET_vrf_B1_direct_net_id:
+    type: string
+    description: Network name for SIGTRAN_B
+  Cricket_OCS_protected_net_id:
+    type: string
+    description: Network name for CRICKET_OCS
+  OAM_direct_net_id:
+    type: string
+    description: Network name for OAM
+  be0_Cricket_OCS_protected_ips:
+    type: string
+    label: be0 port 5 OAM ip address
+    description: be0 port 5 OAM ip address
+  be1_Cricket_OCS_protected_ips:
+    type: string
+    label: be1 port 5 OAM ip address
+    description: be1 port 5 OAM ip address
+  be2_Cricket_OCS_protected_ips:
+    type: string
+    label: be2 port 5 OAM ip address
+    description: be2 port 5 OAM ip address
+  be3_Cricket_OCS_protected_ips:
+    type: string
+    label: be3 port 5 OAM ip address
+    description: be3 port 5 OAM ip address
+  be4_Cricket_OCS_protected_ips:
+    type: string
+    label: be4 port 5 OAM ip address
+    description: be4 port 5 OAM ip address
+  be0_OAM_direct_ips:
+    type: string
+    label: be0 port 7 OAM ip address
+    description: be0 port 7 OAM ip address
+  be1_OAM_direct_ips:
+    type: string
+    label: be1 port 7 OAM ip address
+    description: be1 port 7 OAM ip address
+  be2_OAM_direct_ips:
+    type: string
+    label: be2 port 7 OAM ip address
+    description: be2 port 7 OAM ip address
+  be3_OAM_direct_ips:
+    type: string
+    label: be3 port 7 OAM ip address
+    description: be3 port 7 OAM ip address
+  be4_OAM_direct_ips:
+    type: string
+    label: be4 port 7 OAM ip address
+    description: be4 port 7 OAM ip address
+  fe0_SIGNET_vrf_A1_direct_ips:
+    type: string
+    label: fe0 port 0 SIGTRAN ip address
+    description: fe0 port 0 SIGTRAN ip address
+  fe0_OAM_direct_ips:
+    type: string
+    label: fe0 port 7 OAM ip address
+    description: fe0 port 7 OAM ip address
+  fe1_SIGNET_vrf_B1_direct_ips:
+    type: string
+    label: fe1 port 1 SIGTRAN ip address
+    description: fe1 port 1 SIGTRAN ip address
+  fe1_OAM_direct_ips:
+    type: string
+    label: fe1 port 7 OAM ip address
+    description: fe1 port 7 OAM ip address
+  smp0_OAM_direct_ips:
+    type: string
+    label: smp0 port 7 OAM ip address
+    description: smp0 port 7 OAM ip address
+  smp1_OAM_direct_ips:
+    type: string
+    label: smp1 port 7 OAM ip address
+    description: smp1 port 7 OAM ip address
+  db0_OAM_direct_ips:
+    type: string
+    label: db0 port 7 OAM ip address
+    description: smp0 port 7 OAM ip address
+  db1_OAM_direct_ips:
+    type: string
+    label: smp1 port 7 OAM ip address
+    description: db1 port 7 OAM ip address
+  vm_scp_be0_name:
+    type: string
+    default: vSCP_BE0
+    description: name of VM
+  vm_scp_be1_name:
+    type: string
+    default: vSCP_BE1
+    description: name of VM    
+  vm_scp_be2_name:
+    type: string
+    default: vSCP_BE2
+    description: name of VM
+  vm_scp_be3_name:
+    type: string
+    default: vSCP_BE3
+    description: name of VM
+  vm_scp_be4_name:
+    type: string
+    default: vSCP_BE4
+    description: name of VM
+  vm_scp_fe0_name:
+    type: string
+    default: vSCP_FE0
+    description: name of VM
+  vm_scp_fe1_name:
+    type: string
+    default: vSCP_FE1
+    description: name of VM
+  vm_smp0_name:
+    type: string
+    default: vSMP0
+    description: name of VM
+  vm_smp1_name:
+    type: string
+    default: vSMP1
+    description: name of VM
+  vm_db0_name:
+    type: string
+    default: vDB0
+    description: name of VM
+  vm_db1_name:
+    type: string
+    default: vDB1
+    description: name of VM
+
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be0_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+  be0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+  server_scp_be1:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be1_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be1 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be1_port_3 }
+      - port: { get_resource: be1_port_4 }
+      - port: { get_resource: be1_port_5 }
+      - port: { get_resource: be1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be1_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be1_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+  be1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+  server_scp_be2:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be2_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be2 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be2_port_3 }
+      - port: { get_resource: be2_port_4 }
+      - port: { get_resource: be2_port_5 }
+      - port: { get_resource: be2_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be2_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be2_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be2_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be2_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+  be2_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+  server_scp_be3:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be3_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be3 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be3_port_3 }
+      - port: { get_resource: be3_port_4 }
+      - port: { get_resource: be3_port_5 }
+      - port: { get_resource: be3_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be3_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be3_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be3_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be3_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+  be3_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+  server_scp_be4:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be4_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be4 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be4_port_3 }
+      - port: { get_resource: be4_port_4 }
+      - port: { get_resource: be4_port_5 }
+      - port: { get_resource: be4_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be4_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be4_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be4_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be4_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+  be4_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+  server_scp_fe0:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe0_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe0 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe0_port_0 }
+      - port: { get_resource: fe0_port_2 }
+      - port: { get_resource: fe0_port_3 }
+      - port: { get_resource: fe0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe0_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe0_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_A1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+  fe0_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+  server_scp_fe1:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe1_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe1 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe1_port_1 }
+      - port: { get_resource: fe1_port_2 }
+      - port: { get_resource: fe1_port_3 }
+      - port: { get_resource: fe1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe1_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe1_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_B1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+  fe1_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+  server_smp0:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp0_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp0 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp0_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+  server_smp1:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp1_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp1 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp1_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+  server_db0:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db0_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db0 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db0_port_4 }
+      - port: { get_resource: db0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db0_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+  server_db1:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db1_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db1 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db1_port_4 }
+      - port: { get_resource: db1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db1_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}]
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat 0 2.zip b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat 0 2.zip
new file mode 100644
index 0000000..c8a2726
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat 0 2.zip
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat_net 0 2.yaml b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat_net 0 2.yaml
new file mode 100644
index 0000000..6835485
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat_net 0 2.yaml
@@ -0,0 +1,787 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+#  availability_zone_smp0:
+#    type: string
+#    default: nova
+#  availability_zone_smp1:
+#    type: string
+#    default: nova
+#  availability_zone_fe0:
+#    type: string
+#    default: nova
+#  availability_zone_fe1:
+#    type: string
+#    default: nova
+#  availability_zone_db0:
+#    type: string
+#    default: nova
+#  availability_zone_db1:
+#    type: string
+#    default: nova
+#  availability_zone_be0:
+#    type: string
+#    default: nova
+#  availability_zone_be1:
+#    type: string
+#    default: nova
+#  availability_zone_be2:
+#    type: string
+#    default: nova
+#  availability_zone_be3:
+#    type: string
+#    default: nova
+#  availability_zone_be4:
+#    type: string
+#    default: nova
+
+  vnf_name:
+    type: string
+    description: Unique name for this VNF instance
+    default: This_is_the_SCP_name
+  vnf_id:
+    type: string
+    description: Unique ID for this VNF instance
+    default: This_is_ths_SCP_id
+
+  flavor_scp_be_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_scp_fe_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_smp_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_db_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  image_scp_be_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_be
+  image_scp_fe_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_fe    
+  image_smp_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_smp
+  image_db_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_db
+
+  int_vscp_fe_cluster_net_id:
+    type: string
+    description: LAN2 FE Cluster/KA
+  int_vscp_fe_cluster_cidr:
+    type: string
+    description: Private Network2 Address (CIDR notation)
+  int_vscp_cluster_net_id:
+    type: string
+    description: LAN3 Cluster
+  int_vscp_cluster_cidr:
+    type: string
+    description: Private Network3 Address (CIDR notation)
+  int_vscp_db_network_net_id:
+    type: string
+    description: LAN4 DB
+  int_vscp_db_network_cidr:
+    type: string
+    description: Private Network4 Address (CIDR notation)
+  SIGNET_vrf_A1_direct_net_id:
+    type: string
+    description: Network name for SIGTRAN_A
+  SIGNET_vrf_B1_direct_net_id:
+    type: string
+    description: Network name for SIGTRAN_B
+  Cricket_OCS_protected_net_id:
+    type: string
+    description: Network name for CRICKET_OCS
+  OAM_direct_net_id:
+    type: string
+    description: Network name for OAM
+  be0_Cricket_OCS_protected_ips:
+    type: string
+    label: be0 port 5 OAM ip address
+    description: be0 port 5 OAM ip address
+  be1_Cricket_OCS_protected_ips:
+    type: string
+    label: be1 port 5 OAM ip address
+    description: be1 port 5 OAM ip address
+  be2_Cricket_OCS_protected_ips:
+    type: string
+    label: be2 port 5 OAM ip address
+    description: be2 port 5 OAM ip address
+  be3_Cricket_OCS_protected_ips:
+    type: string
+    label: be3 port 5 OAM ip address
+    description: be3 port 5 OAM ip address
+  be4_Cricket_OCS_protected_ips:
+    type: string
+    label: be4 port 5 OAM ip address
+    description: be4 port 5 OAM ip address
+  be0_OAM_direct_ips:
+    type: string
+    label: be0 port 7 OAM ip address
+    description: be0 port 7 OAM ip address
+  be1_OAM_direct_ips:
+    type: string
+    label: be1 port 7 OAM ip address
+    description: be1 port 7 OAM ip address
+  be2_OAM_direct_ips:
+    type: string
+    label: be2 port 7 OAM ip address
+    description: be2 port 7 OAM ip address
+  be3_OAM_direct_ips:
+    type: string
+    label: be3 port 7 OAM ip address
+    description: be3 port 7 OAM ip address
+  be4_OAM_direct_ips:
+    type: string
+    label: be4 port 7 OAM ip address
+    description: be4 port 7 OAM ip address
+  fe0_SIGNET_vrf_A1_direct_ips:
+    type: string
+    label: fe0 port 0 SIGTRAN ip address
+    description: fe0 port 0 SIGTRAN ip address
+  fe0_OAM_direct_ips:
+    type: string
+    label: fe0 port 7 OAM ip address
+    description: fe0 port 7 OAM ip address
+  fe1_SIGNET_vrf_B1_direct_ips:
+    type: string
+    label: fe1 port 1 SIGTRAN ip address
+    description: fe1 port 1 SIGTRAN ip address
+  fe1_OAM_direct_ips:
+    type: string
+    label: fe1 port 7 OAM ip address
+    description: fe1 port 7 OAM ip address
+  smp0_OAM_direct_ips:
+    type: string
+    label: smp0 port 7 OAM ip address
+    description: smp0 port 7 OAM ip address
+  smp1_OAM_direct_ips:
+    type: string
+    label: smp1 port 7 OAM ip address
+    description: smp1 port 7 OAM ip address
+  db0_OAM_direct_ips:
+    type: string
+    label: db0 port 7 OAM ip address
+    description: smp0 port 7 OAM ip address
+  db1_OAM_direct_ips:
+    type: string
+    label: smp1 port 7 OAM ip address
+    description: db1 port 7 OAM ip address
+  vm_scp_be0_name:
+    type: string
+    default: vSCP_BE0
+    description: name of VM
+  vm_scp_be1_name:
+    type: string
+    default: vSCP_BE1
+    description: name of VM    
+  vm_scp_be2_name:
+    type: string
+    default: vSCP_BE2
+    description: name of VM
+  vm_scp_be3_name:
+    type: string
+    default: vSCP_BE3
+    description: name of VM
+  vm_scp_be4_name:
+    type: string
+    default: vSCP_BE4
+    description: name of VM
+  vm_scp_fe0_name:
+    type: string
+    default: vSCP_FE0
+    description: name of VM
+  vm_scp_fe1_name:
+    type: string
+    default: vSCP_FE1
+    description: name of VM
+  vm_smp0_name:
+    type: string
+    default: vSMP0
+    description: name of VM
+  vm_smp1_name:
+    type: string
+    default: vSMP1
+    description: name of VM
+  vm_db0_name:
+    type: string
+    default: vDB0
+    description: name of VM
+  vm_db1_name:
+    type: string
+    default: vDB1
+    description: name of VM
+
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be0_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+  be0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+  server_scp_be1:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be1_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be1 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be1_port_3 }
+      - port: { get_resource: be1_port_4 }
+      - port: { get_resource: be1_port_5 }
+      - port: { get_resource: be1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be1_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be1_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+  be1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+  server_scp_be2:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be2_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be2 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be2_port_3 }
+      - port: { get_resource: be2_port_4 }
+      - port: { get_resource: be2_port_5 }
+      - port: { get_resource: be2_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be2_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be2_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be2_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be2_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+  be2_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+  server_scp_be3:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be3_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be3 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be3_port_3 }
+      - port: { get_resource: be3_port_4 }
+      - port: { get_resource: be3_port_5 }
+      - port: { get_resource: be3_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be3_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be3_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be3_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be3_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+  be3_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+  server_scp_be4:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be4_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be4 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be4_port_3 }
+      - port: { get_resource: be4_port_4 }
+      - port: { get_resource: be4_port_5 }
+      - port: { get_resource: be4_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be4_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be4_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be4_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be4_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+  be4_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+  server_scp_fe0:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe0_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe0 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe0_port_0 }
+      - port: { get_resource: fe0_port_2 }
+      - port: { get_resource: fe0_port_3 }
+      - port: { get_resource: fe0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe0_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe0_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_A1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+  fe0_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+  server_scp_fe1:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe1_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe1 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe1_port_1 }
+      - port: { get_resource: fe1_port_2 }
+      - port: { get_resource: fe1_port_3 }
+      - port: { get_resource: fe1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe1_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe1_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_B1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+  fe1_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+  server_smp0:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp0_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp0 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp0_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+  server_smp1:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp1_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp1 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp1_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+  server_db0:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db0_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db0 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db0_port_4 }
+      - port: { get_resource: db0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db0_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+  server_db1:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db1_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db1 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db1_port_4 }
+      - port: { get_resource: db1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db1_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}]
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heatEnvfile.env b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heatEnvfile.env
new file mode 100644
index 0000000..6835485
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heatEnvfile.env
@@ -0,0 +1,787 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+#  availability_zone_smp0:
+#    type: string
+#    default: nova
+#  availability_zone_smp1:
+#    type: string
+#    default: nova
+#  availability_zone_fe0:
+#    type: string
+#    default: nova
+#  availability_zone_fe1:
+#    type: string
+#    default: nova
+#  availability_zone_db0:
+#    type: string
+#    default: nova
+#  availability_zone_db1:
+#    type: string
+#    default: nova
+#  availability_zone_be0:
+#    type: string
+#    default: nova
+#  availability_zone_be1:
+#    type: string
+#    default: nova
+#  availability_zone_be2:
+#    type: string
+#    default: nova
+#  availability_zone_be3:
+#    type: string
+#    default: nova
+#  availability_zone_be4:
+#    type: string
+#    default: nova
+
+  vnf_name:
+    type: string
+    description: Unique name for this VNF instance
+    default: This_is_the_SCP_name
+  vnf_id:
+    type: string
+    description: Unique ID for this VNF instance
+    default: This_is_ths_SCP_id
+
+  flavor_scp_be_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_scp_fe_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_smp_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_db_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  image_scp_be_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_be
+  image_scp_fe_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_fe    
+  image_smp_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_smp
+  image_db_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_db
+
+  int_vscp_fe_cluster_net_id:
+    type: string
+    description: LAN2 FE Cluster/KA
+  int_vscp_fe_cluster_cidr:
+    type: string
+    description: Private Network2 Address (CIDR notation)
+  int_vscp_cluster_net_id:
+    type: string
+    description: LAN3 Cluster
+  int_vscp_cluster_cidr:
+    type: string
+    description: Private Network3 Address (CIDR notation)
+  int_vscp_db_network_net_id:
+    type: string
+    description: LAN4 DB
+  int_vscp_db_network_cidr:
+    type: string
+    description: Private Network4 Address (CIDR notation)
+  SIGNET_vrf_A1_direct_net_id:
+    type: string
+    description: Network name for SIGTRAN_A
+  SIGNET_vrf_B1_direct_net_id:
+    type: string
+    description: Network name for SIGTRAN_B
+  Cricket_OCS_protected_net_id:
+    type: string
+    description: Network name for CRICKET_OCS
+  OAM_direct_net_id:
+    type: string
+    description: Network name for OAM
+  be0_Cricket_OCS_protected_ips:
+    type: string
+    label: be0 port 5 OAM ip address
+    description: be0 port 5 OAM ip address
+  be1_Cricket_OCS_protected_ips:
+    type: string
+    label: be1 port 5 OAM ip address
+    description: be1 port 5 OAM ip address
+  be2_Cricket_OCS_protected_ips:
+    type: string
+    label: be2 port 5 OAM ip address
+    description: be2 port 5 OAM ip address
+  be3_Cricket_OCS_protected_ips:
+    type: string
+    label: be3 port 5 OAM ip address
+    description: be3 port 5 OAM ip address
+  be4_Cricket_OCS_protected_ips:
+    type: string
+    label: be4 port 5 OAM ip address
+    description: be4 port 5 OAM ip address
+  be0_OAM_direct_ips:
+    type: string
+    label: be0 port 7 OAM ip address
+    description: be0 port 7 OAM ip address
+  be1_OAM_direct_ips:
+    type: string
+    label: be1 port 7 OAM ip address
+    description: be1 port 7 OAM ip address
+  be2_OAM_direct_ips:
+    type: string
+    label: be2 port 7 OAM ip address
+    description: be2 port 7 OAM ip address
+  be3_OAM_direct_ips:
+    type: string
+    label: be3 port 7 OAM ip address
+    description: be3 port 7 OAM ip address
+  be4_OAM_direct_ips:
+    type: string
+    label: be4 port 7 OAM ip address
+    description: be4 port 7 OAM ip address
+  fe0_SIGNET_vrf_A1_direct_ips:
+    type: string
+    label: fe0 port 0 SIGTRAN ip address
+    description: fe0 port 0 SIGTRAN ip address
+  fe0_OAM_direct_ips:
+    type: string
+    label: fe0 port 7 OAM ip address
+    description: fe0 port 7 OAM ip address
+  fe1_SIGNET_vrf_B1_direct_ips:
+    type: string
+    label: fe1 port 1 SIGTRAN ip address
+    description: fe1 port 1 SIGTRAN ip address
+  fe1_OAM_direct_ips:
+    type: string
+    label: fe1 port 7 OAM ip address
+    description: fe1 port 7 OAM ip address
+  smp0_OAM_direct_ips:
+    type: string
+    label: smp0 port 7 OAM ip address
+    description: smp0 port 7 OAM ip address
+  smp1_OAM_direct_ips:
+    type: string
+    label: smp1 port 7 OAM ip address
+    description: smp1 port 7 OAM ip address
+  db0_OAM_direct_ips:
+    type: string
+    label: db0 port 7 OAM ip address
+    description: smp0 port 7 OAM ip address
+  db1_OAM_direct_ips:
+    type: string
+    label: smp1 port 7 OAM ip address
+    description: db1 port 7 OAM ip address
+  vm_scp_be0_name:
+    type: string
+    default: vSCP_BE0
+    description: name of VM
+  vm_scp_be1_name:
+    type: string
+    default: vSCP_BE1
+    description: name of VM    
+  vm_scp_be2_name:
+    type: string
+    default: vSCP_BE2
+    description: name of VM
+  vm_scp_be3_name:
+    type: string
+    default: vSCP_BE3
+    description: name of VM
+  vm_scp_be4_name:
+    type: string
+    default: vSCP_BE4
+    description: name of VM
+  vm_scp_fe0_name:
+    type: string
+    default: vSCP_FE0
+    description: name of VM
+  vm_scp_fe1_name:
+    type: string
+    default: vSCP_FE1
+    description: name of VM
+  vm_smp0_name:
+    type: string
+    default: vSMP0
+    description: name of VM
+  vm_smp1_name:
+    type: string
+    default: vSMP1
+    description: name of VM
+  vm_db0_name:
+    type: string
+    default: vDB0
+    description: name of VM
+  vm_db1_name:
+    type: string
+    default: vDB1
+    description: name of VM
+
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be0_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+  be0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+  server_scp_be1:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be1_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be1 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be1_port_3 }
+      - port: { get_resource: be1_port_4 }
+      - port: { get_resource: be1_port_5 }
+      - port: { get_resource: be1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be1_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be1_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+  be1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+  server_scp_be2:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be2_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be2 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be2_port_3 }
+      - port: { get_resource: be2_port_4 }
+      - port: { get_resource: be2_port_5 }
+      - port: { get_resource: be2_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be2_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be2_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be2_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be2_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+  be2_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+  server_scp_be3:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be3_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be3 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be3_port_3 }
+      - port: { get_resource: be3_port_4 }
+      - port: { get_resource: be3_port_5 }
+      - port: { get_resource: be3_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be3_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be3_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be3_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be3_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+  be3_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+  server_scp_be4:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be4_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be4 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be4_port_3 }
+      - port: { get_resource: be4_port_4 }
+      - port: { get_resource: be4_port_5 }
+      - port: { get_resource: be4_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be4_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be4_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be4_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be4_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+  be4_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+  server_scp_fe0:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe0_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe0 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe0_port_0 }
+      - port: { get_resource: fe0_port_2 }
+      - port: { get_resource: fe0_port_3 }
+      - port: { get_resource: fe0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe0_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe0_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_A1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+  fe0_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+  server_scp_fe1:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe1_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe1 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe1_port_1 }
+      - port: { get_resource: fe1_port_2 }
+      - port: { get_resource: fe1_port_3 }
+      - port: { get_resource: fe1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe1_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe1_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_B1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+  fe1_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+  server_smp0:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp0_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp0 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp0_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+  server_smp1:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp1_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp1 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp1_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+  server_db0:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db0_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db0 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db0_port_4 }
+      - port: { get_resource: db0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db0_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+  server_db1:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db1_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db1 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db1_port_4 }
+      - port: { get_resource: db1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db1_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}]
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heatInvalidFormat.yaml b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heatInvalidFormat.yaml
new file mode 100644
index 0000000..b70d5a4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heatInvalidFormat.yaml
@@ -0,0 +1,9 @@
+heat_template_version: 2013-05-23
+
+parameters:
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+ 
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heat_mini.yaml b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heat_mini.yaml
new file mode 100644
index 0000000..a545569
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heat_mini.yaml
@@ -0,0 +1,13 @@
+heat_template_version: 2013-05-23
+
+parameters:
+  vnf_name:
+    type: string
+    description: Unique name for this VNF instance
+    default: This_is_the_SCP_name
+
+resources:
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidJson.json b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidJson.json
new file mode 100644
index 0000000..48a3e89
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidJson.json
@@ -0,0 +1,11 @@
+{
+    "glossary": {
+        "title": "example glossary",
+		"GlossDiv": {
+            "title": "S",
+			"GlossList": {
+                "GlossEntry": {
+                    "ID": "SGML",
+					"SortAs": "SGML",
+					"GlossTerm": "Standard Generalized Markup Language",
+					"Acronym": "SGML",
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidYamlFormat.yaml b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidYamlFormat.yaml
new file mode 100644
index 0000000..5c51039
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidYamlFormat.yaml
@@ -0,0 +1,787 @@
+	heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+#  availability_zone_smp0:
+#    type: string
+#    default: nova
+#  availability_zone_smp1:
+#    type: string
+#    default: nova
+#  availability_zone_fe0:
+#    type: string
+#    default: nova
+#  availability_zone_fe1:
+#    type: string
+#    default: nova
+#  availability_zone_db0:
+#    type: string
+#    default: nova
+#  availability_zone_db1:
+#    type: string
+#    default: nova
+#  availability_zone_be0:
+#    type: string
+#    default: nova
+#  availability_zone_be1:
+#    type: string
+#    default: nova
+#  availability_zone_be2:
+#    type: string
+#    default: nova
+#  availability_zone_be3:
+#    type: string
+#    default: nova
+#  availability_zone_be4:
+#    type: string
+#    default: nova
+
+  vnf_name:
+    type: string
+    description: Unique name for this VNF instance
+    default: This_is_the_SCP_name
+  vnf_id:
+    type: string
+    description: Unique ID for this VNF instance
+    default: This_is_ths_SCP_id
+
+  flavor_scp_be_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_scp_fe_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_smp_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_db_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  image_scp_be_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_be
+  image_scp_fe_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_fe    
+  image_smp_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_smp
+  image_db_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_db
+
+  int_vscp_fe_cluster_net_id:
+    type: string
+    description: LAN2 FE Cluster/KA
+  int_vscp_fe_cluster_cidr:
+    type: string
+    description: Private Network2 Address (CIDR notation)
+  int_vscp_cluster_net_id:
+    type: string
+    description: LAN3 Cluster
+  int_vscp_cluster_cidr:
+    type: string
+    description: Private Network3 Address (CIDR notation)
+  int_vscp_db_network_net_id:
+    type: string
+    description: LAN4 DB
+  int_vscp_db_network_cidr:
+    type: string
+    description: Private Network4 Address (CIDR notation)
+  SIGNET_vrf_A1_direct_net_id:
+    type: string
+    description: Network name for SIGTRAN_A
+  SIGNET_vrf_B1_direct_net_id:
+    type: string
+    description: Network name for SIGTRAN_B
+  Cricket_OCS_protected_net_id:
+    type: string
+    description: Network name for CRICKET_OCS
+  OAM_direct_net_id:
+    type: string
+    description: Network name for OAM
+  be0_Cricket_OCS_protected_ips:
+    type: string
+    label: be0 port 5 OAM ip address
+    description: be0 port 5 OAM ip address
+  be1_Cricket_OCS_protected_ips:
+    type: string
+    label: be1 port 5 OAM ip address
+    description: be1 port 5 OAM ip address
+  be2_Cricket_OCS_protected_ips:
+    type: string
+    label: be2 port 5 OAM ip address
+    description: be2 port 5 OAM ip address
+  be3_Cricket_OCS_protected_ips:
+    type: string
+    label: be3 port 5 OAM ip address
+    description: be3 port 5 OAM ip address
+  be4_Cricket_OCS_protected_ips:
+    type: string
+    label: be4 port 5 OAM ip address
+    description: be4 port 5 OAM ip address
+  be0_OAM_direct_ips:
+    type: string
+    label: be0 port 7 OAM ip address
+    description: be0 port 7 OAM ip address
+  be1_OAM_direct_ips:
+    type: string
+    label: be1 port 7 OAM ip address
+    description: be1 port 7 OAM ip address
+  be2_OAM_direct_ips:
+    type: string
+    label: be2 port 7 OAM ip address
+    description: be2 port 7 OAM ip address
+  be3_OAM_direct_ips:
+    type: string
+    label: be3 port 7 OAM ip address
+    description: be3 port 7 OAM ip address
+  be4_OAM_direct_ips:
+    type: string
+    label: be4 port 7 OAM ip address
+    description: be4 port 7 OAM ip address
+  fe0_SIGNET_vrf_A1_direct_ips:
+    type: string
+    label: fe0 port 0 SIGTRAN ip address
+    description: fe0 port 0 SIGTRAN ip address
+  fe0_OAM_direct_ips:
+    type: string
+    label: fe0 port 7 OAM ip address
+    description: fe0 port 7 OAM ip address
+  fe1_SIGNET_vrf_B1_direct_ips:
+    type: string
+    label: fe1 port 1 SIGTRAN ip address
+    description: fe1 port 1 SIGTRAN ip address
+  fe1_OAM_direct_ips:
+    type: string
+    label: fe1 port 7 OAM ip address
+    description: fe1 port 7 OAM ip address
+  smp0_OAM_direct_ips:
+    type: string
+    label: smp0 port 7 OAM ip address
+    description: smp0 port 7 OAM ip address
+  smp1_OAM_direct_ips:
+    type: string
+    label: smp1 port 7 OAM ip address
+    description: smp1 port 7 OAM ip address
+  db0_OAM_direct_ips:
+    type: string
+    label: db0 port 7 OAM ip address
+    description: smp0 port 7 OAM ip address
+  db1_OAM_direct_ips:
+    type: string
+    label: smp1 port 7 OAM ip address
+    description: db1 port 7 OAM ip address
+  vm_scp_be0_name:
+    type: string
+    default: vSCP_BE0
+    description: name of VM
+  vm_scp_be1_name:
+    type: string
+    default: vSCP_BE1
+    description: name of VM    
+  vm_scp_be2_name:
+    type: string
+    default: vSCP_BE2
+    description: name of VM
+  vm_scp_be3_name:
+    type: string
+    default: vSCP_BE3
+    description: name of VM
+  vm_scp_be4_name:
+    type: string
+    default: vSCP_BE4
+    description: name of VM
+  vm_scp_fe0_name:
+    type: string
+    default: vSCP_FE0
+    description: name of VM
+  vm_scp_fe1_name:
+    type: string
+    default: vSCP_FE1
+    description: name of VM
+  vm_smp0_name:
+    type: string
+    default: vSMP0
+    description: name of VM
+  vm_smp1_name:
+    type: string
+    default: vSMP1
+    description: name of VM
+  vm_db0_name:
+    type: string
+    default: vDB0
+    description: name of VM
+  vm_db1_name:
+    type: string
+    default: vDB1
+    description: name of VM
+
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be0_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+  be0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+  server_scp_be1:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be1_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be1 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be1_port_3 }
+      - port: { get_resource: be1_port_4 }
+      - port: { get_resource: be1_port_5 }
+      - port: { get_resource: be1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be1_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be1_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+  be1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+  server_scp_be2:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be2_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be2 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be2_port_3 }
+      - port: { get_resource: be2_port_4 }
+      - port: { get_resource: be2_port_5 }
+      - port: { get_resource: be2_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be2_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be2_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be2_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be2_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+  be2_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+  server_scp_be3:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be3_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be3 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be3_port_3 }
+      - port: { get_resource: be3_port_4 }
+      - port: { get_resource: be3_port_5 }
+      - port: { get_resource: be3_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be3_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be3_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be3_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be3_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+  be3_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+  server_scp_be4:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be4_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be4 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be4_port_3 }
+      - port: { get_resource: be4_port_4 }
+      - port: { get_resource: be4_port_5 }
+      - port: { get_resource: be4_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be4_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be4_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be4_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be4_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+  be4_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+  server_scp_fe0:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe0_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe0 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe0_port_0 }
+      - port: { get_resource: fe0_port_2 }
+      - port: { get_resource: fe0_port_3 }
+      - port: { get_resource: fe0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe0_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe0_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_A1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+  fe0_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+  server_scp_fe1:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe1_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe1 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe1_port_1 }
+      - port: { get_resource: fe1_port_2 }
+      - port: { get_resource: fe1_port_3 }
+      - port: { get_resource: fe1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe1_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe1_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_B1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+  fe1_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+  server_smp0:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp0_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp0 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp0_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+  server_smp1:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp1_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp1 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp1_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+  server_db0:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db0_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db0 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db0_port_4 }
+      - port: { get_resource: db0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db0_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+  server_db1:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db1_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db1 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db1_port_4 }
+      - port: { get_resource: db1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db1_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}]
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidYangXml.xml b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidYangXml.xml
new file mode 100644
index 0000000..8978e0d
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidYangXml.xml
@@ -0,0 +1,35 @@
+<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+
+  <sports xmlns="http://example.com/example-sports">
+    <person>
+      <name>Lionel Andr�s Messi</name>
+      <birthday>1987-06-24T00:00:00-00:00</birthday>
+    </person>
+    <person>
+      <name>Cristiano Ronaldo</name>
+      <birthday>1985-02-05T00:00:00-00:00</birthday>
+    </person>
+    <team>
+      <name>FC Barcelona</name>
+      <player>
+        <name>Lionel Andr�s Messi</name>
+        <season>Champions League 2014/2015</season>
+        <number>10</number>
+        <scores>43</scores>
+      </player>
+    </team>
+    <team>
+      <name>Real Madrid</name>
+      <player>
+        <name>Cristiano Ronaldo</name>
+        <season>Champions League 2014/2015</season>
+        <number>7</number>
+        <scores>48</scores>
+      </player>
+    </team>
+  </sports>
+
+
+
+</data>
+</data>
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/jsonArtifact.json b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/jsonArtifact.json
new file mode 100644
index 0000000..d5ca56d
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/jsonArtifact.json
@@ -0,0 +1,22 @@
+{
+    "glossary": {
+        "title": "example glossary",
+		"GlossDiv": {
+            "title": "S",
+			"GlossList": {
+                "GlossEntry": {
+                    "ID": "SGML",
+					"SortAs": "SGML",
+					"GlossTerm": "Standard Generalized Markup Language",
+					"Acronym": "SGML",
+					"Abbrev": "ISO 8879:1986",
+					"GlossDef": {
+                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
+						"GlossSeeAlso": ["GML", "XML"]
+                    },
+					"GlossSee": "markup"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/other.txt b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/other.txt
new file mode 100644
index 0000000..5f8f77c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/other.txt
@@ -0,0 +1,3 @@
+cmd1
+cmd2
+cmd3
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/bluePrintSampleArtifact.xml b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/bluePrintSampleArtifact.xml
new file mode 100644
index 0000000..10c46b7
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/bluePrintSampleArtifact.xml
@@ -0,0 +1,3 @@
+<test>
+	dfsfsdfsdf
+</test>
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/docSampleArtifact.docx b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/docSampleArtifact.docx
new file mode 100644
index 0000000..c281f53
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/docSampleArtifact.docx
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/emfSampleArtifact.emf b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/emfSampleArtifact.emf
new file mode 100644
index 0000000..9c478f6
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/emfSampleArtifact.emf
@@ -0,0 +1,2 @@
+This is sample EMF file
+We currently not checking the file content.
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/emfSampleArtifact.xml b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/emfSampleArtifact.xml
new file mode 100644
index 0000000..10c46b7
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/emfSampleArtifact.xml
@@ -0,0 +1,3 @@
+<test>
+	dfsfsdfsdf
+</test>
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/eventSampleArtifact.xml b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/eventSampleArtifact.xml
new file mode 100644
index 0000000..10c46b7
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/eventSampleArtifact.xml
@@ -0,0 +1,3 @@
+<test>
+	dfsfsdfsdf
+</test>
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/jsonSampleArtifact.json b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/jsonSampleArtifact.json
new file mode 100644
index 0000000..b749a9e
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/jsonSampleArtifact.json
@@ -0,0 +1,3 @@
+{
+    "test": "This is test"
+}
diff --git a/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/toscaSampleArtifact.yml b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/toscaSampleArtifact.yml
new file mode 100644
index 0000000..10ccf71
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/toscaSampleArtifact.yml
@@ -0,0 +1,5 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+
+node_types:
+  org.openecomp.resource.cp.CP:
+    derived_from: org.openecomp.resource.cp.root
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/addHeatArtifactToServiceAndSertify/asc_heat 0 2.yaml b/test-apis-ci/src/test/resources/CI/tests/addHeatArtifactToServiceAndSertify/asc_heat 0 2.yaml
new file mode 100644
index 0000000..6835485
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/addHeatArtifactToServiceAndSertify/asc_heat 0 2.yaml
@@ -0,0 +1,787 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+#  availability_zone_smp0:
+#    type: string
+#    default: nova
+#  availability_zone_smp1:
+#    type: string
+#    default: nova
+#  availability_zone_fe0:
+#    type: string
+#    default: nova
+#  availability_zone_fe1:
+#    type: string
+#    default: nova
+#  availability_zone_db0:
+#    type: string
+#    default: nova
+#  availability_zone_db1:
+#    type: string
+#    default: nova
+#  availability_zone_be0:
+#    type: string
+#    default: nova
+#  availability_zone_be1:
+#    type: string
+#    default: nova
+#  availability_zone_be2:
+#    type: string
+#    default: nova
+#  availability_zone_be3:
+#    type: string
+#    default: nova
+#  availability_zone_be4:
+#    type: string
+#    default: nova
+
+  vnf_name:
+    type: string
+    description: Unique name for this VNF instance
+    default: This_is_the_SCP_name
+  vnf_id:
+    type: string
+    description: Unique ID for this VNF instance
+    default: This_is_ths_SCP_id
+
+  flavor_scp_be_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_scp_fe_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_smp_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_db_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  image_scp_be_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_be
+  image_scp_fe_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_fe    
+  image_smp_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_smp
+  image_db_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_db
+
+  int_vscp_fe_cluster_net_id:
+    type: string
+    description: LAN2 FE Cluster/KA
+  int_vscp_fe_cluster_cidr:
+    type: string
+    description: Private Network2 Address (CIDR notation)
+  int_vscp_cluster_net_id:
+    type: string
+    description: LAN3 Cluster
+  int_vscp_cluster_cidr:
+    type: string
+    description: Private Network3 Address (CIDR notation)
+  int_vscp_db_network_net_id:
+    type: string
+    description: LAN4 DB
+  int_vscp_db_network_cidr:
+    type: string
+    description: Private Network4 Address (CIDR notation)
+  SIGNET_vrf_A1_direct_net_id:
+    type: string
+    description: Network name for SIGTRAN_A
+  SIGNET_vrf_B1_direct_net_id:
+    type: string
+    description: Network name for SIGTRAN_B
+  Cricket_OCS_protected_net_id:
+    type: string
+    description: Network name for CRICKET_OCS
+  OAM_direct_net_id:
+    type: string
+    description: Network name for OAM
+  be0_Cricket_OCS_protected_ips:
+    type: string
+    label: be0 port 5 OAM ip address
+    description: be0 port 5 OAM ip address
+  be1_Cricket_OCS_protected_ips:
+    type: string
+    label: be1 port 5 OAM ip address
+    description: be1 port 5 OAM ip address
+  be2_Cricket_OCS_protected_ips:
+    type: string
+    label: be2 port 5 OAM ip address
+    description: be2 port 5 OAM ip address
+  be3_Cricket_OCS_protected_ips:
+    type: string
+    label: be3 port 5 OAM ip address
+    description: be3 port 5 OAM ip address
+  be4_Cricket_OCS_protected_ips:
+    type: string
+    label: be4 port 5 OAM ip address
+    description: be4 port 5 OAM ip address
+  be0_OAM_direct_ips:
+    type: string
+    label: be0 port 7 OAM ip address
+    description: be0 port 7 OAM ip address
+  be1_OAM_direct_ips:
+    type: string
+    label: be1 port 7 OAM ip address
+    description: be1 port 7 OAM ip address
+  be2_OAM_direct_ips:
+    type: string
+    label: be2 port 7 OAM ip address
+    description: be2 port 7 OAM ip address
+  be3_OAM_direct_ips:
+    type: string
+    label: be3 port 7 OAM ip address
+    description: be3 port 7 OAM ip address
+  be4_OAM_direct_ips:
+    type: string
+    label: be4 port 7 OAM ip address
+    description: be4 port 7 OAM ip address
+  fe0_SIGNET_vrf_A1_direct_ips:
+    type: string
+    label: fe0 port 0 SIGTRAN ip address
+    description: fe0 port 0 SIGTRAN ip address
+  fe0_OAM_direct_ips:
+    type: string
+    label: fe0 port 7 OAM ip address
+    description: fe0 port 7 OAM ip address
+  fe1_SIGNET_vrf_B1_direct_ips:
+    type: string
+    label: fe1 port 1 SIGTRAN ip address
+    description: fe1 port 1 SIGTRAN ip address
+  fe1_OAM_direct_ips:
+    type: string
+    label: fe1 port 7 OAM ip address
+    description: fe1 port 7 OAM ip address
+  smp0_OAM_direct_ips:
+    type: string
+    label: smp0 port 7 OAM ip address
+    description: smp0 port 7 OAM ip address
+  smp1_OAM_direct_ips:
+    type: string
+    label: smp1 port 7 OAM ip address
+    description: smp1 port 7 OAM ip address
+  db0_OAM_direct_ips:
+    type: string
+    label: db0 port 7 OAM ip address
+    description: smp0 port 7 OAM ip address
+  db1_OAM_direct_ips:
+    type: string
+    label: smp1 port 7 OAM ip address
+    description: db1 port 7 OAM ip address
+  vm_scp_be0_name:
+    type: string
+    default: vSCP_BE0
+    description: name of VM
+  vm_scp_be1_name:
+    type: string
+    default: vSCP_BE1
+    description: name of VM    
+  vm_scp_be2_name:
+    type: string
+    default: vSCP_BE2
+    description: name of VM
+  vm_scp_be3_name:
+    type: string
+    default: vSCP_BE3
+    description: name of VM
+  vm_scp_be4_name:
+    type: string
+    default: vSCP_BE4
+    description: name of VM
+  vm_scp_fe0_name:
+    type: string
+    default: vSCP_FE0
+    description: name of VM
+  vm_scp_fe1_name:
+    type: string
+    default: vSCP_FE1
+    description: name of VM
+  vm_smp0_name:
+    type: string
+    default: vSMP0
+    description: name of VM
+  vm_smp1_name:
+    type: string
+    default: vSMP1
+    description: name of VM
+  vm_db0_name:
+    type: string
+    default: vDB0
+    description: name of VM
+  vm_db1_name:
+    type: string
+    default: vDB1
+    description: name of VM
+
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be0_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+  be0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+  server_scp_be1:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be1_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be1 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be1_port_3 }
+      - port: { get_resource: be1_port_4 }
+      - port: { get_resource: be1_port_5 }
+      - port: { get_resource: be1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be1_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be1_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+  be1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+  server_scp_be2:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be2_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be2 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be2_port_3 }
+      - port: { get_resource: be2_port_4 }
+      - port: { get_resource: be2_port_5 }
+      - port: { get_resource: be2_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be2_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be2_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be2_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be2_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+  be2_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+  server_scp_be3:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be3_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be3 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be3_port_3 }
+      - port: { get_resource: be3_port_4 }
+      - port: { get_resource: be3_port_5 }
+      - port: { get_resource: be3_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be3_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be3_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be3_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be3_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+  be3_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+  server_scp_be4:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be4_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be4 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be4_port_3 }
+      - port: { get_resource: be4_port_4 }
+      - port: { get_resource: be4_port_5 }
+      - port: { get_resource: be4_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be4_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be4_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be4_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be4_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+  be4_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+  server_scp_fe0:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe0_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe0 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe0_port_0 }
+      - port: { get_resource: fe0_port_2 }
+      - port: { get_resource: fe0_port_3 }
+      - port: { get_resource: fe0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe0_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe0_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_A1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+  fe0_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+  server_scp_fe1:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe1_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe1 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe1_port_1 }
+      - port: { get_resource: fe1_port_2 }
+      - port: { get_resource: fe1_port_3 }
+      - port: { get_resource: fe1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe1_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe1_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_B1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+  fe1_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+  server_smp0:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp0_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp0 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp0_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+  server_smp1:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp1_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp1 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp1_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+  server_db0:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db0_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db0 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db0_port_4 }
+      - port: { get_resource: db0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db0_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+  server_db1:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db1_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db1 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db1_port_4 }
+      - port: { get_resource: db1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db1_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}]
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/downloadResourceArtifactSuccess/org.openstack.Rally.zip b/test-apis-ci/src/test/resources/CI/tests/downloadResourceArtifactSuccess/org.openstack.Rally.zip
new file mode 100644
index 0000000..0951d5c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/downloadResourceArtifactSuccess/org.openstack.Rally.zip
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.png
new file mode 100644
index 0000000..8e02f49
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/mysql.yml
new file mode 100644
index 0000000..f512f80
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getResourceArtifactFileContentTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-getResourceArtifactFileContentTest:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/install_mysql.sh
new file mode 100644
index 0000000..400bcf4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/install_mysql.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+  if mkdir "${LOCK}" &>/dev/null; then
+    echo "MySQL take the lock"
+    break;
+  fi
+  echo "Waiting the end of one of our recipes..."
+  sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+  echo "Waiting for other software managers to finish..."
+  sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete."
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/start_mysql.sh
new file mode 100644
index 0000000..648bd45
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/start_mysql.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT        : $PORT"
+echo "ENV VAR USED DB_NAME     : $DB_NAME"
+echo "ENV VAR USED DB_USER     : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+  echo "Starting MYSQL..."
+  sudo /etc/init.d/mysql stop
+  sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+  RET=1
+  while [[ RET -ne 0 ]]; do
+    echo "=> Waiting for confirmation of MySQL service startup"
+    sleep 5
+    sudo mysql -uroot -e "status" > /dev/null 2>&1
+    RET=$?
+  done
+}
+
+function AllowFileSystemToMySQL {
+  MYSQL_DATA_DIR=$VOLUME_HOME/data
+  MYSQL_LOG=$VOLUME_HOME/logs
+
+  echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+  if sudo test ! -d $MYSQL_DATA_DIR; then
+    echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+    sudo mkdir -p $MYSQL_DATA_DIR
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+  fi
+  if sudo test ! -d $MYSQL_LOG; then
+    echo "Creating LOG dir > $MYSQL_LOG ..."
+    sudo mkdir -p $MYSQL_LOG
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_LOG
+  fi
+
+  # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+  COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+  # reload app permission manager service
+  sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+  echo "Updating MySQL conf files [DATA, LOGS]..."
+  sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+  sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+  sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+  if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+    sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+  fi
+  if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+    sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+  fi
+
+  if [ "$BIND_ADRESS" == "true" ]; then
+    sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+  fi
+}
+
+function InitMySQLDb {
+  # create database DB_NAME
+  if [ "$DB_NAME" ]; then
+    echo "INIT DATABASE $DB_NAME"
+    sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+  fi
+
+  # create user and give rights
+  if [ "$DB_USER" ]; then
+    echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+    sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+    sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+    sudo mysql -uroot -e "FLUSH PRIVILEGES"
+  fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+  echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+  echo "=> Init new database path to $MYSQL_DATA_DIR"
+  sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+  echo "=> MySQL database initialized !"
+else
+  echo "=> Using an existing volume of MySQL"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListNoContentTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListNoContentTest/mysql.yml
new file mode 100644
index 0000000..180e247
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListNoContentTest/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getResourceArtifactListNoContentTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-getResourceArtifactListNoContentTest:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.png
new file mode 100644
index 0000000..8e02f49
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/mysql.yml
new file mode 100644
index 0000000..b8f9bbd
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-GetResourceArtifactListTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-GetResourceArtifactListTest:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/install_mysql.sh
new file mode 100644
index 0000000..400bcf4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/install_mysql.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+  if mkdir "${LOCK}" &>/dev/null; then
+    echo "MySQL take the lock"
+    break;
+  fi
+  echo "Waiting the end of one of our recipes..."
+  sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+  echo "Waiting for other software managers to finish..."
+  sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete."
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/start_mysql.sh
new file mode 100644
index 0000000..648bd45
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/start_mysql.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT        : $PORT"
+echo "ENV VAR USED DB_NAME     : $DB_NAME"
+echo "ENV VAR USED DB_USER     : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+  echo "Starting MYSQL..."
+  sudo /etc/init.d/mysql stop
+  sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+  RET=1
+  while [[ RET -ne 0 ]]; do
+    echo "=> Waiting for confirmation of MySQL service startup"
+    sleep 5
+    sudo mysql -uroot -e "status" > /dev/null 2>&1
+    RET=$?
+  done
+}
+
+function AllowFileSystemToMySQL {
+  MYSQL_DATA_DIR=$VOLUME_HOME/data
+  MYSQL_LOG=$VOLUME_HOME/logs
+
+  echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+  if sudo test ! -d $MYSQL_DATA_DIR; then
+    echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+    sudo mkdir -p $MYSQL_DATA_DIR
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+  fi
+  if sudo test ! -d $MYSQL_LOG; then
+    echo "Creating LOG dir > $MYSQL_LOG ..."
+    sudo mkdir -p $MYSQL_LOG
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_LOG
+  fi
+
+  # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+  COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+  # reload app permission manager service
+  sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+  echo "Updating MySQL conf files [DATA, LOGS]..."
+  sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+  sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+  sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+  if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+    sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+  fi
+  if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+    sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+  fi
+
+  if [ "$BIND_ADRESS" == "true" ]; then
+    sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+  fi
+}
+
+function InitMySQLDb {
+  # create database DB_NAME
+  if [ "$DB_NAME" ]; then
+    echo "INIT DATABASE $DB_NAME"
+    sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+  fi
+
+  # create user and give rights
+  if [ "$DB_USER" ]; then
+    echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+    sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+    sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+    sudo mysql -uroot -e "FLUSH PRIVILEGES"
+  fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+  echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+  echo "=> Init new database path to $MYSQL_DATA_DIR"
+  sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+  echo "=> MySQL database initialized !"
+else
+  echo "=> Using an existing volume of MySQL"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataNoContentTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataNoContentTest/mysql.yml
new file mode 100644
index 0000000..72ff4f3
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataNoContentTest/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getResourceArtifactMetadataNoContentTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-getResourceArtifactMetadataNoContentTest:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.png
new file mode 100644
index 0000000..8e02f49
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/mysql.yml
new file mode 100644
index 0000000..527e4a0
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getResourceArtifactMetadataTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-getResourceArtifactMetadataTest:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/install_mysql.sh
new file mode 100644
index 0000000..400bcf4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/install_mysql.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+  if mkdir "${LOCK}" &>/dev/null; then
+    echo "MySQL take the lock"
+    break;
+  fi
+  echo "Waiting the end of one of our recipes..."
+  sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+  echo "Waiting for other software managers to finish..."
+  sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete."
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/start_mysql.sh
new file mode 100644
index 0000000..648bd45
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/start_mysql.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT        : $PORT"
+echo "ENV VAR USED DB_NAME     : $DB_NAME"
+echo "ENV VAR USED DB_USER     : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+  echo "Starting MYSQL..."
+  sudo /etc/init.d/mysql stop
+  sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+  RET=1
+  while [[ RET -ne 0 ]]; do
+    echo "=> Waiting for confirmation of MySQL service startup"
+    sleep 5
+    sudo mysql -uroot -e "status" > /dev/null 2>&1
+    RET=$?
+  done
+}
+
+function AllowFileSystemToMySQL {
+  MYSQL_DATA_DIR=$VOLUME_HOME/data
+  MYSQL_LOG=$VOLUME_HOME/logs
+
+  echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+  if sudo test ! -d $MYSQL_DATA_DIR; then
+    echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+    sudo mkdir -p $MYSQL_DATA_DIR
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+  fi
+  if sudo test ! -d $MYSQL_LOG; then
+    echo "Creating LOG dir > $MYSQL_LOG ..."
+    sudo mkdir -p $MYSQL_LOG
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_LOG
+  fi
+
+  # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+  COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+  # reload app permission manager service
+  sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+  echo "Updating MySQL conf files [DATA, LOGS]..."
+  sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+  sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+  sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+  if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+    sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+  fi
+  if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+    sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+  fi
+
+  if [ "$BIND_ADRESS" == "true" ]; then
+    sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+  fi
+}
+
+function InitMySQLDb {
+  # create database DB_NAME
+  if [ "$DB_NAME" ]; then
+    echo "INIT DATABASE $DB_NAME"
+    sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+  fi
+
+  # create user and give rights
+  if [ "$DB_USER" ]; then
+    echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+    sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+    sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+    sudo mysql -uroot -e "FLUSH PRIVILEGES"
+  fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+  echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+  echo "=> Init new database path to $MYSQL_DATA_DIR"
+  sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+  echo "=> MySQL database initialized !"
+else
+  echo "=> Using an existing volume of MySQL"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactPayloadNoContentTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactPayloadNoContentTest/mysql.yml
new file mode 100644
index 0000000..7177a65
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactPayloadNoContentTest/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getResourceArtifactPayloadNoContentTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-getResourceArtifactPayloadNoContentTest:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.png
new file mode 100644
index 0000000..8e02f49
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/mysql.yml
new file mode 100644
index 0000000..e0a0c64
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-getServiceArtifactListTest:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase-getServiceArtifactListTest:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript-getServiceArtifactListTest:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/install_mysql.sh
new file mode 100644
index 0000000..400bcf4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/install_mysql.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+  if mkdir "${LOCK}" &>/dev/null; then
+    echo "MySQL take the lock"
+    break;
+  fi
+  echo "Waiting the end of one of our recipes..."
+  sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+  echo "Waiting for other software managers to finish..."
+  sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete."
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/start_mysql.sh
new file mode 100644
index 0000000..648bd45
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/start_mysql.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT        : $PORT"
+echo "ENV VAR USED DB_NAME     : $DB_NAME"
+echo "ENV VAR USED DB_USER     : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+  echo "Starting MYSQL..."
+  sudo /etc/init.d/mysql stop
+  sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+  RET=1
+  while [[ RET -ne 0 ]]; do
+    echo "=> Waiting for confirmation of MySQL service startup"
+    sleep 5
+    sudo mysql -uroot -e "status" > /dev/null 2>&1
+    RET=$?
+  done
+}
+
+function AllowFileSystemToMySQL {
+  MYSQL_DATA_DIR=$VOLUME_HOME/data
+  MYSQL_LOG=$VOLUME_HOME/logs
+
+  echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+  if sudo test ! -d $MYSQL_DATA_DIR; then
+    echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+    sudo mkdir -p $MYSQL_DATA_DIR
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+  fi
+  if sudo test ! -d $MYSQL_LOG; then
+    echo "Creating LOG dir > $MYSQL_LOG ..."
+    sudo mkdir -p $MYSQL_LOG
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_LOG
+  fi
+
+  # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+  COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+  # reload app permission manager service
+  sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+  echo "Updating MySQL conf files [DATA, LOGS]..."
+  sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+  sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+  sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+  if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+    sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+  fi
+  if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+    sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+  fi
+
+  if [ "$BIND_ADRESS" == "true" ]; then
+    sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+  fi
+}
+
+function InitMySQLDb {
+  # create database DB_NAME
+  if [ "$DB_NAME" ]; then
+    echo "INIT DATABASE $DB_NAME"
+    sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+  fi
+
+  # create user and give rights
+  if [ "$DB_USER" ]; then
+    echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+    sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+    sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+    sudo mysql -uroot -e "FLUSH PRIVILEGES"
+  fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+  echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+  echo "=> Init new database path to $MYSQL_DATA_DIR"
+  sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+  echo "=> MySQL database initialized !"
+else
+  echo "=> Using an existing volume of MySQL"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.png
new file mode 100644
index 0000000..8e02f49
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/mysql.yml
new file mode 100644
index 0000000..dc5ff15
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListTest2
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-getServiceArtifactListTest2:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest2
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase-getServiceArtifactListTest2:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript-getServiceArtifactListTest2:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/install_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/install_mysql2.sh
new file mode 100644
index 0000000..400bcf4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/install_mysql2.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+  if mkdir "${LOCK}" &>/dev/null; then
+    echo "MySQL take the lock"
+    break;
+  fi
+  echo "Waiting the end of one of our recipes..."
+  sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+  echo "Waiting for other software managers to finish..."
+  sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete."
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/start_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/start_mysql2.sh
new file mode 100644
index 0000000..648bd45
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/start_mysql2.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT        : $PORT"
+echo "ENV VAR USED DB_NAME     : $DB_NAME"
+echo "ENV VAR USED DB_USER     : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+  echo "Starting MYSQL..."
+  sudo /etc/init.d/mysql stop
+  sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+  RET=1
+  while [[ RET -ne 0 ]]; do
+    echo "=> Waiting for confirmation of MySQL service startup"
+    sleep 5
+    sudo mysql -uroot -e "status" > /dev/null 2>&1
+    RET=$?
+  done
+}
+
+function AllowFileSystemToMySQL {
+  MYSQL_DATA_DIR=$VOLUME_HOME/data
+  MYSQL_LOG=$VOLUME_HOME/logs
+
+  echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+  if sudo test ! -d $MYSQL_DATA_DIR; then
+    echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+    sudo mkdir -p $MYSQL_DATA_DIR
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+  fi
+  if sudo test ! -d $MYSQL_LOG; then
+    echo "Creating LOG dir > $MYSQL_LOG ..."
+    sudo mkdir -p $MYSQL_LOG
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_LOG
+  fi
+
+  # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+  COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+  # reload app permission manager service
+  sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+  echo "Updating MySQL conf files [DATA, LOGS]..."
+  sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+  sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+  sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+  if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+    sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+  fi
+  if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+    sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+  fi
+
+  if [ "$BIND_ADRESS" == "true" ]; then
+    sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+  fi
+}
+
+function InitMySQLDb {
+  # create database DB_NAME
+  if [ "$DB_NAME" ]; then
+    echo "INIT DATABASE $DB_NAME"
+    sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+  fi
+
+  # create user and give rights
+  if [ "$DB_USER" ]; then
+    echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+    sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+    sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+    sudo mysql -uroot -e "FLUSH PRIVILEGES"
+  fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+  echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+  echo "=> Init new database path to $MYSQL_DATA_DIR"
+  sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+  echo "=> MySQL database initialized !"
+else
+  echo "=> Using an existing volume of MySQL"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topology.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topology.txt
new file mode 100644
index 0000000..cb3c3e8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topology.txt
@@ -0,0 +1 @@
+{"id":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7","delegateId":"9c063349-2259-40fe-97f1-7c40e659e1b0","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListTest","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}},{"key":"Mysql-getServiceArtifactListTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}}]}
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topologyTemplate.txt
new file mode 100644
index 0000000..f0d0849
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topologyTemplate.txt
@@ -0,0 +1,2 @@
+{"id":"9c063349-2259-40fe-97f1-7c40e659e1b0","name":"Andrey","description":null,"topologyId":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7"}
+
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.png
new file mode 100644
index 0000000..8e02f49
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/mysql.yml
new file mode 100644
index 0000000..4ee2c8c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListNoContentTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-getServiceArtifactListNoContentTest:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript-getServiceArtifactListNoContentTest:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.png
new file mode 100644
index 0000000..8e02f49
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/mysql.yml
new file mode 100644
index 0000000..b564dd0
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListNoContentTest2
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-getServiceArtifactListNoContentTest2:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript-getServiceArtifactListNoContentTest2:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topology.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topology.txt
new file mode 100644
index 0000000..2793518
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topology.txt
@@ -0,0 +1 @@
+{"id":"3293c9c8-a162-43fc-b8d1-431399f89cb7","delegateId":"25845cce-05c8-4502-b5fe-abfd6bd6f28e","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListNoContentTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListNoContentTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListNoContentTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":{"dependsOnMysql-getServiceArtifactListNoContentTest2":{"type":"tosca.relationships.DependsOn","target":"Mysql-getServiceArtifactListNoContentTest2","requirementName":"dependency","requirementType":"tosca.capabilities.Root","targetedCapabilityName":"root"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}}]}
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topologyTemplate.txt
new file mode 100644
index 0000000..3c342f6
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topologyTemplate.txt
@@ -0,0 +1,2 @@
+{"id":"25845cce-05c8-4502-b5fe-abfd6bd6f28e","name":"ServiceArtListNoContent","description":null,"topologyId":"3293c9c8-a162-43fc-b8d1-431399f89cb7"}
+
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.png
new file mode 100644
index 0000000..8e02f49
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/mysql.yml
new file mode 100644
index 0000000..e0a0c64
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-getServiceArtifactListTest:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase-getServiceArtifactListTest:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript-getServiceArtifactListTest:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/install_mysql.sh
new file mode 100644
index 0000000..400bcf4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/install_mysql.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+  if mkdir "${LOCK}" &>/dev/null; then
+    echo "MySQL take the lock"
+    break;
+  fi
+  echo "Waiting the end of one of our recipes..."
+  sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+  echo "Waiting for other software managers to finish..."
+  sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete."
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/start_mysql.sh
new file mode 100644
index 0000000..648bd45
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/start_mysql.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT        : $PORT"
+echo "ENV VAR USED DB_NAME     : $DB_NAME"
+echo "ENV VAR USED DB_USER     : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+  echo "Starting MYSQL..."
+  sudo /etc/init.d/mysql stop
+  sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+  RET=1
+  while [[ RET -ne 0 ]]; do
+    echo "=> Waiting for confirmation of MySQL service startup"
+    sleep 5
+    sudo mysql -uroot -e "status" > /dev/null 2>&1
+    RET=$?
+  done
+}
+
+function AllowFileSystemToMySQL {
+  MYSQL_DATA_DIR=$VOLUME_HOME/data
+  MYSQL_LOG=$VOLUME_HOME/logs
+
+  echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+  if sudo test ! -d $MYSQL_DATA_DIR; then
+    echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+    sudo mkdir -p $MYSQL_DATA_DIR
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+  fi
+  if sudo test ! -d $MYSQL_LOG; then
+    echo "Creating LOG dir > $MYSQL_LOG ..."
+    sudo mkdir -p $MYSQL_LOG
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_LOG
+  fi
+
+  # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+  COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+  # reload app permission manager service
+  sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+  echo "Updating MySQL conf files [DATA, LOGS]..."
+  sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+  sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+  sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+  if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+    sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+  fi
+  if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+    sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+  fi
+
+  if [ "$BIND_ADRESS" == "true" ]; then
+    sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+  fi
+}
+
+function InitMySQLDb {
+  # create database DB_NAME
+  if [ "$DB_NAME" ]; then
+    echo "INIT DATABASE $DB_NAME"
+    sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+  fi
+
+  # create user and give rights
+  if [ "$DB_USER" ]; then
+    echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+    sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+    sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+    sudo mysql -uroot -e "FLUSH PRIVILEGES"
+  fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+  echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+  echo "=> Init new database path to $MYSQL_DATA_DIR"
+  sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+  echo "=> MySQL database initialized !"
+else
+  echo "=> Using an existing volume of MySQL"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.png
new file mode 100644
index 0000000..8e02f49
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/mysql.yml
new file mode 100644
index 0000000..dc5ff15
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListTest2
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-getServiceArtifactListTest2:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest2
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase-getServiceArtifactListTest2:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript-getServiceArtifactListTest2:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/install_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/install_mysql2.sh
new file mode 100644
index 0000000..400bcf4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/install_mysql2.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+  if mkdir "${LOCK}" &>/dev/null; then
+    echo "MySQL take the lock"
+    break;
+  fi
+  echo "Waiting the end of one of our recipes..."
+  sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+  echo "Waiting for other software managers to finish..."
+  sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete."
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/start_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/start_mysql2.sh
new file mode 100644
index 0000000..648bd45
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/start_mysql2.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT        : $PORT"
+echo "ENV VAR USED DB_NAME     : $DB_NAME"
+echo "ENV VAR USED DB_USER     : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+  echo "Starting MYSQL..."
+  sudo /etc/init.d/mysql stop
+  sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+  RET=1
+  while [[ RET -ne 0 ]]; do
+    echo "=> Waiting for confirmation of MySQL service startup"
+    sleep 5
+    sudo mysql -uroot -e "status" > /dev/null 2>&1
+    RET=$?
+  done
+}
+
+function AllowFileSystemToMySQL {
+  MYSQL_DATA_DIR=$VOLUME_HOME/data
+  MYSQL_LOG=$VOLUME_HOME/logs
+
+  echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+  if sudo test ! -d $MYSQL_DATA_DIR; then
+    echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+    sudo mkdir -p $MYSQL_DATA_DIR
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+  fi
+  if sudo test ! -d $MYSQL_LOG; then
+    echo "Creating LOG dir > $MYSQL_LOG ..."
+    sudo mkdir -p $MYSQL_LOG
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_LOG
+  fi
+
+  # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+  COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+  # reload app permission manager service
+  sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+  echo "Updating MySQL conf files [DATA, LOGS]..."
+  sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+  sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+  sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+  if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+    sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+  fi
+  if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+    sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+  fi
+
+  if [ "$BIND_ADRESS" == "true" ]; then
+    sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+  fi
+}
+
+function InitMySQLDb {
+  # create database DB_NAME
+  if [ "$DB_NAME" ]; then
+    echo "INIT DATABASE $DB_NAME"
+    sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+  fi
+
+  # create user and give rights
+  if [ "$DB_USER" ]; then
+    echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+    sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+    sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+    sudo mysql -uroot -e "FLUSH PRIVILEGES"
+  fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+  echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+  echo "=> Init new database path to $MYSQL_DATA_DIR"
+  sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+  echo "=> MySQL database initialized !"
+else
+  echo "=> Using an existing volume of MySQL"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topology.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topology.txt
new file mode 100644
index 0000000..cb3c3e8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topology.txt
@@ -0,0 +1 @@
+{"id":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7","delegateId":"9c063349-2259-40fe-97f1-7c40e659e1b0","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListTest","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}},{"key":"Mysql-getServiceArtifactListTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}}]}
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topologyTemplate.txt
new file mode 100644
index 0000000..f0d0849
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topologyTemplate.txt
@@ -0,0 +1,2 @@
+{"id":"9c063349-2259-40fe-97f1-7c40e659e1b0","name":"Andrey","description":null,"topologyId":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7"}
+
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.png
new file mode 100644
index 0000000..8e02f49
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/mysql.yml
new file mode 100644
index 0000000..e0a0c64
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-getServiceArtifactListTest:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase-getServiceArtifactListTest:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript-getServiceArtifactListTest:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/install_mysql.sh
new file mode 100644
index 0000000..400bcf4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/install_mysql.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+  if mkdir "${LOCK}" &>/dev/null; then
+    echo "MySQL take the lock"
+    break;
+  fi
+  echo "Waiting the end of one of our recipes..."
+  sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+  echo "Waiting for other software managers to finish..."
+  sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete."
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/start_mysql.sh
new file mode 100644
index 0000000..648bd45
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/start_mysql.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT        : $PORT"
+echo "ENV VAR USED DB_NAME     : $DB_NAME"
+echo "ENV VAR USED DB_USER     : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+  echo "Starting MYSQL..."
+  sudo /etc/init.d/mysql stop
+  sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+  RET=1
+  while [[ RET -ne 0 ]]; do
+    echo "=> Waiting for confirmation of MySQL service startup"
+    sleep 5
+    sudo mysql -uroot -e "status" > /dev/null 2>&1
+    RET=$?
+  done
+}
+
+function AllowFileSystemToMySQL {
+  MYSQL_DATA_DIR=$VOLUME_HOME/data
+  MYSQL_LOG=$VOLUME_HOME/logs
+
+  echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+  if sudo test ! -d $MYSQL_DATA_DIR; then
+    echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+    sudo mkdir -p $MYSQL_DATA_DIR
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+  fi
+  if sudo test ! -d $MYSQL_LOG; then
+    echo "Creating LOG dir > $MYSQL_LOG ..."
+    sudo mkdir -p $MYSQL_LOG
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_LOG
+  fi
+
+  # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+  COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+  # reload app permission manager service
+  sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+  echo "Updating MySQL conf files [DATA, LOGS]..."
+  sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+  sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+  sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+  if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+    sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+  fi
+  if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+    sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+  fi
+
+  if [ "$BIND_ADRESS" == "true" ]; then
+    sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+  fi
+}
+
+function InitMySQLDb {
+  # create database DB_NAME
+  if [ "$DB_NAME" ]; then
+    echo "INIT DATABASE $DB_NAME"
+    sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+  fi
+
+  # create user and give rights
+  if [ "$DB_USER" ]; then
+    echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+    sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+    sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+    sudo mysql -uroot -e "FLUSH PRIVILEGES"
+  fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+  echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+  echo "=> Init new database path to $MYSQL_DATA_DIR"
+  sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+  echo "=> MySQL database initialized !"
+else
+  echo "=> Using an existing volume of MySQL"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.png
new file mode 100644
index 0000000..8e02f49
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/mysql.yml
new file mode 100644
index 0000000..dc5ff15
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListTest2
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-getServiceArtifactListTest2:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest2
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase-getServiceArtifactListTest2:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript-getServiceArtifactListTest2:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/install_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/install_mysql2.sh
new file mode 100644
index 0000000..400bcf4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/install_mysql2.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+  if mkdir "${LOCK}" &>/dev/null; then
+    echo "MySQL take the lock"
+    break;
+  fi
+  echo "Waiting the end of one of our recipes..."
+  sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+  echo "Waiting for other software managers to finish..."
+  sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete."
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/start_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/start_mysql2.sh
new file mode 100644
index 0000000..648bd45
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/start_mysql2.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT        : $PORT"
+echo "ENV VAR USED DB_NAME     : $DB_NAME"
+echo "ENV VAR USED DB_USER     : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+  echo "Starting MYSQL..."
+  sudo /etc/init.d/mysql stop
+  sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+  RET=1
+  while [[ RET -ne 0 ]]; do
+    echo "=> Waiting for confirmation of MySQL service startup"
+    sleep 5
+    sudo mysql -uroot -e "status" > /dev/null 2>&1
+    RET=$?
+  done
+}
+
+function AllowFileSystemToMySQL {
+  MYSQL_DATA_DIR=$VOLUME_HOME/data
+  MYSQL_LOG=$VOLUME_HOME/logs
+
+  echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+  if sudo test ! -d $MYSQL_DATA_DIR; then
+    echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+    sudo mkdir -p $MYSQL_DATA_DIR
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+  fi
+  if sudo test ! -d $MYSQL_LOG; then
+    echo "Creating LOG dir > $MYSQL_LOG ..."
+    sudo mkdir -p $MYSQL_LOG
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_LOG
+  fi
+
+  # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+  COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+  # reload app permission manager service
+  sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+  echo "Updating MySQL conf files [DATA, LOGS]..."
+  sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+  sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+  sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+  if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+    sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+  fi
+  if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+    sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+  fi
+
+  if [ "$BIND_ADRESS" == "true" ]; then
+    sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+  fi
+}
+
+function InitMySQLDb {
+  # create database DB_NAME
+  if [ "$DB_NAME" ]; then
+    echo "INIT DATABASE $DB_NAME"
+    sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+  fi
+
+  # create user and give rights
+  if [ "$DB_USER" ]; then
+    echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+    sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+    sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+    sudo mysql -uroot -e "FLUSH PRIVILEGES"
+  fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+  echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+  echo "=> Init new database path to $MYSQL_DATA_DIR"
+  sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+  echo "=> MySQL database initialized !"
+else
+  echo "=> Using an existing volume of MySQL"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topology.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topology.txt
new file mode 100644
index 0000000..cb3c3e8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topology.txt
@@ -0,0 +1 @@
+{"id":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7","delegateId":"9c063349-2259-40fe-97f1-7c40e659e1b0","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListTest","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}},{"key":"Mysql-getServiceArtifactListTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}}]}
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topologyTemplate.txt
new file mode 100644
index 0000000..f0d0849
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topologyTemplate.txt
@@ -0,0 +1,2 @@
+{"id":"9c063349-2259-40fe-97f1-7c40e659e1b0","name":"Andrey","description":null,"topologyId":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7"}
+
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.png
new file mode 100644
index 0000000..8e02f49
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/mysql.yml
new file mode 100644
index 0000000..4ee2c8c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListNoContentTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-getServiceArtifactListNoContentTest:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript-getServiceArtifactListNoContentTest:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.png
new file mode 100644
index 0000000..8e02f49
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/mysql.yml
new file mode 100644
index 0000000..b564dd0
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListNoContentTest2
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-getServiceArtifactListNoContentTest2:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript-getServiceArtifactListNoContentTest2:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topology.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topology.txt
new file mode 100644
index 0000000..2793518
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topology.txt
@@ -0,0 +1 @@
+{"id":"3293c9c8-a162-43fc-b8d1-431399f89cb7","delegateId":"25845cce-05c8-4502-b5fe-abfd6bd6f28e","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListNoContentTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListNoContentTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListNoContentTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":{"dependsOnMysql-getServiceArtifactListNoContentTest2":{"type":"tosca.relationships.DependsOn","target":"Mysql-getServiceArtifactListNoContentTest2","requirementName":"dependency","requirementType":"tosca.capabilities.Root","targetedCapabilityName":"root"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}}]}
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topologyTemplate.txt
new file mode 100644
index 0000000..3c342f6
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topologyTemplate.txt
@@ -0,0 +1,2 @@
+{"id":"25845cce-05c8-4502-b5fe-abfd6bd6f28e","name":"ServiceArtListNoContent","description":null,"topologyId":"3293c9c8-a162-43fc-b8d1-431399f89cb7"}
+
diff --git a/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingDefault.yaml b/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingDefault.yaml
new file mode 100644
index 0000000..6aad589
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingDefault.yaml
@@ -0,0 +1,603 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+#  availability_zone_smp0:
+#    type: string
+#    default: nova
+#  availability_zone_smp1:
+#    type: string
+#    default: nova
+#  availability_zone_fe0:
+#    type: string
+#    default: nova
+#  availability_zone_fe1:
+#    type: string
+#    default: nova
+#  availability_zone_db0:
+#    type: string
+#    default: nova
+#  availability_zone_db1:
+#    type: string
+#    default: nova
+#  availability_zone_be0:
+#    type: string
+#    default: nova
+#  availability_zone_be1:
+#    type: string
+#    default: nova
+#  availability_zone_be2:
+#    type: string
+#    default: nova
+#  availability_zone_be3:
+#    type: string
+#    default: nova
+#  availability_zone_be4:
+#    type: string
+#    default: nova
+
+  vnf_missing_default:
+    type: string
+    description: Unique name for this VNF instance
+    label: be4 port 5 OAM ip address
+    
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be0_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+  be0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+  server_scp_be1:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be1_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be1 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be1_port_3 }
+      - port: { get_resource: be1_port_4 }
+      - port: { get_resource: be1_port_5 }
+      - port: { get_resource: be1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be1_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be1_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+  be1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+  server_scp_be2:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be2_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be2 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be2_port_3 }
+      - port: { get_resource: be2_port_4 }
+      - port: { get_resource: be2_port_5 }
+      - port: { get_resource: be2_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be2_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be2_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be2_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be2_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+  be2_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+  server_scp_be3:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be3_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be3 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be3_port_3 }
+      - port: { get_resource: be3_port_4 }
+      - port: { get_resource: be3_port_5 }
+      - port: { get_resource: be3_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be3_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be3_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be3_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be3_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+  be3_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+  server_scp_be4:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be4_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be4 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be4_port_3 }
+      - port: { get_resource: be4_port_4 }
+      - port: { get_resource: be4_port_5 }
+      - port: { get_resource: be4_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be4_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be4_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be4_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be4_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+  be4_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+  server_scp_fe0:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe0_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe0 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe0_port_0 }
+      - port: { get_resource: fe0_port_2 }
+      - port: { get_resource: fe0_port_3 }
+      - port: { get_resource: fe0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe0_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe0_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_A1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+  fe0_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+  server_scp_fe1:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe1_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe1 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe1_port_1 }
+      - port: { get_resource: fe1_port_2 }
+      - port: { get_resource: fe1_port_3 }
+      - port: { get_resource: fe1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe1_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe1_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_B1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+  fe1_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+  server_smp0:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp0_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp0 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp0_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+  server_smp1:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp1_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp1 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp1_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+  server_db0:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db0_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db0 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db0_port_4 }
+      - port: { get_resource: db0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db0_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+  server_db1:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db1_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db1 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db1_port_4 }
+      - port: { get_resource: db1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db1_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}]
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingDesc.yaml b/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingDesc.yaml
new file mode 100644
index 0000000..d51a20d
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingDesc.yaml
@@ -0,0 +1,603 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+#  availability_zone_smp0:
+#    type: string
+#    default: nova
+#  availability_zone_smp1:
+#    type: string
+#    default: nova
+#  availability_zone_fe0:
+#    type: string
+#    default: nova
+#  availability_zone_fe1:
+#    type: string
+#    default: nova
+#  availability_zone_db0:
+#    type: string
+#    default: nova
+#  availability_zone_db1:
+#    type: string
+#    default: nova
+#  availability_zone_be0:
+#    type: string
+#    default: nova
+#  availability_zone_be1:
+#    type: string
+#    default: nova
+#  availability_zone_be2:
+#    type: string
+#    default: nova
+#  availability_zone_be3:
+#    type: string
+#    default: nova
+#  availability_zone_be4:
+#    type: string
+#    default: nova
+
+  vnf_missing_desc:
+    type: string
+    default: This_is_the_SCP_name
+    label: be4 port 5 OAM ip address
+
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be0_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+  be0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+  server_scp_be1:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be1_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be1 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be1_port_3 }
+      - port: { get_resource: be1_port_4 }
+      - port: { get_resource: be1_port_5 }
+      - port: { get_resource: be1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be1_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be1_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+  be1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+  server_scp_be2:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be2_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be2 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be2_port_3 }
+      - port: { get_resource: be2_port_4 }
+      - port: { get_resource: be2_port_5 }
+      - port: { get_resource: be2_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be2_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be2_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be2_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be2_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+  be2_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+  server_scp_be3:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be3_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be3 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be3_port_3 }
+      - port: { get_resource: be3_port_4 }
+      - port: { get_resource: be3_port_5 }
+      - port: { get_resource: be3_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be3_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be3_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be3_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be3_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+  be3_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+  server_scp_be4:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be4_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be4 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be4_port_3 }
+      - port: { get_resource: be4_port_4 }
+      - port: { get_resource: be4_port_5 }
+      - port: { get_resource: be4_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be4_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be4_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be4_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be4_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+  be4_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+  server_scp_fe0:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe0_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe0 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe0_port_0 }
+      - port: { get_resource: fe0_port_2 }
+      - port: { get_resource: fe0_port_3 }
+      - port: { get_resource: fe0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe0_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe0_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_A1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+  fe0_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+  server_scp_fe1:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe1_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe1 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe1_port_1 }
+      - port: { get_resource: fe1_port_2 }
+      - port: { get_resource: fe1_port_3 }
+      - port: { get_resource: fe1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe1_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe1_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_B1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+  fe1_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+  server_smp0:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp0_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp0 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp0_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+  server_smp1:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp1_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp1 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp1_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+  server_db0:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db0_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db0 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db0_port_4 }
+      - port: { get_resource: db0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db0_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+  server_db1:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db1_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db1 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db1_port_4 }
+      - port: { get_resource: db1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db1_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}]
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingType.yaml b/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingType.yaml
new file mode 100644
index 0000000..2952749
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingType.yaml
@@ -0,0 +1,603 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+#  availability_zone_smp0:
+#    type: string
+#    default: nova
+#  availability_zone_smp1:
+#    type: string
+#    default: nova
+#  availability_zone_fe0:
+#    type: string
+#    default: nova
+#  availability_zone_fe1:
+#    type: string
+#    default: nova
+#  availability_zone_db0:
+#    type: string
+#    default: nova
+#  availability_zone_db1:
+#    type: string
+#    default: nova
+#  availability_zone_be0:
+#    type: string
+#    default: nova
+#  availability_zone_be1:
+#    type: string
+#    default: nova
+#  availability_zone_be2:
+#    type: string
+#    default: nova
+#  availability_zone_be3:
+#    type: string
+#    default: nova
+#  availability_zone_be4:
+#    type: string
+#    default: nova
+
+  vnf_missing_desc:
+    description: Unique name for this VNF instance
+    default: This_is_the_SCP_name
+    label: be4 port 5 OAM ip address
+    
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be0_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+  be0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+  server_scp_be1:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be1_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be1 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be1_port_3 }
+      - port: { get_resource: be1_port_4 }
+      - port: { get_resource: be1_port_5 }
+      - port: { get_resource: be1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be1_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be1_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+  be1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+  server_scp_be2:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be2_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be2 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be2_port_3 }
+      - port: { get_resource: be2_port_4 }
+      - port: { get_resource: be2_port_5 }
+      - port: { get_resource: be2_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be2_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be2_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be2_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be2_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+  be2_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+  server_scp_be3:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be3_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be3 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be3_port_3 }
+      - port: { get_resource: be3_port_4 }
+      - port: { get_resource: be3_port_5 }
+      - port: { get_resource: be3_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be3_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be3_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be3_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be3_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+  be3_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+  server_scp_be4:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be4_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be4 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be4_port_3 }
+      - port: { get_resource: be4_port_4 }
+      - port: { get_resource: be4_port_5 }
+      - port: { get_resource: be4_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be4_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be4_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be4_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be4_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+  be4_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+  server_scp_fe0:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe0_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe0 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe0_port_0 }
+      - port: { get_resource: fe0_port_2 }
+      - port: { get_resource: fe0_port_3 }
+      - port: { get_resource: fe0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe0_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe0_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_A1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+  fe0_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+  server_scp_fe1:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe1_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe1 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe1_port_1 }
+      - port: { get_resource: fe1_port_2 }
+      - port: { get_resource: fe1_port_3 }
+      - port: { get_resource: fe1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe1_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe1_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_B1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+  fe1_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+  server_smp0:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp0_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp0 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp0_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+  server_smp1:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp1_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp1 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp1_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+  server_db0:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db0_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db0 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db0_port_4 }
+      - port: { get_resource: db0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db0_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+  server_db1:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db1_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db1 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db1_port_4 }
+      - port: { get_resource: db1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db1_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}]
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithValidParams.yaml b/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithValidParams.yaml
new file mode 100644
index 0000000..6835485
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithValidParams.yaml
@@ -0,0 +1,787 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+#  availability_zone_smp0:
+#    type: string
+#    default: nova
+#  availability_zone_smp1:
+#    type: string
+#    default: nova
+#  availability_zone_fe0:
+#    type: string
+#    default: nova
+#  availability_zone_fe1:
+#    type: string
+#    default: nova
+#  availability_zone_db0:
+#    type: string
+#    default: nova
+#  availability_zone_db1:
+#    type: string
+#    default: nova
+#  availability_zone_be0:
+#    type: string
+#    default: nova
+#  availability_zone_be1:
+#    type: string
+#    default: nova
+#  availability_zone_be2:
+#    type: string
+#    default: nova
+#  availability_zone_be3:
+#    type: string
+#    default: nova
+#  availability_zone_be4:
+#    type: string
+#    default: nova
+
+  vnf_name:
+    type: string
+    description: Unique name for this VNF instance
+    default: This_is_the_SCP_name
+  vnf_id:
+    type: string
+    description: Unique ID for this VNF instance
+    default: This_is_ths_SCP_id
+
+  flavor_scp_be_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_scp_fe_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_smp_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  flavor_db_id:
+    type: string
+    description: flavor type
+    default: a1.Small
+  image_scp_be_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_be
+  image_scp_fe_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_fe    
+  image_smp_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_smp
+  image_db_id:
+    type: string
+    description: Image use to boot a server
+    default: asc_base_image_db
+
+  int_vscp_fe_cluster_net_id:
+    type: string
+    description: LAN2 FE Cluster/KA
+  int_vscp_fe_cluster_cidr:
+    type: string
+    description: Private Network2 Address (CIDR notation)
+  int_vscp_cluster_net_id:
+    type: string
+    description: LAN3 Cluster
+  int_vscp_cluster_cidr:
+    type: string
+    description: Private Network3 Address (CIDR notation)
+  int_vscp_db_network_net_id:
+    type: string
+    description: LAN4 DB
+  int_vscp_db_network_cidr:
+    type: string
+    description: Private Network4 Address (CIDR notation)
+  SIGNET_vrf_A1_direct_net_id:
+    type: string
+    description: Network name for SIGTRAN_A
+  SIGNET_vrf_B1_direct_net_id:
+    type: string
+    description: Network name for SIGTRAN_B
+  Cricket_OCS_protected_net_id:
+    type: string
+    description: Network name for CRICKET_OCS
+  OAM_direct_net_id:
+    type: string
+    description: Network name for OAM
+  be0_Cricket_OCS_protected_ips:
+    type: string
+    label: be0 port 5 OAM ip address
+    description: be0 port 5 OAM ip address
+  be1_Cricket_OCS_protected_ips:
+    type: string
+    label: be1 port 5 OAM ip address
+    description: be1 port 5 OAM ip address
+  be2_Cricket_OCS_protected_ips:
+    type: string
+    label: be2 port 5 OAM ip address
+    description: be2 port 5 OAM ip address
+  be3_Cricket_OCS_protected_ips:
+    type: string
+    label: be3 port 5 OAM ip address
+    description: be3 port 5 OAM ip address
+  be4_Cricket_OCS_protected_ips:
+    type: string
+    label: be4 port 5 OAM ip address
+    description: be4 port 5 OAM ip address
+  be0_OAM_direct_ips:
+    type: string
+    label: be0 port 7 OAM ip address
+    description: be0 port 7 OAM ip address
+  be1_OAM_direct_ips:
+    type: string
+    label: be1 port 7 OAM ip address
+    description: be1 port 7 OAM ip address
+  be2_OAM_direct_ips:
+    type: string
+    label: be2 port 7 OAM ip address
+    description: be2 port 7 OAM ip address
+  be3_OAM_direct_ips:
+    type: string
+    label: be3 port 7 OAM ip address
+    description: be3 port 7 OAM ip address
+  be4_OAM_direct_ips:
+    type: string
+    label: be4 port 7 OAM ip address
+    description: be4 port 7 OAM ip address
+  fe0_SIGNET_vrf_A1_direct_ips:
+    type: string
+    label: fe0 port 0 SIGTRAN ip address
+    description: fe0 port 0 SIGTRAN ip address
+  fe0_OAM_direct_ips:
+    type: string
+    label: fe0 port 7 OAM ip address
+    description: fe0 port 7 OAM ip address
+  fe1_SIGNET_vrf_B1_direct_ips:
+    type: string
+    label: fe1 port 1 SIGTRAN ip address
+    description: fe1 port 1 SIGTRAN ip address
+  fe1_OAM_direct_ips:
+    type: string
+    label: fe1 port 7 OAM ip address
+    description: fe1 port 7 OAM ip address
+  smp0_OAM_direct_ips:
+    type: string
+    label: smp0 port 7 OAM ip address
+    description: smp0 port 7 OAM ip address
+  smp1_OAM_direct_ips:
+    type: string
+    label: smp1 port 7 OAM ip address
+    description: smp1 port 7 OAM ip address
+  db0_OAM_direct_ips:
+    type: string
+    label: db0 port 7 OAM ip address
+    description: smp0 port 7 OAM ip address
+  db1_OAM_direct_ips:
+    type: string
+    label: smp1 port 7 OAM ip address
+    description: db1 port 7 OAM ip address
+  vm_scp_be0_name:
+    type: string
+    default: vSCP_BE0
+    description: name of VM
+  vm_scp_be1_name:
+    type: string
+    default: vSCP_BE1
+    description: name of VM    
+  vm_scp_be2_name:
+    type: string
+    default: vSCP_BE2
+    description: name of VM
+  vm_scp_be3_name:
+    type: string
+    default: vSCP_BE3
+    description: name of VM
+  vm_scp_be4_name:
+    type: string
+    default: vSCP_BE4
+    description: name of VM
+  vm_scp_fe0_name:
+    type: string
+    default: vSCP_FE0
+    description: name of VM
+  vm_scp_fe1_name:
+    type: string
+    default: vSCP_FE1
+    description: name of VM
+  vm_smp0_name:
+    type: string
+    default: vSMP0
+    description: name of VM
+  vm_smp1_name:
+    type: string
+    default: vSMP1
+    description: name of VM
+  vm_db0_name:
+    type: string
+    default: vDB0
+    description: name of VM
+  vm_db1_name:
+    type: string
+    default: vDB1
+    description: name of VM
+
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be0_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+  be0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+  server_scp_be1:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be1_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be1 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be1_port_3 }
+      - port: { get_resource: be1_port_4 }
+      - port: { get_resource: be1_port_5 }
+      - port: { get_resource: be1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be1_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be1_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+  be1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+  server_scp_be2:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be2_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be2 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be2_port_3 }
+      - port: { get_resource: be2_port_4 }
+      - port: { get_resource: be2_port_5 }
+      - port: { get_resource: be2_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be2_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be2_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be2_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be2_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+  be2_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+  server_scp_be3:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be3_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be3 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be3_port_3 }
+      - port: { get_resource: be3_port_4 }
+      - port: { get_resource: be3_port_5 }
+      - port: { get_resource: be3_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be3_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be3_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be3_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be3_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+  be3_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+  server_scp_be4:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be4_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be4 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be4_port_3 }
+      - port: { get_resource: be4_port_4 }
+      - port: { get_resource: be4_port_5 }
+      - port: { get_resource: be4_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be4_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be4_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be4_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be4_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+  be4_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+  server_scp_fe0:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe0_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe0 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe0_port_0 }
+      - port: { get_resource: fe0_port_2 }
+      - port: { get_resource: fe0_port_3 }
+      - port: { get_resource: fe0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe0_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe0_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_A1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+  fe0_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+  server_scp_fe1:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe1_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe1 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe1_port_1 }
+      - port: { get_resource: fe1_port_2 }
+      - port: { get_resource: fe1_port_3 }
+      - port: { get_resource: fe1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe1_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe1_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_B1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+  fe1_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+  server_smp0:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp0_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp0 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp0_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+  server_smp1:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp1_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp1 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp1_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+  server_db0:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db0_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db0 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db0_port_4 }
+      - port: { get_resource: db0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db0_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+  server_db1:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db1_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db1 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db1_port_4 }
+      - port: { get_resource: db1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db1_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}]
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/heatEnv/artifact_1.yaml b/test-apis-ci/src/test/resources/CI/tests/heatEnv/artifact_1.yaml
new file mode 100644
index 0000000..7d4a85c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/heatEnv/artifact_1.yaml
@@ -0,0 +1,144 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: string
+    description: city name
+    default: Hulon
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+  private_building:
+    type: boolean
+    description: home_number
+    default: true
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/heatEnv/artifact_2.yaml b/test-apis-ci/src/test/resources/CI/tests/heatEnv/artifact_2.yaml
new file mode 100644
index 0000000..2c404f0
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/heatEnv/artifact_2.yaml
@@ -0,0 +1,469 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+parameters:
+  city_name:
+    type: string
+    description: city name
+    default: Hulon
+  address:
+    type: string
+    description: address
+    default: Narkis
+  home_number:
+    type: number
+    description: home_number
+    default: 14
+  private_building:
+    type: boolean
+    description: home_number
+    default: true
+resources:
+  be0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be0_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+  be0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+  server_scp_be1:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be1_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be1 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be1_port_3 }
+      - port: { get_resource: be1_port_4 }
+      - port: { get_resource: be1_port_5 }
+      - port: { get_resource: be1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be1_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be1_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+  be1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+  server_scp_be2:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be2_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be2 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be2_port_3 }
+      - port: { get_resource: be2_port_4 }
+      - port: { get_resource: be2_port_5 }
+      - port: { get_resource: be2_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be2_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be2_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be2_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be2_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+  be2_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+  server_scp_be3:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be3_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be3 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be3_port_3 }
+      - port: { get_resource: be3_port_4 }
+      - port: { get_resource: be3_port_5 }
+      - port: { get_resource: be3_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be3_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be3_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be3_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be3_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+  be3_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+  server_scp_be4:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be4_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be4 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be4_port_3 }
+      - port: { get_resource: be4_port_4 }
+      - port: { get_resource: be4_port_5 }
+      - port: { get_resource: be4_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be4_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+  be4_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  be4_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  be4_port_5:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: Cricket_OCS_protected_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+  be4_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+  server_scp_fe0:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe0_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe0 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe0_port_0 }
+      - port: { get_resource: fe0_port_2 }
+      - port: { get_resource: fe0_port_3 }
+      - port: { get_resource: fe0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe0_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe0_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_A1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+  fe0_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+  server_scp_fe1:
+    type: OS::Nova::Server
+#    depends on: scp_be_wait_condition
+    properties:
+      name: { get_param: vm_scp_fe1_name }
+      image: { get_param: image_scp_fe_id }
+#      availability_zone: { get_param: availability_zone_fe1 }
+      flavor: { get_param: flavor_scp_fe_id }
+      scheduler_hints: { group: { get_resource: FE_Affinity } }
+      networks:
+      - port: { get_resource: fe1_port_1 }
+      - port: { get_resource: fe1_port_2 }
+      - port: { get_resource: fe1_port_3 }
+      - port: { get_resource: fe1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_fe1_name}
+#            wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+  fe1_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: SIGNET_vrf_B1_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+  fe1_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+
+  fe1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: Clustering_Network }
+
+  fe1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+  server_smp0:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp0_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp0 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp0_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+  server_smp1:
+    type: OS::Nova::Server
+    properties:
+      name: { get_param: vm_smp1_name }
+      image: { get_param: image_smp_id }
+#      availability_zone: { get_param: availability_zone_smp1 }
+      flavor: { get_param: flavor_smp_id }
+      scheduler_hints: { group: { get_resource: SMP_Affinity } }
+      networks:
+      - port: { get_resource: smp1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_smp1_name}
+#            wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+  smp1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+  server_db0:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db0_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db0 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db0_port_4 }
+      - port: { get_resource: db0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db0_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db0_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+  server_db1:
+    type: OS::Nova::Server
+#    depends_on: smp_wait_condition
+    properties:
+      name: { get_param: vm_db1_name }
+      image: { get_param: image_db_id }
+#      availability_zone: { get_param: availability_zone_db1 }
+      flavor: { get_param: flavor_db_id }
+      scheduler_hints: { group: { get_resource: DB_Affinity } }
+      networks:
+      - port: { get_resource: db1_port_4 }
+      - port: { get_resource: db1_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_db1_name}
+#            wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+  db1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_resource: DB_Network }
+
+  db1_port_7:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: OAM_direct_net_id }
+      fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}]
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/heatEnv/yuli.yaml b/test-apis-ci/src/test/resources/CI/tests/heatEnv/yuli.yaml
new file mode 100644
index 0000000..7d4a85c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/heatEnv/yuli.yaml
@@ -0,0 +1,144 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: string
+    description: city name
+    default: Hulon
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+  private_building:
+    type: boolean
+    description: home_number
+    default: true
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/BindingAsset.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/BindingAsset.yml
new file mode 100644
index 0000000..5117247
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/BindingAsset.yml
@@ -0,0 +1,14 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+
+node_types:
+  org.openecomp.resource.cp:
+    derived_from: tosca.nodes.Root
+    properties:
+      type:
+        type: string
+        required: false
+    requirements: 
+     - VirtualBinding:
+          capability: tosca.capabilities.network.Bindable
+          relationship: tosca.relationships.network.BindsTo
+          occurrences: [0, UNBOUNDED]
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPHasNoReqCap.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPHasNoReqCap.yml
new file mode 100644
index 0000000..8309df2
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPHasNoReqCap.yml
@@ -0,0 +1,9 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+
+node_types:
+  org.openecomp.resource.cp.CP:
+    derived_from: tosca.nodes.Compute
+    properties:
+      type:
+        type: string
+        required: false
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPHasNoReqCap_DerivedFromMyCompute1.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPHasNoReqCap_DerivedFromMyCompute1.yml
new file mode 100644
index 0000000..478e742
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPHasNoReqCap_DerivedFromMyCompute1.yml
@@ -0,0 +1,9 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+
+node_types:
+  org.openecomp.resource.cp.CP:
+    derived_from: org.openecomp.resource.MyCompute1
+    properties:
+      type:
+        type: string
+        required: false
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPWithAttributes.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPWithAttributes.yml
new file mode 100644
index 0000000..807f7fe
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPWithAttributes.yml
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveCapTest_1.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveCapTest_1.yml
new file mode 100644
index 0000000..b9e6c4f
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveCapTest_1.yml
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute1:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      capaBility: 
+        type: tosca.capabilities.OperatingSystem
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveCapTest_2.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveCapTest_2.yml
new file mode 100644
index 0000000..230e4fa
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveCapTest_2.yml
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute2:
+    derived_from: org.openecomp.resource.MyCompute1
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      Capability: 
+        type: tosca.capabilities.OperatingSystem
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveReqTest_1.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveReqTest_1.yml
new file mode 100644
index 0000000..0d097a8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveReqTest_1.yml
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute1:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - requirEment: 
+          capability: tosca.capabilities.Endpoint
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED] 
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveReqTest_2.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveReqTest_2.yml
new file mode 100644
index 0000000..9cc1f27
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveReqTest_2.yml
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute2:
+    derived_from: org.openecomp.resource.MyCompute1
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - Requirement: 
+          capability: tosca.capabilities.Endpoint
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED] 
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DerivedFromCPWithOwnReq.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DerivedFromCPWithOwnReq.yml
new file mode 100644
index 0000000..3514acf
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DerivedFromCPWithOwnReq.yml
@@ -0,0 +1,14 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+
+node_types:
+  org.openecomp.resource.cp.LAN:
+    derived_from: org.openecomp.resource.cp.CP
+    properties:
+      type:
+        type: string
+        required: false
+    requirements:
+      - virtualLink:
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+          occurrences: [0, UNBOUNDED]
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DerivedFromWebApplication_HasNoReqType.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DerivedFromWebApplication_HasNoReqType.yml
new file mode 100644
index 0000000..7fbf4ec
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DerivedFromWebApplication_HasNoReqType.yml
@@ -0,0 +1,27 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyChildWebApplication:
+    derived_from: tosca.nodes.WebApplication
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - diff: 
+          capability: 
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      deff: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentCapFromRoot.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentCapFromRoot.yml
new file mode 100644
index 0000000..fe79bb3
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentCapFromRoot.yml
@@ -0,0 +1,26 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyAsset:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - test: 
+          capability: tosca.capabilities.Scalable
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqAndCap.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqAndCap.yml
new file mode 100644
index 0000000..798cd5b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqAndCap.yml
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute1:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - DependencY: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      FeaTurE: 
+        type: tosca.capabilities.OperatingSystem
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqCapFromCompute1.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqCapFromCompute1.yml
new file mode 100644
index 0000000..c72d0ee
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqCapFromCompute1.yml
@@ -0,0 +1,22 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute2:
+    derived_from: org.openecomp.resource.MyCompute1
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - diff: 
+          capability: tosca.capabilities.Container
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqCapFromCompute2.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqCapFromCompute2.yml
new file mode 100644
index 0000000..7132ca4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqCapFromCompute2.yml
@@ -0,0 +1,25 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute3:
+    derived_from: org.openecomp.resource.MyCompute1
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - diff: 
+          capability: tosca.capabilities.Container
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      deff: 
+        type: tosca.capabilities.Container
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqFromCompute.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqFromCompute.yml
new file mode 100644
index 0000000..e9438ba
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqFromCompute.yml
@@ -0,0 +1,32 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute1:
+    derived_from: tosca.nodes.Compute
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - test: 
+          capability: tosca.capabilities.Scalable
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/FatherHasNoReqCap.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/FatherHasNoReqCap.yml
new file mode 100644
index 0000000..039ab61
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/FatherHasNoReqCap.yml
@@ -0,0 +1,9 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+
+node_types:
+  org.openecomp.resource.cp.CP:
+    derived_from: tosca.nodes.Root
+    properties:
+      type:
+        type: string
+        required: false
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure01.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure01.yml
new file mode 100644
index 0000000..f20a9eb
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure01.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_boolean:
+          type: list
+          description : another description
+          default:
+            - false
+            - true
+          entry_schema:
+            description: This is my property
+            type: booolean
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure02.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure02.yml
new file mode 100644
index 0000000..f1af89c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure02.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: list
+          description : another description
+          default:
+            - false
+            - truee
+          entry_schema:
+            description: This is my property
+            type: boolean
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure03.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure03.yml
new file mode 100644
index 0000000..974d96b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure03.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: list
+          description : another description
+          default:
+            - false
+            - 3
+          entry_schema:
+            description: This is my property
+            type: boolean
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure04.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure04.yml
new file mode 100644
index 0000000..52377e4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure04.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: list
+          description : another description
+          default:
+            - false
+            - 3.56
+          entry_schema:
+            description: This is my property
+            type: boolean
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure05.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure05.yml
new file mode 100644
index 0000000..c66b434
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure05.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: list
+          description : another description
+          default:
+            - 10000
+            - 3.56
+          entry_schema:
+            description: This is my property
+            type: integer
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure06.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure06.yml
new file mode 100644
index 0000000..79b3c03
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure06.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: list
+          description : another description
+          default:
+            - 10000
+            - aaaa
+          entry_schema:
+            description: This is my property
+            type: integer
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure07.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure07.yml
new file mode 100644
index 0000000..5556e9d
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure07.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: list
+          description : another description
+          default:
+            - 10000
+            - true
+          entry_schema:
+            description: This is my property
+            type: integer
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure08.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure08.yml
new file mode 100644
index 0000000..a3b21a6
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure08.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: list
+          description : another description
+          default:
+            - 10.50
+            - true
+          entry_schema:
+            description: This is my property
+            type: float
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure09.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure09.yml
new file mode 100644
index 0000000..dc28591
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure09.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: list
+          description : another description
+          default:
+            - 10.50
+            - asdc
+          entry_schema:
+            description: This is my property
+            type: float
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure10.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure10.yml
new file mode 100644
index 0000000..e465448
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure10.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: list
+          description : another description
+          default:
+            - 10.50
+            - 500
+          entry_schema:
+            description: This is my property
+            type: float
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure11.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure11.yml
new file mode 100644
index 0000000..a428b51
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure11.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: list
+          description : another description
+          default:
+            - 10.50
+            - 500.0@
+          entry_schema:
+            description: This is my property
+            type: float
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure12.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure12.yml
new file mode 100644
index 0000000..d840253
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure12.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: list
+          description : another description
+          default:
+            - 10000
+            - 3#
+          entry_schema:
+            description: This is my property
+            type: integer
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure13.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure13.yml
new file mode 100644
index 0000000..4eb5988
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure13.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: list
+          description : another description
+          default:
+            - false
+            - true%
+          entry_schema:
+            description: This is my property
+            type: boolean
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure14.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure14.yml
new file mode 100644
index 0000000..ad263f3
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure14.yml
@@ -0,0 +1,18 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: list
+          description : another description
+          default:
+            - false
+            - falsee
+            - true
+          entry_schema:
+            description: This is my property
+            type: boolean
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure15.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure15.yml
new file mode 100644
index 0000000..93e8caa
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure15.yml
@@ -0,0 +1,19 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: list
+          description : another description
+          default:
+            - 10.5
+            - 10.6x
+            - 20.5
+            - 30.5
+          entry_schema:
+            description: This is my property
+            type: float
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure16.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure16.yml
new file mode 100644
index 0000000..ed8ea4d
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure16.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_boolean:
+          type: koko
+          description : another description
+          default:
+            - false
+            - true
+          entry_schema:
+            description: This is my property
+            type: boolean
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure01.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure01.yml
new file mode 100644
index 0000000..c7ff074
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure01.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_boolean:
+          type: map
+          description : another description
+          default:
+            - false
+            - true
+          entry_schema:
+            description: This is my property
+            type: booolean
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure02.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure02.yml
new file mode 100644
index 0000000..d9abb87
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure02.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: map
+          description : another description
+          default:
+            - false
+            - truee
+          entry_schema:
+            description: This is my property
+            type: boolean
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure03.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure03.yml
new file mode 100644
index 0000000..e8f9b6e
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure03.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: map
+          description : another description
+          default:
+            - false
+            - 3
+          entry_schema:
+            description: This is my property
+            type: boolean
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure04.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure04.yml
new file mode 100644
index 0000000..d9dc4f9
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure04.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: map
+          description : another description
+          default:
+            - false
+            - 3.56
+          entry_schema:
+            description: This is my property
+            type: boolean
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure05.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure05.yml
new file mode 100644
index 0000000..aba6ff1
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure05.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: map
+          description : another description
+          default:
+            - 10000
+            - 3.56
+          entry_schema:
+            description: This is my property
+            type: integer
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure06.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure06.yml
new file mode 100644
index 0000000..f27904d
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure06.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: map
+          description : another description
+          default:
+            - 10000
+            - aaaa
+          entry_schema:
+            description: This is my property
+            type: integer
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure07.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure07.yml
new file mode 100644
index 0000000..ea123f3
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure07.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: map
+          description : another description
+          default:
+            - 10000
+            - true
+          entry_schema:
+            description: This is my property
+            type: integer
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure08.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure08.yml
new file mode 100644
index 0000000..87b51fb
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure08.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: map
+          description : another description
+          default:
+            - 10.50
+            - true
+          entry_schema:
+            description: This is my property
+            type: float
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure09.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure09.yml
new file mode 100644
index 0000000..2fc8ded
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure09.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: map
+          description : another description
+          default:
+            - 10.50
+            - asdc
+          entry_schema:
+            description: This is my property
+            type: float
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure10.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure10.yml
new file mode 100644
index 0000000..3ab449d
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure10.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: map
+          description : another description
+          default:
+            - 10.50
+            - 500
+          entry_schema:
+            description: This is my property
+            type: float
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure11.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure11.yml
new file mode 100644
index 0000000..e437de8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure11.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: map
+          description : another description
+          default:
+            - 10.50
+            - 500.0@
+          entry_schema:
+            description: This is my property
+            type: float
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure12.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure12.yml
new file mode 100644
index 0000000..f2fbc7c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure12.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: map
+          description : another description
+          default:
+            - 10000
+            - 3#
+          entry_schema:
+            description: This is my property
+            type: integer
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure13.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure13.yml
new file mode 100644
index 0000000..e375aae
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure13.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: map
+          description : another description
+          default:
+            - false
+            - true%
+          entry_schema:
+            description: This is my property
+            type: boolean
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure14.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure14.yml
new file mode 100644
index 0000000..e087212
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure14.yml
@@ -0,0 +1,18 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: map
+          description : another description
+          default:
+            - false
+            - falsee
+            - true
+          entry_schema:
+            description: This is my property
+            type: boolean
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure15.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure15.yml
new file mode 100644
index 0000000..3923ee1
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure15.yml
@@ -0,0 +1,19 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_property:
+          type: map
+          description : another description
+          default:
+            - 10.5
+            - 10.6x
+            - 20.5
+            - 30.5
+          entry_schema:
+            description: This is my property
+            type: float
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure16.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure16.yml
new file mode 100644
index 0000000..ed8ea4d
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure16.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_boolean:
+          type: koko
+          description : another description
+          default:
+            - false
+            - true
+          entry_schema:
+            description: This is my property
+            type: boolean
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MyFatherCompute_NoReqCap.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MyFatherCompute_NoReqCap.yml
new file mode 100644
index 0000000..dfc564b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MyFatherCompute_NoReqCap.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyFatherCompute:
+    derived_from: tosca.nodes.Compute
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameCapAsCompute.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameCapAsCompute.yml
new file mode 100644
index 0000000..533333e
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameCapAsCompute.yml
@@ -0,0 +1,26 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+  org.openecomp.resource.MyCompute1:
+        derived_from: tosca.nodes.Compute
+        attributes:
+          private_address:
+            type: string
+          public_address:
+            type: string
+          networks:
+            type: map
+            entry_schema:
+              type: tosca.datatypes.network.NetworkInfo
+          ports:
+            type: map
+            entry_schema:
+              type: tosca.datatypes.network.PortInfo
+        capabilities:
+          host: 
+            type: tosca.capabilities.Container
+          endpoint :
+            type: tosca.capabilities.Endpoint.Admin 
+          OS: 
+            type: tosca.capabilities.OperatingSystem
+          BINDING:
+            type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameReqAsCompute.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameReqAsCompute.yml
new file mode 100644
index 0000000..9d8b2d8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameReqAsCompute.yml
@@ -0,0 +1,23 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+  org.openecomp.resource.MyCompute1:
+        derived_from: tosca.nodes.Compute
+        attributes:
+          private_address:
+            type: string
+          public_address:
+            type: string
+          networks:
+            type: map
+            entry_schema:
+              type: tosca.datatypes.network.NetworkInfo
+          ports:
+            type: map
+            entry_schema:
+              type: tosca.datatypes.network.PortInfo
+        requirements:
+          - LOCAL_STORAGE: 
+              capability: tosca.capabilities.Attachment
+              node: tosca.nodes.BlockStorage
+              relationship: tosca.relationships.AttachesTo
+              occurrences: [0, 1]
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameReqAsCompute_DerivedFromMyCompute1.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameReqAsCompute_DerivedFromMyCompute1.yml
new file mode 100644
index 0000000..a5413e5
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameReqAsCompute_DerivedFromMyCompute1.yml
@@ -0,0 +1,23 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+  org.openecomp.resource.MyCompute2:
+        derived_from: org.openecomp.resource.MyCompute1
+        attributes:
+          private_address:
+            type: string
+          public_address:
+            type: string
+          networks:
+            type: map
+            entry_schema:
+              type: tosca.datatypes.network.NetworkInfo
+          ports:
+            type: map
+            entry_schema:
+              type: tosca.datatypes.network.PortInfo
+        requirements:
+          - LOCAL_STORAGE: 
+              capability: tosca.capabilities.Attachment
+              node: tosca.nodes.BlockStorage
+              relationship: tosca.relationships.AttachesTo
+              occurrences: [0, 2]
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/computeCap11.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/computeCap11.yml
new file mode 100644
index 0000000..9cea0b9
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/computeCap11.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vfc.vfc3:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [1, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        occurrences: [1, 1]
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/computeCap1UNBOUNDED.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/computeCap1UNBOUNDED.yml
new file mode 100644
index 0000000..24efc27
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/computeCap1UNBOUNDED.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vfc.vfc2:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [1, 1]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        occurrences: [1, UNBOUNDED]
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/derivedFromMyCompute.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/derivedFromMyCompute.yml
new file mode 100644
index 0000000..237bec1
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/derivedFromMyCompute.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.DerivedFromMyCompute:
+    derived_from: org.openecomp.resource.MyCompute
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/derivedFromWebAppDerivedReqCap.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/derivedFromWebAppDerivedReqCap.yml
new file mode 100644
index 0000000..0679bff
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/derivedFromWebAppDerivedReqCap.yml
@@ -0,0 +1,15 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyWebApp:
+    derived_from: tosca.nodes.WebApplication
+    properties:
+      context_root:
+        type: string
+    capabilities:
+      app_endpoint: 
+        type: tosca.capabilities.Endpoint.Admin #derived from WebApplication's tosca.capabilities.Endpoint "app_endpoint"
+    requirements:
+      - host: 
+          capability: tosca.capabilities.Container.Docker #derived from WebApplication's tosca.capabilities.Container "host"
+          node: tosca.nodes.WebServer
+          relationship: tosca.relationships.HostedOn
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importAttributeSuccessFlow.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importAttributeSuccessFlow.yml
new file mode 100644
index 0000000..0fa9a30
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importAttributeSuccessFlow.yml
@@ -0,0 +1,53 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyComputeTest:
+    derived_from: tosca.nodes.Root
+    properties:
+      myProp:
+        type: tosca.datatypes.Credential
+        descritpion: hey Desc
+        default: 
+          "protocol" : hey1
+          "token_type" : hey2
+          "token" : hey3
+          "keys" : {"keyA" : "val1" , keyB : val2}
+          "user" : hey4
+    attributes:
+      private_address:
+        type: string
+        status: supported
+        default: myDefault
+      public_address:
+        type: string
+      networks:
+        type: map
+        default: {keyA : val1 , keyB : val2}
+        entry_schema:
+          type: string
+      ports:
+        type: tosca.datatypes.Credential
+        description: this is my description
+        default:
+          "protocol" : hey1
+          "token_type" : hey2
+          "token" : hey3
+          "keys" : {"keyA" : "val1" , keyB : val2}
+          "user" : hey4
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importCapabilityNameExistsOnParent.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importCapabilityNameExistsOnParent.yml
new file mode 100644
index 0000000..4d6db6c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importCapabilityNameExistsOnParent.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute1:
+    derived_from: tosca.nodes.Compute
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      Binding: #"binding" exists on parent
+        type: tosca.capabilities.OperatingSystem
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importDuplicateCapability.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importDuplicateCapability.yml
new file mode 100644
index 0000000..fcc3952
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importDuplicateCapability.yml
@@ -0,0 +1,42 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED] 
+      - LOCAL_Storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      Scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importDuplicateRequirements.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importDuplicateRequirements.yml
new file mode 100644
index 0000000..7cab3ac
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importDuplicateRequirements.yml
@@ -0,0 +1,40 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED] 
+      - LOCAL_Storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertyBadDefault.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertyBadDefault.yml
new file mode 100644
index 0000000..a3ff088
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertyBadDefault.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.TestResource:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_prop:
+          type: list
+          description : another description
+          default:
+            - 12
+            - true
+          entry_schema:
+            description: This is my property
+            type: boolean
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertyGoodDefault.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertyGoodDefault.yml
new file mode 100644
index 0000000..2f864a7
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertyGoodDefault.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_prop:
+          type: list
+          description : another description
+          default:
+            - false
+            - true
+          entry_schema:
+            description: This is my property
+            type: string
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertySuccessFlow.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertySuccessFlow.yml
new file mode 100644
index 0000000..fd52df5
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertySuccessFlow.yml
@@ -0,0 +1,198 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        my_boolean:
+          type: list
+          description : another description
+          default:
+            - false
+            - true
+          entry_schema:
+            description: This is my property
+            type: boolean
+        my_boolean_array:
+          type: list
+          description : another description
+          default: [ true , false ]
+          entry_schema:
+            description: This is my property
+            type: boolean
+        duplicate_boolean_values:
+          type: list
+          description : another description
+          default: [ true , false , true ]
+          entry_schema:
+            description: This is my property
+            type: boolean
+        boolean_null_value:
+          type: list
+          description : another description
+          default:
+            - true
+            -
+            - false
+          entry_schema:
+            description: This is my property
+            type: boolean
+        my_integers:
+          type: list
+          description : another description
+          default:
+            - 0
+            - 1000
+            - -1000
+            - 50
+          entry_schema:
+            description: This is my property
+            type: integer
+        my_integers_array:
+          type: list
+          description : another description
+          default: [ 10 , -1000, 0 ]
+          entry_schema:
+            description: This is my property
+            type: integer
+        duplicate_integers_values:
+          type: list
+          description : another description
+          default: [ 10 , 10, -1000, 0 ]
+          entry_schema:
+            description: This is my property
+            type: integer
+        integer_null_value:
+          type: list
+          description : another description
+          default:
+            - 1000
+            -
+            - 2000
+          entry_schema:
+            description: This is my property
+            type: integer
+        my_string:
+          type: list
+          description : another description
+          default:
+            - <b>asdc<b>
+            - $?^@ecomp$!#%()_-~@+*^...;;/w#
+            - uc
+          entry_schema:
+            description: This is my property
+            type: string
+        my_string_array:
+          type: list
+          description : another description
+          default: [  <b>AAA</b>, ~$~#bbb%^*_-, qwe , 1.3 , <b>500</b> , true ]
+          entry_schema:
+            description: This is my property
+            type: string
+        string_null_value:
+          type: list
+          description : another description
+          default:
+            - <b>asdc<b>
+            -
+            - uc
+          entry_schema:
+            description: This is my property
+            type: string
+        string_space_value:
+          type: list
+          description : another description
+          default:
+            - <b>  asdc<b>
+            -    
+            -     uc
+          entry_schema:
+            description: This is my property
+            type: string
+        duplicate_string_values:
+          type: list
+          description : another description
+          default:
+            - asdc
+            - asdc
+            - uc
+          entry_schema:
+            description: This is my property
+            type: string
+        my_float:
+          type: list
+          description : another description
+          default:
+            - 6
+            - 1000.000001
+            - -3.0f
+          entry_schema:
+            description: This is my property
+            type: float
+        my_float_array:
+          type: list
+          description : another description
+          default: [ 0.01 , -5.0 , 2.1f ]
+          entry_schema:
+            description: This is my property
+            type: float
+        duplicate_float_values:
+          type: list
+          description : another description
+          default:
+            - 0.0
+            - 0.0
+            - 4.555555
+          entry_schema:
+            description: This is my property
+            type: float
+        float_no_default_values:
+          type: list
+          description : another description
+          default:
+          entry_schema:
+            description: This is my property
+            type: float
+        float_null_value:
+          type: list
+          description : another description
+          default:
+            - 6
+            -
+            - -3.0f
+          entry_schema:
+            description: This is my property
+            type: float
+        float_space_value:
+          type: list
+          description : another description
+          default:
+            - 6
+            - 
+            - -3.0f
+          entry_schema:
+            description: This is my property
+            type: float
+        integer_no_default_values:
+          type: list
+          description : another description
+          default:
+          entry_schema:
+            description: This is my property
+            type: integer
+        string_no_default_values:
+          type: list
+          description : another description
+          default:
+          entry_schema:
+            description: This is my property
+            type: string
+        boolean_no_default_values:
+          type: list
+          description : another description
+          default:
+          entry_schema:
+            description: This is my property
+            type: boolean
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importMapPropertySuccessFlow.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importMapPropertySuccessFlow.yml
new file mode 100644
index 0000000..f856603
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importMapPropertySuccessFlow.yml
@@ -0,0 +1,452 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.LinkTest:
+      derived_from: tosca.nodes.Root
+      properties:
+        string_prop01:
+          type: map
+          description : another description
+          default: {keyA : val1 , keyB : val2}
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop02:
+          type: map
+          description : another description
+          default: {keyA : "val1" , keyB : "val2"}
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop03:
+          type: map
+          description : another description
+          default: {"keyA" : "val1" , keyB : val2}
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop04:
+          type: map
+          description : another description
+          default: {"keyA" : 10 , keyB : <b>true</b> }
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop05:
+          type: map
+          description : another description
+          default: {"keyA" :  , keyB : "Big" }
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop06:
+          type: map
+          description : another description
+          default: {"keyA" : aaaA  , keyB : null }
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop07:
+          type: map
+          description : another description
+          default: {"keyA" : NULL  , keyB : Null }
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop08:
+          type: map
+          description : another description
+          default: {"keyA" : ""  , keyB : "abcd" }
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop09:
+          type: map
+          description : another description
+          default: {"keyA" : "  "  , keyB : "abcd" }
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop10:
+          type: map
+          description : another description
+          default: {"keyA" : "    aaaa"  , keyB : "    bbbb" }
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop11:
+          type: map
+          description : another description
+          default: {"keyA" : "aaaa      "  , keyB : "bbbb     " }
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop12:
+          type: map
+          description : another description
+          default: {"keyA" : "     aaaa      "  , keyB : "     bbbb    ccccc   " }
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop13:
+          type: map
+          description : another description
+          default:
+            keyA : "aaaa"
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop14:
+          type: map
+          description : another description
+          default:
+            keyA : "      aaaa        "
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop15:
+          type: map
+          description : another description
+          default:
+            keyA : AbcD
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop16:
+          type: map
+          description : another description
+          default:
+            keyA :         AbcD
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop17:
+          type: map
+          description : another description
+          default:
+            keyA :         AbcD      
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop18:
+          type: map
+          description : another description
+          default:
+            keyA : <b>AbcD</b>      
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop19:
+          type: map
+          description : another description
+          default:
+            keyA : <b>AbcD      
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop20:
+          type: map
+          description : another description
+          default:
+            keyA : aaaa
+            keya : aaaa
+            Keya : Aaaa
+            KEYA : nnnn
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop21:
+          type: map
+          description : another description
+          default:
+            keyA : NULL
+            keyB : null
+            keyC : Null
+          entry_schema:
+            description: This is my property
+            type: string
+        string_prop22:
+          type: map
+          description : another description
+          default:
+          entry_schema:
+            description: This is my property
+            type: string
+        integer_prop01:
+          type: map
+          description : another description
+          default: {keyA : 1 , keyB : 1000}
+          entry_schema:
+            description: This is my property
+            type: integer
+        integer_prop02:
+          type: map
+          description : another description
+          default: {keyA : Null , keyB : NULL ,keyC : null }
+          entry_schema:
+            description: This is my property
+            type: integer
+        integer_prop03:
+          type: map
+          description : another description
+          default: {keyA :  , keyB : -600}
+          entry_schema:
+            description: This is my property
+            type: integer
+        integer_prop03:
+          type: map
+          description : another description
+          default: {keyA :            800  , keyB :          -600}
+          entry_schema:
+            description: This is my property
+            type: integer
+        integer_prop04:
+          type: map
+          description : another description
+          default: {keyA :              , keyB :          -600}
+          entry_schema:
+            description: This is my property
+            type: integer
+        integer_prop05:
+          type: map
+          description : another description
+          default: {keyA : 100              , keyB : 0      }
+          entry_schema:
+            description: This is my property
+            type: integer
+        integer_prop06:
+          type: map
+          description : another description
+          default: {keyA : 100 , keyB : 00}
+          entry_schema:
+            description: This is my property
+            type: integer
+        integer_prop07:
+          type: map
+          description : another description
+          default: {keyA :   100    , keyB :    100        }
+          entry_schema:
+            description: This is my property
+            type: integer
+        integer_prop08:
+          type: map
+          description : another description
+          default:
+            keyA : 100
+            keyB : 200
+          entry_schema:
+            description: This is my property
+            type: integer
+        integer_prop09:
+          type: map
+          description : another description
+          default:
+            keyA :            100
+            keyB : 200           
+          entry_schema:
+            description: This is my property
+            type: integer
+        integer_prop10:
+          type: map
+          description : another description
+          default:
+            keyA : null
+            keyA : Null
+            keyB : 1111
+            keyB : 2222
+          entry_schema:
+            description: This is my property
+            type: integer
+        integer_prop11:
+          type: map
+          description : another description
+          default:
+            keyA : null
+            keyB : Null
+            keyC : NULL
+            keyD : 
+          entry_schema:
+            description: This is my property
+            type: integer
+        integer_prop12:
+          type: map
+          description : another description
+          default:
+          entry_schema:
+            description: This is my property
+            type: integer
+        integer_prop13:
+          type: map
+          description : another description
+          default: {keyA : 100 , keyA : 200}
+          entry_schema:
+            description: This is my property
+            type: integer
+        boolean_prop01:
+          type: map
+          description : another description
+          default: {keyA : true , keyB : false , keyC : false }
+          entry_schema:
+            description: This is my property
+            type: boolean
+        boolean_prop02:
+          type: map
+          description : another description
+          default: {keyA : TRUE , keyB : FALSE , keyC : False }
+          entry_schema:
+            description: This is my property
+            type: boolean
+        boolean_prop03:
+          type: map
+          description : another description
+          default:
+            keyA : null
+            keyB : Null
+            keyC : NULL
+            keyD : 
+          entry_schema:
+            description: This is my property
+            type: boolean
+        boolean_prop04:
+          type: map
+          description : another description
+          default: {keyA : Null , keyB : NULL ,keyC : null ,keyD : }
+          entry_schema:
+            description: This is my property
+            type: boolean
+        boolean_prop05:
+          type: map
+          description : another description
+          default: {keyA :      true , keyB : false     , keyC :     false       }
+          entry_schema:
+            description: This is my property
+            type: boolean
+        boolean_prop06:
+          type: map
+          description : another description
+          default:
+            keyA :     true
+            keyB : true
+            keyC :       false
+          entry_schema:
+            description: This is my property
+            type: boolean
+        boolean_prop07:
+          type: map
+          description : another description
+          default:
+          entry_schema:
+            description: This is my property
+            type: boolean
+        boolean_prop08:
+          type: map
+          description : another description
+          default:
+            keyA : false
+            keyA : true
+            keyB : true
+            keyB : false
+          entry_schema:
+            description: This is my property
+            type: boolean
+        boolean_prop09:
+          type: map
+          description : another description
+          default: {keyA : true,keyA : false,keyB : false,keyB : true}
+          entry_schema:
+            description: This is my property
+            type: boolean
+        float_prop01:
+          type: map
+          description : another description
+          default: {keyA : 1.20 , keyB : 3.56f , keyC : 33}
+          entry_schema:
+            description: This is my property
+            type: float
+        float_prop02:
+          type: map
+          description : another description
+          default: {keyA : 0.00, keyB : 0.0 , keyC : 0 }
+          entry_schema:
+            description: This is my property
+            type: float
+        float_prop03:
+          type: map
+          description : another description
+          default: {keyA : null, keyB : Null , keyC : NULL , keyD : }
+          entry_schema:
+            description: This is my property
+            type: float
+        float_prop04:
+          type: map
+          description : another description
+          default: {keyA :      1.20 , keyB : 3.56f       , keyC :      33        }
+          entry_schema:
+            description: This is my property
+            type: float
+        float_prop05:
+          type: map
+          description : another description
+          default:
+            keyA : 33
+            keyB : 1.2000
+            keyC : 3.607f
+            keyD : 0
+          entry_schema:
+            description: This is my property
+            type: float
+        float_prop06:
+          type: map
+          description : another description
+          default:
+            keyA :       33
+            keyB : 1.2000      
+            keyC :    3.607f 
+          entry_schema:
+            description: This is my property
+            type: float
+        float_prop07:
+          type: map
+          description : another description
+          default:
+            keyA : null
+            keyB : Null
+            keyC : NULL
+            keyD : 
+          entry_schema:
+            description: This is my property
+            type: float
+        float_prop08:
+          type: map
+          description : another description
+          default:
+          entry_schema:
+            description: This is my property
+            type: float
+        float_prop09:
+          type: map
+          description : another description
+          default:
+            keyA : 3.5
+            keyA : 0.01
+            keyB : 3.6
+            keyB : 
+          entry_schema:
+            description: This is my property
+            type: float
+        float_prop10:
+            type: map
+            description : another description
+            default: {keyA : 0.0002}
+            entry_schema:
+              description: This is my property
+              type: float
+        float_prop11:
+          type: map
+          description : another description
+          default: {keyA : 0.000 , keyA : 003.56f, keyB : 33}
+          entry_schema:
+            description: This is my property
+            type: float
+      capabilities:
+        link:
+          type: tosca.capabilities.network.Linkable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importRequirementNameExistsOnParent.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importRequirementNameExistsOnParent.yml
new file mode 100644
index 0000000..e4d626f
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importRequirementNameExistsOnParent.yml
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute1:
+    derived_from: tosca.nodes.Compute
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - Local_Storage: 
+          capability: tosca.capabilities.Endpoint
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED] 
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importRequirementNameExistsOnParent_DerivedFromMyCompute1.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importRequirementNameExistsOnParent_DerivedFromMyCompute1.yml
new file mode 100644
index 0000000..7ae9552
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importRequirementNameExistsOnParent_DerivedFromMyCompute1.yml
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute2:
+    derived_from: org.openecomp.resource.MyCompute1
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - Local_Storage: 
+          capability: tosca.capabilities.Endpoint
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED] 
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/missingCapInCapDefinition.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/missingCapInCapDefinition.yml
new file mode 100644
index 0000000..301116c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/missingCapInCapDefinition.yml
@@ -0,0 +1,37 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+description: Template for vSCP -- connectable to OCS-FW -- temporary model for 1602 demo
+
+############################
+# The model capture four sub-components (VDUs) and their connectivity to six
+# networks. 
+############################
+
+node_types:
+
+#The node type for vSCP
+#used for substitution mapping, or to describe vSCP resource in ASDC studio
+  org.openecomp.resource.vSCP-03-16: 
+    derived_from: tosca.nodes.Root
+    requirements: 
+      - sigtran_connection1:
+          capability: tosca.capabilities.Node
+      - sigtran_connection2:
+          capability: tosca.capabilities.Node
+      - ocs_connection:
+          capability: tosca.capabilities.Node
+      - oam_connection: 
+          capability: tosca.capabilities.Node
+      - firewall:
+          capability: tosca.capabilities.Node
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: org.openecomp.capabilities.networkInterfaceNotFound
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/missingCapInReqDefinition.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/missingCapInReqDefinition.yml
new file mode 100644
index 0000000..d100daf
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/missingCapInReqDefinition.yml
@@ -0,0 +1,25 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+description: Template for vSCP -- connectable to OCS-FW -- temporary model for 1602 demo
+
+############################
+# The model capture four sub-components (VDUs) and their connectivity to six
+# networks. 
+############################
+
+node_types:
+
+#The node type for vSCP
+#used for substitution mapping, or to describe vSCP resource in ASDC studio
+  org.openecomp.resource.vSCP-03-16: 
+    derived_from: tosca.nodes.Root
+    requirements: 
+      - sigtran_connection1:
+          capability: org.openecomp.capabilities.networkInterfaceNotFound
+      - sigtran_connection2:
+          capability: tosca.capabilities.Node
+      - ocs_connection:
+          capability: tosca.capabilities.Node
+      - oam_connection: 
+          capability: tosca.capabilities.Node
+      - firewall:
+          capability: tosca.capabilities.Node
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myChildCompute_NoReqCap.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myChildCompute_NoReqCap.yml
new file mode 100644
index 0000000..cc5b202
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myChildCompute_NoReqCap.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyChildCompute:
+    derived_from: org.openecomp.resource.MyFatherCompute
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myChildWebApp_DerivedFromContainer.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myChildWebApp_DerivedFromContainer.yml
new file mode 100644
index 0000000..b7859d4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myChildWebApp_DerivedFromContainer.yml
@@ -0,0 +1,15 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyChildWebApp:
+    derived_from: org.openecomp.resource.MyWebApp
+    properties:
+      context_root:
+        type: string
+    capabilities:
+      app_endpoint: 
+        type: tosca.capabilities.Endpoint
+    requirements:
+      - host: 
+          capability: tosca.capabilities.Container
+          node: tosca.nodes.WebServer
+          relationship: tosca.relationships.HostedOn
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myCompute.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myCompute.yml
new file mode 100644
index 0000000..98bf9b7
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myCompute.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeDerivedFromNotExists.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeDerivedFromNotExists.yml
new file mode 100644
index 0000000..2b28073
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeDerivedFromNotExists.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.RootNotExists
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeIncorrectDefenitionVersionValue.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeIncorrectDefenitionVersionValue.yml
new file mode 100644
index 0000000..2fa3ad0
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeIncorrectDefenitionVersionValue.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: toscaSimpleYaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeIncorrectNameSpaceFormat.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeIncorrectNameSpaceFormat.yml
new file mode 100644
index 0000000..d1a613f
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeIncorrectNameSpaceFormat.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource2.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeNoDefenitionVersion.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeNoDefenitionVersion.yml
new file mode 100644
index 0000000..8084d04
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeNoDefenitionVersion.yml
@@ -0,0 +1,34 @@
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeOccurencySuccess.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeOccurencySuccess.yml
new file mode 100644
index 0000000..40ae610
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeOccurencySuccess.yml
@@ -0,0 +1,77 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [1, UNBOUNDED]
+      - local_storage200: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [1, 1]
+      - local_storage300: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [1, 10]
+      - local_storage400: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [1, 10000000]
+      - local_storage500: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [2, 3]
+      - local_storageNoOccurrences600: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo         
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpointNoOccurrence :
+        type: tosca.capabilities.Endpoint.Admin 
+      endpoint200 :
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences: [1, 2]  
+      endpoint300 :
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences: [1, 1]  
+      endpoint400 :
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences: [1, 10]  
+      endpoint500 :
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences: [1, 10000000]  
+      endpoint600 :
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences: [1, UNBOUNDED  ]   
+      endpoint700 :
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences: [2, 4  ]  
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeParssingFalure.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeParssingFalure.yml
new file mode 100644
index 0000000..b243add
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeParssingFalure.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requiremens:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilitis:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeReqNameExistsOnDerived.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeReqNameExistsOnDerived.yml
new file mode 100644
index 0000000..43d92d1
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeReqNameExistsOnDerived.yml
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute1:
+    derived_from: tosca.nodes.Compute
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - Local_Storage: #"local_storage" exists on parent
+          capability: tosca.capabilities.Endpoint
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED] 
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeVF.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeVF.yml
new file mode 100644
index 0000000..90e771d
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeVF.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.VF.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeWithNodeTypesTwice.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeWithNodeTypesTwice.yml
new file mode 100644
index 0000000..73b201e
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeWithNodeTypesTwice.yml
@@ -0,0 +1,42 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
+  
+  org.openecomp.resource.example.TransactionSubsystem:
+    derived_from: tosca.nodes.Root
+    capabilities:
+      message_receiver: tosca.capabilities.Endpoint
+    requirements:
+      - database_endpoint: tosca.capabilities.Endpoint.Database
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeWithTopologyTemplate.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeWithTopologyTemplate.yml
new file mode 100644
index 0000000..c451eb2
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeWithTopologyTemplate.yml
@@ -0,0 +1,44 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+topology_template:
+  description: Template of an application connecting to a database.
+ 
+  node_templates:
+    web_app:
+      type: tosca.nodes.WebApplication.MyWebApp
+      requirements:
+        - host: web_server
+        - database_endpoint: db
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myFatherWebApp_derviedFromDocker.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myFatherWebApp_derviedFromDocker.yml
new file mode 100644
index 0000000..43a9a17
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myFatherWebApp_derviedFromDocker.yml
@@ -0,0 +1,16 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyWebApp:
+    derived_from: tosca.nodes.WebApplication
+    properties:
+      context_root:
+        type: string
+    capabilities:
+      app_endpoint: 
+        type: tosca.capabilities.Endpoint
+    requirements:
+      - HOSt: 
+          capability: tosca.capabilities.Container.Docker
+          node: tosca.nodes.WebServer
+          relationship: tosca.relationships.HostedOn
+          occurrences: [ 1, 2 ]
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myLinkVL.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myLinkVL.yml
new file mode 100644
index 0000000..7c796d2
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myLinkVL.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vl.MyLink:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myPortCP.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myPortCP.yml
new file mode 100644
index 0000000..ff255f2
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myPortCP.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.cp.MyPort:
+    derived_from: org.openecomp.resource.cp.Port
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage: 
+          capability: tosca.capabilities.network.Bindable
+          node: org.openecomp.resource.vl.MyLink
+          relationship: tosca.relationships.BindTo
+          occurrences: [0, UNBOUNDED]  
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/noContent.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/noContent.yml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/noContent.yml
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure01.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure01.yml
new file mode 100644
index 0000000..f007a0f
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure01.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [2, 0]
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure02.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure02.yml
new file mode 100644
index 0000000..0487b63
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure02.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [-1, 2]
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure03.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure03.yml
new file mode 100644
index 0000000..7afdffa
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure03.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [1, -2]
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure04.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure04.yml
new file mode 100644
index 0000000..f8a582f
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure04.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [ , 2]
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure05.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure05.yml
new file mode 100644
index 0000000..f1c6a93
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure05.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [ 1, ]
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure06.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure06.yml
new file mode 100644
index 0000000..b0ef54b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure06.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [ 0 , 0 ]
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure07.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure07.yml
new file mode 100644
index 0000000..afd999f
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure07.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [ @ , 1 ]
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure08.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure08.yml
new file mode 100644
index 0000000..60efc99
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure08.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [ 1.0 , 2.0 ]
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure09.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure09.yml
new file mode 100644
index 0000000..d6ec7ea
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure09.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [ "1" , "2" ]
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure10.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure10.yml
new file mode 100644
index 0000000..27de429
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure10.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [  ]
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure11.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure11.yml
new file mode 100644
index 0000000..5bdae3a
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure11.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+          occurrences: [ UNBOUNDED , UNBOUNDED  ]
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure31.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure31.yml
new file mode 100644
index 0000000..8c3034a
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure31.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+        occurrences: [ 2, 1]  
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure32.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure32.yml
new file mode 100644
index 0000000..4b5eba9
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure32.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+        occurrences: [ -1, 2]  
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure33.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure33.yml
new file mode 100644
index 0000000..9c42e22
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure33.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+        occurrences: [ 1, -2]  
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure34.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure34.yml
new file mode 100644
index 0000000..49953b5
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure34.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+        occurrences: [ , 2]  
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure35.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure35.yml
new file mode 100644
index 0000000..8d8985d
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure35.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+        occurrences: [ 1 , ]  
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure36.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure36.yml
new file mode 100644
index 0000000..1294450
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure36.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+        occurrences: [ 0 , 0 ]  
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure37.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure37.yml
new file mode 100644
index 0000000..618c980
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure37.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+        occurrences: [ 0 , # ]  
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure38.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure38.yml
new file mode 100644
index 0000000..d0c4575
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure38.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+        occurrences: [ 1.0 , 2.0 ]  
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure39.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure39.yml
new file mode 100644
index 0000000..024338d
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure39.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+        occurrences: [ "1" , "2" ]  
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure40.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure40.yml
new file mode 100644
index 0000000..a4a32ba
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure40.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+        occurrences: [  ]  
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure41.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure41.yml
new file mode 100644
index 0000000..c3024a3
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure41.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.MyCompute:
+    derived_from: tosca.nodes.Root
+    attributes:
+      private_address:
+        type: string
+      public_address:
+        type: string
+      networks:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.NetworkInfo
+      ports:
+        type: map
+        entry_schema:
+          type: tosca.datatypes.network.PortInfo
+    requirements:
+      - local_storage100: 
+          capability: tosca.capabilities.Attachment
+          node: tosca.nodes.BlockStorage
+          relationship: tosca.relationships.AttachesTo
+    capabilities:
+      host: 
+        type: tosca.capabilities.Container
+        valid_source_types: [tosca.nodes.SoftwareComponent] 
+      endpoint100 :
+        type: tosca.capabilities.Endpoint.Admin 
+        occurrences: [ UNBOUNDED, UNBOUNDED ]  
+      os: 
+        type: tosca.capabilities.OperatingSystem
+      scalable:
+        type: tosca.capabilities.Scalable
+      binding:
+        type: tosca.capabilities.network.Bindable
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/softwareComponentReq11.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/softwareComponentReq11.yml
new file mode 100644
index 0000000..b9bda18
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/softwareComponentReq11.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vfc.vfc4:
+    derived_from: tosca.nodes.Root
+    properties:
+      # domain-specific software component version
+      component_version: 
+        type: version
+        required: false
+      admin_credential: 
+        type: tosca.datatypes.Credential
+        required: false
+    requirements:
+      - host: 
+          capability: tosca.capabilities.Container
+          relationship: tosca.relationships.HostedOn
+          occurrences: [1, 1]   
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/softwareComponentReq12.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/softwareComponentReq12.yml
new file mode 100644
index 0000000..9676bcd
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/softwareComponentReq12.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types: 
+  org.openecomp.resource.vfc.vfc1:
+    derived_from: tosca.nodes.Root
+    properties:
+      # domain-specific software component version
+      component_version: 
+        type: version
+        required: false
+      admin_credential: 
+        type: tosca.datatypes.Credential
+        required: false
+    requirements:
+      - host: 
+          capability: tosca.capabilities.Container
+          relationship: tosca.relationships.HostedOn
+          occurrences: [1, 2]   
diff --git a/test-apis-ci/src/test/resources/CI/tests/testCsarAPI/topology.txt b/test-apis-ci/src/test/resources/CI/tests/testCsarAPI/topology.txt
new file mode 100644
index 0000000..f46af26
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/testCsarAPI/topology.txt
@@ -0,0 +1 @@
+{"id":"c25811fc-e03f-401d-93ca-45d9bd312703","delegateId":"17710a88-f3d8-483d-aded-afee2906a8c1","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-webServer","version":"1.0.0.wd03-SNAPSHOT"},{"name":"apache-type","version":"2.0.0-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Compute_2","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}},{"key":"Apache","value":{"type":"alien.nodes.Apache","name":null,"properties":{"port":"80","document_root":"/var/www","version":"2.4"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"attachToCompute_2":{"type":"tosca.relationships.AttachTo","target":"Compute_2","requirementName":"dependency","requirementType":"tosca.capabilities.Root","targetedCapabilityName":"attach"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"secure_endpoint":{"type":"tosca.capabilities.Endpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"app_endpoint":{"type":"tosca.capabilities.Endpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.ApacheContainer","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":null}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}}]}
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/testCsarAPI/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/testCsarAPI/topologyTemplate.txt
new file mode 100644
index 0000000..f3fdf02
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/testCsarAPI/topologyTemplate.txt
@@ -0,0 +1 @@
+{"id":"17710a88-f3d8-483d-aded-afee2906a8c1","name":"MichaelTest2","description":null,"topologyId":"c25811fc-e03f-401d-93ca-45d9bd312703"}
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool10_false.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool10_false.yaml
new file mode 100644
index 0000000..b6faadd
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool10_false.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: boolean
+    description: city name
+    default: NO
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool11_false.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool11_false.yaml
new file mode 100644
index 0000000..7fb2923
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool11_false.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: boolean
+    description: city name
+    default: 0
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool12_false.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool12_false.yaml
new file mode 100644
index 0000000..fd451aa
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool12_false.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: boolean
+    description: city name
+    default: OFF
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool1_true.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool1_true.yaml
new file mode 100644
index 0000000..a253e4c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool1_true.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: boolean
+    description: city name
+    default: t
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool2_true.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool2_true.yaml
new file mode 100644
index 0000000..ce273b3
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool2_true.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: boolean
+    description: city name
+    default: true
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool3_true.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool3_true.yaml
new file mode 100644
index 0000000..4680eb6
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool3_true.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: boolean
+    description: city name
+    default: on
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool4_true.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool4_true.yaml
new file mode 100644
index 0000000..1ed7781
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool4_true.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: boolean
+    description: city name
+    default: y
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool5_true.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool5_true.yaml
new file mode 100644
index 0000000..c0b42e6
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool5_true.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: boolean
+    description: city name
+    default: yes
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool6_true.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool6_true.yaml
new file mode 100644
index 0000000..24b862b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool6_true.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: boolean
+    description: city name
+    default: 1
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool7_false.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool7_false.yaml
new file mode 100644
index 0000000..7bad8ef
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool7_false.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: boolean
+    description: city name
+    default: F
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool8_false.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool8_false.yaml
new file mode 100644
index 0000000..8b35e2a
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool8_false.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: boolean
+    description: city name
+    default: FALSE
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool9_false.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool9_false.yaml
new file mode 100644
index 0000000..2768e0d
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool9_false.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: boolean
+    description: city name
+    default: N
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_number1.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_number1.yaml
new file mode 100644
index 0000000..fc7f84c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_number1.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: number
+    description: city name
+    default: 12
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_number2.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_number2.yaml
new file mode 100644
index 0000000..28ec335
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_number2.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: number
+    description: city name
+    default: 12.12
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/images/mysql.png
new file mode 100644
index 0000000..8e02f49
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/mysql.yml
new file mode 100644
index 0000000..a2eb4d4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-uploadComponent
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+  - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+  - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+  alien.nodes.Mysql-uploadComponent:
+    derived_from: tosca.nodes.Database
+    description: >
+      A node to install MySQL v5.5 database with data
+      on a specific attached volume.
+    capabilities:
+      host:
+        type: alien.capabilities.MysqlDatabase
+        properties:
+          valid_node_types: [ tosca.nodes.WebApplication ]
+    requirements:
+      - host: tosca.nodes.Compute
+        type: tosca.relationships.HostedOn
+    tags:
+      icon: /images/mysql.png
+    properties:
+      db_port:
+        type: integer
+        default: 3306
+        description: The port on which the underlying database service will listen to data.
+      db_name:
+        type: string
+        required: true
+        default: wordpress
+        description: The logical name of the database.
+      db_user:
+        type: string
+        default: pass
+        description: The special user account used for database administration.
+      db_password:
+        type: string
+        default: pass
+        description: The password associated with the user account provided in the ‘db_user’ property.
+      bind_address:
+        type: boolean
+        default: true
+        required: false
+        description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+      storage_path:
+        type: string
+        default: /mountedStorage
+        constraints:
+          - valid_values: [ "/mountedStorage", "/var/mysql" ]
+    interfaces:
+      Standard:
+        create: scripts/install_mysql.sh
+        start:
+          inputs:
+            VOLUME_HOME: { get_property: [SELF, storage_path] }
+            PORT: { get_property: [SELF, db_port] }
+            DB_NAME: { get_property: [SELF, db_name] }
+            DB_USER: { get_property: [SELF, db_user] }
+            DB_PASSWORD: { get_property: [SELF, db_password] }
+            BIND_ADRESS: { get_property: [SELF, bind_address] }
+          implementation: scripts/start_mysql.sh
+      fastconnect.cloudify.extensions:
+         start_detection:
+          inputs:
+            PORT: { get_property: [SELF, db_port] }
+          implementation: scripts/mysql_start_detection.groovy
+    artifacts:
+      - scripts: scripts
+        type: tosca.artifacts.File
+
+capability_types:
+  alien.capabilities.MysqlDatabase:
+      derived_from: tosca.capabilities.Container
+
+artifact_types:
+  tosca.artifacts.GroovyScript:
+    description: A groovy script (.groovy file)
+    file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/install_mysql.sh
new file mode 100644
index 0000000..400bcf4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/install_mysql.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+  if mkdir "${LOCK}" &>/dev/null; then
+    echo "MySQL take the lock"
+    break;
+  fi
+  echo "Waiting the end of one of our recipes..."
+  sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+  echo "Waiting for other software managers to finish..."
+  sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete."
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh
new file mode 100644
index 0000000..648bd45
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT        : $PORT"
+echo "ENV VAR USED DB_NAME     : $DB_NAME"
+echo "ENV VAR USED DB_USER     : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+  echo "Starting MYSQL..."
+  sudo /etc/init.d/mysql stop
+  sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+  RET=1
+  while [[ RET -ne 0 ]]; do
+    echo "=> Waiting for confirmation of MySQL service startup"
+    sleep 5
+    sudo mysql -uroot -e "status" > /dev/null 2>&1
+    RET=$?
+  done
+}
+
+function AllowFileSystemToMySQL {
+  MYSQL_DATA_DIR=$VOLUME_HOME/data
+  MYSQL_LOG=$VOLUME_HOME/logs
+
+  echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+  if sudo test ! -d $MYSQL_DATA_DIR; then
+    echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+    sudo mkdir -p $MYSQL_DATA_DIR
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+  fi
+  if sudo test ! -d $MYSQL_LOG; then
+    echo "Creating LOG dir > $MYSQL_LOG ..."
+    sudo mkdir -p $MYSQL_LOG
+    # mysql as owner and group owner
+    sudo chown -R mysql:mysql $MYSQL_LOG
+  fi
+
+  # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+  COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+  sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+  # reload app permission manager service
+  sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+  echo "Updating MySQL conf files [DATA, LOGS]..."
+  sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+  sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+  sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+  if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+    sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+  fi
+  if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+    sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+  fi
+
+  if [ "$BIND_ADRESS" == "true" ]; then
+    sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+  fi
+}
+
+function InitMySQLDb {
+  # create database DB_NAME
+  if [ "$DB_NAME" ]; then
+    echo "INIT DATABASE $DB_NAME"
+    sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+  fi
+
+  # create user and give rights
+  if [ "$DB_USER" ]; then
+    echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+    sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+    sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+    sudo mysql -uroot -e "FLUSH PRIVILEGES"
+  fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+  echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+  echo "=> Init new database path to $MYSQL_DATA_DIR"
+  sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+  echo "=> MySQL database initialized !"
+else
+  echo "=> Using an existing volume of MySQL"
+  AllowFileSystemToMySQL
+  UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/artifact_unsupported.yaml b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/artifact_unsupported.yaml
new file mode 100644
index 0000000..764b8d4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/artifact_unsupported.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: number123
+    description: city name
+    default: 12.12
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_bool1.yaml b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_bool1.yaml
new file mode 100644
index 0000000..19119f3
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_bool1.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: boolean
+    description: city name
+    default: K
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_bool2.yaml b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_bool2.yaml
new file mode 100644
index 0000000..f9c09a4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_bool2.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: boolean
+    description: city name
+    default: 11
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_number1.yaml b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_number1.yaml
new file mode 100644
index 0000000..9a48987
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_number1.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: number
+    description: city name
+    default: 1.2Noo
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_number2.yaml b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_number2.yaml
new file mode 100644
index 0000000..4c0e07a
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_number2.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: number
+    description: city name
+    default: 1 2 3
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_string1.yaml b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_string1.yaml
new file mode 100644
index 0000000..f52ef04
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_string1.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+#  Changes in v0.2:
+#  - Unique availability zone for each VM
+#  - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+#  - 2 DB VMs added
+#  - Images corrected
+#  - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+#  - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+  city_name:
+    type: string
+    description: city name
+    default: שלום
+  address:
+    type: string
+    description: address
+    default: Alonim
+  home_number:
+    type: number
+    description: home_number
+    default: 8
+resources:
+#  scp_be_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_be_wait_handle }
+#      count: 5
+#      timeout: 300
+#  scp_be_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  scp_fe_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: scp_fe_wait_handle }
+#      count: 2
+#      timeout: 300
+#  scp_fe_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  smp_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: smp_wait_handle }
+#      count: 2
+#      timeout: 300
+#  smp_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+#
+#  db_wait_condition:
+#    type: OS::Heat::WaitCondition
+#    properties:
+#      handle: { get_resource: db_wait_handle }
+#      count: 2
+#      timeout: 300
+#  db_wait_handle:
+#    type: OS::Heat::WaitConditionHandle
+
+  FE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"] 
+  BE_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  SMP_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+  DB_Affinity:
+    type: OS::Nova::ServerGroup
+    properties:
+      policies: ["anti-affinity"]
+      
+  FE_Clustering_KA:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_fe_cluster_net_id }
+
+  FE_Clustering_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: FE_Clustering_KA }
+      cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+  Clustering_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_cluster_net_id }
+
+  Clustering_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: Clustering_Network }
+      cidr: { get_param: int_vscp_cluster_cidr }
+
+  DB_Network:
+    type: OS::Contrail::VirtualNetwork
+    properties:
+      name: { get_param: int_vscp_db_network_net_id }
+
+  DB_Network_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: DB_Network }
+      cidr: { get_param: int_vscp_db_network_cidr }
+
+  server_scp_be0:
+    type: OS::Nova::Server
+#    depends on: db_wait_condition
+    properties:
+      name: { get_param: vm_scp_be0_name }
+      image: { get_param: image_scp_be_id }
+#      availability_zone: { get_param: availability_zone_be0 }
+      flavor: { get_param: flavor_scp_be_id }
+      scheduler_hints: { group: { get_resource: BE_Affinity } }
+      networks:
+      - port: { get_resource: be0_port_3 }
+      - port: { get_resource: be0_port_4 }
+      - port: { get_resource: be0_port_5 }
+      - port: { get_resource: be0_port_7 }
+      metadata:
+        vnf_id: { get_param: vnf_id }
+      user_data:
+        str_replace:
+          template: |
+            #!/bin/bash
+            #todo: provision $vm_name
+            wc_notify --data-binary '{"status": "SUCCESS"}'
+          params:
+            $vm_name: {get_param: vm_scp_be0_name}
+#            wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/config.json b/test-apis-ci/src/test/resources/config.json
new file mode 100644
index 0000000..71c9d35
--- /dev/null
+++ b/test-apis-ci/src/test/resources/config.json
@@ -0,0 +1,12 @@
+{
+
+catalogBeHost: behost,
+catalogFeHost: fehost,
+esHost: eshost,
+catalogFePort: 8080,
+catalogBePort: 8080,
+esPort: 9200,
+resourceConfigDir: "src/test/resources/CI/tests",
+componentsConfigDir: "src/test/resources/CI/components"
+
+}
\ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/logback-test.xml b/test-apis-ci/src/test/resources/logback-test.xml
new file mode 100644
index 0000000..03ce9d1
--- /dev/null
+++ b/test-apis-ci/src/test/resources/logback-test.xml
@@ -0,0 +1,13 @@
+<!-- only one line, shut up logback ! -->
+<configuration>
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <Pattern>
+                %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
+            </Pattern>
+        </encoder>
+    </appender>
+    <root level="off">
+        <appender-ref ref="STDOUT" />
+    </root>
+</configuration>
\ No newline at end of file