class StorageClientRest extends DefaultClient implements StorageClient {

    @Override
    public BulkObjectStoreResponse bulkStoreFilesFromWorkspace(String strategyId,
        BulkObjectStoreRequest bulkObjectStoreRequest)
        throws StorageAlreadyExistsClientException, StorageNotFoundClientException, StorageServerClientException {

        Integer tenantId = ParameterHelper.getTenantParameter();
        ParametersChecker.checkParameter("Expected valid request", bulkObjectStoreRequest);
        ParametersChecker.checkParameter("Invalid digest type", bulkObjectStoreRequest.getType());
        ParametersChecker.checkParameter("Invalid workspace URIs", bulkObjectStoreRequest.getWorkspaceObjectURIs());
        ParametersChecker.checkParameter("Invalid workspace URIs",
            bulkObjectStoreRequest.getWorkspaceObjectURIs().toArray());
        ParametersChecker.checkParameter("Invalid object ids", bulkObjectStoreRequest.getObjectNames());
        ParametersChecker.checkParameter("Invalid object ids", bulkObjectStoreRequest.getObjectNames().toArray());
        if (bulkObjectStoreRequest.getObjectNames().size() != bulkObjectStoreRequest.getWorkspaceObjectURIs().size()) {
            throw new IllegalArgumentException("Object uris count do not match object ids count");
        }

        VitamRequestBuilder request = post()
            .withPath("/bulk/" + bulkObjectStoreRequest.getType().getCollectionName())
            .withHeader(GlobalDataRest.X_TENANT_ID, tenantId)
            .withHeader(GlobalDataRest.X_STRATEGY_ID, strategyId)
            .withBody(bulkObjectStoreRequest)
            .withJson();
        try (Response response = make(request)) {
            return handleCommonResponseStatus(response).readEntity(BulkObjectStoreResponse.class);
        } catch (final VitamClientInternalException e) {
            final String errorMessage =
                VitamCodeHelper.getMessageFromVitamCode(VitamCode.STORAGE_TECHNICAL_INTERNAL_ERROR);
            LOGGER.error(errorMessage, e);
            throw new StorageServerClientException(errorMessage, e);
        }
    }

      StorageClientRest(StorageClientFactory factory);

}