code: async def get_wallet_record(wallet_handle: int,
                              type_: str,
                              id: str,
                              options_json: str) -> str:
      
  
      logger = logging.getLogger(__name__)
      logger.debug("get_wallet_record: >>> wallet_handle: %r, type_: %r, id: %r, options_json: %r",
                   wallet_handle,
                   type_,
                   id,
                   options_json)
  
      if not hasattr(get_wallet_record, "cb"):
          logger.debug("get_wallet_record: Creating callback")
          get_wallet_record.cb = create_cb(CFUNCTYPE(None, c_int32, c_int32, c_char_p))
  
      c_wallet_handle = c_int32(wallet_handle)
      c_type = c_char_p(type_.encode('utf-8'))
      c_id = c_char_p(id.encode('utf-8'))
      c_options_json = c_char_p(options_json.encode('utf-8'))
  
      wallet_record = await do_call('indy_get_wallet_record',
                                    c_wallet_handle,
                                    c_type,
                                    c_id,
                                    c_options_json,
                                    get_wallet_record.cb)
      res = wallet_record.decode()
  
      logger.debug("get_wallet_record: <<< res: %r", res)
      return res
docs: Get an wallet record by id
  
      :param wallet_handle: wallet handler (created by open_wallet).
      :param type_: allows to separate different record types collections
      :param id: the id of record
      :param options_json: //TODO: FIXME: Think about replacing by bitmask
        {
          retrieveType: (optional, false by default) Retrieve record type,
          retrieveValue: (optional, true by default) Retrieve record value,
          retrieveTags: (optional, true by default) Retrieve record tags
        }
      :return: wallet record json:
       {
         id: "Some id",
         type: "Some type", // present only if retrieveType set to true
         value: "Some value", // present only if retrieveValue set to true
         tags: <tags json>, // present only if retrieveTags set to true
       }