class_docstr: Configuration for the current :class:`TableEnvironment` session to adjust Table & SQL API
  programs.
  
  This class is a pure API class that abstracts configuration from various sources. Currently,
  configuration can be set in any of the following layers (in the given order):
  
  - flink-conf.yaml
  - CLI parameters
  - :class:`~pyflink.datastream.StreamExecutionEnvironment` when bridging to DataStream API
  - :func:`~EnvironmentSettings.Builder.with_configuration`
  - :func:`~TableConfig.set`
  
  The latter two represent the application-specific part of the configuration. They initialize
  and directly modify :func:`~TableConfig.get_configuration`. Other layers represent the
  configuration of the execution context and are immutable.
  
  The getter :func:`~TableConfig.get` gives read-only access to the full configuration. However,
  application-specific configuration has precedence. Configuration of outer layers is used for
  defaults and fallbacks. The setter :func:`~TableConfig.set` will only affect
  application-specific configuration.
  
  For common or important configuration options, this class provides getters and setters methods
  with detailed inline documentation.
  
  For more advanced configuration, users can directly access the underlying key-value map via
  :func:`~pyflink.table.TableConfig.get_configuration`.
  
  Example:
  ::
  
      >>> table_config = t_env.get_config()
      >>> config = Configuration()
      >>> config.set_string("parallelism.default", "128") \
      ...       .set_string("pipeline.auto-watermark-interval", "800ms") \
      ...       .set_string("execution.checkpointing.interval", "30s")
      >>> table_config.add_configuration(config)
  
  .. note::
  
      Because options are read at different point in time when performing operations, it is
      recommended to set configuration options early after instantiating a table environment.
class_docstr_tok: ["Configuration","for","the","current",":","class",":","`","TableEnvironment","`","session","to","adjust","Table","&","SQL","API","programs",".","This","class","is","a","pure","API","class","that","abstracts","configuration","from","various","sources",".","Currently",",","configuration","can","be","set","in","any","of","the","following","layers","(","in","the","given","order",")",":","-","flink-conf.yaml","-","CLI","parameters","-",":","class",":","`","~pyflink.datastream.StreamExecutionEnvironment","`","when","bridging","to","DataStream","API","-",":","func",":","`","~EnvironmentSettings.Builder.with_configuration","`","-",":","func",":","`","~TableConfig.set","`","The","latter","two","represent","the","application-specific","part","of","the","configuration",".","They","initialize","and","directly","modify",":","func",":","`","~TableConfig.get_configuration","`",".","Other","layers","represent","the","configuration","of","the","execution","context","and","are","immutable",".","The","getter",":","func",":","`","~TableConfig.get","`","gives","read-only","access","to","the","full","configuration",".","However",",","application-specific","configuration","has","precedence",".","Configuration","of","outer","layers","is","used","for","defaults","and","fallbacks",".","The","setter",":","func",":","`","~TableConfig.set","`","will","only","affect","application-specific","configuration",".","For","common","or","important","configuration","options",",","this","class","provides","getters","and","setters","methods","with","detailed","inline","documentation",".","For","more","advanced","configuration",",","users","can","directly","access","the","underlying","key-value","map","via",":","func",":","`","~pyflink.table.TableConfig.get_configuration","`",".","Example",":",":",":",">",">",">","table_config","=","t_env.get_config","(",")",">",">",">","config","=","Configuration","(",")",">",">",">","config.set_string","(","``","parallelism.default","''",",","``","128","''",")","\\","...",".set_string","(","``","pipeline.auto-watermark-interval","''",",","``","800ms","''",")","\\","...",".set_string","(","``","execution.checkpointing.interval","''",",","``","30s","''",")",">",">",">","table_config.add_configuration","(","config",")","..","note",":",":","Because","options","are","read","at","different","point","in","time","when","performing","operations",",","it","is","recommended","to","set","configuration","options","early","after","instantiating","a","table","environment","."]
docstr: Specifies a minimum and a maximum time interval for how long idle state, i.e., state which
  was not updated, will be retained.
  
  State will never be cleared until it was idle for less than the minimum time and will never
  be kept if it was idle for more than the maximum time.
  
  When new data arrives for previously cleaned-up state, the new data will be handled as if it
  was the first data. This can result in previous results being overwritten.
  
  Set to 0 (zero) to never clean-up the state.
  
  Example:
  ::
  
      >>> table_config = TableConfig() \
      ...     .set_idle_state_retention_time(datetime.timedelta(days=1),
      ...                                    datetime.timedelta(days=3))
  
  .. note::
  
      Cleaning up state requires additional bookkeeping which becomes less expensive for
      larger differences of minTime and maxTime. The difference between minTime and maxTime
      must be at least 5 minutes.
  
      Method set_idle_state_retention_time is deprecated now. The suggested way to set idle
      state retention time is :func:`~pyflink.table.TableConfig.set_idle_state_retention`
      Currently, setting max_time will not work and the max_time is directly derived from the
      min_time as 1.5 x min_time.
  
  :param min_time: The minimum time interval for which idle state is retained. Set to
                   0 (zero) to never clean-up the state.
  :param max_time: The maximum time interval for which idle state is retained. Must be at
                   least 5 minutes greater than minTime. Set to
                   0 (zero) to never clean-up the state.
