{-# 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. 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 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 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 -> () forall a. (a -> ()) -> NFData a rnf :: Hello -> () $crnf :: Hello -> () NFData, [Hello] -> Encoding [Hello] -> Value Hello -> Encoding Hello -> Value 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 = forall a. (Generic a, GFromJSON Zero (Rep a)) => Options -> Value -> Parser a A.genericParseJSON Options A.defaultOptions forall b c a. (b -> c) -> (a -> b) -> a -> c . Value -> Value fixup where fixup :: A.Value -> A.Value fixup :: Value -> Value fixup = forall t. AsValue t => Prism' t (KeyMap Value) _Object forall b c a. (b -> c) -> (a -> b) -> a -> c . forall m. At m => Index m -> Lens' m (Maybe (IxValue m)) at Key "tasksInProgress" forall s t a b. ASetter s t a b -> (a -> b) -> s -> t %~ (forall (f :: * -> *) a. Alternative f => f a -> f a -> f a <|> forall a. a -> Maybe a Just (Array -> Value A.Array forall a. Monoid a => a mempty)) data StartInfo = StartInfo { StartInfo -> Id StartInfo id :: Id StartInfo, StartInfo -> UTCTime startTime :: UTCTime } deriving (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 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 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 -> () forall a. (a -> ()) -> NFData a rnf :: StartInfo -> () $crnf :: StartInfo -> () NFData, [StartInfo] -> Encoding [StartInfo] -> Value StartInfo -> Encoding StartInfo -> Value 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 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)