class_docstr: Executes SQL Statements against an Amazon Redshift cluster using Redshift Data.
  
  .. seealso::
      For more information on how to use this operator, take a look at the guide:
      :ref:`howto/operator:RedshiftDataOperator`
  
  :param database: the name of the database
  :param sql: the SQL statement or list of  SQL statement to run
  :param cluster_identifier: unique identifier of a cluster
  :param db_user: the database username
  :param parameters: the parameters for the SQL statement
  :param secret_arn: the name or ARN of the secret that enables db access
  :param statement_name: the name of the SQL statement
  :param with_event: indicates whether to send an event to EventBridge
  :param wait_for_completion: indicates whether to wait for a result, if True wait, if False don't wait
  :param poll_interval: how often in seconds to check the query status
  :param return_sql_result: if True will return the result of an SQL statement,
      if False (default) will return statement ID
  :param workgroup_name: name of the Redshift Serverless workgroup. Mutually exclusive with
      `cluster_identifier`. Specify this parameter to query Redshift Serverless. More info
      https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-serverless.html
  :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,
      database: str,
      sql: str | list,
      cluster_identifier: str | None = None,
      db_user: str | None = None,
      parameters: list | None = None,
      secret_arn: str | None = None,
      statement_name: str | None = None,
      with_event: bool = False,
      wait_for_completion: bool = True,
      poll_interval: int = 10,
      return_sql_result: bool = False,
      workgroup_name: str | None = None,
      **kwargs,
  ) -> None:
      super().__init__(**kwargs)
      self.database = database
      self.sql = sql
      self.cluster_identifier = cluster_identifier
      self.workgroup_name = workgroup_name
      self.db_user = db_user
      self.parameters = parameters
      self.secret_arn = secret_arn
      self.statement_name = statement_name
      self.with_event = with_event
      self.wait_for_completion = wait_for_completion
      if poll_interval > 0:
          self.poll_interval = poll_interval
      else:
          self.log.warning(
              "Invalid poll_interval:",
              poll_interval,
          )
      self.return_sql_result = return_sql_result
      self.statement_id: str | None = None
  
file_path: airflow/airflow/providers/amazon/aws/operators/redshift_data.py
imports: from __future__ import annotations
  from typing import TYPE_CHECKING
  from airflow.providers.amazon.aws.hooks.redshift_data import RedshiftDataHook
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
label_desc: Use image node_id 1 to create a new RedshiftDataOperator object from inherited base classes: AwsBaseOperator with example: obj = RedshiftDataOperator(database, sql, cluster_identifier, db_user, parameters, secret_arn, statement_name, with_event, wait_for_completion, poll_interval, return_sql_result, workgroup_name)