class StorageResource extends ApplicationStatusResource implements VitamAutoCloseable {

    @Path(
        "/{type:UNIT|OBJECT|OBJECTGROUP|LOGBOOK|REPORT|MANIFEST|PROFILE|STORAGELOG|STORAGETRACEABILITY|RULES|DIP|AGENCIES|BACKUP" +
            "|BACKUP_OPERATION|CHECKLOGBOOKREPORTS|OBJECTGROUP_GRAPH|UNIT_GRAPH|DISTRIBUTIONREPORTS|ACCESSION_REGISTER_DETAIL|ACCESSION_REGISTER_SYMBOLIC}/logs")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    public Response getOfferLogs(@Context HttpHeaders headers,
        @PathParam("type") DataCategory type, OfferLogRequest offerLogRequest) {
        VitamCode vitamCode = checkTenantAndHeaders(headers, VitamHttpHeader.STRATEGY_ID);
        if (vitamCode != null) {
            return buildErrorResponse(vitamCode);
        }
        try {
            String strategyId = HttpHeaderHelper.getHeaderValues(headers, VitamHttpHeader.STRATEGY_ID).get(0);
            RequestResponse<OfferLog> jsonNodeRequestResponse = distribution.getOfferLogs(strategyId, type,
                offerLogRequest.getOffset(), offerLogRequest.getLimit(), offerLogRequest.getOrder());
            return jsonNodeRequestResponse.toResponse();
        } catch (IllegalArgumentException exc) {
            LOGGER.error(exc);
            return VitamCodeHelper.toVitamError(VitamCode.STORAGE_BAD_REQUEST, null).toResponse();
        } catch (Exception exc) {
            LOGGER.error(exc);
            return VitamCodeHelper.toVitamError(VitamCode.STORAGE_TECHNICAL_INTERNAL_ERROR, null).toResponse();
        }
    }

      StorageResource(StorageConfiguration configuration);
    @VisibleForTesting  StorageResource(StorageDistribution storageDistribution, TimestampGenerator timestampGenerator);

}