{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} module Hercules.API.Agent.Effect.EffectTask where import Control.Applicative import Control.Lens (at, (%~)) import qualified Data.Aeson as A import Data.Aeson.Lens (_Object) import Hercules.API.Prelude import Hercules.API.Task (Task) data EffectTask = EffectTask { EffectTask -> Id (Task EffectTask) id :: Id (Task EffectTask), EffectTask -> Text derivationPath :: Text, EffectTask -> Text logToken :: Text, EffectTask -> [Text] inputDerivationOutputPaths :: [Text], EffectTask -> Text token :: Text, EffectTask -> Map Text (Map Text Value) serverSecrets :: Map Text (Map Text A.Value), EffectTask -> Id "project" projectId :: Id "project", EffectTask -> Text projectPath :: Text, EffectTask -> Text siteName :: Text, EffectTask -> Text ownerName :: Text, EffectTask -> Text repoName :: Text, EffectTask -> Text ref :: Text, EffectTask -> Bool isDefaultBranch :: Bool } deriving ((forall x. EffectTask -> Rep EffectTask x) -> (forall x. Rep EffectTask x -> EffectTask) -> Generic EffectTask forall x. Rep EffectTask x -> EffectTask forall x. EffectTask -> Rep EffectTask x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. EffectTask -> Rep EffectTask x from :: forall x. EffectTask -> Rep EffectTask x $cto :: forall x. Rep EffectTask x -> EffectTask to :: forall x. Rep EffectTask x -> EffectTask Generic, Int -> EffectTask -> ShowS [EffectTask] -> ShowS EffectTask -> String (Int -> EffectTask -> ShowS) -> (EffectTask -> String) -> ([EffectTask] -> ShowS) -> Show EffectTask forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> EffectTask -> ShowS showsPrec :: Int -> EffectTask -> ShowS $cshow :: EffectTask -> String show :: EffectTask -> String $cshowList :: [EffectTask] -> ShowS showList :: [EffectTask] -> ShowS Show, EffectTask -> EffectTask -> Bool (EffectTask -> EffectTask -> Bool) -> (EffectTask -> EffectTask -> Bool) -> Eq EffectTask forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: EffectTask -> EffectTask -> Bool == :: EffectTask -> EffectTask -> Bool $c/= :: EffectTask -> EffectTask -> Bool /= :: EffectTask -> EffectTask -> Bool Eq, EffectTask -> () (EffectTask -> ()) -> NFData EffectTask forall a. (a -> ()) -> NFData a $crnf :: EffectTask -> () rnf :: EffectTask -> () NFData, [EffectTask] -> Value [EffectTask] -> Encoding EffectTask -> Value EffectTask -> Encoding (EffectTask -> Value) -> (EffectTask -> Encoding) -> ([EffectTask] -> Value) -> ([EffectTask] -> Encoding) -> ToJSON EffectTask forall a. (a -> Value) -> (a -> Encoding) -> ([a] -> Value) -> ([a] -> Encoding) -> ToJSON a $ctoJSON :: EffectTask -> Value toJSON :: EffectTask -> Value $ctoEncoding :: EffectTask -> Encoding toEncoding :: EffectTask -> Encoding $ctoJSONList :: [EffectTask] -> Value toJSONList :: [EffectTask] -> Value $ctoEncodingList :: [EffectTask] -> Encoding toEncodingList :: [EffectTask] -> Encoding ToJSON) instance FromJSON EffectTask where parseJSON :: Value -> Parser EffectTask parseJSON Value v = Options -> Value -> Parser EffectTask forall a. (Generic a, GFromJSON Zero (Rep a)) => Options -> Value -> Parser a A.genericParseJSON Options A.defaultOptions (Value -> Value fixup Value v) where fixup :: A.Value -> A.Value fixup :: Value -> Value fixup = (KeyMap Value -> Identity (KeyMap Value)) -> Value -> Identity Value forall t. AsValue t => Prism' t (KeyMap Value) Prism' Value (KeyMap Value) _Object ((KeyMap Value -> Identity (KeyMap Value)) -> Value -> Identity Value) -> ((Maybe Value -> Identity (Maybe Value)) -> KeyMap Value -> Identity (KeyMap Value)) -> (Maybe Value -> Identity (Maybe Value)) -> Value -> Identity Value forall b c a. (b -> c) -> (a -> b) -> a -> c . Index (KeyMap Value) -> Lens' (KeyMap Value) (Maybe (IxValue (KeyMap Value))) forall m. At m => Index m -> Lens' m (Maybe (IxValue m)) at Key Index (KeyMap Value) "serverSecrets" ((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 a. Maybe a -> Maybe a -> Maybe a forall (f :: * -> *) a. Alternative f => f a -> f a -> f a <|> Value -> Maybe Value forall a. a -> Maybe a Just ([Pair] -> Value A.object []))