class_docstr: A TimestampAssigner assigns event time timestamps to elements. These timestamps are used by all
  functions that operate on event time, for example event time windows.
  
  Timestamps can be an arbitrary int value, but all built-in implementations represent it as the
  milliseconds since the Epoch (midnight, January 1, 1970 UTC), the same way as time.time() does
  it.
class_docstr_tok: ["A","TimestampAssigner","assigns","event","time","timestamps","to","elements",".","These","timestamps","are","used","by","all","functions","that","operate","on","event","time",",","for","example","event","time","windows",".","Timestamps","can","be","an","arbitrary","int","value",",","but","all","built-in","implementations","represent","it","as","the","milliseconds","since","the","Epoch","(","midnight",",","January","1",",","1970","UTC",")",",","the","same","way","as","time.time","(",")","does","it","."]
docstr: Assigns a timestamp to an element, in milliseconds since the Epoch. This is independent of
  any particular time zone or calendar.
  
  The method is passed the previously assigned timestamp of the element.
  That previous timestamp may have been assigned from a previous assigner. If the element did
  not carry a timestamp before, this value is the minimum value of int type.
  
  :param value: The element that the timestamp will be assigned to.
  :param record_timestamp: The current internal timestamp of the element, or a negative value,
                           if no timestamp has been assigned yet.
  :return: The new timestamp.
docstr_tok: ["Assigns","a","timestamp","to","an","element",",","in","milliseconds","since","the","Epoch",".","This","is","independent","of","any","particular","time","zone","or","calendar",".","The","method","is","passed","the","previously","assigned","timestamp","of","the","element",".","That","previous","timestamp","may","have","been","assigned","from","a","previous","assigner",".","If","the","element","did","not","carry","a","timestamp","before",",","this","value","is","the","minimum","value","of","int","type",".",":","param","value",":","The","element","that","the","timestamp","will","be","assigned","to",".",":","param","record_timestamp",":","The","current","internal","timestamp","of","the","element",",","or","a","negative","value",",","if","no","timestamp","has","been","assigned","yet",".",":","return",":","The","new","timestamp","."]
code: def extract_timestamp(self, value: Any, record_timestamp: int) -> int:
      """
      Assigns a timestamp to an element, in milliseconds since the Epoch. This is independent of
      any particular time zone or calendar.
  
      The method is passed the previously assigned timestamp of the element.
      That previous timestamp may have been assigned from a previous assigner. If the element did
      not carry a timestamp before, this value is the minimum value of int type.
  
      :param value: The element that the timestamp will be assigned to.
      :param record_timestamp: The current internal timestamp of the element, or a negative value,
                               if no timestamp has been assigned yet.
      :return: The new timestamp.
      """
      pass
  
file_path: flink/flink-python/pyflink/common/watermark_strategy.py
imports: import abc
  from typing import Any, Optional
  from pyflink.common.time import Duration
  from pyflink.java_gateway import get_gateway
label_desc: Use image node_id 1 for calling the TimestampAssigner obj's underlying member method code with example usage: obj.extract_timestamp(value, record_timestamp) without return types