{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DerivingStrategies #-}

module Hercules.API.Agents.AgentSession where

import Data.OpenApi qualified as O3
import Hercules.API.Agents.ClusterJoinToken
  ( ClusterJoinToken,
  )
import Hercules.API.Labels
import Hercules.API.Prelude

data AgentSession = AgentSession
  { AgentSession -> Id AgentSession
id :: Id AgentSession,
    AgentSession -> Id ClusterJoinToken
clusterJoinTokenId :: Id ClusterJoinToken,
    AgentSession -> Text
description :: Text,
    AgentSession -> Text
hostname :: Text,
    AgentSession -> Text
agentVersion :: Text,
    AgentSession -> Text
nixVersion :: Text,
    AgentSession -> [Text]
platforms :: [Text],
    AgentSession -> [Text]
systemFeatures :: [Text],
    AgentSession -> [Text]
cachixPushCaches :: [Text],
    AgentSession -> [Text]
pushCaches :: [Text],
    AgentSession -> [Text]
substituters :: [Text],
    AgentSession -> UTCTime
creation :: UTCTime,
    AgentSession -> Maybe UTCTime
lastSeen :: Maybe UTCTime,
    AgentSession -> Maybe UTCTime
revocation :: Maybe UTCTime,
    AgentSession -> Bool
available :: Bool,
    AgentSession -> Int
concurrentTasks :: Int,
    AgentSession -> Labels
labels :: Labels
  }
  deriving ((forall x. AgentSession -> Rep AgentSession x)
-> (forall x. Rep AgentSession x -> AgentSession)
-> Generic AgentSession
forall x. Rep AgentSession x -> AgentSession
forall x. AgentSession -> Rep AgentSession x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. AgentSession -> Rep AgentSession x
from :: forall x. AgentSession -> Rep AgentSession x
$cto :: forall x. Rep AgentSession x -> AgentSession
to :: forall x. Rep AgentSession x -> AgentSession
Generic, Int -> AgentSession -> ShowS
[AgentSession] -> ShowS
AgentSession -> String
(Int -> AgentSession -> ShowS)
-> (AgentSession -> String)
-> ([AgentSession] -> ShowS)
-> Show AgentSession
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AgentSession -> ShowS
showsPrec :: Int -> AgentSession -> ShowS
$cshow :: AgentSession -> String
show :: AgentSession -> String
$cshowList :: [AgentSession] -> ShowS
showList :: [AgentSession] -> ShowS
Show, AgentSession -> AgentSession -> Bool
(AgentSession -> AgentSession -> Bool)
-> (AgentSession -> AgentSession -> Bool) -> Eq AgentSession
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AgentSession -> AgentSession -> Bool
== :: AgentSession -> AgentSession -> Bool
$c/= :: AgentSession -> AgentSession -> Bool
/= :: AgentSession -> AgentSession -> Bool
Eq)
  deriving anyclass (AgentSession -> ()
(AgentSession -> ()) -> NFData AgentSession
forall a. (a -> ()) -> NFData a
$crnf :: AgentSession -> ()
rnf :: AgentSession -> ()
NFData, [AgentSession] -> Value
[AgentSession] -> Encoding
AgentSession -> Value
AgentSession -> Encoding
(AgentSession -> Value)
-> (AgentSession -> Encoding)
-> ([AgentSession] -> Value)
-> ([AgentSession] -> Encoding)
-> ToJSON AgentSession
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: AgentSession -> Value
toJSON :: AgentSession -> Value
$ctoEncoding :: AgentSession -> Encoding
toEncoding :: AgentSession -> Encoding
$ctoJSONList :: [AgentSession] -> Value
toJSONList :: [AgentSession] -> Value
$ctoEncodingList :: [AgentSession] -> Encoding
toEncodingList :: [AgentSession] -> Encoding
ToJSON, Value -> Parser [AgentSession]
Value -> Parser AgentSession
(Value -> Parser AgentSession)
-> (Value -> Parser [AgentSession]) -> FromJSON AgentSession
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser AgentSession
parseJSON :: Value -> Parser AgentSession
$cparseJSONList :: Value -> Parser [AgentSession]
parseJSONList :: Value -> Parser [AgentSession]
FromJSON, Proxy AgentSession -> Declare (Definitions Schema) NamedSchema
(Proxy AgentSession -> Declare (Definitions Schema) NamedSchema)
-> ToSchema AgentSession
forall a.
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy AgentSession -> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy AgentSession -> Declare (Definitions Schema) NamedSchema
ToSchema, Typeable AgentSession
Typeable AgentSession =>
(Proxy AgentSession -> Declare (Definitions Schema) NamedSchema)
-> ToSchema AgentSession
Proxy AgentSession -> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a =>
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy AgentSession -> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy AgentSession -> Declare (Definitions Schema) NamedSchema
O3.ToSchema)