{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards   #-}
{-# LANGUAGE StrictData        #-}
module GitHub.Types.Base.CheckSuite where

import           Data.Aeson                         (FromJSON (..), ToJSON (..),
                                                     object)
import           Data.Aeson.Types                   (Value (..), (.:), (.:?),
                                                     (.=))
import           Data.Text                          (Text)
import           Test.QuickCheck.Arbitrary          (Arbitrary (..))

import           GitHub.Types.Base.CheckApp
import           GitHub.Types.Base.CheckCommit
import           GitHub.Types.Base.CheckPullRequest

------------------------------------------------------------------------------
-- CheckSuite

data CheckSuite = CheckSuite
    { CheckSuite -> Maybe Text
checkSuiteAfter                :: Maybe Text
    , CheckSuite -> CheckApp
checkSuiteApp                  :: CheckApp
    , CheckSuite -> Maybe Text
checkSuiteBefore               :: Maybe Text
    , CheckSuite -> Maybe Text
checkSuiteCheckRunsUrl         :: Maybe Text
    , CheckSuite -> Maybe Text
checkSuiteConclusion           :: Maybe Text
    , CheckSuite -> Maybe Text
checkSuiteHeadBranch           :: Maybe Text
    , CheckSuite -> Maybe CheckCommit
checkSuiteHeadCommit           :: Maybe CheckCommit
    , CheckSuite -> Text
checkSuiteHeadSha              :: Text
    , CheckSuite -> Int
checkSuiteId                   :: Int
    , CheckSuite -> Maybe Int
checkSuiteLatestCheckRunsCount :: Maybe Int
    , CheckSuite -> Text
checkSuiteNodeId               :: Text
    , CheckSuite -> [CheckPullRequest]
checkSuitePullRequests         :: [CheckPullRequest]
    , CheckSuite -> Maybe Bool
checkSuiteRerequestable        :: Maybe Bool
    , CheckSuite -> Maybe Bool
checkSuiteRunsRerequestable    :: Maybe Bool
    , CheckSuite -> Text
checkSuiteStatus               :: Text
    , CheckSuite -> Text
checkSuiteUrl                  :: Text
    , CheckSuite -> Text
checkSuiteUpdatedAt            :: Text
    , CheckSuite -> Text
checkSuiteCreatedAt            :: Text
    } deriving (CheckSuite -> CheckSuite -> Bool
(CheckSuite -> CheckSuite -> Bool)
-> (CheckSuite -> CheckSuite -> Bool) -> Eq CheckSuite
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CheckSuite -> CheckSuite -> Bool
$c/= :: CheckSuite -> CheckSuite -> Bool
== :: CheckSuite -> CheckSuite -> Bool
$c== :: CheckSuite -> CheckSuite -> Bool
Eq, Int -> CheckSuite -> ShowS
[CheckSuite] -> ShowS
CheckSuite -> String
(Int -> CheckSuite -> ShowS)
-> (CheckSuite -> String)
-> ([CheckSuite] -> ShowS)
-> Show CheckSuite
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CheckSuite] -> ShowS
$cshowList :: [CheckSuite] -> ShowS
show :: CheckSuite -> String
$cshow :: CheckSuite -> String
showsPrec :: Int -> CheckSuite -> ShowS
$cshowsPrec :: Int -> CheckSuite -> ShowS
Show, ReadPrec [CheckSuite]
ReadPrec CheckSuite
Int -> ReadS CheckSuite
ReadS [CheckSuite]
(Int -> ReadS CheckSuite)
-> ReadS [CheckSuite]
-> ReadPrec CheckSuite
-> ReadPrec [CheckSuite]
-> Read CheckSuite
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CheckSuite]
$creadListPrec :: ReadPrec [CheckSuite]
readPrec :: ReadPrec CheckSuite
$creadPrec :: ReadPrec CheckSuite
readList :: ReadS [CheckSuite]
$creadList :: ReadS [CheckSuite]
readsPrec :: Int -> ReadS CheckSuite
$creadsPrec :: Int -> ReadS CheckSuite
Read)


