class_docstr: S3KeyTrigger is fired as deferred class with params to run the task in trigger worker.
  
  :param bucket_name: Name of the S3 bucket. Only needed when ``bucket_key``
      is not provided as a full s3:// url.
  :param bucket_key:  The key being waited on. Supports full s3:// style url
      or relative path from root level. When it's specified as a full s3://
      url, please leave bucket_name as `None`.
  :param wildcard_match: whether the bucket_key should be interpreted as a
      Unix wildcard pattern
  :param aws_conn_id: reference to the s3 connection
  :param use_regex: whether to use regex to check bucket
  :param hook_params: params for hook its optional
code: def __init__(
      self,
      bucket_name: str,
      bucket_key: str | list[str],
      wildcard_match: bool = False,
      aws_conn_id: str = "aws_default",
      poke_interval: float = 5.0,
      should_check_fn: bool = False,
      use_regex: bool = False,
      **hook_params: Any,
  ):
      super().__init__()
      self.bucket_name = bucket_name
      self.bucket_key = bucket_key
      self.wildcard_match = wildcard_match
      self.aws_conn_id = aws_conn_id
      self.hook_params = hook_params
      self.poke_interval = poke_interval
      self.should_check_fn = should_check_fn
      self.use_regex = use_regex
  
file_path: airflow/airflow/providers/amazon/aws/triggers/s3.py
imports: from __future__ import annotations
  import asyncio
  from functools import cached_property
  from typing import TYPE_CHECKING, Any, AsyncIterator
  from airflow.providers.amazon.aws.hooks.s3 import S3Hook
  from airflow.triggers.base import BaseTrigger, TriggerEvent
label_desc: Use image node_id 1 to create a new S3KeyTrigger object from inherited base classes: BaseTrigger with example: obj = S3KeyTrigger(bucket_name, bucket_key, wildcard_match, aws_conn_id, poke_interval, should_check_fn, use_regex)