This will initialize an api_call or pop one that has already
        been initialized with the endpoint parameters
        :param method:  str of the html method ['GET','POST','PUT','DELETE']
        :param _url:    str of the sub url of the api call (ex. g/device/list)
        :param kwargs:  dict of additional arguments
        :return:        ApiCall

def _pop_api_call(self, method, _url, kwargs):
        """
        This will initialize an api_call or pop one that has already
        been initialized with the endpoint parameters
        :param method:  str of the html method ['GET','POST','PUT','DELETE']
        :param _url:    str of the sub url of the api call (ex. g/device/list)
        :param kwargs:  dict of additional arguments
        :return:        ApiCall
        """
        call_queue = self._call_queue.setdefault(self._get_thread_id(), [])

        if not call_queue:
            self._pre_process_call(name='%s.%s' % (_url, method),
                                   endpoint_params=kwargs)
            # this will add the api_call to the call_queue
        return call_queue.pop()