def call(self, client_data=None, api_data=None, aux_data=None, *args, **kwargs):
        """
        Calls the request with input data using given configuration (retry, timeout, ...).
        :param client_data:
        :param api_data:
        :param aux_data:
        :param args:
        :param kwargs:
        :return:
        """
        self.build_request(client_data=client_data, api_data=api_data, aux_data=aux_data)
        self.caller = RequestCall(self.request)

        try:
            self.caller.call()
            self.response = self.caller.response

            if self.response is None:
                raise ValueError('Empty response')
            if self.response.response is None \
                    or 'response' not in self.response.response \
                    or self.response.response['response'] is None:
                raise ValueError('No result data')

            return self.response.response['response']

        except Exception as e:
            logger.debug('Exception traceback: %s' % traceback.format_exc())
            logger.info('Exception thrown %s' % e)
            raise
        pass