docstr_tok: ["Specifies","a","minimum","and","a","maximum","time","interval","for","how","long","idle","state",",","i.e.",",","state","which","was","not","updated",",","will","be","retained",".","State","will","never","be","cleared","until","it","was","idle","for","less","than","the","minimum","time","and","will","never","be","kept","if","it","was","idle","for","more","than","the","maximum","time",".","When","new","data","arrives","for","previously","cleaned-up","state",",","the","new","data","will","be","handled","as","if","it","was","the","first","data",".","This","can","result","in","previous","results","being","overwritten",".","Set","to","0","(","zero",")","to","never","clean-up","the","state",".","Example",":",":",":",">",">",">","table_config","=","TableConfig","(",")","\\","...",".set_idle_state_retention_time","(","datetime.timedelta","(","days=1",")",",","...","datetime.timedelta","(","days=3",")",")","..","note",":",":","Cleaning","up","state","requires","additional","bookkeeping","which","becomes","less","expensive","for","larger","differences","of","minTime","and","maxTime",".","The","difference","between","minTime","and","maxTime","must","be","at","least","5","minutes",".","Method","set_idle_state_retention_time","is","deprecated","now",".","The","suggested","way","to","set","idle","state","retention","time","is",":","func",":","`","~pyflink.table.TableConfig.set_idle_state_retention","`","Currently",",","setting","max_time","will","not","work","and","the","max_time","is","directly","derived","from","the","min_time","as","1.5","x","min_time",".",":","param","min_time",":","The","minimum","time","interval","for","which","idle","state","is","retained",".","Set","to","0","(","zero",")","to","never","clean-up","the","state",".",":","param","max_time",":","The","maximum","time","interval","for","which","idle","state","is","retained",".","Must","be","at","least","5","minutes","greater","than","minTime",".","Set","to","0","(","zero",")","to","never","clean-up","the","state","."]
code: def set_idle_state_retention_time(
      self, min_time: datetime.timedelta, max_time: datetime.timedelta
  ):
      """
          Specifies a minimum and a maximum time interval for how long idle state, i.e., state which
          was not updated, will be retained.
  
          State will never be cleared until it was idle for less than the minimum time and will never
          be kept if it was idle for more than the maximum time.
  
          When new data arrives for previously cleaned-up state, the new data will be handled as if it
          was the first data. This can result in previous results being overwritten.
  
          Set to 0 (zero) to never clean-up the state.
  
          Example:
          ::
  
              >>> table_config = TableConfig() \\
              ...     .set_idle_state_retention_time(datetime.timedelta(days=1),
              ...                                    datetime.timedelta(days=3))
  
          .. note::
  
              Cleaning up state requires additional bookkeeping which becomes less expensive for
              larger differences of minTime and maxTime. The difference between minTime and maxTime
              must be at least 5 minutes.
  
              Method set_idle_state_retention_time is deprecated now. The suggested way to set idle
              state retention time is :func:`~pyflink.table.TableConfig.set_idle_state_retention`
              Currently, setting max_time will not work and the max_time is directly derived from the
              min_time as 1.5 x min_time.
  
          :param min_time: The minimum time interval for which idle state is retained. Set to
                           0 (zero) to never clean-up the state.
          :param max_time: The maximum time interval for which idle state is retained. Must be at
                           least 5 minutes greater than minTime. Set to
                           0 (zero) to never clean-up the state.
          """
      j_time_class = (
          get_gateway().jvm.org.apache.flink.api.common.time.Time
      )
      j_min_time = j_time_class.milliseconds(
          long(round(min_time.total_seconds() * 1000))
      )
      j_max_time = j_time_class.milliseconds(
          long(round(max_time.total_seconds() * 1000))
      )
      self._j_table_config.setIdleStateRetentionTime(
          j_min_time, j_max_time
      )
  
imports: import datetime
  from py4j.compat import long
  from pyflink.common.configuration import Configuration
  from pyflink.java_gateway import get_gateway
  from pyflink.table.sql_dialect import SqlDialect
  from pyflink.util.java_utils import add_jars_to_context_class_loader
label_desc: Use image node_id 8 for calling the TableConfig obj's underlying member method code with example usage: obj.set_idle_state_retention_time(min_time, max_time) without return types