class_docstr: Base class to check various EKS states.
  
  Subclasses need to implement get_state and get_terminal_states methods.
  
  :param cluster_name: The name of the Cluster
  :param target_state: Will return successfully when that state is reached.
  :param target_state_type: The enum containing the states,
      will be used to convert the target state if it has to be converted from a string
  :param aws_conn_id: The Airflow connection used for AWS credentials.
      If this is None or empty then the default boto3 behaviour is used. If
      running Airflow in a distributed manner and aws_conn_id is None or
      empty, then the default boto3 configuration would be used (and must be
      maintained on each worker node).
  :param region: Which AWS region the connection should use.
      If this is None or empty then the default boto3 behaviour is used.
code: def poke(self, context: Context) -> bool:
      state = self.get_state()
      self.log.info("Current state: %s", state)
      if state in (self.get_terminal_states() - {self.target_state}):
          # If we reach a terminal state which is not the target state:
          # TODO: remove this if check when min_airflow_version is set to higher than 2.7.1
          message = f"Terminal state reached. Current state: {state}, Expected state: {self.target_state}"
          if self.soft_fail:
              raise AirflowSkipException(message)
          raise AirflowException(message)
      return state == self.target_state
  
imports: from __future__ import annotations
  from abc import abstractmethod
  from functools import cached_property
  from typing import TYPE_CHECKING, Sequence
  from airflow.exceptions import AirflowException, AirflowSkipException
  from airflow.providers.amazon.aws.hooks.eks import ClusterStates, EksHook, FargateProfileStates, NodegroupStates
  from airflow.sensors.base import BaseSensorOperator
label_desc: Use image node_id 3 for calling the EksBaseSensor obj's underlying member method code with example usage: obj.poke(context) and returns: unknown