Fix delete flow bug
[clamp.git] / src / main / resources / clds / camel / rest / clamp-api-v2.xml
index f2db72c..505ea30 100644 (file)
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
-                                                       <constant>false</constant>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="GET All Loop names FAILED: ${exception.stacktrace}" />
+
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>GET All Loop names FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                        <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>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="GET Loop request failed for loop: ${header.loopName}, ${exception.stacktrace}" />
+
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>GET Loop FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
-                                                       <constant>false</constant>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="UPDATE Global properties FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
+
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>UPDATE Global properties FAILED </simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                        <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]})" />
+                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Operational 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>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="UPDATE Operational policies FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
+                                               <to
+                                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('UPDATE Operational policies request FAILED, Error reported: ${exception.message}','ERROR',${exchangeProperty[loopObject]})" />
+
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>UPDATE Operational policies FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
-                                                       <constant>false</constant>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="UPDATE MicroService policy FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
+                                               <to
+                                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('UPDATE MicroService policy request FAILED, Error reported: ${exception.message}','ERROR',${exchangeProperty[loopObject]})" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>UPDATE MicroService policy FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                <doTry>
                                        <log loggingLevel="INFO"
                                                message="DCAE DEPLOY request for loop: ${header.loopName}" />
+                                       <setProperty propertyName="raiseHttpExceptionFlag">
+                                               <simple resultType="java.lang.Boolean">true</simple>
+                                       </setProperty>
                                        <to
                                                uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'DCAE DEPLOY request')" />
                                        <to
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
-                                                       <constant>false</constant>
+                                                       <constant>true</constant>
+                                               </handled>
+                                               <to
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="DEPLOY request FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
+                                               <to
+                                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DEPLOY request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>DEPLOY request FAILED</simple>
+                                               </setBody>
+                                       </doCatch>
+                               </doTry>
+                       </route>
+               </put>
+               <put uri="/v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}"
+                        outType="org.onap.clamp.loop.Loop" produces="application/json">
+                       <route>
+                               <removeHeaders pattern="*" excludePattern="loopName|microServicePolicyName" />
+                               <doTry>
+                                       <log loggingLevel="INFO"
+                                                message="Refresh Micro Service Policy UI for loop: ${header.loopName} and ${header.microServicePolicyName}" />
+                                       <to
+                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'REFRESH Micro Service 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.cds.CdsDataInstaller?method=updateCdsServiceProperties(${exchangeProperty[loopObject].getModelService()})" />
+                                       <to
+                                                       uri="bean:org.onap.clamp.loop.LoopController?method=refreshMicroServicePolicyJsonRepresentation(${exchangeProperty[loopObject]},${header.microServicePolicyName})" />
+                                       <log loggingLevel="INFO"
+                                                message="REFRESH Micro Service policy request successfully executed for loop: ${header.loopName}" />
+                                       <to
+                                                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('REFRESH Micro Service policy 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>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
                                                <log loggingLevel="ERROR"
-                                                       message="DEPLOY request failed for loop: ${header.loopName}" />
+                                                        message="REFRESH json schema request FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
                                                <to
-                                                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DEPLOY request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
+                                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('REFRESH Json schema request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>REFRESH json schema request FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                </put>
-               <put uri="/v2/loop/refreshOpPolicyJsonSchema/{loopName}"
+               <put uri="/v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}"
                        outType="org.onap.clamp.loop.Loop" produces="application/json">
                        <route>
-                               <removeHeaders pattern="*" excludePattern="loopName" />
+                               <removeHeaders pattern="*" excludePattern="loopName|operationalPolicyName" />
                                <doTry>
                                        <log loggingLevel="INFO"
-                                               message="Refresh Operational Policy UI for loop: ${header.loopName}" />
+                                               message="Refresh Operational Policy UI for loop: ${header.loopName} and ${header.operationalPolicyName}" />
                                        <to
-                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'REFRESH OP Policy UI request')" />
+                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'REFRESH Operational 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})" />
+                                                       uri="bean:org.onap.clamp.loop.cds.CdsDataInstaller?method=updateCdsServiceProperties(${exchangeProperty[loopObject].getModelService()})" />
+                                       <to
+                                               uri="bean:org.onap.clamp.loop.LoopController?method=refreshOperationalPolicyJsonRepresentation(${exchangeProperty[loopObject]},${header.operationalPolicyName})" />
                                        <log loggingLevel="INFO"
-                                               message="REFRESH request successfully executed for loop: ${header.loopName}" />
+                                               message="REFRESH operational policy 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]})" />
+                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('REFRESH operational policy 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>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
                                                <log loggingLevel="ERROR"
-                                                       message="REFRESH request failed for loop: ${header.loopName}" />
+                                                        message="REFRESH json schema request FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
                                                <to
-                                                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('REFRESH request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
+                                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('REFRESH Json schema request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>REFRESH json schema request FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                <doTry>
                                        <log loggingLevel="INFO"
                                                message="DCAE UNDEPLOY request for loop: ${header.loopName}" />
+                                       <setProperty propertyName="raiseHttpExceptionFlag">
+                                               <simple resultType="java.lang.Boolean">true</simple>
+                                       </setProperty>
                                        <to
                                                uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'DCAE UNDEPLOY request')" />
                                        <to
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
-                                                       <constant>false</constant>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
                                                <log loggingLevel="ERROR"
-                                                       message="UNDEPLOY request failed for loop: ${header.loopName}" />
+                                                        message="UNDEPLOY request FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
                                                <to
-                                                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('UNDEPLOY request failed, Error reported: ${exception} - Body: ${exception.responseBody}','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]})" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>UNDEPLOY request FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                <doTry>
                                        <log loggingLevel="INFO"
                                                message="STOP request for loop: ${header.loopName}" />
+                                       <setProperty propertyName="raiseHttpExceptionFlag">
+                                               <simple resultType="java.lang.Boolean">true</simple>
+                                       </setProperty>
                                        <to
                                                uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*,'STOP request')" />
                                        <to
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
-                                                       <constant>false</constant>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
                                                <log loggingLevel="ERROR"
-                                                       message="STOP request failed for loop: $${header.loopName}" />
+                                                        message="STOP request FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
                                                <to
-                                                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('STOP request failed, Error reported: ${exception} - Body: ${exception.responseBody}','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]})" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>STOP request FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                <doTry>
                                        <log loggingLevel="INFO"
                                                message="RESTART request for loop: ${header.loopName}" />
+                                       <setProperty propertyName="raiseHttpExceptionFlag">
+                                               <simple resultType="java.lang.Boolean">true</simple>
+                                       </setProperty>
                                        <to
                                                uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*,'RESTART request')" />
                                        <to
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
-                                                       <constant>false</constant>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
                                                <log loggingLevel="ERROR"
-                                                       message="RESTART request failed for loop: ${header.loopName}" />
+                                                        message="RESTART request FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
                                                <to
-                                                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('RESTART request failed, Error reported: ${exception} - Body: ${exception.responseBody}','INFO',${exchangeProperty[loopObject]})" />
+                                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('RESTART request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>RESTART request FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                <doTry>
                                        <log loggingLevel="INFO"
                                                message="POLICY SUBMIT request for loop: ${header.loopName}" />
+                                       <setProperty propertyName="raiseHttpExceptionFlag">
+                                               <simple resultType="java.lang.Boolean">true</simple>
+                                       </setProperty>
                                        <to
                                                uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'POLICY SUBMIT request')" />
                                        <to
                                        <split>
                                                <simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
                                                </simple>
-                                               <setProperty propertyName="microServicePolicy">
+                                               <setProperty propertyName="policy">
                                                        <simple>${body}</simple>
                                                </setProperty>
                                                <log loggingLevel="INFO"
-                                                       message="Processing Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" />
+                                                       message="Processing Micro Service Policy: ${exchangeProperty[policy].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" />
+                                               <to uri="direct:delete-policy" />
+                                               <to uri="direct:create-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">
+                                               <setProperty propertyName="policy">
                                                        <simple>${body}</simple>
                                                </setProperty>
                                                <log loggingLevel="INFO"
-                                                       message="Processing Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" />
+                                                       message="Processing Operational Policy: ${exchangeProperty[policy].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>
+                                               <to uri="direct:delete-policy" />
+                                               <to uri="direct:create-policy" />
                                        </split>
 
                                        <delay>
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
-                                                       <constant>false</constant>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
                                                <log loggingLevel="ERROR"
-                                                       message="SUBMIT request failed for loop: ${header.loopName}" />
+                                                        message="SUBMIT request FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
                                                <to
-                                                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('SUBMIT request failed, Error reported: ${exception} - Body: ${exception.responseBody}','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]})" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>SUBMIT request FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                <doTry>
                                        <log loggingLevel="INFO"
                                                message="DELETE request for loop: ${header.loopName}" />
+                                       <setProperty propertyName="raiseHttpExceptionFlag">
+                                               <simple resultType="java.lang.Boolean">true</simple>
+                                       </setProperty>
                                        <to
                                                uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*,'DELETE request')" />
                                        <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" />
+                                       <log loggingLevel="INFO"
+                                               message="Deleting all MICRO-SERVICES policies defined in loop ${exchangeProperty[loopObject].getName()}" />
                                        <split>
                                                <simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
                                                </simple>
-                                               <setProperty propertyName="microServicePolicy">
+                                               <setProperty propertyName="policy">
                                                        <simple>${body}</simple>
                                                </setProperty>
                                                <log loggingLevel="INFO"
-                                                       message="Processing Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" />
-                                               <to uri="direct:delete-micro-service-policy" />
+                                                       message="Deleting Micro Service Policy: ${exchangeProperty[policy].getName()}" />
+                                               <setProperty propertyName="raiseHttpExceptionFlag">
+                                                       <simple resultType="java.lang.Boolean">false</simple>
+                                               </setProperty>
+                                               <to uri="direct:delete-policy" />
                                        </split>
-
                                        <log loggingLevel="INFO"
-                                               message="Processing all OPERATIONAL policies defined in loop ${exchangeProperty[loopObject].getName()}" />
+                                               message="Deleting all OPERATIONAL policies defined in loop ${exchangeProperty[loopObject].getName()}" />
                                        <split>
                                                <simple>${exchangeProperty[loopObject].getOperationalPolicies()}
                                                </simple>
-                                               <setProperty propertyName="operationalPolicy">
+                                               <setProperty propertyName="policy">
                                                        <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>
+                                                       message="Deleting Operational Policy: ${exchangeProperty[policy].getName()}" />
+                                               <setProperty propertyName="raiseHttpExceptionFlag">
+                                                       <simple resultType="java.lang.Boolean">false</simple>
+                                               </setProperty>
+                                               <to uri="direct:delete-policy" />
                                        </split>
                                        <to
-                                               uri="bean:org.onap.clamp.loop.log.LoopService?method=deleteLoop(${header.loopName})" />
+                                               uri="bean:org.onap.clamp.loop.LoopController?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>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
                                                <log loggingLevel="ERROR"
-                                                       message="DELETE request failed for loop: ${header.loopName}" />
+                                                        message="DELETE request FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
                                                <to
-                                                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DELETE request failed, Error reported: ${exception} - Body: ${exception.responseBody}','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]})" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>DELETE request FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                        <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="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
+                                       <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>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
                                                <log loggingLevel="ERROR"
