Class AccessExternalResource


@Path("/access-external/v1") public class AccessExternalResource extends ApplicationStatusResource
  • Field Details

  • Method Details

    • listResourceEndpoints

      @Path("/") @OPTIONS @Produces("application/json") public javax.ws.rs.core.Response listResourceEndpoints()
      List secured resource end points
      Returns:
      response
    • getUnits

      @GET @Path("/units") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response getUnits(com.fasterxml.jackson.databind.JsonNode queryJson)
      get units list by query
      Parameters:
      queryJson - the query to get units
      Returns:
      Response
    • getUnitByPersistentIdentifier

      @GET @Path("/units/unitpid/{persistentIdentifier:.+}") @Produces("application/json") @Consumes("application/json") public javax.ws.rs.core.Response getUnitByPersistentIdentifier(@PathParam("persistentIdentifier") String persistentIdentifier, com.fasterxml.jackson.databind.JsonNode queryJson)
      Retrieve archive units by unit persistent identifier
      Parameters:
      persistentIdentifier - Persistent Identifier value, the name should be persistentIdentifier to accept the custom validation, otherwise, ark format identifier will not be accepted
      queryJson - the query to get object
      Returns:
      response
    • streamUnits

      @GET @Path("/units/stream") @Consumes("application/json") @Produces("application/octet-stream") public javax.ws.rs.core.Response streamUnits(com.fasterxml.jackson.databind.JsonNode queryJson)
      get units list by query
      Parameters:
      queryJson - the query to get units
      Returns:
      Response
    • streamObjects

      @GET @Path("/objects/stream") @Consumes("application/json") @Produces("application/octet-stream") public javax.ws.rs.core.Response streamObjects(com.fasterxml.jackson.databind.JsonNode queryJson)
      get objects list by query
      Parameters:
      queryJson - the query to get objects
      Returns:
      Response
    • exportDIP

      @POST @Path("/dipexport") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response exportDIP(com.fasterxml.jackson.databind.JsonNode queryJson)
      get a DIP by dsl query
      Parameters:
      queryJson - the query to get units
      Returns:
      Response
    • transfer

      @POST @Path("/transfers") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response transfer(TransferRequest transferRequest)
    • transferReply

      @POST @Path("/transfers/reply") @Consumes("application/xml") @Produces("application/json") public javax.ws.rs.core.Response transferReply(InputStream transferReply)
    • findTransferByID

      @GET @Path("/transfers/{id}/sip") @Produces("application/octet-stream") public javax.ws.rs.core.Response findTransferByID(@PathParam("id") String id)
    • reclassification

      @POST @Path("/reclassification") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response reclassification(com.fasterxml.jackson.databind.JsonNode queryJson)
      Performs a reclassification workflow.
      Parameters:
      queryJson - List of reclassification DSL queries.
      Returns:
      Response
    • startEliminationAnalysis

      @POST @Path("/elimination/analysis") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response startEliminationAnalysis(EliminationRequestBody eliminationRequestBody)
      Performs an elimination analysis workflow.
      Parameters:
      eliminationRequestBody - object that contain dsl request and a given date.
      Returns:
      Response
    • startEliminationAction

      @POST @Path("/elimination/action") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response startEliminationAction(EliminationRequestBody eliminationRequestBody)
      Performs an elimination action workflow.
      Parameters:
      eliminationRequestBody - object that contain dsl request and a given date.
      Returns:
      Response
    • findExportByID

      @GET @Path("/dipexport/{id}/dip") @Produces("application/octet-stream") public javax.ws.rs.core.Response findExportByID(@PathParam("id") String id)
      Parameters:
      id - operationId correponding to the current dip
      Returns:
      Response
    • getUnitById

      @GET @Path("/units/{idu}") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response getUnitById(com.fasterxml.jackson.databind.JsonNode queryJson, @PathParam("idu") String idUnit)
      get units list by query based on identifier
      Parameters:
      queryJson - query as String
      idUnit - the id of archive unit to get
      Returns:
      Archive Unit
    • updateUnitById

      @Deprecated @PUT @Path("/units/{idu}") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response updateUnitById(com.fasterxml.jackson.databind.JsonNode queryJson, @PathParam("idu") String idUnit)
      Deprecated.
      This Method is no longer maintained and is no longer acceptable for updating units.

      Use massUpdateUnits(JsonNode) or massUpdateUnitsRules(MassUpdateUnitRuleRequest) instead.

      Update archive units by Id with Json query
      Parameters:
      queryJson - the update query (null not allowed)
      idUnit - units identifier
      Returns:
      a archive unit result list
    • getObjectGroupMetadataByUnitId

      @GET @Path("/units/{idu}/objects") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response getObjectGroupMetadataByUnitId(@Context javax.ws.rs.core.HttpHeaders headers, @PathParam("idu") String unitId, com.fasterxml.jackson.databind.JsonNode queryJson)
      Retrieve Object group list by query based on identifier of the unit
      Parameters:
      headers - the http header defined parameters of request
      unitId - the id of archive unit
      queryJson - the query to get object
      Returns:
      Response
    • getDataObjectByUnitId

      @GET @Path("/units/{idu}/objects") @Consumes("application/json") @Produces("application/octet-stream") public javax.ws.rs.core.Response getDataObjectByUnitId(@Context javax.ws.rs.core.HttpHeaders headers, @PathParam("idu") String unitId)
      The caller is responsible to close the Response after consuming the inputStream.
      Parameters:
      headers - the http header defined parameters of request. Headers X-Qualifier and X-Version must be defined with target object qualifier and version in the object group container associated with the unit.
      unitId - the id of archive unit
      Returns:
      object content as response body stream with HTTP 200 when OK, HTTP 404 when object not found, HTTP 460 when object is not available for immediate access and requires Access Request. HTTP 40X / 50X on error.
    • getDataObjectByUnitPersistentIdentifier

      @GET @Path("/objects/unitpid/{persistentIdentifier:.+}") @Produces("application/octet-stream") public javax.ws.rs.core.Response getDataObjectByUnitPersistentIdentifier(@Context javax.ws.rs.core.HttpHeaders headers, @PathParam("persistentIdentifier") String persistentIdentifier, @DefaultValue("BinaryMaster") @QueryParam("qualifier") String qualifier, @QueryParam("version") Integer version)
      The caller is responsible to close the Response after consuming the inputStream.
      Parameters:
      persistentIdentifier - unit Persistent Identifier
      qualifier - the qualifier, not mondatory, default value BinaryMaster
      version - the version, not mondatory, default value 1
      headers - the http header defined parameters of request. Headers X-Qualifier and X-Version must be defined with target object qualifier and version in the object group container associated with the unit.
      Returns:
      object content as response body stream with HTTP 200 when OK, HTTP 404 when object not found, HTTP 460 when object is not available for immediate access and requires Access Request. HTTP 40X / 50X on error.
    • getDataObjectByObjectPersistentIdentifier

      @GET @Path("/objects/objectpid/{persistentIdentifier:.+}") @Produces("application/octet-stream") public javax.ws.rs.core.Response getDataObjectByObjectPersistentIdentifier(@Context javax.ws.rs.core.HttpHeaders headers, @PathParam("persistentIdentifier") String persistentIdentifier) throws InvalidParseOperationException
      The caller is responsible to close the Response after consuming the inputStream.
      Parameters:
      headers - the http header defined parameters of request. Headers X-Qualifier and X-Version must be defined with target object qualifier and version in the object group container associated with the unit.
      persistentIdentifier - object Persistent Identifier value
      Returns:
      object content as response body stream with HTTP 200 when OK, HTTP 404 when object not found, HTTP 460 when object is not available for immediate access and requires Access Request. HTTP 40X / 50X on error.
      Throws:
      InvalidParseOperationException
    • getObjectsByPersistentIdentifier

      @GET @Path("/objects/objectpid/{persistentIdentifier:.+}") @Produces("application/json") public javax.ws.rs.core.Response getObjectsByPersistentIdentifier(@PathParam("persistentIdentifier") String persistentIdentifier, com.fasterxml.jackson.databind.JsonNode queryJson)
      get Objects list based on persistent identifier
      Parameters:
      persistentIdentifier - the persistent identifier to get Object
      Returns:
      Response
    • createObjectAccessRequestByUnitId

      @POST @Path("/units/{idu}/objects/accessRequests") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response createObjectAccessRequestByUnitId(@Context javax.ws.rs.core.HttpHeaders headers, @PathParam("idu") String unitId)
      Create an access request for accessing the object of an archive unit stored on an async storage offer (tape storage offer) Access requests for objects stored on non-asynchronous storage offers does NOT require Access Request creation. The status of returned Access Requests should be monitoring periodically (typically every few minutes) to check the availability of data. Once an Access Request status is AccessRequestStatus.READY, the data can be downloaded within the Access Request expiration delay defined in the tape storage offer configuration by the administrator. CAUTION : After successful download of object, caller SHOULD remove the Access Request to free up disk resources on tape storage offer.
      Parameters:
      headers - the http header defined parameters of request. Headers X-Qualifier and X-Version must be defined with target object qualifier and version in the object group container associated with the unit.
      unitId - the id of archive unit
      Returns:
      HTTP 200 with RequestResponse body with an AccessRequestReference entry when Access Request created, or an RequestResponse when no Access Request required (synchronous storage offer). HTTP 404 when not found. HTTP 40X / 50X on error.
    • checkAccessRequestStatuses

      @GET @Path("/accessRequests/") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response checkAccessRequestStatuses(List<AccessRequestReference> accessRequestReferences)
      Bulk check of the status of a set of Access Requests. Once Access Request status is AccessRequestStatus.READY, the object is guaranteed to be available for download within the Access Request expiration delay defined in the tape storage offer configuration by the administrator. Access Requests are only visible within their tenant. Attempts to check status of Access Requests of another tenant will return a AccessRequestStatus.NOT_FOUND. Attempts to check an Access Request status for a non-asynchronous storage offer (tape storage offer) causes an HTTP 406 Not-Acceptable error code.
      Parameters:
      accessRequestReferences - the Access Requests whose status is to be checked
      Returns:
      HTTP 200 with a RequestResponse of StatusByAccessRequest entries, one per AccessRequestReference. HTTP 40X / 50X on error.
    • removeAccessRequest

      @DELETE @Path("/accessRequests/") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response removeAccessRequest(AccessRequestReference accessRequestReference)
      Removes an Access Request from an async storage offer (tape storage offer) After removing an Access Request, object in not more guaranteed to be accessible for download. Attempts to remove an Access Request from a non-asynchronous storage offer causes an HTTP 406 Not-Acceptable error code. Attempts to remove an already removed Access Request does NOT fail (idempotency). Access Requests are only visible within their tenant. Attempts to remove an Access Request of another tenant does NOT delete access request.
      Parameters:
      accessRequestReference - the access request to remove
      Returns:
      HTTP 200 on success or in case of Access Request not found (already removed, purged after timeout, non-visible from current tenant). HTTP 40x / 50x on error.
    • massUpdateUnits

      @POST @Path("/units") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response massUpdateUnits(com.fasterxml.jackson.databind.JsonNode queryJson)
      Mass update of archive units with json query.
      Parameters:
      queryJson - the mass_update query (null not allowed)
      Returns:
    • revertUpdateUnits

      @POST @Path("/revert/units") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response revertUpdateUnits(RevertUpdateOptions revertUpdateOptions)
      Revert an update of archive units with json query.
      Parameters:
      revertUpdateOptions - the revert_update query (null not allowed)
    • massUpdateUnitsRules

      @POST @Path("/units/rules") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response massUpdateUnitsRules(MassUpdateUnitRuleRequest massUpdateUnitRuleRequest)
      Mass update of archive units rules with json request.
      Parameters:
      massUpdateUnitRuleRequest - the mass update rules request (null not allowed)
      Returns:
    • bulkAtomicUpdateUnits

      @POST @Path("/units/bulk") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response bulkAtomicUpdateUnits(com.fasterxml.jackson.databind.JsonNode updateQueriesJson)
      Bulk atomic update of archive units with json queries.
      Parameters:
      updateQueriesJson - the bulk update queries (null not allowed)
      Returns:
    • startComputeInheritedRules

      @Path("/units/computedInheritedRules") @POST @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response startComputeInheritedRules(com.fasterxml.jackson.databind.JsonNode dslQuery)
    • deleteComputeInheritedRules

      @Path("/units/computedInheritedRules") @DELETE @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response deleteComputeInheritedRules(com.fasterxml.jackson.databind.JsonNode dslQuery)
    • selectUnitsWithInheritedRules

      @GET @Path("/unitsWithInheritedRules") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response selectUnitsWithInheritedRules(com.fasterxml.jackson.databind.JsonNode queryJson)
      Select units with inherited rules
      Parameters:
      queryJson - the query to get units
      Returns:
      Response
    • getObjects

      @GET @Path("/objects") @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response getObjects(com.fasterxml.jackson.databind.JsonNode queryJson)
      get Objects group list based on DSL query
      Parameters:
      queryJson - the query to get units
      Returns:
      Response
    • getAccessLog

      @Path("/storageaccesslog") @GET @Consumes("application/json") @Produces("application/octet-stream") public javax.ws.rs.core.Response getAccessLog(com.fasterxml.jackson.databind.JsonNode params)
    • startPreservation

      @Path("/preservation") @POST @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response startPreservation(PreservationRequest preservationRequest)
    • deleteGotVersions

      @Path("/deleteGotVersions") @POST @Consumes("application/json") @Produces("application/json") public javax.ws.rs.core.Response deleteGotVersions(DeleteGotVersionsRequest deleteGotVersionsRequest)