-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Client to Koofr API
--   
--   Koofr is a storage as a service provider located in Europe. See
--   <a>https://koofr.eu</a> for more info. This is an API wrapper that
--   simplifies working with files. Filesystem roots are called mounts and
--   cannot be manipulated through api. The API is contained in a type
--   class in order to allow mocking. Mock runner and wider API coverage
--   coming soon.
@package koofr-client
@version 1.0.0.3

module Koofr.File
data FileList
FileList :: [File] -> FileList
[fileListFiles] :: FileList -> [File]
data File
File :: String -> String -> Integer -> Integer -> String -> Maybe String -> File
[fileName] :: File -> String
[fileType] :: File -> String
[fileModified] :: File -> Integer
[fileSize] :: File -> Integer
[fileContentType] :: File -> String
[hash] :: File -> Maybe String
instance Data.Aeson.Types.ToJSON.ToJSON Koofr.File.FileList
instance Data.Aeson.Types.FromJSON.FromJSON Koofr.File.FileList
instance Data.Aeson.Types.ToJSON.ToJSON Koofr.File.File
instance Data.Aeson.Types.FromJSON.FromJSON Koofr.File.File
instance GHC.Show.Show Koofr.File.FileList
instance GHC.Classes.Eq Koofr.File.FileList
instance GHC.Show.Show Koofr.File.File
instance GHC.Classes.Eq Koofr.File.File

module Koofr.Mount
type MountId = String
data Mounts
Mounts :: [Mount] -> Mounts
[mountsMounts] :: Mounts -> [Mount]
data Mount
Mount :: MountId -> String -> String -> Bool -> MountUser -> [MountUser] -> [MountUser] -> Bool -> Permissions -> Integer -> Integer -> Integer -> Bool -> Bool -> Bool -> Bool -> Mount
[mountId] :: Mount -> MountId
[mountName] :: Mount -> String
[mountType] :: Mount -> String
[mountOnline] :: Mount -> Bool
[mountOwner] :: Mount -> MountUser
[mountUsers] :: Mount -> [MountUser]
[mountGroups] :: Mount -> [MountUser]
[mountIsShared] :: Mount -> Bool
[mountPermissions] :: Mount -> Permissions
[mountSpaceTotal] :: Mount -> Integer
[mountSpaceUsed] :: Mount -> Integer
[mountVersion] :: Mount -> Integer
[mountIsPrimary] :: Mount -> Bool
[mountCanWrite] :: Mount -> Bool
[mountCanUpload] :: Mount -> Bool
[mountOverQuota] :: Mount -> Bool
data MountUser
MountUser :: String -> String -> Maybe String -> Permissions -> Maybe Bool -> MountUser
[mountUserId] :: MountUser -> String
[mountUserName] :: MountUser -> String
[mountUserEmail] :: MountUser -> Maybe String
[mountUserPermissions] :: MountUser -> Permissions
[mountUserIsGroup] :: MountUser -> Maybe Bool
data Permissions
Permissions :: Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Permissions
[permissionRead] :: Permissions -> Bool
[permissionOwner] :: Permissions -> Bool
[permissionMount] :: Permissions -> Bool
[permissionCreate_Receiver] :: Permissions -> Bool
[permissionComment] :: Permissions -> Bool
[permissionWrite] :: Permissions -> Bool
[permissionCreate_Link] :: Permissions -> Bool
instance Data.Aeson.Types.ToJSON.ToJSON Koofr.Mount.Mounts
instance Data.Aeson.Types.FromJSON.FromJSON Koofr.Mount.Mounts
instance Data.Aeson.Types.ToJSON.ToJSON Koofr.Mount.Mount
instance Data.Aeson.Types.FromJSON.FromJSON Koofr.Mount.Mount
instance Data.Aeson.Types.ToJSON.ToJSON Koofr.Mount.MountUser
instance Data.Aeson.Types.FromJSON.FromJSON Koofr.Mount.MountUser
instance Data.Aeson.Types.ToJSON.ToJSON Koofr.Mount.Permissions
instance Data.Aeson.Types.FromJSON.FromJSON Koofr.Mount.Permissions
instance GHC.Show.Show Koofr.Mount.Mounts
instance GHC.Classes.Eq Koofr.Mount.Mounts
instance GHC.Show.Show Koofr.Mount.Mount
instance GHC.Classes.Eq Koofr.Mount.Mount
instance GHC.Show.Show Koofr.Mount.MountUser
instance GHC.Classes.Eq Koofr.Mount.MountUser
instance GHC.Show.Show Koofr.Mount.Permissions
instance GHC.Classes.Eq Koofr.Mount.Permissions

module Koofr.Client
data Client
Client :: Host -> String -> Manager -> Client
[clientHost] :: Client -> Host
[clientToken] :: Client -> String
[clientManager] :: Client -> Manager
runClient :: Client -> ReaderT Client m a -> m a
type Download = (IO ByteString, IO ())
type Upload = Part
type Name = String

-- | Everything from the host to the query string.
--   
--   Since 0.1.0
path :: Request -> ByteString
createNewAuthToken :: Manager -> Host -> String -> String -> IO (Maybe String)
createDefaultManager :: IO Manager
mounts :: (MonadIO m, MonadReader Client m) => m [Mount]
mountInfo :: (MonadIO m, MonadReader Client m) => MountId -> m Mount
filesInfo :: (MonadIO m, MonadReader Client m) => MountId -> Path -> m File
filesList :: (MonadIO m, MonadReader Client m) => MountId -> Path -> m [File]
filesNewFolder :: (MonadIO m, MonadReader Client m) => MountId -> Path -> Name -> m ()
filesRemove :: (MonadIO m, MonadReader Client m) => MountId -> Path -> m ()
filesRename :: (MonadIO m, MonadReader Client m) => MountId -> Path -> Name -> m ()
filesCopy :: (MonadIO m, MonadReader Client m) => MountId -> Path -> MountId -> Path -> m ()
filesMove :: (MonadIO m, MonadReader Client m) => MountId -> Path -> MountId -> Path -> m ()
filesDownload :: (MonadIO m, MonadReader Client m) => MountId -> Path -> m Download
filesUpload :: (MonadIO m, MonadReader Client m) => MountId -> Path -> Upload -> m ()
