{-# LANGUAGE DeriveAnyClass #-} module Hercules.API.Agent.LifeCycle.AgentInfo where import Control.Applicative import Control.Lens (at, (%~)) import qualified Data.Aeson as A import Data.Aeson.Lens (_Object) import Data.Function import Hercules.API.Prelude data AgentInfo = AgentInfo { AgentInfo -> Text hostname :: Text, AgentInfo -> Text agentVersion :: Text, AgentInfo -> Text nixVersion :: Text, AgentInfo -> Int nixClientProtocolVersion :: Int, AgentInfo -> Int nixDaemonProtocolVersion :: Int, AgentInfo -> [Text] platforms :: [Text], AgentInfo -> [Text] systemFeatures :: [Text], AgentInfo -> [Text] cachixPushCaches :: [Text], AgentInfo -> [Text] pushCaches :: [Text], AgentInfo -> [Text] substituters :: [Text], AgentInfo -> Int concurrentTasks :: Int, AgentInfo -> Map Text Value labels :: Map Text A.Value } deriving ((forall x. AgentInfo -> Rep AgentInfo x) -> (forall x. Rep AgentInfo x -> AgentInfo) -> Generic AgentInfo forall x. Rep AgentInfo x -> AgentInfo forall x. AgentInfo -> Rep AgentInfo x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. AgentInfo -> Rep AgentInfo x from :: forall x. AgentInfo -> Rep AgentInfo x $cto :: forall x. Rep AgentInfo x -> AgentInfo to :: forall x. Rep AgentInfo x -> AgentInfo Generic, Int -> AgentInfo -> ShowS [AgentInfo] -> ShowS AgentInfo -> String (Int -> AgentInfo -> ShowS) -> (AgentInfo -> String) -> ([AgentInfo] -> ShowS) -> Show AgentInfo forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> AgentInfo -> ShowS showsPrec :: Int -> AgentInfo -> ShowS $cshow :: AgentInfo -> String show :: AgentInfo -> String $cshowList :: [AgentInfo] -> ShowS showList :: [AgentInfo] -> ShowS Show, AgentInfo -> AgentInfo -> Bool (AgentInfo -> AgentInfo -> Bool) -> (AgentInfo -> AgentInfo -> Bool) -> Eq AgentInfo forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: AgentInfo -> AgentInfo -> Bool == :: AgentInfo -> AgentInfo -> Bool $c/= :: AgentInfo -> AgentInfo -> Bool /= :: AgentInfo -> AgentInfo -> Bool Eq, AgentInfo -> () (AgentInfo -> ()) -> NFData AgentInfo forall a. (a -> ()) -> NFData a $crnf :: AgentInfo -> () rnf :: AgentInfo -> () NFData, [AgentInfo] -> Value [AgentInfo] -> Encoding AgentInfo -> Value AgentInfo -> Encoding (AgentInfo -> Value) -> (AgentInfo -> Encoding) -> ([AgentInfo] -> Value) -> ([AgentInfo] -> Encoding) -> ToJSON AgentInfo forall a. (a -> Value) -> (a -> Encoding) -> ([a] -> Value) -> ([a] -> Encoding) -> ToJSON a $ctoJSON :: AgentInfo -> Value toJSON :: AgentInfo -> Value $ctoEncoding :: AgentInfo -> Encoding toEncoding :: AgentInfo -> Encoding $ctoJSONList :: [AgentInfo] -> Value toJSONList :: [AgentInfo] -> Value $ctoEncodingList :: [AgentInfo] -> Encoding toEncodingList :: [AgentInfo] -> Encoding ToJSON) instance FromJSON AgentInfo where parseJSON :: Value -> Parser AgentInfo parseJSON = Options -> Value -> Parser AgentInfo forall a. (Generic a, GFromJSON Zero (Rep a)) => Options -> Value -> Parser a A.genericParseJSON Options A.defaultOptions (Value -> Parser AgentInfo) -> (Value -> Value) -> Value -> Parser AgentInfo forall b c a. (b -> c) -> (a -> b) -> a -> c . Value -> Value fixup where fixup :: A.Value -> A.Value fixup :: Value -> Value fixup Value v = Value v Value -> (Value -> Value) -> Value forall a b. a -> (a -> b) -> b & (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) "concurrentTasks" ((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 (Scientific -> Value A.Number Scientific 2)) Value -> (Value -> Value) -> Value forall a b. a -> (a -> b) -> b & (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) "pushCaches" ((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 (Array -> Value A.Array Array forall a. Monoid a => a mempty)) Value -> (Value -> Value) -> Value forall a b. a -> (a -> b) -> b & (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) "nixClientProtocolVersion" ((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 (Scientific -> Value A.Number Scientific 0)) Value -> (Value -> Value) -> Value forall a b. a -> (a -> b) -> b & (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) "nixDaemonProtocolVersion" ((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 (Scientific -> Value A.Number Scientific 0)) Value -> (Value -> Value) -> Value forall a b. a -> (a -> b) -> b & (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) "labels" ((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 (KeyMap Value -> Value A.Object KeyMap Value forall a. Monoid a => a mempty))