Package fr.gouv.vitam.storage.engine.server.rest

# Class StorageResource

java.lang.Object
fr.gouv.vitam.common.server.application.resources.ApplicationStatusResource
fr.gouv.vitam.storage.engine.server.rest.StorageResource

All Implemented Interfaces:
  `VitamAutoCloseable`, `AutoCloseable`

@Path("/storage/v1") public class StorageResource extends ApplicationStatusResource implements VitamAutoCloseable

- ## Field Summary

  ### Fields inherited from class fr.gouv.vitam.common.server.application.resources.ApplicationStatusResource

  `STATUS_URL, TENANTS_URL`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `jakarta.ws.rs.core.Response`
  `backupStorageAccessLog(List<Integer> tenants)`
  Backup access log
  `jakarta.ws.rs.core.Response`
  `backupStorageLog(List<Integer> tenants)`
  Backup storage log
  `jakarta.ws.rs.core.Response`
  `bulkCreateFromWorkspace(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String folder, BulkObjectStoreRequest bulkObjectStoreRequest)`
  `jakarta.ws.rs.core.Response`
  `checkAccessRequestStatuses(List<String> accessRequestIds, jakarta.ws.rs.core.HttpHeaders headers)`
  Check access request statuses of asynchronous offer.
  `jakarta.ws.rs.core.Response`
  `checkObject(jakarta.ws.rs.core.HttpHeaders headers, DataCategory type, String objectId)`
  Check the existence of an object
  `jakarta.ws.rs.core.Response`
  `checkObjectAvailability(DataCategory dataCategory, List<String> objectsNames, jakarta.ws.rs.core.HttpHeaders headers)`
  Bulk check of immediate object availability in offer If target offer supports synchronous read requests, objects can be read immediately.
  `void`
  `close()`
  `jakarta.ws.rs.core.Response`
  `copy(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String objectId)`
  `jakarta.ws.rs.core.Response`
  `create(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String operationId, InputStream inputStream)`
  Post a new backup operation
  `jakarta.ws.rs.core.Response`
  `createAccessionRegisterDetail(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String fileName, ObjectDescription createObjectDescription)`
  Post a new unit metadata
  `jakarta.ws.rs.core.Response`
  `createAccessionRegisterSymbolic(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String fileName, ObjectDescription createObjectDescription)`
  Post a new unit metadata
  `jakarta.ws.rs.core.Response`
  `createAccessRequestIfRequired(DataCategory dataCategory, List<String> objectsNames, jakarta.ws.rs.core.HttpHeaders headers)`
  Create access request if target offer does not support synchronous read (tape library storage).
  `jakarta.ws.rs.core.Response`
  `createAgencyFile(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String agencyfile, ObjectDescription createObjectDescription)`
  Post a new object
  `jakarta.ws.rs.core.Response`
  `createBackupFile(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String backupfile, ObjectDescription createObjectDescription)`
  Post a new object
  `jakarta.ws.rs.core.Response`
  `createDistributionReportFile(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String distributionreportfile, ObjectDescription createObjectDescription)`
  Post a new distribution report file
  `jakarta.ws.rs.core.Response`
  `createLogbook(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String logbookId, ObjectDescription createObjectDescription)`
  Post a new object
  `jakarta.ws.rs.core.Response`
  `createManifest(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String manifestId, ObjectDescription createObjectDescription)`
  Post a new object manifest
  `jakarta.ws.rs.core.Response`
  `createObject(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String objectId, ObjectDescription createObjectDescription)`
  Post a new object
  `jakarta.ws.rs.core.Response`
  `createObjectGroup(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String metadataId, ObjectDescription createObjectDescription)`
  Post a new Object Group metadata
  `jakarta.ws.rs.core.Response`
  `createObjectGroupGraphFile(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String graph_file_name, ObjectDescription createObjectDescription)`
  Create a new graph zip file
  `jakarta.ws.rs.core.Response`
  `createOrUpdateBackupOperation(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String operationId, ObjectDescription createObjectDescription)`
  Post a new backup operation
  `jakarta.ws.rs.core.Response`
  `createProfile(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String profileFileName, ObjectDescription createObjectDescription)`
  Post a new object
  `jakarta.ws.rs.core.Response`
  `createReport(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String reportId, ObjectDescription createObjectDescription)`
  Post a new object
  `jakarta.ws.rs.core.Response`
  `createRuleFile(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String ruleFile, ObjectDescription createObjectDescription)`
  Post a new object
  `jakarta.ws.rs.core.Response`
  `createStorageAccessLog(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String storageAccessLogName, ObjectDescription createObjectDescription)`
  Post a new accesslog object
  `jakarta.ws.rs.core.Response`
  `createStorageLog(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String storageLogname, ObjectDescription createObjectDescription)`
  Post a new object
  `jakarta.ws.rs.core.Response`
  `createStorageTraceability(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String storagetraceabilityname, ObjectDescription createObjectDescription)`
  Post a new object
  `jakarta.ws.rs.core.Response`
  `createUnitGraphFile(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String graph_file_name, ObjectDescription createObjectDescription)`
  Create a new graph zip file
  `jakarta.ws.rs.core.Response`
  `createUnitMetadata(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String metadataId, ObjectDescription createObjectDescription)`
  Post a new unit metadata
  `jakarta.ws.rs.core.Response`
  `deleteObject(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String objectId)`
  Delete an object
  `jakarta.ws.rs.core.Response`
  `downloadProfile(jakarta.ws.rs.core.HttpHeaders headers, String profileFileName)`
  Get a profile
  `jakarta.ws.rs.core.Response`
  `downloadStorageTraceability(jakarta.ws.rs.core.HttpHeaders headers, String filename)`
  Get a storage traceability file
  `jakarta.ws.rs.core.Response`
  `getAccessionRegisterDetail(jakarta.ws.rs.core.HttpHeaders headers, String fileName)`
  Get an accessionregistersdetail
  `jakarta.ws.rs.core.Response`
  `getAccessionRegisterSymbolic(jakarta.ws.rs.core.HttpHeaders headers, String fileName)`
  Get an accessionregisterssymbolic
  `jakarta.ws.rs.core.Response`
  `getAccessLogFile(jakarta.ws.rs.core.HttpHeaders headers, String storageAccessLogFile)`
  Get access log data.
  `jakarta.ws.rs.core.Response`
  `getBackupFile(jakarta.ws.rs.core.HttpHeaders headers, String backupfile)`
  Get colection data.
  `jakarta.ws.rs.core.Response`
  `getBackupOperation(jakarta.ws.rs.core.HttpHeaders headers, String operationId)`
  Get a backup operation
  `jakarta.ws.rs.core.Response`
  `getBatchObjectInformation(jakarta.ws.rs.core.HttpHeaders headers, String typeStr, List<String> objectIds)`
  Get object metadata as json Note : this is NOT to be handled in item #72.
  `jakarta.ws.rs.core.Response`
  `getDistributionReport(jakarta.ws.rs.core.HttpHeaders headers, String objectId)`
  Get a report
  `jakarta.ws.rs.core.Response`
  `getInformation(jakarta.ws.rs.core.HttpHeaders headers, String typeStr, String objectId)`
  Get object metadata as json Note : this is NOT to be handled in item #72.
  `jakarta.ws.rs.core.Response`
  `getLogbookStream(jakarta.ws.rs.core.HttpHeaders headers, String objectId)`
  `jakarta.ws.rs.core.Response`
  `getManifest(jakarta.ws.rs.core.HttpHeaders headers, String objectId)`
  getManifest stored by ingest operation
  `jakarta.ws.rs.core.Response`
  `getObject(jakarta.ws.rs.core.HttpHeaders headers, String objectId, AccessLogInfoModel logInfo)`
  Get an object data
  `jakarta.ws.rs.core.Response`
  `getObjectGroup(jakarta.ws.rs.core.HttpHeaders headers, String metadataId)`
  Get a Object Group
  `jakarta.ws.rs.core.Response`
  `getObjectGroupGraphFile(jakarta.ws.rs.core.HttpHeaders headers, String graph_file_name)`
  Get graph zip file
  `jakarta.ws.rs.core.Response`
  `getOfferLogs(jakarta.ws.rs.core.HttpHeaders headers, DataCategory type, OfferLogRequest offerLogRequest)`
  Get offer log from referent offer
  `jakarta.ws.rs.core.Response`
  `getOffers(String strategyId)`
  `jakarta.ws.rs.core.Response`
  `getReferentOffer(String strategyId)`
  Get referent Offer in strategy
  `jakarta.ws.rs.core.Response`
  `getReport(jakarta.ws.rs.core.HttpHeaders headers, String objectId)`
  Get a report
  `jakarta.ws.rs.core.Response`
  `getRuleFile(jakarta.ws.rs.core.HttpHeaders headers, String objectId)`
  `jakarta.ws.rs.core.Response`
  `getStorageInformation(jakarta.ws.rs.core.HttpHeaders headers)`
  Get storage information for a specific tenant/strategy For example the usable space
  `jakarta.ws.rs.core.Response`
  `getStorageLogFile(jakarta.ws.rs.core.HttpHeaders headers, String storageAccessLogFile)`
  Get access log data.
  `jakarta.ws.rs.core.Response`
  `getStrategies()`
  Get the strategies available in the module
  `jakarta.ws.rs.core.Response`
  `getTemporaryFile(jakarta.ws.rs.core.HttpHeaders headers, String file_name)`
  `jakarta.ws.rs.core.Response`
  `getUnit(jakarta.ws.rs.core.HttpHeaders headers, String unitId)`
  Get a unit
  `jakarta.ws.rs.core.Response`
  `getUnitGraphFile(jakarta.ws.rs.core.HttpHeaders headers, String graph_file_name)`
  Get graph zip file
  `void`
  `launchOfferLogCompaction(String offerId, jakarta.ws.rs.core.HttpHeaders headers)`
  `jakarta.ws.rs.core.Response`
  `listObjects(jakarta.ws.rs.core.HttpHeaders headers, DataCategory type)`
  Get list of object type
  `jakarta.ws.rs.core.Response`
  `removeAccessRequest(String accessRequestId, jakarta.ws.rs.core.HttpHeaders headers)`
  Remove access request from asynchronous offer.
  `jakarta.ws.rs.core.Response`
  `storeArchivalTransferReply(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String id, ObjectDescription description)`
  `jakarta.ws.rs.core.Response`
  `storeTemporaryFile(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.ws.rs.core.HttpHeaders headers, String id, ObjectDescription description)`
  `jakarta.ws.rs.core.Response`
  `traceabilityStorageLogbook(List<Integer> tenants)`
  Run storage logbook secure operation

  ### Methods inherited from class fr.gouv.vitam.common.server.application.resources.ApplicationStatusResource

  `getServerTenants, status`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### copy

    @Path("/copy/{id_object}") @POST @Produces("application/json") public jakarta.ws.rs.core.Response copy(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_object") String objectId)

  - ### create

    @Path("/create/{id_operation}") @POST @Consumes("application/octet-stream") @Produces("application/json") public jakarta.ws.rs.core.Response create(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_operation") String operationId, InputStream inputStream)
    Post a new backup operation
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `operationId` - the id of the operation
      `inputStream` - inputStream
    Returns:
      Response

  - ### getStorageInformation

    @GET @Consumes("application/json") @Produces("application/json") public jakarta.ws.rs.core.Response getStorageInformation(@Context jakarta.ws.rs.core.HttpHeaders headers)
    Get storage information for a specific tenant/strategy For example the usable space
    Parameters:
      `headers` - http headers
    Returns:
      Response containing the storage information as json, or an error (404, 500)

  - ### listObjects

    @Path("/{type:UNIT|OBJECT|OBJECTGROUP|LOGBOOK|REPORT|MANIFEST|PROFILE|STORAGELOG|STORAGEACCESSLOG|STORAGETRACEABILITY|RULES|DIP|AGENCIES|BACKUP|BACKUP_OPERATION|CHECKLOGBOOKREPORTS|OBJECTGROUP_GRAPH|UNIT_GRAPH|DISTRIBUTIONREPORTS|ACCESSION_REGISTER_DETAIL|ACCESSION_REGISTER_SYMBOLIC}") @GET @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response listObjects(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("type") DataCategory type)
    Get list of object type
    Parameters:
      `headers` - X-Strategy-Id header
      `type` - the object type to list
    Returns:
      a response with listing elements

  - ### getOfferLogs

    @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("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response getOfferLogs(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("type") DataCategory type, OfferLogRequest offerLogRequest)
    Get offer log from referent offer
    Parameters:
      `headers` -
      `type` - the object type to list
      `offerLogRequest` - offer log request params
    Returns:
      list of offer log

  - ### getInformation

    @Path("/info/{type}/{id_object}") @GET @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response getInformation(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("type") String typeStr, @PathParam("id_object") String objectId)
    Get object metadata as json Note : this is NOT to be handled in item #72.
    Parameters:
      `headers` - http header
      `objectId` - the id of the object
    Returns:
      Response NOT_IMPLEMENTED

  - ### getBatchObjectInformation

    @Path("/batch_info/{type}") @GET @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response getBatchObjectInformation(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("type") String typeStr, List<String> objectIds)
    Get object metadata as json Note : this is NOT to be handled in item #72.
    Parameters:
      `headers` - http header
      `objectIds` - the id of the object

  - ### getObject

    @Path("/objects/{id_object}") @GET @Produces({"application/octet-stream","application/zip"}) public jakarta.ws.rs.core.Response getObject(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_object") String objectId, AccessLogInfoModel logInfo)
    Get an object data
    Parameters:
      `headers` - http header
      `objectId` - the id of the object
    Returns:
      the stream

  - ### getBackupFile

    @Path("/backup/{backupfile}") @GET @Produces("application/octet-stream") public jakarta.ws.rs.core.Response getBackupFile(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("backupfile") String backupfile)
    Get colection data.
    Parameters:
      `headers` - headers
      `backupfile` - backupfile
    Returns:

  - ### createObject

    @Path("/objects/{id_object}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createObject(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_object") String objectId, ObjectDescription createObjectDescription)
    Post a new object
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `objectId` - the id of the object
      `createObjectDescription` - the object description
    Returns:
      Response

  - ### createOrUpdateBackupOperation

    @Path("/backupoperations/{id_operation}") @POST @Consumes("application/json") @Produces("application/json") public jakarta.ws.rs.core.Response createOrUpdateBackupOperation(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_operation") String operationId, ObjectDescription createObjectDescription)
    Post a new backup operation
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `operationId` - the id of the operation
      `createObjectDescription` - the object description for storage
    Returns:

  - ### getAccessLogFile

    @Path("/storageaccesslog/{storageaccesslogfile}") @GET @Produces("application/octet-stream") public jakarta.ws.rs.core.Response getAccessLogFile(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("storageaccesslogfile") String storageAccessLogFile)
    Get access log data.
    Parameters:
      `headers` - headers
      `storageAccessLogFile` - backupfile
    Returns:
      the file as stream

  - ### getStorageLogFile

    @Path("/storagelog/{storagelogfile}") @GET @Produces("application/octet-stream") public jakarta.ws.rs.core.Response getStorageLogFile(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("storagelogfile") String storageAccessLogFile)
    Get access log data.
    Parameters:
      `headers` - headers
      `storageAccessLogFile` - backupfile
    Returns:
      the file as stream

  - ### getOffers

    @Path("/offers") @GET @Consumes("application/json") @Produces("application/json") public jakarta.ws.rs.core.Response getOffers(@HeaderParam("X-Strategy-Id") String strategyId)
    Parameters:
      `strategyId` - the strategy to get offers
    Returns:

  - ### getReferentOffer

    @Path("/referentOffer") @GET @Consumes("application/json") @Produces("application/json") public jakarta.ws.rs.core.Response getReferentOffer(@HeaderParam("X-Strategy-Id") String strategyId)
    Get referent Offer in strategy
    Parameters:
      `strategyId` - the strategy to get offers
    Returns:

  - ### getBackupOperation

    @Path("/backupoperations/{id_operation}") @GET @Produces({"application/octet-stream","application/zip"}) public jakarta.ws.rs.core.Response getBackupOperation(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_operation") String operationId)
    Get a backup operation
    Parameters:
      `headers` - http header
      `operationId` - the id of the operation
    Returns:
      the stream

  - ### deleteObject

    @Path("/delete/{id_object}") @DELETE @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response deleteObject(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_object") String objectId)
    Delete an object
    Parameters:
      `headers` - http header
      `objectId` - the id of the object
    Returns:
      Response

  - ### checkObject

    @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}/{id_object}") @HEAD @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response checkObject(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("type") DataCategory type, @PathParam("id_object") String objectId)
    Check the existence of an object
    Parameters:
      `headers` - http header
      `objectId` - the id of the object
    Returns:
      Response NOT_IMPLEMENTED

  - ### getLogbookStream

    @Path("/logbooks/{id_logbook}") @GET @Produces("application/octet-stream") public jakarta.ws.rs.core.Response getLogbookStream(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_logbook") String objectId)
    Parameters:
      `headers` - http header
      `objectId` - the id of the object
    Returns:
      the stream

  - ### createLogbook

    @Path("/logbooks/{id_logbook}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createLogbook(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_logbook") String logbookId, ObjectDescription createObjectDescription)
    Post a new object
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `logbookId` - the id of the logbookId
      `createObjectDescription` - the workspace information about logbook to be created
    Returns:
      the stream

  - ### getUnit

    @Path("/units/{id_md}") @GET @Produces({"application/octet-stream","application/zip"}) public jakarta.ws.rs.core.Response getUnit(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_md") String unitId)
    Get a unit
    Parameters:
      `headers` - http header
      `unitId` - the id of the unit
    Returns:
      the stream

  - ### createUnitMetadata

    @Path("/units/{id_md}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createUnitMetadata(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_md") String metadataId, ObjectDescription createObjectDescription)
    Post a new unit metadata
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `metadataId` - the id of the unit metadata
      `createObjectDescription` - the workspace description of the unit to be created
    Returns:
      Response containing result infos

  - ### getObjectGroup

    @Path("/objectgroups/{id_md}") @GET @Produces({"application/octet-stream","application/zip"}) public jakarta.ws.rs.core.Response getObjectGroup(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_md") String metadataId)
    Get a Object Group

    Note : this is NOT to be handled in item #72.

    Parameters:
      `headers` - http header
      `metadataId` - the id of the Object Group metadata
    Returns:
      Response NOT_IMPLEMENTED

  - ### createObjectGroup

    @Path("/objectgroups/{id_md}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createObjectGroup(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_md") String metadataId, ObjectDescription createObjectDescription)
    Post a new Object Group metadata
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `metadataId` - the id of the Object Group metadata
      `createObjectDescription` - the workspace description of the unit to be created
    Returns:
      Response Created with informations

  - ### storeArchivalTransferReply

    @POST @Path("/archivaltransferreply/{id}") @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response storeArchivalTransferReply(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id") String id, ObjectDescription description)

  - ### storeTemporaryFile

    @POST @Path("/tmp/{id}") @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response storeTemporaryFile(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id") String id, ObjectDescription description)

  - ### getTemporaryFile

    @Path("/tmp/{file_name}") @GET @Produces("application/octet-stream") public jakarta.ws.rs.core.Response getTemporaryFile(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("file_name") String file_name)

  - ### createReport

    @Path("/reports/{id_report}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createReport(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_report") String reportId, ObjectDescription createObjectDescription)
    Post a new object
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `reportId` - the id of the object
      `createObjectDescription` - the object description
    Returns:
      Response

  - ### getReport

    @Path("/reports/{id_report}") @GET @Produces({"application/octet-stream","application/zip"}) public jakarta.ws.rs.core.Response getReport(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_report") String objectId)
    Get a report
    Parameters:
      `headers` - http header
      `objectId` - the id of the object
    Returns:
      the stream

  - ### getDistributionReport

    @Path("/distributionreports/{id_report}") @GET @Produces({"application/octet-stream","application/zip"}) public jakarta.ws.rs.core.Response getDistributionReport(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_report") String objectId)
    Get a report
    Parameters:
      `headers` - http header
      `objectId` - the id of the object
    Returns:
      the stream

  - ### createManifest

    @Path("/manifests/{id_manifest}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createManifest(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_manifest") String manifestId, ObjectDescription createObjectDescription)
    Post a new object manifest
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `manifestId` - the id of the object
      `createObjectDescription` - the object description
    Returns:
      Response

  - ### getManifest

    @Path("/manifests/{id_manifest}") @GET @Produces("application/octet-stream") public jakarta.ws.rs.core.Response getManifest(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_manifest") String objectId)
    getManifest stored by ingest operation
    Parameters:
      `headers` -
      `objectId` -
    Returns:
      the stream

  - ### backupStorageAccessLog

    @POST @Path("/storage/backup/accesslog") @Consumes("application/json") @Produces("application/json") public jakarta.ws.rs.core.Response backupStorageAccessLog(List<Integer> tenants)
    Backup access log
    Parameters:
      `tenants` - tenant list to backup
    Returns:
      the response with a specific HTTP status

  - ### backupStorageLog

    @POST @Path("/storage/backup") @Consumes("application/json") @Produces("application/json") public jakarta.ws.rs.core.Response backupStorageLog(List<Integer> tenants)
    Backup storage log
    Parameters:
      `tenants` - tenant list to backup
    Returns:
      the response with a specific HTTP status

  - ### traceabilityStorageLogbook

    @POST @Path("/storage/traceability") @Consumes("application/json") @Produces("application/json") public jakarta.ws.rs.core.Response traceabilityStorageLogbook(List<Integer> tenants)
    Run storage logbook secure operation
    Parameters:
      `tenants` - tenant list to secure
    Returns:
      the response with a specific HTTP status

  - ### createStorageLog

    @Path("/storagelog/{storagelogname}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createStorageLog(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("storagelogname") String storageLogname, ObjectDescription createObjectDescription)
    Post a new object
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `storageLogname` - the id of the object
      `createObjectDescription` - the object description
    Returns:
      Response

  - ### createStorageAccessLog

    @Path("/storageaccesslog/{storageaccesslogname}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createStorageAccessLog(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("storageaccesslogname") String storageAccessLogName, ObjectDescription createObjectDescription)
    Post a new accesslog object
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `createObjectDescription` - the object description
    Returns:
      Response

  - ### createStorageTraceability

    @Path("/storagetraceability/{storagetraceabilityname}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createStorageTraceability(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("storagetraceabilityname") String storagetraceabilityname, ObjectDescription createObjectDescription)
    Post a new object
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `storagetraceabilityname` - storage traceability name
      `createObjectDescription` - the object description
    Returns:
      Response

  - ### downloadStorageTraceability

    @Path("/storagetraceability/{storagetraceability_name}") @GET @Produces({"application/octet-stream","application/zip"}) public jakarta.ws.rs.core.Response downloadStorageTraceability(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("storagetraceability_name") String filename)
    Get a storage traceability file
    Parameters:
      `headers` - http header
      `filename` - the id of the object
    Returns:
      the stream

  - ### createBackupFile

    @Path("/backup/{backupfile}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createBackupFile(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("backupfile") String backupfile, ObjectDescription createObjectDescription)
    Post a new object
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `backupfile` - the id of the object
      `createObjectDescription` - the object description
    Returns:
      Response

  - ### createRuleFile

    @Path("/rules/{rulefile}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createRuleFile(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("rulefile") String ruleFile, ObjectDescription createObjectDescription)
    Post a new object
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `ruleFile` - the id of the object
      `createObjectDescription` - the object description
    Returns:
      Response

  - ### getRuleFile

    @Path("/rules/{id_object}") @GET @Produces("application/octet-stream") public jakarta.ws.rs.core.Response getRuleFile(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("id_object") String objectId)

  - ### createUnitGraphFile

    @Path("/unitgraph/{graph_file_name}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createUnitGraphFile(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("graph_file_name") String graph_file_name, ObjectDescription createObjectDescription)
    Create a new graph zip file
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `graph_file_name` - the id of the object
      `createObjectDescription` - the object description
    Returns:
      Response

  - ### getUnitGraphFile

    @Path("/unitgraph/{graph_file_name}") @GET @Produces("application/octet-stream") public jakarta.ws.rs.core.Response getUnitGraphFile(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("graph_file_name") String graph_file_name)
    Get graph zip file
    Parameters:
      `headers` -
      `graph_file_name` -
    Returns:

  - ### createObjectGroupGraphFile

    @Path("/objectgroupgraph/{graph_file_name}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createObjectGroupGraphFile(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("graph_file_name") String graph_file_name, ObjectDescription createObjectDescription)
    Create a new graph zip file
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `graph_file_name` - the id of the object
      `createObjectDescription` - the object description
    Returns:
      Response

  - ### getObjectGroupGraphFile

    @Path("/objectgroupgraph/{graph_file_name}") @GET @Produces("application/octet-stream") public jakarta.ws.rs.core.Response getObjectGroupGraphFile(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("graph_file_name") String graph_file_name)
    Get graph zip file
    Parameters:
      `headers` -
      `graph_file_name` -
    Returns:

  - ### createAgencyFile

    @Path("/agencies/{agencyfile}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createAgencyFile(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("agencyfile") String agencyfile, ObjectDescription createObjectDescription)
    Post a new object
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `agencyfile` - the id of the object
      `createObjectDescription` - the object description
    Returns:
      Response

  - ### createProfile

    @Path("/profiles/{profile_file_name}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createProfile(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("profile_file_name") String profileFileName, ObjectDescription createObjectDescription)
    Post a new object
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `profileFileName` - the id of the object
      `createObjectDescription` - the object description
    Returns:
      Response

  - ### downloadProfile

    @Path("/profiles/{profile_file_name}") @GET @Produces({"application/octet-stream","application/zip"}) public jakarta.ws.rs.core.Response downloadProfile(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("profile_file_name") String profileFileName)
    Get a profile
    Parameters:
      `headers` - http header
      `profileFileName` - the id of the object
    Returns:
      the stream

  - ### createDistributionReportFile

    @Path("/distributionreports/{distributionreportfile}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createDistributionReportFile(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("distributionreportfile") String distributionreportfile, ObjectDescription createObjectDescription)
    Post a new distribution report file
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `distributionreportfile` - the id of the object
      `createObjectDescription` - the object description
    Returns:
      Response

  - ### createAccessionRegisterDetail

    @Path("/accessionregistersdetail/{fileName}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createAccessionRegisterDetail(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("fileName") String fileName, ObjectDescription createObjectDescription)
    Post a new unit metadata
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `fileName` - the file name of the Accession Register Detail
      `createObjectDescription` - the workspace description of the unit to be created
    Returns:
      Response containing result infos

  - ### getAccessionRegisterDetail

    @Path("/accessionregistersdetail/{fileName}") @GET @Produces({"application/octet-stream","application/zip"}) public jakarta.ws.rs.core.Response getAccessionRegisterDetail(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("fileName") String fileName)
    Get an accessionregistersdetail
    Parameters:
      `headers` - http header
      `fileName` - the file name of the Accession Register Detail
    Returns:
      the stream

  - ### createAccessionRegisterSymbolic

    @Path("/accessionregisterssymbolic/{fileName}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response createAccessionRegisterSymbolic(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("fileName") String fileName, ObjectDescription createObjectDescription)
    Post a new unit metadata
    Parameters:
      `httpServletRequest` - http servlet request to get requester
      `headers` - http header
      `fileName` - the file name of the Accession Register Symbolic
      `createObjectDescription` - the workspace description of the unit to be created
    Returns:
      Response containing result infos

  - ### getAccessionRegisterSymbolic

    @Path("/accessionregisterssymbolic/{fileName}") @GET @Produces({"application/octet-stream","application/zip"}) public jakarta.ws.rs.core.Response getAccessionRegisterSymbolic(@Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("fileName") String fileName)
    Get an accessionregisterssymbolic
    Parameters:
      `headers` - http header
      `fileName` - the file name of the Accession Register Symbolic
    Returns:
      the stream

  - ### bulkCreateFromWorkspace

    @Path("/bulk/{folder}") @POST @Produces("application/json") @Consumes("application/json") public jakarta.ws.rs.core.Response bulkCreateFromWorkspace(@Context jakarta.servlet.http.HttpServletRequest httpServletRequest, @Context jakarta.ws.rs.core.HttpHeaders headers, @PathParam("folder") String folder, BulkObjectStoreRequest bulkObjectStoreRequest)

  - ### getStrategies

    @Path("/strategies") @GET @Produces("application/json") public jakarta.ws.rs.core.Response getStrategies()
    Get the strategies available in the module
    Returns:
      the strategies

  - ### createAccessRequestIfRequired

    @POST @Path("/access-request/{dataCategory}") @Consumes("application/json") @Produces("application/json") public jakarta.ws.rs.core.Response createAccessRequestIfRequired(@PathParam("dataCategory") DataCategory dataCategory, List<String> objectsNames, @Context jakarta.ws.rs.core.HttpHeaders headers)
    Create access request if target offer does not support synchronous read (tape library storage). If target offer supports synchronous read requests, then no access request is created. HEADER X-Tenant-Id (mandatory) : tenant's identifier HEADER X-Strategy-Id (mandatory) : storage strategy HEADER X-Offer (optional) : offer id. If not specified, referent offer of the strategy is used.
    Parameters:
      `objectsNames` - objects for which access is requested
      `headers` - http header
    Returns:
      HTTP 20O-OK with accessRequestId is access request created, HTTP 204-NO_CONTENT if no access request required

  - ### checkAccessRequestStatuses

    @GET @Path("/access-request/statuses") @Consumes("application/json") @Produces("application/json") public jakarta.ws.rs.core.Response checkAccessRequestStatuses(List<String> accessRequestIds, @Context jakarta.ws.rs.core.HttpHeaders headers)
    Check access request statuses of asynchronous offer. HEADER X-Tenant-Id (mandatory) : tenant's identifier HEADER X-Strategy-Id (mandatory) : storage strategy HEADER X-Offer (optional) : offer id. If not specified, referent offer of the strategy is used. HEADER X-Admin-Cross-Tenant-Access-Request-Allowed (mandatory) : when `true`, removal of access requests of other tenants is allowed from Admin tenant
    Parameters:
      `accessRequestIds` - accessRequestIds whose status is to be checked
      `headers` - http header
    Returns:
      HTTP 20O-OK with the AccessRequestStatus for each access request id

  - ### removeAccessRequest

    @DELETE @Path("/access-request/{accessRequestId}") @Consumes("application/json") @Produces("application/json") public jakarta.ws.rs.core.Response removeAccessRequest(@PathParam("accessRequestId") String accessRequestId, @Context jakarta.ws.rs.core.HttpHeaders headers)
    Remove access request from asynchronous offer. HEADER X-Tenant-Id (mandatory) : tenant's identifier HEADER X-Strategy-Id (mandatory) : storage strategy HEADER X-Offer (optional) : offer id. If not specified, referent offer of the strategy is used. HEADER X-Admin-Cross-Tenant-Access-Request-Allowed (mandatory) : when `true`, access to access requests of other tenants is allowed from Admin tenant
    Parameters:
      `accessRequestId` - the accessRequestId to be removed
      `headers` - http header
    Returns:
      HTTP 20O-OK with the AccessRequestStatus for each access request id

  - ### checkObjectAvailability

    @GET @Path("/object-availability-check/{dataCategory}") @Consumes("application/json") @Produces("application/json") public jakarta.ws.rs.core.Response checkObjectAvailability(@PathParam("dataCategory") DataCategory dataCategory, List<String> objectsNames, @Context jakarta.ws.rs.core.HttpHeaders headers)
    Bulk check of immediate object availability in offer If target offer supports synchronous read requests, objects can be read immediately. If target offer does not support synchronous read requests (tape library storage), request is forwarded to the offer for effective check. HEADER X-Tenant-Id (mandatory) : tenant's identifier HEADER X-Strategy-Id (mandatory) : storage strategy HEADER X-Offer (optional) : offer id. If not specified, referent offer of the strategy is used.
    Parameters:
      `objectsNames` - objects for which access is requested
      `headers` - http header
    Returns:
      HTTP 20O-OK with availability status

  - ### launchOfferLogCompaction

    @POST @Path("/compaction") @Consumes("application/json") public void launchOfferLogCompaction(String offerId, @Context jakarta.ws.rs.core.HttpHeaders headers) throws StorageException
    Throws:
      `StorageException`

  - ### close

    public void close()
    Specified by:
      `close` in interface `AutoCloseable`
    Specified by:
      `close` in interface `VitamAutoCloseable`