{-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TemplateHaskell #-} -- | Various product types. -- module Network.AWS.Wolf.Types.Product where import Data.Aeson.TH import Network.AWS.Wolf.Prelude -- | Conf -- -- SWF and S3 configuration parameters. -- data Conf = Conf { _cDomain :: Text -- ^ SWF domain. , _cBucket :: Text -- ^ S3 bucket. , _cPrefix :: Text -- ^ S3 prefix. } deriving (Show, Eq) $(makeLenses ''Conf) $(deriveJSON spinalOptions ''Conf) -- | Control -- newtype Control = Control { _cRunUid :: Text -- ^ Run uid of workflow. } deriving (Show, Eq) $(makeLenses ''Control) $(deriveJSON spinalOptions ''Control) -- | Plan Task -- -- Work task. -- data Task = Task { _tName :: Text -- ^ Name of task. , _tVersion :: Text -- ^ Version of task. , _tQueue :: Text -- ^ Queue for task. } deriving (Show, Eq) $(makeLenses ''Task) $(deriveJSON spinalOptions ''Task) -- | Plan -- -- Group of tasks. -- data Plan = Plan { _pStart :: Task -- ^ Flow task. , _pTasks :: [Task] -- ^ Worker tasks. } deriving (Show, Eq) $(makeLenses ''Plan) $(deriveJSON spinalOptions ''Plan)