{-# 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 $cto :: forall x. Rep Hello x -> Hello $cfrom :: forall x. Hello -> Rep Hello x 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 showList :: [Hello] -> ShowS $cshowList :: [Hello] -> ShowS show :: Hello -> String $cshow :: Hello -> String showsPrec :: Int -> Hello -> ShowS $cshowsPrec :: Int -> Hello -> ShowS Show, Hello -> Hello -> Bool (Hello -> Hello -> Bool) -> (Hello -> Hello -> Bool) -> Eq Hello forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Hello -> Hello -> Bool $c/= :: Hello -> Hello -> Bool == :: Hello -> Hello -> Bool $c== :: Hello -> Hello -> Bool Eq, Hello -> () (Hello -> ()) -> NFData Hello forall a. (a -> ()) -> NFData a rnf :: Hello -> () $crnf :: Hello -> () NFData, [Hello] -> Encoding [Hello] -> Value Hello -> Encoding Hello -> Value (Hello -> Value) -> (Hello -> Encoding) -> ([Hello] -> Value) -> ([Hello] -> Encoding) -> ToJSON Hello forall a. (a -> Value) -> (a -> Encoding) -> ([a] -> Value) -> ([a] -> Encoding) -> ToJSON a toEncodingList :: [Hello] -> Encoding $ctoEncodingList :: [Hello] -> Encoding toJSONList :: [Hello] -> Value $ctoJSONList :: [Hello] -> Value toEncoding :: Hello -> Encoding $ctoEncoding :: Hello -> Encoding toJSON :: Hello -> Value $ctoJSON :: Hello -> Value 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 = (HashMap Text Value -> Identity (HashMap Text Value)) -> Value -> Identity Value forall t. AsValue t => Prism' t (HashMap Text Value) _Object ((HashMap Text Value -> Identity (HashMap Text Value)) -> Value -> Identity Value) -> ((Maybe Value -> Identity (Maybe Value)) -> HashMap Text Value -> Identity (HashMap Text Value)) -> (Maybe Value -> Identity (Maybe Value)) -> Value -> Identity Value forall b c a. (b -> c) -> (a -> b) -> a -> c . Index (HashMap Text Value) -> Lens' (HashMap Text Value) (Maybe (IxValue (HashMap Text Value))) forall m. At m => Index m -> Lens' m (Maybe (IxValue m)) at Index (HashMap Text 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 (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 $cto :: forall x. Rep StartInfo x -> StartInfo $cfrom :: forall x. StartInfo -> Rep StartInfo x 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 showList :: [StartInfo] -> ShowS $cshowList :: [StartInfo] -> ShowS show :: StartInfo -> String $cshow :: StartInfo -> String showsPrec :: Int -> StartInfo -> ShowS $cshowsPrec :: Int -> StartInfo -> ShowS Show, StartInfo -> StartInfo -> Bool (StartInfo -> StartInfo -> Bool) -> (StartInfo -> StartInfo -> Bool) -> Eq StartInfo forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: StartInfo -> StartInfo -> Bool $c/= :: StartInfo -> StartInfo -> Bool == :: StartInfo -> StartInfo -> Bool $c== :: StartInfo -> StartInfo -> Bool Eq, StartInfo -> () (StartInfo -> ()) -> NFData StartInfo forall a. (a -> ()) -> NFData a rnf :: StartInfo -> () $crnf :: StartInfo -> () NFData, [StartInfo] -> Encoding [StartInfo] -> Value StartInfo -> Encoding StartInfo -> Value (StartInfo -> Value) -> (StartInfo -> Encoding) -> ([StartInfo] -> Value) -> ([StartInfo] -> Encoding) -> ToJSON StartInfo forall a. (a -> Value) -> (a -> Encoding) -> ([a] -> Value) -> ([a] -> Encoding) -> ToJSON a toEncodingList :: [StartInfo] -> Encoding $ctoEncodingList :: [StartInfo] -> Encoding toJSONList :: [StartInfo] -> Value $ctoJSONList :: [StartInfo] -> Value toEncoding :: StartInfo -> Encoding $ctoEncoding :: StartInfo -> Encoding toJSON :: StartInfo -> Value $ctoJSON :: StartInfo -> Value 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 parseJSONList :: Value -> Parser [StartInfo] $cparseJSONList :: Value -> Parser [StartInfo] parseJSON :: Value -> Parser StartInfo $cparseJSON :: Value -> Parser StartInfo FromJSON)