docs: def _create_transfer_spec(self, call_args):
          ''' pass the transfer details to aspera and receive back a
              populated transfer spec complete with access token '''
          _paths = []
          for _file_pair in call_args.file_pair_list:
              _path = OrderedDict()
              if call_args.direction == enumAsperaDirection.SEND:
                  _action = "upload_setup"
                  _path['source'] = _file_pair.fileobj
                  _path['destination'] = _file_pair.key
              else:
                  _action = "download_setup"
                  _path['source'] = _file_pair.key
                  _path['destination'] = _file_pair.fileobj
              _paths.append(_path)
  
          # Add credentials before the transfer spec is requested.
          delegated_token = self._delegated_token_manager.get_token()
          _response = self._fetch_transfer_spec(_action, delegated_token, call_args.bucket, _paths)
  
          tspec_dict = json.loads(_response.content)['transfer_specs'][0]['transfer_spec']
  
          tspec_dict["destination_root"] = "/"
  
          if (call_args.transfer_config):
              tspec_dict.update(call_args.transfer_config.dict)
              if call_args.transfer_config.is_multi_session_all:
                  tspec_dict['multi_session'] = 0
                  _remote_host = tspec_dict['remote_host'].split('.')
                  # now we append '-all' to the remote host
                  _remote_host[0] += "-all"
                  tspec_dict['remote_host'] = ".".join(_remote_host)
                  logger.info("New remote_host(%s)" % tspec_dict['remote_host'])
  
          call_args.transfer_spec = json.dumps(tspec_dict)
  
          return True