class_docstr: Normalizer class to handle log key normalization in payloads
docstr: Apply condition to a record before normalization kicked in.
  
  Returns:
      bool: Return True if the value of the condition path matches to the condition, otherwise
          return False. It is False if the path doesn't exist.
docstr_tok: ["Apply","condition","to","a","record","before","normalization","kicked","in",".","Returns",":","bool",":","Return","True","if","the","value","of","the","condition","path","matches","to","the","condition",",","otherwise","return","False",".","It","is","False","if","the","path","does","n't","exist","."]
code: def _match_condition(cls, record, condition):
      """Apply condition to a record before normalization kicked in.
  
      Returns:
          bool: Return True if the value of the condition path matches to the condition, otherwise
              return False. It is False if the path doesn't exist.
      """
      if not condition.get(CONST_PATH):
          return False
  
      found_value, value = cls._find_value(
          record, condition[CONST_PATH]
      )
      if not found_value:
          return False
  
      # cast value to a str in all lowercases
      value = str(value).lower()
  
      # Only support extract one condition. The result is not quaranteed if multiple conditions
      # configured.
      # FIXME: log a warning if more than one condition configured.
      if condition.get("is"):
          return value == condition["is"]
  
      if condition.get("is_not"):
          return value != condition["is_not"]
  
      if condition.get("in"):
          return value in condition["in"]
  
      if condition.get("not_in"):
          return value not in condition["not_in"]
  
      if condition.get("contains"):
          return condition["contains"] in value
  
      if condition.get("not_contains"):
          return condition["not_contains"] not in value
  
      return False
  
imports: from collections import defaultdict
  import logging
  import itertools
  import uuid
  from streamalert.shared.config import TopLevelConfigKeys
  from streamalert.shared.exceptions import ConfigError
  from streamalert.shared.logger import get_logger
label_desc: Use image node_id 4 for calling the Normalizer obj's underlying member method code with example usage: obj._match_condition(cls, record, condition) and returns: False, False, False, unknown, unknown, unknown, unknown, unknown, unknown