code: def not_(expression: Expression[bool]) -> Expression[bool]:
      """
      Inverts a given boolean expression.
  
      This method supports a three-valued logic by preserving `NULL`. This means if the input
      expression is `NULL`, the result will also be `NULL`.
  
      The resulting type is nullable if and only if the input type is nullable.
  
      Examples:
      ::
  
          >>> not_(lit(True)) # False
          >>> not_(lit(False)) # True
          >>> not_(lit(None, DataTypes.BOOLEAN())) # None
      """
      return _unary_op("not", expression)
  
imports: from typing import Union
  from pyflink import add_version_doc
  from pyflink.java_gateway import get_gateway
  from pyflink.table.expression import Expression, _get_java_expression, TimePointUnit, JsonOnNull
  from pyflink.table.types import _to_java_data_type, DataType
  from pyflink.table.udf import UserDefinedFunctionWrapper
  from pyflink.util.java_utils import to_jarray, load_java_class
label_desc: Use image node_id 13 for calling a global function with example usage: not_(expression) and returns: _unary_op