package ru.yandex.webmaster3.storage.util.yt;

import java.net.URI;

import com.fasterxml.jackson.core.JsonProcessingException;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpUriRequest;

/**
 * @author aherman
 */
interface YtCommand<T> {
    void setProxyUri(URI proxyUri);
    void setTransactionId(YtTransaction transactionId);
    void setAuthToken(String authToken);
    boolean needHeavyProxy();
    HttpUriRequest createRequest() throws YtException, JsonProcessingException;
    YtResult<T> processResponse(HttpResponse httpResponse) throws YtCommandException;
}
