{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DuplicateRecordFields #-}

module Hercules.API.Agent.Socket.AgentPayload where

import Hercules.API.Agent.LifeCycle.StartInfo (Hello)
import Hercules.API.Prelude
import Hercules.API.Task as Task

data AgentPayload
  = Hello Hello
  | Ping
  | Started Started
  | Cancelled Cancelled
  deriving ((forall x. AgentPayload -> Rep AgentPayload x)
-> (forall x. Rep AgentPayload x -> AgentPayload)
-> Generic AgentPayload
forall x. Rep AgentPayload x -> AgentPayload
forall x. AgentPayload -> Rep AgentPayload x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AgentPayload x -> AgentPayload
$cfrom :: forall x. AgentPayload -> Rep AgentPayload x
Generic, Int -> AgentPayload -> ShowS
[AgentPayload] -> ShowS
AgentPayload -> String
(Int -> AgentPayload -> ShowS)
-> (AgentPayload -> String)
-> ([AgentPayload] -> ShowS)
-> Show AgentPayload
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AgentPayload] -> ShowS
$cshowList :: [AgentPayload] -> ShowS
show :: AgentPayload -> String
$cshow :: AgentPayload -> String
showsPrec :: Int -> AgentPayload -> ShowS
$cshowsPrec :: Int -> AgentPayload -> ShowS
Show, AgentPayload -> AgentPayload -> Bool
(AgentPayload -> AgentPayload -> Bool)
-> (AgentPayload -> AgentPayload -> Bool) -> Eq AgentPayload
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AgentPayload -> AgentPayload -> Bool
$c/= :: AgentPayload -> AgentPayload -> Bool
== :: AgentPayload -> AgentPayload -> Bool
$c== :: AgentPayload -> AgentPayload -> Bool
Eq, AgentPayload -> ()
(AgentPayload -> ()) -> NFData AgentPayload
forall a. (a -> ()) -> NFData a
rnf :: AgentPayload -> ()
$crnf :: AgentPayload -> ()
NFData, [AgentPayload] -> Encoding
[AgentPayload] -> Value
AgentPayload -> Encoding
AgentPayload -> Value
(AgentPayload -> Value)
-> (AgentPayload -> Encoding)
-> ([AgentPayload] -> Value)
-> ([AgentPayload] -> Encoding)
-> ToJSON AgentPayload
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [AgentPayload] -> Encoding
$ctoEncodingList :: [AgentPayload] -> Encoding
toJSONList :: [AgentPayload] -> Value
$ctoJSONList :: [AgentPayload] -> Value
toEncoding :: AgentPayload -> Encoding
$ctoEncoding :: AgentPayload -> Encoding
toJSON :: AgentPayload -> Value
$ctoJSON :: AgentPayload -> Value
ToJSON, Value -> Parser [AgentPayload]
Value -> Parser AgentPayload
(Value -> Parser AgentPayload)
-> (Value -> Parser [AgentPayload]) -> FromJSON AgentPayload
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [AgentPayload]
$cparseJSONList :: Value -> Parser [AgentPayload]
parseJSON :: Value -> Parser AgentPayload
$cparseJSON :: Value -> Parser AgentPayload
FromJSON)

