class EmrRestController extends HerdBaseController {

    @RequestMapping(value = "/emrClusters/namespaces/{namespace}/emrClusterDefinitionNames/{emrClusterDefinitionName}/emrClusterNames/{emrClusterName}",
        method = RequestMethod.GET)
    @Secured(SecurityFunctions.FN_EMR_CLUSTERS_GET)
    public EmrCluster getEmrCluster(@PathVariable("namespace") String namespace, @PathVariable("emrClusterDefinitionName") String emrClusterDefinitionName,
        @PathVariable("emrClusterName") String emrClusterName, @RequestParam(value = "emrClusterId", required = false) String emrClusterId,
        @RequestParam(value = "emrStepId", required = false) String emrStepId,
        @RequestParam(value = "verbose", required = false, defaultValue = "false") Boolean verbose,
        @RequestParam(value = "accountId", required = false) String accountId,
        @RequestParam(value = "retrieveInstanceFleets", required = false, defaultValue = "false") Boolean retrieveInstanceFleets) throws Exception
    {
        EmrClusterAlternateKeyDto alternateKey =
            EmrClusterAlternateKeyDto.builder().withNamespace(namespace).withEmrClusterDefinitionName(emrClusterDefinitionName)
                .withEmrClusterName(emrClusterName).build();

        return emrService.getCluster(alternateKey, emrClusterId, emrStepId, verbose, accountId, retrieveInstanceFleets);
    }

}