{-# LANGUAGE DataKinds #-} module Hercules.API.Agent.Tasks where import Data.Aeson (Object) import Hercules.API.Prelude import qualified Hercules.API.Task as Task import Hercules.API.TaskStatus import Servant.API data TasksAPI auth f = TasksAPI { tasksReady :: f :- "tasks" :> auth :> Post '[JSON] (Maybe (Task.Task Task.Any)), tasksSetStatus :: f :- "tasks" :> Capture "taskId" (Id (Task.Task Task.Any)) :> ReqBody '[JSON] TaskStatus :> auth :> Post '[JSON] NoContent, postLog :: f :- "tasks" :> "log" :> ReqBody '[JSON] [Object] :> auth :> Post '[JSON] NoContent } deriving (Generic)