Modify the Ui
[clamp.git] / src / main / resources / clds / camel / rest / clamp-api-v2.xml
index 0d6d3cb..d62a0c2 100644 (file)
@@ -1,14 +1,12 @@
 <rests xmlns="http://camel.apache.org/schema/spring">
        <rest>
-               <get
-                       uri="/v2/loop/getAllNames"
-                       outType="java.lang.String[]"
+               <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 ClosedLoop')" />
+                                               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
                                </doTry>
                        </route>
                </get>
-               <get
-                       uri="/v2/loop/{loopName}"
-                       outType="org.onap.clamp.loop.Loop"
+               <get uri="/v2/loop/{loopName}" outType="org.onap.clamp.loop.Loop"
                        produces="application/json">
                        <route>
-                               <removeHeaders
-                                       pattern="*"
-                                       excludePattern="loopName" />
+                               <removeHeaders pattern="*" excludePattern="loopName" />
                                <doTry>
                                        <to
-                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Get Closed Loop')" />
+                                               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
                                </doTry>
                        </route>
                </get>
-               <get
-                       uri="/v2/loop/svgRepresentation/{loopName}"
-                       outType="java.lang.String"
-                       produces="application/xml">
+               <get uri="/v2/loop/svgRepresentation/{loopName}"
+                       outType="java.lang.String" produces="application/xml">
                        <route>
-                               <removeHeaders
-                                       pattern="*"
-                                       excludePattern="loopName" />
+                               <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})" />
+                                               uri="bean:org.onap.clamp.loop.LoopController?method=getSvgRepresentation(${header.loopName})" />
                                        <to
                                                uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
                                        <doCatch>
                        </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">
+               <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" />
+                               <removeHeaders pattern="*" excludePattern="loopName" />
                                <doTry>
                                        <to
                                                uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Update the global properties')" />
                                </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">
+               <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" />
+                               <removeHeaders pattern="*" excludePattern="loopName" />
                                <doTry>
                                        <to
                                                uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Update operational policies')" />
                                </doTry>
                        </route>
                </post>
-               <post
-                       uri="/v2/loop/updateMicroservicePolicy/{loopName}"
+               <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" />
+                               <removeHeaders pattern="*" excludePattern="loopName" />
                                <doTry>
                                        <to
                                                uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Update Microservice policies')" />
                                </doTry>
                        </route>
                </post>
-               <put
-                       uri="/v2/loop/deployLoop/{loopName}"
-                       outType="org.onap.clamp.loop.Loop"
-                       produces="application/json">
+               <put uri="/v2/loop/deploy/{loopName}"
+                       outType="org.onap.clamp.loop.Loop" produces="application/json">
                        <route>
-                               <removeHeaders
-                                       pattern="*"
-                                       excludePattern="loopName" />
+                               <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(*, 'Deploy the closed loop')" />
+                                               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="direct:load-loop" />
+                                               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="direct:get-status-from-policy" />
+                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DEPLOY request successfully executed','INFO',${exchangeProperty[loopObject]})" />
                                        <to
-                                               uri="direct:get-status-from-dcae" />
-                                       <log
-                                               loggingLevel="INFO"
-                                               message="policy status0000: ${exchangeProperty[policyStatus]}"></log>
-                                       <choice>
-                                               <when>
-                                                       <simple> ${exchangeProperty[policyStatus]} == 'SUBMITTED' and
-                                                               ${exchangeProperty[dcaeStatus]} == 'NOT_DEPLOYED'
-                                                       </simple>
-                                                       <to
-                                                               uri="direct:deploy-closedloop" />
-                                               </when>
-                                               <otherwise>
-                                                       <log
-                                                               loggingLevel="INFO"
-                                                               message="Closed Loop is in state ${exchangeProperty[policyStatus]}, it can only be deployed when in state SUBMIT" />
-                                                       <to
-                                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Closed Loop is in state ${exchangeProperty[policyStatus]}, it can only be deployed when in state SUBMIT','ERROR',${exchangeProperty[loopObject]})" />
-                                               </otherwise>
-                                       </choice>
+                                               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>
                                                </handled>
                                                <to
                                                        uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-                                               <log
