package com.mozu.api;
import java.io.InputStream;
import java.util.Map;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.mozu.api.ApiContext;
import com.mozu.api.MozuUrl;
public interface MozuClient<TResult> {
public void setContext(ApiContext apiContext);
public void setBaseAddress(String baseAddress);
public void addHeader(String header, String value);
public void setVerb(String verb);
public void setResourceUrl(MozuUrl resourceUrl);
public <TBody> void setBody(TBody body) throws JsonProcessingException;
public void setBody(InputStream body) throws JsonProcessingException;
public void setBody(String body);
public String getStringResult() throws Exception;
public TResult getResult() throws Exception;
public void executeRequest() throws Exception;
public TResult executePostRequest(Object bodyObject, String resourceUrl, Map<String, String> headers) throws ApiException;
public TResult executePutRequest(Object bodyObject, String resourceUrl, Map<String, String> headers) throws ApiException;
public void executeDeleteRequest(String resourceUrl, Map<String, String> headers) throws ApiException;
public void cleanupHttpConnection () throws Exception;
}