package com.kryptnostic.sharing.v1; import java.io.IOException; import java.util.Set; import java.util.UUID; import com.google.common.base.Optional; import com.kryptnostic.kodex.v1.exceptions.types.ResourceNotFoundException; import com.kryptnostic.kodex.v1.exceptions.types.SecurityConfigurationException; import com.kryptnostic.v2.storage.models.VersionedObjectKey; public interface SharingClient { void unshareObjectWithUsers( VersionedObjectKey objectId, Set<UUID> users ); Set<VersionedObjectKey> processIncomingShares() throws IOException, SecurityConfigurationException; int getIncomingSharesCount(); void shareObjectWithUsers( VersionedObjectKey objectId, Set<UUID> users ) throws ResourceNotFoundException; Optional<byte[]> getSearchPair( VersionedObjectKey objectId ) throws ResourceNotFoundException; Optional<byte[]> getSharingPair( VersionedObjectKey objectId ) throws ResourceNotFoundException; void shareObjectWithUsers( VersionedObjectKey objectId, Set<UUID> users, Optional<byte[]> sharingPair ) throws ResourceNotFoundException; }