-                                                       message="Get Status request failed for loop: ${header.loopName}" />
+                                                        message="GET STATUS request FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
                                                <to
-                                                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Get Status request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
+                                                               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>
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>200</constant>
+                                               </setHeader>
                                        </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|policyType|policyVersion" />
+                               <doTry>
+                                       <to
+                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Add operational Policy')" />
+                                       <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=addOperationalPolicy(${header.loopName},${header.policyType},${header.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()" />
+                                       <doCatch>
+                                               <exception>java.lang.Exception</exception>
+                                               <handled>
+                                                       <constant>true</constant>
+                                               </handled>
+                                               <to
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="ADD operational policy request FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
+                                               <to
+                                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('ADD OperationalPolicy request failed','ERROR',${exchangeProperty[loopObject]})" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>ADD Operational policy request FAILED for loop: ${header.loopName}, ${exception.message}"</simple>
+                                               </setBody>
+                                               
+                                       </doCatch>
+                               </doTry>
+                       </route>
+               </put>
+               <put uri="/v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}" outType="org.onap.clamp.loop.Loop" produces="application/json">
+                       <route>
+                               <removeHeaders pattern="*" excludePattern="loopName|policyType|policyVersion|policyName" />
+                               <doTry>
+                                       <to
+                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'REMOVE operational Policy')" />
+                                       <to
+                                                       uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
+                                       <to uri="direct:load-loop" />
+                                       <setProperty propertyName="policyName">
+                                               <simple>${header.policyName}</simple>
+                                       </setProperty>
+                                       <setProperty propertyName="policy">
+                                               <simple>${exchangeProperty[loopObject].getOperationalPolicy(header.policyName)}</simple>
+                                       </setProperty>
+                                       <setProperty propertyName="raiseHttpExceptionFlag">
+                                               <simple resultType="java.lang.Boolean">false</simple>
+                                       </setProperty>
+                                       <to uri="direct:remove-one-policy-from-active-pdp-group" />
+                                       <setProperty propertyName="raiseHttpExceptionFlag">
+                                               <simple resultType="java.lang.Boolean">false</simple>
+                                       </setProperty>
+                                       <to uri="direct:delete-policy" />
+                                       <to
+                                                       uri="bean:org.onap.clamp.loop.LoopController?method=removeOperationalPolicy(${header.loopName},${header.policyType},${header.policyVersion})" />
+                                       <to
+                                                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('REMOVE OperationalPolicy 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>true</constant>
+                                               </handled>
+                                               <to
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="REMOVE operational policy request FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
+                                               <to
+                                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('REMOVE OperationalPolicy request failed','ERROR',${exchangeProperty[loopObject]})" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>REMOVE Operational policy request FAILED</simple>
+                                               </setBody>
+                                       </doCatch>
+                               </doTry>
+                       </route>
+               </put>
+               <post
+                               uri="/v2/loop/create/{loopName}?templateName={templateName}"
+                               outType="org.onap.clamp.loop.Loop" consumes="application/json"
+                               produces="application/json">
+                       <route>
+                               <removeHeaders
+                                               pattern="*"
+                                               excludePattern="loopName|templateName" />
+                               <doTry>
+                                       <to
+                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Create Loop')" />
+                                       <to
+                                                       uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
+                                       <to
+                                                       uri="bean:org.onap.clamp.loop.LoopController?method=createLoop(${header.loopName}, ${header.templateName})" />
+                                       <to
+                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
+                                       <doCatch>
+                                               <exception>java.lang.Exception</exception>
+                                               <handled>
+                                                       <constant>true</constant>
+                                               </handled>
+                                               <to
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="CREATE Loop from Template request failed for loop: ${header.loopName}, ${exception.stacktrace}" />
+                                               <to
+                                                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('CREATE Loop from template request failed','ERROR',${exchangeProperty[loopObject]})" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>CREATE Loop from template FAILED</simple>
+                                               </setBody>
+                                       </doCatch>
+                               </doTry>
+                       </route>
+               </post>
                <get uri="/v2/dictionary"
                        outType="org.onap.clamp.tosca.Dictionary" produces="application/json">
                        <route>
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
-                                                       <constant>false</constant>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="GET Dictionary request failed: ${exception.stacktrace}" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>GET Dictionary FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
-                                                       <constant>false</constant>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="GET Dictionary request failed: ${exception.stacktrace}" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>GET Dictionary FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
-                                                       <constant>false</constant>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="GET Dictionary request failed for: ${header.dictionaryName}, ${exception.stacktrace}" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>GET Dictionary FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
-                                                       <constant>false</constant>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="PUT Dictionary request failed for: ${exception.stacktrace}" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>PUT Dictionary FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
-                                                       <constant>false</constant>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="PUT Dictionary request failed for: ${header.name}, ${exception.stacktrace}" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>PUT Dictionary FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
-                                                       <constant>false</constant>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="DELETE Dictionary request failed for: ${header.name}, ${exception.stacktrace}" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>DELETE Dictionary FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
-                                                       <constant>false</constant>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="DELETE Dictionary element request failed for: ${header.name}, ${exception.stacktrace}" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>DELETE Dictionary element FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                                <handled>
                                                        <constant>true</constant>
                                                </handled>
+                                               <to
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="GET Policy Models request failed for: ${exception.stacktrace}" />
                                                <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()" />
+                                               <setBody>
+                                                       <simple>GET Policy models FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                </get>
-               <get uri="/v2/policyToscaModels/{policyModelType}"
+               <get uri="/v2/policyToscaModels/{policyModelType}/{policyModelVersion}"
                        outType="org.onap.clamp.loop.template.PolicyModel"
                        produces="application/json">
                        <route>
                                <removeHeaders pattern="*"
-                                       excludePattern="policyModelType" />
+                                       excludePattern="policyModelType|policyModelVersion" />
                                <doTry>
                                        <to
-                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET Tosca Policy Model by Name')" />
+                                               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})" />
+                                               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>
                                                <handled>
                                                        <constant>true</constant>
                                                </handled>