-                                                       loggingLevel="ERROR"
-                                                       message="Deploy request failed for loop: ${header.loopName}" />
+                                               <log loggingLevel="ERROR"
+                                                       message="REFRESH request failed for loop: ${header.loopName}" />
                                                <to
-                                                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Deploy request failed','ERROR',${exchangeProperty[loopObject]})" />
+                                                       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/undeployLoop/{loopName}"
-                       outType="org.onap.clamp.loop.Loop"
-                       produces="application/json">
+               <put uri="/v2/loop/undeploy/{loopName}"
+                       outType="org.onap.clamp.loop.Loop" produces="application/json">
                        <route>
-                               <removeHeaders
-                                       pattern="*"
-                                       excludePattern="loopName" />
+                               <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(*, 'Undeploy the closed loop')" />
+                                               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="direct:load-loop" />
-                                       <to 
-                                               uri="direct:get-status-from-dcae" />
-                                       <choice>
-                                               <when>
-                                                       <simple> ${exchangeProperty[dcaeStatus]} == 'DEPLOYED'
-                                                       </simple>
-                                                       <to
-                                                               uri="direct:undeploy-closedloop" />
-                                               </when>
-                                               <otherwise>
-                                                       <log
-                                                               loggingLevel="INFO"
-                                                               message="Closed Loop is in state ${exchangeProperty[dcaeStatus]}, it can only be undeployed when in state DEPLOYED" />
-                                                       <to
-                                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Closed Loop is in state ${exchangeProperty[dcaeStatus]}, it can only be deployed when in state DEPLOYED','ERROR',${exchangeProperty[loopObject]})" />
-                                               </otherwise>
-                                       </choice>
+                                               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>
                                                </handled>
                                                <to
                                                        uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-                                               <log
-                                                       loggingLevel="ERROR"
-                                                       message="Undeploy request failed for loop: $${header.loopName}" />
+                                               <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',${exchangeProperty[loopObject]})" />
+                                                       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">
+               <put uri="/v2/loop/stop/{loopName}"
+                       outType="org.onap.clamp.loop.Loop" produces="application/json">
                        <route>
-                               <removeHeaders
-                                       pattern="*"
-                                       excludePattern="loopName" />
+                               <removeHeaders pattern="*" excludePattern="loopName" />
                                <doTry>
-                                       <log
-                                               loggingLevel="INFO"
-                                               message="Receive STOP request for loop: ${header.loopName}" />
+                                       <log loggingLevel="INFO"
+                                               message="STOP request for loop: ${header.loopName}" />
                                        <to
-                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog('Stop the closed loop')" />
+                                               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: ${body}" />
+                                       <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.loop.LoopController?method=getLoop(${header.loopName})" />
                                        <to
                                                uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
                                        <doCatch>
                                                </handled>
                                                <to
                                                        uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-                                               <log
-                                                       loggingLevel="ERROR"
+                                               <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}','ERROR',${exchangeProperty[loopObject]})" />
+                                                       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/start/{loopName}"
-                       outType="org.onap.clamp.loop.Loop"
-                       produces="application/json">
+               <put uri="/v2/loop/restart/{loopName}"
+                       outType="org.onap.clamp.loop.Loop" produces="application/json">
                        <route>
-                               <removeHeaders
-                                       pattern="*"
-                                       excludePattern="loopName" />
+                               <removeHeaders pattern="*" excludePattern="loopName" />
                                <doTry>
-                                       <log
-                                               loggingLevel="INFO"
-                                               message="Receive START request for loop: ${header.loopName}" />
+                                       <log loggingLevel="INFO"
+                                               message="RESTART request for loop: ${header.loopName}" />
                                        <to
