class_docstr: Trigger to wait asynchronously for a DB instance or cluster to be stopped.
  
  :param db_identifier: The DB identifier for the DB instance or cluster to be polled.
  :param waiter_delay: The amount of time in seconds to wait between attempts.
  :param waiter_max_attempts: The maximum number of attempts to be made.
  :param aws_conn_id: The Airflow connection used for AWS credentials.
  :param region_name: AWS region where the DB is located, if different from the default one.
  :param response: The response from the RdsHook, to be passed back to the operator.
  :param db_type: The type of DB: instance or cluster.
class_docstr_tok: ["Trigger","to","wait","asynchronously","for","a","DB","instance","or","cluster","to","be","stopped",".",":","param","db_identifier",":","The","DB","identifier","for","the","DB","instance","or","cluster","to","be","polled",".",":","param","waiter_delay",":","The","amount","of","time","in","seconds","to","wait","between","attempts",".",":","param","waiter_max_attempts",":","The","maximum","number","of","attempts","to","be","made",".",":","param","aws_conn_id",":","The","Airflow","connection","used","for","AWS","credentials",".",":","param","region_name",":","AWS","region","where","the","DB","is","located",",","if","different","from","the","default","one",".",":","param","response",":","The","response","from","the","RdsHook",",","to","be","passed","back","to","the","operator",".",":","param","db_type",":","The","type","of","DB",":","instance","or","cluster","."]
code: def __init__(
      self,
      db_identifier: str,
      waiter_delay: int,
      waiter_max_attempts: int,
      aws_conn_id: str,
      response: dict[str, Any],
      db_type: RdsDbType | str,
      region_name: str | None = None,
  ) -> None:
      # allow passing enums for users,
      # but we can only rely on strings because (de-)serialization doesn't support enums
      if isinstance(db_type, RdsDbType):
          db_type_str = db_type.value
      else:
          db_type_str = db_type
  
      super().__init__(
          serialized_fields={
              "db_identifier": db_identifier,
              "response": response,
              "db_type": db_type_str,
          },
          waiter_name=f"db_{db_type_str}_stopped",
          waiter_args={_waiter_arg[db_type_str]: db_identifier},
          failure_message="Error while stopping DB",
          status_message="DB is being stopped",
          status_queries=_status_paths[db_type_str],
          return_key="response",
          return_value=response,
          waiter_delay=waiter_delay,
          waiter_max_attempts=waiter_max_attempts,
          aws_conn_id=aws_conn_id,
          region_name=region_name,
      )
  
imports: from __future__ import annotations
  import warnings
  from functools import cached_property
  from typing import TYPE_CHECKING, Any
  from airflow.exceptions import AirflowProviderDeprecationWarning
  from airflow.providers.amazon.aws.hooks.rds import RdsHook
  from airflow.providers.amazon.aws.triggers.base import AwsBaseWaiterTrigger
  from airflow.providers.amazon.aws.utils.rds import RdsDbType
  from airflow.providers.amazon.aws.utils.waiter_with_logging import async_wait
  from airflow.triggers.base import BaseTrigger, TriggerEvent
label_desc: Use image node_id 1 to create a new RdsDbStoppedTrigger object from inherited base classes: AwsBaseWaiterTrigger with example: obj = RdsDbStoppedTrigger(db_identifier, waiter_delay, waiter_max_attempts, aws_conn_id, response, db_type, region_name)