code: async def vcx_messages_download(status: str = None, uids: str = None, pw_dids: str = None) -> str:
      
      logger = logging.getLogger(__name__)
  
      if not hasattr(vcx_messages_download, "cb"):
          logger.debug("vcx_messages_download: Creating callback")
          vcx_messages_download.cb = create_cb(CFUNCTYPE(None, c_uint32, c_uint32, c_char_p))
  
      if status:
          c_status = c_char_p(status.encode('utf-8'))
      else:
          c_status = None
  
      if uids:
          c_uids = c_char_p(uids.encode('utf-8'))
      else:
          c_uids = None
  
      if pw_dids:
          c_pw_dids = c_char_p(pw_dids.encode('utf-8'))
      else:
          c_pw_dids = None
  
      result = await do_call('vcx_messages_download',
                             c_status,
                             c_uids,
                             c_pw_dids,
                             vcx_messages_download.cb)
  
      logger.debug("vcx_messages_download completed")
      return result
docs: Retrieve messages from the specified connection
      :param status:
      :param uids:
      :param pw_dids:
      :return: