class_docstr: Google Kubernetes Engine cluster APIs.
  
  All the methods in the hook where project_id is used must be called with
  keyword arguments rather than positional.
class_docstr_tok: ["Google","Kubernetes","Engine","cluster","APIs",".","All","the","methods","in","the","hook","where","project_id","is","used","must","be","called","with","keyword","arguments","rather","than","positional","."]
docstr: Deletes the cluster, the Kubernetes endpoint, and all worker nodes.
  
  Firewalls and routes that were configured during cluster creation are
  also deleted. Other Google Compute Engine resources that might be in use
  by the cluster (e.g. load balancer resources) will not be deleted if
  they were not present at the initial create time.
  
  :param name: The name of the cluster to delete.
  :param project_id: Google Cloud project ID.
  :param wait_to_complete: If *True*, wait until the deletion is finished
      before returning.
  :param retry: Retry object used to determine when/if to retry requests.
      If None is specified, requests will not be retried.
  :param timeout: The amount of time, in seconds, to wait for the request
      to complete. Note that if retry is specified, the timeout applies to
      each individual attempt.
  :return: The full url to the delete operation if successful, else None.
docstr_tok: ["Deletes","the","cluster",",","the","Kubernetes","endpoint",",","and","all","worker","nodes",".","Firewalls","and","routes","that","were","configured","during","cluster","creation","are","also","deleted",".","Other","Google","Compute","Engine","resources","that","might","be","in","use","by","the","cluster","(","e.g",".","load","balancer","resources",")","will","not","be","deleted","if","they","were","not","present","at","the","initial","create","time",".",":","param","name",":","The","name","of","the","cluster","to","delete",".",":","param","project_id",":","Google","Cloud","project","ID",".",":","param","wait_to_complete",":","If","*","True","*",",","wait","until","the","deletion","is","finished","before","returning",".",":","param","retry",":","Retry","object","used","to","determine","when\/if","to","retry","requests",".","If","None","is","specified",",","requests","will","not","be","retried",".",":","param","timeout",":","The","amount","of","time",",","in","seconds",",","to","wait","for","the","request","to","complete",".","Note","that","if","retry","is","specified",",","the","timeout","applies","to","each","individual","attempt",".",":","return",":","The","full","url","to","the","delete","operation","if","successful",",","else","None","."]
code: def delete_cluster(
      self,
      name: str,
      project_id: str = PROVIDE_PROJECT_ID,
      wait_to_complete: bool = True,
      retry: Retry | _MethodDefault = DEFAULT,
      timeout: float | None = None,
  ) -> Operation | None:
      """Deletes the cluster, the Kubernetes endpoint, and all worker nodes.
  
      Firewalls and routes that were configured during cluster creation are
      also deleted. Other Google Compute Engine resources that might be in use
      by the cluster (e.g. load balancer resources) will not be deleted if
      they were not present at the initial create time.
  
      :param name: The name of the cluster to delete.
      :param project_id: Google Cloud project ID.
      :param wait_to_complete: If *True*, wait until the deletion is finished
          before returning.
      :param retry: Retry object used to determine when/if to retry requests.
          If None is specified, requests will not be retried.
      :param timeout: The amount of time, in seconds, to wait for the request
          to complete. Note that if retry is specified, the timeout applies to
          each individual attempt.
      :return: The full url to the delete operation if successful, else None.
      """
      self.log.info(
          "Deleting (project_id=%s, location=%s, cluster_id=%s)",
          project_id,
          self.location,
          name,
      )
  
      try:
          operation = self.get_cluster_manager_client().delete_cluster(
              name=f"projects/{project_id}/locations/{self.location}/clusters/{name}",
              retry=retry,
              timeout=timeout,
          )
          if wait_to_complete:
              operation = self.wait_for_operation(operation, project_id)
          # Returns server-defined url for the resource
          return operation
      except NotFound as error:
          self.log.info("Assuming Success: %s", error.message)
          return None
  
imports: from __future__ import annotations
  import contextlib
  import json
  import time
  import warnings
  from functools import cached_property
  from typing import TYPE_CHECKING, Sequence
  from gcloud.aio.auth import Token
  from google.api_core.exceptions import NotFound
  from google.api_core.gapic_v1.method import DEFAULT, _MethodDefault
  from google.auth.transport import requests
  from google.cloud import container_v1, exceptions
  from google.cloud.container_v1 import ClusterManagerAsyncClient, ClusterManagerClient
  from google.cloud.container_v1.types import Cluster, Operation
  from kubernetes import client
  from kubernetes_asyncio import client
  from kubernetes_asyncio.config.kube_config import FileOrData
  from urllib3.exceptions import HTTPError
  from airflow import version
  from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
  from airflow.providers.cncf.kubernetes.utils.pod_manager import PodOperatorHookProtocol
  from airflow.providers.google.common.consts import CLIENT_INFO
  from airflow.providers.google.common.hooks.base_google import PROVIDE_PROJECT_ID, GoogleBaseAsyncHook, GoogleBaseHook
label_desc: Use image node_id 8 for calling the GKEHook obj's underlying member method code with example usage: obj.delete_cluster(name, project_id, wait_to_complete, retry, timeout) and returns: operation, None