class PurgeDeleteService {

    public void detachObjectGroupFromDeleteParentUnits(String objectGroupId,
        Set<String> parentUnitsToRemove)
        throws ProcessingStatusException {

        try (MetaDataClient metaDataClient = metaDataClientFactory.getClient()) {

            UpdateMultiQuery updateMultiQuery = new UpdateMultiQuery();
            updateMultiQuery.addActions(
                pull(VitamFieldsHelper.unitups(), parentUnitsToRemove.toArray(new String[0])),
                add(VitamFieldsHelper.operations(), VitamThreadUtils.getVitamSession().getRequestId())
            );

            metaDataClient.updateObjectGroupById(updateMultiQuery.getFinalUpdate(), objectGroupId);

        } catch (MetaDataClientServerException | MetaDataExecutionException | InvalidParseOperationException | InvalidCreateOperationException e) {
            throw new ProcessingStatusException(StatusCode.FATAL, "An error occurred during object group detachment", e);
        }
    }

    @VisibleForTesting  PurgeDeleteService(StorageClientFactory storageClientFactory,
        MetaDataClientFactory metaDataClientFactory,
        LogbookLifeCyclesClientFactory logbookLifeCyclesClientFactory);
    public  PurgeDeleteService();

}