001
002package io.vrap.rmf.base.client;
003
004import java.time.Duration;
005import java.util.concurrent.CompletableFuture;
006
007public interface ClientRequestCommand<TResult> {
008    CompletableFuture<ApiHttpResponse<TResult>> execute(final ApiHttpClient client);
009
010    default ApiHttpResponse<TResult> executeBlocking(final ApiHttpClient client) {
011        return executeBlocking(client, ApiHttpClient.DEFAULT_TIMEOUT);
012    }
013
014    ApiHttpResponse<TResult> executeBlocking(final ApiHttpClient client, final Duration timeout);
015}