class_docstr: Contains general sensor behavior for EMR.
  
  Subclasses should implement following methods:
      - ``get_emr_response()``
      - ``state_from_response()``
      - ``failure_message_from_response()``
  
  Subclasses should set ``target_states`` and ``failed_states`` fields.
  
  :param aws_conn_id: aws connection to use
class_docstr_tok: ["Contains","general","sensor","behavior","for","EMR",".","Subclasses","should","implement","following","methods",":","-","``","get_emr_response","(",")","``","-","``","state_from_response","(",")","``","-","``","failure_message_from_response","(",")","``","Subclasses","should","set","``","target_states","``","and","``","failed_states","``","fields",".",":","param","aws_conn_id",":","aws","connection","to","use"]
code: def __init__(self, *, aws_conn_id: str = "aws_default", **kwargs):
      super().__init__(**kwargs)
      self.aws_conn_id = aws_conn_id
      self.target_states: Iterable[
          str
      ] = []  # will be set in subclasses
      self.failed_states: Iterable[str] = []
  
imports: from __future__ import annotations
  from datetime import timedelta
  from functools import cached_property
  from typing import TYPE_CHECKING, Any, Iterable, Sequence
  from deprecated import deprecated
  from airflow.configuration import conf
  from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning, AirflowSkipException
  from airflow.providers.amazon.aws.hooks.emr import EmrContainerHook, EmrHook, EmrServerlessHook
  from airflow.providers.amazon.aws.links.emr import EmrClusterLink, EmrLogsLink, get_log_uri
  from airflow.providers.amazon.aws.triggers.emr import EmrContainerTrigger, EmrStepSensorTrigger, EmrTerminateJobFlowTrigger
  from airflow.sensors.base import BaseSensorOperator
label_desc: Use image node_id 1 to create a new EmrBaseSensor object from inherited base classes: BaseSensorOperator with example: obj = EmrBaseSensor()