{-# LANGUAGE DeriveAnyClass #-} module Hercules.API.Agent.LifeCycle.StartInfo where import Control.Applicative import Control.Lens (at, (%~)) import qualified Data.Aeson as A import Data.Aeson.Lens (_Object) import Hercules.API.Agent.LifeCycle.AgentInfo (AgentInfo) import Hercules.API.Prelude import Hercules.API.Task data Hello = Hello { Hello -> AgentInfo agentInfo :: AgentInfo, Hello -> StartInfo startInfo :: StartInfo, Hello -> [Id (Task Any)] tasksInProgress :: [Id (Task Any)] } deriving ((forall x. Hello -> Rep Hello x) -> (forall x. Rep Hello x -> Hello) -> Generic Hello forall x. Rep Hello x -> Hello forall x. Hello -> Rep Hello x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. Hello -> Rep Hello x from :: forall x. Hello -> Rep Hello x $cto :: forall x. Rep Hello x -> Hello to :: forall x. Rep Hello x -> Hello Generic, Int -> Hello -> ShowS [Hello] -> ShowS Hello -> String (Int -> Hello -> ShowS) -> (Hello -> String) -> ([Hello] -> ShowS) -> Show Hello forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> Hello -> ShowS showsPrec :: Int -> Hello -> ShowS $cshow :: Hello -> String show :: Hello -> String $cshowList :: [Hello] -> ShowS showList :: [Hello] -> ShowS Show, Hello -> Hello -> Bool (Hello -> Hello -> Bool) -> (Hello -> Hello -> Bool) -> Eq Hello forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: Hello -> Hello -> Bool == :: Hello -> Hello -> Bool $c/= :: Hello -> Hello -> Bool /= :: Hello -> Hello -> Bool Eq, Hello -> () (Hello -> ()) -> NFData Hello forall a. (a -> ()) -> NFData a $crnf :: Hello -> () rnf :: Hello -> () NFData, [Hello] -> Value [Hello] -> Encoding Hello -> Value Hello -> Encoding (Hello -> Value) -> (Hello -> Encoding) -> ([Hello] -> Value) -> ([Hello] -> Encoding) -> ToJSON Hello forall a. (a -> Value) -> (a -> Encoding) -> ([a] -> Value) -> ([a] -> Encoding) -> ToJSON a $ctoJSON :: Hello -> Value toJSON :: Hello -> Value $ctoEncoding :: Hello -> Encoding toEncoding :: Hello -> Encoding $ctoJSONList :: [Hello] -> Value toJSONList :: [Hello] -> Value $ctoEncodingList :: [Hello] -> Encoding toEncodingList :: [Hello] -> Encoding ToJSON) instance FromJSON Hello where parseJSON :: Value -> Parser Hello parseJSON = Options -> Value -> Parser Hello forall a. (Generic a, GFromJSON Zero (Rep a)) => Options -> Value -> Parser a A.genericParseJSON Options A.defaultOptions (Value -> Parser Hello) -> (Value -> Value) -> Value -> Parser Hello forall b c a. (b -> c) -> (a -> b) -> a -> c . Value -> Value fixup where fixup :: A.Value -> A.Value fixup :: Value -> Value fixup = (KeyMap Value -> Identity (KeyMap Value)) -> Value -> Identity Value forall t. AsValue t => Prism' t (KeyMap Value) Prism' Value (KeyMap Value) _Object ((KeyMap Value -> Identity (KeyMap Value)) -> Value -> Identity Value) -> ((Maybe Value -> Identity (Maybe Value)) -> KeyMap Value -> Identity (KeyMap Value)) -> (Maybe Value -> Identity (Maybe Value)) -> Value -> Identity Value forall b c a. (b -> c) -> (a -> b) -> a -> c . Index (KeyMap Value) -> Lens' (KeyMap Value) (Maybe (IxValue (KeyMap Value))) forall m. At m => Index m -> Lens' m (Maybe (IxValue m)) at Key Index (KeyMap Value) "tasksInProgress" ((Maybe Value -> Identity (Maybe Value)) -> Value -> Identity Value) -> (Maybe Value -> Maybe Value) -> Value -> Value forall s t a b. ASetter s t a b -> (a -> b) -> s -> t %~ (Maybe Value -> Maybe Value -> Maybe Value forall a. Maybe a -> Maybe a -> Maybe a forall (f :: * -> *) a. Alternative f => f a -> f a -> f a <|> Value -> Maybe Value forall a. a -> Maybe a Just (Array -> Value A.Array Array forall a. Monoid a => a mempty)) data StartInfo = StartInfo { StartInfo -> Id StartInfo id :: Id StartInfo, StartInfo -> UTCTime startTime :: UTCTime } deriving ((forall x. StartInfo -> Rep StartInfo x) -> (forall x. Rep StartInfo x -> StartInfo) -> Generic StartInfo forall x. Rep StartInfo x -> StartInfo forall x. StartInfo -> Rep StartInfo x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. StartInfo -> Rep StartInfo x from :: forall x. StartInfo -> Rep StartInfo x $cto :: forall x. Rep StartInfo x -> StartInfo to :: forall x. Rep StartInfo x -> StartInfo Generic, Int -> StartInfo -> ShowS [StartInfo] -> ShowS StartInfo -> String (Int -> StartInfo -> ShowS) -> (StartInfo -> String) -> ([StartInfo] -> ShowS) -> Show StartInfo forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> StartInfo -> ShowS showsPrec :: Int -> StartInfo -> ShowS $cshow :: StartInfo -> String show :: StartInfo -> String $cshowList :: [StartInfo] -> ShowS showList :: [StartInfo] -> ShowS Show, StartInfo -> StartInfo -> Bool (StartInfo -> StartInfo -> Bool) -> (StartInfo -> StartInfo -> Bool) -> Eq StartInfo forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: StartInfo -> StartInfo -> Bool == :: StartInfo -> StartInfo -> Bool $c/= :: StartInfo -> StartInfo -> Bool /= :: StartInfo -> StartInfo -> Bool Eq, StartInfo -> () (StartInfo -> ()) -> NFData StartInfo forall a. (a -> ()) -> NFData a $crnf :: StartInfo -> () rnf :: StartInfo -> () NFData, [StartInfo] -> Value [StartInfo] -> Encoding StartInfo -> Value StartInfo -> Encoding (StartInfo -> Value) -> (StartInfo -> Encoding) -> ([StartInfo] -> Value) -> ([StartInfo] -> Encoding) -> ToJSON StartInfo forall a. (a -> Value) -> (a -> Encoding) -> ([a] -> Value) -> ([a] -> Encoding) -> ToJSON a $ctoJSON :: StartInfo -> Value toJSON :: StartInfo -> Value $ctoEncoding :: StartInfo -> Encoding toEncoding :: StartInfo -> Encoding $ctoJSONList :: [StartInfo] -> Value toJSONList :: [StartInfo] -> Value $ctoEncodingList :: [StartInfo] -> Encoding toEncodingList :: [StartInfo] -> Encoding ToJSON, Value -> Parser [StartInfo] Value -> Parser StartInfo (Value -> Parser StartInfo) -> (Value -> Parser [StartInfo]) -> FromJSON StartInfo forall a. (Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a $cparseJSON :: Value -> Parser StartInfo parseJSON :: Value -> Parser StartInfo $cparseJSONList :: Value -> Parser [StartInfo] parseJSONList :: Value -> Parser [StartInfo] FromJSON)