+                                               <to
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="GET Policy Model request failed for type: ${header.policyModelType}, ${exception.stacktrace}" />
                                                <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()" />
+                                               <setBody>
+                                                       <simple>GET Policy model FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                </get>
-               <get uri="/v2/policyToscaModels/yaml/{policyModelType}"
+               <get uri="/v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}"
                        outType="java.lang.String" produces="application/json">
                        <route>
                                <removeHeaders pattern="*"
-                                       excludePattern="policyModelType" />
+                                       excludePattern="policyModelType|policyModelVersion" />
                                <doTry>
                                        <to
-                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET Tosca Policy Model Yaml String by Name')" />
+                                               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})" />
+                                               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>
                                                <handled>
                                                        <constant>true</constant>
                                                </handled>
+                                               <to
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="GET Policy Model YAML request failed for type: ${header.policyModelType}, ${exception.stacktrace}" />
                                                <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()" />
+                                               <setBody>
+                                                       <simple>GET Policy model YAML FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                </get>
 
-               <put uri="/v2/policyToscaModels/{policyModelType}"
+               <post uri="/v2/policyToscaModels"
                        type="java.lang.String"
                        outType="org.onap.clamp.loop.template.PolicyModel"
                        consumes="plain/text" produces="application/json">
                        <route>
