{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE StandaloneDeriving #-}
module Hercules.API.Agent.Evaluate.EvaluateTask where
import Data.Aeson
( FromJSON,
ToJSON,
)
import Data.Map (Map)
import Data.Swagger (ToSchema)
import Data.Text (Text)
import GHC.Generics (Generic)
import Hercules.API.Id
import Hercules.API.Task (Task)
import Prelude
data EvaluateTask
= EvaluateTask
{ id :: Id (Task EvaluateTask),
primaryInput :: Text,
otherInputs :: Map Identifier Text,
autoArguments :: Map Text (SubPathOf Identifier),
nixPath :: [NixPathElement (SubPathOf Identifier)],
logToken :: Text
}
deriving (Generic, Show, Eq, ToJSON, FromJSON, ToSchema)
type Identifier = Text
data NixPathElement a
= NixPathElement
{
prefix :: Maybe Text,
value :: a
}
deriving (Generic, Show, Eq, ToJSON, FromJSON, Functor, Foldable, Traversable)
deriving instance ToSchema a => ToSchema (NixPathElement a)
data SubPathOf a
= SubPathOf
{ path :: a,
subPath :: Maybe Text
}
deriving (Generic, Show, Eq, ToJSON, FromJSON, Functor, Foldable, Traversable)
deriving instance ToSchema a => ToSchema (SubPathOf a)