instance FromJSON CheckSuite where
    parseJSON :: Value -> Parser CheckSuite
parseJSON (Object Object
x) = Maybe Text
-> CheckApp
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe CheckCommit
-> Text
-> Int
-> Maybe Int
-> Text
-> [CheckPullRequest]
-> Maybe Bool
-> Maybe Bool
-> Text
-> Text
-> Text
-> Text
-> CheckSuite
CheckSuite
        (Maybe Text
 -> CheckApp
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe CheckCommit
 -> Text
 -> Int
 -> Maybe Int
 -> Text
 -> [CheckPullRequest]
 -> Maybe Bool
 -> Maybe Bool
 -> Text
 -> Text
 -> Text
 -> Text
 -> CheckSuite)
-> Parser (Maybe Text)
-> Parser
     (CheckApp
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe CheckCommit
      -> Text
      -> Int
      -> Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
x Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"after"
        Parser
  (CheckApp
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe CheckCommit
   -> Text
   -> Int
   -> Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Parser CheckApp
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe CheckCommit
      -> Text
      -> Int
      -> Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser CheckApp
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"app"
        Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe CheckCommit
   -> Text
   -> Int
   -> Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe CheckCommit
      -> Text
      -> Int
      -> Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"before"
        Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe CheckCommit
   -> Text
   -> Int
   -> Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe CheckCommit
      -> Text
      -> Int
      -> Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"check_runs_url"
        Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe CheckCommit
   -> Text
   -> Int
   -> Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe CheckCommit
      -> Text
      -> Int
      -> Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"conclusion"
        Parser
  (Maybe Text
   -> Maybe CheckCommit
   -> Text
   -> Int
   -> Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Parser (Maybe Text)
-> Parser
     (Maybe CheckCommit
      -> Text
      -> Int
      -> Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"head_branch"
        Parser
  (Maybe CheckCommit
   -> Text
   -> Int
   -> Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Parser (Maybe CheckCommit)
-> Parser
     (Text
      -> Int
      -> Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser (Maybe CheckCommit)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"head_commit"
        Parser
  (Text
   -> Int
   -> Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Parser Text
-> Parser
     (Int
      -> Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"head_sha"
        Parser
  (Int
   -> Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Parser Int
-> Parser
     (Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"id"
        Parser
  (Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Parser (Maybe Int)
-> Parser
     (Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"latest_check_runs_count"
        Parser
  (Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Parser Text
-> Parser
     ([CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"node_id"
        Parser
  ([CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Parser [CheckPullRequest]
-> Parser
     (Maybe Bool
      -> Maybe Bool -> Text -> Text -> Text -> Text -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser [CheckPullRequest]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"pull_requests"
        Parser
  (Maybe Bool
   -> Maybe Bool -> Text -> Text -> Text -> Text -> CheckSuite)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool -> Text -> Text -> Text -> Text -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"rerequestable"
        Parser (Maybe Bool -> Text -> Text -> Text -> Text -> CheckSuite)
-> Parser (Maybe Bool)
-> Parser (Text -> Text -> Text -> Text -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"runs_rerequestable"
        Parser (Text -> Text -> Text -> Text -> CheckSuite)
-> Parser Text -> Parser (Text -> Text -> Text -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"status"
        Parser (Text -> Text -> Text -> CheckSuite)
-> Parser Text -> Parser (Text -> Text -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"url"
        Parser (Text -> Text -> CheckSuite)
-> Parser Text -> Parser (Text -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"updated_at"
        Parser (Text -> CheckSuite) -> Parser Text -> Parser CheckSuite
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"created_at"

    parseJSON Value
_ = String -> Parser CheckSuite
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"CheckSuite"


instance ToJSON CheckSuite where
    toJSON :: CheckSuite -> Value
toJSON CheckSuite{Int
[CheckPullRequest]
Maybe Bool
Maybe Int
Maybe Text
Maybe CheckCommit
Text
CheckApp
checkSuiteCreatedAt :: Text
checkSuiteUpdatedAt :: Text
checkSuiteUrl :: Text
checkSuiteStatus :: Text
checkSuiteRunsRerequestable :: Maybe Bool
checkSuiteRerequestable :: Maybe Bool
checkSuitePullRequests :: [CheckPullRequest]
checkSuiteNodeId :: Text
checkSuiteLatestCheckRunsCount :: Maybe Int
checkSuiteId :: Int
checkSuiteHeadSha :: Text
checkSuiteHeadCommit :: Maybe CheckCommit
checkSuiteHeadBranch :: Maybe Text
checkSuiteConclusion :: Maybe Text
checkSuiteCheckRunsUrl :: Maybe Text
checkSuiteBefore :: Maybe Text
checkSuiteApp :: CheckApp
checkSuiteAfter :: Maybe Text
checkSuiteCreatedAt :: CheckSuite -> Text
checkSuiteUpdatedAt :: CheckSuite -> Text
checkSuiteUrl :: CheckSuite -> Text
checkSuiteStatus :: CheckSuite -> Text
checkSuiteRunsRerequestable :: CheckSuite -> Maybe Bool
checkSuiteRerequestable :: CheckSuite -> Maybe Bool
checkSuitePullRequests :: CheckSuite -> [CheckPullRequest]
checkSuiteNodeId :: CheckSuite -> Text
checkSuiteLatestCheckRunsCount :: CheckSuite -> Maybe Int
checkSuiteId :: CheckSuite -> Int
checkSuiteHeadSha :: CheckSuite -> Text
checkSuiteHeadCommit :: CheckSuite -> Maybe CheckCommit
checkSuiteHeadBranch :: CheckSuite -> Maybe Text
checkSuiteConclusion :: CheckSuite -> Maybe Text
checkSuiteCheckRunsUrl :: CheckSuite -> Maybe Text
checkSuiteBefore :: CheckSuite -> Maybe Text
checkSuiteApp :: CheckSuite -> CheckApp
checkSuiteAfter :: CheckSuite -> Maybe Text
..} = [Pair] -> Value
object
        [ Key
"after"                   Key -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe Text
checkSuiteAfter
        , Key
"app"                     Key -> CheckApp -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= CheckApp
checkSuiteApp
        , Key
"before"                  Key -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe Text
checkSuiteBefore
        , Key
"check_runs_url"          Key -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe Text
checkSuiteCheckRunsUrl
        , Key
"conclusion"              Key -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe Text
checkSuiteConclusion
        , Key
"head_branch"             Key -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe Text
checkSuiteHeadBranch
        , Key
"head_commit"             Key -> Maybe CheckCommit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe CheckCommit
checkSuiteHeadCommit
        , Key
"head_sha"                Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
checkSuiteHeadSha
        , Key
"id"                      Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Int
checkSuiteId
        , Key
"latest_check_runs_count" Key -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe Int
checkSuiteLatestCheckRunsCount
        , Key
"node_id"                 Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
checkSuiteNodeId
        , Key
"pull_requests"           Key -> [CheckPullRequest] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= [CheckPullRequest]
checkSuitePullRequests
        , Key
"rerequestable"           Key -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe Bool
checkSuiteRerequestable
        , Key
"runs_rerequestable"      Key -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe Bool
checkSuiteRunsRerequestable
        , Key
"status"                  Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
checkSuiteStatus
        , Key
"url"                     Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
checkSuiteUrl
        , Key
"updated_at"              Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
checkSuiteUpdatedAt
        , Key
"created_at"              Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
checkSuiteCreatedAt
        ]


instance Arbitrary CheckSuite where
    arbitrary :: Gen CheckSuite
arbitrary = Maybe Text
-> CheckApp
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe CheckCommit
-> Text
-> Int
-> Maybe Int
-> Text
-> [CheckPullRequest]
-> Maybe Bool
-> Maybe Bool
-> Text
-> Text
-> Text
-> Text
-> CheckSuite
CheckSuite
        (Maybe Text
 -> CheckApp
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe CheckCommit
 -> Text
 -> Int
 -> Maybe Int
 -> Text
 -> [CheckPullRequest]
 -> Maybe Bool
 -> Maybe Bool
 -> Text
 -> Text
 -> Text
 -> Text
 -> CheckSuite)
-> Gen (Maybe Text)
-> Gen
     (CheckApp
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe CheckCommit
      -> Text
      -> Int
      -> Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen (Maybe Text)
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (CheckApp
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe CheckCommit
   -> Text
   -> Int
   -> Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Gen CheckApp
-> Gen
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe CheckCommit
      -> Text
      -> Int
      -> Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen CheckApp
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe CheckCommit
   -> Text
   -> Int
   -> Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Gen (Maybe Text)
-> Gen
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe CheckCommit
      -> Text
      -> Int
      -> Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe Text)
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe CheckCommit
   -> Text
   -> Int
   -> Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Gen (Maybe Text)
-> Gen
     (Maybe Text
      -> Maybe Text
      -> Maybe CheckCommit
      -> Text
      -> Int
      -> Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe Text)
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Maybe Text
   -> Maybe Text
   -> Maybe CheckCommit
   -> Text
   -> Int
   -> Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Gen (Maybe Text)
-> Gen
     (Maybe Text
      -> Maybe CheckCommit
      -> Text
      -> Int
      -> Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe Text)
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Maybe Text
   -> Maybe CheckCommit
   -> Text
   -> Int
   -> Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Gen (Maybe Text)
-> Gen
     (Maybe CheckCommit
      -> Text
      -> Int
      -> Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe Text)
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Maybe CheckCommit
   -> Text
   -> Int
   -> Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Gen (Maybe CheckCommit)
-> Gen
     (Text
      -> Int
      -> Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe CheckCommit)
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Text
   -> Int
   -> Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Gen Text
-> Gen
     (Int
      -> Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Int
   -> Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Gen Int
-> Gen
     (Maybe Int
      -> Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Int
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Maybe Int
   -> Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Gen (Maybe Int)
-> Gen
     (Text
      -> [CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe Int)
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Text
   -> [CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Gen Text
-> Gen
     ([CheckPullRequest]
      -> Maybe Bool
      -> Maybe Bool
      -> Text
      -> Text
      -> Text
      -> Text
      -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  ([CheckPullRequest]
   -> Maybe Bool
   -> Maybe Bool
   -> Text
   -> Text
   -> Text
   -> Text
   -> CheckSuite)
-> Gen [CheckPullRequest]
-> Gen
     (Maybe Bool
      -> Maybe Bool -> Text -> Text -> Text -> Text -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen [CheckPullRequest]
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Maybe Bool
   -> Maybe Bool -> Text -> Text -> Text -> Text -> CheckSuite)
-> Gen (Maybe Bool)
-> Gen (Maybe Bool -> Text -> Text -> Text -> Text -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe Bool)
forall a. Arbitrary a => Gen a
arbitrary
        Gen (Maybe Bool -> Text -> Text -> Text -> Text -> CheckSuite)
-> Gen (Maybe Bool)
-> Gen (Text -> Text -> Text -> Text -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe Bool)
forall a. Arbitrary a => Gen a
arbitrary
        Gen (Text -> Text -> Text -> Text -> CheckSuite)
-> Gen Text -> Gen (Text -> Text -> Text -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
        Gen (Text -> Text -> Text -> CheckSuite)
-> Gen Text -> Gen (Text -> Text -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
        Gen (Text -> Text -> CheckSuite)
-> Gen Text -> Gen (Text -> CheckSuite)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
        Gen (Text -> CheckSuite) -> Gen Text -> Gen CheckSuite
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary