class ConnectionImpl extends AbstractConnection {

    @Override
    public StorageMetadataResult getMetadatas(StorageGetMetadataRequest request) throws StorageDriverException {
        ParametersChecker.checkParameter(REQUEST_IS_A_MANDATORY_PARAMETER, request);
        ParametersChecker.checkParameter(TENANT_IS_A_MANDATORY_PARAMETER, request.getTenantId());
        ParametersChecker.checkParameter(FOLDER_IS_A_MANDATORY_PARAMETER, request.getType());
        ParametersChecker.checkParameter(GUID_IS_A_MANDATORY_PARAMETER, request.getGuid());

        VitamRequestBuilder requestBuilder = get()
            .withPath(
                OBJECTS_PATH + "/" + DataCategory.getByFolder(request.getType()) + "/" + request.getGuid() + METADATAS)
            .withHeader(GlobalDataRest.X_TENANT_ID, request.getTenantId())
            .withHeader(GlobalDataRest.X_OFFER_NO_CACHE, request.isNoCache())
            .withJsonAccept();

        try (Response response = make(requestBuilder)) {
            checkStorageException(response);
            return response.readEntity(StorageMetadataResult.class);
        } catch (VitamClientInternalException e) {
            LOGGER.error(VitamCodeHelper.getLogMessage(VitamCode.STORAGE_TECHNICAL_INTERNAL_ERROR), e);
            throw new StorageDriverException(getDriverName(),
                VitamCodeHelper.getLogMessage(VitamCode.STORAGE_TECHNICAL_INTERNAL_ERROR), true, e);
        }
    }

      ConnectionImpl(String driverName, VitamClientFactoryInterface<? extends AbstractConnection> factory);

}