async def METHOD_NAME(
    self,
    resource_group_name: str,
    cluster_rp: Union[str, "_models.Enum0"],
    cluster_resource_name: Union[str, "_models.Enum1"],
    cluster_name: str,
    extension_type_name: str,
    **kwargs: Any
) -> "_models.ExtensionType":
    """Get Extension Type details.
    :param resource_group_name: The name of the resource group. The name is case insensitive.
    :type resource_group_name: str
    :param cluster_rp: The Kubernetes cluster RP - either Microsoft.ContainerService (for AKS
     clusters) or Microsoft.Kubernetes (for OnPrem K8S clusters).
    :type cluster_rp: str or ~azure.mgmt.kubernetesconfiguration.v2021_11_01_preview.models.Enum0
    :param cluster_resource_name: The Kubernetes cluster resource name - either managedClusters
     (for AKS clusters) or connectedClusters (for OnPrem K8S clusters).
    :type cluster_resource_name: str or
     ~azure.mgmt.kubernetesconfiguration.v2021_11_01_preview.models.Enum1
    :param cluster_name: The name of the kubernetes cluster.
    :type cluster_name: str
    :param extension_type_name: Extension type name.
    :type extension_type_name: str
    :keyword callable cls: A custom type or function that will be passed the direct response
    :return: ExtensionType, or the result of cls(response)
    :rtype: ~azure.mgmt.kubernetesconfiguration.v2021_11_01_preview.models.ExtensionType
    :raises: ~azure.core.exceptions.HttpResponseError
    """
    cls = kwargs.pop('cls', None)  # type: ClsType["_models.ExtensionType"]
    error_map = {
        401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError
    }
    error_map.update(kwargs.pop('error_map', {}))
    request = build_get_request(
        subscription_id=self._config.subscription_id,
        resource_group_name=resource_group_name,
        cluster_rp=cluster_rp,
        cluster_resource_name=cluster_resource_name,
        cluster_name=cluster_name,
        extension_type_name=extension_type_name,
        template_url=self.METHOD_NAME.metadata['url'],
    )
    request = _convert_request(request)
    request.url = self._client.format_url(request.url)
    pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs)
    response = pipeline_response.http_response
    if response.status_code not in [200]:
        map_error(status_code=response.status_code, response=response, error_map=error_map)
        error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
        raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
    deserialized = self._deserialize('ExtensionType', pipeline_response)
    if cls:
        return cls(pipeline_response, deserialized, {})
    return deserialized