class_docstr: Deletes the Amazon EKS Cluster control plane and all nodegroups attached to it.
  
  .. seealso::
      For more information on how to use this operator, take a look at the guide:
      :ref:`howto/operator:EksDeleteClusterOperator`
  
  :param cluster_name: The name of the Amazon EKS Cluster to delete. (templated)
  :param force_delete_compute: If True, will delete any attached resources. (templated)
       Defaults to False.
  :param wait_for_completion: If True, waits for operator to complete. (default: False) (templated)
  :param aws_conn_id: The Airflow connection used for AWS credentials. (templated)
       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 the default boto3 configuration would be used (and must be
       maintained on each worker node).
  :param region: Which AWS region the connection should use. (templated)
      If this is None or empty then the default boto3 behaviour is used.
  :param waiter_delay: Time (in seconds) to wait between two consecutive calls to check cluster state
  :param waiter_max_attempts: The maximum number of attempts to check cluster state
  :param deferrable: If True, the operator will wait asynchronously for the cluster to be deleted.
      This implies waiting for completion. This mode requires aiobotocore module to be installed.
      (default: False)
class_docstr_tok: ["Deletes","the","Amazon","EKS","Cluster","control","plane","and","all","nodegroups","attached","to","it",".","..","seealso",":",":","For","more","information","on","how","to","use","this","operator",",","take","a","look","at","the","guide",":",":","ref",":","`","howto\/operator",":","EksDeleteClusterOperator","`",":","param","cluster_name",":","The","name","of","the","Amazon","EKS","Cluster","to","delete",".","(","templated",")",":","param","force_delete_compute",":","If","True",",","will","delete","any","attached","resources",".","(","templated",")","Defaults","to","False",".",":","param","wait_for_completion",":","If","True",",","waits","for","operator","to","complete",".","(","default",":","False",")","(","templated",")",":","param","aws_conn_id",":","The","Airflow","connection","used","for","AWS","credentials",".","(","templated",")","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","the","default","boto3","configuration","would","be","used","(","and","must","be","maintained","on","each","worker","node",")",".",":","param","region",":","Which","AWS","region","the","connection","should","use",".","(","templated",")","If","this","is","None","or","empty","then","the","default","boto3","behaviour","is","used",".",":","param","waiter_delay",":","Time","(","in","seconds",")","to","wait","between","two","consecutive","calls","to","check","cluster","state",":","param","waiter_max_attempts",":","The","maximum","number","of","attempts","to","check","cluster","state",":","param","deferrable",":","If","True",",","the","operator","will","wait","asynchronously","for","the","cluster","to","be","deleted",".","This","implies","waiting","for","completion",".","This","mode","requires","aiobotocore","module","to","be","installed",".","(","default",":","False",")"]
code: def execute(self, context: Context):
      eks_hook = EksHook(
          aws_conn_id=self.aws_conn_id,
          region_name=self.region,
      )
      if self.deferrable:
          self.defer(
              trigger=EksDeleteClusterTrigger(
                  cluster_name=self.cluster_name,
                  waiter_delay=self.waiter_delay,
                  waiter_max_attempts=self.waiter_max_attempts,
                  aws_conn_id=self.aws_conn_id,
                  region_name=self.region,
                  force_delete_compute=self.force_delete_compute,
              ),
              method_name="execute_complete",
              timeout=timedelta(
                  seconds=self.waiter_delay * self.waiter_max_attempts
              ),
          )
      elif self.force_delete_compute:
          self.delete_any_nodegroups(eks_hook)
          self.delete_any_fargate_profiles(eks_hook)
  
      eks_hook.delete_cluster(name=self.cluster_name)
  
      if self.wait_for_completion:
          self.log.info(
              "Waiting for cluster to delete.  This will take some time."
          )
          eks_hook.conn.get_waiter("cluster_deleted").wait(
              name=self.cluster_name
          )
  
imports: from __future__ import annotations
  import logging
  import warnings
  from ast import literal_eval
  from datetime import timedelta
  from functools import cached_property
  from typing import TYPE_CHECKING, Any, List, Sequence, cast
  from botocore.exceptions import ClientError, WaiterError
  from airflow.configuration import conf
  from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
  from airflow.models import BaseOperator
  from airflow.providers.amazon.aws.hooks.eks import EksHook
  from airflow.providers.amazon.aws.triggers.eks import EksCreateClusterTrigger, EksCreateFargateProfileTrigger, EksCreateNodegroupTrigger, EksDeleteClusterTrigger, EksDeleteFargateProfileTrigger, EksDeleteNodegroupTrigger
  from airflow.providers.amazon.aws.utils.waiter_with_logging import wait
  from airflow.providers.cncf.kubernetes.utils.pod_manager import OnFinishAction
label_desc: Use image node_id 2 for calling the EksDeleteClusterOperator obj's underlying member method code with example usage: obj.execute(context) without return types