class_docstr: Amazon AppFlow Base Operator class (not supposed to be used directly in DAGs).
  
  :param source: The source name (Supported: salesforce, zendesk)
  :param flow_name: The flow name
  :param flow_update: A boolean to enable/disable a flow update before the run
  :param source_field: The field name to apply filters
  :param filter_date: The date value (or template) to be used in filters.
  :param poll_interval: how often in seconds to check the query status
  :param max_attempts: how many times to check for status before timing out
  :param wait_for_completion: whether to wait for the run to end to return
  :param aws_conn_id: The Airflow connection used for AWS credentials.
      If this is ``None`` or empty then the default boto3 behaviour is used. If
      running Airflow in a distributed manner and aws_conn_id is None or
      empty, then default boto3 configuration would be used (and must be
      maintained on each worker node).
  :param region_name: AWS region_name. If not specified then the default boto3 behaviour is used.
  :param verify: Whether or not to verify SSL certificates. See:
      https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html
  :param botocore_config: Configuration dictionary (key-values) for botocore client. See:
      https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html
code: def __init__(
      self,
      flow_name: str,
      flow_update: bool,
      source: str | None = None,
      source_field: str | None = None,
      filter_date: str | None = None,
      poll_interval: int = 20,
      max_attempts: int = 60,
      wait_for_completion: bool = True,
      **kwargs,
  ) -> None:
      super().__init__(**kwargs)
      if source is not None and source not in SUPPORTED_SOURCES:
          raise ValueError(
              f"{source} is not a supported source (options: {SUPPORTED_SOURCES})!"
          )
      self.filter_date = filter_date
      self.flow_name = flow_name
      self.source = source
      self.source_field = source_field
      self.poll_interval = poll_interval
      self.max_attempts = max_attempts
      self.flow_update = flow_update
      self.wait_for_completion = wait_for_completion
  
imports: from __future__ import annotations
  import time
  import warnings
  from datetime import datetime, timedelta
  from typing import TYPE_CHECKING, cast
  from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
  from airflow.operators.python import ShortCircuitOperator
  from airflow.providers.amazon.aws.hooks.appflow import AppflowHook
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
  from airflow.providers.amazon.aws.utils import datetime_to_epoch_ms
  from airflow.providers.amazon.aws.utils.mixins import AwsBaseHookMixin, AwsHookParams, aws_template_fields
label_desc: Use image node_id 1 to create a new AppflowBaseOperator object from inherited base classes: AwsBaseOperator with example: obj = AppflowBaseOperator(flow_name, flow_update, source, source_field, filter_date, poll_interval, max_attempts, wait_for_completion)