-                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog('Start the closed loop')" />
+                                               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="START request successfully executed for loop: ${header.loopName}" />
-                                       <to
-                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('START request successfully executed','INFO',${exchangeProperty[loopObject]})" />
+                                       <log loggingLevel="INFO"
+                                               message="RESTART request successfully executed for loop: ${header.loopName}" />
                                        <to
-                                               uri="bean:org.onap.clamp.loop.LoopController?method=getLoop(${header.loopName})" />
+                                               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>
                                                </handled>
                                                <to
                                                        uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-                                               <log
-                                                       loggingLevel="ERROR"
-                                                       message="START request failed for loop: ${header.loopName}" />
+                                               <log loggingLevel="ERROR"
+                                                       message="RESTART request failed for loop: ${header.loopName}" />
                                                <to
-                                                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('START request failed, Error reported: ${exception}','INFO',${exchangeProperty[loopObject]})" />
+                                                       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">
+               <put uri="/v2/loop/submit/{loopName}"
+                       outType="org.onap.clamp.loop.Loop" produces="application/json">
                        <route>
-                               <removeHeaders
-                                       pattern="*"
-                                       excludePattern="loopName" />
+                               <removeHeaders pattern="*" excludePattern="loopName" />
                                <doTry>
-                                       <log
-                                               loggingLevel="INFO"
-                                               message="Receive SUBMIT request for loop: ${header.loopName}" />
+                                       <log loggingLevel="INFO"
+                                               message="POLICY SUBMIT request for loop: ${header.loopName}" />
                                        <to
-                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Submit the closed loop')" />
+                                               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('Receive SUBMIT request','INFO',${exchangeProperty[loopObject]})" />
+                                               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"
+                                       <log loggingLevel="INFO"
                                                message="Processing all MICRO-SERVICES policies defined in loop ${exchangeProperty[loopObject].getName()}" />
                                        <split>
                                                <simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
                                                <setProperty propertyName="microServicePolicy">
                                                        <simple>${body}</simple>
                                                </setProperty>
-                                               <log
-                                                       loggingLevel="INFO"
+                                               <log loggingLevel="INFO"
                                                        message="Processing Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" />
                                                <setProperty propertyName="raiseHttpExceptionFlag">
                                                        <simple resultType="java.lang.Boolean">false</simple>
                                                <to uri="direct:delete-micro-service-policy" />
                                                <to uri="direct:create-micro-service-policy" />
                                        </split>
-                                       <log
-                                               loggingLevel="INFO"
+                                       <log loggingLevel="INFO"
                                                message="Processing all OPERATIONAL policies defined in loop ${exchangeProperty[loopObject].getName()}" />
                                        <split>
                                                <simple>${exchangeProperty[loopObject].getOperationalPolicies()}
                                                <setProperty propertyName="operationalPolicy">
                                                        <simple>${body}</simple>
                                                </setProperty>
-                                               <log
-                                                       loggingLevel="INFO"
+                                               <log loggingLevel="INFO"
                                                        message="Processing Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" />
                                                <setProperty propertyName="raiseHttpExceptionFlag">
                                                        <simple resultType="java.lang.Boolean">false</simple>
                                                <to uri="direct:delete-operational-policy" />
                                                <to uri="direct:create-operational-policy" />
 
-                                               <log
-                                                       loggingLevel="INFO"
+                                               <log loggingLevel="INFO"
                                                        message="Processing all GUARD policies defined in loop ${exchangeProperty[loopObject].getName()}" />
                                                <split>
                                                        <simple>${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()}
                                                        <setProperty propertyName="guardPolicy">
                                                                <simple>${body}</simple>
                                                        </setProperty>
-                                                       <log
-                                                               loggingLevel="INFO"
+                                                       <log loggingLevel="INFO"
                                                                message="Processing Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" />
 
                                                        <setProperty propertyName="raiseHttpExceptionFlag">
                                                </split>
                                        </split>
 
+                                       <delay>
+                                               <constant>3000</constant>
+                                       </delay>
+
                                        <to uri="direct:add-all-to-active-pdp-group" />
 
