{-# 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 import Servant.API.Generic data TasksAPI auth f = TasksAPI { forall auth f. TasksAPI auth f -> f :- ("tasks" :> (auth :> Post '[JSON] (Maybe (Task Any)))) tasksReady :: f :- "tasks" :> auth :> Post '[JSON] (Maybe (Task.Task Task.Any)), forall auth f. TasksAPI auth f -> f :- ("tasks" :> (Capture "taskId" (Id (Task Any)) :> (ReqBody '[JSON] TaskStatus :> (auth :> Post '[JSON] NoContent)))) tasksSetStatus :: f :- "tasks" :> Capture "taskId" (Id (Task.Task Task.Any)) :> ReqBody '[JSON] TaskStatus :> auth :> Post '[JSON] NoContent, forall auth f. TasksAPI auth f -> f :- ("tasks" :> ("log" :> (ReqBody '[JSON] [Object] :> (auth :> Post '[JSON] NoContent)))) postLog :: f :- "tasks" :> "log" :> ReqBody '[JSON] [Object] :> auth :> Post '[JSON] NoContent } deriving ((forall x. TasksAPI auth f -> Rep (TasksAPI auth f) x) -> (forall x. Rep (TasksAPI auth f) x -> TasksAPI auth f) -> Generic (TasksAPI auth f) forall x. Rep (TasksAPI auth f) x -> TasksAPI auth f forall x. TasksAPI auth f -> Rep (TasksAPI auth f) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall auth f x. Rep (TasksAPI auth f) x -> TasksAPI auth f forall auth f x. TasksAPI auth f -> Rep (TasksAPI auth f) x $cto :: forall auth f x. Rep (TasksAPI auth f) x -> TasksAPI auth f $cfrom :: forall auth f x. TasksAPI auth f -> Rep (TasksAPI auth f) x Generic)