-                               <removeHeaders pattern="*"
-                                       excludePattern="policyModelType" />
+                               <removeHeaders pattern="*"/>
                                <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">
+                                       <setProperty propertyName="PolicyModelTosca">
                                                <simple>${body}</simple>
                                        </setProperty>
                                        <to
-                                               uri="bean:org.onap.clamp.loop.template.PolicyModelsService?method=saveOrUpdateByPolicyModelType(${header.policyModelType},${exchangeProperty[PolicyModelObject]})" />
+                                               uri="bean:org.onap.clamp.loop.template.PolicyModelsService?method=createNewPolicyModelFromTosca(${exchangeProperty[PolicyModelTosca]})" />
                                        <to
                                                uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
                                        <doCatch>
                                                <handled>
                                                        <constant>true</constant>
                                                </handled>
+                                               <to
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="POST Policy Model YAML request failed: ${exception.stacktrace}" />
                                                <setHeader headerName="CamelHttpResponseCode">
-                                                       <constant>404</constant>
+                                                       <constant>500</constant>
                                                </setHeader>
-                                               <transform>
-                                                       <simple>ERROR: ${exception.message}</simple>
-                                               </transform>
+                                               <setBody>
+                                                       <simple>POST Policy model YAML FAILED</simple>
+                                               </setBody>
+                                       </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>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="MODIFY Policy Model YAML request failed: ${exception.stacktrace}" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>MODIFY Policy model YAML FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                </put>
 
