class CloudBackupFolderResolverService {

    public Backup updateStorageLocation(Backup backup, String clusterType,
            String clusterName, String clusterCrn) {
        LOGGER.debug("Updating/enriching backup storage locations with cluster data.");
        if (backup != null  && StringUtils.isNotEmpty(backup.getStorageLocation())) {
            String storageLocation = backup.getStorageLocation();
            if (backup.getS3() != null) {
                storageLocation = resolveS3Location(storageLocation,
                        clusterType, clusterName, clusterCrn);
            } else if (backup.getAdlsGen2() != null) {
                storageLocation = resolveAdlsGen2Location(storageLocation,
                        clusterType, clusterName, clusterCrn);
            } else {
                LOGGER.warn("None of the backup storage location was resolved, "
                        + "make sure storage type is set properly (currently supported: s3, abfs)");
            }
            backup.setStorageLocation(storageLocation);
        } else {
            LOGGER.debug("Backup is not set, skipping cloud storage location updates.");
        }
        return backup;
    }

    public  CloudBackupFolderResolverService(S3BackupConfigGenerator s3BackupConfigGenerator,
            AdlsGen2BackupConfigGenerator adlsGen2BackupConfigGenerator);

}