001/*-
002 * #%L
003 * Smile CDR - CDR
004 * %%
005 * Copyright (C) 2016 - 2024 Smile CDR, Inc.
006 * %%
007 * All rights reserved.
008 * #L%
009 */
010package ca.cdr.api.camel;
011
012import java.util.Map;
013import java.util.concurrent.CompletableFuture;
014
015/**
016 * Service to send messages to camel module routes.
017 * Can be autowired from hybrid providers.
018 */
019public interface ICamelRouteEndpointSvc {
020
021        /**
022         * Send asynchronous request to camel module/route specified
023         * @param theModuleId the camel target module ID
024         * @param theDirectRouteName the camel target module route ID
025         * @param theInput the input object
026         * @param theHeaders the request headers
027         * @return CompletableFuture the asynchronous send response
028         */
029        CompletableFuture<Object> sendToCamelRoute(
030                        String theModuleId, String theDirectRouteName, Object theInput, Map<String, Object> theHeaders);
031}