{-# 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. 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
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
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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: AgentPayload -> ()
$crnf :: AgentPayload -> ()
NFData, [AgentPayload] -> Encoding
[AgentPayload] -> Value
AgentPayload -> Encoding
AgentPayload -> Value
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
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. 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
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
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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: Started -> ()
$crnf :: Started -> ()
NFData, [Started] -> Encoding
[Started] -> Value
Started -> Encoding
Started -> Value
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
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. 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
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
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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: Cancelled -> ()
$crnf :: Cancelled -> ()
NFData, [Cancelled] -> Encoding
[Cancelled] -> Value
Cancelled -> Encoding
Cancelled -> Value
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
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)