class_docstr: An :class:`OutputTag` is a typed and named tag to use for tagging side outputs of an operator.
  
  Example:
  ::
  
      # Explicitly specify output type
      >>> info = OutputTag("late-data", Types.TUPLE([Types.STRING(), Types.LONG()]))
      # Implicitly wrap list to Types.ROW
      >>> info_row = OutputTag("row", [Types.STRING(), Types.LONG()])
      # Implicitly use pickle serialization
      >>> info_side = OutputTag("side")
      # ERROR: tag id cannot be empty string (extra requirement for Python API)
      >>> info_error = OutputTag("")
code: def __getstate__(self):
      # prevent java object to be pickled
      self.type_info._j_typeinfo = None
      return self.tag_id, self.type_info
  
file_path: flink/flink-python/pyflink/datastream/output_tag.py
imports: from typing import Optional, Union
  from pyflink.common.typeinfo import TypeInformation, Types, RowTypeInfo
  from pyflink.java_gateway import get_gateway
label_desc: Use image node_id 2 for calling the OutputTag obj's underlying member method code with example usage: obj.__getstate__() and returns: self,  self