001/*
002 * #%L
003 * HAPI FHIR - Core Library
004 * %%
005 * Copyright (C) 2014 - 2023 Smile CDR, Inc.
006 * %%
007 * Licensed under the Apache License, Version 2.0 (the "License");
008 * you may not use this file except in compliance with the License.
009 * You may obtain a copy of the License at
010 *
011 *      http://www.apache.org/licenses/LICENSE-2.0
012 *
013 * Unless required by applicable law or agreed to in writing, software
014 * distributed under the License is distributed on an "AS IS" BASIS,
015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016 * See the License for the specific language governing permissions and
017 * limitations under the License.
018 * #L%
019 */
020/*
021 * To change this license header, choose License Headers in Project Properties.
022 * To change this template file, choose Tools | Templates
023 * and open the template in the editor.
024 */
025package ca.uhn.fhir.rest.gclient;
026
027import org.hl7.fhir.instance.model.api.IBaseBundle;
028import org.hl7.fhir.instance.model.api.IBaseResource;
029
030/**
031 *
032 * @author HGS
033 */
034public interface IOperationProcessMsg{
035
036    /**
037     * Set the Message Bundle to POST to the messaging server.<br>
038     * After this call you must choose either the method synchronous or asynchronous to set the processing mode.
039     * 
040     * @param <R>
041     * @param theMsgBundle A Bundle of type message
042     * @return 
043     */
044    <R extends IBaseResource> IOperationProcessMsgMode<R> setMessageBundle(IBaseBundle theMsgBundle);
045
046    /**
047     * An optional query parameter indicating that responses from the receiving server should be sent to this url
048     * 
049     * @param respondToUri The receiving endpoint to witch server response messages should be sent.
050     * @return 
051     */
052    IOperationProcessMsg setResponseUrlParam(String respondToUri);
053}