class StorageUnitRestController extends HerdBaseController {

    @RequestMapping(value = "/storageUnits/download/credential/namespaces/{namespace}/businessObjectDefinitionNames/{businessObjectDefinitionName}" +
        "/businessObjectFormatUsages/{businessObjectFormatUsage}/businessObjectFormatFileTypes/{businessObjectFormatFileType}" +
        "/businessObjectFormatVersions/{businessObjectFormatVersion}/partitionValues/{partitionValue}/businessObjectDataVersions/{businessObjectDataVersion}" +
        "/storageNames/{storageName}", method = RequestMethod.GET)
    @Secured(SecurityFunctions.FN_STORAGE_UNIT_DOWNLOAD_CREDENTIAL_GET)
    public StorageUnitDownloadCredential getStorageUnitDownloadCredential(@PathVariable("namespace") String namespace,
        @PathVariable("businessObjectDefinitionName") String businessObjectDefinitionName,
        @PathVariable("businessObjectFormatUsage") String businessObjectFormatUsage,
        @PathVariable("businessObjectFormatFileType") String businessObjectFormatFileType,
        @PathVariable("businessObjectFormatVersion") Integer businessObjectFormatVersion, @PathVariable("partitionValue") String partitionValue,
        @PathVariable("businessObjectDataVersion") Integer businessObjectDataVersion, @PathVariable("storageName") String storageName,
        @RequestParam(value = "subPartitionValues", required = false) String subPartitionValues)
    {
        return storageUnitService.getStorageUnitDownloadCredential(
            new BusinessObjectDataKey(namespace, businessObjectDefinitionName, businessObjectFormatUsage, businessObjectFormatFileType,
                businessObjectFormatVersion, partitionValue, herdStringHelper.splitStringWithDefaultDelimiterEscaped(subPartitionValues),
                businessObjectDataVersion), storageName);
    }

}