code: async def get_tree(self, prefix, *,
                         dc=None, separator=None, watch=None, consistency=None):
          
          response = await self._read(prefix,
                                      dc=dc,
                                      recurse=True,
                                      separator=separator,
                                      watch=watch,
                                      consistency=consistency)
          result = response.body
          for data in result:
              data["Value"] = decode_value(data["Value"], data["Flags"])
          return consul(result, meta=extract_meta(response.headers))
docs: Gets all keys with a prefix of Key during the transaction.
  
          Parameters:
              prefix (str): Prefix to fetch
              separator (str): List only up to a given separator
              dc (str): Specify datacenter that will be used.
                        Defaults to the agent's local datacenter.
              watch (Blocking): Do a blocking query
              consistency (Consistency): Force consistency
          Returns:
              CollectionMeta: where value is a list of values
  
          This does not fail the transaction if the Key doesn't exist. Not
          all keys may be present in the results if ACLs do not permit them
          to be read.