class CheramiClientImpl implements CheramiClient {

    @Override
    public void deleteConsumerGroup(DeleteConsumerGroupRequest request)
            throws EntityNotExistsError, BadRequestError, IOException {

        this.throwOnNullRequest(request);

        if (!request.isSetConsumerGroupName()) {
            throw new BadRequestError("request missing consumerGroupName parameter");
        }
        if (!request.isSetDestinationPath()) {
            throw new BadRequestError("request missing destinationPath parameter");
        }

        ThriftRequest<deleteConsumerGroup_args> thriftRequest = null;
        ThriftResponse<deleteConsumerGroup_result> thriftResponse = null;
        try {
            thriftRequest = buildThriftRequest("deleteConsumerGroup", new deleteConsumerGroup_args(request));
            thriftResponse = doRemoteCall(thriftRequest);
            deleteConsumerGroup_result result = thriftResponse.getBody(deleteConsumerGroup_result.class);
            if (thriftResponse.getResponseCode() == ResponseCode.OK) {
                return;
            }
            if (result != null && result.isSetEntityError()) {
                throw result.getEntityError();
            }
            if (result != null && result.isSetRequestError()) {
                throw result.getRequestError();
            }

            throw new IOException("deleteConsumerGroup failed with unknown error:" + result);
        } finally {
            if (thriftResponse != null) {
                thriftResponse.release();
            }
        }
    }

    private  CheramiClientImpl(ClientOptions options);
    protected  CheramiClientImpl(String host, int port, ClientOptions options);
    protected  CheramiClientImpl(String routerFile, ClientOptions options);

}