-
                <get uri="/v2/templates"
                        outType="org.onap.clamp.loop.template.LoopTemplate"
                        produces="application/json">
                                                <handled>
                                                        <constant>true</constant>
                                                </handled>
+                                               <to
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="GET ALL templates request failed: ${exception.stacktrace}" />
                                                <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()" />
+                                               <setBody>
+                                                       <simple>GET ALL templates FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                                <handled>
                                                        <constant>true</constant>
                                                </handled>
+                                               <to
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="GET Template request failed for template: ${header.templateName},  ${exception.stacktrace}" />
                                                <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()" />
+                                               <setBody>
+                                                       <simple>GET Template FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                                        <doCatch>
                                                <exception>java.lang.Exception</exception>
                                                <handled>
-                                                       <constant>false</constant>
+                                                       <constant>true</constant>
                                                </handled>
                                                <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+                                               <log loggingLevel="ERROR"
+                                                        message="GET All Template names request failed for template:  ${exception.stacktrace}" />
+                                               <setHeader headerName="CamelHttpResponseCode">
+                                                       <constant>500</constant>
+                                               </setHeader>
+                                               <setBody>
+                                                       <simple>GET All Template names FAILED</simple>
+                                               </setBody>
                                        </doCatch>
                                </doTry>
                        </route>
                </get>
+               <get uri="/v2/clampInformation" outType="org.onap.clamp.clds.model.ClampInformation"
+                        produces="application/json">
+                       <to
+                                       uri="bean:org.onap.clamp.authorization.AuthorizationController?method=getClampInformation()" />
+               </get>
        </rest>
 </rests>