code: def _validate_sources(cluster_name, data_sources, existing_sources):
      """Validates the sources for a cluster
      Args:
          cluster_name (str): The name of the cluster we are validating sources for
          data_sources (dict): The sources to validate
          existing_sources(set): Aleady defined sources
      Raises:
          ConfigError: If the validation fails
      """
      # Iterate over each defined source and make sure the required subkeys exist
      if not set(data_sources).issubset(SUPPORTED_SOURCES):
          invalid_sources = set(data_sources) - SUPPORTED_SOURCES
          raise ConfigError(
              "The data sources for cluster {} contain invalid source entries: {}. "
              "The following sources are supported: {}".format(
                  cluster_name,
                  ", ".join(
                      "'{}'".format(source)
                      for source in invalid_sources
                  ),
                  ", ".join(
                      "'{}'".format(source)
                      for source in SUPPORTED_SOURCES
                  ),
              )
          )
      for attrs in data_sources.values():
          for source, logs in attrs.items():
              if not logs:
                  raise ConfigError(
                      "List of logs is empty for source: {}".format(
                          source
                      )
                  )
  
              if source in existing_sources:
                  raise ConfigError(
                      "Duplicate data_source in cluster configuration {} "
                      "for cluster {}".format(source, cluster_name)
                  )
              existing_sources.add(source)
  
imports: from collections import defaultdict, OrderedDict
  import json
  import os
  import re
  from streamalert.shared import CLUSTERED_FUNCTIONS
  from streamalert.shared.exceptions import ConfigError
  from streamalert.shared.logger import get_logger
label_desc: Use image node_id 11 for calling a global function with example usage: _validate_sources(cluster_name, data_sources, existing_sources) without return types