Fix the new tosca converter

Fix the metadata section analysis and make the tosca parser more configurable (in applications.properties)

Issue-ID: CLAMP-580
Signed-off-by: sebdet <sebastien.determe@intl.att.com>
Change-Id: I9068bd9dc89861c640660a7f78fae2cb70bdc178
Signed-off-by: sebdet <sebastien.determe@intl.att.com>
diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties
index 0e45353..ea17836 100644
--- a/src/test/resources/application.properties
+++ b/src/test/resources/application.properties
@@ -168,4 +168,6 @@
 clamp.config.cds.password=ccsdkapps
 
 ## Tosca converter
-clamp.config.tosca.converter.templates=classpath:/clds/tosca_updates/templates.json
\ No newline at end of file
+clamp.config.tosca.converter.json.schema.templates=classpath:/clds/tosca-converter/templates.json
+clamp.config.tosca.converter.default.datatypes=classpath:/clds/tosca-converter/default-tosca-types.yaml
+clamp.config.tosca.converter.dictionary.support.enabled=true
\ No newline at end of file
diff --git a/src/test/resources/clds/camel/rest/clamp-api-v2.xml b/src/test/resources/clds/camel/rest/clamp-api-v2.xml
deleted file mode 100644
index b0a8d2f..0000000
--- a/src/test/resources/clds/camel/rest/clamp-api-v2.xml
+++ /dev/null
@@ -1,984 +0,0 @@
-<rests xmlns="http://camel.apache.org/schema/spring">
-	<rest>
-		<get uri="/v2/loop/getAllNames" outType="java.lang.String[]"
-			produces="application/json">
-			<route>
-				<removeHeaders pattern="*" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET ALL Loop')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','read')" />
-					<to
-						uri="bean:org.onap.clamp.loop.LoopController?method=getLoopNames()" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</get>
-		<get uri="/v2/loop/{loopName}" outType="org.onap.clamp.loop.Loop"
-			produces="application/json">
-			<route>
-				<removeHeaders pattern="*" excludePattern="loopName" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET Loop')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','read')" />
-					<to
-						uri="bean:org.onap.clamp.loop.LoopController?method=getLoop(${header.loopName})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</get>
-		<get uri="/v2/loop/svgRepresentation/{loopName}"
-			outType="java.lang.String" produces="application/xml">
-			<route>
-				<removeHeaders pattern="*" excludePattern="loopName" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Get SVG Representation')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','read')" />
-					<to
-						uri="bean:org.onap.clamp.loop.LoopController?method=getSvgRepresentation(${header.loopName})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</get>
-
-		<post uri="/v2/loop/updateGlobalProperties/{loopName}"
-			type="com.google.gson.JsonObject" consumes="application/json"
-			outType="org.onap.clamp.loop.Loop" produces="application/json">
-			<route>
-				<removeHeaders pattern="*" excludePattern="loopName" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Update the global properties')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
-					<setHeader headerName="GlobalPropertiesJson">
-						<simple>${body}</simple>
-					</setHeader>
-					<to uri="direct:load-loop" />
-					<to
-						uri="bean:org.onap.clamp.loop.LoopController?method=updateGlobalPropertiesJson(${header.loopName},${header.GlobalPropertiesJson})" />
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Global Properties UPDATED','INFO',${exchangeProperty[loopObject]})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</post>
-		<post uri="/v2/loop/updateOperationalPolicies/{loopName}"
-			type="com.google.gson.JsonArray" consumes="application/json"
-			outType="org.onap.clamp.loop.Loop" produces="application/json">
-			<route>
-				<removeHeaders pattern="*" excludePattern="loopName" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Update operational policies')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
-					<setHeader headerName="OperationalPoliciesArray">
-						<simple>${body}</simple>
-					</setHeader>
-					<to uri="direct:load-loop" />
-					<to
-						uri="bean:org.onap.clamp.loop.LoopController?method=updateOperationalPolicies(${header.loopName},${header.OperationalPoliciesArray})" />
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Operational and Guard policies UPDATED','INFO',${exchangeProperty[loopObject]})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</post>
-		<post uri="/v2/loop/updateMicroservicePolicy/{loopName}"
-			type="org.onap.clamp.policy.microservice.MicroServicePolicy"
-			consumes="application/json"
-			outType="org.onap.clamp.policy.microservice.MicroServicePolicy"
-			produces="application/json">
-			<route>
-				<removeHeaders pattern="*" excludePattern="loopName" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Update Microservice policies')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
-					<setProperty propertyName="MicroServicePolicyObject">
-						<simple>${body}</simple>
-					</setProperty>
-
-					<to uri="direct:load-loop" />
-					<to
-						uri="bean:org.onap.clamp.loop.LoopController?method=updateMicroservicePolicy(${header.loopName},${exchangeProperty[MicroServicePolicyObject]})" />
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Micro Service policies UPDATED','INFO',${exchangeProperty[loopObject]})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</post>
-		<put uri="/v2/loop/deploy/{loopName}"
-			outType="org.onap.clamp.loop.Loop" produces="application/json">
-			<route>
-				<removeHeaders pattern="*" excludePattern="loopName" />
-				<doTry>
-					<log loggingLevel="INFO"
-						message="DCAE DEPLOY request for loop: ${header.loopName}" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'DCAE DEPLOY request')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
-					<to uri="direct:load-loop" />
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DCAE DEPLOY request','INFO',${exchangeProperty[loopObject]})" />
-
-					<to uri="direct:deploy-loop" />
-
-					<log loggingLevel="INFO"
-						message="DEPLOY request successfully executed for loop: ${header.loopName}" />
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DEPLOY request successfully executed','INFO',${exchangeProperty[loopObject]})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-						<log loggingLevel="ERROR"
-							message="DEPLOY request failed for loop: ${header.loopName}" />
-						<to
-							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DEPLOY request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
-					</doCatch>
-				</doTry>
-			</route>
-		</put>
-		<put
-			uri="/v2/loop/refreshOpPolicyJsonSchema/{loopName}"
-			outType="org.onap.clamp.loop.Loop"
-			produces="application/json">
-			<route>
-				<removeHeaders
-					pattern="*"
-					excludePattern="loopName" />
-				<doTry>
-					<log
-						loggingLevel="INFO"
-						message="Refresh Operational Policy UI for loop: ${header.loopName}" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'REFRESH OP Policy UI request')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
-					<to uri="direct:load-loop" />
-					<to
-						uri="bean:org.onap.clamp.loop.LoopController?method=refreshOpPolicyJsonRepresentation(${header.loopName})" />
-					<log
-						loggingLevel="INFO"
-						message="REFRESH request successfully executed for loop: ${header.loopName}" />
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('REFRESH request successfully executed','INFO',${exchangeProperty[loopObject]})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-						<log
-							loggingLevel="ERROR"
-							message="REFRESH request failed for loop: ${header.loopName}" />
-						<to
-							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('REFRESH request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
-					</doCatch>
-				</doTry>
-			</route>
-		</put>
-		<put
-			uri="/v2/loop/undeploy/{loopName}"
-			outType="org.onap.clamp.loop.Loop"
-			produces="application/json">
-			<route>
-				<removeHeaders pattern="*" excludePattern="loopName" />
-				<doTry>
-					<log loggingLevel="INFO"
-						message="DCAE UNDEPLOY request for loop: ${header.loopName}" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'DCAE UNDEPLOY request')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
-					<to uri="direct:load-loop" />
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DCAE UNDEPLOY request','INFO',${exchangeProperty[loopObject]})" />
-					<to uri="direct:undeploy-loop" />
-
-					<log loggingLevel="INFO"
-						message="UNDEPLOY request successfully executed for loop: ${header.loopName}" />
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('UNDEPLOY request successfully executed','INFO',${exchangeProperty[loopObject]})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-						<log loggingLevel="ERROR"
-							message="UNDEPLOY request failed for loop: ${header.loopName}" />
-						<to
-							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('UNDEPLOY request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
-					</doCatch>
-				</doTry>
-			</route>
-		</put>
-		<put uri="/v2/loop/stop/{loopName}"
-			outType="org.onap.clamp.loop.Loop" produces="application/json">
-			<route>
-				<removeHeaders pattern="*" excludePattern="loopName" />
-				<doTry>
-					<log loggingLevel="INFO"
-						message="STOP request for loop: ${header.loopName}" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*,'STOP request')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
-					<to uri="direct:load-loop" />
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('STOP request','INFO',${exchangeProperty[loopObject]})" />
-
-					<to uri="direct:remove-all-policy-from-active-pdp-group" />
-					<log loggingLevel="INFO"
-						message="STOP request successfully executed for loop: ${header.loopName}" />
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('STOP request successfully executed','INFO',${exchangeProperty[loopObject]})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-						<log loggingLevel="ERROR"
-							message="STOP request failed for loop: $${header.loopName}" />
-						<to
-							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('STOP request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
-					</doCatch>
-				</doTry>
-			</route>
-		</put>
-		<put uri="/v2/loop/restart/{loopName}"
-			outType="org.onap.clamp.loop.Loop" produces="application/json">
-			<route>
-				<removeHeaders pattern="*" excludePattern="loopName" />
-				<doTry>
-					<log loggingLevel="INFO"
-						message="RESTART request for loop: ${header.loopName}" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*,'RESTART request')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
-					<to uri="direct:load-loop" />
-
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('RESTART request','INFO',${exchangeProperty[loopObject]})" />
-
-					<to uri="direct:add-all-to-active-pdp-group" />
-					<log loggingLevel="INFO"
-						message="RESTART request successfully executed for loop: ${header.loopName}" />
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('RESTART request successfully executed','INFO',${exchangeProperty[loopObject]})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-						<log loggingLevel="ERROR"
-							message="RESTART request failed for loop: ${header.loopName}" />
-						<to
-							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('RESTART request failed, Error reported: ${exception} - Body: ${exception.responseBody}','INFO',${exchangeProperty[loopObject]})" />
-					</doCatch>
-				</doTry>
-			</route>
-		</put>
-		<put uri="/v2/loop/submit/{loopName}"
-			outType="org.onap.clamp.loop.Loop" produces="application/json">
-			<route>
-				<removeHeaders pattern="*" excludePattern="loopName" />
-				<doTry>
-					<log loggingLevel="INFO"
-						message="POLICY SUBMIT request for loop: ${header.loopName}" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'POLICY SUBMIT request')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
-					<to uri="direct:load-loop" />
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('POLICY SUBMIT request','INFO',${exchangeProperty[loopObject]})" />
-					<setProperty propertyName="raiseHttpExceptionFlag">
-						<simple resultType="java.lang.Boolean">false</simple>
-					</setProperty>
-					<to uri="direct:remove-all-policy-from-active-pdp-group" />
-					<log loggingLevel="INFO"
-						message="Processing all MICRO-SERVICES policies defined in loop ${exchangeProperty[loopObject].getName()}" />
-					<split>
-						<simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
-						</simple>
-						<setProperty propertyName="microServicePolicy">
-							<simple>${body}</simple>
-						</setProperty>
-						<log loggingLevel="INFO"
-							message="Processing Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" />
-						<setProperty propertyName="raiseHttpExceptionFlag">
-							<simple resultType="java.lang.Boolean">false</simple>
-						</setProperty>
-						<to uri="direct:delete-micro-service-policy" />
-						<to uri="direct:create-micro-service-policy" />
-					</split>
-					<log loggingLevel="INFO"
-						message="Processing all OPERATIONAL policies defined in loop ${exchangeProperty[loopObject].getName()}" />
-					<split>
-						<simple>${exchangeProperty[loopObject].getOperationalPolicies()}
-						</simple>
-						<setProperty propertyName="operationalPolicy">
-							<simple>${body}</simple>
-						</setProperty>
-						<log loggingLevel="INFO"
-							message="Processing Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" />
-						<setProperty propertyName="raiseHttpExceptionFlag">
-							<simple resultType="java.lang.Boolean">false</simple>
-						</setProperty>
-
-						<to uri="direct:delete-operational-policy" />
-						<to uri="direct:create-operational-policy" />
-
-						<log loggingLevel="INFO"
-							message="Processing all GUARD policies defined in loop ${exchangeProperty[loopObject].getName()}" />
-						<split>
-							<simple>${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()}
-							</simple>
-							<setProperty propertyName="guardPolicy">
-								<simple>${body}</simple>
-							</setProperty>
-							<log loggingLevel="INFO"
-								message="Processing Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" />
-
-							<setProperty propertyName="raiseHttpExceptionFlag">
-								<simple resultType="java.lang.Boolean">false</simple>
-							</setProperty>
-							<to uri="direct:delete-guard-policy" />
-							<to uri="direct:create-guard-policy" />
-						</split>
-					</split>
-
-					<delay>
-						<constant>3000</constant>
-					</delay>
-
-					<to uri="direct:add-all-to-active-pdp-group" />
-
-					<log loggingLevel="INFO"
-						message="SUBMIT request successfully executed for loop: ${header.loopName}" />
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('SUBMIT request successfully executed','INFO',${exchangeProperty[loopObject]})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-						<log loggingLevel="ERROR"
-							message="SUBMIT request failed for loop: ${header.loopName}" />
-						<to
-							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('SUBMIT request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
-					</doCatch>
-				</doTry>
-			</route>
-		</put>
-		<put uri="/v2/loop/delete/{loopName}">
-			<route>
-				<removeHeaders pattern="*" excludePattern="loopName" />
-				<doTry>
-					<log loggingLevel="INFO"
-						message="DELETE request for loop: ${header.loopName}" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*,'DELETE request')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
-					<to uri="direct:load-loop" />
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DELETE request','INFO',${exchangeProperty[loopObject]})" />
-					<to uri="direct:undeploy-loop" />
-					<to uri="direct:remove-all-policy-from-active-pdp-group" />
-					<split>
-						<simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
-						</simple>
-						<setProperty propertyName="microServicePolicy">
-							<simple>${body}</simple>
-						</setProperty>
-						<log loggingLevel="INFO"
-							message="Processing Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" />
-						<to uri="direct:delete-micro-service-policy" />
-					</split>
-
-					<log loggingLevel="INFO"
-						message="Processing all OPERATIONAL policies defined in loop ${exchangeProperty[loopObject].getName()}" />
-					<split>
-						<simple>${exchangeProperty[loopObject].getOperationalPolicies()}
-						</simple>
-						<setProperty propertyName="operationalPolicy">
-							<simple>${body}</simple>
-						</setProperty>
-						<log loggingLevel="INFO"
-							message="Processing Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" />
-						<to uri="direct:delete-operational-policy" />
-						<log loggingLevel="INFO"
-							message="Processing all GUARD policies defined in loop ${exchangeProperty[loopObject].getName()}" />
-						<split>
-							<simple>${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()}
-							</simple>
-							<setProperty propertyName="guardPolicy">
-								<simple>${body}</simple>
-							</setProperty>
-							<log loggingLevel="INFO"
-								message="Processing Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" />
-							<to uri="direct:delete-guard-policy" />
-						</split>
-					</split>
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopService?method=deleteLoop(${header.loopName})" />
-					<log loggingLevel="INFO"
-						message="DELETE request successfully executed for loop: ${header.loopName}" />
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DELETE request successfully executed','INFO',${exchangeProperty[loopObject]})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-						<log loggingLevel="ERROR"
-							message="DELETE request failed for loop: ${header.loopName}" />
-						<to
-							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DELETE request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
-					</doCatch>
-				</doTry>
-			</route>
-		</put>
-		<get uri="/v2/loop/getstatus/{loopName}"
-			outType="org.onap.clamp.loop.Loop" produces="application/json">
-			<route>
-				<removeHeaders pattern="*" excludePattern="loopName" />
-				<doTry>
-					<log loggingLevel="INFO"
-						message="GET STATUS request for loop: ${header.loopName}" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET STATUS request')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','read')" />
-					<to uri="direct:load-loop" />
-					<to
-						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('GET STATUS request','INFO',${exchangeProperty[loopObject]})" />
-					<doTry>
-						<to uri="direct:update-policy-status-for-loop" />
-						<to uri="direct:update-dcae-status-for-loop" />
-						<to uri="direct:update-loop-state" />
-
-						<to
-							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Get Status request successfully executed','INFO',${exchangeProperty[loopObject]})" />
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					</doTry>
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-						<log loggingLevel="ERROR"
-							message="Get Status request failed for loop: ${header.loopName}" />
-						<to
-							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Get Status request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
-					</doCatch>
-					<doFinally>
-						<setBody>
-							<simple>${exchangeProperty[loopObject]}</simple>
-						</setBody>
-					</doFinally>
-				</doTry>
-			</route>
-		</get>
-
-		<get uri="/v2/dictionary"
-			outType="org.onap.clamp.tosca.Dictionary" produces="application/json">
-			<route>
-				<removeHeaders pattern="*" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET ALL Dictionaries')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'tosca','','read')" />
-					<to
-						uri="bean:org.onap.clamp.tosca.DictionaryService?method=getAllDictionaries()" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</get>
-
-		<get uri="/v2/dictionary/secondary/names"
-			outType="java.lang.String[]" produces="application/json">
-			<route>
-				<removeHeaders pattern="*" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET ALL Secondary Dictionary Level Names')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'tosca','','read')" />
-					<to
-						uri="bean:org.onap.clamp.tosca.DictionaryService?method=getAllSecondaryLevelDictionaryNames()" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</get>
-		<get uri="/v2/dictionary/{dictionaryName}"
-			outType="org.onap.clamp.tosca.Dictionary" produces="application/json">
-			<route>
-				<removeHeaders pattern="*"
-					excludePattern="dictionaryName" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET ALL Dictionary Elements for a Dictionary Name')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'tosca','','read')" />
-					<to
-						uri="bean:org.onap.clamp.tosca.DictionaryService?method=getDictionary(${header.dictionaryName})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</get>
-		<put uri="/v2/dictionary" type="org.onap.clamp.tosca.Dictionary"
-			outType="org.onap.clamp.tosca.Dictionary" consumes="application/json"
-			produces="application/json">
-			<route>
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Add New or Update Dictionary')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'tosca','','update')" />
-					<setProperty propertyName="DictionaryObject">
-						<simple>${body}</simple>
-					</setProperty>
-					<to
-						uri="bean:org.onap.clamp.tosca.DictionaryService?method=saveOrUpdateDictionary(${exchangeProperty[DictionaryObject]})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</put>
-
-		<put uri="/v2/dictionary/{name}"
-			type="org.onap.clamp.tosca.Dictionary"
-			outType="org.onap.clamp.tosca.Dictionary" consumes="application/json"
-			produces="application/json">
-			<route>
-				<removeHeaders pattern="*" excludePattern="name" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Add New or Update Dictionary Element')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'tosca','','update')" />
-					<setProperty propertyName="DictionaryObject">
-						<simple>${body}</simple>
-					</setProperty>
-					<to
-						uri="bean:org.onap.clamp.tosca.DictionaryService?method=saveOrUpdateDictionaryElement(${header.name}, ${exchangeProperty[DictionaryObject]})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</put>
-
-		<delete uri="/v2/dictionary/{name}" produces="application/json">
-			<route>
-				<removeHeaders pattern="*" excludePattern="name" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Delete Dictionary')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'tosca','','update')" />
-					<to
-						uri="bean:org.onap.clamp.tosca.DictionaryService?method=deleteDictionary(${header.name})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</delete>
-
-		<delete uri="/v2/dictionary/{name}/elements/{shortName}"
-			produces="application/json">
-			<route>
-				<removeHeaders pattern="*"
-					excludePattern="name|shortName" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Delete Dictionary Element')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'tosca','','update')" />
-					<to
-						uri="bean:org.onap.clamp.tosca.DictionaryService?method=deleteDictionaryElement(${header.name}, ${header.shortName})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</delete>
-
-		<get uri="/v2/policyToscaModels"
-			outType="org.onap.clamp.loop.template.PolicyModel"
-			produces="application/json">
-			<route>
-				<removeHeaders pattern="*" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET ALL Tosca Policy Models')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'tosca','','read')" />
-					<to
-						uri="bean:org.onap.clamp.loop.template.PolicyModelsService?method=getAllPolicyModels()" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>true</constant>
-						</handled>
-						<setHeader headerName="CamelHttpResponseCode">
-							<constant>500</constant>
-						</setHeader>
-						<transform>
-							<simple>ERROR: ${exception.message}</simple>
-						</transform>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</get>
-		<get uri="/v2/policyToscaModels/{policyModelType}"
-			outType="org.onap.clamp.loop.template.PolicyModel"
-			produces="application/json">
-			<route>
-				<removeHeaders pattern="*"
-					excludePattern="policyModelType" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET Tosca Policy Model by Name')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'tosca','','read')" />
-					<to
-						uri="bean:org.onap.clamp.loop.template.PolicyModelsService?method=getPolicyModelByType(${header.policyModelType})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>true</constant>
-						</handled>
-						<setHeader headerName="CamelHttpResponseCode">
-							<constant>500</constant>
-						</setHeader>
-						<transform>
-							<simple>ERROR: ${exception.message}</simple>
-						</transform>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</get>
-		<get uri="/v2/policyToscaModels/yaml/{policyModelType}"
-			outType="java.lang.String" produces="application/json">
-			<route>
-				<removeHeaders pattern="*"
-					excludePattern="policyModelType" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET Tosca Policy Model Yaml String by Name')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'tosca','','read')" />
-					<to
-						uri="bean:org.onap.clamp.loop.template.PolicyModelsService?method=getPolicyModelTosca(${header.policyModelType})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>true</constant>
-						</handled>
-						<setHeader headerName="CamelHttpResponseCode">
-							<constant>500</constant>
-						</setHeader>
-						<transform>
-							<simple>ERROR: ${exception.message}</simple>
-						</transform>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</get>
-
-		<put uri="/v2/policyToscaModels/{policyModelType}"
-			type="java.lang.String"
-			outType="org.onap.clamp.loop.template.PolicyModel"
-			consumes="plain/text" produces="application/json">
-			<route>
-				<removeHeaders pattern="*"
-					excludePattern="policyModelType" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Upload New or Update Tosca Policy Model')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'tosca','','update')" />
-					<setProperty propertyName="PolicyModelObject">
-						<simple>${body}</simple>
-					</setProperty>
-					<to
-						uri="bean:org.onap.clamp.loop.template.PolicyModelsService?method=saveOrUpdateByPolicyModelType(${header.policyModelType},${exchangeProperty[PolicyModelObject]})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>true</constant>
-						</handled>
-						<setHeader headerName="CamelHttpResponseCode">
-							<constant>404</constant>
-						</setHeader>
-						<transform>
-							<simple>ERROR: ${exception.message}</simple>
-						</transform>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</put>
-
-
-		<get uri="/v2/templates"
-			outType="org.onap.clamp.loop.template.LoopTemplate"
-			produces="application/json">
-			<route>
-				<removeHeaders pattern="*" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET ALL Templates')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'template','','read')" />
-					<to
-						uri="bean:org.onap.clamp.loop.template.LoopTemplatesService?method=getAllLoopTemplates()" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>true</constant>
-						</handled>
-						<setHeader headerName="CamelHttpResponseCode">
-							<constant>500</constant>
-						</setHeader>
-						<transform>
-							<simple>ERROR: ${exception.message}</simple>
-						</transform>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</get>
-		<get uri="/v2/templates/{templateName}"
-			outType="org.onap.clamp.loop.template.LoopTemplate"
-			produces="application/json">
-			<route>
-				<removeHeaders pattern="*"
-					excludePattern="templateName" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET a Template by NAME')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'template','','read')" />
-					<to
-						uri="bean:org.onap.clamp.loop.template.LoopTemplatesService?method=getLoopTemplate(${header.templateName})" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>true</constant>
-						</handled>
-						<setHeader headerName="CamelHttpResponseCode">
-							<constant>500</constant>
-						</setHeader>
-						<transform>
-							<simple>ERROR: ${exception.message}</simple>
-						</transform>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</get>
-		<get uri="/v2/templates/names" outType="java.lang.String[]"
-			produces="application/json">
-			<route>
-				<removeHeaders pattern="*" />
-				<doTry>
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET ALL Loop Template Names')" />
-					<to
-						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'template','','read')" />
-					<to
-						uri="bean:org.onap.clamp.loop.template.LoopTemplatesService?method=getLoopTemplateNames()" />
-					<to
-						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
-					<doCatch>
-						<exception>java.lang.Exception</exception>
-						<handled>
-							<constant>false</constant>
-						</handled>
-						<to
-							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-					</doCatch>
-				</doTry>
-			</route>
-		</get>
-	</rest>
-</rests>
diff --git "a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0&\04363;connectionTimeToLive=5000/.file" "b/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0&\04363;connectionTimeToLive=5000/.file"
index 44f5587..64ba559 100644
--- "a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0&\04363;connectionTimeToLive=5000/.file"
+++ "b/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0&\04363;connectionTimeToLive=5000/.file"
@@ -91,7 +91,7 @@
                 description: The resource the operation should be performed on.
                 required: true
                 metadata:
