code: def _flow_to_json(self):
      # No need to store tags, sys_tags or username at the flow level
      # since runs are the top level logical concept, which is where we
      # store tags, sys_tags and username
      return {
          "flow_id": self._flow_name,
          "ts_epoch": int(round(time.time() * 1000)),
      }
  
imports: import json
  import os
  import re
  import time
  from collections import namedtuple
  from itertools import chain
  from metaflow.exception import MetaflowInternalError, MetaflowTaggingError
  from metaflow.tagging_util import validate_tag
  from metaflow.util import get_username, resolve_identity_as_tuple, is_stringish
label_desc: Use image node_id 21 for calling the MetadataProvider obj's underlying member method code with example usage: obj._flow_to_json() and returns: dict