-                                       <log
-                                               loggingLevel="INFO"
+                                       <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.loop.LoopController?method=getLoop(${header.loopName})" />
                                        <to
                                                uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
                                        <doCatch>
                                                </handled>
                                                <to
                                                        uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-                                               <log
-                                                       loggingLevel="ERROR"
+                                               <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}','ERROR',${exchangeProperty[loopObject]})" />
+                                                       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" />
+                               <removeHeaders pattern="*" excludePattern="loopName" />
                                <doTry>
-                                       <log
-                                               loggingLevel="INFO"
-                                               message="Receive DELETE request for loop: ${header.loopName}" />
+                                       <log loggingLevel="INFO"
+                                               message="DELETE request for loop: ${header.loopName}" />
                                        <to
-                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog('Delete the closed loop')" />
+                                               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('Receive DELETE request','INFO',${exchangeProperty[loopObject]})" />
+                                               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()}
                                                <setProperty propertyName="microServicePolicy">
                                                        <simple>${body}</simple>
                                                </setProperty>
-                                               <log
-                                                       loggingLevel="INFO"
+                                               <log loggingLevel="INFO"
                                                        message="Processing Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" />
                                                <to uri="direct:delete-micro-service-policy" />
                                        </split>
 
-                                       <log
-                                               loggingLevel="INFO"
+                                       <log loggingLevel="INFO"
                                                message="Processing all OPERATIONAL policies defined in loop ${exchangeProperty[loopObject].getName()}" />
                                        <split>
                                                <simple>${exchangeProperty[loopObject].getOperationalPolicies()}
                                                <setProperty propertyName="operationalPolicy">
                                                        <simple>${body}</simple>
                                                </setProperty>
-                                               <log
-                                                       loggingLevel="INFO"
+                                               <log loggingLevel="INFO"
                                                        message="Processing Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" />
                                                <to uri="direct:delete-operational-policy" />
-                                               <log
-                                                       loggingLevel="INFO"
+                                               <log loggingLevel="INFO"
                                                        message="Processing all GUARD policies defined in loop ${exchangeProperty[loopObject].getName()}" />
                                                <split>
                                                        <simple>${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()}
                                                        <setProperty propertyName="guardPolicy">
                                                                <simple>${body}</simple>
                                                        </setProperty>
-                                                       <log
-                                                               loggingLevel="INFO"
+                                                       <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"
+                                       <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]})" />
                                                </handled>
                                                <to
                                                        uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-                                               <log
-                                                       loggingLevel="ERROR"
+                                               <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}','ERROR',${exchangeProperty[loopObject]})" />
+                                                       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">
+               <get uri="/v2/loop/getstatus/{loopName}"
+                       outType="org.onap.clamp.loop.Loop" produces="application/json">
                        <route>
-                               <removeHeaders pattern="*" excludePattern="loopName"/>
+                               <removeHeaders pattern="*" excludePattern="loopName" />
                                <doTry>
-                                       <log
-                                               loggingLevel="INFO"
-                                               message="Get current status for loop: ${header.loopName}" />
+                                       <log loggingLevel="INFO"
+                                               message="GET STATUS request for loop: ${header.loopName}" />
                                        <to
