{-# LANGUAGE DataKinds #-}
module TahoeLAFS.Storage.Client (
-- General server info
version,
-- Mutable or immutable
renewLease,
-- Immutable operations
createImmutableStorageIndex,
writeImmutableShare,
readImmutableShare,
getImmutableShareNumbers,
adviseCorruptImmutableShare,
-- Mutable operations
readTestWrite,
readMutableShares,
getMutableShareNumbers,
adviseCorruptMutableShare,
) where
import Data.Proxy
import Servant
import Servant.Client (
client,
)
import TahoeLAFS.Storage.API (
StorageAPI,
)
newApi :: Proxy StorageAPI
newApi = Proxy
( version
:<|> renewLease
:<|> createImmutableStorageIndex
:<|> writeImmutableShare
:<|> readImmutableShare
:<|> getImmutableShareNumbers
:<|> adviseCorruptImmutableShare
:<|> readTestWrite
:<|> readMutableShares
:<|> getMutableShareNumbers
:<|> adviseCorruptMutableShare
) = client newApi