<routes xmlns="http://camel.apache.org/schema/spring">
    <route id="deploy-loop">
        <from uri="direct:deploy-loop"/>
        <choice>
            <when>
                <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true
                </simple>
                <setProperty name="raiseHttpExceptionFlag">
                    <simple resultType="java.lang.Boolean">true</simple>
                </setProperty>
                <to uri="direct:deploy-loop-single-blueprint"/>
            </when>
            <when>
                <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false
                </simple>
                <setProperty name="raiseHttpExceptionFlag">
                    <simple resultType="java.lang.Boolean">true</simple>
                </setProperty>
                <to uri="direct:deploy-loop-multi-blueprint"/>
            </when>
        </choice>
    </route>
    <route id="deploy-loop-multi-blueprint">
        <from uri="direct:deploy-loop-multi-blueprint"/>
        <doTry>
            <log loggingLevel="INFO"
                 message="Deploying the blueprints for loop: ${exchangeProperty[loopObject].getName()}"/>
            <to
                    uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Deploying the loop with multiple blueprints')"/>
            <split>
                <simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
                </simple>
                <setProperty name="microServicePolicy">
                    <simple>${body}</simple>
                </setProperty>
                <log
                        loggingLevel="INFO"
                        message="Processing Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}"/>
                <setProperty name="raiseHttpExceptionFlag">
                    <simple resultType="java.lang.Boolean">false</simple>
                </setProperty>
                <setBody>
                    <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
                            method="getDeployPayload(${exchangeProperty[loopObject]},${exchangeProperty[microServicePolicy]})"/>
                </setBody>
                <setProperty name="dcaeDeploymentId">
                    <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
                            method="generateDeploymentId()"/>
                </setProperty>
                <setHeader name="CamelHttpMethod">
                    <constant>PUT</constant>
                </setHeader>
                <setHeader name="Content-Type">
                    <constant>application/json</constant>
                </setHeader>
                <setHeader name="X-ONAP-RequestID">
                    <simple>${exchangeProperty[X-ONAP-RequestID]}
                    </simple>
                </setHeader>
                <setHeader name="X-ONAP-InvocationID">
                    <simple>${exchangeProperty[X-ONAP-InvocationID]}
                    </simple>
                </setHeader>
                <setHeader name="X-ONAP-PartnerName">
                    <simple>${exchangeProperty[X-ONAP-PartnerName]}
                    </simple>
                </setHeader>
                <log loggingLevel="INFO"
                     message="Endpoint to deploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}"></log>
                <toD
                        uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
                <convertBodyTo type="java.lang.String"/>
                <setProperty name="dcaeResponse">
                    <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
                            method="convertDcaeResponse(${body})"/>
                </setProperty>
                <setProperty name="dcaeStatusUrl">
                    <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
                            method="getStatusUrl(${exchangeProperty[dcaeResponse]})"/>
                </setProperty>
                <to
                        uri="bean:org.onap.policy.clamp.policy.microservice.MicroServicePolicyService?method=updateDcaeDeploymentFields(${exchangeProperty[microServicePolicy]},${exchangeProperty[dcaeDeploymentId]},${exchangeProperty[dcaeStatusUrl]})"/>
                <to
                        uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLogForComponent('Deploy for the micro service: ${exchangeProperty[microServicePolicy].getName()} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO','DCAE',${exchangeProperty[loopObject]})"/>
            </split>
            <doCatch>
                <exception>java.lang.Exception</exception>
                <handled>
                    <constant>false</constant>
                </handled>
                <setProperty name="logMessage">
                    <simple>DEPLOY micro service failed
                        (MicroService name:${exchangeProperty[microServicePolicy].getName()}),
                        Dep-id:${exchangeProperty[dcaeDeploymentId]},
                        StatusUrl:${exchangeProperty[dcaeStatusUrl]})
                    </simple>
                </setProperty>
                <setProperty name="logComponent">
                    <simple>DCAE</simple>
                </setProperty>
                <to uri="direct:dump-loop-log-http-response"/>
            </doCatch>
            <doFinally>
                <to uri="direct:reset-raise-http-exception-flag"/>
                <to
                        uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
            </doFinally>
        </doTry>
    </route>
    <route id="deploy-loop-single-blueprint">
        <from uri="direct:deploy-loop-single-blueprint"/>
        <doTry>
            <log loggingLevel="INFO"
                 message="Deploying the loop: ${exchangeProperty[loopObject].getName()}"/>
            <to
                    uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Deploying the loop')"/>
            <setBody>
                <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
                        method="getDeployPayload(${exchangeProperty[loopObject]})"/>
            </setBody>
            <setProperty name="dcaeDeploymentId">
                <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
                        method="generateDeploymentId()"/>
            </setProperty>
            <setHeader name="CamelHttpMethod">
                <constant>PUT</constant>
            </setHeader>
            <setHeader name="Content-Type">
                <constant>application/json</constant>
            </setHeader>
            <setHeader name="X-ONAP-RequestID">
                <simple>${exchangeProperty[X-ONAP-RequestID]}
                </simple>
            </setHeader>
            <setHeader name="X-ONAP-InvocationID">
                <simple>${exchangeProperty[X-ONAP-InvocationID]}
                </simple>
            </setHeader>
            <setHeader name="X-ONAP-PartnerName">
                <simple>${exchangeProperty[X-ONAP-PartnerName]}
                </simple>
            </setHeader>
            <log loggingLevel="INFO"
                 message="Endpoint to deploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}"></log>
            <toD
                    uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
            <convertBodyTo type="java.lang.String"/>
            <setProperty name="dcaeResponse">
                <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
                        method="convertDcaeResponse(${body})"/>
            </setProperty>


            <setProperty name="dcaeStatusUrl">
                <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
                        method="getStatusUrl(${exchangeProperty[dcaeResponse]})"/>
            </setProperty>
            <to
                    uri="bean:org.onap.policy.clamp.loop.LoopService?method=updateDcaeDeploymentFields(${exchangeProperty[loopObject]},${exchangeProperty[dcaeDeploymentId]},${exchangeProperty[dcaeStatusUrl]})"/>
            <doFinally>
                <to uri="direct:reset-raise-http-exception-flag"/>
                <to
                        uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
                <setProperty name="logMessage">
                    <simple>DEPLOY loop status
                        (Dep-id:${exchangeProperty[dcaeDeploymentId]},
                        StatusUrl:${exchangeProperty[dcaeStatusUrl]})
                    </simple>
                </setProperty>
                <setProperty name="logComponent">
                    <simple>DCAE</simple>
                </setProperty>
                <to uri="direct:dump-loop-log-http-response"/>
            </doFinally>
        </doTry>
    </route>
    <route id="undeploy-loop">
        <from uri="direct:undeploy-loop"/>
        <choice>
            <when>
                <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true
                </simple>
                <setProperty name="raiseHttpExceptionFlag">
                    <simple resultType="java.lang.Boolean">true</simple>
                </setProperty>
                <to uri="direct:undeploy-loop-single-blueprint"/>
            </when>
            <when>
                <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false
                </simple>
                <setProperty name="raiseHttpExceptionFlag">
                    <simple resultType="java.lang.Boolean">true</simple>
                </setProperty>
                <to uri="direct:undeploy-loop-multi-blueprint"/>
            </when>
        </choice>
    </route>
    <route id="undeploy-loop-multi-blueprint">
        <from uri="direct:undeploy-loop-multi-blueprint"/>
        <doTry>
            <log loggingLevel="INFO"
                 message="Undeploying the blueprints for loop: ${exchangeProperty[loopObject].getName()}"/>
            <to
                    uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Undeploying the loop with multiple blueprints')"/>
            <split>
                <simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
                </simple>
                <setProperty name="microServicePolicy">
                    <simple>${body}</simple>
                </setProperty>
                <log
                        loggingLevel="INFO"
                        message="Processing Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}"/>
                <choice>
                    <when>
                        <simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentId()} != null
                        </simple>
                        <setBody>
                            <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
                                    method="getUndeployPayload(${exchangeProperty[microServicePolicy]})"/>
                        </setBody>
                        <setHeader name="CamelHttpMethod">
                            <constant>DELETE</constant>
                        </setHeader>
                        <setHeader name="Content-Type">
                            <constant>application/json</constant>
                        </setHeader>
                        <setHeader name="X-ONAP-RequestID">
                            <simple>${exchangeProperty[X-ONAP-RequestID]}
                            </simple>
                        </setHeader>
                        <setHeader name="X-ONAP-InvocationID">
                            <simple>${exchangeProperty[X-ONAP-InvocationID]}
                            </simple>
                        </setHeader>
                        <setHeader name="X-ONAP-PartnerName">
                            <simple>${exchangeProperty[X-ONAP-PartnerName]}
                            </simple>
                        </setHeader>
                        <log loggingLevel="INFO"
                             message="Endpoint to undeploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[microServicePolicy].getDcaeDeploymentId()}"></log>
                        <toD
                                uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[microServicePolicy].getDcaeDeploymentId()}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
                        <convertBodyTo type="java.lang.String"/>
                        <setProperty name="dcaeResponse">
                            <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
                                    method="convertDcaeResponse(${body})"/>
                        </setProperty>
                        <setProperty name="dcaeStatusUrl">
                            <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
                                    method="getStatusUrl(${exchangeProperty[dcaeResponse]})"/>
                        </setProperty>
                        <to
                                uri="bean:org.onap.policy.clamp.policy.microservice.MicroServicePolicyService?method=updateDcaeDeploymentFields(${exchangeProperty[microServicePolicy]},null,${exchangeProperty[dcaeStatusUrl]})"/>
                        <to
                                uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLogForComponent('Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO','DCAE',${exchangeProperty[loopObject]})"/>
                    </when>
                    <otherwise>
                        <log loggingLevel="WARN"
                             message="Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !"/>
                        <to
                                uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLogForComponent('Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !','WARNING','DCAE',${exchangeProperty[loopObject]})"/>
                    </otherwise>
                </choice>
            </split>
            <doCatch>
                <exception>java.lang.Exception</exception>
                <handled>
                    <constant>false</constant>
                </handled>
                <setProperty name="logMessage">
                    <simple>UNDEPLOY micro service failed
                        (MicroService name:${exchangeProperty[microServicePolicy].getName()})
                    </simple>
                </setProperty>
                <setProperty name="logComponent">
                    <simple>DCAE</simple>
                </setProperty>
                <to uri="direct:dump-loop-log-http-response"/>
            </doCatch>
            <doFinally>
                <to uri="direct:reset-raise-http-exception-flag"/>
                <to
                        uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
            </doFinally>
        </doTry>
    </route>
    <route id="undeploy-loop-single-blueprint">
        <from uri="direct:undeploy-loop-single-blueprint"/>
        <log loggingLevel="INFO"
             message="Undeploying the loop: ${exchangeProperty[loopObject].getName()} : ${exchangeProperty[loopObject].getDcaeDeploymentId()}"/>
        <to
                uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Undeploying the loop')"/>
        <choice>
            <when>
                <simple>${exchangeProperty[loopObject].getDcaeDeploymentId()} != null</simple>
                <doTry>
                    <setBody>
                        <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
                                method="getUndeployPayload(${exchangeProperty[loopObject]})"/>
                    </setBody>
                    <setHeader name="CamelHttpMethod">
                        <constant>DELETE</constant>
                    </setHeader>
                    <setHeader name="Content-Type">
                        <constant>application/json</constant>
                    </setHeader>

                    <setHeader name="X-ONAP-RequestID">
                        <simple>${exchangeProperty[X-ONAP-RequestID]}
                        </simple>
                    </setHeader>
                    <setHeader name="X-ONAP-InvocationID">
                        <simple>${exchangeProperty[X-ONAP-InvocationID]}
                        </simple>
                    </setHeader>
                    <setHeader name="X-ONAP-PartnerName">
                        <simple>${exchangeProperty[X-ONAP-PartnerName]}
                        </simple>
                    </setHeader>
                    <log loggingLevel="INFO"
                         message="Endpoint to undeploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[loopObject].getDcaeDeploymentId()}"></log>
                    <toD
                            uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[loopObject].getDcaeDeploymentId()}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
                    <convertBodyTo type="java.lang.String"/>
                    <setProperty name="dcaeResponse">
                        <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
                                method="convertDcaeResponse(${body})"/>
                    </setProperty>
                    <setProperty name="dcaeStatusUrl">
                        <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
                                method="getStatusUrl(${exchangeProperty[dcaeResponse]})"/>
                    </setProperty>
                    <to
                            uri="bean:org.onap.policy.clamp.loop.LoopService?method=updateDcaeDeploymentFields(${exchangeProperty[loopObject]},null,${exchangeProperty[dcaeStatusUrl]})"/>
                    <doFinally>
                        <to uri="direct:reset-raise-http-exception-flag"/>
                        <to
                                uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
                        <setProperty name="logMessage">
                            <simple>UNDEPLOY loop status</simple>
                        </setProperty>
                        <setProperty name="logComponent">
                            <simple>DCAE</simple>
                        </setProperty>
                        <to uri="direct:dump-loop-log-http-response"/>
                    </doFinally>
                </doTry>
            </when>
            <otherwise>
                <log loggingLevel="WARN"
                     message="Cannot Undeploy for the loop: ${exchangeProperty[loopObject].getName()}, the Deployment ID does not exist !"/>
                <to
                        uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('Cannot Undeploy for the loop: ${exchangeProperty[loopObject].getName()}, the Deployment ID does not exist !','WARNING',${exchangeProperty[loopObject]})"/>
            </otherwise>
        </choice>
    </route>
    <route id="get-dcae-deployment-status">
        <from uri="direct:get-dcae-deployment-status"/>
        <log loggingLevel="INFO"
             message="Getting DCAE deployment status for loop: ${exchangeProperty[loopObject].getName()} - ${exchangeProperty[dcaeComponent].getComponentName()}"/>
        <to
                uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting Deployment status')"/>
        <doTry>
            <setHeader name="CamelHttpMethod">
                <constant>GET</constant>
            </setHeader>
            <setHeader name="X-ONAP-RequestID">
                <simple>${exchangeProperty[X-ONAP-RequestID]}
                </simple>
            </setHeader>
            <setHeader name="X-ONAP-InvocationID">
                <simple>${exchangeProperty[X-ONAP-InvocationID]}
                </simple>
            </setHeader>
            <setHeader name="X-ONAP-PartnerName">
                <simple>${exchangeProperty[X-ONAP-PartnerName]}
                </simple>
            </setHeader>
            <log loggingLevel="INFO"
                 message="Endpoint to query microservice deployment status: ${exchangeProperty[getStatusUrlModified]}"></log>
            <choice>
                <when>
                    <simple>${exchangeProperty[getStatusUrl].contains("?")} == true
                    </simple>
                    <setProperty name="uriSeparator">
                        <simple>&amp;</simple>
                    </setProperty>
                </when>
                <otherwise>
                    <setProperty name="uriSeparator">
                        <simple>?</simple>
                    </setProperty>
                </otherwise>
            </choice>
            <toD
                    uri="${exchangeProperty[getStatusUrl]}${exchangeProperty[uriSeparator]}bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
            <doCatch>
                <exception>java.lang.Exception</exception>
                <handled>
                    <constant>true</constant>
                </handled>

                <log loggingLevel="ERROR"
                     message="GET DCAE deployment request FAILED for loop: ${header.loopName}, ${exception.stacktrace}"/>
                <to
                        uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('GET DCAE deployment request failed, Error reported: ${exception.message}','ERROR',${exchangeProperty[loopObject]})"/>
            </doCatch>
            <doFinally>
                <to uri="direct:reset-raise-http-exception-flag"/>
                <to
                        uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
                <setProperty name="logMessage">
                    <simple>DCAE deployment status</simple>
                </setProperty>
                <setProperty name="logComponent">
                    <simple>DCAE</simple>
                </setProperty>
                <to uri="direct:dump-loop-log-http-response"/>
            </doFinally>
        </doTry>
    </route>
    <route id="get-dcae-blueprint-inventory">
        <from uri="direct:get-dcae-blueprint-inventory"/>
        <log loggingLevel="INFO"
             message="Getting DCAE blueprint id in inventory"/>
        <to
                uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting blueprint id in inventory')"/>
        <doTry>
            <setHeader name="CamelHttpMethod">
                <constant>GET</constant>
            </setHeader>
            <setHeader name="X-ONAP-RequestID">
                <simple>${exchangeProperty[X-ONAP-RequestID]}
                </simple>
            </setHeader>
            <setHeader name="X-ONAP-InvocationID">
                <simple>${exchangeProperty[X-ONAP-InvocationID]}
                </simple>
            </setHeader>
            <setHeader name="X-ONAP-PartnerName">
                <simple>${exchangeProperty[X-ONAP-PartnerName]}
                </simple>
            </setHeader>
            <log loggingLevel="INFO"
                 message="Endpoint to query Dcae inventory Loop status: {{clamp.config.dcae.inventory.url}}/dcae-service-types?${header[CamelHttpQuery]}"></log>
            <toD
                    uri="{{clamp.config.dcae.inventory.url}}/dcae-service-types?asdcResourceId=${exchangeProperty[blueprintResourceId]}&amp;asdcServiceId=${exchangeProperty[blueprintServiceId]}&amp;typeName=${exchangeProperty[blueprintName]}&amp;bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
            <convertBodyTo type="java.lang.String"/>
            <doFinally>
                <to uri="direct:reset-raise-http-exception-flag"/>
                <to
                        uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
            </doFinally>
        </doTry>

    </route>
    <route id="get-all-dcae-blueprint-inventory">
        <from uri="direct:get-all-dcae-blueprint-inventory"/>
        <log loggingLevel="INFO"
             message="Getting all DCAE blueprint from inventory"/>
        <to uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting all blueprint from inventory')"/>
        <doTry>
            <setHeader name="CamelHttpMethod">
                <constant>GET</constant>
            </setHeader>
            <setHeader name="X-ONAP-RequestID">
                <simple>${exchangeProperty[X-ONAP-RequestID]}
                </simple>
            </setHeader>
            <setHeader name="X-ONAP-InvocationID">
                <simple>${exchangeProperty[X-ONAP-InvocationID]}
                </simple>
            </setHeader>
            <setHeader name="X-ONAP-PartnerName">
                <simple>${exchangeProperty[X-ONAP-PartnerName]}
                </simple>
            </setHeader>
            <log loggingLevel="INFO"
                 message="Endpoint to query Blueprints from DCAE inventory: {{clamp.config.dcae.inventory.url}}/dcae-service-types?${header[CamelHttpQuery]}"></log>
            <toD uri="{{clamp.config.dcae.inventory.url}}/dcae-service-types;bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
            <convertBodyTo type="java.lang.String"/>
            <setProperty name="dcaeResponseList">
                <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent"
                        method="convertToDcaeInventoryResponse(${body})"/>
            </setProperty>
            <split>
                <simple>${exchangeProperty[dcaeResponseList]}</simple>
                <convertBodyTo type="org.onap.policy.clamp.clds.model.dcae.DcaeInventoryResponse"/>
                <setProperty name="dcaeResponse">
                    <simple>${body}</simple>
                </setProperty>
                <to uri="bean:org.onap.policy.clamp.clds.model.dcae.DcaeInventoryCache?method=addDcaeInventoryResponse(${exchangeProperty[dcaeResponse]})"/>
            </split>
            <doFinally>
                <to uri="direct:reset-raise-http-exception-flag"/>
                <to uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
            </doFinally>
        </doTry>
    </route>
</routes>