-                    clamp_possible_values: <string:see clamp project for syntax>
+                    clamp_possible_values: test
             payload:
                 type: map
                 description: Name/value pairs of payload information passed by Policy to the actor
@@ -116,7 +116,7 @@
                 description: The definition of the operation to be performed.
                 required: true
                 metadata:
-                    clamp_possible_values: <string:see clamp project for syntax>
+                    clamp_possible_values: test
             timeout:
                 type: integer
                 description: The amount of time for the actor to perform the operation.
diff --git "a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0&\04363;connectionTimeToLive=5000/.file" "b/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0&\04363;connectionTimeToLive=5000/.file"
index 72897be..1c082b1 100644
--- "a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0&\04363;connectionTimeToLive=5000/.file"
+++ "b/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0&\04363;connectionTimeToLive=5000/.file"
@@ -79,7 +79,7 @@
                 description: The resource the operation should be performed on.
                 required: true
                 metadata:
-                    clamp_possible_values: <string:see clamp project for syntax>
+                    clamp_possible_values: test
             payload:
                 type: map
                 description: Name/value pairs of payload information passed by Policy to the actor
@@ -104,7 +104,7 @@
                 description: The definition of the operation to be performed.
                 required: true
                 metadata:
-                    clamp_possible_values: <string:see clamp project for syntax>
+                    clamp_possible_values: test
             timeout:
                 type: integer
                 description: The amount of time for the actor to perform the operation.
