class IngestCleanupFinalizationPlugin extends ActionHandler {

    @Override
    public ItemStatus execute(WorkerParameters param, HandlerIO handler)
        throws ProcessingException {

        try (StorageClient storageClient = storageClientFactory.getClient()) {

            Optional<CleanupReportManager> cleanupReportManager =
                CleanupReportManager.loadReportDataFromWorkspace(handler);
            if (!cleanupReportManager.isPresent()) {
                LOGGER.warn("No report information available...");
                return buildItemStatus(INGEST_CLEANUP_FINALIZATION, StatusCode.WARNING);
            }

            cleanupReportManager.get().exportReport(handler, storageClient);

            LOGGER.info("Ingest cleanup finalization succeeded");
            return buildItemStatus(INGEST_CLEANUP_FINALIZATION, StatusCode.OK);
        } catch (ProcessingStatusException e) {
            LOGGER.error(String.format("Ingest Cleanup finalization failed with status [%s]", e.getStatusCode()), e);
            return buildItemStatus(INGEST_CLEANUP_FINALIZATION, e.getStatusCode(), e.getEventDetails());
        }
    }

    public  IngestCleanupFinalizationPlugin();
    @VisibleForTesting public  IngestCleanupFinalizationPlugin(
        StorageClientFactory storageClientFactory);

}