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: Get details of specified cluster.
  
  :param name: The name of the cluster to retrieve.
  :param project_id: Google Cloud project ID.
  :param retry: A retry object used 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.
docstr_tok: ["Get","details","of","specified","cluster",".",":","param","name",":","The","name","of","the","cluster","to","retrieve",".",":","param","project_id",":","Google","Cloud","project","ID",".",":","param","retry",":","A","retry","object","used","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","."]
code: def get_cluster(
      self,
      name: str,
      project_id: str = PROVIDE_PROJECT_ID,
      retry: Retry | _MethodDefault = DEFAULT,
      timeout: float | None = None,
  ) -> Cluster:
      """Get details of specified cluster.
  
      :param name: The name of the cluster to retrieve.
      :param project_id: Google Cloud project ID.
      :param retry: A retry object used 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.
      """
      self.log.info(
          "Fetching cluster (project_id=%s, location=%s, cluster_name=%s)",
          project_id or self.project_id,
          self.location,
          name,
      )
  
      return self.get_cluster_manager_client().get_cluster(
          name=f"projects/{project_id}/locations/{self.location}/clusters/{name}",
          retry=retry,
          timeout=timeout,
      )
  
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 10 for calling the GKEHook obj's underlying member method code with example usage: obj.get_cluster(name, project_id, retry, timeout) and returns: self