class_docstr: Creates an Amazon EKS Cluster control plane.
  
  Optionally, can also create the supporting compute architecture:
  
   - If argument 'compute' is provided with a value of 'nodegroup', will also
       attempt to create an Amazon EKS Managed Nodegroup for the cluster.
       See :class:`~airflow.providers.amazon.aws.operators.EksCreateNodegroupOperator`
       documentation for requirements.
  
  -  If argument 'compute' is provided with a value of 'fargate', will also attempt to create an AWS
       Fargate profile for the cluster.
       See :class:`~airflow.providers.amazon.aws.operators.EksCreateFargateProfileOperator`
       documentation for requirements.
  
  
  .. seealso::
      For more information on how to use this operator, take a look at the guide:
      :ref:`howto/operator:EksCreateClusterOperator`
  
  :param cluster_name: The unique name to give to your Amazon EKS Cluster. (templated)
  :param cluster_role_arn: The Amazon Resource Name (ARN) of the IAM role that provides permissions for the
       Kubernetes control plane to make calls to AWS API operations on your behalf. (templated)
  :param resources_vpc_config: The VPC configuration used by the cluster control plane. (templated)
  :param compute: The type of compute architecture to generate along with the cluster. (templated)
       Defaults to 'nodegroup' to generate an EKS Managed Nodegroup.
  :param create_cluster_kwargs: Optional parameters to pass to the CreateCluster API (templated)
  :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.
  
  If compute is assigned the value of 'nodegroup':
  
  :param nodegroup_name: *REQUIRED* The unique name to give your Amazon EKS managed node group. (templated)
  :param nodegroup_role_arn: *REQUIRED* The Amazon Resource Name (ARN) of the IAM role to associate with
       the Amazon EKS managed node group. (templated)
  :param create_nodegroup_kwargs: Optional parameters to pass to the CreateNodegroup API (templated)
  
  
  If compute is assigned the value of 'fargate':
  
  :param fargate_profile_name: *REQUIRED* The unique name to give your AWS Fargate profile. (templated)
  :param fargate_pod_execution_role_arn: *REQUIRED* The Amazon Resource Name (ARN) of the pod execution
       role to use for pods that match the selectors in the AWS Fargate profile. (templated)
  :param fargate_selectors: The selectors to match for pods to use this AWS Fargate profile. (templated)
  :param create_fargate_profile_kwargs: Optional parameters to pass to the CreateFargateProfile API
       (templated)
  :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 job to complete.
      This implies waiting for completion. This mode requires aiobotocore module to be installed.
      (default: False)
class_docstr_tok: ["Creates","an","Amazon","EKS","Cluster","control","plane",".","Optionally",",","can","also","create","the","supporting","compute","architecture",":","-","If","argument","'compute","'","is","provided","with","a","value","of","'nodegroup","'",",","will","also","attempt","to","create","an","Amazon","EKS","Managed","Nodegroup","for","the","cluster",".","See",":","class",":","`","~airflow.providers.amazon.aws.operators.EksCreateNodegroupOperator","`","documentation","for","requirements",".","-","If","argument","'compute","'","is","provided","with","a","value","of","'fargate","'",",","will","also","attempt","to","create","an","AWS","Fargate","profile","for","the","cluster",".","See",":","class",":","`","~airflow.providers.amazon.aws.operators.EksCreateFargateProfileOperator","`","documentation","for","requirements",".","..","seealso",":",":","For","more","information","on","how","to","use","this","operator",",","take","a","look","at","the","guide",":",":","ref",":","`","howto\/operator",":","EksCreateClusterOperator","`",":","param","cluster_name",":","The","unique","name","to","give","to","your","Amazon","EKS","Cluster",".","(","templated",")",":","param","cluster_role_arn",":","The","Amazon","Resource","Name","(","ARN",")","of","the","IAM","role","that","provides","permissions","for","the","Kubernetes","control","plane","to","make","calls","to","AWS","API","operations","on","your","behalf",".","(","templated",")",":","param","resources_vpc_config",":","The","VPC","configuration","used","by","the","cluster","control","plane",".","(","templated",")",":","param","compute",":","The","type","of","compute","architecture","to","generate","along","with","the","cluster",".","(","templated",")","Defaults","to","'nodegroup","'","to","generate","an","EKS","Managed","Nodegroup",".",":","param","create_cluster_kwargs",":","Optional","parameters","to","pass","to","the","CreateCluster","API","(","templated",")",":","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",".","If","compute","is","assigned","the","value","of","'nodegroup","'",":",":","param","nodegroup_name",":","*","REQUIRED","*","The","unique","name","to","give","your","Amazon","EKS","managed","node","group",".","(","templated",")",":","param","nodegroup_role_arn",":","*","REQUIRED","*","The","Amazon","Resource","Name","(","ARN",")","of","the","IAM","role","to","associate","with","the","Amazon","EKS","managed","node","group",".","(","templated",")",":","param","create_nodegroup_kwargs",":","Optional","parameters","to","pass","to","the","CreateNodegroup","API","(","templated",")","If","compute","is","assigned","the","value","of","'fargate","'",":",":","param","fargate_profile_name",":","*","REQUIRED","*","The","unique","name","to","give","your","AWS","Fargate","profile",".","(","templated",")",":","param","fargate_pod_execution_role_arn",":","*","REQUIRED","*","The","Amazon","Resource","Name","(","ARN",")","of","the","pod","execution","role","to","use","for","pods","that","match","the","selectors","in","the","AWS","Fargate","profile",".","(","templated",")",":","param","fargate_selectors",":","The","selectors","to","match","for","pods","to","use","this","AWS","Fargate","profile",".","(","templated",")",":","param","create_fargate_profile_kwargs",":","Optional","parameters","to","pass","to","the","CreateFargateProfile","API","(","templated",")",":","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","job","to","complete",".","This","implies","waiting","for","completion",".","This","mode","requires","aiobotocore","module","to","be","installed",".","(","default",":","False",")"]
code: def execute_complete(
      self, context: Context, event: dict[str, Any] | None = None
  ) -> None:
      resource = (
          "fargate profile"
          if self.compute == "fargate"
          else self.compute
      )
      if event is None:
          self.log.info("Trigger error: event is None")
          raise AirflowException("Trigger error: event is None")
      elif event["status"] != "success":
          raise AirflowException(f"Error creating {resource}: {event}")
  
      self.log.info("%s created successfully", resource)
  
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 7 for calling the EksCreateClusterOperator obj's underlying member method code with example usage: obj.execute_complete(context, event) without return types