class KsqlRestClient implements Closeable, AutoCloseable {

  public RestResponse<QueryStream> makeQueryRequest(String ksql) {
    KsqlRequest jsonRequest = new KsqlRequest(ksql, localProperties);
    Response response = makePostRequest("query", jsonRequest);
    if (response.getStatus() == Response.Status.OK.getStatusCode()) {
      return RestResponse.successful(new QueryStream(response));
    } else {
      return RestResponse.erroneous(response.readEntity(KsqlErrorMessage.class));
    }
  }

  public  KsqlRestClient(final String serverAddress);
  public  KsqlRestClient(final String serverAddress, final Properties properties);
  public  KsqlRestClient(String serverAddress, Map<String, Object> localProperties);
    KsqlRestClient(Client client, String serverAddress);

}