{-# LANGUAGE DeriveAnyClass #-}

module Hercules.API.Accounts.AccountInstallationStatus where

import Hercules.API.Accounts.Account (Account)
import Hercules.API.Prelude
import Hercules.API.SourceHostingSite.SourceHostingSite (SourceHostingSite)

data AccountInstallationStatus = AccountInstallationStatus
  { AccountInstallationStatus -> SourceHostingSite
site :: SourceHostingSite,
    AccountInstallationStatus -> Maybe Account
account :: Maybe Account,
    AccountInstallationStatus -> Bool
isProcessingInstallationWebHook :: Bool,
    AccountInstallationStatus -> Maybe Int
secondsSinceInstallationWebHookComplete :: Maybe Int
  }
  deriving ((forall x.
 AccountInstallationStatus -> Rep AccountInstallationStatus x)
-> (forall x.
    Rep AccountInstallationStatus x -> AccountInstallationStatus)
-> Generic AccountInstallationStatus
forall x.
Rep AccountInstallationStatus x -> AccountInstallationStatus
forall x.
AccountInstallationStatus -> Rep AccountInstallationStatus x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AccountInstallationStatus x -> AccountInstallationStatus
$cfrom :: forall x.
AccountInstallationStatus -> Rep AccountInstallationStatus x
Generic, Int -> AccountInstallationStatus -> ShowS
[AccountInstallationStatus] -> ShowS
AccountInstallationStatus -> String
(Int -> AccountInstallationStatus -> ShowS)
-> (AccountInstallationStatus -> String)
-> ([AccountInstallationStatus] -> ShowS)
-> Show AccountInstallationStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AccountInstallationStatus] -> ShowS
$cshowList :: [AccountInstallationStatus] -> ShowS
show :: AccountInstallationStatus -> String
$cshow :: AccountInstallationStatus -> String
showsPrec :: Int -> AccountInstallationStatus -> ShowS
$cshowsPrec :: Int -> AccountInstallationStatus -> ShowS
Show, AccountInstallationStatus -> AccountInstallationStatus -> Bool
(AccountInstallationStatus -> AccountInstallationStatus -> Bool)
-> (AccountInstallationStatus -> AccountInstallationStatus -> Bool)
-> Eq AccountInstallationStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AccountInstallationStatus -> AccountInstallationStatus -> Bool
$c/= :: AccountInstallationStatus -> AccountInstallationStatus -> Bool
== :: AccountInstallationStatus -> AccountInstallationStatus -> Bool
$c== :: AccountInstallationStatus -> AccountInstallationStatus -> Bool
Eq, AccountInstallationStatus -> ()
(AccountInstallationStatus -> ())
-> NFData AccountInstallationStatus
forall a. (a -> ()) -> NFData a
rnf :: AccountInstallationStatus -> ()
$crnf :: AccountInstallationStatus -> ()
NFData, [AccountInstallationStatus] -> Encoding
[AccountInstallationStatus] -> Value
AccountInstallationStatus -> Encoding
AccountInstallationStatus -> Value
(AccountInstallationStatus -> Value)
-> (AccountInstallationStatus -> Encoding)
-> ([AccountInstallationStatus] -> Value)
-> ([AccountInstallationStatus] -> Encoding)
-> ToJSON AccountInstallationStatus
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [AccountInstallationStatus] -> Encoding
$ctoEncodingList :: [AccountInstallationStatus] -> Encoding
toJSONList :: [AccountInstallationStatus] -> Value
$ctoJSONList :: [AccountInstallationStatus] -> Value
toEncoding :: AccountInstallationStatus -> Encoding
$ctoEncoding :: AccountInstallationStatus -> Encoding
toJSON :: AccountInstallationStatus -> Value
$ctoJSON :: AccountInstallationStatus -> Value
ToJSON, Value -> Parser [AccountInstallationStatus]
Value -> Parser AccountInstallationStatus
(Value -> Parser AccountInstallationStatus)
-> (Value -> Parser [AccountInstallationStatus])
-> FromJSON AccountInstallationStatus
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [AccountInstallationStatus]
$cparseJSONList :: Value -> Parser [AccountInstallationStatus]
parseJSON :: Value -> Parser AccountInstallationStatus
$cparseJSON :: Value -> Parser AccountInstallationStatus
FromJSON, Proxy AccountInstallationStatus
-> Declare (Definitions Schema) NamedSchema
(Proxy AccountInstallationStatus
 -> Declare (Definitions Schema) NamedSchema)
-> ToSchema AccountInstallationStatus
forall a.
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
declareNamedSchema :: Proxy AccountInstallationStatus
-> Declare (Definitions Schema) NamedSchema
$cdeclareNamedSchema :: Proxy AccountInstallationStatus
-> Declare (Definitions Schema) NamedSchema
ToSchema)