def GetDomainDepsFromRefs(domain_name, json):
    if isinstance(json, list):
      for value in json:
        GetDomainDepsFromRefs(domain_name, value)
      return

    if not isinstance(json, dict):
      return
    for value in json.itervalues():
      GetDomainDepsFromRefs(domain_name, value)

    if '$ref' in json:
      if '.' in json['$ref']:
        dep = json['$ref'].split('.')[0]
        direct_deps[domain_name].add(dep)
    def GetDomainDepsFromRefs(domain_name, json):
        if isinstance(json, list):
            for value in json:
                GetDomainDepsFromRefs(domain_name, value)
            return

        if not isinstance(json, dict):
            return
        for value in json.itervalues():
            GetDomainDepsFromRefs(domain_name, value)

        if '$ref' in json:
            if '.' in json['$ref']:
                dep = json['$ref'].split('.')[0]
                direct_deps[domain_name].add(dep)