data Started = MkStarted {Started -> Id (Task Any)
taskId :: Id (Task Task.Any)}
  deriving ((forall x. Started -> Rep Started x)
-> (forall x. Rep Started x -> Started) -> Generic Started
forall x. Rep Started x -> Started
forall x. Started -> Rep Started x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Started x -> Started
$cfrom :: forall x. Started -> Rep Started x
Generic, Int -> Started -> ShowS
[Started] -> ShowS
Started -> String
(Int -> Started -> ShowS)
-> (Started -> String) -> ([Started] -> ShowS) -> Show Started
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Started] -> ShowS
$cshowList :: [Started] -> ShowS
show :: Started -> String
$cshow :: Started -> String
showsPrec :: Int -> Started -> ShowS
$cshowsPrec :: Int -> Started -> ShowS
Show, Started -> Started -> Bool
(Started -> Started -> Bool)
-> (Started -> Started -> Bool) -> Eq Started
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Started -> Started -> Bool
$c/= :: Started -> Started -> Bool
== :: Started -> Started -> Bool
$c== :: Started -> Started -> Bool
Eq, Started -> ()
(Started -> ()) -> NFData Started
forall a. (a -> ()) -> NFData a
rnf :: Started -> ()
$crnf :: Started -> ()
NFData, [Started] -> Encoding
[Started] -> Value
Started -> Encoding
Started -> Value
(Started -> Value)
-> (Started -> Encoding)
-> ([Started] -> Value)
-> ([Started] -> Encoding)
-> ToJSON Started
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [Started] -> Encoding
$ctoEncodingList :: [Started] -> Encoding
toJSONList :: [Started] -> Value
$ctoJSONList :: [Started] -> Value
toEncoding :: Started -> Encoding
$ctoEncoding :: Started -> Encoding
toJSON :: Started -> Value
$ctoJSON :: Started -> Value
ToJSON, Value -> Parser [Started]
Value -> Parser Started
(Value -> Parser Started)
-> (Value -> Parser [Started]) -> FromJSON Started
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [Started]
$cparseJSONList :: Value -> Parser [Started]
parseJSON :: Value -> Parser Started
$cparseJSON :: Value -> Parser Started
FromJSON)

data Cancelled = MkCancelled {Cancelled -> Id (Task Any)
taskId :: Id (Task Task.Any)}
  deriving ((forall x. Cancelled -> Rep Cancelled x)
-> (forall x. Rep Cancelled x -> Cancelled) -> Generic Cancelled
forall x. Rep Cancelled x -> Cancelled
forall x. Cancelled -> Rep Cancelled x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Cancelled x -> Cancelled
$cfrom :: forall x. Cancelled -> Rep Cancelled x
Generic, Int -> Cancelled -> ShowS
[Cancelled] -> ShowS
Cancelled -> String
(Int -> Cancelled -> ShowS)
-> (Cancelled -> String)
-> ([Cancelled] -> ShowS)
-> Show Cancelled
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Cancelled] -> ShowS
$cshowList :: [Cancelled] -> ShowS
show :: Cancelled -> String
$cshow :: Cancelled -> String
showsPrec :: Int -> Cancelled -> ShowS
$cshowsPrec :: Int -> Cancelled -> ShowS
Show, Cancelled -> Cancelled -> Bool
(Cancelled -> Cancelled -> Bool)
-> (Cancelled -> Cancelled -> Bool) -> Eq Cancelled
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Cancelled -> Cancelled -> Bool
$c/= :: Cancelled -> Cancelled -> Bool
== :: Cancelled -> Cancelled -> Bool
$c== :: Cancelled -> Cancelled -> Bool
Eq, Cancelled -> ()
(Cancelled -> ()) -> NFData Cancelled
forall a. (a -> ()) -> NFData a
rnf :: Cancelled -> ()
$crnf :: Cancelled -> ()
NFData, [Cancelled] -> Encoding
[Cancelled] -> Value
Cancelled -> Encoding
Cancelled -> Value
(Cancelled -> Value)
-> (Cancelled -> Encoding)
-> ([Cancelled] -> Value)
-> ([Cancelled] -> Encoding)
-> ToJSON Cancelled
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [Cancelled] -> Encoding
$ctoEncodingList :: [Cancelled] -> Encoding
toJSONList :: [Cancelled] -> Value
$ctoJSONList :: [Cancelled] -> Value
toEncoding :: Cancelled -> Encoding
$ctoEncoding :: Cancelled -> Encoding
toJSON :: Cancelled -> Value
$ctoJSON :: Cancelled -> Value
ToJSON, Value -> Parser [Cancelled]
Value -> Parser Cancelled
(Value -> Parser Cancelled)
-> (Value -> Parser [Cancelled]) -> FromJSON Cancelled
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [Cancelled]
$cparseJSONList :: Value -> Parser [Cancelled]
parseJSON :: Value -> Parser Cancelled
$cparseJSON :: Value -> Parser Cancelled
FromJSON)