-                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Get the closed loop status')" />
+                                               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('Receive GET STATUS request','INFO',${exchangeProperty[loopObject]})" />
-                                       <setProperty propertyName="raiseHttpExceptionFlag">
-                                               <simple resultType="java.lang.Boolean">false</simple>
+                                               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>
+
+               <put uri="/v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}"
+                        outType="org.onap.clamp.loop.Loop" produces="application/json">
+                       <route>
+                               <removeHeaders pattern="*" excludePattern="loopName" />
+                               <doTry>
+                                       <log loggingLevel="INFO"
+                                                message="ADD OperationalPolicy request for loop: ${header.loopName}" />
+                                       <to
+                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'ADD OperationalPolicy request')" />
+                                       <to
+                                                       uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','write')" />
+                                       <to uri="direct:load-loop" />
+                                       <to
+                                                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('ADD OperationalPolicy request','INFO',${exchangeProperty[loopObject]})" />
+                                       <doTry>
+                                               <to
+                                                               uri="bean:org.onap.clamp.loop.LoopService?method=addOperationalPolicy(${loopName},${policyType},${policyVersion})" />
+
+                                               <to
+                                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('ADD OperationalPolicy 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="ADD OperationalPolicy request failed for loop: ${header.loopName}" />
+                                               <to
+                                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('ADD OperationalPolicy request, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
+                                       </doCatch>
+                                       <doFinally>
+                                               <setBody>
+                                                       <simple>${exchangeProperty[loopObject]}</simple>
+                                               </setBody>
+                                       </doFinally>
+                               </doTry>
+                       </route>
+               </put>
+
+               <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="direct:get-status-from-policy" />
-                                       <to uri="direct:get-status-from-dcae" />
                                        <to
-                                               uri="bean:org.onap.clamp.loop.LoopOperation?method=updateLoopStatus(${exchangeProperty[loopObject]},${exchangeProperty[policyStatus]}, ${exchangeProperty[dcaeStatus]})" />
-                                       <log
-                                               loggingLevel="INFO"
-                                               message="Get Status request successfully executed. The new state is: ${body}" />
+                                               uri="bean:org.onap.clamp.tosca.DictionaryService?method=saveOrUpdateDictionary(${exchangeProperty[DictionaryObject]})" />
                                        <to
-                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Get Status request successfully executed','INFO',${exchangeProperty[loopObject]})" />
+                                               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>
                                                </handled>
                                                <to
                                                        uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
-                                               <log
-                                                       loggingLevel="ERROR"
-                                                       message="Get Status request failed for loop: ${header.loopName}" />
+                                       </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.loop.log.LoopLogService?method=addLog('Get Status request failed','ERROR',${exchangeProperty[loopObject]})" />
+                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
                                        </doCatch>
-                                       <doFinally>
+                               </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.loop.LoopController?method=getLoop(${header.loopName})" />
-                                       </doFinally>
+                                                       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}/{policyModelVersion}"
+                       outType="org.onap.clamp.loop.template.PolicyModel"
+                       produces="application/json">
+                       <route>
+                               <removeHeaders pattern="*"
+                                       excludePattern="policyModelType|policyModelVersion" />
+                               <doTry>
+                                       <to
+                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET Tosca Policy Model by Name/Version')" />
+                                       <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},${header.policyModelVersion})" />
+                                       <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}/{policyModelVersion}"
+                       outType="java.lang.String" produces="application/json">
+                       <route>
+                               <removeHeaders pattern="*"
+                                       excludePattern="policyModelType|policyModelVersion" />
+                               <doTry>
+                                       <to
+                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET Tosca Policy Model Yaml String by Name/Version')" />
+                                       <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},${header.policyModelVersion})" />
+                                       <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>
+
+               <post 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="PolicyModelTosca">
+                                               <simple>${body}</simple>
+                                       </setProperty>
+                                       <to
+                                               uri="bean:org.onap.clamp.loop.template.PolicyModelsService?method=createNewPolicyModelFromTosca(${header.policyModelType},${exchangeProperty[PolicyModelTosca]})" />
+                                       <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>
+               </post>
+               <put uri="/v2/policyToscaModels/{policyModelType}/{policyModelVersion}"
+                         type="java.lang.String"
+                         outType="org.onap.clamp.loop.template.PolicyModel"
+                         consumes="plain/text" produces="application/json">
+                       <route>
+                               <removeHeaders pattern="*"
+                                                          excludePattern="policyModelType|policyModelVersion" />
+                               <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="PolicyModelTosca">
+                                               <simple>${body}</simple>
+                                       </setProperty>
+                                       <to
+                                                       uri="bean:org.onap.clamp.loop.template.PolicyModelsService?method=updatePolicyModelTosca(${header.policyModelType},${policyModelVersion},${exchangeProperty[PolicyModelTosca]})" />
+                                       <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>