{-# 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
$cfrom :: forall x. AgentPayload -> Rep AgentPayload x
from :: forall x. AgentPayload -> Rep AgentPayload x
$cto :: forall x. Rep AgentPayload x -> AgentPayload
to :: forall x. Rep AgentPayload x -> AgentPayload
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
$cshowsPrec :: Int -> AgentPayload -> ShowS
showsPrec :: Int -> AgentPayload -> ShowS
$cshow :: AgentPayload -> String
show :: AgentPayload -> String
$cshowList :: [AgentPayload] -> ShowS
showList :: [AgentPayload] -> ShowS
Show, AgentPayload -> AgentPayload -> Bool
(AgentPayload -> AgentPayload -> Bool)
-> (AgentPayload -> AgentPayload -> Bool) -> Eq AgentPayload
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AgentPayload -> AgentPayload -> Bool
== :: AgentPayload -> AgentPayload -> Bool
$c/= :: AgentPayload -> AgentPayload -> Bool
/= :: AgentPayload -> AgentPayload -> Bool
Eq, AgentPayload -> ()
(AgentPayload -> ()) -> NFData AgentPayload
forall a. (a -> ()) -> NFData a
$crnf :: AgentPayload -> ()
rnf :: AgentPayload -> ()
NFData, [AgentPayload] -> Value
[AgentPayload] -> Encoding
AgentPayload -> Value
AgentPayload -> Encoding
(AgentPayload -> Value)
-> (AgentPayload -> Encoding)
-> ([AgentPayload] -> Value)
-> ([AgentPayload] -> Encoding)
-> ToJSON AgentPayload
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: AgentPayload -> Value
toJSON :: AgentPayload -> Value
$ctoEncoding :: AgentPayload -> Encoding
toEncoding :: AgentPayload -> Encoding
$ctoJSONList :: [AgentPayload] -> Value
toJSONList :: [AgentPayload] -> Value
$ctoEncodingList :: [AgentPayload] -> Encoding
toEncodingList :: [AgentPayload] -> Encoding
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
$cparseJSON :: Value -> Parser AgentPayload
parseJSON :: Value -> Parser AgentPayload
$cparseJSONList :: Value -> Parser [AgentPayload]
parseJSONList :: 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
$cfrom :: forall x. Started -> Rep Started x
from :: forall x. Started -> Rep Started x
$cto :: forall x. Rep Started x -> Started
to :: forall x. Rep Started x -> Started
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
$cshowsPrec :: Int -> Started -> ShowS
showsPrec :: Int -> Started -> ShowS
$cshow :: Started -> String
show :: Started -> String
$cshowList :: [Started] -> ShowS
showList :: [Started] -> ShowS
Show, Started -> Started -> Bool
(Started -> Started -> Bool)
-> (Started -> Started -> Bool) -> Eq Started
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Started -> Started -> Bool
== :: Started -> Started -> Bool
$c/= :: Started -> Started -> Bool
/= :: Started -> Started -> Bool
Eq, Started -> ()
(Started -> ()) -> NFData Started
forall a. (a -> ()) -> NFData a
$crnf :: Started -> ()
rnf :: Started -> ()
NFData, [Started] -> Value
[Started] -> Encoding
Started -> Value
Started -> Encoding
(Started -> Value)
-> (Started -> Encoding)
-> ([Started] -> Value)
-> ([Started] -> Encoding)
-> ToJSON Started
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: Started -> Value
toJSON :: Started -> Value
$ctoEncoding :: Started -> Encoding
toEncoding :: Started -> Encoding
$ctoJSONList :: [Started] -> Value
toJSONList :: [Started] -> Value
$ctoEncodingList :: [Started] -> Encoding
toEncodingList :: [Started] -> Encoding
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
$cparseJSON :: Value -> Parser Started
parseJSON :: Value -> Parser Started
$cparseJSONList :: Value -> Parser [Started]
parseJSONList :: 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
$cfrom :: forall x. Cancelled -> Rep Cancelled x
from :: forall x. Cancelled -> Rep Cancelled x
$cto :: forall x. Rep Cancelled x -> Cancelled
to :: forall x. Rep Cancelled x -> Cancelled
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
$cshowsPrec :: Int -> Cancelled -> ShowS
showsPrec :: Int -> Cancelled -> ShowS
$cshow :: Cancelled -> String
show :: Cancelled -> String
$cshowList :: [Cancelled] -> ShowS
showList :: [Cancelled] -> ShowS
Show, Cancelled -> Cancelled -> Bool
(Cancelled -> Cancelled -> Bool)
-> (Cancelled -> Cancelled -> Bool) -> Eq Cancelled
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Cancelled -> Cancelled -> Bool
== :: Cancelled -> Cancelled -> Bool
$c/= :: Cancelled -> Cancelled -> Bool
/= :: Cancelled -> Cancelled -> Bool
Eq, Cancelled -> ()
(Cancelled -> ()) -> NFData Cancelled
forall a. (a -> ()) -> NFData a
$crnf :: Cancelled -> ()
rnf :: Cancelled -> ()
NFData, [Cancelled] -> Value
[Cancelled] -> Encoding
Cancelled -> Value
Cancelled -> Encoding
(Cancelled -> Value)
-> (Cancelled -> Encoding)
-> ([Cancelled] -> Value)
-> ([Cancelled] -> Encoding)
-> ToJSON Cancelled
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: Cancelled -> Value
toJSON :: Cancelled -> Value
$ctoEncoding :: Cancelled -> Encoding
toEncoding :: Cancelled -> Encoding
$ctoJSONList :: [Cancelled] -> Value
toJSONList :: [Cancelled] -> Value
$ctoEncodingList :: [Cancelled] -> Encoding
toEncodingList :: [Cancelled] -> Encoding
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
$cparseJSON :: Value -> Parser Cancelled
parseJSON :: Value -> Parser Cancelled
$cparseJSONList :: Value -> Parser [Cancelled]
parseJSONList :: Value -> Parser [Cancelled]
FromJSON)