{-# LANGUAGE DeriveGeneric   #-}
{-# LANGUAGE Strict          #-}
{-# LANGUAGE TemplateHaskell #-}
module GitHub.Types.Base.EditRepo where

import           Data.Aeson.TH                     (Options (fieldLabelModifier),
                                                    defaultOptions, deriveJSON)
import           GHC.Generics                      (Generic)
import           Test.QuickCheck.Arbitrary         (Arbitrary (..))
import           Test.QuickCheck.Arbitrary.Generic (genericArbitrary)
import           Text.Casing                       (quietSnake)

------------------------------------------------------------------------------
-- EditRepo

data EditRepo = EditRepo
    { EditRepo -> Maybe Bool
editRepoArchived                  :: Maybe Bool
    , EditRepo -> Maybe Bool
editRepoHasProjects               :: Maybe Bool
    , EditRepo -> Maybe Bool
editRepoDeleteBranchOnMerge       :: Maybe Bool
    , EditRepo -> Maybe Bool
editRepoIsTemplate                :: Maybe Bool
    , EditRepo -> Maybe Bool
editRepoAllowSquashMerge          :: Maybe Bool
    , EditRepo -> Maybe Bool
editRepoHasWiki                   :: Maybe Bool
    , EditRepo -> Maybe Bool
editRepoAllowForking              :: Maybe Bool
    , EditRepo -> Maybe String
editRepoSquashMergeCommitMessage  :: Maybe String
    , EditRepo -> Maybe Bool
editRepoAllowMergeCommit          :: Maybe Bool
    , EditRepo -> Maybe Bool
editRepoWebCommitSignoffRequired  :: Maybe Bool
    , EditRepo -> Maybe Bool
editRepoUseSquashPrTitleAsDefault :: Maybe Bool
    , EditRepo -> Maybe String
editRepoDescription               :: Maybe String
    , EditRepo -> Maybe String
editRepoSquashMergeCommitTitle    :: Maybe String
    , EditRepo -> Maybe String
editRepoMergeCommitMessage        :: Maybe String
    , EditRepo -> Maybe Bool
editRepoAllowUpdateBranch         :: Maybe Bool
    , EditRepo -> Maybe Bool
editRepoPrivate                   :: Maybe Bool
    , EditRepo -> Maybe String
editRepoName                      :: Maybe String
    , EditRepo -> Maybe String
editRepoMergeCommitTitle          :: Maybe String
    , EditRepo -> Maybe Bool
editRepoAllowRebaseMerge          :: Maybe Bool
    , EditRepo -> Maybe Bool
editRepoHasIssues                 :: Maybe Bool
    , EditRepo -> Maybe String
editRepoHomepage                  :: Maybe String
    , EditRepo -> Maybe String
editRepoDefaultBranch             :: Maybe String
    , EditRepo -> Maybe String
editRepoVisibility                :: Maybe String
    } deriving (EditRepo -> EditRepo -> Bool
(EditRepo -> EditRepo -> Bool)
-> (EditRepo -> EditRepo -> Bool) -> Eq EditRepo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EditRepo -> EditRepo -> Bool
$c/= :: EditRepo -> EditRepo -> Bool
== :: EditRepo -> EditRepo -> Bool
$c== :: EditRepo -> EditRepo -> Bool
Eq, (forall x. EditRepo -> Rep EditRepo x)
-> (forall x. Rep EditRepo x -> EditRepo) -> Generic EditRepo
forall x. Rep EditRepo x -> EditRepo
forall x. EditRepo -> Rep EditRepo x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep EditRepo x -> EditRepo
$cfrom :: forall x. EditRepo -> Rep EditRepo x
Generic)
$(deriveJSON defaultOptions{fieldLabelModifier = quietSnake . drop (length "EditRepo")} ''EditRepo)

instance Arbitrary EditRepo where
    arbitrary :: Gen EditRepo
arbitrary = Gen EditRepo
forall a (ga :: * -> *) (some :: Bool).
(Generic a, GArbitrary a ga some, ga ~ Rep a) =>
Gen a
genericArbitrary