diff --git a/src/test/resources/tosca/new-converter/tca-with-metadata.json b/src/test/resources/tosca/new-converter/tca-with-metadata.json
new file mode 100644
index 0000000..1b95f8c
--- /dev/null
+++ b/src/test/resources/tosca/new-converter/tca-with-metadata.json
@@ -0,0 +1,222 @@
+{
+  "title": "onap.policies.monitoring.cdap.tca.hi.lo.app",
+  "type": "object",
+  "required": [],
+  "properties": {
+    "tca_policy": {
+      "type": "object",
+      "description": "TCA Policy JSON",
+      "properties": {
+        "onap.datatypes.monitoring.tca_policy": {
+          "title": "onap.datatypes.monitoring.tca_policy",
+          "type": "object",
+          "required": [
+            "domain",
+            "metricsPerEventName"
+          ],
+          "properties": {
+            "domain": {
+              "type": "string",
+              "description": "Domain name to which TCA needs to be applied",
+              "default": "measurementsForVfScaling",
+              "const": "measurementsForVfScaling"
+            },
+            "metricsPerEventName": {
+              "type": "array",
+              "description": "Contains eventName and threshold details that need to be applied to given eventName",
+              "items": {
+                "title": "onap.datatypes.monitoring.metricsPerEventName",
+                "type": "object",
+                "required": [
+                  "controlLoopSchemaType",
+                  "eventName",
+                  "policyName",
+                  "policyScope",
+                  "policyVersion",
+                  "thresholds",
+                  "context",
+                  "signature"
+                ],
+                "properties": {
+                  "controlLoopSchemaType": {
+                    "type": "string",
+                    "description": "Specifies Control Loop Schema Type for the event Name e.g. VNF, VM",
+                    "enum": [
+                      "VM",
+                      "VNF"
+                    ]
+                  },
+                  "eventName": {
+                    "type": "string",
+                    "description": "Event name to which thresholds need to be applied"
+                  },
+                  "policyName": {
+                    "type": "string",
+                    "description": "TCA Policy Scope Name"
+                  },
+                  "policyScope": {
+                    "type": "string",
+                    "description": "TCA Policy Scope"
+                  },
+                  "policyVersion": {
+                    "type": "string",
+                    "description": "TCA Policy Scope Version"
+                  },
+                  "thresholds": {
+                    "type": "array",
+                    "description": "Thresholds associated with eventName",
+                    "items": {
+                      "title": "onap.datatypes.monitoring.thresholds",
+                      "type": "object",
+                      "required": [
+                        "closedLoopControlName",
+                        "closedLoopEventStatus",
+                        "direction",
+                        "fieldPath",
+                        "severity",
+                        "thresholdValue",
+                        "version"
+                      ],
+                      "properties": {
+                        "closedLoopControlName": {
+                          "type": "string",
+                          "description": "Closed Loop Control Name associated with the threshold"
+                        },
+                        "closedLoopEventStatus": {
+                          "type": "string",
+                          "description": "Closed Loop Event Status of the threshold",
+                          "enum": [
+                            "ONSET",
+                            "ABATED"
+                          ]
+                        },
+                        "direction": {
+                          "type": "string",
+                          "description": "Direction of the threshold",
+                          "enum": [
+                            "LESS",
+                            "LESS_OR_EQUAL",
+                            "GREATER",
+                            "GREATER_OR_EQUAL",
+                            "EQUAL"
+                          ]
+                        },
+                        "fieldPath": {
+                          "type": "string",
+                          "description": "Json field Path as per CEF message which needs to be analyzed for TCA",
+                          "enum": [
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated",
+                            "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated",
+                            "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle",
+                            "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt",
+                            "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice",
+                            "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq",
+                            "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal",
+                            "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem",
+                            "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait",
+                            "$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage",
+                            "$.event.measurementsForVfScalingFields.meanRequestLatency",
+                            "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered",
+                            "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached",
+                            "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured",
+                            "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree",
+                            "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed",
+                            "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value"
+                          ]
+                        },
+                        "severity": {
+                          "type": "string",
+                          "description": "Threshold Event Severity",
+                          "enum": [
+                            "CRITICAL",
+                            "MAJOR",
+                            "MINOR",
+                            "WARNING",
+                            "NORMAL"
+                          ]
+                        },
+                        "thresholdValue": {
+                          "type": "integer",
+                          "description": "Threshold value for the field Path inside CEF message"
+                        },
+                        "version": {
+                          "type": "string",
+                          "description": "Version number associated with the threshold"
+                        }
+                      }
+                    }
+                  },
+                  "context": {
+                    "type": "string",
+                    "description": "TCA Policy Dummy Context",
+                    "enum": [
+                      "PROD"
+                    ],
+                    "options": {
+                      "enum_titles": [
+                        "PROD"
+                      ]
+                    }
+                  },
+                  "signature": {
+                    "title": "onap.datatypes.monitoring.Dummy_Signature",
+                    "type": "object",
+                    "required": [
+                      "filter_clause"
+                    ],
+                    "properties": {
+                      "filter_clause": {
+                        "type": "qbldr",
+                        "description": "Filter Clause",
+                        "minLength": 1,
+                        "qschema": {
+                          "filters": [
+                            {
+                              "type": "string",
+                              "minLength": 1,
+                              "id": "alarmCondition",
+                              "label": "alarmCondition",
+                              "operators": [
+                                "equals"
+                              ]
+                            }
+                          ]
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/test/resources/tosca/new-converter/tca-with-metadata.yaml b/src/test/resources/tosca/new-converter/tca-with-metadata.yaml
new file mode 100644
index 0000000..c0d2a86
--- /dev/null
+++ b/src/test/resources/tosca/new-converter/tca-with-metadata.yaml
@@ -0,0 +1,184 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+policy_types:
+  onap.policies.Monitoring:
+    derived_from: tosca.policies.Root
+    description: a base policy type for all policies that governs monitoring provisioning
+  onap.policies.monitoring.cdap.tca.hi.lo.app:
+    derived_from: onap.policies.Monitoring
+    version: 1.0.0
+    properties:
+      tca_policy:
+        type: map
+        description: TCA Policy JSON
+        entry_schema:
+          type: onap.datatypes.monitoring.tca_policy
+    metadata:
+      policy_model_type: onap.policies.monitoring.cdap.tca.hi.lo.app
+      acronym: tca
+
+data_types:
+  onap.datatypes.monitoring.metricsPerEventName:
+    derived_from: tosca.datatypes.Root
+    properties:
+      controlLoopSchemaType:
+        type: string
+        required: true
+        description: Specifies Control Loop Schema Type for the event Name e.g. VNF, VM
+        constraints:
+          - valid_values:
+              - VM
+              - VNF
+      eventName:
+        type: string
+        required: true
+        description: Event name to which thresholds need to be applied
+      policyName:
+        type: string
+        required: true
+        description: TCA Policy Scope Name
+      policyScope:
+        type: string
+        required: true
+        description: TCA Policy Scope
+      policyVersion:
+        type: string
+        required: true
+        description: TCA Policy Scope Version
+      thresholds:
+        type: list
+        required: true
+        description: Thresholds associated with eventName
+        entry_schema:
+          type: onap.datatypes.monitoring.thresholds
+      context:
+        type: string
+        required: true
+        description: TCA Policy Dummy Context
+        metadata:
+          clamp_possible_values: "Dictionary:Context"
+
+      signature:
+        type: onap.datatypes.monitoring.Dummy_Signature
+        description: Signature
+        required: true
+
+  onap.datatypes.monitoring.Dummy_Signature:
+    derived_from: tosca.datatypes.Root
+    properties:
+      filter_clause:
+        type: string
+        description: Filter Clause
+        required: true
+        metadata:
+          clamp_possible_values: "Dictionary:EventDictionary#Operators"
+
+  onap.datatypes.monitoring.tca_policy:
+    derived_from: tosca.datatypes.Root
+    properties:
+      domain:
+        type: string
+        required: true
+        description: Domain name to which TCA needs to be applied
+        default: measurementsForVfScaling
+        constraints:
+          - equal: measurementsForVfScaling
+      metricsPerEventName:
+        type: list
+        required: true
+        description: Contains eventName and threshold details that need to be applied to given eventName
+        entry_schema:
+          type: onap.datatypes.monitoring.metricsPerEventName
+  onap.datatypes.monitoring.thresholds:
+    derived_from: tosca.datatypes.Root
+    properties:
+      closedLoopControlName:
+        type: string
+        required: true
+        description: Closed Loop Control Name associated with the threshold
+      closedLoopEventStatus:
+        type: string
+        required: true
+        description: Closed Loop Event Status of the threshold
+        constraints:
+          - valid_values:
+              - ONSET
+              - ABATED
+      direction:
+        type: string
+        required: true
+        description: Direction of the threshold
+        constraints:
+          - valid_values:
+              - LESS
+              - LESS_OR_EQUAL
+              - GREATER
+              - GREATER_OR_EQUAL
+              - EQUAL
+      fieldPath:
+        type: string
+        required: true
+        description: Json field Path as per CEF message which needs to be analyzed for TCA
+        constraints:
+          - valid_values:
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated
+              - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated
+              - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle
+              - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt
+              - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice
+              - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq
+              - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal
+              - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem
+              - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait
+              - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage
+              - $.event.measurementsForVfScalingFields.meanRequestLatency
+              - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered
+              - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached
+              - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured
+              - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree
+              - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed
+              - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value
+      severity:
+        type: string
+        required: true
+        description: Threshold Event Severity
+        constraints:
+          - valid_values:
+              - CRITICAL
+              - MAJOR
+              - MINOR
+              - WARNING
+              - NORMAL
+      thresholdValue:
+        type: integer
+        required: true
+        description: Threshold value for the field Path inside CEF message
+      version:
+        type: string
+        required: true
+        description: Version number associated with the threshold