class_docstr: Check for the state of a previously submitted Airbyte job.
  
  :param airbyte_job_id: Required. Id of the Airbyte job
  :param airbyte_conn_id: Optional. The name of the Airflow connection to get
      connection information for Airbyte. Defaults to "airbyte_default".
  :param api_version: Optional. Airbyte API version. Defaults to "v1".
code: def poke(self, context: Context) -> bool:
      hook = AirbyteHook(
          airbyte_conn_id=self.airbyte_conn_id,
          api_version=self.api_version,
      )
      job = hook.get_job(job_id=self.airbyte_job_id)
      status = job.json()["job"]["status"]
  
      if status == hook.FAILED:
          # TODO: remove this if block when min_airflow_version is set to higher than 2.7.1
          message = f"Job failed: \n{job}"
          if self.soft_fail:
              raise AirflowSkipException(message)
          raise AirflowException(message)
      elif status == hook.CANCELLED:
          # TODO: remove this if block when min_airflow_version is set to higher than 2.7.1
          message = f"Job was cancelled: \n{job}"
          if self.soft_fail:
              raise AirflowSkipException(message)
          raise AirflowException(message)
      elif status == hook.SUCCEEDED:
          self.log.info(
              "Job %s completed successfully.", self.airbyte_job_id
          )
          return True
      elif status == hook.ERROR:
          self.log.info(
              "Job %s attempt has failed.", self.airbyte_job_id
          )
  
      self.log.info(
          "Waiting for job %s to complete.", self.airbyte_job_id
      )
      return False
  
file_path: airflow/airflow/providers/airbyte/sensors/airbyte.py
imports: from __future__ import annotations
  from typing import TYPE_CHECKING, Sequence
  from airflow.exceptions import AirflowException, AirflowSkipException
  from airflow.providers.airbyte.hooks.airbyte import AirbyteHook
  from airflow.sensors.base import BaseSensorOperator
label_desc: Use image node_id 2 for calling the AirbyteJobSensor obj's underlying member method code with example usage: obj.poke(context) and returns: False, True