class_docstr: Watches for a glue crawl, triggers when it finishes.
  
  :param crawler_name: name of the crawler to watch
  :param poll_interval: The amount of time in seconds to wait between attempts.
  :param aws_conn_id: The Airflow connection used for AWS credentials.
code: def __init__(
      self,
      crawler_name: str,
      poll_interval: int | None = None,
      aws_conn_id: str = "aws_default",
      waiter_delay: int = 5,
      waiter_max_attempts: int = 1500,
  ):
      if poll_interval is not None:
          warnings.warn(
              "please use waiter_delay instead of poll_interval.",
              AirflowProviderDeprecationWarning,
              stacklevel=2,
          )
          waiter_delay = poll_interval or waiter_delay
      super().__init__(
          serialized_fields={"crawler_name": crawler_name},
          waiter_name="crawler_ready",
          waiter_args={"Name": crawler_name},
          failure_message="Error while waiting for glue crawl to complete",
          status_message="Status of glue crawl is",
          status_queries=["Crawler.State", "Crawler.LastCrawl"],
          return_value=None,
          waiter_delay=waiter_delay,
          waiter_max_attempts=waiter_max_attempts,
          aws_conn_id=aws_conn_id,
      )
  
file_path: airflow/airflow/providers/amazon/aws/triggers/glue_crawler.py
imports: from __future__ import annotations
  import warnings
  from typing import TYPE_CHECKING
  from airflow.exceptions import AirflowProviderDeprecationWarning
  from airflow.providers.amazon.aws.hooks.glue_crawler import GlueCrawlerHook
  from airflow.providers.amazon.aws.triggers.base import AwsBaseWaiterTrigger
label_desc: Use image node_id 1 to create a new GlueCrawlerCompleteTrigger object from inherited base classes: AwsBaseWaiterTrigger with example: obj = GlueCrawlerCompleteTrigger(crawler_name, poll_interval, aws_conn_id, waiter_delay, waiter_max_attempts)