{-# LANGUAGE Trustworthy #-}
{-|
Module      : Github.Data.Webhooks.Events
Copyright   : (c) Cuedo Control Engineering 2017-2022
License     : MIT
Maintainer  : Kyle Van Berendonck <foss@cuedo.com.au>

This module contains types that represent GitHub webhook's events.
-}
module GitHub.Data.Webhooks.Events
    ( EventHasSender(..)
    , EventHasRepo(..)
      --

    , CheckSuiteEventAction(..)
    , CheckSuiteEvent(..)
      --

    , CheckRunEventAction(..)
    , CheckRunEvent(..)
      --

    , CommitCommentEvent(..)
    , CommitCommentEventAction(..)
      --

    , CreateEvent(..)
      --

    , DeleteEvent(..)
      --

    , DeploymentEvent(..)
      --

    , DeploymentStatusEvent(..)
      -- Deprecated events

    , DownloadEvent(..)
    , FollowEvent(..)
    , ForkEvent(..)
    , ForkApplyEvent(..)
    , GistEvent(..)
      --

    , GollumEvent(..)
      --

    , InstallationEvent(..)
    , InstallationEventAction(..)
      --

    , InstallationRepositoriesEvent(..)
    , InstallationRepoEventAction(..)
      --

    , IssueCommentEvent(..)
    , IssueCommentEventAction(..)
      --

    , IssuesEvent(..)
    , IssuesEventAction(..)
      --

    , LabelEvent(..)
    , LabelEventAction(..)
      --

    , MarketplacePurchaseEvent(..)
    , MarketplacePurchaseEventAction(..)
      --

    , MemberEvent(..)
    , MemberEventAction(..)
      --

    , MembershipEvent(..)
    , MembershipEventAction(..)
      --

    , MilestoneEvent(..)
    , MilestoneEventAction(..)
      --

    , OrganizationEvent(..)
    , OrganizationEventAction(..)
      --

    , OrgBlockEvent(..)
    , OrgBlockEventAction(..)
      --

    , PageBuildEvent(..)
      --

    , ProjectCardEvent(..)
    , ProjectCardEventAction(..)
      --

    , ProjectColumnEvent(..)
    , ProjectColumnEventAction(..)
      --

    , ProjectEvent(..)
    , ProjectEventAction(..)
      --

    , PublicEvent(..)
      --

    , PullRequestEvent(..)
    , PullRequestEventAction(..)
      --

    , PullRequestReviewEvent(..)
    , PullRequestReviewEventAction(..)
      --

    , PullRequestReviewCommentEvent(..)
    , PullRequestReviewCommentEventAction(..)
      --

    , PushEvent(..)
      --

    , ReleaseEvent(..)
    , ReleaseEventAction(..)
      --

    , RepositoryEvent(..)
    , RepositoryEventAction(..)
      --

    , StatusEvent(..)
    , StatusEventState(..)
      --

    , TeamEvent(..)
    , TeamEventAction(..)
      --

    , TeamAddEvent(..)
      --

    , WatchEvent(..)
    , WatchEventAction(..)
    ) where

import           Data.Aeson               (FromJSON(..), withObject, withText, (.:), (.:?), (.!=))
import           Control.Applicative      ((<*>), pure)
import           Control.DeepSeq          (NFData(..))
import           Control.DeepSeq.Generics (genericRnf)
import           Data.Data                (Data, Typeable)
import           Data.Functor             ((<$>))
import           Data.Monoid              (mempty)
import           Data.Time                (UTCTime)
import           Data.Time.LocalTime      (zonedTimeToUTC)
import           Data.Text                (Text)
import           Data.Vector              (Vector)
import           GHC.Generics             (Generic)

import           GitHub.Data.Webhooks.Payload

-- | Represents an event that contains its sender information.

class EventHasSender eventKind where
    -- | Provides the sender context of a Webhook event.

    senderOfEvent :: eventKind -> HookUser

-- | Represents an event that contains its repository information.

class EventHasRepo eventKind where
    -- | Provides the repository context of a Webhook event.

    repoForEvent :: eventKind -> HookRepository

-- | Represents the "action" field in the

-- 'CheckSuiteEvent' payload.

data CheckSuiteEventAction
    -- | Decodes from "completed"

    = CheckSuiteEventActionCompleted
    -- | Decodes from "requested"

    | CheckSuiteEventActionRequested
    -- | Decodes from "rerequested"

    | CheckSuiteEventActionRerequested
    -- | The result of decoding an unknown check suite event action type

    | CheckSuiteEventActionOther !Text
    deriving (CheckSuiteEventAction -> CheckSuiteEventAction -> Bool
(CheckSuiteEventAction -> CheckSuiteEventAction -> Bool)
-> (CheckSuiteEventAction -> CheckSuiteEventAction -> Bool)
-> Eq CheckSuiteEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CheckSuiteEventAction -> CheckSuiteEventAction -> Bool
$c/= :: CheckSuiteEventAction -> CheckSuiteEventAction -> Bool
== :: CheckSuiteEventAction -> CheckSuiteEventAction -> Bool
$c== :: CheckSuiteEventAction -> CheckSuiteEventAction -> Bool
Eq, Eq CheckSuiteEventAction
Eq CheckSuiteEventAction
-> (CheckSuiteEventAction -> CheckSuiteEventAction -> Ordering)
-> (CheckSuiteEventAction -> CheckSuiteEventAction -> Bool)
-> (CheckSuiteEventAction -> CheckSuiteEventAction -> Bool)
-> (CheckSuiteEventAction -> CheckSuiteEventAction -> Bool)
-> (CheckSuiteEventAction -> CheckSuiteEventAction -> Bool)
-> (CheckSuiteEventAction
    -> CheckSuiteEventAction -> CheckSuiteEventAction)
-> (CheckSuiteEventAction
    -> CheckSuiteEventAction -> CheckSuiteEventAction)
-> Ord CheckSuiteEventAction
CheckSuiteEventAction -> CheckSuiteEventAction -> Bool
CheckSuiteEventAction -> CheckSuiteEventAction -> Ordering
CheckSuiteEventAction
-> CheckSuiteEventAction -> CheckSuiteEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: CheckSuiteEventAction
-> CheckSuiteEventAction -> CheckSuiteEventAction
$cmin :: CheckSuiteEventAction
-> CheckSuiteEventAction -> CheckSuiteEventAction
max :: CheckSuiteEventAction
-> CheckSuiteEventAction -> CheckSuiteEventAction
$cmax :: CheckSuiteEventAction
-> CheckSuiteEventAction -> CheckSuiteEventAction
>= :: CheckSuiteEventAction -> CheckSuiteEventAction -> Bool
$c>= :: CheckSuiteEventAction -> CheckSuiteEventAction -> Bool
> :: CheckSuiteEventAction -> CheckSuiteEventAction -> Bool
$c> :: CheckSuiteEventAction -> CheckSuiteEventAction -> Bool
<= :: CheckSuiteEventAction -> CheckSuiteEventAction -> Bool
$c<= :: CheckSuiteEventAction -> CheckSuiteEventAction -> Bool
< :: CheckSuiteEventAction -> CheckSuiteEventAction -> Bool
$c< :: CheckSuiteEventAction -> CheckSuiteEventAction -> Bool
compare :: CheckSuiteEventAction -> CheckSuiteEventAction -> Ordering
$ccompare :: CheckSuiteEventAction -> CheckSuiteEventAction -> Ordering
$cp1Ord :: Eq CheckSuiteEventAction
Ord, Int -> CheckSuiteEventAction -> ShowS
[CheckSuiteEventAction] -> ShowS
CheckSuiteEventAction -> String
(Int -> CheckSuiteEventAction -> ShowS)
-> (CheckSuiteEventAction -> String)
-> ([CheckSuiteEventAction] -> ShowS)
-> Show CheckSuiteEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CheckSuiteEventAction] -> ShowS
$cshowList :: [CheckSuiteEventAction] -> ShowS
show :: CheckSuiteEventAction -> String
$cshow :: CheckSuiteEventAction -> String
showsPrec :: Int -> CheckSuiteEventAction -> ShowS
$cshowsPrec :: Int -> CheckSuiteEventAction -> ShowS
Show, (forall x. CheckSuiteEventAction -> Rep CheckSuiteEventAction x)
-> (forall x. Rep CheckSuiteEventAction x -> CheckSuiteEventAction)
-> Generic CheckSuiteEventAction
forall x. Rep CheckSuiteEventAction x -> CheckSuiteEventAction
forall x. CheckSuiteEventAction -> Rep CheckSuiteEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CheckSuiteEventAction x -> CheckSuiteEventAction
$cfrom :: forall x. CheckSuiteEventAction -> Rep CheckSuiteEventAction x
Generic, Typeable, Typeable CheckSuiteEventAction
DataType
Constr
Typeable CheckSuiteEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> CheckSuiteEventAction
    -> c CheckSuiteEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c CheckSuiteEventAction)
-> (CheckSuiteEventAction -> Constr)
-> (CheckSuiteEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c CheckSuiteEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c CheckSuiteEventAction))
-> ((forall b. Data b => b -> b)
    -> CheckSuiteEventAction -> CheckSuiteEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> CheckSuiteEventAction
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> CheckSuiteEventAction
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> CheckSuiteEventAction -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> CheckSuiteEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> CheckSuiteEventAction -> m CheckSuiteEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> CheckSuiteEventAction -> m CheckSuiteEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> CheckSuiteEventAction -> m CheckSuiteEventAction)
-> Data CheckSuiteEventAction
CheckSuiteEventAction -> DataType
CheckSuiteEventAction -> Constr
(forall b. Data b => b -> b)
-> CheckSuiteEventAction -> CheckSuiteEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CheckSuiteEventAction
-> c CheckSuiteEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CheckSuiteEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> CheckSuiteEventAction -> u
forall u.
(forall d. Data d => d -> u) -> CheckSuiteEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CheckSuiteEventAction -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CheckSuiteEventAction -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> CheckSuiteEventAction -> m CheckSuiteEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CheckSuiteEventAction -> m CheckSuiteEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CheckSuiteEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CheckSuiteEventAction
-> c CheckSuiteEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c CheckSuiteEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CheckSuiteEventAction)
$cCheckSuiteEventActionOther :: Constr
$cCheckSuiteEventActionRerequested :: Constr
$cCheckSuiteEventActionRequested :: Constr
$cCheckSuiteEventActionCompleted :: Constr
$tCheckSuiteEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> CheckSuiteEventAction -> m CheckSuiteEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CheckSuiteEventAction -> m CheckSuiteEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> CheckSuiteEventAction -> m CheckSuiteEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CheckSuiteEventAction -> m CheckSuiteEventAction
gmapM :: (forall d. Data d => d -> m d)
-> CheckSuiteEventAction -> m CheckSuiteEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> CheckSuiteEventAction -> m CheckSuiteEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> CheckSuiteEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> CheckSuiteEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> CheckSuiteEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> CheckSuiteEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CheckSuiteEventAction -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CheckSuiteEventAction -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CheckSuiteEventAction -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CheckSuiteEventAction -> r
gmapT :: (forall b. Data b => b -> b)
-> CheckSuiteEventAction -> CheckSuiteEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> CheckSuiteEventAction -> CheckSuiteEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CheckSuiteEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CheckSuiteEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c CheckSuiteEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c CheckSuiteEventAction)
dataTypeOf :: CheckSuiteEventAction -> DataType
$cdataTypeOf :: CheckSuiteEventAction -> DataType
toConstr :: CheckSuiteEventAction -> Constr
$ctoConstr :: CheckSuiteEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CheckSuiteEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CheckSuiteEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CheckSuiteEventAction
-> c CheckSuiteEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CheckSuiteEventAction
-> c CheckSuiteEventAction
$cp1Data :: Typeable CheckSuiteEventAction
Data)

instance NFData CheckSuiteEventAction where rnf :: CheckSuiteEventAction -> ()
rnf = CheckSuiteEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON CheckSuiteEventAction where
  parseJSON :: Value -> Parser CheckSuiteEventAction
parseJSON = String
-> (Text -> Parser CheckSuiteEventAction)
-> Value
-> Parser CheckSuiteEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Check suite event action" ((Text -> Parser CheckSuiteEventAction)
 -> Value -> Parser CheckSuiteEventAction)
-> (Text -> Parser CheckSuiteEventAction)
-> Value
-> Parser CheckSuiteEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
      case Text
t of
          Text
"completed"          -> CheckSuiteEventAction -> Parser CheckSuiteEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure CheckSuiteEventAction
CheckSuiteEventActionCompleted
          Text
"requested"          -> CheckSuiteEventAction -> Parser CheckSuiteEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure CheckSuiteEventAction
CheckSuiteEventActionRequested
          Text
"rerequested"        -> CheckSuiteEventAction -> Parser CheckSuiteEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure CheckSuiteEventAction
CheckSuiteEventActionRerequested
          Text
_                    -> CheckSuiteEventAction -> Parser CheckSuiteEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> CheckSuiteEventAction
CheckSuiteEventActionOther Text
t)

-- | Triggered when a check suite is completed, requested, or rerequested.

-- See <https://developer.github.com/v3/activity/events/types/#checksuiteevent>.

data CheckSuiteEvent = CheckSuiteEvent
    { CheckSuiteEvent -> CheckSuiteEventAction
evCheckSuiteAction              :: !CheckSuiteEventAction
    , CheckSuiteEvent -> HookCheckSuite
evCheckSuiteCheckSuite          :: !HookCheckSuite
    , CheckSuiteEvent -> HookRepository
evCheckSuiteRepository          :: !HookRepository
    , CheckSuiteEvent -> Maybe HookOrganization
evCheckSuiteOrganization        :: !(Maybe HookOrganization)
    , CheckSuiteEvent -> HookUser
evCheckSuiteSender              :: !HookUser
    , CheckSuiteEvent -> Maybe HookChecksInstallation
evCheckSuiteInstallation        :: !(Maybe HookChecksInstallation)
    }
    deriving (CheckSuiteEvent -> CheckSuiteEvent -> Bool
(CheckSuiteEvent -> CheckSuiteEvent -> Bool)
-> (CheckSuiteEvent -> CheckSuiteEvent -> Bool)
-> Eq CheckSuiteEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CheckSuiteEvent -> CheckSuiteEvent -> Bool
$c/= :: CheckSuiteEvent -> CheckSuiteEvent -> Bool
== :: CheckSuiteEvent -> CheckSuiteEvent -> Bool
$c== :: CheckSuiteEvent -> CheckSuiteEvent -> Bool
Eq, Int -> CheckSuiteEvent -> ShowS
[CheckSuiteEvent] -> ShowS
CheckSuiteEvent -> String
(Int -> CheckSuiteEvent -> ShowS)
-> (CheckSuiteEvent -> String)
-> ([CheckSuiteEvent] -> ShowS)
-> Show CheckSuiteEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CheckSuiteEvent] -> ShowS
$cshowList :: [CheckSuiteEvent] -> ShowS
show :: CheckSuiteEvent -> String
$cshow :: CheckSuiteEvent -> String
showsPrec :: Int -> CheckSuiteEvent -> ShowS
$cshowsPrec :: Int -> CheckSuiteEvent -> ShowS
Show, Typeable, Typeable CheckSuiteEvent
DataType
Constr
Typeable CheckSuiteEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> CheckSuiteEvent -> c CheckSuiteEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c CheckSuiteEvent)
-> (CheckSuiteEvent -> Constr)
-> (CheckSuiteEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c CheckSuiteEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c CheckSuiteEvent))
-> ((forall b. Data b => b -> b)
    -> CheckSuiteEvent -> CheckSuiteEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> CheckSuiteEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> CheckSuiteEvent -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> CheckSuiteEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> CheckSuiteEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> CheckSuiteEvent -> m CheckSuiteEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> CheckSuiteEvent -> m CheckSuiteEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> CheckSuiteEvent -> m CheckSuiteEvent)
-> Data CheckSuiteEvent
CheckSuiteEvent -> DataType
CheckSuiteEvent -> Constr
(forall b. Data b => b -> b) -> CheckSuiteEvent -> CheckSuiteEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CheckSuiteEvent -> c CheckSuiteEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CheckSuiteEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> CheckSuiteEvent -> u
forall u. (forall d. Data d => d -> u) -> CheckSuiteEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CheckSuiteEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CheckSuiteEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> CheckSuiteEvent -> m CheckSuiteEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CheckSuiteEvent -> m CheckSuiteEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CheckSuiteEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CheckSuiteEvent -> c CheckSuiteEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c CheckSuiteEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CheckSuiteEvent)
$cCheckSuiteEvent :: Constr
$tCheckSuiteEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> CheckSuiteEvent -> m CheckSuiteEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CheckSuiteEvent -> m CheckSuiteEvent
gmapMp :: (forall d. Data d => d -> m d)
-> CheckSuiteEvent -> m CheckSuiteEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CheckSuiteEvent -> m CheckSuiteEvent
gmapM :: (forall d. Data d => d -> m d)
-> CheckSuiteEvent -> m CheckSuiteEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> CheckSuiteEvent -> m CheckSuiteEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> CheckSuiteEvent -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> CheckSuiteEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> CheckSuiteEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> CheckSuiteEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CheckSuiteEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CheckSuiteEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CheckSuiteEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CheckSuiteEvent -> r
gmapT :: (forall b. Data b => b -> b) -> CheckSuiteEvent -> CheckSuiteEvent
$cgmapT :: (forall b. Data b => b -> b) -> CheckSuiteEvent -> CheckSuiteEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CheckSuiteEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CheckSuiteEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c CheckSuiteEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c CheckSuiteEvent)
dataTypeOf :: CheckSuiteEvent -> DataType
$cdataTypeOf :: CheckSuiteEvent -> DataType
toConstr :: CheckSuiteEvent -> Constr
$ctoConstr :: CheckSuiteEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CheckSuiteEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CheckSuiteEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CheckSuiteEvent -> c CheckSuiteEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CheckSuiteEvent -> c CheckSuiteEvent
$cp1Data :: Typeable CheckSuiteEvent
Data, (forall x. CheckSuiteEvent -> Rep CheckSuiteEvent x)
-> (forall x. Rep CheckSuiteEvent x -> CheckSuiteEvent)
-> Generic CheckSuiteEvent
forall x. Rep CheckSuiteEvent x -> CheckSuiteEvent
forall x. CheckSuiteEvent -> Rep CheckSuiteEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CheckSuiteEvent x -> CheckSuiteEvent
$cfrom :: forall x. CheckSuiteEvent -> Rep CheckSuiteEvent x
Generic)

instance EventHasSender CheckSuiteEvent where senderOfEvent :: CheckSuiteEvent -> HookUser
senderOfEvent = CheckSuiteEvent -> HookUser
evCheckSuiteSender
instance EventHasRepo CheckSuiteEvent where repoForEvent :: CheckSuiteEvent -> HookRepository
repoForEvent = CheckSuiteEvent -> HookRepository
evCheckSuiteRepository
instance NFData CheckSuiteEvent where rnf :: CheckSuiteEvent -> ()
rnf = CheckSuiteEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

-- | Represents the "action" field in the

-- 'CheckRunEvent' payload.

data CheckRunEventAction
    -- | Decodes from "created"

    = CheckRunEventActionCreated
    -- | Decodes from "completed"

    | CheckRunEventActionCompleted
    -- | Decodes from "rerequested"

    | CheckRunEventActionRerequested
    -- | Decodes from "requested_action"

    | CheckRunEventActionRequestedAction
    -- | The result of decoding an unknown check run event action type

    | CheckRunEventActionOther !Text
    deriving (CheckRunEventAction -> CheckRunEventAction -> Bool
(CheckRunEventAction -> CheckRunEventAction -> Bool)
-> (CheckRunEventAction -> CheckRunEventAction -> Bool)
-> Eq CheckRunEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CheckRunEventAction -> CheckRunEventAction -> Bool
$c/= :: CheckRunEventAction -> CheckRunEventAction -> Bool
== :: CheckRunEventAction -> CheckRunEventAction -> Bool
$c== :: CheckRunEventAction -> CheckRunEventAction -> Bool
Eq, Eq CheckRunEventAction
Eq CheckRunEventAction
-> (CheckRunEventAction -> CheckRunEventAction -> Ordering)
-> (CheckRunEventAction -> CheckRunEventAction -> Bool)
-> (CheckRunEventAction -> CheckRunEventAction -> Bool)
-> (CheckRunEventAction -> CheckRunEventAction -> Bool)
-> (CheckRunEventAction -> CheckRunEventAction -> Bool)
-> (CheckRunEventAction
    -> CheckRunEventAction -> CheckRunEventAction)
-> (CheckRunEventAction
    -> CheckRunEventAction -> CheckRunEventAction)
-> Ord CheckRunEventAction
CheckRunEventAction -> CheckRunEventAction -> Bool
CheckRunEventAction -> CheckRunEventAction -> Ordering
CheckRunEventAction -> CheckRunEventAction -> CheckRunEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: CheckRunEventAction -> CheckRunEventAction -> CheckRunEventAction
$cmin :: CheckRunEventAction -> CheckRunEventAction -> CheckRunEventAction
max :: CheckRunEventAction -> CheckRunEventAction -> CheckRunEventAction
$cmax :: CheckRunEventAction -> CheckRunEventAction -> CheckRunEventAction
>= :: CheckRunEventAction -> CheckRunEventAction -> Bool
$c>= :: CheckRunEventAction -> CheckRunEventAction -> Bool
> :: CheckRunEventAction -> CheckRunEventAction -> Bool
$c> :: CheckRunEventAction -> CheckRunEventAction -> Bool
<= :: CheckRunEventAction -> CheckRunEventAction -> Bool
$c<= :: CheckRunEventAction -> CheckRunEventAction -> Bool
< :: CheckRunEventAction -> CheckRunEventAction -> Bool
$c< :: CheckRunEventAction -> CheckRunEventAction -> Bool
compare :: CheckRunEventAction -> CheckRunEventAction -> Ordering
$ccompare :: CheckRunEventAction -> CheckRunEventAction -> Ordering
$cp1Ord :: Eq CheckRunEventAction
Ord, Int -> CheckRunEventAction -> ShowS
[CheckRunEventAction] -> ShowS
CheckRunEventAction -> String
(Int -> CheckRunEventAction -> ShowS)
-> (CheckRunEventAction -> String)
-> ([CheckRunEventAction] -> ShowS)
-> Show CheckRunEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CheckRunEventAction] -> ShowS
$cshowList :: [CheckRunEventAction] -> ShowS
show :: CheckRunEventAction -> String
$cshow :: CheckRunEventAction -> String
showsPrec :: Int -> CheckRunEventAction -> ShowS
$cshowsPrec :: Int -> CheckRunEventAction -> ShowS
Show, (forall x. CheckRunEventAction -> Rep CheckRunEventAction x)
-> (forall x. Rep CheckRunEventAction x -> CheckRunEventAction)
-> Generic CheckRunEventAction
forall x. Rep CheckRunEventAction x -> CheckRunEventAction
forall x. CheckRunEventAction -> Rep CheckRunEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CheckRunEventAction x -> CheckRunEventAction
$cfrom :: forall x. CheckRunEventAction -> Rep CheckRunEventAction x
Generic, Typeable, Typeable CheckRunEventAction
DataType
Constr
Typeable CheckRunEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> CheckRunEventAction
    -> c CheckRunEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c CheckRunEventAction)
-> (CheckRunEventAction -> Constr)
-> (CheckRunEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c CheckRunEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c CheckRunEventAction))
-> ((forall b. Data b => b -> b)
    -> CheckRunEventAction -> CheckRunEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> CheckRunEventAction -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> CheckRunEventAction -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> CheckRunEventAction -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> CheckRunEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> CheckRunEventAction -> m CheckRunEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> CheckRunEventAction -> m CheckRunEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> CheckRunEventAction -> m CheckRunEventAction)
-> Data CheckRunEventAction
CheckRunEventAction -> DataType
CheckRunEventAction -> Constr
(forall b. Data b => b -> b)
-> CheckRunEventAction -> CheckRunEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CheckRunEventAction
-> c CheckRunEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CheckRunEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> CheckRunEventAction -> u
forall u.
(forall d. Data d => d -> u) -> CheckRunEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CheckRunEventAction -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CheckRunEventAction -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> CheckRunEventAction -> m CheckRunEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CheckRunEventAction -> m CheckRunEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CheckRunEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CheckRunEventAction
-> c CheckRunEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c CheckRunEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CheckRunEventAction)
$cCheckRunEventActionOther :: Constr
$cCheckRunEventActionRequestedAction :: Constr
$cCheckRunEventActionRerequested :: Constr
$cCheckRunEventActionCompleted :: Constr
$cCheckRunEventActionCreated :: Constr
$tCheckRunEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> CheckRunEventAction -> m CheckRunEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CheckRunEventAction -> m CheckRunEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> CheckRunEventAction -> m CheckRunEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CheckRunEventAction -> m CheckRunEventAction
gmapM :: (forall d. Data d => d -> m d)
-> CheckRunEventAction -> m CheckRunEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> CheckRunEventAction -> m CheckRunEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> CheckRunEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> CheckRunEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> CheckRunEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> CheckRunEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CheckRunEventAction -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CheckRunEventAction -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CheckRunEventAction -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CheckRunEventAction -> r
gmapT :: (forall b. Data b => b -> b)
-> CheckRunEventAction -> CheckRunEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> CheckRunEventAction -> CheckRunEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CheckRunEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CheckRunEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c CheckRunEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c CheckRunEventAction)
dataTypeOf :: CheckRunEventAction -> DataType
$cdataTypeOf :: CheckRunEventAction -> DataType
toConstr :: CheckRunEventAction -> Constr
$ctoConstr :: CheckRunEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CheckRunEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CheckRunEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CheckRunEventAction
-> c CheckRunEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CheckRunEventAction
-> c CheckRunEventAction
$cp1Data :: Typeable CheckRunEventAction
Data)

instance NFData CheckRunEventAction where rnf :: CheckRunEventAction -> ()
rnf = CheckRunEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON CheckRunEventAction where
  parseJSON :: Value -> Parser CheckRunEventAction
parseJSON = String
-> (Text -> Parser CheckRunEventAction)
-> Value
-> Parser CheckRunEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Check run event action" ((Text -> Parser CheckRunEventAction)
 -> Value -> Parser CheckRunEventAction)
-> (Text -> Parser CheckRunEventAction)
-> Value
-> Parser CheckRunEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
      case Text
t of
          Text
"created"            -> CheckRunEventAction -> Parser CheckRunEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure CheckRunEventAction
CheckRunEventActionCreated
          Text
"completed"          -> CheckRunEventAction -> Parser CheckRunEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure CheckRunEventAction
CheckRunEventActionCompleted
          Text
"rerequested"        -> CheckRunEventAction -> Parser CheckRunEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure CheckRunEventAction
CheckRunEventActionRerequested
          Text
"requested_action"   -> CheckRunEventAction -> Parser CheckRunEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure CheckRunEventAction
CheckRunEventActionRequestedAction
          Text
_                    -> CheckRunEventAction -> Parser CheckRunEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> CheckRunEventAction
CheckRunEventActionOther Text
t)

-- | Triggered when a check run is created, rerequested, completed, or has a requested_action.

-- See <https://developer.github.com/v3/activity/events/types/#checkrunevent>.

data CheckRunEvent = CheckRunEvent
    { CheckRunEvent -> CheckRunEventAction
evCheckRunAction              :: !CheckRunEventAction
    , CheckRunEvent -> HookCheckRun
evCheckRunCheckRun            :: !HookCheckRun
    , CheckRunEvent -> Maybe HookCheckRunRequestedAction
evCheckRunRequestedAction     :: !(Maybe HookCheckRunRequestedAction)
    , CheckRunEvent -> HookRepository
evCheckRunRepository          :: !HookRepository
    , CheckRunEvent -> Maybe HookOrganization
evCheckRunOrganization        :: !(Maybe HookOrganization)
    , CheckRunEvent -> HookUser
evCheckRunSender              :: !HookUser
    , CheckRunEvent -> Maybe HookChecksInstallation
evCheckRunInstallation        :: !(Maybe HookChecksInstallation)
    }
    deriving (CheckRunEvent -> CheckRunEvent -> Bool
(CheckRunEvent -> CheckRunEvent -> Bool)
-> (CheckRunEvent -> CheckRunEvent -> Bool) -> Eq CheckRunEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CheckRunEvent -> CheckRunEvent -> Bool
$c/= :: CheckRunEvent -> CheckRunEvent -> Bool
== :: CheckRunEvent -> CheckRunEvent -> Bool
$c== :: CheckRunEvent -> CheckRunEvent -> Bool
Eq, Int -> CheckRunEvent -> ShowS
[CheckRunEvent] -> ShowS
CheckRunEvent -> String
(Int -> CheckRunEvent -> ShowS)
-> (CheckRunEvent -> String)
-> ([CheckRunEvent] -> ShowS)
-> Show CheckRunEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CheckRunEvent] -> ShowS
$cshowList :: [CheckRunEvent] -> ShowS
show :: CheckRunEvent -> String
$cshow :: CheckRunEvent -> String
showsPrec :: Int -> CheckRunEvent -> ShowS
$cshowsPrec :: Int -> CheckRunEvent -> ShowS
Show, Typeable, Typeable CheckRunEvent
DataType
Constr
Typeable CheckRunEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> CheckRunEvent -> c CheckRunEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c CheckRunEvent)
-> (CheckRunEvent -> Constr)
-> (CheckRunEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c CheckRunEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c CheckRunEvent))
-> ((forall b. Data b => b -> b) -> CheckRunEvent -> CheckRunEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> CheckRunEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> CheckRunEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> CheckRunEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> CheckRunEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> CheckRunEvent -> m CheckRunEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> CheckRunEvent -> m CheckRunEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> CheckRunEvent -> m CheckRunEvent)
-> Data CheckRunEvent
CheckRunEvent -> DataType
CheckRunEvent -> Constr
(forall b. Data b => b -> b) -> CheckRunEvent -> CheckRunEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CheckRunEvent -> c CheckRunEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CheckRunEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> CheckRunEvent -> u
forall u. (forall d. Data d => d -> u) -> CheckRunEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CheckRunEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CheckRunEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> CheckRunEvent -> m CheckRunEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> CheckRunEvent -> m CheckRunEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CheckRunEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CheckRunEvent -> c CheckRunEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c CheckRunEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CheckRunEvent)
$cCheckRunEvent :: Constr
$tCheckRunEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> CheckRunEvent -> m CheckRunEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> CheckRunEvent -> m CheckRunEvent
gmapMp :: (forall d. Data d => d -> m d) -> CheckRunEvent -> m CheckRunEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> CheckRunEvent -> m CheckRunEvent
gmapM :: (forall d. Data d => d -> m d) -> CheckRunEvent -> m CheckRunEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> CheckRunEvent -> m CheckRunEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> CheckRunEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> CheckRunEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> CheckRunEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> CheckRunEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CheckRunEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CheckRunEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CheckRunEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CheckRunEvent -> r
gmapT :: (forall b. Data b => b -> b) -> CheckRunEvent -> CheckRunEvent
$cgmapT :: (forall b. Data b => b -> b) -> CheckRunEvent -> CheckRunEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CheckRunEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CheckRunEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c CheckRunEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c CheckRunEvent)
dataTypeOf :: CheckRunEvent -> DataType
$cdataTypeOf :: CheckRunEvent -> DataType
toConstr :: CheckRunEvent -> Constr
$ctoConstr :: CheckRunEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CheckRunEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CheckRunEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CheckRunEvent -> c CheckRunEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CheckRunEvent -> c CheckRunEvent
$cp1Data :: Typeable CheckRunEvent
Data, (forall x. CheckRunEvent -> Rep CheckRunEvent x)
-> (forall x. Rep CheckRunEvent x -> CheckRunEvent)
-> Generic CheckRunEvent
forall x. Rep CheckRunEvent x -> CheckRunEvent
forall x. CheckRunEvent -> Rep CheckRunEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CheckRunEvent x -> CheckRunEvent
$cfrom :: forall x. CheckRunEvent -> Rep CheckRunEvent x
Generic)

instance EventHasSender CheckRunEvent where senderOfEvent :: CheckRunEvent -> HookUser
senderOfEvent = CheckRunEvent -> HookUser
evCheckRunSender
instance EventHasRepo CheckRunEvent where repoForEvent :: CheckRunEvent -> HookRepository
repoForEvent = CheckRunEvent -> HookRepository
evCheckRunRepository
instance NFData CheckRunEvent where rnf :: CheckRunEvent -> ()
rnf = CheckRunEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

-- | Represents the "action" field in the

-- 'CommitCommentEvent' payload.

data CommitCommentEventAction
    -- | Decodes from "created"

    = CommitCommentActionCreated
    -- | The result of decoding an unknown commit comment event action type

    | CommitCommentActionOther !Text
    deriving (CommitCommentEventAction -> CommitCommentEventAction -> Bool
(CommitCommentEventAction -> CommitCommentEventAction -> Bool)
-> (CommitCommentEventAction -> CommitCommentEventAction -> Bool)
-> Eq CommitCommentEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CommitCommentEventAction -> CommitCommentEventAction -> Bool
$c/= :: CommitCommentEventAction -> CommitCommentEventAction -> Bool
== :: CommitCommentEventAction -> CommitCommentEventAction -> Bool
$c== :: CommitCommentEventAction -> CommitCommentEventAction -> Bool
Eq, Eq CommitCommentEventAction
Eq CommitCommentEventAction
-> (CommitCommentEventAction
    -> CommitCommentEventAction -> Ordering)
-> (CommitCommentEventAction -> CommitCommentEventAction -> Bool)
-> (CommitCommentEventAction -> CommitCommentEventAction -> Bool)
-> (CommitCommentEventAction -> CommitCommentEventAction -> Bool)
-> (CommitCommentEventAction -> CommitCommentEventAction -> Bool)
-> (CommitCommentEventAction
    -> CommitCommentEventAction -> CommitCommentEventAction)
-> (CommitCommentEventAction
    -> CommitCommentEventAction -> CommitCommentEventAction)
-> Ord CommitCommentEventAction
CommitCommentEventAction -> CommitCommentEventAction -> Bool
CommitCommentEventAction -> CommitCommentEventAction -> Ordering
CommitCommentEventAction
-> CommitCommentEventAction -> CommitCommentEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: CommitCommentEventAction
-> CommitCommentEventAction -> CommitCommentEventAction
$cmin :: CommitCommentEventAction
-> CommitCommentEventAction -> CommitCommentEventAction
max :: CommitCommentEventAction
-> CommitCommentEventAction -> CommitCommentEventAction
$cmax :: CommitCommentEventAction
-> CommitCommentEventAction -> CommitCommentEventAction
>= :: CommitCommentEventAction -> CommitCommentEventAction -> Bool
$c>= :: CommitCommentEventAction -> CommitCommentEventAction -> Bool
> :: CommitCommentEventAction -> CommitCommentEventAction -> Bool
$c> :: CommitCommentEventAction -> CommitCommentEventAction -> Bool
<= :: CommitCommentEventAction -> CommitCommentEventAction -> Bool
$c<= :: CommitCommentEventAction -> CommitCommentEventAction -> Bool
< :: CommitCommentEventAction -> CommitCommentEventAction -> Bool
$c< :: CommitCommentEventAction -> CommitCommentEventAction -> Bool
compare :: CommitCommentEventAction -> CommitCommentEventAction -> Ordering
$ccompare :: CommitCommentEventAction -> CommitCommentEventAction -> Ordering
$cp1Ord :: Eq CommitCommentEventAction
Ord, Int -> CommitCommentEventAction -> ShowS
[CommitCommentEventAction] -> ShowS
CommitCommentEventAction -> String
(Int -> CommitCommentEventAction -> ShowS)
-> (CommitCommentEventAction -> String)
-> ([CommitCommentEventAction] -> ShowS)
-> Show CommitCommentEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CommitCommentEventAction] -> ShowS
$cshowList :: [CommitCommentEventAction] -> ShowS
show :: CommitCommentEventAction -> String
$cshow :: CommitCommentEventAction -> String
showsPrec :: Int -> CommitCommentEventAction -> ShowS
$cshowsPrec :: Int -> CommitCommentEventAction -> ShowS
Show, (forall x.
 CommitCommentEventAction -> Rep CommitCommentEventAction x)
-> (forall x.
    Rep CommitCommentEventAction x -> CommitCommentEventAction)
-> Generic CommitCommentEventAction
forall x.
Rep CommitCommentEventAction x -> CommitCommentEventAction
forall x.
CommitCommentEventAction -> Rep CommitCommentEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CommitCommentEventAction x -> CommitCommentEventAction
$cfrom :: forall x.
CommitCommentEventAction -> Rep CommitCommentEventAction x
Generic, Typeable, Typeable CommitCommentEventAction
DataType
Constr
Typeable CommitCommentEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> CommitCommentEventAction
    -> c CommitCommentEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c CommitCommentEventAction)
-> (CommitCommentEventAction -> Constr)
-> (CommitCommentEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d))
    -> Maybe (c CommitCommentEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c CommitCommentEventAction))
-> ((forall b. Data b => b -> b)
    -> CommitCommentEventAction -> CommitCommentEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> CommitCommentEventAction
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> CommitCommentEventAction
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> CommitCommentEventAction -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u) -> CommitCommentEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> CommitCommentEventAction -> m CommitCommentEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> CommitCommentEventAction -> m CommitCommentEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> CommitCommentEventAction -> m CommitCommentEventAction)
-> Data CommitCommentEventAction
CommitCommentEventAction -> DataType
CommitCommentEventAction -> Constr
(forall b. Data b => b -> b)
-> CommitCommentEventAction -> CommitCommentEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CommitCommentEventAction
-> c CommitCommentEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CommitCommentEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int
-> (forall d. Data d => d -> u) -> CommitCommentEventAction -> u
forall u.
(forall d. Data d => d -> u) -> CommitCommentEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> CommitCommentEventAction
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> CommitCommentEventAction
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> CommitCommentEventAction -> m CommitCommentEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CommitCommentEventAction -> m CommitCommentEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CommitCommentEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CommitCommentEventAction
-> c CommitCommentEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c CommitCommentEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CommitCommentEventAction)
$cCommitCommentActionOther :: Constr
$cCommitCommentActionCreated :: Constr
$tCommitCommentEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> CommitCommentEventAction -> m CommitCommentEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CommitCommentEventAction -> m CommitCommentEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> CommitCommentEventAction -> m CommitCommentEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CommitCommentEventAction -> m CommitCommentEventAction
gmapM :: (forall d. Data d => d -> m d)
-> CommitCommentEventAction -> m CommitCommentEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> CommitCommentEventAction -> m CommitCommentEventAction
gmapQi :: Int
-> (forall d. Data d => d -> u) -> CommitCommentEventAction -> u
$cgmapQi :: forall u.
Int
-> (forall d. Data d => d -> u) -> CommitCommentEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> CommitCommentEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> CommitCommentEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> CommitCommentEventAction
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> CommitCommentEventAction
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> CommitCommentEventAction
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> CommitCommentEventAction
-> r
gmapT :: (forall b. Data b => b -> b)
-> CommitCommentEventAction -> CommitCommentEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> CommitCommentEventAction -> CommitCommentEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CommitCommentEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CommitCommentEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c CommitCommentEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c CommitCommentEventAction)
dataTypeOf :: CommitCommentEventAction -> DataType
$cdataTypeOf :: CommitCommentEventAction -> DataType
toConstr :: CommitCommentEventAction -> Constr
$ctoConstr :: CommitCommentEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CommitCommentEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CommitCommentEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CommitCommentEventAction
-> c CommitCommentEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CommitCommentEventAction
-> c CommitCommentEventAction
$cp1Data :: Typeable CommitCommentEventAction
Data)

instance NFData CommitCommentEventAction where rnf :: CommitCommentEventAction -> ()
rnf = CommitCommentEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON CommitCommentEventAction where
  parseJSON :: Value -> Parser CommitCommentEventAction
parseJSON = String
-> (Text -> Parser CommitCommentEventAction)
-> Value
-> Parser CommitCommentEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Commit comment event action" ((Text -> Parser CommitCommentEventAction)
 -> Value -> Parser CommitCommentEventAction)
-> (Text -> Parser CommitCommentEventAction)
-> Value
-> Parser CommitCommentEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
      case Text
t of
          Text
"created"       -> CommitCommentEventAction -> Parser CommitCommentEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure CommitCommentEventAction
CommitCommentActionCreated
          Text
_               -> CommitCommentEventAction -> Parser CommitCommentEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> CommitCommentEventAction
CommitCommentActionOther Text
t)

-- | Triggered when a commit comment is created.

-- See <https://developer.github.com/v3/activity/events/types/#commitcommentevent>.

data CommitCommentEvent = CommitCommentEvent
    { CommitCommentEvent -> CommitCommentEventAction
evCommitCommentAction     :: !CommitCommentEventAction
    , CommitCommentEvent -> HookCommitComment
evCommitCommentPayload    :: !HookCommitComment
    , CommitCommentEvent -> HookRepository
evCommitCommentRepo       :: !HookRepository
    , CommitCommentEvent -> HookUser
evCommitCommentSender     :: !HookUser
    }
    deriving (CommitCommentEvent -> CommitCommentEvent -> Bool
(CommitCommentEvent -> CommitCommentEvent -> Bool)
-> (CommitCommentEvent -> CommitCommentEvent -> Bool)
-> Eq CommitCommentEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CommitCommentEvent -> CommitCommentEvent -> Bool
$c/= :: CommitCommentEvent -> CommitCommentEvent -> Bool
== :: CommitCommentEvent -> CommitCommentEvent -> Bool
$c== :: CommitCommentEvent -> CommitCommentEvent -> Bool
Eq, Int -> CommitCommentEvent -> ShowS
[CommitCommentEvent] -> ShowS
CommitCommentEvent -> String
(Int -> CommitCommentEvent -> ShowS)
-> (CommitCommentEvent -> String)
-> ([CommitCommentEvent] -> ShowS)
-> Show CommitCommentEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CommitCommentEvent] -> ShowS
$cshowList :: [CommitCommentEvent] -> ShowS
show :: CommitCommentEvent -> String
$cshow :: CommitCommentEvent -> String
showsPrec :: Int -> CommitCommentEvent -> ShowS
$cshowsPrec :: Int -> CommitCommentEvent -> ShowS
Show, Typeable, Typeable CommitCommentEvent
DataType
Constr
Typeable CommitCommentEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> CommitCommentEvent
    -> c CommitCommentEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c CommitCommentEvent)
-> (CommitCommentEvent -> Constr)
-> (CommitCommentEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c CommitCommentEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c CommitCommentEvent))
-> ((forall b. Data b => b -> b)
    -> CommitCommentEvent -> CommitCommentEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> CommitCommentEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> CommitCommentEvent -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> CommitCommentEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> CommitCommentEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> CommitCommentEvent -> m CommitCommentEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> CommitCommentEvent -> m CommitCommentEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> CommitCommentEvent -> m CommitCommentEvent)
-> Data CommitCommentEvent
CommitCommentEvent -> DataType
CommitCommentEvent -> Constr
(forall b. Data b => b -> b)
-> CommitCommentEvent -> CommitCommentEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CommitCommentEvent
-> c CommitCommentEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CommitCommentEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> CommitCommentEvent -> u
forall u. (forall d. Data d => d -> u) -> CommitCommentEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CommitCommentEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CommitCommentEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> CommitCommentEvent -> m CommitCommentEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CommitCommentEvent -> m CommitCommentEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CommitCommentEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CommitCommentEvent
-> c CommitCommentEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c CommitCommentEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CommitCommentEvent)
$cCommitCommentEvent :: Constr
$tCommitCommentEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> CommitCommentEvent -> m CommitCommentEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CommitCommentEvent -> m CommitCommentEvent
gmapMp :: (forall d. Data d => d -> m d)
-> CommitCommentEvent -> m CommitCommentEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CommitCommentEvent -> m CommitCommentEvent
gmapM :: (forall d. Data d => d -> m d)
-> CommitCommentEvent -> m CommitCommentEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> CommitCommentEvent -> m CommitCommentEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> CommitCommentEvent -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> CommitCommentEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> CommitCommentEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> CommitCommentEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CommitCommentEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CommitCommentEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CommitCommentEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CommitCommentEvent -> r
gmapT :: (forall b. Data b => b -> b)
-> CommitCommentEvent -> CommitCommentEvent
$cgmapT :: (forall b. Data b => b -> b)
-> CommitCommentEvent -> CommitCommentEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CommitCommentEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CommitCommentEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c CommitCommentEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c CommitCommentEvent)
dataTypeOf :: CommitCommentEvent -> DataType
$cdataTypeOf :: CommitCommentEvent -> DataType
toConstr :: CommitCommentEvent -> Constr
$ctoConstr :: CommitCommentEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CommitCommentEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CommitCommentEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CommitCommentEvent
-> c CommitCommentEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CommitCommentEvent
-> c CommitCommentEvent
$cp1Data :: Typeable CommitCommentEvent
Data, (forall x. CommitCommentEvent -> Rep CommitCommentEvent x)
-> (forall x. Rep CommitCommentEvent x -> CommitCommentEvent)
-> Generic CommitCommentEvent
forall x. Rep CommitCommentEvent x -> CommitCommentEvent
forall x. CommitCommentEvent -> Rep CommitCommentEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CommitCommentEvent x -> CommitCommentEvent
$cfrom :: forall x. CommitCommentEvent -> Rep CommitCommentEvent x
Generic)

instance EventHasSender CommitCommentEvent where senderOfEvent :: CommitCommentEvent -> HookUser
senderOfEvent = CommitCommentEvent -> HookUser
evCommitCommentSender
instance EventHasRepo CommitCommentEvent where repoForEvent :: CommitCommentEvent -> HookRepository
repoForEvent = CommitCommentEvent -> HookRepository
evCommitCommentRepo
instance NFData CommitCommentEvent where rnf :: CommitCommentEvent -> ()
rnf = CommitCommentEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


-- | Represents a created repository, branch, or tag.

-- Note: webhooks will not receive this event for created repositories.

-- Additionally, webhooks will not receive this event for tags if more than three tags are pushed at once.

-- See <https://developer.github.com/v3/activity/events/types/#createevent>.

data CreateEvent = CreateEvent
    { CreateEvent -> Text
evCreateRef               :: !Text
    , CreateEvent -> Text
evCreateRefType           :: !Text
    , CreateEvent -> Text
evCreateMasterBranch      :: !Text
    , CreateEvent -> Text
evCreateDescription       :: !Text
    , CreateEvent -> OwnerType
evCreatePusherType        :: !OwnerType
    , CreateEvent -> HookRepository
evCreateRepo              :: !HookRepository
    , CreateEvent -> HookUser
evCreateSender            :: !HookUser
    }
    deriving (CreateEvent -> CreateEvent -> Bool
(CreateEvent -> CreateEvent -> Bool)
-> (CreateEvent -> CreateEvent -> Bool) -> Eq CreateEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateEvent -> CreateEvent -> Bool
$c/= :: CreateEvent -> CreateEvent -> Bool
== :: CreateEvent -> CreateEvent -> Bool
$c== :: CreateEvent -> CreateEvent -> Bool
Eq, Int -> CreateEvent -> ShowS
[CreateEvent] -> ShowS
CreateEvent -> String
(Int -> CreateEvent -> ShowS)
-> (CreateEvent -> String)
-> ([CreateEvent] -> ShowS)
-> Show CreateEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateEvent] -> ShowS
$cshowList :: [CreateEvent] -> ShowS
show :: CreateEvent -> String
$cshow :: CreateEvent -> String
showsPrec :: Int -> CreateEvent -> ShowS
$cshowsPrec :: Int -> CreateEvent -> ShowS
Show, Typeable, Typeable CreateEvent
DataType
Constr
Typeable CreateEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> CreateEvent -> c CreateEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c CreateEvent)
-> (CreateEvent -> Constr)
-> (CreateEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c CreateEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c CreateEvent))
-> ((forall b. Data b => b -> b) -> CreateEvent -> CreateEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> CreateEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> CreateEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> CreateEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> CreateEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> CreateEvent -> m CreateEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> CreateEvent -> m CreateEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> CreateEvent -> m CreateEvent)
-> Data CreateEvent
CreateEvent -> DataType
CreateEvent -> Constr
(forall b. Data b => b -> b) -> CreateEvent -> CreateEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CreateEvent -> c CreateEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CreateEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> CreateEvent -> u
forall u. (forall d. Data d => d -> u) -> CreateEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CreateEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CreateEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> CreateEvent -> m CreateEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> CreateEvent -> m CreateEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CreateEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CreateEvent -> c CreateEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c CreateEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CreateEvent)
$cCreateEvent :: Constr
$tCreateEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> CreateEvent -> m CreateEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> CreateEvent -> m CreateEvent
gmapMp :: (forall d. Data d => d -> m d) -> CreateEvent -> m CreateEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> CreateEvent -> m CreateEvent
gmapM :: (forall d. Data d => d -> m d) -> CreateEvent -> m CreateEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> CreateEvent -> m CreateEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> CreateEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> CreateEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> CreateEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> CreateEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CreateEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CreateEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CreateEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CreateEvent -> r
gmapT :: (forall b. Data b => b -> b) -> CreateEvent -> CreateEvent
$cgmapT :: (forall b. Data b => b -> b) -> CreateEvent -> CreateEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CreateEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c CreateEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c CreateEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c CreateEvent)
dataTypeOf :: CreateEvent -> DataType
$cdataTypeOf :: CreateEvent -> DataType
toConstr :: CreateEvent -> Constr
$ctoConstr :: CreateEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CreateEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c CreateEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CreateEvent -> c CreateEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CreateEvent -> c CreateEvent
$cp1Data :: Typeable CreateEvent
Data, (forall x. CreateEvent -> Rep CreateEvent x)
-> (forall x. Rep CreateEvent x -> CreateEvent)
-> Generic CreateEvent
forall x. Rep CreateEvent x -> CreateEvent
forall x. CreateEvent -> Rep CreateEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateEvent x -> CreateEvent
$cfrom :: forall x. CreateEvent -> Rep CreateEvent x
Generic)

instance EventHasSender CreateEvent where senderOfEvent :: CreateEvent -> HookUser
senderOfEvent = CreateEvent -> HookUser
evCreateSender
instance EventHasRepo CreateEvent where repoForEvent :: CreateEvent -> HookRepository
repoForEvent = CreateEvent -> HookRepository
evCreateRepo
instance NFData CreateEvent where rnf :: CreateEvent -> ()
rnf = CreateEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


-- | Represents a deleted branch or tag.

-- Note: webhooks will not receive this event for tags if more than three tags are deleted at once.

-- See <https://developer.github.com/v3/activity/events/types/#deleteevent>.

data DeleteEvent = DeleteEvent
    { DeleteEvent -> Text
evDeleteRef               :: !Text
    , DeleteEvent -> Text
evDeleteRefType           :: !Text
    , DeleteEvent -> OwnerType
evDeletePusherType        :: !OwnerType
    , DeleteEvent -> HookRepository
evDeleteRepo              :: !HookRepository
    , DeleteEvent -> HookUser
evDeleteSender            :: !HookUser
    }
    deriving (DeleteEvent -> DeleteEvent -> Bool
(DeleteEvent -> DeleteEvent -> Bool)
-> (DeleteEvent -> DeleteEvent -> Bool) -> Eq DeleteEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteEvent -> DeleteEvent -> Bool
$c/= :: DeleteEvent -> DeleteEvent -> Bool
== :: DeleteEvent -> DeleteEvent -> Bool
$c== :: DeleteEvent -> DeleteEvent -> Bool
Eq, Int -> DeleteEvent -> ShowS
[DeleteEvent] -> ShowS
DeleteEvent -> String
(Int -> DeleteEvent -> ShowS)
-> (DeleteEvent -> String)
-> ([DeleteEvent] -> ShowS)
-> Show DeleteEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteEvent] -> ShowS
$cshowList :: [DeleteEvent] -> ShowS
show :: DeleteEvent -> String
$cshow :: DeleteEvent -> String
showsPrec :: Int -> DeleteEvent -> ShowS
$cshowsPrec :: Int -> DeleteEvent -> ShowS
Show, Typeable, Typeable DeleteEvent
DataType
Constr
Typeable DeleteEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> DeleteEvent -> c DeleteEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c DeleteEvent)
-> (DeleteEvent -> Constr)
-> (DeleteEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c DeleteEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c DeleteEvent))
-> ((forall b. Data b => b -> b) -> DeleteEvent -> DeleteEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> DeleteEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> DeleteEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> DeleteEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> DeleteEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> DeleteEvent -> m DeleteEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> DeleteEvent -> m DeleteEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> DeleteEvent -> m DeleteEvent)
-> Data DeleteEvent
DeleteEvent -> DataType
DeleteEvent -> Constr
(forall b. Data b => b -> b) -> DeleteEvent -> DeleteEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> DeleteEvent -> c DeleteEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DeleteEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> DeleteEvent -> u
forall u. (forall d. Data d => d -> u) -> DeleteEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> DeleteEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> DeleteEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> DeleteEvent -> m DeleteEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> DeleteEvent -> m DeleteEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DeleteEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> DeleteEvent -> c DeleteEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c DeleteEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c DeleteEvent)
$cDeleteEvent :: Constr
$tDeleteEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> DeleteEvent -> m DeleteEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> DeleteEvent -> m DeleteEvent
gmapMp :: (forall d. Data d => d -> m d) -> DeleteEvent -> m DeleteEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> DeleteEvent -> m DeleteEvent
gmapM :: (forall d. Data d => d -> m d) -> DeleteEvent -> m DeleteEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> DeleteEvent -> m DeleteEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> DeleteEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> DeleteEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> DeleteEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> DeleteEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> DeleteEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> DeleteEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> DeleteEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> DeleteEvent -> r
gmapT :: (forall b. Data b => b -> b) -> DeleteEvent -> DeleteEvent
$cgmapT :: (forall b. Data b => b -> b) -> DeleteEvent -> DeleteEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c DeleteEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c DeleteEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c DeleteEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c DeleteEvent)
dataTypeOf :: DeleteEvent -> DataType
$cdataTypeOf :: DeleteEvent -> DataType
toConstr :: DeleteEvent -> Constr
$ctoConstr :: DeleteEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DeleteEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DeleteEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> DeleteEvent -> c DeleteEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> DeleteEvent -> c DeleteEvent
$cp1Data :: Typeable DeleteEvent
Data, (forall x. DeleteEvent -> Rep DeleteEvent x)
-> (forall x. Rep DeleteEvent x -> DeleteEvent)
-> Generic DeleteEvent
forall x. Rep DeleteEvent x -> DeleteEvent
forall x. DeleteEvent -> Rep DeleteEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeleteEvent x -> DeleteEvent
$cfrom :: forall x. DeleteEvent -> Rep DeleteEvent x
Generic)

instance EventHasSender DeleteEvent where senderOfEvent :: DeleteEvent -> HookUser
senderOfEvent = DeleteEvent -> HookUser
evDeleteSender
instance EventHasRepo DeleteEvent where repoForEvent :: DeleteEvent -> HookRepository
repoForEvent = DeleteEvent -> HookRepository
evDeleteRepo
instance NFData DeleteEvent where rnf :: DeleteEvent -> ()
rnf = DeleteEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


-- | Represents a deployment.

-- Events of this type are not visible in timelines. These events are only used to trigger hooks.

-- See <https://developer.github.com/v3/activity/events/types/#deploymentevent>.

data DeploymentEvent = DeploymentEvent
    { DeploymentEvent -> HookDeployment
evDeploymentInfo          :: !HookDeployment
    , DeploymentEvent -> HookRepository
evDeploymentRepo          :: !HookRepository
    , DeploymentEvent -> HookUser
evDeploymentSender        :: !HookUser
    }
    deriving (DeploymentEvent -> DeploymentEvent -> Bool
(DeploymentEvent -> DeploymentEvent -> Bool)
-> (DeploymentEvent -> DeploymentEvent -> Bool)
-> Eq DeploymentEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeploymentEvent -> DeploymentEvent -> Bool
$c/= :: DeploymentEvent -> DeploymentEvent -> Bool
== :: DeploymentEvent -> DeploymentEvent -> Bool
$c== :: DeploymentEvent -> DeploymentEvent -> Bool
Eq, Int -> DeploymentEvent -> ShowS
[DeploymentEvent] -> ShowS
DeploymentEvent -> String
(Int -> DeploymentEvent -> ShowS)
-> (DeploymentEvent -> String)
-> ([DeploymentEvent] -> ShowS)
-> Show DeploymentEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeploymentEvent] -> ShowS
$cshowList :: [DeploymentEvent] -> ShowS
show :: DeploymentEvent -> String
$cshow :: DeploymentEvent -> String
showsPrec :: Int -> DeploymentEvent -> ShowS
$cshowsPrec :: Int -> DeploymentEvent -> ShowS
Show, Typeable, Typeable DeploymentEvent
DataType
Constr
Typeable DeploymentEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> DeploymentEvent -> c DeploymentEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c DeploymentEvent)
-> (DeploymentEvent -> Constr)
-> (DeploymentEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c DeploymentEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c DeploymentEvent))
-> ((forall b. Data b => b -> b)
    -> DeploymentEvent -> DeploymentEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> DeploymentEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> DeploymentEvent -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> DeploymentEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> DeploymentEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> DeploymentEvent -> m DeploymentEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> DeploymentEvent -> m DeploymentEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> DeploymentEvent -> m DeploymentEvent)
-> Data DeploymentEvent
DeploymentEvent -> DataType
DeploymentEvent -> Constr
(forall b. Data b => b -> b) -> DeploymentEvent -> DeploymentEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> DeploymentEvent -> c DeploymentEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DeploymentEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> DeploymentEvent -> u
forall u. (forall d. Data d => d -> u) -> DeploymentEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> DeploymentEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> DeploymentEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> DeploymentEvent -> m DeploymentEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> DeploymentEvent -> m DeploymentEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DeploymentEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> DeploymentEvent -> c DeploymentEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c DeploymentEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c DeploymentEvent)
$cDeploymentEvent :: Constr
$tDeploymentEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> DeploymentEvent -> m DeploymentEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> DeploymentEvent -> m DeploymentEvent
gmapMp :: (forall d. Data d => d -> m d)
-> DeploymentEvent -> m DeploymentEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> DeploymentEvent -> m DeploymentEvent
gmapM :: (forall d. Data d => d -> m d)
-> DeploymentEvent -> m DeploymentEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> DeploymentEvent -> m DeploymentEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> DeploymentEvent -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> DeploymentEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> DeploymentEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> DeploymentEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> DeploymentEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> DeploymentEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> DeploymentEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> DeploymentEvent -> r
gmapT :: (forall b. Data b => b -> b) -> DeploymentEvent -> DeploymentEvent
$cgmapT :: (forall b. Data b => b -> b) -> DeploymentEvent -> DeploymentEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c DeploymentEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c DeploymentEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c DeploymentEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c DeploymentEvent)
dataTypeOf :: DeploymentEvent -> DataType
$cdataTypeOf :: DeploymentEvent -> DataType
toConstr :: DeploymentEvent -> Constr
$ctoConstr :: DeploymentEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DeploymentEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DeploymentEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> DeploymentEvent -> c DeploymentEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> DeploymentEvent -> c DeploymentEvent
$cp1Data :: Typeable DeploymentEvent
Data, (forall x. DeploymentEvent -> Rep DeploymentEvent x)
-> (forall x. Rep DeploymentEvent x -> DeploymentEvent)
-> Generic DeploymentEvent
forall x. Rep DeploymentEvent x -> DeploymentEvent
forall x. DeploymentEvent -> Rep DeploymentEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeploymentEvent x -> DeploymentEvent
$cfrom :: forall x. DeploymentEvent -> Rep DeploymentEvent x
Generic)

instance EventHasSender DeploymentEvent where senderOfEvent :: DeploymentEvent -> HookUser
senderOfEvent = DeploymentEvent -> HookUser
evDeploymentSender
instance EventHasRepo DeploymentEvent where repoForEvent :: DeploymentEvent -> HookRepository
repoForEvent = DeploymentEvent -> HookRepository
evDeploymentRepo
instance NFData DeploymentEvent where rnf :: DeploymentEvent -> ()
rnf = DeploymentEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


-- | Represents a deployment status.

-- Events of this type are not visible in timelines. These events are only used to trigger hooks.

-- See <https://developer.github.com/v3/activity/events/types/#deploymentstatusevent>.

data DeploymentStatusEvent = DeploymentStatusEvent
    { DeploymentStatusEvent -> HookDeploymentStatus
evDeplStatusInfo          :: !HookDeploymentStatus
    , DeploymentStatusEvent -> HookDeployment
evDeplStatusDeployment    :: !HookDeployment
    , DeploymentStatusEvent -> HookRepository
evDeplStatusRepo          :: !HookRepository
    , DeploymentStatusEvent -> HookUser
evDeplStatusSender        :: !HookUser
    }
    deriving (DeploymentStatusEvent -> DeploymentStatusEvent -> Bool
(DeploymentStatusEvent -> DeploymentStatusEvent -> Bool)
-> (DeploymentStatusEvent -> DeploymentStatusEvent -> Bool)
-> Eq DeploymentStatusEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeploymentStatusEvent -> DeploymentStatusEvent -> Bool
$c/= :: DeploymentStatusEvent -> DeploymentStatusEvent -> Bool
== :: DeploymentStatusEvent -> DeploymentStatusEvent -> Bool
$c== :: DeploymentStatusEvent -> DeploymentStatusEvent -> Bool
Eq, Int -> DeploymentStatusEvent -> ShowS
[DeploymentStatusEvent] -> ShowS
DeploymentStatusEvent -> String
(Int -> DeploymentStatusEvent -> ShowS)
-> (DeploymentStatusEvent -> String)
-> ([DeploymentStatusEvent] -> ShowS)
-> Show DeploymentStatusEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeploymentStatusEvent] -> ShowS
$cshowList :: [DeploymentStatusEvent] -> ShowS
show :: DeploymentStatusEvent -> String
$cshow :: DeploymentStatusEvent -> String
showsPrec :: Int -> DeploymentStatusEvent -> ShowS
$cshowsPrec :: Int -> DeploymentStatusEvent -> ShowS
Show, Typeable, Typeable DeploymentStatusEvent
DataType
Constr
Typeable DeploymentStatusEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> DeploymentStatusEvent
    -> c DeploymentStatusEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c DeploymentStatusEvent)
-> (DeploymentStatusEvent -> Constr)
-> (DeploymentStatusEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c DeploymentStatusEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c DeploymentStatusEvent))
-> ((forall b. Data b => b -> b)
    -> DeploymentStatusEvent -> DeploymentStatusEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> DeploymentStatusEvent
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> DeploymentStatusEvent
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> DeploymentStatusEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> DeploymentStatusEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> DeploymentStatusEvent -> m DeploymentStatusEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> DeploymentStatusEvent -> m DeploymentStatusEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> DeploymentStatusEvent -> m DeploymentStatusEvent)
-> Data DeploymentStatusEvent
DeploymentStatusEvent -> DataType
DeploymentStatusEvent -> Constr
(forall b. Data b => b -> b)
-> DeploymentStatusEvent -> DeploymentStatusEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> DeploymentStatusEvent
-> c DeploymentStatusEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DeploymentStatusEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> DeploymentStatusEvent -> u
forall u.
(forall d. Data d => d -> u) -> DeploymentStatusEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> DeploymentStatusEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> DeploymentStatusEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> DeploymentStatusEvent -> m DeploymentStatusEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> DeploymentStatusEvent -> m DeploymentStatusEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DeploymentStatusEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> DeploymentStatusEvent
-> c DeploymentStatusEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c DeploymentStatusEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c DeploymentStatusEvent)
$cDeploymentStatusEvent :: Constr
$tDeploymentStatusEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> DeploymentStatusEvent -> m DeploymentStatusEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> DeploymentStatusEvent -> m DeploymentStatusEvent
gmapMp :: (forall d. Data d => d -> m d)
-> DeploymentStatusEvent -> m DeploymentStatusEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> DeploymentStatusEvent -> m DeploymentStatusEvent
gmapM :: (forall d. Data d => d -> m d)
-> DeploymentStatusEvent -> m DeploymentStatusEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> DeploymentStatusEvent -> m DeploymentStatusEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> DeploymentStatusEvent -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> DeploymentStatusEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> DeploymentStatusEvent -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> DeploymentStatusEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> DeploymentStatusEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> DeploymentStatusEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> DeploymentStatusEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> DeploymentStatusEvent -> r
gmapT :: (forall b. Data b => b -> b)
-> DeploymentStatusEvent -> DeploymentStatusEvent
$cgmapT :: (forall b. Data b => b -> b)
-> DeploymentStatusEvent -> DeploymentStatusEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c DeploymentStatusEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c DeploymentStatusEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c DeploymentStatusEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c DeploymentStatusEvent)
dataTypeOf :: DeploymentStatusEvent -> DataType
$cdataTypeOf :: DeploymentStatusEvent -> DataType
toConstr :: DeploymentStatusEvent -> Constr
$ctoConstr :: DeploymentStatusEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DeploymentStatusEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DeploymentStatusEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> DeploymentStatusEvent
-> c DeploymentStatusEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> DeploymentStatusEvent
-> c DeploymentStatusEvent
$cp1Data :: Typeable DeploymentStatusEvent
Data, (forall x. DeploymentStatusEvent -> Rep DeploymentStatusEvent x)
-> (forall x. Rep DeploymentStatusEvent x -> DeploymentStatusEvent)
-> Generic DeploymentStatusEvent
forall x. Rep DeploymentStatusEvent x -> DeploymentStatusEvent
forall x. DeploymentStatusEvent -> Rep DeploymentStatusEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeploymentStatusEvent x -> DeploymentStatusEvent
$cfrom :: forall x. DeploymentStatusEvent -> Rep DeploymentStatusEvent x
Generic)

instance EventHasSender DeploymentStatusEvent where senderOfEvent :: DeploymentStatusEvent -> HookUser
senderOfEvent = DeploymentStatusEvent -> HookUser
evDeplStatusSender
instance EventHasRepo DeploymentStatusEvent where repoForEvent :: DeploymentStatusEvent -> HookRepository
repoForEvent = DeploymentStatusEvent -> HookRepository
evDeplStatusRepo
instance NFData DeploymentStatusEvent where rnf :: DeploymentStatusEvent -> ()
rnf = DeploymentStatusEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


-- | Triggered when a new download is created.

-- Events of this kind are no longer delivered.

-- See <https://developer.github.com/v3/activity/events/types/#downloadevent>.

data DownloadEvent = DownloadEvent

-- | Triggered when a user follows another user.

-- Events of this kind are no longer delivered.

-- See <https://developer.github.com/v3/activity/events/types/#downloadevent>.

data FollowEvent = FollowEvent

-- | Triggered when a user forks a repository.

-- See <https://developer.github.com/v3/activity/events/types/#forkevent>.

data ForkEvent = ForkEvent
    { ForkEvent -> HookRepository
evForkDestination         :: !HookRepository
    , ForkEvent -> HookRepository
evForkSource              :: !HookRepository
    , ForkEvent -> HookUser
evForkSender              :: !HookUser
    }
    deriving (ForkEvent -> ForkEvent -> Bool
(ForkEvent -> ForkEvent -> Bool)
-> (ForkEvent -> ForkEvent -> Bool) -> Eq ForkEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ForkEvent -> ForkEvent -> Bool
$c/= :: ForkEvent -> ForkEvent -> Bool
== :: ForkEvent -> ForkEvent -> Bool
$c== :: ForkEvent -> ForkEvent -> Bool
Eq, Int -> ForkEvent -> ShowS
[ForkEvent] -> ShowS
ForkEvent -> String
(Int -> ForkEvent -> ShowS)
-> (ForkEvent -> String)
-> ([ForkEvent] -> ShowS)
-> Show ForkEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ForkEvent] -> ShowS
$cshowList :: [ForkEvent] -> ShowS
show :: ForkEvent -> String
$cshow :: ForkEvent -> String
showsPrec :: Int -> ForkEvent -> ShowS
$cshowsPrec :: Int -> ForkEvent -> ShowS
Show, Typeable, Typeable ForkEvent
DataType
Constr
Typeable ForkEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> ForkEvent -> c ForkEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c ForkEvent)
-> (ForkEvent -> Constr)
-> (ForkEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c ForkEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ForkEvent))
-> ((forall b. Data b => b -> b) -> ForkEvent -> ForkEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> ForkEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> ForkEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> ForkEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> ForkEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> ForkEvent -> m ForkEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> ForkEvent -> m ForkEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> ForkEvent -> m ForkEvent)
-> Data ForkEvent
ForkEvent -> DataType
ForkEvent -> Constr
(forall b. Data b => b -> b) -> ForkEvent -> ForkEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ForkEvent -> c ForkEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ForkEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> ForkEvent -> u
forall u. (forall d. Data d => d -> u) -> ForkEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ForkEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ForkEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> ForkEvent -> m ForkEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ForkEvent -> m ForkEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ForkEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ForkEvent -> c ForkEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ForkEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ForkEvent)
$cForkEvent :: Constr
$tForkEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> ForkEvent -> m ForkEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ForkEvent -> m ForkEvent
gmapMp :: (forall d. Data d => d -> m d) -> ForkEvent -> m ForkEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ForkEvent -> m ForkEvent
gmapM :: (forall d. Data d => d -> m d) -> ForkEvent -> m ForkEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> ForkEvent -> m ForkEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> ForkEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> ForkEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> ForkEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> ForkEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ForkEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ForkEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ForkEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ForkEvent -> r
gmapT :: (forall b. Data b => b -> b) -> ForkEvent -> ForkEvent
$cgmapT :: (forall b. Data b => b -> b) -> ForkEvent -> ForkEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ForkEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ForkEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c ForkEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ForkEvent)
dataTypeOf :: ForkEvent -> DataType
$cdataTypeOf :: ForkEvent -> DataType
toConstr :: ForkEvent -> Constr
$ctoConstr :: ForkEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ForkEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ForkEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ForkEvent -> c ForkEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ForkEvent -> c ForkEvent
$cp1Data :: Typeable ForkEvent
Data, (forall x. ForkEvent -> Rep ForkEvent x)
-> (forall x. Rep ForkEvent x -> ForkEvent) -> Generic ForkEvent
forall x. Rep ForkEvent x -> ForkEvent
forall x. ForkEvent -> Rep ForkEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ForkEvent x -> ForkEvent
$cfrom :: forall x. ForkEvent -> Rep ForkEvent x
Generic)

instance EventHasSender ForkEvent where senderOfEvent :: ForkEvent -> HookUser
senderOfEvent = ForkEvent -> HookUser
evForkSender
instance EventHasRepo ForkEvent where repoForEvent :: ForkEvent -> HookRepository
repoForEvent = ForkEvent -> HookRepository
evForkSource
instance NFData ForkEvent where rnf :: ForkEvent -> ()
rnf = ForkEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


-- | Triggered when a patch is applied in the Fork Queue.

-- Events of this kind are no longer delivered.

-- See <https://developer.github.com/v3/activity/events/types/#forkapplyevent>.

data ForkApplyEvent = ForkApplyEvent


-- | Triggered when a Gist is created or updated.

-- Events of this kind are no longer delivered.

-- See <https://developer.github.com/v3/activity/events/types/#gistevent>.

data GistEvent = GistEvent


-- | Triggered when a Wiki page is created or updated.

-- See <https://developer.github.com/v3/activity/events/types/#gollumevent>.

data GollumEvent = GollumEvent
    { GollumEvent -> Vector HookWikiPage
evGollumPages             :: !(Vector HookWikiPage)
    , GollumEvent -> HookRepository
evGollumRepo              :: !HookRepository
    , GollumEvent -> HookUser
evGollumSender            :: !HookUser
    }
    deriving (GollumEvent -> GollumEvent -> Bool
(GollumEvent -> GollumEvent -> Bool)
-> (GollumEvent -> GollumEvent -> Bool) -> Eq GollumEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GollumEvent -> GollumEvent -> Bool
$c/= :: GollumEvent -> GollumEvent -> Bool
== :: GollumEvent -> GollumEvent -> Bool
$c== :: GollumEvent -> GollumEvent -> Bool
Eq, Int -> GollumEvent -> ShowS
[GollumEvent] -> ShowS
GollumEvent -> String
(Int -> GollumEvent -> ShowS)
-> (GollumEvent -> String)
-> ([GollumEvent] -> ShowS)
-> Show GollumEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GollumEvent] -> ShowS
$cshowList :: [GollumEvent] -> ShowS
show :: GollumEvent -> String
$cshow :: GollumEvent -> String
showsPrec :: Int -> GollumEvent -> ShowS
$cshowsPrec :: Int -> GollumEvent -> ShowS
Show, Typeable, Typeable GollumEvent
DataType
Constr
Typeable GollumEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> GollumEvent -> c GollumEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c GollumEvent)
-> (GollumEvent -> Constr)
-> (GollumEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c GollumEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c GollumEvent))
-> ((forall b. Data b => b -> b) -> GollumEvent -> GollumEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> GollumEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> GollumEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> GollumEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> GollumEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> GollumEvent -> m GollumEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> GollumEvent -> m GollumEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> GollumEvent -> m GollumEvent)
-> Data GollumEvent
GollumEvent -> DataType
GollumEvent -> Constr
(forall b. Data b => b -> b) -> GollumEvent -> GollumEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> GollumEvent -> c GollumEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c GollumEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> GollumEvent -> u
forall u. (forall d. Data d => d -> u) -> GollumEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> GollumEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> GollumEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> GollumEvent -> m GollumEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> GollumEvent -> m GollumEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c GollumEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> GollumEvent -> c GollumEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c GollumEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c GollumEvent)
$cGollumEvent :: Constr
$tGollumEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> GollumEvent -> m GollumEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> GollumEvent -> m GollumEvent
gmapMp :: (forall d. Data d => d -> m d) -> GollumEvent -> m GollumEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> GollumEvent -> m GollumEvent
gmapM :: (forall d. Data d => d -> m d) -> GollumEvent -> m GollumEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> GollumEvent -> m GollumEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> GollumEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> GollumEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> GollumEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> GollumEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> GollumEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> GollumEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> GollumEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> GollumEvent -> r
gmapT :: (forall b. Data b => b -> b) -> GollumEvent -> GollumEvent
$cgmapT :: (forall b. Data b => b -> b) -> GollumEvent -> GollumEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c GollumEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c GollumEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c GollumEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c GollumEvent)
dataTypeOf :: GollumEvent -> DataType
$cdataTypeOf :: GollumEvent -> DataType
toConstr :: GollumEvent -> Constr
$ctoConstr :: GollumEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c GollumEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c GollumEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> GollumEvent -> c GollumEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> GollumEvent -> c GollumEvent
$cp1Data :: Typeable GollumEvent
Data, (forall x. GollumEvent -> Rep GollumEvent x)
-> (forall x. Rep GollumEvent x -> GollumEvent)
-> Generic GollumEvent
forall x. Rep GollumEvent x -> GollumEvent
forall x. GollumEvent -> Rep GollumEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GollumEvent x -> GollumEvent
$cfrom :: forall x. GollumEvent -> Rep GollumEvent x
Generic)

instance EventHasSender GollumEvent where senderOfEvent :: GollumEvent -> HookUser
senderOfEvent = GollumEvent -> HookUser
evGollumSender
instance EventHasRepo GollumEvent where repoForEvent :: GollumEvent -> HookRepository
repoForEvent = GollumEvent -> HookRepository
evGollumRepo
instance NFData GollumEvent where rnf :: GollumEvent -> ()
rnf = GollumEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data InstallationEventAction
  -- | Decodes from "created"

  = InstallationCreatedAction
  -- | Decodes from "deleted"

  | InstallationDeletedAction
  -- | Decodes from "suspend"

  | InstallationSuspendAction
  -- | Decodes from "unsuspend"

  | InstallationUnsuspendAction
  -- | Decodes from "new_permissions_accepted"

  | InstallationNewPermissionsAcceptedAction
  -- | The result of decoding an unknown installation event action type

  | InstallationActionOther !Text
  deriving (InstallationEventAction -> InstallationEventAction -> Bool
(InstallationEventAction -> InstallationEventAction -> Bool)
-> (InstallationEventAction -> InstallationEventAction -> Bool)
-> Eq InstallationEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InstallationEventAction -> InstallationEventAction -> Bool
$c/= :: InstallationEventAction -> InstallationEventAction -> Bool
== :: InstallationEventAction -> InstallationEventAction -> Bool
$c== :: InstallationEventAction -> InstallationEventAction -> Bool
Eq, Eq InstallationEventAction
Eq InstallationEventAction
-> (InstallationEventAction -> InstallationEventAction -> Ordering)
-> (InstallationEventAction -> InstallationEventAction -> Bool)
-> (InstallationEventAction -> InstallationEventAction -> Bool)
-> (InstallationEventAction -> InstallationEventAction -> Bool)
-> (InstallationEventAction -> InstallationEventAction -> Bool)
-> (InstallationEventAction
    -> InstallationEventAction -> InstallationEventAction)
-> (InstallationEventAction
    -> InstallationEventAction -> InstallationEventAction)
-> Ord InstallationEventAction
InstallationEventAction -> InstallationEventAction -> Bool
InstallationEventAction -> InstallationEventAction -> Ordering
InstallationEventAction
-> InstallationEventAction -> InstallationEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: InstallationEventAction
-> InstallationEventAction -> InstallationEventAction
$cmin :: InstallationEventAction
-> InstallationEventAction -> InstallationEventAction
max :: InstallationEventAction
-> InstallationEventAction -> InstallationEventAction
$cmax :: InstallationEventAction
-> InstallationEventAction -> InstallationEventAction
>= :: InstallationEventAction -> InstallationEventAction -> Bool
$c>= :: InstallationEventAction -> InstallationEventAction -> Bool
> :: InstallationEventAction -> InstallationEventAction -> Bool
$c> :: InstallationEventAction -> InstallationEventAction -> Bool
<= :: InstallationEventAction -> InstallationEventAction -> Bool
$c<= :: InstallationEventAction -> InstallationEventAction -> Bool
< :: InstallationEventAction -> InstallationEventAction -> Bool
$c< :: InstallationEventAction -> InstallationEventAction -> Bool
compare :: InstallationEventAction -> InstallationEventAction -> Ordering
$ccompare :: InstallationEventAction -> InstallationEventAction -> Ordering
$cp1Ord :: Eq InstallationEventAction
Ord, Int -> InstallationEventAction -> ShowS
[InstallationEventAction] -> ShowS
InstallationEventAction -> String
(Int -> InstallationEventAction -> ShowS)
-> (InstallationEventAction -> String)
-> ([InstallationEventAction] -> ShowS)
-> Show InstallationEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InstallationEventAction] -> ShowS
$cshowList :: [InstallationEventAction] -> ShowS
show :: InstallationEventAction -> String
$cshow :: InstallationEventAction -> String
showsPrec :: Int -> InstallationEventAction -> ShowS
$cshowsPrec :: Int -> InstallationEventAction -> ShowS
Show, (forall x.
 InstallationEventAction -> Rep InstallationEventAction x)
-> (forall x.
    Rep InstallationEventAction x -> InstallationEventAction)
-> Generic InstallationEventAction
forall x. Rep InstallationEventAction x -> InstallationEventAction
forall x. InstallationEventAction -> Rep InstallationEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep InstallationEventAction x -> InstallationEventAction
$cfrom :: forall x. InstallationEventAction -> Rep InstallationEventAction x
Generic, Typeable, Typeable InstallationEventAction
DataType
Constr
Typeable InstallationEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> InstallationEventAction
    -> c InstallationEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c InstallationEventAction)
-> (InstallationEventAction -> Constr)
-> (InstallationEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c InstallationEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c InstallationEventAction))
-> ((forall b. Data b => b -> b)
    -> InstallationEventAction -> InstallationEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> InstallationEventAction
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> InstallationEventAction
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> InstallationEventAction -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u) -> InstallationEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> InstallationEventAction -> m InstallationEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> InstallationEventAction -> m InstallationEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> InstallationEventAction -> m InstallationEventAction)
-> Data InstallationEventAction
InstallationEventAction -> DataType
InstallationEventAction -> Constr
(forall b. Data b => b -> b)
-> InstallationEventAction -> InstallationEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> InstallationEventAction
-> c InstallationEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c InstallationEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> InstallationEventAction -> u
forall u.
(forall d. Data d => d -> u) -> InstallationEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationEventAction
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationEventAction
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> InstallationEventAction -> m InstallationEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> InstallationEventAction -> m InstallationEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c InstallationEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> InstallationEventAction
-> c InstallationEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c InstallationEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c InstallationEventAction)
$cInstallationActionOther :: Constr
$cInstallationNewPermissionsAcceptedAction :: Constr
$cInstallationUnsuspendAction :: Constr
$cInstallationSuspendAction :: Constr
$cInstallationDeletedAction :: Constr
$cInstallationCreatedAction :: Constr
$tInstallationEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> InstallationEventAction -> m InstallationEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> InstallationEventAction -> m InstallationEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> InstallationEventAction -> m InstallationEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> InstallationEventAction -> m InstallationEventAction
gmapM :: (forall d. Data d => d -> m d)
-> InstallationEventAction -> m InstallationEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> InstallationEventAction -> m InstallationEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> InstallationEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> InstallationEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> InstallationEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> InstallationEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationEventAction
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationEventAction
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationEventAction
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationEventAction
-> r
gmapT :: (forall b. Data b => b -> b)
-> InstallationEventAction -> InstallationEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> InstallationEventAction -> InstallationEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c InstallationEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c InstallationEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c InstallationEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c InstallationEventAction)
dataTypeOf :: InstallationEventAction -> DataType
$cdataTypeOf :: InstallationEventAction -> DataType
toConstr :: InstallationEventAction -> Constr
$ctoConstr :: InstallationEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c InstallationEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c InstallationEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> InstallationEventAction
-> c InstallationEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> InstallationEventAction
-> c InstallationEventAction
$cp1Data :: Typeable InstallationEventAction
Data)

instance NFData InstallationEventAction where rnf :: InstallationEventAction -> ()
rnf = InstallationEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON InstallationEventAction where
  parseJSON :: Value -> Parser InstallationEventAction
parseJSON = String
-> (Text -> Parser InstallationEventAction)
-> Value
-> Parser InstallationEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Installation event action" ((Text -> Parser InstallationEventAction)
 -> Value -> Parser InstallationEventAction)
-> (Text -> Parser InstallationEventAction)
-> Value
-> Parser InstallationEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"created"                  -> InstallationEventAction -> Parser InstallationEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure InstallationEventAction
InstallationCreatedAction
        Text
"deleted"                  -> InstallationEventAction -> Parser InstallationEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure InstallationEventAction
InstallationDeletedAction
        Text
"suspend"                  -> InstallationEventAction -> Parser InstallationEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure InstallationEventAction
InstallationSuspendAction
        Text
"unsuspend"                -> InstallationEventAction -> Parser InstallationEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure InstallationEventAction
InstallationUnsuspendAction
        Text
"new_permissions_accepted" -> InstallationEventAction -> Parser InstallationEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure InstallationEventAction
InstallationNewPermissionsAcceptedAction
        Text
_                          -> InstallationEventAction -> Parser InstallationEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> InstallationEventAction
InstallationActionOther Text
t)

-- | Triggered when a GitHub App has been installed or uninstalled.

-- See <https://developer.github.com/v3/activity/events/types/#installationevent>.

data InstallationEvent = InstallationEvent
    { InstallationEvent -> InstallationEventAction
evInstallationAction      :: !InstallationEventAction
    , InstallationEvent -> HookInstallation
evInstallationInfo        :: !HookInstallation
    , InstallationEvent -> Vector HookRepositorySimple
evInstallationRepos       :: !(Vector HookRepositorySimple)
    , InstallationEvent -> HookUser
evInstallationSender      :: !HookUser
    }
    deriving (InstallationEvent -> InstallationEvent -> Bool
(InstallationEvent -> InstallationEvent -> Bool)
-> (InstallationEvent -> InstallationEvent -> Bool)
-> Eq InstallationEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InstallationEvent -> InstallationEvent -> Bool
$c/= :: InstallationEvent -> InstallationEvent -> Bool
== :: InstallationEvent -> InstallationEvent -> Bool
$c== :: InstallationEvent -> InstallationEvent -> Bool
Eq, Int -> InstallationEvent -> ShowS
[InstallationEvent] -> ShowS
InstallationEvent -> String
(Int -> InstallationEvent -> ShowS)
-> (InstallationEvent -> String)
-> ([InstallationEvent] -> ShowS)
-> Show InstallationEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InstallationEvent] -> ShowS
$cshowList :: [InstallationEvent] -> ShowS
show :: InstallationEvent -> String
$cshow :: InstallationEvent -> String
showsPrec :: Int -> InstallationEvent -> ShowS
$cshowsPrec :: Int -> InstallationEvent -> ShowS
Show, Typeable, Typeable InstallationEvent
DataType
Constr
Typeable InstallationEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> InstallationEvent
    -> c InstallationEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c InstallationEvent)
-> (InstallationEvent -> Constr)
-> (InstallationEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c InstallationEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c InstallationEvent))
-> ((forall b. Data b => b -> b)
    -> InstallationEvent -> InstallationEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> InstallationEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> InstallationEvent -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> InstallationEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> InstallationEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> InstallationEvent -> m InstallationEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> InstallationEvent -> m InstallationEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> InstallationEvent -> m InstallationEvent)
-> Data InstallationEvent
InstallationEvent -> DataType
InstallationEvent -> Constr
(forall b. Data b => b -> b)
-> InstallationEvent -> InstallationEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> InstallationEvent -> c InstallationEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c InstallationEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> InstallationEvent -> u
forall u. (forall d. Data d => d -> u) -> InstallationEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> InstallationEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> InstallationEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> InstallationEvent -> m InstallationEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> InstallationEvent -> m InstallationEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c InstallationEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> InstallationEvent -> c InstallationEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c InstallationEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c InstallationEvent)
$cInstallationEvent :: Constr
$tInstallationEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> InstallationEvent -> m InstallationEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> InstallationEvent -> m InstallationEvent
gmapMp :: (forall d. Data d => d -> m d)
-> InstallationEvent -> m InstallationEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> InstallationEvent -> m InstallationEvent
gmapM :: (forall d. Data d => d -> m d)
-> InstallationEvent -> m InstallationEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> InstallationEvent -> m InstallationEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> InstallationEvent -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> InstallationEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> InstallationEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> InstallationEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> InstallationEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> InstallationEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> InstallationEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> InstallationEvent -> r
gmapT :: (forall b. Data b => b -> b)
-> InstallationEvent -> InstallationEvent
$cgmapT :: (forall b. Data b => b -> b)
-> InstallationEvent -> InstallationEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c InstallationEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c InstallationEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c InstallationEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c InstallationEvent)
dataTypeOf :: InstallationEvent -> DataType
$cdataTypeOf :: InstallationEvent -> DataType
toConstr :: InstallationEvent -> Constr
$ctoConstr :: InstallationEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c InstallationEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c InstallationEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> InstallationEvent -> c InstallationEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> InstallationEvent -> c InstallationEvent
$cp1Data :: Typeable InstallationEvent
Data, (forall x. InstallationEvent -> Rep InstallationEvent x)
-> (forall x. Rep InstallationEvent x -> InstallationEvent)
-> Generic InstallationEvent
forall x. Rep InstallationEvent x -> InstallationEvent
forall x. InstallationEvent -> Rep InstallationEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep InstallationEvent x -> InstallationEvent
$cfrom :: forall x. InstallationEvent -> Rep InstallationEvent x
Generic)

instance EventHasSender InstallationEvent where senderOfEvent :: InstallationEvent -> HookUser
senderOfEvent = InstallationEvent -> HookUser
evInstallationSender
instance NFData InstallationEvent where rnf :: InstallationEvent -> ()
rnf = InstallationEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data InstallationRepoEventAction
  -- | Decodes from "added"

  = InstallationRepoAddedAction
  -- | Decodes from "removed"

  | InstallationRepoRemovedAction
  -- | The result of decoding an unknown installation repo event action type

  | InstallationRepoActionOther !Text
  deriving (InstallationRepoEventAction -> InstallationRepoEventAction -> Bool
(InstallationRepoEventAction
 -> InstallationRepoEventAction -> Bool)
-> (InstallationRepoEventAction
    -> InstallationRepoEventAction -> Bool)
-> Eq InstallationRepoEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InstallationRepoEventAction -> InstallationRepoEventAction -> Bool
$c/= :: InstallationRepoEventAction -> InstallationRepoEventAction -> Bool
== :: InstallationRepoEventAction -> InstallationRepoEventAction -> Bool
$c== :: InstallationRepoEventAction -> InstallationRepoEventAction -> Bool
Eq, Eq InstallationRepoEventAction
Eq InstallationRepoEventAction
-> (InstallationRepoEventAction
    -> InstallationRepoEventAction -> Ordering)
-> (InstallationRepoEventAction
    -> InstallationRepoEventAction -> Bool)
-> (InstallationRepoEventAction
    -> InstallationRepoEventAction -> Bool)
-> (InstallationRepoEventAction
    -> InstallationRepoEventAction -> Bool)
-> (InstallationRepoEventAction
    -> InstallationRepoEventAction -> Bool)
-> (InstallationRepoEventAction
    -> InstallationRepoEventAction -> InstallationRepoEventAction)
-> (InstallationRepoEventAction
    -> InstallationRepoEventAction -> InstallationRepoEventAction)
-> Ord InstallationRepoEventAction
InstallationRepoEventAction -> InstallationRepoEventAction -> Bool
InstallationRepoEventAction
-> InstallationRepoEventAction -> Ordering
InstallationRepoEventAction
-> InstallationRepoEventAction -> InstallationRepoEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: InstallationRepoEventAction
-> InstallationRepoEventAction -> InstallationRepoEventAction
$cmin :: InstallationRepoEventAction
-> InstallationRepoEventAction -> InstallationRepoEventAction
max :: InstallationRepoEventAction
-> InstallationRepoEventAction -> InstallationRepoEventAction
$cmax :: InstallationRepoEventAction
-> InstallationRepoEventAction -> InstallationRepoEventAction
>= :: InstallationRepoEventAction -> InstallationRepoEventAction -> Bool
$c>= :: InstallationRepoEventAction -> InstallationRepoEventAction -> Bool
> :: InstallationRepoEventAction -> InstallationRepoEventAction -> Bool
$c> :: InstallationRepoEventAction -> InstallationRepoEventAction -> Bool
<= :: InstallationRepoEventAction -> InstallationRepoEventAction -> Bool
$c<= :: InstallationRepoEventAction -> InstallationRepoEventAction -> Bool
< :: InstallationRepoEventAction -> InstallationRepoEventAction -> Bool
$c< :: InstallationRepoEventAction -> InstallationRepoEventAction -> Bool
compare :: InstallationRepoEventAction
-> InstallationRepoEventAction -> Ordering
$ccompare :: InstallationRepoEventAction
-> InstallationRepoEventAction -> Ordering
$cp1Ord :: Eq InstallationRepoEventAction
Ord, Int -> InstallationRepoEventAction -> ShowS
[InstallationRepoEventAction] -> ShowS
InstallationRepoEventAction -> String
(Int -> InstallationRepoEventAction -> ShowS)
-> (InstallationRepoEventAction -> String)
-> ([InstallationRepoEventAction] -> ShowS)
-> Show InstallationRepoEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InstallationRepoEventAction] -> ShowS
$cshowList :: [InstallationRepoEventAction] -> ShowS
show :: InstallationRepoEventAction -> String
$cshow :: InstallationRepoEventAction -> String
showsPrec :: Int -> InstallationRepoEventAction -> ShowS
$cshowsPrec :: Int -> InstallationRepoEventAction -> ShowS
Show, (forall x.
 InstallationRepoEventAction -> Rep InstallationRepoEventAction x)
-> (forall x.
    Rep InstallationRepoEventAction x -> InstallationRepoEventAction)
-> Generic InstallationRepoEventAction
forall x.
Rep InstallationRepoEventAction x -> InstallationRepoEventAction
forall x.
InstallationRepoEventAction -> Rep InstallationRepoEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep InstallationRepoEventAction x -> InstallationRepoEventAction
$cfrom :: forall x.
InstallationRepoEventAction -> Rep InstallationRepoEventAction x
Generic, Typeable, Typeable InstallationRepoEventAction
DataType
Constr
Typeable InstallationRepoEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> InstallationRepoEventAction
    -> c InstallationRepoEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c InstallationRepoEventAction)
-> (InstallationRepoEventAction -> Constr)
-> (InstallationRepoEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d))
    -> Maybe (c InstallationRepoEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c InstallationRepoEventAction))
-> ((forall b. Data b => b -> b)
    -> InstallationRepoEventAction -> InstallationRepoEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> InstallationRepoEventAction
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> InstallationRepoEventAction
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> InstallationRepoEventAction -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u)
    -> InstallationRepoEventAction
    -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> InstallationRepoEventAction -> m InstallationRepoEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> InstallationRepoEventAction -> m InstallationRepoEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> InstallationRepoEventAction -> m InstallationRepoEventAction)
-> Data InstallationRepoEventAction
InstallationRepoEventAction -> DataType
InstallationRepoEventAction -> Constr
(forall b. Data b => b -> b)
-> InstallationRepoEventAction -> InstallationRepoEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> InstallationRepoEventAction
-> c InstallationRepoEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c InstallationRepoEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int
-> (forall d. Data d => d -> u) -> InstallationRepoEventAction -> u
forall u.
(forall d. Data d => d -> u) -> InstallationRepoEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationRepoEventAction
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationRepoEventAction
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> InstallationRepoEventAction -> m InstallationRepoEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> InstallationRepoEventAction -> m InstallationRepoEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c InstallationRepoEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> InstallationRepoEventAction
-> c InstallationRepoEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c InstallationRepoEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c InstallationRepoEventAction)
$cInstallationRepoActionOther :: Constr
$cInstallationRepoRemovedAction :: Constr
$cInstallationRepoAddedAction :: Constr
$tInstallationRepoEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> InstallationRepoEventAction -> m InstallationRepoEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> InstallationRepoEventAction -> m InstallationRepoEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> InstallationRepoEventAction -> m InstallationRepoEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> InstallationRepoEventAction -> m InstallationRepoEventAction
gmapM :: (forall d. Data d => d -> m d)
-> InstallationRepoEventAction -> m InstallationRepoEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> InstallationRepoEventAction -> m InstallationRepoEventAction
gmapQi :: Int
-> (forall d. Data d => d -> u) -> InstallationRepoEventAction -> u
$cgmapQi :: forall u.
Int
-> (forall d. Data d => d -> u) -> InstallationRepoEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> InstallationRepoEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> InstallationRepoEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationRepoEventAction
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationRepoEventAction
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationRepoEventAction
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationRepoEventAction
-> r
gmapT :: (forall b. Data b => b -> b)
-> InstallationRepoEventAction -> InstallationRepoEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> InstallationRepoEventAction -> InstallationRepoEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c InstallationRepoEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c InstallationRepoEventAction)
dataCast1 :: (forall d. Data d => c (t d))
-> Maybe (c InstallationRepoEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c InstallationRepoEventAction)
dataTypeOf :: InstallationRepoEventAction -> DataType
$cdataTypeOf :: InstallationRepoEventAction -> DataType
toConstr :: InstallationRepoEventAction -> Constr
$ctoConstr :: InstallationRepoEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c InstallationRepoEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c InstallationRepoEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> InstallationRepoEventAction
-> c InstallationRepoEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> InstallationRepoEventAction
-> c InstallationRepoEventAction
$cp1Data :: Typeable InstallationRepoEventAction
Data)

instance NFData InstallationRepoEventAction where rnf :: InstallationRepoEventAction -> ()
rnf = InstallationRepoEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON InstallationRepoEventAction where
  parseJSON :: Value -> Parser InstallationRepoEventAction
parseJSON = String
-> (Text -> Parser InstallationRepoEventAction)
-> Value
-> Parser InstallationRepoEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Installation repo event action" ((Text -> Parser InstallationRepoEventAction)
 -> Value -> Parser InstallationRepoEventAction)
-> (Text -> Parser InstallationRepoEventAction)
-> Value
-> Parser InstallationRepoEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"added"         -> InstallationRepoEventAction -> Parser InstallationRepoEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure InstallationRepoEventAction
InstallationRepoAddedAction
        Text
"removed"       -> InstallationRepoEventAction -> Parser InstallationRepoEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure InstallationRepoEventAction
InstallationRepoRemovedAction
        Text
_               -> InstallationRepoEventAction -> Parser InstallationRepoEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> InstallationRepoEventAction
InstallationRepoActionOther Text
t)

-- | Triggered when a repository is added or removed from an installation.

-- See <https://developer.github.com/v3/activity/events/types/#installationrepositoriesevent>.

data InstallationRepositoriesEvent = InstallationRepositoriesEvent
    { InstallationRepositoriesEvent -> InstallationRepoEventAction
evInstallationRepoAction  :: !InstallationRepoEventAction
    , InstallationRepositoriesEvent -> HookInstallation
evInstallationRepoInfo    :: !HookInstallation
    , InstallationRepositoriesEvent -> Text
evInstallationRepoSel     :: !Text
    , InstallationRepositoriesEvent -> Vector HookRepositorySimple
evInstallationReposAdd    :: !(Vector HookRepositorySimple)
    , InstallationRepositoriesEvent -> Vector HookRepositorySimple
evInstallationReposRemove :: !(Vector HookRepositorySimple)
    , InstallationRepositoriesEvent -> HookUser
evInstallationReposSender :: !HookUser
    }
    deriving (InstallationRepositoriesEvent
-> InstallationRepositoriesEvent -> Bool
(InstallationRepositoriesEvent
 -> InstallationRepositoriesEvent -> Bool)
-> (InstallationRepositoriesEvent
    -> InstallationRepositoriesEvent -> Bool)
-> Eq InstallationRepositoriesEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InstallationRepositoriesEvent
-> InstallationRepositoriesEvent -> Bool
$c/= :: InstallationRepositoriesEvent
-> InstallationRepositoriesEvent -> Bool
== :: InstallationRepositoriesEvent
-> InstallationRepositoriesEvent -> Bool
$c== :: InstallationRepositoriesEvent
-> InstallationRepositoriesEvent -> Bool
Eq, Int -> InstallationRepositoriesEvent -> ShowS
[InstallationRepositoriesEvent] -> ShowS
InstallationRepositoriesEvent -> String
(Int -> InstallationRepositoriesEvent -> ShowS)
-> (InstallationRepositoriesEvent -> String)
-> ([InstallationRepositoriesEvent] -> ShowS)
-> Show InstallationRepositoriesEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InstallationRepositoriesEvent] -> ShowS
$cshowList :: [InstallationRepositoriesEvent] -> ShowS
show :: InstallationRepositoriesEvent -> String
$cshow :: InstallationRepositoriesEvent -> String
showsPrec :: Int -> InstallationRepositoriesEvent -> ShowS
$cshowsPrec :: Int -> InstallationRepositoriesEvent -> ShowS
Show, Typeable, Typeable InstallationRepositoriesEvent
DataType
Constr
Typeable InstallationRepositoriesEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> InstallationRepositoriesEvent
    -> c InstallationRepositoriesEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r)
    -> Constr
    -> c InstallationRepositoriesEvent)
-> (InstallationRepositoriesEvent -> Constr)
-> (InstallationRepositoriesEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d))
    -> Maybe (c InstallationRepositoriesEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c InstallationRepositoriesEvent))
-> ((forall b. Data b => b -> b)
    -> InstallationRepositoriesEvent -> InstallationRepositoriesEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> InstallationRepositoriesEvent
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> InstallationRepositoriesEvent
    -> r)
-> (forall u.
    (forall d. Data d => d -> u)
    -> InstallationRepositoriesEvent -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u)
    -> InstallationRepositoriesEvent
    -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> InstallationRepositoriesEvent
    -> m InstallationRepositoriesEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> InstallationRepositoriesEvent
    -> m InstallationRepositoriesEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> InstallationRepositoriesEvent
    -> m InstallationRepositoriesEvent)
-> Data InstallationRepositoriesEvent
InstallationRepositoriesEvent -> DataType
InstallationRepositoriesEvent -> Constr
(forall b. Data b => b -> b)
-> InstallationRepositoriesEvent -> InstallationRepositoriesEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> InstallationRepositoriesEvent
-> c InstallationRepositoriesEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c InstallationRepositoriesEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int
-> (forall d. Data d => d -> u)
-> InstallationRepositoriesEvent
-> u
forall u.
(forall d. Data d => d -> u)
-> InstallationRepositoriesEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationRepositoriesEvent
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationRepositoriesEvent
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> InstallationRepositoriesEvent -> m InstallationRepositoriesEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> InstallationRepositoriesEvent -> m InstallationRepositoriesEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c InstallationRepositoriesEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> InstallationRepositoriesEvent
-> c InstallationRepositoriesEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c InstallationRepositoriesEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c InstallationRepositoriesEvent)
$cInstallationRepositoriesEvent :: Constr
$tInstallationRepositoriesEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> InstallationRepositoriesEvent -> m InstallationRepositoriesEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> InstallationRepositoriesEvent -> m InstallationRepositoriesEvent
gmapMp :: (forall d. Data d => d -> m d)
-> InstallationRepositoriesEvent -> m InstallationRepositoriesEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> InstallationRepositoriesEvent -> m InstallationRepositoriesEvent
gmapM :: (forall d. Data d => d -> m d)
-> InstallationRepositoriesEvent -> m InstallationRepositoriesEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> InstallationRepositoriesEvent -> m InstallationRepositoriesEvent
gmapQi :: Int
-> (forall d. Data d => d -> u)
-> InstallationRepositoriesEvent
-> u
$cgmapQi :: forall u.
Int
-> (forall d. Data d => d -> u)
-> InstallationRepositoriesEvent
-> u
gmapQ :: (forall d. Data d => d -> u)
-> InstallationRepositoriesEvent -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u)
-> InstallationRepositoriesEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationRepositoriesEvent
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationRepositoriesEvent
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationRepositoriesEvent
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> InstallationRepositoriesEvent
-> r
gmapT :: (forall b. Data b => b -> b)
-> InstallationRepositoriesEvent -> InstallationRepositoriesEvent
$cgmapT :: (forall b. Data b => b -> b)
-> InstallationRepositoriesEvent -> InstallationRepositoriesEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c InstallationRepositoriesEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c InstallationRepositoriesEvent)
dataCast1 :: (forall d. Data d => c (t d))
-> Maybe (c InstallationRepositoriesEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c InstallationRepositoriesEvent)
dataTypeOf :: InstallationRepositoriesEvent -> DataType
$cdataTypeOf :: InstallationRepositoriesEvent -> DataType
toConstr :: InstallationRepositoriesEvent -> Constr
$ctoConstr :: InstallationRepositoriesEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c InstallationRepositoriesEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c InstallationRepositoriesEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> InstallationRepositoriesEvent
-> c InstallationRepositoriesEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> InstallationRepositoriesEvent
-> c InstallationRepositoriesEvent
$cp1Data :: Typeable InstallationRepositoriesEvent
Data, (forall x.
 InstallationRepositoriesEvent
 -> Rep InstallationRepositoriesEvent x)
-> (forall x.
    Rep InstallationRepositoriesEvent x
    -> InstallationRepositoriesEvent)
-> Generic InstallationRepositoriesEvent
forall x.
Rep InstallationRepositoriesEvent x
-> InstallationRepositoriesEvent
forall x.
InstallationRepositoriesEvent
-> Rep InstallationRepositoriesEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep InstallationRepositoriesEvent x
-> InstallationRepositoriesEvent
$cfrom :: forall x.
InstallationRepositoriesEvent
-> Rep InstallationRepositoriesEvent x
Generic)

instance EventHasSender InstallationRepositoriesEvent where senderOfEvent :: InstallationRepositoriesEvent -> HookUser
senderOfEvent = InstallationRepositoriesEvent -> HookUser
evInstallationReposSender
instance NFData InstallationRepositoriesEvent where rnf :: InstallationRepositoriesEvent -> ()
rnf = InstallationRepositoriesEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data IssueCommentEventAction
  -- | Decodes from "created"

  = IssueCommentCreatedAction
  -- | Decodes from "edited"

  | IssueCommentEditedAction
  -- | Decodes from "deleted"

  | IssueCommentDeletedAction
  -- | The result of decoding an unknown issue comment event action type

  | IssueCommentActionOther !Text
  deriving (IssueCommentEventAction -> IssueCommentEventAction -> Bool
(IssueCommentEventAction -> IssueCommentEventAction -> Bool)
-> (IssueCommentEventAction -> IssueCommentEventAction -> Bool)
-> Eq IssueCommentEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IssueCommentEventAction -> IssueCommentEventAction -> Bool
$c/= :: IssueCommentEventAction -> IssueCommentEventAction -> Bool
== :: IssueCommentEventAction -> IssueCommentEventAction -> Bool
$c== :: IssueCommentEventAction -> IssueCommentEventAction -> Bool
Eq, Eq IssueCommentEventAction
Eq IssueCommentEventAction
-> (IssueCommentEventAction -> IssueCommentEventAction -> Ordering)
-> (IssueCommentEventAction -> IssueCommentEventAction -> Bool)
-> (IssueCommentEventAction -> IssueCommentEventAction -> Bool)
-> (IssueCommentEventAction -> IssueCommentEventAction -> Bool)
-> (IssueCommentEventAction -> IssueCommentEventAction -> Bool)
-> (IssueCommentEventAction
    -> IssueCommentEventAction -> IssueCommentEventAction)
-> (IssueCommentEventAction
    -> IssueCommentEventAction -> IssueCommentEventAction)
-> Ord IssueCommentEventAction
IssueCommentEventAction -> IssueCommentEventAction -> Bool
IssueCommentEventAction -> IssueCommentEventAction -> Ordering
IssueCommentEventAction
-> IssueCommentEventAction -> IssueCommentEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: IssueCommentEventAction
-> IssueCommentEventAction -> IssueCommentEventAction
$cmin :: IssueCommentEventAction
-> IssueCommentEventAction -> IssueCommentEventAction
max :: IssueCommentEventAction
-> IssueCommentEventAction -> IssueCommentEventAction
$cmax :: IssueCommentEventAction
-> IssueCommentEventAction -> IssueCommentEventAction
>= :: IssueCommentEventAction -> IssueCommentEventAction -> Bool
$c>= :: IssueCommentEventAction -> IssueCommentEventAction -> Bool
> :: IssueCommentEventAction -> IssueCommentEventAction -> Bool
$c> :: IssueCommentEventAction -> IssueCommentEventAction -> Bool
<= :: IssueCommentEventAction -> IssueCommentEventAction -> Bool
$c<= :: IssueCommentEventAction -> IssueCommentEventAction -> Bool
< :: IssueCommentEventAction -> IssueCommentEventAction -> Bool
$c< :: IssueCommentEventAction -> IssueCommentEventAction -> Bool
compare :: IssueCommentEventAction -> IssueCommentEventAction -> Ordering
$ccompare :: IssueCommentEventAction -> IssueCommentEventAction -> Ordering
$cp1Ord :: Eq IssueCommentEventAction
Ord, Int -> IssueCommentEventAction -> ShowS
[IssueCommentEventAction] -> ShowS
IssueCommentEventAction -> String
(Int -> IssueCommentEventAction -> ShowS)
-> (IssueCommentEventAction -> String)
-> ([IssueCommentEventAction] -> ShowS)
-> Show IssueCommentEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IssueCommentEventAction] -> ShowS
$cshowList :: [IssueCommentEventAction] -> ShowS
show :: IssueCommentEventAction -> String
$cshow :: IssueCommentEventAction -> String
showsPrec :: Int -> IssueCommentEventAction -> ShowS
$cshowsPrec :: Int -> IssueCommentEventAction -> ShowS
Show, (forall x.
 IssueCommentEventAction -> Rep IssueCommentEventAction x)
-> (forall x.
    Rep IssueCommentEventAction x -> IssueCommentEventAction)
-> Generic IssueCommentEventAction
forall x. Rep IssueCommentEventAction x -> IssueCommentEventAction
forall x. IssueCommentEventAction -> Rep IssueCommentEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep IssueCommentEventAction x -> IssueCommentEventAction
$cfrom :: forall x. IssueCommentEventAction -> Rep IssueCommentEventAction x
Generic, Typeable, Typeable IssueCommentEventAction
DataType
Constr
Typeable IssueCommentEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> IssueCommentEventAction
    -> c IssueCommentEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c IssueCommentEventAction)
-> (IssueCommentEventAction -> Constr)
-> (IssueCommentEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c IssueCommentEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c IssueCommentEventAction))
-> ((forall b. Data b => b -> b)
    -> IssueCommentEventAction -> IssueCommentEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> IssueCommentEventAction
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> IssueCommentEventAction
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> IssueCommentEventAction -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u) -> IssueCommentEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> IssueCommentEventAction -> m IssueCommentEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IssueCommentEventAction -> m IssueCommentEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IssueCommentEventAction -> m IssueCommentEventAction)
-> Data IssueCommentEventAction
IssueCommentEventAction -> DataType
IssueCommentEventAction -> Constr
(forall b. Data b => b -> b)
-> IssueCommentEventAction -> IssueCommentEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IssueCommentEventAction
-> c IssueCommentEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IssueCommentEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> IssueCommentEventAction -> u
forall u.
(forall d. Data d => d -> u) -> IssueCommentEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> IssueCommentEventAction
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> IssueCommentEventAction
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IssueCommentEventAction -> m IssueCommentEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IssueCommentEventAction -> m IssueCommentEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IssueCommentEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IssueCommentEventAction
-> c IssueCommentEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IssueCommentEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IssueCommentEventAction)
$cIssueCommentActionOther :: Constr
$cIssueCommentDeletedAction :: Constr
$cIssueCommentEditedAction :: Constr
$cIssueCommentCreatedAction :: Constr
$tIssueCommentEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> IssueCommentEventAction -> m IssueCommentEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IssueCommentEventAction -> m IssueCommentEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> IssueCommentEventAction -> m IssueCommentEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IssueCommentEventAction -> m IssueCommentEventAction
gmapM :: (forall d. Data d => d -> m d)
-> IssueCommentEventAction -> m IssueCommentEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IssueCommentEventAction -> m IssueCommentEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> IssueCommentEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> IssueCommentEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> IssueCommentEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> IssueCommentEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> IssueCommentEventAction
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> IssueCommentEventAction
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> IssueCommentEventAction
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> IssueCommentEventAction
-> r
gmapT :: (forall b. Data b => b -> b)
-> IssueCommentEventAction -> IssueCommentEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> IssueCommentEventAction -> IssueCommentEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IssueCommentEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IssueCommentEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c IssueCommentEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IssueCommentEventAction)
dataTypeOf :: IssueCommentEventAction -> DataType
$cdataTypeOf :: IssueCommentEventAction -> DataType
toConstr :: IssueCommentEventAction -> Constr
$ctoConstr :: IssueCommentEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IssueCommentEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IssueCommentEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IssueCommentEventAction
-> c IssueCommentEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IssueCommentEventAction
-> c IssueCommentEventAction
$cp1Data :: Typeable IssueCommentEventAction
Data)

instance NFData IssueCommentEventAction where rnf :: IssueCommentEventAction -> ()
rnf = IssueCommentEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON IssueCommentEventAction where
  parseJSON :: Value -> Parser IssueCommentEventAction
parseJSON = String
-> (Text -> Parser IssueCommentEventAction)
-> Value
-> Parser IssueCommentEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Issue comment event action" ((Text -> Parser IssueCommentEventAction)
 -> Value -> Parser IssueCommentEventAction)
-> (Text -> Parser IssueCommentEventAction)
-> Value
-> Parser IssueCommentEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"created"       -> IssueCommentEventAction -> Parser IssueCommentEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure IssueCommentEventAction
IssueCommentCreatedAction
        Text
"edited"        -> IssueCommentEventAction -> Parser IssueCommentEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure IssueCommentEventAction
IssueCommentEditedAction
        Text
"deleted"       -> IssueCommentEventAction -> Parser IssueCommentEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure IssueCommentEventAction
IssueCommentDeletedAction
        Text
_               -> IssueCommentEventAction -> Parser IssueCommentEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> IssueCommentEventAction
IssueCommentActionOther Text
t)

-- | Triggered when an issue comment is created, edited, or deleted.

-- See <https://developer.github.com/v3/activity/events/types/#issuecommentevent>.

data IssueCommentEvent = IssueCommentEvent
    { IssueCommentEvent -> IssueCommentEventAction
evIssueCommentAction      :: !IssueCommentEventAction
    , IssueCommentEvent -> HookIssue
evIssueCommentIssue       :: !HookIssue
    , IssueCommentEvent -> HookIssueComment
evIssueCommentPayload     :: !HookIssueComment
    , IssueCommentEvent -> HookRepository
evIssueCommentRepo        :: !HookRepository
    , IssueCommentEvent -> HookUser
evIssueCommentSender      :: !HookUser
    }
    deriving (IssueCommentEvent -> IssueCommentEvent -> Bool
(IssueCommentEvent -> IssueCommentEvent -> Bool)
-> (IssueCommentEvent -> IssueCommentEvent -> Bool)
-> Eq IssueCommentEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IssueCommentEvent -> IssueCommentEvent -> Bool
$c/= :: IssueCommentEvent -> IssueCommentEvent -> Bool
== :: IssueCommentEvent -> IssueCommentEvent -> Bool
$c== :: IssueCommentEvent -> IssueCommentEvent -> Bool
Eq, Int -> IssueCommentEvent -> ShowS
[IssueCommentEvent] -> ShowS
IssueCommentEvent -> String
(Int -> IssueCommentEvent -> ShowS)
-> (IssueCommentEvent -> String)
-> ([IssueCommentEvent] -> ShowS)
-> Show IssueCommentEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IssueCommentEvent] -> ShowS
$cshowList :: [IssueCommentEvent] -> ShowS
show :: IssueCommentEvent -> String
$cshow :: IssueCommentEvent -> String
showsPrec :: Int -> IssueCommentEvent -> ShowS
$cshowsPrec :: Int -> IssueCommentEvent -> ShowS
Show, Typeable, Typeable IssueCommentEvent
DataType
Constr
Typeable IssueCommentEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> IssueCommentEvent
    -> c IssueCommentEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c IssueCommentEvent)
-> (IssueCommentEvent -> Constr)
-> (IssueCommentEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c IssueCommentEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c IssueCommentEvent))
-> ((forall b. Data b => b -> b)
    -> IssueCommentEvent -> IssueCommentEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> IssueCommentEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> IssueCommentEvent -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> IssueCommentEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> IssueCommentEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> IssueCommentEvent -> m IssueCommentEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IssueCommentEvent -> m IssueCommentEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IssueCommentEvent -> m IssueCommentEvent)
-> Data IssueCommentEvent
IssueCommentEvent -> DataType
IssueCommentEvent -> Constr
(forall b. Data b => b -> b)
-> IssueCommentEvent -> IssueCommentEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IssueCommentEvent -> c IssueCommentEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IssueCommentEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> IssueCommentEvent -> u
forall u. (forall d. Data d => d -> u) -> IssueCommentEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IssueCommentEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IssueCommentEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IssueCommentEvent -> m IssueCommentEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IssueCommentEvent -> m IssueCommentEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IssueCommentEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IssueCommentEvent -> c IssueCommentEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IssueCommentEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IssueCommentEvent)
$cIssueCommentEvent :: Constr
$tIssueCommentEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> IssueCommentEvent -> m IssueCommentEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IssueCommentEvent -> m IssueCommentEvent
gmapMp :: (forall d. Data d => d -> m d)
-> IssueCommentEvent -> m IssueCommentEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IssueCommentEvent -> m IssueCommentEvent
gmapM :: (forall d. Data d => d -> m d)
-> IssueCommentEvent -> m IssueCommentEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IssueCommentEvent -> m IssueCommentEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> IssueCommentEvent -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> IssueCommentEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> IssueCommentEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> IssueCommentEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IssueCommentEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IssueCommentEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IssueCommentEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IssueCommentEvent -> r
gmapT :: (forall b. Data b => b -> b)
-> IssueCommentEvent -> IssueCommentEvent
$cgmapT :: (forall b. Data b => b -> b)
-> IssueCommentEvent -> IssueCommentEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IssueCommentEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IssueCommentEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c IssueCommentEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IssueCommentEvent)
dataTypeOf :: IssueCommentEvent -> DataType
$cdataTypeOf :: IssueCommentEvent -> DataType
toConstr :: IssueCommentEvent -> Constr
$ctoConstr :: IssueCommentEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IssueCommentEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IssueCommentEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IssueCommentEvent -> c IssueCommentEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IssueCommentEvent -> c IssueCommentEvent
$cp1Data :: Typeable IssueCommentEvent
Data, (forall x. IssueCommentEvent -> Rep IssueCommentEvent x)
-> (forall x. Rep IssueCommentEvent x -> IssueCommentEvent)
-> Generic IssueCommentEvent
forall x. Rep IssueCommentEvent x -> IssueCommentEvent
forall x. IssueCommentEvent -> Rep IssueCommentEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep IssueCommentEvent x -> IssueCommentEvent
$cfrom :: forall x. IssueCommentEvent -> Rep IssueCommentEvent x
Generic)

instance EventHasSender IssueCommentEvent where senderOfEvent :: IssueCommentEvent -> HookUser
senderOfEvent = IssueCommentEvent -> HookUser
evIssueCommentSender
instance EventHasRepo IssueCommentEvent where repoForEvent :: IssueCommentEvent -> HookRepository
repoForEvent = IssueCommentEvent -> HookRepository
evIssueCommentRepo
instance NFData IssueCommentEvent where rnf :: IssueCommentEvent -> ()
rnf = IssueCommentEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data IssuesEventAction
  -- | Decodes from "assigned"

  = IssuesAssignedAction
  -- | Decodes from "unassigned"

  | IssuesUnassignedAction
  -- | Decodes from "labeled"

  | IssuesLabeledAction
  -- | Decodes from "unlabeled"

  | IssuesUnlabeledAction
  -- | Decodes from "opened"

  | IssuesOpenedAction
  -- | Decodes from "edited"

  | IssuesEditedAction
  -- | Decodes from "milestoned"

  | IssuesMilestonedAction
  -- | Decodes from "demilestoned"

  | IssuesDemilestonedAction
  -- | Decodes from "closed"

  | IssuesClosedAction
  -- | Decodes from "reopened"

  | IssuesReopenedAction
  -- | The result of decoding an unknown issue comment event action type

  | IssuesActionOther !Text
  deriving (IssuesEventAction -> IssuesEventAction -> Bool
(IssuesEventAction -> IssuesEventAction -> Bool)
-> (IssuesEventAction -> IssuesEventAction -> Bool)
-> Eq IssuesEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IssuesEventAction -> IssuesEventAction -> Bool
$c/= :: IssuesEventAction -> IssuesEventAction -> Bool
== :: IssuesEventAction -> IssuesEventAction -> Bool
$c== :: IssuesEventAction -> IssuesEventAction -> Bool
Eq, Eq IssuesEventAction
Eq IssuesEventAction
-> (IssuesEventAction -> IssuesEventAction -> Ordering)
-> (IssuesEventAction -> IssuesEventAction -> Bool)
-> (IssuesEventAction -> IssuesEventAction -> Bool)
-> (IssuesEventAction -> IssuesEventAction -> Bool)
-> (IssuesEventAction -> IssuesEventAction -> Bool)
-> (IssuesEventAction -> IssuesEventAction -> IssuesEventAction)
-> (IssuesEventAction -> IssuesEventAction -> IssuesEventAction)
-> Ord IssuesEventAction
IssuesEventAction -> IssuesEventAction -> Bool
IssuesEventAction -> IssuesEventAction -> Ordering
IssuesEventAction -> IssuesEventAction -> IssuesEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: IssuesEventAction -> IssuesEventAction -> IssuesEventAction
$cmin :: IssuesEventAction -> IssuesEventAction -> IssuesEventAction
max :: IssuesEventAction -> IssuesEventAction -> IssuesEventAction
$cmax :: IssuesEventAction -> IssuesEventAction -> IssuesEventAction
>= :: IssuesEventAction -> IssuesEventAction -> Bool
$c>= :: IssuesEventAction -> IssuesEventAction -> Bool
> :: IssuesEventAction -> IssuesEventAction -> Bool
$c> :: IssuesEventAction -> IssuesEventAction -> Bool
<= :: IssuesEventAction -> IssuesEventAction -> Bool
$c<= :: IssuesEventAction -> IssuesEventAction -> Bool
< :: IssuesEventAction -> IssuesEventAction -> Bool
$c< :: IssuesEventAction -> IssuesEventAction -> Bool
compare :: IssuesEventAction -> IssuesEventAction -> Ordering
$ccompare :: IssuesEventAction -> IssuesEventAction -> Ordering
$cp1Ord :: Eq IssuesEventAction
Ord, Int -> IssuesEventAction -> ShowS
[IssuesEventAction] -> ShowS
IssuesEventAction -> String
(Int -> IssuesEventAction -> ShowS)
-> (IssuesEventAction -> String)
-> ([IssuesEventAction] -> ShowS)
-> Show IssuesEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IssuesEventAction] -> ShowS
$cshowList :: [IssuesEventAction] -> ShowS
show :: IssuesEventAction -> String
$cshow :: IssuesEventAction -> String
showsPrec :: Int -> IssuesEventAction -> ShowS
$cshowsPrec :: Int -> IssuesEventAction -> ShowS
Show, (forall x. IssuesEventAction -> Rep IssuesEventAction x)
-> (forall x. Rep IssuesEventAction x -> IssuesEventAction)
-> Generic IssuesEventAction
forall x. Rep IssuesEventAction x -> IssuesEventAction
forall x. IssuesEventAction -> Rep IssuesEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep IssuesEventAction x -> IssuesEventAction
$cfrom :: forall x. IssuesEventAction -> Rep IssuesEventAction x
Generic, Typeable, Typeable IssuesEventAction
DataType
Constr
Typeable IssuesEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> IssuesEventAction
    -> c IssuesEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c IssuesEventAction)
-> (IssuesEventAction -> Constr)
-> (IssuesEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c IssuesEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c IssuesEventAction))
-> ((forall b. Data b => b -> b)
    -> IssuesEventAction -> IssuesEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> IssuesEventAction -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> IssuesEventAction -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> IssuesEventAction -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> IssuesEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> IssuesEventAction -> m IssuesEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IssuesEventAction -> m IssuesEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IssuesEventAction -> m IssuesEventAction)
-> Data IssuesEventAction
IssuesEventAction -> DataType
IssuesEventAction -> Constr
(forall b. Data b => b -> b)
-> IssuesEventAction -> IssuesEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IssuesEventAction -> c IssuesEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IssuesEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> IssuesEventAction -> u
forall u. (forall d. Data d => d -> u) -> IssuesEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IssuesEventAction -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IssuesEventAction -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IssuesEventAction -> m IssuesEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IssuesEventAction -> m IssuesEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IssuesEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IssuesEventAction -> c IssuesEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IssuesEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IssuesEventAction)
$cIssuesActionOther :: Constr
$cIssuesReopenedAction :: Constr
$cIssuesClosedAction :: Constr
$cIssuesDemilestonedAction :: Constr
$cIssuesMilestonedAction :: Constr
$cIssuesEditedAction :: Constr
$cIssuesOpenedAction :: Constr
$cIssuesUnlabeledAction :: Constr
$cIssuesLabeledAction :: Constr
$cIssuesUnassignedAction :: Constr
$cIssuesAssignedAction :: Constr
$tIssuesEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> IssuesEventAction -> m IssuesEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IssuesEventAction -> m IssuesEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> IssuesEventAction -> m IssuesEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IssuesEventAction -> m IssuesEventAction
gmapM :: (forall d. Data d => d -> m d)
-> IssuesEventAction -> m IssuesEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IssuesEventAction -> m IssuesEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> IssuesEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> IssuesEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> IssuesEventAction -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> IssuesEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IssuesEventAction -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IssuesEventAction -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IssuesEventAction -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IssuesEventAction -> r
gmapT :: (forall b. Data b => b -> b)
-> IssuesEventAction -> IssuesEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> IssuesEventAction -> IssuesEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IssuesEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IssuesEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c IssuesEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IssuesEventAction)
dataTypeOf :: IssuesEventAction -> DataType
$cdataTypeOf :: IssuesEventAction -> DataType
toConstr :: IssuesEventAction -> Constr
$ctoConstr :: IssuesEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IssuesEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IssuesEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IssuesEventAction -> c IssuesEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IssuesEventAction -> c IssuesEventAction
$cp1Data :: Typeable IssuesEventAction
Data)

instance NFData IssuesEventAction where rnf :: IssuesEventAction -> ()
rnf = IssuesEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON IssuesEventAction where
  parseJSON :: Value -> Parser IssuesEventAction
parseJSON = String
-> (Text -> Parser IssuesEventAction)
-> Value
-> Parser IssuesEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Issue comment event action" ((Text -> Parser IssuesEventAction)
 -> Value -> Parser IssuesEventAction)
-> (Text -> Parser IssuesEventAction)
-> Value
-> Parser IssuesEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"assigned"      -> IssuesEventAction -> Parser IssuesEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure IssuesEventAction
IssuesAssignedAction
        Text
"unassigned"    -> IssuesEventAction -> Parser IssuesEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure IssuesEventAction
IssuesUnassignedAction
        Text
"labeled"       -> IssuesEventAction -> Parser IssuesEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure IssuesEventAction
IssuesLabeledAction
        Text
"unlabeled"     -> IssuesEventAction -> Parser IssuesEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure IssuesEventAction
IssuesUnlabeledAction
        Text
"opened"        -> IssuesEventAction -> Parser IssuesEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure IssuesEventAction
IssuesOpenedAction
        Text
"edited"        -> IssuesEventAction -> Parser IssuesEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure IssuesEventAction
IssuesEditedAction
        Text
"milestoned"    -> IssuesEventAction -> Parser IssuesEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure IssuesEventAction
IssuesMilestonedAction
        Text
"demilestoned"  -> IssuesEventAction -> Parser IssuesEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure IssuesEventAction
IssuesDemilestonedAction
        Text
"closed"        -> IssuesEventAction -> Parser IssuesEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure IssuesEventAction
IssuesClosedAction
        Text
"reopened"      -> IssuesEventAction -> Parser IssuesEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure IssuesEventAction
IssuesReopenedAction
        Text
_               -> IssuesEventAction -> Parser IssuesEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> IssuesEventAction
IssuesActionOther Text
t)

-- | Triggered when an issue is assigned, unassigned, labeled,

--  unlabeled, opened, edited, milestoned, demilestoned, closed, or reopened.

-- See <https://developer.github.com/v3/activity/events/types/#issuesevent>.

data IssuesEvent = IssuesEvent
    { IssuesEvent -> IssuesEventAction
evIssuesEventAction       :: !IssuesEventAction
    , IssuesEvent -> HookIssue
evIssuesEventIssue        :: !HookIssue
    , IssuesEvent -> HookRepository
evIssuesEventRepo         :: !HookRepository
    , IssuesEvent -> HookUser
evIssuesEventSender       :: !HookUser
    }
    deriving (IssuesEvent -> IssuesEvent -> Bool
(IssuesEvent -> IssuesEvent -> Bool)
-> (IssuesEvent -> IssuesEvent -> Bool) -> Eq IssuesEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IssuesEvent -> IssuesEvent -> Bool
$c/= :: IssuesEvent -> IssuesEvent -> Bool
== :: IssuesEvent -> IssuesEvent -> Bool
$c== :: IssuesEvent -> IssuesEvent -> Bool
Eq, Int -> IssuesEvent -> ShowS
[IssuesEvent] -> ShowS
IssuesEvent -> String
(Int -> IssuesEvent -> ShowS)
-> (IssuesEvent -> String)
-> ([IssuesEvent] -> ShowS)
-> Show IssuesEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IssuesEvent] -> ShowS
$cshowList :: [IssuesEvent] -> ShowS
show :: IssuesEvent -> String
$cshow :: IssuesEvent -> String
showsPrec :: Int -> IssuesEvent -> ShowS
$cshowsPrec :: Int -> IssuesEvent -> ShowS
Show, Typeable, Typeable IssuesEvent
DataType
Constr
Typeable IssuesEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> IssuesEvent -> c IssuesEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c IssuesEvent)
-> (IssuesEvent -> Constr)
-> (IssuesEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c IssuesEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c IssuesEvent))
-> ((forall b. Data b => b -> b) -> IssuesEvent -> IssuesEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> IssuesEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> IssuesEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> IssuesEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> IssuesEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> IssuesEvent -> m IssuesEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> IssuesEvent -> m IssuesEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> IssuesEvent -> m IssuesEvent)
-> Data IssuesEvent
IssuesEvent -> DataType
IssuesEvent -> Constr
(forall b. Data b => b -> b) -> IssuesEvent -> IssuesEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IssuesEvent -> c IssuesEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IssuesEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> IssuesEvent -> u
forall u. (forall d. Data d => d -> u) -> IssuesEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IssuesEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IssuesEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> IssuesEvent -> m IssuesEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> IssuesEvent -> m IssuesEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IssuesEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IssuesEvent -> c IssuesEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IssuesEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IssuesEvent)
$cIssuesEvent :: Constr
$tIssuesEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> IssuesEvent -> m IssuesEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> IssuesEvent -> m IssuesEvent
gmapMp :: (forall d. Data d => d -> m d) -> IssuesEvent -> m IssuesEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> IssuesEvent -> m IssuesEvent
gmapM :: (forall d. Data d => d -> m d) -> IssuesEvent -> m IssuesEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> IssuesEvent -> m IssuesEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> IssuesEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> IssuesEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> IssuesEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> IssuesEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IssuesEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IssuesEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IssuesEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IssuesEvent -> r
gmapT :: (forall b. Data b => b -> b) -> IssuesEvent -> IssuesEvent
$cgmapT :: (forall b. Data b => b -> b) -> IssuesEvent -> IssuesEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IssuesEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IssuesEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c IssuesEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IssuesEvent)
dataTypeOf :: IssuesEvent -> DataType
$cdataTypeOf :: IssuesEvent -> DataType
toConstr :: IssuesEvent -> Constr
$ctoConstr :: IssuesEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IssuesEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IssuesEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IssuesEvent -> c IssuesEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IssuesEvent -> c IssuesEvent
$cp1Data :: Typeable IssuesEvent
Data, (forall x. IssuesEvent -> Rep IssuesEvent x)
-> (forall x. Rep IssuesEvent x -> IssuesEvent)
-> Generic IssuesEvent
forall x. Rep IssuesEvent x -> IssuesEvent
forall x. IssuesEvent -> Rep IssuesEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep IssuesEvent x -> IssuesEvent
$cfrom :: forall x. IssuesEvent -> Rep IssuesEvent x
Generic)

instance EventHasSender IssuesEvent where senderOfEvent :: IssuesEvent -> HookUser
senderOfEvent = IssuesEvent -> HookUser
evIssuesEventSender
instance EventHasRepo IssuesEvent where repoForEvent :: IssuesEvent -> HookRepository
repoForEvent = IssuesEvent -> HookRepository
evIssuesEventRepo
instance NFData IssuesEvent where rnf :: IssuesEvent -> ()
rnf = IssuesEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data LabelEventAction
  -- | Decodes from "created"

  = LabelCreatedAction
  -- | Decodes from "edited"

  | LabelEditedAction
  -- | Decodes from "deleted"

  | LabelDeletedAction
  -- | The result of decoding an unknown label event action type

  | LabelActionOther !Text
  deriving (LabelEventAction -> LabelEventAction -> Bool
(LabelEventAction -> LabelEventAction -> Bool)
-> (LabelEventAction -> LabelEventAction -> Bool)
-> Eq LabelEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LabelEventAction -> LabelEventAction -> Bool
$c/= :: LabelEventAction -> LabelEventAction -> Bool
== :: LabelEventAction -> LabelEventAction -> Bool
$c== :: LabelEventAction -> LabelEventAction -> Bool
Eq, Eq LabelEventAction
Eq LabelEventAction
-> (LabelEventAction -> LabelEventAction -> Ordering)
-> (LabelEventAction -> LabelEventAction -> Bool)
-> (LabelEventAction -> LabelEventAction -> Bool)
-> (LabelEventAction -> LabelEventAction -> Bool)
-> (LabelEventAction -> LabelEventAction -> Bool)
-> (LabelEventAction -> LabelEventAction -> LabelEventAction)
-> (LabelEventAction -> LabelEventAction -> LabelEventAction)
-> Ord LabelEventAction
LabelEventAction -> LabelEventAction -> Bool
LabelEventAction -> LabelEventAction -> Ordering
LabelEventAction -> LabelEventAction -> LabelEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: LabelEventAction -> LabelEventAction -> LabelEventAction
$cmin :: LabelEventAction -> LabelEventAction -> LabelEventAction
max :: LabelEventAction -> LabelEventAction -> LabelEventAction
$cmax :: LabelEventAction -> LabelEventAction -> LabelEventAction
>= :: LabelEventAction -> LabelEventAction -> Bool
$c>= :: LabelEventAction -> LabelEventAction -> Bool
> :: LabelEventAction -> LabelEventAction -> Bool
$c> :: LabelEventAction -> LabelEventAction -> Bool
<= :: LabelEventAction -> LabelEventAction -> Bool
$c<= :: LabelEventAction -> LabelEventAction -> Bool
< :: LabelEventAction -> LabelEventAction -> Bool
$c< :: LabelEventAction -> LabelEventAction -> Bool
compare :: LabelEventAction -> LabelEventAction -> Ordering
$ccompare :: LabelEventAction -> LabelEventAction -> Ordering
$cp1Ord :: Eq LabelEventAction
Ord, Int -> LabelEventAction -> ShowS
[LabelEventAction] -> ShowS
LabelEventAction -> String
(Int -> LabelEventAction -> ShowS)
-> (LabelEventAction -> String)
-> ([LabelEventAction] -> ShowS)
-> Show LabelEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LabelEventAction] -> ShowS
$cshowList :: [LabelEventAction] -> ShowS
show :: LabelEventAction -> String
$cshow :: LabelEventAction -> String
showsPrec :: Int -> LabelEventAction -> ShowS
$cshowsPrec :: Int -> LabelEventAction -> ShowS
Show, (forall x. LabelEventAction -> Rep LabelEventAction x)
-> (forall x. Rep LabelEventAction x -> LabelEventAction)
-> Generic LabelEventAction
forall x. Rep LabelEventAction x -> LabelEventAction
forall x. LabelEventAction -> Rep LabelEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep LabelEventAction x -> LabelEventAction
$cfrom :: forall x. LabelEventAction -> Rep LabelEventAction x
Generic, Typeable, Typeable LabelEventAction
DataType
Constr
Typeable LabelEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> LabelEventAction -> c LabelEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c LabelEventAction)
-> (LabelEventAction -> Constr)
-> (LabelEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c LabelEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c LabelEventAction))
-> ((forall b. Data b => b -> b)
    -> LabelEventAction -> LabelEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> LabelEventAction -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> LabelEventAction -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> LabelEventAction -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> LabelEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> LabelEventAction -> m LabelEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> LabelEventAction -> m LabelEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> LabelEventAction -> m LabelEventAction)
-> Data LabelEventAction
LabelEventAction -> DataType
LabelEventAction -> Constr
(forall b. Data b => b -> b)
-> LabelEventAction -> LabelEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> LabelEventAction -> c LabelEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c LabelEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> LabelEventAction -> u
forall u. (forall d. Data d => d -> u) -> LabelEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> LabelEventAction -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> LabelEventAction -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> LabelEventAction -> m LabelEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> LabelEventAction -> m LabelEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c LabelEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> LabelEventAction -> c LabelEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c LabelEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c LabelEventAction)
$cLabelActionOther :: Constr
$cLabelDeletedAction :: Constr
$cLabelEditedAction :: Constr
$cLabelCreatedAction :: Constr
$tLabelEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> LabelEventAction -> m LabelEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> LabelEventAction -> m LabelEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> LabelEventAction -> m LabelEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> LabelEventAction -> m LabelEventAction
gmapM :: (forall d. Data d => d -> m d)
-> LabelEventAction -> m LabelEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> LabelEventAction -> m LabelEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> LabelEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> LabelEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> LabelEventAction -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> LabelEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> LabelEventAction -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> LabelEventAction -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> LabelEventAction -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> LabelEventAction -> r
gmapT :: (forall b. Data b => b -> b)
-> LabelEventAction -> LabelEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> LabelEventAction -> LabelEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c LabelEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c LabelEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c LabelEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c LabelEventAction)
dataTypeOf :: LabelEventAction -> DataType
$cdataTypeOf :: LabelEventAction -> DataType
toConstr :: LabelEventAction -> Constr
$ctoConstr :: LabelEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c LabelEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c LabelEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> LabelEventAction -> c LabelEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> LabelEventAction -> c LabelEventAction
$cp1Data :: Typeable LabelEventAction
Data)

instance NFData LabelEventAction where rnf :: LabelEventAction -> ()
rnf = LabelEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON LabelEventAction where
  parseJSON :: Value -> Parser LabelEventAction
parseJSON = String
-> (Text -> Parser LabelEventAction)
-> Value
-> Parser LabelEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Label event action" ((Text -> Parser LabelEventAction)
 -> Value -> Parser LabelEventAction)
-> (Text -> Parser LabelEventAction)
-> Value
-> Parser LabelEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"created"       -> LabelEventAction -> Parser LabelEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure LabelEventAction
LabelCreatedAction
        Text
"edited"        -> LabelEventAction -> Parser LabelEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure LabelEventAction
LabelEditedAction
        Text
"deleted"       -> LabelEventAction -> Parser LabelEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure LabelEventAction
LabelDeletedAction
        Text
_               -> LabelEventAction -> Parser LabelEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> LabelEventAction
LabelActionOther Text
t)

-- | Triggered when a repository's label is created, edited, or deleted.

-- Events of this type are not visible in timelines. These events are only used to trigger hooks.

-- See <https://developer.github.com/v3/activity/events/types/#labelevent>.

data LabelEvent = LabelEvent
    { LabelEvent -> LabelEventAction
evLabelEventAction        :: !LabelEventAction
    , LabelEvent -> HookRepositoryLabel
evLabelEventPayload       :: !HookRepositoryLabel
    , LabelEvent -> HookRepository
evLabelEventRepo          :: !HookRepository
    , LabelEvent -> Maybe HookOrganization
evLabelEventOrganization  :: !(Maybe HookOrganization)
    , LabelEvent -> HookUser
evLabelEventSender        :: !HookUser
    }
    deriving (LabelEvent -> LabelEvent -> Bool
(LabelEvent -> LabelEvent -> Bool)
-> (LabelEvent -> LabelEvent -> Bool) -> Eq LabelEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LabelEvent -> LabelEvent -> Bool
$c/= :: LabelEvent -> LabelEvent -> Bool
== :: LabelEvent -> LabelEvent -> Bool
$c== :: LabelEvent -> LabelEvent -> Bool
Eq, Int -> LabelEvent -> ShowS
[LabelEvent] -> ShowS
LabelEvent -> String
(Int -> LabelEvent -> ShowS)
-> (LabelEvent -> String)
-> ([LabelEvent] -> ShowS)
-> Show LabelEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LabelEvent] -> ShowS
$cshowList :: [LabelEvent] -> ShowS
show :: LabelEvent -> String
$cshow :: LabelEvent -> String
showsPrec :: Int -> LabelEvent -> ShowS
$cshowsPrec :: Int -> LabelEvent -> ShowS
Show, Typeable, Typeable LabelEvent
DataType
Constr
Typeable LabelEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> LabelEvent -> c LabelEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c LabelEvent)
-> (LabelEvent -> Constr)
-> (LabelEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c LabelEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c LabelEvent))
-> ((forall b. Data b => b -> b) -> LabelEvent -> LabelEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> LabelEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> LabelEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> LabelEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> LabelEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> LabelEvent -> m LabelEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> LabelEvent -> m LabelEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> LabelEvent -> m LabelEvent)
-> Data LabelEvent
LabelEvent -> DataType
LabelEvent -> Constr
(forall b. Data b => b -> b) -> LabelEvent -> LabelEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> LabelEvent -> c LabelEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c LabelEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> LabelEvent -> u
forall u. (forall d. Data d => d -> u) -> LabelEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> LabelEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> LabelEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> LabelEvent -> m LabelEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> LabelEvent -> m LabelEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c LabelEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> LabelEvent -> c LabelEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c LabelEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LabelEvent)
$cLabelEvent :: Constr
$tLabelEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> LabelEvent -> m LabelEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> LabelEvent -> m LabelEvent
gmapMp :: (forall d. Data d => d -> m d) -> LabelEvent -> m LabelEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> LabelEvent -> m LabelEvent
gmapM :: (forall d. Data d => d -> m d) -> LabelEvent -> m LabelEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> LabelEvent -> m LabelEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> LabelEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> LabelEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> LabelEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> LabelEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> LabelEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> LabelEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> LabelEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> LabelEvent -> r
gmapT :: (forall b. Data b => b -> b) -> LabelEvent -> LabelEvent
$cgmapT :: (forall b. Data b => b -> b) -> LabelEvent -> LabelEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LabelEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LabelEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c LabelEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c LabelEvent)
dataTypeOf :: LabelEvent -> DataType
$cdataTypeOf :: LabelEvent -> DataType
toConstr :: LabelEvent -> Constr
$ctoConstr :: LabelEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c LabelEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c LabelEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> LabelEvent -> c LabelEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> LabelEvent -> c LabelEvent
$cp1Data :: Typeable LabelEvent
Data, (forall x. LabelEvent -> Rep LabelEvent x)
-> (forall x. Rep LabelEvent x -> LabelEvent) -> Generic LabelEvent
forall x. Rep LabelEvent x -> LabelEvent
forall x. LabelEvent -> Rep LabelEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep LabelEvent x -> LabelEvent
$cfrom :: forall x. LabelEvent -> Rep LabelEvent x
Generic)

instance EventHasSender LabelEvent where senderOfEvent :: LabelEvent -> HookUser
senderOfEvent = LabelEvent -> HookUser
evLabelEventSender
instance EventHasRepo LabelEvent where repoForEvent :: LabelEvent -> HookRepository
repoForEvent = LabelEvent -> HookRepository
evLabelEventRepo
instance NFData LabelEvent where rnf :: LabelEvent -> ()
rnf = LabelEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data MarketplacePurchaseEventAction
  -- | Decodes from "purchased"

  = MarketplacePurchasePurchasedAction
  -- | Decodes from "cancelled"

  | MarketplacePurchaseCancelledAction
  -- | Decodes from "pending_change"

  | MarketplacePurchasePendingChangeAction
  -- | Decodes from "pending_change_cancelled"

  | MarketplacePurchasePendingChangeCancelledAction
  -- | Decodes from "changed"

  | MarketplacePurchaseChangedAction
  -- | The result of decoding an unknown marketplace purchase event action type

  | MarketplacePurchaseActionOther !Text
  deriving (MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Bool
(MarketplacePurchaseEventAction
 -> MarketplacePurchaseEventAction -> Bool)
-> (MarketplacePurchaseEventAction
    -> MarketplacePurchaseEventAction -> Bool)
-> Eq MarketplacePurchaseEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Bool
$c/= :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Bool
== :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Bool
$c== :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Bool
Eq, Eq MarketplacePurchaseEventAction
Eq MarketplacePurchaseEventAction
-> (MarketplacePurchaseEventAction
    -> MarketplacePurchaseEventAction -> Ordering)
-> (MarketplacePurchaseEventAction
    -> MarketplacePurchaseEventAction -> Bool)
-> (MarketplacePurchaseEventAction
    -> MarketplacePurchaseEventAction -> Bool)
-> (MarketplacePurchaseEventAction
    -> MarketplacePurchaseEventAction -> Bool)
-> (MarketplacePurchaseEventAction
    -> MarketplacePurchaseEventAction -> Bool)
-> (MarketplacePurchaseEventAction
    -> MarketplacePurchaseEventAction
    -> MarketplacePurchaseEventAction)
-> (MarketplacePurchaseEventAction
    -> MarketplacePurchaseEventAction
    -> MarketplacePurchaseEventAction)
-> Ord MarketplacePurchaseEventAction
MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Bool
MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Ordering
MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> MarketplacePurchaseEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> MarketplacePurchaseEventAction
$cmin :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> MarketplacePurchaseEventAction
max :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> MarketplacePurchaseEventAction
$cmax :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> MarketplacePurchaseEventAction
>= :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Bool
$c>= :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Bool
> :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Bool
$c> :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Bool
<= :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Bool
$c<= :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Bool
< :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Bool
$c< :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Bool
compare :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Ordering
$ccompare :: MarketplacePurchaseEventAction
-> MarketplacePurchaseEventAction -> Ordering
$cp1Ord :: Eq MarketplacePurchaseEventAction
Ord, Int -> MarketplacePurchaseEventAction -> ShowS
[MarketplacePurchaseEventAction] -> ShowS
MarketplacePurchaseEventAction -> String
(Int -> MarketplacePurchaseEventAction -> ShowS)
-> (MarketplacePurchaseEventAction -> String)
-> ([MarketplacePurchaseEventAction] -> ShowS)
-> Show MarketplacePurchaseEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MarketplacePurchaseEventAction] -> ShowS
$cshowList :: [MarketplacePurchaseEventAction] -> ShowS
show :: MarketplacePurchaseEventAction -> String
$cshow :: MarketplacePurchaseEventAction -> String
showsPrec :: Int -> MarketplacePurchaseEventAction -> ShowS
$cshowsPrec :: Int -> MarketplacePurchaseEventAction -> ShowS
Show, (forall x.
 MarketplacePurchaseEventAction
 -> Rep MarketplacePurchaseEventAction x)
-> (forall x.
    Rep MarketplacePurchaseEventAction x
    -> MarketplacePurchaseEventAction)
-> Generic MarketplacePurchaseEventAction
forall x.
Rep MarketplacePurchaseEventAction x
-> MarketplacePurchaseEventAction
forall x.
MarketplacePurchaseEventAction
-> Rep MarketplacePurchaseEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep MarketplacePurchaseEventAction x
-> MarketplacePurchaseEventAction
$cfrom :: forall x.
MarketplacePurchaseEventAction
-> Rep MarketplacePurchaseEventAction x
Generic, Typeable, Typeable MarketplacePurchaseEventAction
DataType
Constr
Typeable MarketplacePurchaseEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> MarketplacePurchaseEventAction
    -> c MarketplacePurchaseEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r)
    -> Constr
    -> c MarketplacePurchaseEventAction)
-> (MarketplacePurchaseEventAction -> Constr)
-> (MarketplacePurchaseEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d))
    -> Maybe (c MarketplacePurchaseEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c MarketplacePurchaseEventAction))
-> ((forall b. Data b => b -> b)
    -> MarketplacePurchaseEventAction
    -> MarketplacePurchaseEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> MarketplacePurchaseEventAction
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> MarketplacePurchaseEventAction
    -> r)
-> (forall u.
    (forall d. Data d => d -> u)
    -> MarketplacePurchaseEventAction -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u)
    -> MarketplacePurchaseEventAction
    -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> MarketplacePurchaseEventAction
    -> m MarketplacePurchaseEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> MarketplacePurchaseEventAction
    -> m MarketplacePurchaseEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> MarketplacePurchaseEventAction
    -> m MarketplacePurchaseEventAction)
-> Data MarketplacePurchaseEventAction
MarketplacePurchaseEventAction -> DataType
MarketplacePurchaseEventAction -> Constr
(forall b. Data b => b -> b)
-> MarketplacePurchaseEventAction -> MarketplacePurchaseEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MarketplacePurchaseEventAction
-> c MarketplacePurchaseEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c MarketplacePurchaseEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int
-> (forall d. Data d => d -> u)
-> MarketplacePurchaseEventAction
-> u
forall u.
(forall d. Data d => d -> u)
-> MarketplacePurchaseEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> MarketplacePurchaseEventAction
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> MarketplacePurchaseEventAction
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MarketplacePurchaseEventAction
-> m MarketplacePurchaseEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MarketplacePurchaseEventAction
-> m MarketplacePurchaseEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c MarketplacePurchaseEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MarketplacePurchaseEventAction
-> c MarketplacePurchaseEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c MarketplacePurchaseEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MarketplacePurchaseEventAction)
$cMarketplacePurchaseActionOther :: Constr
$cMarketplacePurchaseChangedAction :: Constr
$cMarketplacePurchasePendingChangeCancelledAction :: Constr
$cMarketplacePurchasePendingChangeAction :: Constr
$cMarketplacePurchaseCancelledAction :: Constr
$cMarketplacePurchasePurchasedAction :: Constr
$tMarketplacePurchaseEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> MarketplacePurchaseEventAction
-> m MarketplacePurchaseEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MarketplacePurchaseEventAction
-> m MarketplacePurchaseEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> MarketplacePurchaseEventAction
-> m MarketplacePurchaseEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MarketplacePurchaseEventAction
-> m MarketplacePurchaseEventAction
gmapM :: (forall d. Data d => d -> m d)
-> MarketplacePurchaseEventAction
-> m MarketplacePurchaseEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MarketplacePurchaseEventAction
-> m MarketplacePurchaseEventAction
gmapQi :: Int
-> (forall d. Data d => d -> u)
-> MarketplacePurchaseEventAction
-> u
$cgmapQi :: forall u.
Int
-> (forall d. Data d => d -> u)
-> MarketplacePurchaseEventAction
-> u
gmapQ :: (forall d. Data d => d -> u)
-> MarketplacePurchaseEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u)
-> MarketplacePurchaseEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> MarketplacePurchaseEventAction
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> MarketplacePurchaseEventAction
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> MarketplacePurchaseEventAction
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> MarketplacePurchaseEventAction
-> r
gmapT :: (forall b. Data b => b -> b)
-> MarketplacePurchaseEventAction -> MarketplacePurchaseEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> MarketplacePurchaseEventAction -> MarketplacePurchaseEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MarketplacePurchaseEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MarketplacePurchaseEventAction)
dataCast1 :: (forall d. Data d => c (t d))
-> Maybe (c MarketplacePurchaseEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c MarketplacePurchaseEventAction)
dataTypeOf :: MarketplacePurchaseEventAction -> DataType
$cdataTypeOf :: MarketplacePurchaseEventAction -> DataType
toConstr :: MarketplacePurchaseEventAction -> Constr
$ctoConstr :: MarketplacePurchaseEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c MarketplacePurchaseEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c MarketplacePurchaseEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MarketplacePurchaseEventAction
-> c MarketplacePurchaseEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MarketplacePurchaseEventAction
-> c MarketplacePurchaseEventAction
$cp1Data :: Typeable MarketplacePurchaseEventAction
Data)

instance NFData MarketplacePurchaseEventAction where rnf :: MarketplacePurchaseEventAction -> ()
rnf = MarketplacePurchaseEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON MarketplacePurchaseEventAction where
  parseJSON :: Value -> Parser MarketplacePurchaseEventAction
parseJSON = String
-> (Text -> Parser MarketplacePurchaseEventAction)
-> Value
-> Parser MarketplacePurchaseEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Marketplace purchase event action" ((Text -> Parser MarketplacePurchaseEventAction)
 -> Value -> Parser MarketplacePurchaseEventAction)
-> (Text -> Parser MarketplacePurchaseEventAction)
-> Value
-> Parser MarketplacePurchaseEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"purchased"                -> MarketplacePurchaseEventAction
-> Parser MarketplacePurchaseEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure MarketplacePurchaseEventAction
MarketplacePurchasePurchasedAction
        Text
"cancelled"                -> MarketplacePurchaseEventAction
-> Parser MarketplacePurchaseEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure MarketplacePurchaseEventAction
MarketplacePurchaseCancelledAction
        Text
"pending_change"           -> MarketplacePurchaseEventAction
-> Parser MarketplacePurchaseEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure MarketplacePurchaseEventAction
MarketplacePurchasePendingChangeAction
        Text
"pending_change_cancelled" -> MarketplacePurchaseEventAction
-> Parser MarketplacePurchaseEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure MarketplacePurchaseEventAction
MarketplacePurchasePendingChangeCancelledAction
        Text
"changed"                  -> MarketplacePurchaseEventAction
-> Parser MarketplacePurchaseEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure MarketplacePurchaseEventAction
MarketplacePurchaseChangedAction
        Text
_                          -> MarketplacePurchaseEventAction
-> Parser MarketplacePurchaseEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> MarketplacePurchaseEventAction
MarketplacePurchaseActionOther Text
t)

-- | A GitHub Marketplace app receives information about changes to a user's plan from the Marketplace purchase event webhook. A Marketplace purchase event is triggered when a user purchases, cancels, or changes their payment plan.

-- See <https://docs.github.com/en/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/webhook-events-for-the-github-marketplace-api#github-marketplace-purchase-webhook-payload>.

data MarketplacePurchaseEvent = MarketplacePurchaseEvent
    { MarketplacePurchaseEvent -> MarketplacePurchaseEventAction
evMarketplacePurchaseAction        :: !MarketplacePurchaseEventAction
    , MarketplacePurchaseEvent -> UTCTime
evMarketplacePurchaseEffectiveDate :: !UTCTime
    , MarketplacePurchaseEvent -> HookUser
evMarketplacePurchaseSender        :: !HookUser
    , MarketplacePurchaseEvent -> HookMarketplacePurchase
evMarketplacePurchaseNew           :: !HookMarketplacePurchase
    , MarketplacePurchaseEvent -> Maybe HookMarketplacePurchase
evMarketplacePurchasePrevious      :: !(Maybe HookMarketplacePurchase)
    }
    deriving (MarketplacePurchaseEvent -> MarketplacePurchaseEvent -> Bool
(MarketplacePurchaseEvent -> MarketplacePurchaseEvent -> Bool)
-> (MarketplacePurchaseEvent -> MarketplacePurchaseEvent -> Bool)
-> Eq MarketplacePurchaseEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MarketplacePurchaseEvent -> MarketplacePurchaseEvent -> Bool
$c/= :: MarketplacePurchaseEvent -> MarketplacePurchaseEvent -> Bool
== :: MarketplacePurchaseEvent -> MarketplacePurchaseEvent -> Bool
$c== :: MarketplacePurchaseEvent -> MarketplacePurchaseEvent -> Bool
Eq, Int -> MarketplacePurchaseEvent -> ShowS
[MarketplacePurchaseEvent] -> ShowS
MarketplacePurchaseEvent -> String
(Int -> MarketplacePurchaseEvent -> ShowS)
-> (MarketplacePurchaseEvent -> String)
-> ([MarketplacePurchaseEvent] -> ShowS)
-> Show MarketplacePurchaseEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MarketplacePurchaseEvent] -> ShowS
$cshowList :: [MarketplacePurchaseEvent] -> ShowS
show :: MarketplacePurchaseEvent -> String
$cshow :: MarketplacePurchaseEvent -> String
showsPrec :: Int -> MarketplacePurchaseEvent -> ShowS
$cshowsPrec :: Int -> MarketplacePurchaseEvent -> ShowS
Show, Typeable, Typeable MarketplacePurchaseEvent
DataType
Constr
Typeable MarketplacePurchaseEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> MarketplacePurchaseEvent
    -> c MarketplacePurchaseEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c MarketplacePurchaseEvent)
-> (MarketplacePurchaseEvent -> Constr)
-> (MarketplacePurchaseEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d))
    -> Maybe (c MarketplacePurchaseEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c MarketplacePurchaseEvent))
-> ((forall b. Data b => b -> b)
    -> MarketplacePurchaseEvent -> MarketplacePurchaseEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> MarketplacePurchaseEvent
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> MarketplacePurchaseEvent
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> MarketplacePurchaseEvent -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u) -> MarketplacePurchaseEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> MarketplacePurchaseEvent -> m MarketplacePurchaseEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> MarketplacePurchaseEvent -> m MarketplacePurchaseEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> MarketplacePurchaseEvent -> m MarketplacePurchaseEvent)
-> Data MarketplacePurchaseEvent
MarketplacePurchaseEvent -> DataType
MarketplacePurchaseEvent -> Constr
(forall b. Data b => b -> b)
-> MarketplacePurchaseEvent -> MarketplacePurchaseEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MarketplacePurchaseEvent
-> c MarketplacePurchaseEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MarketplacePurchaseEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int
-> (forall d. Data d => d -> u) -> MarketplacePurchaseEvent -> u
forall u.
(forall d. Data d => d -> u) -> MarketplacePurchaseEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> MarketplacePurchaseEvent
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> MarketplacePurchaseEvent
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MarketplacePurchaseEvent -> m MarketplacePurchaseEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MarketplacePurchaseEvent -> m MarketplacePurchaseEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MarketplacePurchaseEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MarketplacePurchaseEvent
-> c MarketplacePurchaseEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MarketplacePurchaseEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MarketplacePurchaseEvent)
$cMarketplacePurchaseEvent :: Constr
$tMarketplacePurchaseEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> MarketplacePurchaseEvent -> m MarketplacePurchaseEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MarketplacePurchaseEvent -> m MarketplacePurchaseEvent
gmapMp :: (forall d. Data d => d -> m d)
-> MarketplacePurchaseEvent -> m MarketplacePurchaseEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MarketplacePurchaseEvent -> m MarketplacePurchaseEvent
gmapM :: (forall d. Data d => d -> m d)
-> MarketplacePurchaseEvent -> m MarketplacePurchaseEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MarketplacePurchaseEvent -> m MarketplacePurchaseEvent
gmapQi :: Int
-> (forall d. Data d => d -> u) -> MarketplacePurchaseEvent -> u
$cgmapQi :: forall u.
Int
-> (forall d. Data d => d -> u) -> MarketplacePurchaseEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> MarketplacePurchaseEvent -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> MarketplacePurchaseEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> MarketplacePurchaseEvent
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> MarketplacePurchaseEvent
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> MarketplacePurchaseEvent
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> MarketplacePurchaseEvent
-> r
gmapT :: (forall b. Data b => b -> b)
-> MarketplacePurchaseEvent -> MarketplacePurchaseEvent
$cgmapT :: (forall b. Data b => b -> b)
-> MarketplacePurchaseEvent -> MarketplacePurchaseEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MarketplacePurchaseEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MarketplacePurchaseEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c MarketplacePurchaseEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MarketplacePurchaseEvent)
dataTypeOf :: MarketplacePurchaseEvent -> DataType
$cdataTypeOf :: MarketplacePurchaseEvent -> DataType
toConstr :: MarketplacePurchaseEvent -> Constr
$ctoConstr :: MarketplacePurchaseEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MarketplacePurchaseEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MarketplacePurchaseEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MarketplacePurchaseEvent
-> c MarketplacePurchaseEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MarketplacePurchaseEvent
-> c MarketplacePurchaseEvent
$cp1Data :: Typeable MarketplacePurchaseEvent
Data, (forall x.
 MarketplacePurchaseEvent -> Rep MarketplacePurchaseEvent x)
-> (forall x.
    Rep MarketplacePurchaseEvent x -> MarketplacePurchaseEvent)
-> Generic MarketplacePurchaseEvent
forall x.
Rep MarketplacePurchaseEvent x -> MarketplacePurchaseEvent
forall x.
MarketplacePurchaseEvent -> Rep MarketplacePurchaseEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep MarketplacePurchaseEvent x -> MarketplacePurchaseEvent
$cfrom :: forall x.
MarketplacePurchaseEvent -> Rep MarketplacePurchaseEvent x
Generic)

instance EventHasSender MarketplacePurchaseEvent where senderOfEvent :: MarketplacePurchaseEvent -> HookUser
senderOfEvent = MarketplacePurchaseEvent -> HookUser
evMarketplacePurchaseSender
instance NFData MarketplacePurchaseEvent where rnf :: MarketplacePurchaseEvent -> ()
rnf = MarketplacePurchaseEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data MemberEventAction
  -- | Decodes from "added"

  = MemberAddedAction
  -- | Decodes from "edited"

  | MemberEditedAction
  -- | Decodes from "deleted"

  | MemberDeletedAction
  -- | The result of decoding an unknown label event action type

  | MemberActionOther !Text
  deriving (MemberEventAction -> MemberEventAction -> Bool
(MemberEventAction -> MemberEventAction -> Bool)
-> (MemberEventAction -> MemberEventAction -> Bool)
-> Eq MemberEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MemberEventAction -> MemberEventAction -> Bool
$c/= :: MemberEventAction -> MemberEventAction -> Bool
== :: MemberEventAction -> MemberEventAction -> Bool
$c== :: MemberEventAction -> MemberEventAction -> Bool
Eq, Eq MemberEventAction
Eq MemberEventAction
-> (MemberEventAction -> MemberEventAction -> Ordering)
-> (MemberEventAction -> MemberEventAction -> Bool)
-> (MemberEventAction -> MemberEventAction -> Bool)
-> (MemberEventAction -> MemberEventAction -> Bool)
-> (MemberEventAction -> MemberEventAction -> Bool)
-> (MemberEventAction -> MemberEventAction -> MemberEventAction)
-> (MemberEventAction -> MemberEventAction -> MemberEventAction)
-> Ord MemberEventAction
MemberEventAction -> MemberEventAction -> Bool
MemberEventAction -> MemberEventAction -> Ordering
MemberEventAction -> MemberEventAction -> MemberEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: MemberEventAction -> MemberEventAction -> MemberEventAction
$cmin :: MemberEventAction -> MemberEventAction -> MemberEventAction
max :: MemberEventAction -> MemberEventAction -> MemberEventAction
$cmax :: MemberEventAction -> MemberEventAction -> MemberEventAction
>= :: MemberEventAction -> MemberEventAction -> Bool
$c>= :: MemberEventAction -> MemberEventAction -> Bool
> :: MemberEventAction -> MemberEventAction -> Bool
$c> :: MemberEventAction -> MemberEventAction -> Bool
<= :: MemberEventAction -> MemberEventAction -> Bool
$c<= :: MemberEventAction -> MemberEventAction -> Bool
< :: MemberEventAction -> MemberEventAction -> Bool
$c< :: MemberEventAction -> MemberEventAction -> Bool
compare :: MemberEventAction -> MemberEventAction -> Ordering
$ccompare :: MemberEventAction -> MemberEventAction -> Ordering
$cp1Ord :: Eq MemberEventAction
Ord, Int -> MemberEventAction -> ShowS
[MemberEventAction] -> ShowS
MemberEventAction -> String
(Int -> MemberEventAction -> ShowS)
-> (MemberEventAction -> String)
-> ([MemberEventAction] -> ShowS)
-> Show MemberEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MemberEventAction] -> ShowS
$cshowList :: [MemberEventAction] -> ShowS
show :: MemberEventAction -> String
$cshow :: MemberEventAction -> String
showsPrec :: Int -> MemberEventAction -> ShowS
$cshowsPrec :: Int -> MemberEventAction -> ShowS
Show, (forall x. MemberEventAction -> Rep MemberEventAction x)
-> (forall x. Rep MemberEventAction x -> MemberEventAction)
-> Generic MemberEventAction
forall x. Rep MemberEventAction x -> MemberEventAction
forall x. MemberEventAction -> Rep MemberEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep MemberEventAction x -> MemberEventAction
$cfrom :: forall x. MemberEventAction -> Rep MemberEventAction x
Generic, Typeable, Typeable MemberEventAction
DataType
Constr
Typeable MemberEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> MemberEventAction
    -> c MemberEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c MemberEventAction)
-> (MemberEventAction -> Constr)
-> (MemberEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c MemberEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c MemberEventAction))
-> ((forall b. Data b => b -> b)
    -> MemberEventAction -> MemberEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> MemberEventAction -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> MemberEventAction -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> MemberEventAction -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> MemberEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> MemberEventAction -> m MemberEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> MemberEventAction -> m MemberEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> MemberEventAction -> m MemberEventAction)
-> Data MemberEventAction
MemberEventAction -> DataType
MemberEventAction -> Constr
(forall b. Data b => b -> b)
-> MemberEventAction -> MemberEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MemberEventAction -> c MemberEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MemberEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> MemberEventAction -> u
forall u. (forall d. Data d => d -> u) -> MemberEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MemberEventAction -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MemberEventAction -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MemberEventAction -> m MemberEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MemberEventAction -> m MemberEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MemberEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MemberEventAction -> c MemberEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MemberEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MemberEventAction)
$cMemberActionOther :: Constr
$cMemberDeletedAction :: Constr
$cMemberEditedAction :: Constr
$cMemberAddedAction :: Constr
$tMemberEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> MemberEventAction -> m MemberEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MemberEventAction -> m MemberEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> MemberEventAction -> m MemberEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MemberEventAction -> m MemberEventAction
gmapM :: (forall d. Data d => d -> m d)
-> MemberEventAction -> m MemberEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MemberEventAction -> m MemberEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> MemberEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> MemberEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> MemberEventAction -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> MemberEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MemberEventAction -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MemberEventAction -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MemberEventAction -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MemberEventAction -> r
gmapT :: (forall b. Data b => b -> b)
-> MemberEventAction -> MemberEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> MemberEventAction -> MemberEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MemberEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MemberEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c MemberEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MemberEventAction)
dataTypeOf :: MemberEventAction -> DataType
$cdataTypeOf :: MemberEventAction -> DataType
toConstr :: MemberEventAction -> Constr
$ctoConstr :: MemberEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MemberEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MemberEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MemberEventAction -> c MemberEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MemberEventAction -> c MemberEventAction
$cp1Data :: Typeable MemberEventAction
Data)

instance NFData MemberEventAction where rnf :: MemberEventAction -> ()
rnf = MemberEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON MemberEventAction where
  parseJSON :: Value -> Parser MemberEventAction
parseJSON = String
-> (Text -> Parser MemberEventAction)
-> Value
-> Parser MemberEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Member event action" ((Text -> Parser MemberEventAction)
 -> Value -> Parser MemberEventAction)
-> (Text -> Parser MemberEventAction)
-> Value
-> Parser MemberEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"added"         -> MemberEventAction -> Parser MemberEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure MemberEventAction
MemberAddedAction
        Text
"edited"        -> MemberEventAction -> Parser MemberEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure MemberEventAction
MemberEditedAction
        Text
"deleted"       -> MemberEventAction -> Parser MemberEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure MemberEventAction
MemberDeletedAction
        Text
_               -> MemberEventAction -> Parser MemberEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> MemberEventAction
MemberActionOther Text
t)

-- | Triggered when a user is added or removed as a collaborator to a repository, or has their permissions changed.

-- See <https://developer.github.com/v3/activity/events/types/#memberevent>.

data MemberEvent = MemberEvent
    { MemberEvent -> MemberEventAction
evMemberAction            :: !MemberEventAction
    , MemberEvent -> HookUser
evMemberUser              :: !HookUser
    , MemberEvent -> HookRepository
evMemberRepo              :: !HookRepository
    , MemberEvent -> HookUser
evMemberSender            :: !HookUser
    }
    deriving (MemberEvent -> MemberEvent -> Bool
(MemberEvent -> MemberEvent -> Bool)
-> (MemberEvent -> MemberEvent -> Bool) -> Eq MemberEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MemberEvent -> MemberEvent -> Bool
$c/= :: MemberEvent -> MemberEvent -> Bool
== :: MemberEvent -> MemberEvent -> Bool
$c== :: MemberEvent -> MemberEvent -> Bool
Eq, Int -> MemberEvent -> ShowS
[MemberEvent] -> ShowS
MemberEvent -> String
(Int -> MemberEvent -> ShowS)
-> (MemberEvent -> String)
-> ([MemberEvent] -> ShowS)
-> Show MemberEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MemberEvent] -> ShowS
$cshowList :: [MemberEvent] -> ShowS
show :: MemberEvent -> String
$cshow :: MemberEvent -> String
showsPrec :: Int -> MemberEvent -> ShowS
$cshowsPrec :: Int -> MemberEvent -> ShowS
Show, Typeable, Typeable MemberEvent
DataType
Constr
Typeable MemberEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> MemberEvent -> c MemberEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c MemberEvent)
-> (MemberEvent -> Constr)
-> (MemberEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c MemberEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c MemberEvent))
-> ((forall b. Data b => b -> b) -> MemberEvent -> MemberEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> MemberEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> MemberEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> MemberEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> MemberEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> MemberEvent -> m MemberEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> MemberEvent -> m MemberEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> MemberEvent -> m MemberEvent)
-> Data MemberEvent
MemberEvent -> DataType
MemberEvent -> Constr
(forall b. Data b => b -> b) -> MemberEvent -> MemberEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MemberEvent -> c MemberEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MemberEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> MemberEvent -> u
forall u. (forall d. Data d => d -> u) -> MemberEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MemberEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MemberEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> MemberEvent -> m MemberEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> MemberEvent -> m MemberEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MemberEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MemberEvent -> c MemberEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MemberEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MemberEvent)
$cMemberEvent :: Constr
$tMemberEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> MemberEvent -> m MemberEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> MemberEvent -> m MemberEvent
gmapMp :: (forall d. Data d => d -> m d) -> MemberEvent -> m MemberEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> MemberEvent -> m MemberEvent
gmapM :: (forall d. Data d => d -> m d) -> MemberEvent -> m MemberEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> MemberEvent -> m MemberEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> MemberEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> MemberEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> MemberEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> MemberEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MemberEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MemberEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MemberEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MemberEvent -> r
gmapT :: (forall b. Data b => b -> b) -> MemberEvent -> MemberEvent
$cgmapT :: (forall b. Data b => b -> b) -> MemberEvent -> MemberEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MemberEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MemberEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c MemberEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MemberEvent)
dataTypeOf :: MemberEvent -> DataType
$cdataTypeOf :: MemberEvent -> DataType
toConstr :: MemberEvent -> Constr
$ctoConstr :: MemberEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MemberEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MemberEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MemberEvent -> c MemberEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MemberEvent -> c MemberEvent
$cp1Data :: Typeable MemberEvent
Data, (forall x. MemberEvent -> Rep MemberEvent x)
-> (forall x. Rep MemberEvent x -> MemberEvent)
-> Generic MemberEvent
forall x. Rep MemberEvent x -> MemberEvent
forall x. MemberEvent -> Rep MemberEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep MemberEvent x -> MemberEvent
$cfrom :: forall x. MemberEvent -> Rep MemberEvent x
Generic)

instance EventHasSender MemberEvent where senderOfEvent :: MemberEvent -> HookUser
senderOfEvent = MemberEvent -> HookUser
evMemberSender
instance EventHasRepo MemberEvent where repoForEvent :: MemberEvent -> HookRepository
repoForEvent = MemberEvent -> HookRepository
evMemberRepo
instance NFData MemberEvent where rnf :: MemberEvent -> ()
rnf = MemberEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data MembershipEventAction
  -- | Decodes from "added"

  = MembershipAddedAction
  -- | Decodes from "removed"

  | MembershipRemovedAction
  -- | The result of decoding an unknown label event action type

  | MembershipActionOther !Text
  deriving (MembershipEventAction -> MembershipEventAction -> Bool
(MembershipEventAction -> MembershipEventAction -> Bool)
-> (MembershipEventAction -> MembershipEventAction -> Bool)
-> Eq MembershipEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MembershipEventAction -> MembershipEventAction -> Bool
$c/= :: MembershipEventAction -> MembershipEventAction -> Bool
== :: MembershipEventAction -> MembershipEventAction -> Bool
$c== :: MembershipEventAction -> MembershipEventAction -> Bool
Eq, Eq MembershipEventAction
Eq MembershipEventAction
-> (MembershipEventAction -> MembershipEventAction -> Ordering)
-> (MembershipEventAction -> MembershipEventAction -> Bool)
-> (MembershipEventAction -> MembershipEventAction -> Bool)
-> (MembershipEventAction -> MembershipEventAction -> Bool)
-> (MembershipEventAction -> MembershipEventAction -> Bool)
-> (MembershipEventAction
    -> MembershipEventAction -> MembershipEventAction)
-> (MembershipEventAction
    -> MembershipEventAction -> MembershipEventAction)
-> Ord MembershipEventAction
MembershipEventAction -> MembershipEventAction -> Bool
MembershipEventAction -> MembershipEventAction -> Ordering
MembershipEventAction
-> MembershipEventAction -> MembershipEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: MembershipEventAction
-> MembershipEventAction -> MembershipEventAction
$cmin :: MembershipEventAction
-> MembershipEventAction -> MembershipEventAction
max :: MembershipEventAction
-> MembershipEventAction -> MembershipEventAction
$cmax :: MembershipEventAction
-> MembershipEventAction -> MembershipEventAction
>= :: MembershipEventAction -> MembershipEventAction -> Bool
$c>= :: MembershipEventAction -> MembershipEventAction -> Bool
> :: MembershipEventAction -> MembershipEventAction -> Bool
$c> :: MembershipEventAction -> MembershipEventAction -> Bool
<= :: MembershipEventAction -> MembershipEventAction -> Bool
$c<= :: MembershipEventAction -> MembershipEventAction -> Bool
< :: MembershipEventAction -> MembershipEventAction -> Bool
$c< :: MembershipEventAction -> MembershipEventAction -> Bool
compare :: MembershipEventAction -> MembershipEventAction -> Ordering
$ccompare :: MembershipEventAction -> MembershipEventAction -> Ordering
$cp1Ord :: Eq MembershipEventAction
Ord, Int -> MembershipEventAction -> ShowS
[MembershipEventAction] -> ShowS
MembershipEventAction -> String
(Int -> MembershipEventAction -> ShowS)
-> (MembershipEventAction -> String)
-> ([MembershipEventAction] -> ShowS)
-> Show MembershipEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MembershipEventAction] -> ShowS
$cshowList :: [MembershipEventAction] -> ShowS
show :: MembershipEventAction -> String
$cshow :: MembershipEventAction -> String
showsPrec :: Int -> MembershipEventAction -> ShowS
$cshowsPrec :: Int -> MembershipEventAction -> ShowS
Show, (forall x. MembershipEventAction -> Rep MembershipEventAction x)
-> (forall x. Rep MembershipEventAction x -> MembershipEventAction)
-> Generic MembershipEventAction
forall x. Rep MembershipEventAction x -> MembershipEventAction
forall x. MembershipEventAction -> Rep MembershipEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep MembershipEventAction x -> MembershipEventAction
$cfrom :: forall x. MembershipEventAction -> Rep MembershipEventAction x
Generic, Typeable, Typeable MembershipEventAction
DataType
Constr
Typeable MembershipEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> MembershipEventAction
    -> c MembershipEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c MembershipEventAction)
-> (MembershipEventAction -> Constr)
-> (MembershipEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c MembershipEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c MembershipEventAction))
-> ((forall b. Data b => b -> b)
    -> MembershipEventAction -> MembershipEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> MembershipEventAction
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> MembershipEventAction
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> MembershipEventAction -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> MembershipEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> MembershipEventAction -> m MembershipEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> MembershipEventAction -> m MembershipEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> MembershipEventAction -> m MembershipEventAction)
-> Data MembershipEventAction
MembershipEventAction -> DataType
MembershipEventAction -> Constr
(forall b. Data b => b -> b)
-> MembershipEventAction -> MembershipEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MembershipEventAction
-> c MembershipEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MembershipEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> MembershipEventAction -> u
forall u.
(forall d. Data d => d -> u) -> MembershipEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MembershipEventAction -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MembershipEventAction -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MembershipEventAction -> m MembershipEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MembershipEventAction -> m MembershipEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MembershipEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MembershipEventAction
-> c MembershipEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MembershipEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MembershipEventAction)
$cMembershipActionOther :: Constr
$cMembershipRemovedAction :: Constr
$cMembershipAddedAction :: Constr
$tMembershipEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> MembershipEventAction -> m MembershipEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MembershipEventAction -> m MembershipEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> MembershipEventAction -> m MembershipEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MembershipEventAction -> m MembershipEventAction
gmapM :: (forall d. Data d => d -> m d)
-> MembershipEventAction -> m MembershipEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MembershipEventAction -> m MembershipEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> MembershipEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> MembershipEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> MembershipEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> MembershipEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MembershipEventAction -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MembershipEventAction -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MembershipEventAction -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MembershipEventAction -> r
gmapT :: (forall b. Data b => b -> b)
-> MembershipEventAction -> MembershipEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> MembershipEventAction -> MembershipEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MembershipEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MembershipEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c MembershipEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MembershipEventAction)
dataTypeOf :: MembershipEventAction -> DataType
$cdataTypeOf :: MembershipEventAction -> DataType
toConstr :: MembershipEventAction -> Constr
$ctoConstr :: MembershipEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MembershipEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MembershipEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MembershipEventAction
-> c MembershipEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MembershipEventAction
-> c MembershipEventAction
$cp1Data :: Typeable MembershipEventAction
Data)

instance NFData MembershipEventAction where rnf :: MembershipEventAction -> ()
rnf = MembershipEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON MembershipEventAction where
  parseJSON :: Value -> Parser MembershipEventAction
parseJSON = String
-> (Text -> Parser MembershipEventAction)
-> Value
-> Parser MembershipEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Membership event action" ((Text -> Parser MembershipEventAction)
 -> Value -> Parser MembershipEventAction)
-> (Text -> Parser MembershipEventAction)
-> Value
-> Parser MembershipEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"added"         -> MembershipEventAction -> Parser MembershipEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure MembershipEventAction
MembershipAddedAction
        Text
"removed"       -> MembershipEventAction -> Parser MembershipEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure MembershipEventAction
MembershipRemovedAction
        Text
_               -> MembershipEventAction -> Parser MembershipEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> MembershipEventAction
MembershipActionOther Text
t)

-- | Triggered when a user is added or removed from a team.

-- Events of this type are not visible in timelines. These events are only used to trigger hooks.

-- See <https://developer.github.com/v3/activity/events/types/#membershipevent>.

data MembershipEvent = MembershipEvent
    { MembershipEvent -> MembershipEventAction
evMembershipAction        :: !MembershipEventAction
    , MembershipEvent -> Text
evMembershipScope         :: !Text        -- ^ Current can only be "team"

    , MembershipEvent -> HookUser
evMembershipUser          :: !HookUser
    , MembershipEvent -> HookTeam
evMembershipTeam          :: !HookTeam
    , MembershipEvent -> HookOrganization
evMembershipOrg           :: !HookOrganization
    , MembershipEvent -> HookUser
evMembershipSender        :: !HookUser
    }
    deriving (MembershipEvent -> MembershipEvent -> Bool
(MembershipEvent -> MembershipEvent -> Bool)
-> (MembershipEvent -> MembershipEvent -> Bool)
-> Eq MembershipEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MembershipEvent -> MembershipEvent -> Bool
$c/= :: MembershipEvent -> MembershipEvent -> Bool
== :: MembershipEvent -> MembershipEvent -> Bool
$c== :: MembershipEvent -> MembershipEvent -> Bool
Eq, Int -> MembershipEvent -> ShowS
[MembershipEvent] -> ShowS
MembershipEvent -> String
(Int -> MembershipEvent -> ShowS)
-> (MembershipEvent -> String)
-> ([MembershipEvent] -> ShowS)
-> Show MembershipEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MembershipEvent] -> ShowS
$cshowList :: [MembershipEvent] -> ShowS
show :: MembershipEvent -> String
$cshow :: MembershipEvent -> String
showsPrec :: Int -> MembershipEvent -> ShowS
$cshowsPrec :: Int -> MembershipEvent -> ShowS
Show, Typeable, Typeable MembershipEvent
DataType
Constr
Typeable MembershipEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> MembershipEvent -> c MembershipEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c MembershipEvent)
-> (MembershipEvent -> Constr)
-> (MembershipEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c MembershipEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c MembershipEvent))
-> ((forall b. Data b => b -> b)
    -> MembershipEvent -> MembershipEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> MembershipEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> MembershipEvent -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> MembershipEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> MembershipEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> MembershipEvent -> m MembershipEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> MembershipEvent -> m MembershipEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> MembershipEvent -> m MembershipEvent)
-> Data MembershipEvent
MembershipEvent -> DataType
MembershipEvent -> Constr
(forall b. Data b => b -> b) -> MembershipEvent -> MembershipEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MembershipEvent -> c MembershipEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MembershipEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> MembershipEvent -> u
forall u. (forall d. Data d => d -> u) -> MembershipEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MembershipEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MembershipEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MembershipEvent -> m MembershipEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MembershipEvent -> m MembershipEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MembershipEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MembershipEvent -> c MembershipEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MembershipEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MembershipEvent)
$cMembershipEvent :: Constr
$tMembershipEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> MembershipEvent -> m MembershipEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MembershipEvent -> m MembershipEvent
gmapMp :: (forall d. Data d => d -> m d)
-> MembershipEvent -> m MembershipEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MembershipEvent -> m MembershipEvent
gmapM :: (forall d. Data d => d -> m d)
-> MembershipEvent -> m MembershipEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MembershipEvent -> m MembershipEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> MembershipEvent -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> MembershipEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> MembershipEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> MembershipEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MembershipEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MembershipEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MembershipEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MembershipEvent -> r
gmapT :: (forall b. Data b => b -> b) -> MembershipEvent -> MembershipEvent
$cgmapT :: (forall b. Data b => b -> b) -> MembershipEvent -> MembershipEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MembershipEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MembershipEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c MembershipEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MembershipEvent)
dataTypeOf :: MembershipEvent -> DataType
$cdataTypeOf :: MembershipEvent -> DataType
toConstr :: MembershipEvent -> Constr
$ctoConstr :: MembershipEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MembershipEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MembershipEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MembershipEvent -> c MembershipEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MembershipEvent -> c MembershipEvent
$cp1Data :: Typeable MembershipEvent
Data, (forall x. MembershipEvent -> Rep MembershipEvent x)
-> (forall x. Rep MembershipEvent x -> MembershipEvent)
-> Generic MembershipEvent
forall x. Rep MembershipEvent x -> MembershipEvent
forall x. MembershipEvent -> Rep MembershipEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep MembershipEvent x -> MembershipEvent
$cfrom :: forall x. MembershipEvent -> Rep MembershipEvent x
Generic)

instance EventHasSender MembershipEvent where senderOfEvent :: MembershipEvent -> HookUser
senderOfEvent = MembershipEvent -> HookUser
evMembershipSender
instance NFData MembershipEvent where rnf :: MembershipEvent -> ()
rnf = MembershipEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data MilestoneEventAction
  -- | Decodes from "created"

  = MilestoneCreatedAction
  -- | Decodes from "closed"

  | MilestoneClosedAction
  -- | Decodes from "opened"

  | MilestoneOpenedAction
  -- | Decodes from "edited"

  | MilestoneEditedAction
  -- | Decodes from "deleted"

  | MilestoneDeletedAction
  -- | The result of decoding an unknown label event action type

  | MilestoneActionOther !Text
  deriving (MilestoneEventAction -> MilestoneEventAction -> Bool
(MilestoneEventAction -> MilestoneEventAction -> Bool)
-> (MilestoneEventAction -> MilestoneEventAction -> Bool)
-> Eq MilestoneEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MilestoneEventAction -> MilestoneEventAction -> Bool
$c/= :: MilestoneEventAction -> MilestoneEventAction -> Bool
== :: MilestoneEventAction -> MilestoneEventAction -> Bool
$c== :: MilestoneEventAction -> MilestoneEventAction -> Bool
Eq, Eq MilestoneEventAction
Eq MilestoneEventAction
-> (MilestoneEventAction -> MilestoneEventAction -> Ordering)
-> (MilestoneEventAction -> MilestoneEventAction -> Bool)
-> (MilestoneEventAction -> MilestoneEventAction -> Bool)
-> (MilestoneEventAction -> MilestoneEventAction -> Bool)
-> (MilestoneEventAction -> MilestoneEventAction -> Bool)
-> (MilestoneEventAction
    -> MilestoneEventAction -> MilestoneEventAction)
-> (MilestoneEventAction
    -> MilestoneEventAction -> MilestoneEventAction)
-> Ord MilestoneEventAction
MilestoneEventAction -> MilestoneEventAction -> Bool
MilestoneEventAction -> MilestoneEventAction -> Ordering
MilestoneEventAction
-> MilestoneEventAction -> MilestoneEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: MilestoneEventAction
-> MilestoneEventAction -> MilestoneEventAction
$cmin :: MilestoneEventAction
-> MilestoneEventAction -> MilestoneEventAction
max :: MilestoneEventAction
-> MilestoneEventAction -> MilestoneEventAction
$cmax :: MilestoneEventAction
-> MilestoneEventAction -> MilestoneEventAction
>= :: MilestoneEventAction -> MilestoneEventAction -> Bool
$c>= :: MilestoneEventAction -> MilestoneEventAction -> Bool
> :: MilestoneEventAction -> MilestoneEventAction -> Bool
$c> :: MilestoneEventAction -> MilestoneEventAction -> Bool
<= :: MilestoneEventAction -> MilestoneEventAction -> Bool
$c<= :: MilestoneEventAction -> MilestoneEventAction -> Bool
< :: MilestoneEventAction -> MilestoneEventAction -> Bool
$c< :: MilestoneEventAction -> MilestoneEventAction -> Bool
compare :: MilestoneEventAction -> MilestoneEventAction -> Ordering
$ccompare :: MilestoneEventAction -> MilestoneEventAction -> Ordering
$cp1Ord :: Eq MilestoneEventAction
Ord, Int -> MilestoneEventAction -> ShowS
[MilestoneEventAction] -> ShowS
MilestoneEventAction -> String
(Int -> MilestoneEventAction -> ShowS)
-> (MilestoneEventAction -> String)
-> ([MilestoneEventAction] -> ShowS)
-> Show MilestoneEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MilestoneEventAction] -> ShowS
$cshowList :: [MilestoneEventAction] -> ShowS
show :: MilestoneEventAction -> String
$cshow :: MilestoneEventAction -> String
showsPrec :: Int -> MilestoneEventAction -> ShowS
$cshowsPrec :: Int -> MilestoneEventAction -> ShowS
Show, (forall x. MilestoneEventAction -> Rep MilestoneEventAction x)
-> (forall x. Rep MilestoneEventAction x -> MilestoneEventAction)
-> Generic MilestoneEventAction
forall x. Rep MilestoneEventAction x -> MilestoneEventAction
forall x. MilestoneEventAction -> Rep MilestoneEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep MilestoneEventAction x -> MilestoneEventAction
$cfrom :: forall x. MilestoneEventAction -> Rep MilestoneEventAction x
Generic, Typeable, Typeable MilestoneEventAction
DataType
Constr
Typeable MilestoneEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> MilestoneEventAction
    -> c MilestoneEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c MilestoneEventAction)
-> (MilestoneEventAction -> Constr)
-> (MilestoneEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c MilestoneEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c MilestoneEventAction))
-> ((forall b. Data b => b -> b)
    -> MilestoneEventAction -> MilestoneEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> MilestoneEventAction -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> MilestoneEventAction -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> MilestoneEventAction -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> MilestoneEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> MilestoneEventAction -> m MilestoneEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> MilestoneEventAction -> m MilestoneEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> MilestoneEventAction -> m MilestoneEventAction)
-> Data MilestoneEventAction
MilestoneEventAction -> DataType
MilestoneEventAction -> Constr
(forall b. Data b => b -> b)
-> MilestoneEventAction -> MilestoneEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MilestoneEventAction
-> c MilestoneEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MilestoneEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> MilestoneEventAction -> u
forall u.
(forall d. Data d => d -> u) -> MilestoneEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MilestoneEventAction -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MilestoneEventAction -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MilestoneEventAction -> m MilestoneEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MilestoneEventAction -> m MilestoneEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MilestoneEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MilestoneEventAction
-> c MilestoneEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MilestoneEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MilestoneEventAction)
$cMilestoneActionOther :: Constr
$cMilestoneDeletedAction :: Constr
$cMilestoneEditedAction :: Constr
$cMilestoneOpenedAction :: Constr
$cMilestoneClosedAction :: Constr
$cMilestoneCreatedAction :: Constr
$tMilestoneEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> MilestoneEventAction -> m MilestoneEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MilestoneEventAction -> m MilestoneEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> MilestoneEventAction -> m MilestoneEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MilestoneEventAction -> m MilestoneEventAction
gmapM :: (forall d. Data d => d -> m d)
-> MilestoneEventAction -> m MilestoneEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MilestoneEventAction -> m MilestoneEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> MilestoneEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> MilestoneEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> MilestoneEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> MilestoneEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MilestoneEventAction -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MilestoneEventAction -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MilestoneEventAction -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MilestoneEventAction -> r
gmapT :: (forall b. Data b => b -> b)
-> MilestoneEventAction -> MilestoneEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> MilestoneEventAction -> MilestoneEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MilestoneEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MilestoneEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c MilestoneEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MilestoneEventAction)
dataTypeOf :: MilestoneEventAction -> DataType
$cdataTypeOf :: MilestoneEventAction -> DataType
toConstr :: MilestoneEventAction -> Constr
$ctoConstr :: MilestoneEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MilestoneEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MilestoneEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MilestoneEventAction
-> c MilestoneEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MilestoneEventAction
-> c MilestoneEventAction
$cp1Data :: Typeable MilestoneEventAction
Data)

instance NFData MilestoneEventAction where rnf :: MilestoneEventAction -> ()
rnf = MilestoneEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON MilestoneEventAction where
  parseJSON :: Value -> Parser MilestoneEventAction
parseJSON = String
-> (Text -> Parser MilestoneEventAction)
-> Value
-> Parser MilestoneEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Milestone event action" ((Text -> Parser MilestoneEventAction)
 -> Value -> Parser MilestoneEventAction)
-> (Text -> Parser MilestoneEventAction)
-> Value
-> Parser MilestoneEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"created"       -> MilestoneEventAction -> Parser MilestoneEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure MilestoneEventAction
MilestoneCreatedAction
        Text
"closed"        -> MilestoneEventAction -> Parser MilestoneEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure MilestoneEventAction
MilestoneClosedAction
        Text
"opened"        -> MilestoneEventAction -> Parser MilestoneEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure MilestoneEventAction
MilestoneOpenedAction
        Text
"edited"        -> MilestoneEventAction -> Parser MilestoneEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure MilestoneEventAction
MilestoneEditedAction
        Text
"deleted"       -> MilestoneEventAction -> Parser MilestoneEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure MilestoneEventAction
MilestoneDeletedAction
        Text
_               -> MilestoneEventAction -> Parser MilestoneEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> MilestoneEventAction
MilestoneActionOther Text
t)

-- | Triggered when a milestone is created, closed, opened, edited, or deleted.

-- Events of this type are not visible in timelines. These events are only used to trigger hooks.

-- See <https://developer.github.com/v3/activity/events/types/#milestoneevent>.

data MilestoneEvent = MilestoneEvent
    { MilestoneEvent -> MilestoneEventAction
evMilestoneAction         :: !MilestoneEventAction
    , MilestoneEvent -> HookMilestone
evMilestoenPayload        :: !HookMilestone
    , MilestoneEvent -> HookRepository
evMilestoneRepo           :: !HookRepository
    , MilestoneEvent -> HookOrganization
evMilestoneOrg            :: !HookOrganization
    , MilestoneEvent -> HookUser
evMilestoneSender         :: !HookUser
    }
    deriving (MilestoneEvent -> MilestoneEvent -> Bool
(MilestoneEvent -> MilestoneEvent -> Bool)
-> (MilestoneEvent -> MilestoneEvent -> Bool) -> Eq MilestoneEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MilestoneEvent -> MilestoneEvent -> Bool
$c/= :: MilestoneEvent -> MilestoneEvent -> Bool
== :: MilestoneEvent -> MilestoneEvent -> Bool
$c== :: MilestoneEvent -> MilestoneEvent -> Bool
Eq, Int -> MilestoneEvent -> ShowS
[MilestoneEvent] -> ShowS
MilestoneEvent -> String
(Int -> MilestoneEvent -> ShowS)
-> (MilestoneEvent -> String)
-> ([MilestoneEvent] -> ShowS)
-> Show MilestoneEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MilestoneEvent] -> ShowS
$cshowList :: [MilestoneEvent] -> ShowS
show :: MilestoneEvent -> String
$cshow :: MilestoneEvent -> String
showsPrec :: Int -> MilestoneEvent -> ShowS
$cshowsPrec :: Int -> MilestoneEvent -> ShowS
Show, Typeable, Typeable MilestoneEvent
DataType
Constr
Typeable MilestoneEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> MilestoneEvent -> c MilestoneEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c MilestoneEvent)
-> (MilestoneEvent -> Constr)
-> (MilestoneEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c MilestoneEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c MilestoneEvent))
-> ((forall b. Data b => b -> b)
    -> MilestoneEvent -> MilestoneEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> MilestoneEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> MilestoneEvent -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> MilestoneEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> MilestoneEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> MilestoneEvent -> m MilestoneEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> MilestoneEvent -> m MilestoneEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> MilestoneEvent -> m MilestoneEvent)
-> Data MilestoneEvent
MilestoneEvent -> DataType
MilestoneEvent -> Constr
(forall b. Data b => b -> b) -> MilestoneEvent -> MilestoneEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MilestoneEvent -> c MilestoneEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MilestoneEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> MilestoneEvent -> u
forall u. (forall d. Data d => d -> u) -> MilestoneEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MilestoneEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MilestoneEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MilestoneEvent -> m MilestoneEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MilestoneEvent -> m MilestoneEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MilestoneEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MilestoneEvent -> c MilestoneEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MilestoneEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MilestoneEvent)
$cMilestoneEvent :: Constr
$tMilestoneEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> MilestoneEvent -> m MilestoneEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MilestoneEvent -> m MilestoneEvent
gmapMp :: (forall d. Data d => d -> m d)
-> MilestoneEvent -> m MilestoneEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MilestoneEvent -> m MilestoneEvent
gmapM :: (forall d. Data d => d -> m d)
-> MilestoneEvent -> m MilestoneEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MilestoneEvent -> m MilestoneEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> MilestoneEvent -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> MilestoneEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> MilestoneEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> MilestoneEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MilestoneEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MilestoneEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MilestoneEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MilestoneEvent -> r
gmapT :: (forall b. Data b => b -> b) -> MilestoneEvent -> MilestoneEvent
$cgmapT :: (forall b. Data b => b -> b) -> MilestoneEvent -> MilestoneEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MilestoneEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MilestoneEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c MilestoneEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MilestoneEvent)
dataTypeOf :: MilestoneEvent -> DataType
$cdataTypeOf :: MilestoneEvent -> DataType
toConstr :: MilestoneEvent -> Constr
$ctoConstr :: MilestoneEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MilestoneEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MilestoneEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MilestoneEvent -> c MilestoneEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MilestoneEvent -> c MilestoneEvent
$cp1Data :: Typeable MilestoneEvent
Data, (forall x. MilestoneEvent -> Rep MilestoneEvent x)
-> (forall x. Rep MilestoneEvent x -> MilestoneEvent)
-> Generic MilestoneEvent
forall x. Rep MilestoneEvent x -> MilestoneEvent
forall x. MilestoneEvent -> Rep MilestoneEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep MilestoneEvent x -> MilestoneEvent
$cfrom :: forall x. MilestoneEvent -> Rep MilestoneEvent x
Generic)

instance EventHasSender MilestoneEvent where senderOfEvent :: MilestoneEvent -> HookUser
senderOfEvent = MilestoneEvent -> HookUser
evMilestoneSender
instance EventHasRepo MilestoneEvent where repoForEvent :: MilestoneEvent -> HookRepository
repoForEvent = MilestoneEvent -> HookRepository
evMilestoneRepo
instance NFData MilestoneEvent where rnf :: MilestoneEvent -> ()
rnf = MilestoneEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data OrganizationEventAction
  -- | Decodes from "member_added"

  = OrgMemberAddedAction
  -- | Decodes from "member_removed"

  | OrgMemberRemovedAction
  -- | Decodes from "member_invited"

  | OrgMemberInvitedAction
  -- | The result of decoding an unknown label event action type

  | OrgActionOther !Text
  deriving (OrganizationEventAction -> OrganizationEventAction -> Bool
(OrganizationEventAction -> OrganizationEventAction -> Bool)
-> (OrganizationEventAction -> OrganizationEventAction -> Bool)
-> Eq OrganizationEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OrganizationEventAction -> OrganizationEventAction -> Bool
$c/= :: OrganizationEventAction -> OrganizationEventAction -> Bool
== :: OrganizationEventAction -> OrganizationEventAction -> Bool
$c== :: OrganizationEventAction -> OrganizationEventAction -> Bool
Eq, Eq OrganizationEventAction
Eq OrganizationEventAction
-> (OrganizationEventAction -> OrganizationEventAction -> Ordering)
-> (OrganizationEventAction -> OrganizationEventAction -> Bool)
-> (OrganizationEventAction -> OrganizationEventAction -> Bool)
-> (OrganizationEventAction -> OrganizationEventAction -> Bool)
-> (OrganizationEventAction -> OrganizationEventAction -> Bool)
-> (OrganizationEventAction
    -> OrganizationEventAction -> OrganizationEventAction)
-> (OrganizationEventAction
    -> OrganizationEventAction -> OrganizationEventAction)
-> Ord OrganizationEventAction
OrganizationEventAction -> OrganizationEventAction -> Bool
OrganizationEventAction -> OrganizationEventAction -> Ordering
OrganizationEventAction
-> OrganizationEventAction -> OrganizationEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: OrganizationEventAction
-> OrganizationEventAction -> OrganizationEventAction
$cmin :: OrganizationEventAction
-> OrganizationEventAction -> OrganizationEventAction
max :: OrganizationEventAction
-> OrganizationEventAction -> OrganizationEventAction
$cmax :: OrganizationEventAction
-> OrganizationEventAction -> OrganizationEventAction
>= :: OrganizationEventAction -> OrganizationEventAction -> Bool
$c>= :: OrganizationEventAction -> OrganizationEventAction -> Bool
> :: OrganizationEventAction -> OrganizationEventAction -> Bool
$c> :: OrganizationEventAction -> OrganizationEventAction -> Bool
<= :: OrganizationEventAction -> OrganizationEventAction -> Bool
$c<= :: OrganizationEventAction -> OrganizationEventAction -> Bool
< :: OrganizationEventAction -> OrganizationEventAction -> Bool
$c< :: OrganizationEventAction -> OrganizationEventAction -> Bool
compare :: OrganizationEventAction -> OrganizationEventAction -> Ordering
$ccompare :: OrganizationEventAction -> OrganizationEventAction -> Ordering
$cp1Ord :: Eq OrganizationEventAction
Ord, Int -> OrganizationEventAction -> ShowS
[OrganizationEventAction] -> ShowS
OrganizationEventAction -> String
(Int -> OrganizationEventAction -> ShowS)
-> (OrganizationEventAction -> String)
-> ([OrganizationEventAction] -> ShowS)
-> Show OrganizationEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [OrganizationEventAction] -> ShowS
$cshowList :: [OrganizationEventAction] -> ShowS
show :: OrganizationEventAction -> String
$cshow :: OrganizationEventAction -> String
showsPrec :: Int -> OrganizationEventAction -> ShowS
$cshowsPrec :: Int -> OrganizationEventAction -> ShowS
Show, (forall x.
 OrganizationEventAction -> Rep OrganizationEventAction x)
-> (forall x.
    Rep OrganizationEventAction x -> OrganizationEventAction)
-> Generic OrganizationEventAction
forall x. Rep OrganizationEventAction x -> OrganizationEventAction
forall x. OrganizationEventAction -> Rep OrganizationEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep OrganizationEventAction x -> OrganizationEventAction
$cfrom :: forall x. OrganizationEventAction -> Rep OrganizationEventAction x
Generic, Typeable, Typeable OrganizationEventAction
DataType
Constr
Typeable OrganizationEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> OrganizationEventAction
    -> c OrganizationEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c OrganizationEventAction)
-> (OrganizationEventAction -> Constr)
-> (OrganizationEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c OrganizationEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c OrganizationEventAction))
-> ((forall b. Data b => b -> b)
    -> OrganizationEventAction -> OrganizationEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> OrganizationEventAction
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> OrganizationEventAction
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> OrganizationEventAction -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u) -> OrganizationEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> OrganizationEventAction -> m OrganizationEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> OrganizationEventAction -> m OrganizationEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> OrganizationEventAction -> m OrganizationEventAction)
-> Data OrganizationEventAction
OrganizationEventAction -> DataType
OrganizationEventAction -> Constr
(forall b. Data b => b -> b)
-> OrganizationEventAction -> OrganizationEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> OrganizationEventAction
-> c OrganizationEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OrganizationEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> OrganizationEventAction -> u
forall u.
(forall d. Data d => d -> u) -> OrganizationEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> OrganizationEventAction
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> OrganizationEventAction
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> OrganizationEventAction -> m OrganizationEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OrganizationEventAction -> m OrganizationEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OrganizationEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> OrganizationEventAction
-> c OrganizationEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OrganizationEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OrganizationEventAction)
$cOrgActionOther :: Constr
$cOrgMemberInvitedAction :: Constr
$cOrgMemberRemovedAction :: Constr
$cOrgMemberAddedAction :: Constr
$tOrganizationEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> OrganizationEventAction -> m OrganizationEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OrganizationEventAction -> m OrganizationEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> OrganizationEventAction -> m OrganizationEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OrganizationEventAction -> m OrganizationEventAction
gmapM :: (forall d. Data d => d -> m d)
-> OrganizationEventAction -> m OrganizationEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> OrganizationEventAction -> m OrganizationEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> OrganizationEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> OrganizationEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> OrganizationEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> OrganizationEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> OrganizationEventAction
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> OrganizationEventAction
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> OrganizationEventAction
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> OrganizationEventAction
-> r
gmapT :: (forall b. Data b => b -> b)
-> OrganizationEventAction -> OrganizationEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> OrganizationEventAction -> OrganizationEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OrganizationEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OrganizationEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c OrganizationEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OrganizationEventAction)
dataTypeOf :: OrganizationEventAction -> DataType
$cdataTypeOf :: OrganizationEventAction -> DataType
toConstr :: OrganizationEventAction -> Constr
$ctoConstr :: OrganizationEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OrganizationEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OrganizationEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> OrganizationEventAction
-> c OrganizationEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> OrganizationEventAction
-> c OrganizationEventAction
$cp1Data :: Typeable OrganizationEventAction
Data)

instance NFData OrganizationEventAction where rnf :: OrganizationEventAction -> ()
rnf = OrganizationEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON OrganizationEventAction where
  parseJSON :: Value -> Parser OrganizationEventAction
parseJSON = String
-> (Text -> Parser OrganizationEventAction)
-> Value
-> Parser OrganizationEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Organization event action" ((Text -> Parser OrganizationEventAction)
 -> Value -> Parser OrganizationEventAction)
-> (Text -> Parser OrganizationEventAction)
-> Value
-> Parser OrganizationEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"member_added"   -> OrganizationEventAction -> Parser OrganizationEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure OrganizationEventAction
OrgMemberAddedAction
        Text
"member_removed" -> OrganizationEventAction -> Parser OrganizationEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure OrganizationEventAction
OrgMemberRemovedAction
        Text
"member_invited" -> OrganizationEventAction -> Parser OrganizationEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure OrganizationEventAction
OrgMemberInvitedAction
        Text
_                -> OrganizationEventAction -> Parser OrganizationEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> OrganizationEventAction
OrgActionOther Text
t)

-- | Triggered when a user is added, removed, or invited to an Organization.

-- Events of this type are not visible in timelines. These events are only used to trigger organization hooks.

-- See <https://developer.github.com/v3/activity/events/types/#organizationevent>.

data OrganizationEvent = OrganizationEvent
    { OrganizationEvent -> OrganizationEventAction
evOrganizationAction      :: !OrganizationEventAction
    , OrganizationEvent -> Maybe HookOrganizationInvitation
evOrganizationInvitation  :: !(Maybe HookOrganizationInvitation)
    , OrganizationEvent -> Maybe HookOrganizationMembership
evOrganizationMembership  :: !(Maybe HookOrganizationMembership)
    , OrganizationEvent -> HookOrganization
evOrganizationOrg         :: !HookOrganization
    , OrganizationEvent -> HookUser
evOrganizationSender      :: !HookUser
    }
    deriving (OrganizationEvent -> OrganizationEvent -> Bool
(OrganizationEvent -> OrganizationEvent -> Bool)
-> (OrganizationEvent -> OrganizationEvent -> Bool)
-> Eq OrganizationEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OrganizationEvent -> OrganizationEvent -> Bool
$c/= :: OrganizationEvent -> OrganizationEvent -> Bool
== :: OrganizationEvent -> OrganizationEvent -> Bool
$c== :: OrganizationEvent -> OrganizationEvent -> Bool
Eq, Int -> OrganizationEvent -> ShowS
[OrganizationEvent] -> ShowS
OrganizationEvent -> String
(Int -> OrganizationEvent -> ShowS)
-> (OrganizationEvent -> String)
-> ([OrganizationEvent] -> ShowS)
-> Show OrganizationEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [OrganizationEvent] -> ShowS
$cshowList :: [OrganizationEvent] -> ShowS
show :: OrganizationEvent -> String
$cshow :: OrganizationEvent -> String
showsPrec :: Int -> OrganizationEvent -> ShowS
$cshowsPrec :: Int -> OrganizationEvent -> ShowS
Show, Typeable, Typeable OrganizationEvent
DataType
Constr
Typeable OrganizationEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> OrganizationEvent
    -> c OrganizationEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c OrganizationEvent)
-> (OrganizationEvent -> Constr)
-> (OrganizationEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c OrganizationEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c OrganizationEvent))
-> ((forall b. Data b => b -> b)
    -> OrganizationEvent -> OrganizationEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> OrganizationEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> OrganizationEvent -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> OrganizationEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> OrganizationEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> OrganizationEvent -> m OrganizationEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> OrganizationEvent -> m OrganizationEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> OrganizationEvent -> m OrganizationEvent)
-> Data OrganizationEvent
OrganizationEvent -> DataType
OrganizationEvent -> Constr
(forall b. Data b => b -> b)
-> OrganizationEvent -> OrganizationEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> OrganizationEvent -> c OrganizationEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OrganizationEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> OrganizationEvent -> u
forall u. (forall d. Data d => d -> u) -> OrganizationEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OrganizationEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OrganizationEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> OrganizationEvent -> m OrganizationEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OrganizationEvent -> m OrganizationEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OrganizationEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> OrganizationEvent -> c OrganizationEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OrganizationEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OrganizationEvent)
$cOrganizationEvent :: Constr
$tOrganizationEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> OrganizationEvent -> m OrganizationEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OrganizationEvent -> m OrganizationEvent
gmapMp :: (forall d. Data d => d -> m d)
-> OrganizationEvent -> m OrganizationEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OrganizationEvent -> m OrganizationEvent
gmapM :: (forall d. Data d => d -> m d)
-> OrganizationEvent -> m OrganizationEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> OrganizationEvent -> m OrganizationEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> OrganizationEvent -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> OrganizationEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> OrganizationEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> OrganizationEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OrganizationEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OrganizationEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OrganizationEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OrganizationEvent -> r
gmapT :: (forall b. Data b => b -> b)
-> OrganizationEvent -> OrganizationEvent
$cgmapT :: (forall b. Data b => b -> b)
-> OrganizationEvent -> OrganizationEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OrganizationEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OrganizationEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c OrganizationEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OrganizationEvent)
dataTypeOf :: OrganizationEvent -> DataType
$cdataTypeOf :: OrganizationEvent -> DataType
toConstr :: OrganizationEvent -> Constr
$ctoConstr :: OrganizationEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OrganizationEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OrganizationEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> OrganizationEvent -> c OrganizationEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> OrganizationEvent -> c OrganizationEvent
$cp1Data :: Typeable OrganizationEvent
Data, (forall x. OrganizationEvent -> Rep OrganizationEvent x)
-> (forall x. Rep OrganizationEvent x -> OrganizationEvent)
-> Generic OrganizationEvent
forall x. Rep OrganizationEvent x -> OrganizationEvent
forall x. OrganizationEvent -> Rep OrganizationEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep OrganizationEvent x -> OrganizationEvent
$cfrom :: forall x. OrganizationEvent -> Rep OrganizationEvent x
Generic)

instance EventHasSender OrganizationEvent where senderOfEvent :: OrganizationEvent -> HookUser
senderOfEvent = OrganizationEvent -> HookUser
evOrganizationSender
instance NFData OrganizationEvent where rnf :: OrganizationEvent -> ()
rnf = OrganizationEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data OrgBlockEventAction
  -- | Decodes from "blocked"

  = OrgBlockBlockedAction
  -- | Decodes from "unblocked"

  | OrgBlockUnblockedAction
  -- | The result of decoding an unknown org block event action type

  | OrgBlockActionOther !Text
  deriving (OrgBlockEventAction -> OrgBlockEventAction -> Bool
(OrgBlockEventAction -> OrgBlockEventAction -> Bool)
-> (OrgBlockEventAction -> OrgBlockEventAction -> Bool)
-> Eq OrgBlockEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OrgBlockEventAction -> OrgBlockEventAction -> Bool
$c/= :: OrgBlockEventAction -> OrgBlockEventAction -> Bool
== :: OrgBlockEventAction -> OrgBlockEventAction -> Bool
$c== :: OrgBlockEventAction -> OrgBlockEventAction -> Bool
Eq, Eq OrgBlockEventAction
Eq OrgBlockEventAction
-> (OrgBlockEventAction -> OrgBlockEventAction -> Ordering)
-> (OrgBlockEventAction -> OrgBlockEventAction -> Bool)
-> (OrgBlockEventAction -> OrgBlockEventAction -> Bool)
-> (OrgBlockEventAction -> OrgBlockEventAction -> Bool)
-> (OrgBlockEventAction -> OrgBlockEventAction -> Bool)
-> (OrgBlockEventAction
    -> OrgBlockEventAction -> OrgBlockEventAction)
-> (OrgBlockEventAction
    -> OrgBlockEventAction -> OrgBlockEventAction)
-> Ord OrgBlockEventAction
OrgBlockEventAction -> OrgBlockEventAction -> Bool
OrgBlockEventAction -> OrgBlockEventAction -> Ordering
OrgBlockEventAction -> OrgBlockEventAction -> OrgBlockEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: OrgBlockEventAction -> OrgBlockEventAction -> OrgBlockEventAction
$cmin :: OrgBlockEventAction -> OrgBlockEventAction -> OrgBlockEventAction
max :: OrgBlockEventAction -> OrgBlockEventAction -> OrgBlockEventAction
$cmax :: OrgBlockEventAction -> OrgBlockEventAction -> OrgBlockEventAction
>= :: OrgBlockEventAction -> OrgBlockEventAction -> Bool
$c>= :: OrgBlockEventAction -> OrgBlockEventAction -> Bool
> :: OrgBlockEventAction -> OrgBlockEventAction -> Bool
$c> :: OrgBlockEventAction -> OrgBlockEventAction -> Bool
<= :: OrgBlockEventAction -> OrgBlockEventAction -> Bool
$c<= :: OrgBlockEventAction -> OrgBlockEventAction -> Bool
< :: OrgBlockEventAction -> OrgBlockEventAction -> Bool
$c< :: OrgBlockEventAction -> OrgBlockEventAction -> Bool
compare :: OrgBlockEventAction -> OrgBlockEventAction -> Ordering
$ccompare :: OrgBlockEventAction -> OrgBlockEventAction -> Ordering
$cp1Ord :: Eq OrgBlockEventAction
Ord, Int -> OrgBlockEventAction -> ShowS
[OrgBlockEventAction] -> ShowS
OrgBlockEventAction -> String
(Int -> OrgBlockEventAction -> ShowS)
-> (OrgBlockEventAction -> String)
-> ([OrgBlockEventAction] -> ShowS)
-> Show OrgBlockEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [OrgBlockEventAction] -> ShowS
$cshowList :: [OrgBlockEventAction] -> ShowS
show :: OrgBlockEventAction -> String
$cshow :: OrgBlockEventAction -> String
showsPrec :: Int -> OrgBlockEventAction -> ShowS
$cshowsPrec :: Int -> OrgBlockEventAction -> ShowS
Show, (forall x. OrgBlockEventAction -> Rep OrgBlockEventAction x)
-> (forall x. Rep OrgBlockEventAction x -> OrgBlockEventAction)
-> Generic OrgBlockEventAction
forall x. Rep OrgBlockEventAction x -> OrgBlockEventAction
forall x. OrgBlockEventAction -> Rep OrgBlockEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep OrgBlockEventAction x -> OrgBlockEventAction
$cfrom :: forall x. OrgBlockEventAction -> Rep OrgBlockEventAction x
Generic, Typeable, Typeable OrgBlockEventAction
DataType
Constr
Typeable OrgBlockEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> OrgBlockEventAction
    -> c OrgBlockEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c OrgBlockEventAction)
-> (OrgBlockEventAction -> Constr)
-> (OrgBlockEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c OrgBlockEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c OrgBlockEventAction))
-> ((forall b. Data b => b -> b)
    -> OrgBlockEventAction -> OrgBlockEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> OrgBlockEventAction -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> OrgBlockEventAction -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> OrgBlockEventAction -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> OrgBlockEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> OrgBlockEventAction -> m OrgBlockEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> OrgBlockEventAction -> m OrgBlockEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> OrgBlockEventAction -> m OrgBlockEventAction)
-> Data OrgBlockEventAction
OrgBlockEventAction -> DataType
OrgBlockEventAction -> Constr
(forall b. Data b => b -> b)
-> OrgBlockEventAction -> OrgBlockEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> OrgBlockEventAction
-> c OrgBlockEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OrgBlockEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> OrgBlockEventAction -> u
forall u.
(forall d. Data d => d -> u) -> OrgBlockEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OrgBlockEventAction -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OrgBlockEventAction -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> OrgBlockEventAction -> m OrgBlockEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OrgBlockEventAction -> m OrgBlockEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OrgBlockEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> OrgBlockEventAction
-> c OrgBlockEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OrgBlockEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OrgBlockEventAction)
$cOrgBlockActionOther :: Constr
$cOrgBlockUnblockedAction :: Constr
$cOrgBlockBlockedAction :: Constr
$tOrgBlockEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> OrgBlockEventAction -> m OrgBlockEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OrgBlockEventAction -> m OrgBlockEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> OrgBlockEventAction -> m OrgBlockEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OrgBlockEventAction -> m OrgBlockEventAction
gmapM :: (forall d. Data d => d -> m d)
-> OrgBlockEventAction -> m OrgBlockEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> OrgBlockEventAction -> m OrgBlockEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> OrgBlockEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> OrgBlockEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> OrgBlockEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> OrgBlockEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OrgBlockEventAction -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OrgBlockEventAction -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OrgBlockEventAction -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OrgBlockEventAction -> r
gmapT :: (forall b. Data b => b -> b)
-> OrgBlockEventAction -> OrgBlockEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> OrgBlockEventAction -> OrgBlockEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OrgBlockEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OrgBlockEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c OrgBlockEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OrgBlockEventAction)
dataTypeOf :: OrgBlockEventAction -> DataType
$cdataTypeOf :: OrgBlockEventAction -> DataType
toConstr :: OrgBlockEventAction -> Constr
$ctoConstr :: OrgBlockEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OrgBlockEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OrgBlockEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> OrgBlockEventAction
-> c OrgBlockEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> OrgBlockEventAction
-> c OrgBlockEventAction
$cp1Data :: Typeable OrgBlockEventAction
Data)

instance NFData OrgBlockEventAction where rnf :: OrgBlockEventAction -> ()
rnf = OrgBlockEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON OrgBlockEventAction where
  parseJSON :: Value -> Parser OrgBlockEventAction
parseJSON = String
-> (Text -> Parser OrgBlockEventAction)
-> Value
-> Parser OrgBlockEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Organization event action" ((Text -> Parser OrgBlockEventAction)
 -> Value -> Parser OrgBlockEventAction)
-> (Text -> Parser OrgBlockEventAction)
-> Value
-> Parser OrgBlockEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"blocked"       -> OrgBlockEventAction -> Parser OrgBlockEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure OrgBlockEventAction
OrgBlockBlockedAction
        Text
"unblocked"     -> OrgBlockEventAction -> Parser OrgBlockEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure OrgBlockEventAction
OrgBlockUnblockedAction
        Text
_               -> OrgBlockEventAction -> Parser OrgBlockEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> OrgBlockEventAction
OrgBlockActionOther Text
t)

-- | Triggered when an organization blocks or unblocks a user.

-- See <https://developer.github.com/v3/activity/events/types/#orgblockevent>.

data OrgBlockEvent = OrgBlockEvent
    { OrgBlockEvent -> OrgBlockEventAction
evOrgBlockAction          :: !OrgBlockEventAction
    , OrgBlockEvent -> HookUser
evOrgBlockUser            :: !HookUser
    , OrgBlockEvent -> HookOrganization
evOrgBlockOrg             :: !HookOrganization
    , OrgBlockEvent -> HookUser
evOrgBlockSender          :: !HookUser
    }
    deriving (OrgBlockEvent -> OrgBlockEvent -> Bool
(OrgBlockEvent -> OrgBlockEvent -> Bool)
-> (OrgBlockEvent -> OrgBlockEvent -> Bool) -> Eq OrgBlockEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OrgBlockEvent -> OrgBlockEvent -> Bool
$c/= :: OrgBlockEvent -> OrgBlockEvent -> Bool
== :: OrgBlockEvent -> OrgBlockEvent -> Bool
$c== :: OrgBlockEvent -> OrgBlockEvent -> Bool
Eq, Int -> OrgBlockEvent -> ShowS
[OrgBlockEvent] -> ShowS
OrgBlockEvent -> String
(Int -> OrgBlockEvent -> ShowS)
-> (OrgBlockEvent -> String)
-> ([OrgBlockEvent] -> ShowS)
-> Show OrgBlockEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [OrgBlockEvent] -> ShowS
$cshowList :: [OrgBlockEvent] -> ShowS
show :: OrgBlockEvent -> String
$cshow :: OrgBlockEvent -> String
showsPrec :: Int -> OrgBlockEvent -> ShowS
$cshowsPrec :: Int -> OrgBlockEvent -> ShowS
Show, Typeable, Typeable OrgBlockEvent
DataType
Constr
Typeable OrgBlockEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> OrgBlockEvent -> c OrgBlockEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c OrgBlockEvent)
-> (OrgBlockEvent -> Constr)
-> (OrgBlockEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c OrgBlockEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c OrgBlockEvent))
-> ((forall b. Data b => b -> b) -> OrgBlockEvent -> OrgBlockEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> OrgBlockEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> OrgBlockEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> OrgBlockEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> OrgBlockEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> OrgBlockEvent -> m OrgBlockEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> OrgBlockEvent -> m OrgBlockEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> OrgBlockEvent -> m OrgBlockEvent)
-> Data OrgBlockEvent
OrgBlockEvent -> DataType
OrgBlockEvent -> Constr
(forall b. Data b => b -> b) -> OrgBlockEvent -> OrgBlockEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> OrgBlockEvent -> c OrgBlockEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OrgBlockEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> OrgBlockEvent -> u
forall u. (forall d. Data d => d -> u) -> OrgBlockEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OrgBlockEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OrgBlockEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> OrgBlockEvent -> m OrgBlockEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OrgBlockEvent -> m OrgBlockEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OrgBlockEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> OrgBlockEvent -> c OrgBlockEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OrgBlockEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OrgBlockEvent)
$cOrgBlockEvent :: Constr
$tOrgBlockEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> OrgBlockEvent -> m OrgBlockEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OrgBlockEvent -> m OrgBlockEvent
gmapMp :: (forall d. Data d => d -> m d) -> OrgBlockEvent -> m OrgBlockEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OrgBlockEvent -> m OrgBlockEvent
gmapM :: (forall d. Data d => d -> m d) -> OrgBlockEvent -> m OrgBlockEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> OrgBlockEvent -> m OrgBlockEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> OrgBlockEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> OrgBlockEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> OrgBlockEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> OrgBlockEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OrgBlockEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OrgBlockEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OrgBlockEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OrgBlockEvent -> r
gmapT :: (forall b. Data b => b -> b) -> OrgBlockEvent -> OrgBlockEvent
$cgmapT :: (forall b. Data b => b -> b) -> OrgBlockEvent -> OrgBlockEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OrgBlockEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OrgBlockEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c OrgBlockEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OrgBlockEvent)
dataTypeOf :: OrgBlockEvent -> DataType
$cdataTypeOf :: OrgBlockEvent -> DataType
toConstr :: OrgBlockEvent -> Constr
$ctoConstr :: OrgBlockEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OrgBlockEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OrgBlockEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> OrgBlockEvent -> c OrgBlockEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> OrgBlockEvent -> c OrgBlockEvent
$cp1Data :: Typeable OrgBlockEvent
Data, (forall x. OrgBlockEvent -> Rep OrgBlockEvent x)
-> (forall x. Rep OrgBlockEvent x -> OrgBlockEvent)
-> Generic OrgBlockEvent
forall x. Rep OrgBlockEvent x -> OrgBlockEvent
forall x. OrgBlockEvent -> Rep OrgBlockEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep OrgBlockEvent x -> OrgBlockEvent
$cfrom :: forall x. OrgBlockEvent -> Rep OrgBlockEvent x
Generic)

instance EventHasSender OrgBlockEvent where senderOfEvent :: OrgBlockEvent -> HookUser
senderOfEvent = OrgBlockEvent -> HookUser
evOrgBlockSender
instance NFData OrgBlockEvent where rnf :: OrgBlockEvent -> ()
rnf = OrgBlockEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


-- | Represents an attempted build of a GitHub Pages site, whether successful or not.

-- Triggered on push to a GitHub Pages enabled branch (gh-pages for project pages, master for user and organization pages).

-- Events of this type are not visible in timelines. These events are only used to trigger hooks.

-- See <https://developer.github.com/v3/activity/events/types/#pagebuildevent>.

data PageBuildEvent = PageBuildEvent
    { PageBuildEvent -> Int
evPageBuildId             :: !Int
    , PageBuildEvent -> HookPageBuildResult
evPageBuildResult         :: !HookPageBuildResult
    , PageBuildEvent -> HookRepository
evPageBuildRepo           :: !HookRepository
    , PageBuildEvent -> HookUser
evPageBuildSender         :: !HookUser
    }
    deriving (PageBuildEvent -> PageBuildEvent -> Bool
(PageBuildEvent -> PageBuildEvent -> Bool)
-> (PageBuildEvent -> PageBuildEvent -> Bool) -> Eq PageBuildEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PageBuildEvent -> PageBuildEvent -> Bool
$c/= :: PageBuildEvent -> PageBuildEvent -> Bool
== :: PageBuildEvent -> PageBuildEvent -> Bool
$c== :: PageBuildEvent -> PageBuildEvent -> Bool
Eq, Int -> PageBuildEvent -> ShowS
[PageBuildEvent] -> ShowS
PageBuildEvent -> String
(Int -> PageBuildEvent -> ShowS)
-> (PageBuildEvent -> String)
-> ([PageBuildEvent] -> ShowS)
-> Show PageBuildEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PageBuildEvent] -> ShowS
$cshowList :: [PageBuildEvent] -> ShowS
show :: PageBuildEvent -> String
$cshow :: PageBuildEvent -> String
showsPrec :: Int -> PageBuildEvent -> ShowS
$cshowsPrec :: Int -> PageBuildEvent -> ShowS
Show, Typeable, Typeable PageBuildEvent
DataType
Constr
Typeable PageBuildEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> PageBuildEvent -> c PageBuildEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c PageBuildEvent)
-> (PageBuildEvent -> Constr)
-> (PageBuildEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c PageBuildEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c PageBuildEvent))
-> ((forall b. Data b => b -> b)
    -> PageBuildEvent -> PageBuildEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> PageBuildEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> PageBuildEvent -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> PageBuildEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> PageBuildEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> PageBuildEvent -> m PageBuildEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PageBuildEvent -> m PageBuildEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PageBuildEvent -> m PageBuildEvent)
-> Data PageBuildEvent
PageBuildEvent -> DataType
PageBuildEvent -> Constr
(forall b. Data b => b -> b) -> PageBuildEvent -> PageBuildEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PageBuildEvent -> c PageBuildEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PageBuildEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> PageBuildEvent -> u
forall u. (forall d. Data d => d -> u) -> PageBuildEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PageBuildEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PageBuildEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PageBuildEvent -> m PageBuildEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PageBuildEvent -> m PageBuildEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PageBuildEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PageBuildEvent -> c PageBuildEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PageBuildEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PageBuildEvent)
$cPageBuildEvent :: Constr
$tPageBuildEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> PageBuildEvent -> m PageBuildEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PageBuildEvent -> m PageBuildEvent
gmapMp :: (forall d. Data d => d -> m d)
-> PageBuildEvent -> m PageBuildEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PageBuildEvent -> m PageBuildEvent
gmapM :: (forall d. Data d => d -> m d)
-> PageBuildEvent -> m PageBuildEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PageBuildEvent -> m PageBuildEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> PageBuildEvent -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PageBuildEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> PageBuildEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> PageBuildEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PageBuildEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PageBuildEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PageBuildEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PageBuildEvent -> r
gmapT :: (forall b. Data b => b -> b) -> PageBuildEvent -> PageBuildEvent
$cgmapT :: (forall b. Data b => b -> b) -> PageBuildEvent -> PageBuildEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PageBuildEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PageBuildEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c PageBuildEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PageBuildEvent)
dataTypeOf :: PageBuildEvent -> DataType
$cdataTypeOf :: PageBuildEvent -> DataType
toConstr :: PageBuildEvent -> Constr
$ctoConstr :: PageBuildEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PageBuildEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PageBuildEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PageBuildEvent -> c PageBuildEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PageBuildEvent -> c PageBuildEvent
$cp1Data :: Typeable PageBuildEvent
Data, (forall x. PageBuildEvent -> Rep PageBuildEvent x)
-> (forall x. Rep PageBuildEvent x -> PageBuildEvent)
-> Generic PageBuildEvent
forall x. Rep PageBuildEvent x -> PageBuildEvent
forall x. PageBuildEvent -> Rep PageBuildEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PageBuildEvent x -> PageBuildEvent
$cfrom :: forall x. PageBuildEvent -> Rep PageBuildEvent x
Generic)

instance EventHasSender PageBuildEvent where senderOfEvent :: PageBuildEvent -> HookUser
senderOfEvent = PageBuildEvent -> HookUser
evPageBuildSender
instance EventHasRepo PageBuildEvent where repoForEvent :: PageBuildEvent -> HookRepository
repoForEvent = PageBuildEvent -> HookRepository
evPageBuildRepo
instance NFData PageBuildEvent where rnf :: PageBuildEvent -> ()
rnf = PageBuildEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data ProjectCardEventAction
  -- | Decodes from "created"

  = ProjectCardCreatedAction
  -- | Decodes from "edited"

  | ProjectCardEditedAction
  -- | Decodes from "converted"

  | ProjectCardConvertedAction
  -- | Decodes from "moved"

  | ProjectCardMovedAction
  -- | Decodes from "deleted"

  | ProjectCardDeletedAction
  -- | The result of decoding an unknown project card event action type

  | ProjectCardActionOther !Text
  deriving (ProjectCardEventAction -> ProjectCardEventAction -> Bool
(ProjectCardEventAction -> ProjectCardEventAction -> Bool)
-> (ProjectCardEventAction -> ProjectCardEventAction -> Bool)
-> Eq ProjectCardEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProjectCardEventAction -> ProjectCardEventAction -> Bool
$c/= :: ProjectCardEventAction -> ProjectCardEventAction -> Bool
== :: ProjectCardEventAction -> ProjectCardEventAction -> Bool
$c== :: ProjectCardEventAction -> ProjectCardEventAction -> Bool
Eq, Eq ProjectCardEventAction
Eq ProjectCardEventAction
-> (ProjectCardEventAction -> ProjectCardEventAction -> Ordering)
-> (ProjectCardEventAction -> ProjectCardEventAction -> Bool)
-> (ProjectCardEventAction -> ProjectCardEventAction -> Bool)
-> (ProjectCardEventAction -> ProjectCardEventAction -> Bool)
-> (ProjectCardEventAction -> ProjectCardEventAction -> Bool)
-> (ProjectCardEventAction
    -> ProjectCardEventAction -> ProjectCardEventAction)
-> (ProjectCardEventAction
    -> ProjectCardEventAction -> ProjectCardEventAction)
-> Ord ProjectCardEventAction
ProjectCardEventAction -> ProjectCardEventAction -> Bool
ProjectCardEventAction -> ProjectCardEventAction -> Ordering
ProjectCardEventAction
-> ProjectCardEventAction -> ProjectCardEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: ProjectCardEventAction
-> ProjectCardEventAction -> ProjectCardEventAction
$cmin :: ProjectCardEventAction
-> ProjectCardEventAction -> ProjectCardEventAction
max :: ProjectCardEventAction
-> ProjectCardEventAction -> ProjectCardEventAction
$cmax :: ProjectCardEventAction
-> ProjectCardEventAction -> ProjectCardEventAction
>= :: ProjectCardEventAction -> ProjectCardEventAction -> Bool
$c>= :: ProjectCardEventAction -> ProjectCardEventAction -> Bool
> :: ProjectCardEventAction -> ProjectCardEventAction -> Bool
$c> :: ProjectCardEventAction -> ProjectCardEventAction -> Bool
<= :: ProjectCardEventAction -> ProjectCardEventAction -> Bool
$c<= :: ProjectCardEventAction -> ProjectCardEventAction -> Bool
< :: ProjectCardEventAction -> ProjectCardEventAction -> Bool
$c< :: ProjectCardEventAction -> ProjectCardEventAction -> Bool
compare :: ProjectCardEventAction -> ProjectCardEventAction -> Ordering
$ccompare :: ProjectCardEventAction -> ProjectCardEventAction -> Ordering
$cp1Ord :: Eq ProjectCardEventAction
Ord, Int -> ProjectCardEventAction -> ShowS
[ProjectCardEventAction] -> ShowS
ProjectCardEventAction -> String
(Int -> ProjectCardEventAction -> ShowS)
-> (ProjectCardEventAction -> String)
-> ([ProjectCardEventAction] -> ShowS)
-> Show ProjectCardEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProjectCardEventAction] -> ShowS
$cshowList :: [ProjectCardEventAction] -> ShowS
show :: ProjectCardEventAction -> String
$cshow :: ProjectCardEventAction -> String
showsPrec :: Int -> ProjectCardEventAction -> ShowS
$cshowsPrec :: Int -> ProjectCardEventAction -> ShowS
Show, (forall x. ProjectCardEventAction -> Rep ProjectCardEventAction x)
-> (forall x.
    Rep ProjectCardEventAction x -> ProjectCardEventAction)
-> Generic ProjectCardEventAction
forall x. Rep ProjectCardEventAction x -> ProjectCardEventAction
forall x. ProjectCardEventAction -> Rep ProjectCardEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ProjectCardEventAction x -> ProjectCardEventAction
$cfrom :: forall x. ProjectCardEventAction -> Rep ProjectCardEventAction x
Generic, Typeable, Typeable ProjectCardEventAction
DataType
Constr
Typeable ProjectCardEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> ProjectCardEventAction
    -> c ProjectCardEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c ProjectCardEventAction)
-> (ProjectCardEventAction -> Constr)
-> (ProjectCardEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c ProjectCardEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c ProjectCardEventAction))
-> ((forall b. Data b => b -> b)
    -> ProjectCardEventAction -> ProjectCardEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> ProjectCardEventAction
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> ProjectCardEventAction
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> ProjectCardEventAction -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> ProjectCardEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> ProjectCardEventAction -> m ProjectCardEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> ProjectCardEventAction -> m ProjectCardEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> ProjectCardEventAction -> m ProjectCardEventAction)
-> Data ProjectCardEventAction
ProjectCardEventAction -> DataType
ProjectCardEventAction -> Constr
(forall b. Data b => b -> b)
-> ProjectCardEventAction -> ProjectCardEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ProjectCardEventAction
-> c ProjectCardEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectCardEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> ProjectCardEventAction -> u
forall u.
(forall d. Data d => d -> u) -> ProjectCardEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> ProjectCardEventAction
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> ProjectCardEventAction
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ProjectCardEventAction -> m ProjectCardEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ProjectCardEventAction -> m ProjectCardEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectCardEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ProjectCardEventAction
-> c ProjectCardEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ProjectCardEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectCardEventAction)
$cProjectCardActionOther :: Constr
$cProjectCardDeletedAction :: Constr
$cProjectCardMovedAction :: Constr
$cProjectCardConvertedAction :: Constr
$cProjectCardEditedAction :: Constr
$cProjectCardCreatedAction :: Constr
$tProjectCardEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> ProjectCardEventAction -> m ProjectCardEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ProjectCardEventAction -> m ProjectCardEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> ProjectCardEventAction -> m ProjectCardEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ProjectCardEventAction -> m ProjectCardEventAction
gmapM :: (forall d. Data d => d -> m d)
-> ProjectCardEventAction -> m ProjectCardEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ProjectCardEventAction -> m ProjectCardEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> ProjectCardEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> ProjectCardEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> ProjectCardEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> ProjectCardEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> ProjectCardEventAction
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> ProjectCardEventAction
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> ProjectCardEventAction
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> ProjectCardEventAction
-> r
gmapT :: (forall b. Data b => b -> b)
-> ProjectCardEventAction -> ProjectCardEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> ProjectCardEventAction -> ProjectCardEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectCardEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectCardEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c ProjectCardEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ProjectCardEventAction)
dataTypeOf :: ProjectCardEventAction -> DataType
$cdataTypeOf :: ProjectCardEventAction -> DataType
toConstr :: ProjectCardEventAction -> Constr
$ctoConstr :: ProjectCardEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectCardEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectCardEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ProjectCardEventAction
-> c ProjectCardEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ProjectCardEventAction
-> c ProjectCardEventAction
$cp1Data :: Typeable ProjectCardEventAction
Data)

instance NFData ProjectCardEventAction where rnf :: ProjectCardEventAction -> ()
rnf = ProjectCardEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON ProjectCardEventAction where
  parseJSON :: Value -> Parser ProjectCardEventAction
parseJSON = String
-> (Text -> Parser ProjectCardEventAction)
-> Value
-> Parser ProjectCardEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Project card event action" ((Text -> Parser ProjectCardEventAction)
 -> Value -> Parser ProjectCardEventAction)
-> (Text -> Parser ProjectCardEventAction)
-> Value
-> Parser ProjectCardEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"created"       -> ProjectCardEventAction -> Parser ProjectCardEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure ProjectCardEventAction
ProjectCardCreatedAction
        Text
"edited"        -> ProjectCardEventAction -> Parser ProjectCardEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure ProjectCardEventAction
ProjectCardEditedAction
        Text
"converted"     -> ProjectCardEventAction -> Parser ProjectCardEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure ProjectCardEventAction
ProjectCardConvertedAction
        Text
"moved"         -> ProjectCardEventAction -> Parser ProjectCardEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure ProjectCardEventAction
ProjectCardMovedAction
        Text
"deleted"       -> ProjectCardEventAction -> Parser ProjectCardEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure ProjectCardEventAction
ProjectCardDeletedAction
        Text
_               -> ProjectCardEventAction -> Parser ProjectCardEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> ProjectCardEventAction
ProjectCardActionOther Text
t)

-- | Triggered when a project card is created, updated, moved, converted to an issue, or deleted.

-- See <https://developer.github.com/v3/activity/events/types/#projectcardevent>.

data ProjectCardEvent = ProjectCardEvent
    { ProjectCardEvent -> ProjectCardEventAction
evProjectCardAction       :: !ProjectCardEventAction
    , ProjectCardEvent -> HookProjectCard
evProjectCardPayload      :: !HookProjectCard
    , ProjectCardEvent -> HookRepository
evProjectCardRepo         :: !HookRepository
    , ProjectCardEvent -> HookOrganization
evProjectCardOrg          :: !HookOrganization
    , ProjectCardEvent -> HookUser
evProjectCardSender       :: !HookUser
    }
    deriving (ProjectCardEvent -> ProjectCardEvent -> Bool
(ProjectCardEvent -> ProjectCardEvent -> Bool)
-> (ProjectCardEvent -> ProjectCardEvent -> Bool)
-> Eq ProjectCardEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProjectCardEvent -> ProjectCardEvent -> Bool
$c/= :: ProjectCardEvent -> ProjectCardEvent -> Bool
== :: ProjectCardEvent -> ProjectCardEvent -> Bool
$c== :: ProjectCardEvent -> ProjectCardEvent -> Bool
Eq, Int -> ProjectCardEvent -> ShowS
[ProjectCardEvent] -> ShowS
ProjectCardEvent -> String
(Int -> ProjectCardEvent -> ShowS)
-> (ProjectCardEvent -> String)
-> ([ProjectCardEvent] -> ShowS)
-> Show ProjectCardEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProjectCardEvent] -> ShowS
$cshowList :: [ProjectCardEvent] -> ShowS
show :: ProjectCardEvent -> String
$cshow :: ProjectCardEvent -> String
showsPrec :: Int -> ProjectCardEvent -> ShowS
$cshowsPrec :: Int -> ProjectCardEvent -> ShowS
Show, Typeable, Typeable ProjectCardEvent
DataType
Constr
Typeable ProjectCardEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> ProjectCardEvent -> c ProjectCardEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c ProjectCardEvent)
-> (ProjectCardEvent -> Constr)
-> (ProjectCardEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c ProjectCardEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c ProjectCardEvent))
-> ((forall b. Data b => b -> b)
    -> ProjectCardEvent -> ProjectCardEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> ProjectCardEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> ProjectCardEvent -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> ProjectCardEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> ProjectCardEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> ProjectCardEvent -> m ProjectCardEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> ProjectCardEvent -> m ProjectCardEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> ProjectCardEvent -> m ProjectCardEvent)
-> Data ProjectCardEvent
ProjectCardEvent -> DataType
ProjectCardEvent -> Constr
(forall b. Data b => b -> b)
-> ProjectCardEvent -> ProjectCardEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ProjectCardEvent -> c ProjectCardEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectCardEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> ProjectCardEvent -> u
forall u. (forall d. Data d => d -> u) -> ProjectCardEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectCardEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectCardEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ProjectCardEvent -> m ProjectCardEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ProjectCardEvent -> m ProjectCardEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectCardEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ProjectCardEvent -> c ProjectCardEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ProjectCardEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectCardEvent)
$cProjectCardEvent :: Constr
$tProjectCardEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> ProjectCardEvent -> m ProjectCardEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ProjectCardEvent -> m ProjectCardEvent
gmapMp :: (forall d. Data d => d -> m d)
-> ProjectCardEvent -> m ProjectCardEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ProjectCardEvent -> m ProjectCardEvent
gmapM :: (forall d. Data d => d -> m d)
-> ProjectCardEvent -> m ProjectCardEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ProjectCardEvent -> m ProjectCardEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> ProjectCardEvent -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> ProjectCardEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> ProjectCardEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> ProjectCardEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectCardEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectCardEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectCardEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectCardEvent -> r
gmapT :: (forall b. Data b => b -> b)
-> ProjectCardEvent -> ProjectCardEvent
$cgmapT :: (forall b. Data b => b -> b)
-> ProjectCardEvent -> ProjectCardEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectCardEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectCardEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c ProjectCardEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ProjectCardEvent)
dataTypeOf :: ProjectCardEvent -> DataType
$cdataTypeOf :: ProjectCardEvent -> DataType
toConstr :: ProjectCardEvent -> Constr
$ctoConstr :: ProjectCardEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectCardEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectCardEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ProjectCardEvent -> c ProjectCardEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ProjectCardEvent -> c ProjectCardEvent
$cp1Data :: Typeable ProjectCardEvent
Data, (forall x. ProjectCardEvent -> Rep ProjectCardEvent x)
-> (forall x. Rep ProjectCardEvent x -> ProjectCardEvent)
-> Generic ProjectCardEvent
forall x. Rep ProjectCardEvent x -> ProjectCardEvent
forall x. ProjectCardEvent -> Rep ProjectCardEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ProjectCardEvent x -> ProjectCardEvent
$cfrom :: forall x. ProjectCardEvent -> Rep ProjectCardEvent x
Generic)

instance EventHasSender ProjectCardEvent where senderOfEvent :: ProjectCardEvent -> HookUser
senderOfEvent = ProjectCardEvent -> HookUser
evProjectCardSender
instance EventHasRepo ProjectCardEvent where repoForEvent :: ProjectCardEvent -> HookRepository
repoForEvent = ProjectCardEvent -> HookRepository
evProjectCardRepo
instance NFData ProjectCardEvent where rnf :: ProjectCardEvent -> ()
rnf = ProjectCardEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data ProjectColumnEventAction
  -- | Decodes from "created"

  = ProjectColumnCreatedAction
  -- | Decodes from "edited"

  | ProjectColumnEditedAction
  -- | Decodes from "moved"

  | ProjectColumnMovedAction
  -- | Decodes from "deleted"

  | ProjectColumnDeletedAction
  -- | The result of decoding an unknown project card event action type

  | ProjectColumnActionOther !Text
  deriving (ProjectColumnEventAction -> ProjectColumnEventAction -> Bool
(ProjectColumnEventAction -> ProjectColumnEventAction -> Bool)
-> (ProjectColumnEventAction -> ProjectColumnEventAction -> Bool)
-> Eq ProjectColumnEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProjectColumnEventAction -> ProjectColumnEventAction -> Bool
$c/= :: ProjectColumnEventAction -> ProjectColumnEventAction -> Bool
== :: ProjectColumnEventAction -> ProjectColumnEventAction -> Bool
$c== :: ProjectColumnEventAction -> ProjectColumnEventAction -> Bool
Eq, Eq ProjectColumnEventAction
Eq ProjectColumnEventAction
-> (ProjectColumnEventAction
    -> ProjectColumnEventAction -> Ordering)
-> (ProjectColumnEventAction -> ProjectColumnEventAction -> Bool)
-> (ProjectColumnEventAction -> ProjectColumnEventAction -> Bool)
-> (ProjectColumnEventAction -> ProjectColumnEventAction -> Bool)
-> (ProjectColumnEventAction -> ProjectColumnEventAction -> Bool)
-> (ProjectColumnEventAction
    -> ProjectColumnEventAction -> ProjectColumnEventAction)
-> (ProjectColumnEventAction
    -> ProjectColumnEventAction -> ProjectColumnEventAction)
-> Ord ProjectColumnEventAction
ProjectColumnEventAction -> ProjectColumnEventAction -> Bool
ProjectColumnEventAction -> ProjectColumnEventAction -> Ordering
ProjectColumnEventAction
-> ProjectColumnEventAction -> ProjectColumnEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: ProjectColumnEventAction
-> ProjectColumnEventAction -> ProjectColumnEventAction
$cmin :: ProjectColumnEventAction
-> ProjectColumnEventAction -> ProjectColumnEventAction
max :: ProjectColumnEventAction
-> ProjectColumnEventAction -> ProjectColumnEventAction
$cmax :: ProjectColumnEventAction
-> ProjectColumnEventAction -> ProjectColumnEventAction
>= :: ProjectColumnEventAction -> ProjectColumnEventAction -> Bool
$c>= :: ProjectColumnEventAction -> ProjectColumnEventAction -> Bool
> :: ProjectColumnEventAction -> ProjectColumnEventAction -> Bool
$c> :: ProjectColumnEventAction -> ProjectColumnEventAction -> Bool
<= :: ProjectColumnEventAction -> ProjectColumnEventAction -> Bool
$c<= :: ProjectColumnEventAction -> ProjectColumnEventAction -> Bool
< :: ProjectColumnEventAction -> ProjectColumnEventAction -> Bool
$c< :: ProjectColumnEventAction -> ProjectColumnEventAction -> Bool
compare :: ProjectColumnEventAction -> ProjectColumnEventAction -> Ordering
$ccompare :: ProjectColumnEventAction -> ProjectColumnEventAction -> Ordering
$cp1Ord :: Eq ProjectColumnEventAction
Ord, Int -> ProjectColumnEventAction -> ShowS
[ProjectColumnEventAction] -> ShowS
ProjectColumnEventAction -> String
(Int -> ProjectColumnEventAction -> ShowS)
-> (ProjectColumnEventAction -> String)
-> ([ProjectColumnEventAction] -> ShowS)
-> Show ProjectColumnEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProjectColumnEventAction] -> ShowS
$cshowList :: [ProjectColumnEventAction] -> ShowS
show :: ProjectColumnEventAction -> String
$cshow :: ProjectColumnEventAction -> String
showsPrec :: Int -> ProjectColumnEventAction -> ShowS
$cshowsPrec :: Int -> ProjectColumnEventAction -> ShowS
Show, (forall x.
 ProjectColumnEventAction -> Rep ProjectColumnEventAction x)
-> (forall x.
    Rep ProjectColumnEventAction x -> ProjectColumnEventAction)
-> Generic ProjectColumnEventAction
forall x.
Rep ProjectColumnEventAction x -> ProjectColumnEventAction
forall x.
ProjectColumnEventAction -> Rep ProjectColumnEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ProjectColumnEventAction x -> ProjectColumnEventAction
$cfrom :: forall x.
ProjectColumnEventAction -> Rep ProjectColumnEventAction x
Generic, Typeable, Typeable ProjectColumnEventAction
DataType
Constr
Typeable ProjectColumnEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> ProjectColumnEventAction
    -> c ProjectColumnEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c ProjectColumnEventAction)
-> (ProjectColumnEventAction -> Constr)
-> (ProjectColumnEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d))
    -> Maybe (c ProjectColumnEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c ProjectColumnEventAction))
-> ((forall b. Data b => b -> b)
    -> ProjectColumnEventAction -> ProjectColumnEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> ProjectColumnEventAction
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> ProjectColumnEventAction
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> ProjectColumnEventAction -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u) -> ProjectColumnEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> ProjectColumnEventAction -> m ProjectColumnEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> ProjectColumnEventAction -> m ProjectColumnEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> ProjectColumnEventAction -> m ProjectColumnEventAction)
-> Data ProjectColumnEventAction
ProjectColumnEventAction -> DataType
ProjectColumnEventAction -> Constr
(forall b. Data b => b -> b)
-> ProjectColumnEventAction -> ProjectColumnEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ProjectColumnEventAction
-> c ProjectColumnEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectColumnEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int
-> (forall d. Data d => d -> u) -> ProjectColumnEventAction -> u
forall u.
(forall d. Data d => d -> u) -> ProjectColumnEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> ProjectColumnEventAction
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> ProjectColumnEventAction
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ProjectColumnEventAction -> m ProjectColumnEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ProjectColumnEventAction -> m ProjectColumnEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectColumnEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ProjectColumnEventAction
-> c ProjectColumnEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ProjectColumnEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectColumnEventAction)
$cProjectColumnActionOther :: Constr
$cProjectColumnDeletedAction :: Constr
$cProjectColumnMovedAction :: Constr
$cProjectColumnEditedAction :: Constr
$cProjectColumnCreatedAction :: Constr
$tProjectColumnEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> ProjectColumnEventAction -> m ProjectColumnEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ProjectColumnEventAction -> m ProjectColumnEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> ProjectColumnEventAction -> m ProjectColumnEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ProjectColumnEventAction -> m ProjectColumnEventAction
gmapM :: (forall d. Data d => d -> m d)
-> ProjectColumnEventAction -> m ProjectColumnEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ProjectColumnEventAction -> m ProjectColumnEventAction
gmapQi :: Int
-> (forall d. Data d => d -> u) -> ProjectColumnEventAction -> u
$cgmapQi :: forall u.
Int
-> (forall d. Data d => d -> u) -> ProjectColumnEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> ProjectColumnEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> ProjectColumnEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> ProjectColumnEventAction
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> ProjectColumnEventAction
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> ProjectColumnEventAction
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> ProjectColumnEventAction
-> r
gmapT :: (forall b. Data b => b -> b)
-> ProjectColumnEventAction -> ProjectColumnEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> ProjectColumnEventAction -> ProjectColumnEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectColumnEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectColumnEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c ProjectColumnEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ProjectColumnEventAction)
dataTypeOf :: ProjectColumnEventAction -> DataType
$cdataTypeOf :: ProjectColumnEventAction -> DataType
toConstr :: ProjectColumnEventAction -> Constr
$ctoConstr :: ProjectColumnEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectColumnEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectColumnEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ProjectColumnEventAction
-> c ProjectColumnEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ProjectColumnEventAction
-> c ProjectColumnEventAction
$cp1Data :: Typeable ProjectColumnEventAction
Data)

instance NFData ProjectColumnEventAction where rnf :: ProjectColumnEventAction -> ()
rnf = ProjectColumnEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON ProjectColumnEventAction where
  parseJSON :: Value -> Parser ProjectColumnEventAction
parseJSON = String
-> (Text -> Parser ProjectColumnEventAction)
-> Value
-> Parser ProjectColumnEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Project column event action" ((Text -> Parser ProjectColumnEventAction)
 -> Value -> Parser ProjectColumnEventAction)
-> (Text -> Parser ProjectColumnEventAction)
-> Value
-> Parser ProjectColumnEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"created"       -> ProjectColumnEventAction -> Parser ProjectColumnEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure ProjectColumnEventAction
ProjectColumnCreatedAction
        Text
"edited"        -> ProjectColumnEventAction -> Parser ProjectColumnEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure ProjectColumnEventAction
ProjectColumnEditedAction
        Text
"moved"         -> ProjectColumnEventAction -> Parser ProjectColumnEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure ProjectColumnEventAction
ProjectColumnMovedAction
        Text
"deleted"       -> ProjectColumnEventAction -> Parser ProjectColumnEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure ProjectColumnEventAction
ProjectColumnDeletedAction
        Text
_               -> ProjectColumnEventAction -> Parser ProjectColumnEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> ProjectColumnEventAction
ProjectColumnActionOther Text
t)

-- | Triggered when a project column is created, updated, moved, or deleted.

-- See <https://developer.github.com/v3/activity/events/types/#projectcolumnevent>.

data ProjectColumnEvent = ProjectColumnEvent
    { ProjectColumnEvent -> ProjectColumnEventAction
evProjectColumnAction     :: !ProjectColumnEventAction
    , ProjectColumnEvent -> HookProjectColumn
evProjectColumnPayload    :: !HookProjectColumn
    , ProjectColumnEvent -> HookRepository
evProjectColumnRepo       :: !HookRepository
    , ProjectColumnEvent -> HookOrganization
evProjectColumnOrg        :: !HookOrganization
    , ProjectColumnEvent -> HookUser
evProjectColumnSender     :: !HookUser
    }
    deriving (ProjectColumnEvent -> ProjectColumnEvent -> Bool
(ProjectColumnEvent -> ProjectColumnEvent -> Bool)
-> (ProjectColumnEvent -> ProjectColumnEvent -> Bool)
-> Eq ProjectColumnEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProjectColumnEvent -> ProjectColumnEvent -> Bool
$c/= :: ProjectColumnEvent -> ProjectColumnEvent -> Bool
== :: ProjectColumnEvent -> ProjectColumnEvent -> Bool
$c== :: ProjectColumnEvent -> ProjectColumnEvent -> Bool
Eq, Int -> ProjectColumnEvent -> ShowS
[ProjectColumnEvent] -> ShowS
ProjectColumnEvent -> String
(Int -> ProjectColumnEvent -> ShowS)
-> (ProjectColumnEvent -> String)
-> ([ProjectColumnEvent] -> ShowS)
-> Show ProjectColumnEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProjectColumnEvent] -> ShowS
$cshowList :: [ProjectColumnEvent] -> ShowS
show :: ProjectColumnEvent -> String
$cshow :: ProjectColumnEvent -> String
showsPrec :: Int -> ProjectColumnEvent -> ShowS
$cshowsPrec :: Int -> ProjectColumnEvent -> ShowS
Show, Typeable, Typeable ProjectColumnEvent
DataType
Constr
Typeable ProjectColumnEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> ProjectColumnEvent
    -> c ProjectColumnEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c ProjectColumnEvent)
-> (ProjectColumnEvent -> Constr)
-> (ProjectColumnEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c ProjectColumnEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c ProjectColumnEvent))
-> ((forall b. Data b => b -> b)
    -> ProjectColumnEvent -> ProjectColumnEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> ProjectColumnEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> ProjectColumnEvent -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> ProjectColumnEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> ProjectColumnEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> ProjectColumnEvent -> m ProjectColumnEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> ProjectColumnEvent -> m ProjectColumnEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> ProjectColumnEvent -> m ProjectColumnEvent)
-> Data ProjectColumnEvent
ProjectColumnEvent -> DataType
ProjectColumnEvent -> Constr
(forall b. Data b => b -> b)
-> ProjectColumnEvent -> ProjectColumnEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ProjectColumnEvent
-> c ProjectColumnEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectColumnEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> ProjectColumnEvent -> u
forall u. (forall d. Data d => d -> u) -> ProjectColumnEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectColumnEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectColumnEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ProjectColumnEvent -> m ProjectColumnEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ProjectColumnEvent -> m ProjectColumnEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectColumnEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ProjectColumnEvent
-> c ProjectColumnEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ProjectColumnEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectColumnEvent)
$cProjectColumnEvent :: Constr
$tProjectColumnEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> ProjectColumnEvent -> m ProjectColumnEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ProjectColumnEvent -> m ProjectColumnEvent
gmapMp :: (forall d. Data d => d -> m d)
-> ProjectColumnEvent -> m ProjectColumnEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ProjectColumnEvent -> m ProjectColumnEvent
gmapM :: (forall d. Data d => d -> m d)
-> ProjectColumnEvent -> m ProjectColumnEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ProjectColumnEvent -> m ProjectColumnEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> ProjectColumnEvent -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> ProjectColumnEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> ProjectColumnEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> ProjectColumnEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectColumnEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectColumnEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectColumnEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectColumnEvent -> r
gmapT :: (forall b. Data b => b -> b)
-> ProjectColumnEvent -> ProjectColumnEvent
$cgmapT :: (forall b. Data b => b -> b)
-> ProjectColumnEvent -> ProjectColumnEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectColumnEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectColumnEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c ProjectColumnEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ProjectColumnEvent)
dataTypeOf :: ProjectColumnEvent -> DataType
$cdataTypeOf :: ProjectColumnEvent -> DataType
toConstr :: ProjectColumnEvent -> Constr
$ctoConstr :: ProjectColumnEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectColumnEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectColumnEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ProjectColumnEvent
-> c ProjectColumnEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ProjectColumnEvent
-> c ProjectColumnEvent
$cp1Data :: Typeable ProjectColumnEvent
Data, (forall x. ProjectColumnEvent -> Rep ProjectColumnEvent x)
-> (forall x. Rep ProjectColumnEvent x -> ProjectColumnEvent)
-> Generic ProjectColumnEvent
forall x. Rep ProjectColumnEvent x -> ProjectColumnEvent
forall x. ProjectColumnEvent -> Rep ProjectColumnEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ProjectColumnEvent x -> ProjectColumnEvent
$cfrom :: forall x. ProjectColumnEvent -> Rep ProjectColumnEvent x
Generic)

instance EventHasSender ProjectColumnEvent where senderOfEvent :: ProjectColumnEvent -> HookUser
senderOfEvent = ProjectColumnEvent -> HookUser
evProjectColumnSender
instance EventHasRepo ProjectColumnEvent where repoForEvent :: ProjectColumnEvent -> HookRepository
repoForEvent = ProjectColumnEvent -> HookRepository
evProjectColumnRepo
instance NFData ProjectColumnEvent where rnf :: ProjectColumnEvent -> ()
rnf = ProjectColumnEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data ProjectEventAction
  -- | Decodes from "created"

  = ProjectCreatedAction
  -- | Decodes from "edited"

  | ProjectEditedAction
  -- | Decodes from "closed"

  | ProjectClosedAction
  -- | Decodes from "reopened"

  | ProjectReopenedAction
  -- | Decodes from "deleted"

  | ProjectDeletedAction
  -- | The result of decoding an unknown project event action type

  | ProjectActionOther !Text
  deriving (ProjectEventAction -> ProjectEventAction -> Bool
(ProjectEventAction -> ProjectEventAction -> Bool)
-> (ProjectEventAction -> ProjectEventAction -> Bool)
-> Eq ProjectEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProjectEventAction -> ProjectEventAction -> Bool
$c/= :: ProjectEventAction -> ProjectEventAction -> Bool
== :: ProjectEventAction -> ProjectEventAction -> Bool
$c== :: ProjectEventAction -> ProjectEventAction -> Bool
Eq, Eq ProjectEventAction
Eq ProjectEventAction
-> (ProjectEventAction -> ProjectEventAction -> Ordering)
-> (ProjectEventAction -> ProjectEventAction -> Bool)
-> (ProjectEventAction -> ProjectEventAction -> Bool)
-> (ProjectEventAction -> ProjectEventAction -> Bool)
-> (ProjectEventAction -> ProjectEventAction -> Bool)
-> (ProjectEventAction -> ProjectEventAction -> ProjectEventAction)
-> (ProjectEventAction -> ProjectEventAction -> ProjectEventAction)
-> Ord ProjectEventAction
ProjectEventAction -> ProjectEventAction -> Bool
ProjectEventAction -> ProjectEventAction -> Ordering
ProjectEventAction -> ProjectEventAction -> ProjectEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: ProjectEventAction -> ProjectEventAction -> ProjectEventAction
$cmin :: ProjectEventAction -> ProjectEventAction -> ProjectEventAction
max :: ProjectEventAction -> ProjectEventAction -> ProjectEventAction
$cmax :: ProjectEventAction -> ProjectEventAction -> ProjectEventAction
>= :: ProjectEventAction -> ProjectEventAction -> Bool
$c>= :: ProjectEventAction -> ProjectEventAction -> Bool
> :: ProjectEventAction -> ProjectEventAction -> Bool
$c> :: ProjectEventAction -> ProjectEventAction -> Bool
<= :: ProjectEventAction -> ProjectEventAction -> Bool
$c<= :: ProjectEventAction -> ProjectEventAction -> Bool
< :: ProjectEventAction -> ProjectEventAction -> Bool
$c< :: ProjectEventAction -> ProjectEventAction -> Bool
compare :: ProjectEventAction -> ProjectEventAction -> Ordering
$ccompare :: ProjectEventAction -> ProjectEventAction -> Ordering
$cp1Ord :: Eq ProjectEventAction
Ord, Int -> ProjectEventAction -> ShowS
[ProjectEventAction] -> ShowS
ProjectEventAction -> String
(Int -> ProjectEventAction -> ShowS)
-> (ProjectEventAction -> String)
-> ([ProjectEventAction] -> ShowS)
-> Show ProjectEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProjectEventAction] -> ShowS
$cshowList :: [ProjectEventAction] -> ShowS
show :: ProjectEventAction -> String
$cshow :: ProjectEventAction -> String
showsPrec :: Int -> ProjectEventAction -> ShowS
$cshowsPrec :: Int -> ProjectEventAction -> ShowS
Show, (forall x. ProjectEventAction -> Rep ProjectEventAction x)
-> (forall x. Rep ProjectEventAction x -> ProjectEventAction)
-> Generic ProjectEventAction
forall x. Rep ProjectEventAction x -> ProjectEventAction
forall x. ProjectEventAction -> Rep ProjectEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ProjectEventAction x -> ProjectEventAction
$cfrom :: forall x. ProjectEventAction -> Rep ProjectEventAction x
Generic, Typeable, Typeable ProjectEventAction
DataType
Constr
Typeable ProjectEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> ProjectEventAction
    -> c ProjectEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c ProjectEventAction)
-> (ProjectEventAction -> Constr)
-> (ProjectEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c ProjectEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c ProjectEventAction))
-> ((forall b. Data b => b -> b)
    -> ProjectEventAction -> ProjectEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> ProjectEventAction -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> ProjectEventAction -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> ProjectEventAction -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> ProjectEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> ProjectEventAction -> m ProjectEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> ProjectEventAction -> m ProjectEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> ProjectEventAction -> m ProjectEventAction)
-> Data ProjectEventAction
ProjectEventAction -> DataType
ProjectEventAction -> Constr
(forall b. Data b => b -> b)
-> ProjectEventAction -> ProjectEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ProjectEventAction
-> c ProjectEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> ProjectEventAction -> u
forall u. (forall d. Data d => d -> u) -> ProjectEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectEventAction -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectEventAction -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ProjectEventAction -> m ProjectEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ProjectEventAction -> m ProjectEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ProjectEventAction
-> c ProjectEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ProjectEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectEventAction)
$cProjectActionOther :: Constr
$cProjectDeletedAction :: Constr
$cProjectReopenedAction :: Constr
$cProjectClosedAction :: Constr
$cProjectEditedAction :: Constr
$cProjectCreatedAction :: Constr
$tProjectEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> ProjectEventAction -> m ProjectEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ProjectEventAction -> m ProjectEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> ProjectEventAction -> m ProjectEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ProjectEventAction -> m ProjectEventAction
gmapM :: (forall d. Data d => d -> m d)
-> ProjectEventAction -> m ProjectEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ProjectEventAction -> m ProjectEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> ProjectEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> ProjectEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> ProjectEventAction -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> ProjectEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectEventAction -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectEventAction -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectEventAction -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectEventAction -> r
gmapT :: (forall b. Data b => b -> b)
-> ProjectEventAction -> ProjectEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> ProjectEventAction -> ProjectEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c ProjectEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ProjectEventAction)
dataTypeOf :: ProjectEventAction -> DataType
$cdataTypeOf :: ProjectEventAction -> DataType
toConstr :: ProjectEventAction -> Constr
$ctoConstr :: ProjectEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ProjectEventAction
-> c ProjectEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ProjectEventAction
-> c ProjectEventAction
$cp1Data :: Typeable ProjectEventAction
Data)

instance NFData ProjectEventAction where rnf :: ProjectEventAction -> ()
rnf = ProjectEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON ProjectEventAction where
  parseJSON :: Value -> Parser ProjectEventAction
parseJSON = String
-> (Text -> Parser ProjectEventAction)
-> Value
-> Parser ProjectEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Project event action" ((Text -> Parser ProjectEventAction)
 -> Value -> Parser ProjectEventAction)
-> (Text -> Parser ProjectEventAction)
-> Value
-> Parser ProjectEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"created"       -> ProjectEventAction -> Parser ProjectEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure ProjectEventAction
ProjectCreatedAction
        Text
"edited"        -> ProjectEventAction -> Parser ProjectEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure ProjectEventAction
ProjectEditedAction
        Text
"closed"        -> ProjectEventAction -> Parser ProjectEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure ProjectEventAction
ProjectClosedAction
        Text
"reopened"      -> ProjectEventAction -> Parser ProjectEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure ProjectEventAction
ProjectReopenedAction
        Text
"deleted"       -> ProjectEventAction -> Parser ProjectEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure ProjectEventAction
ProjectDeletedAction
        Text
_               -> ProjectEventAction -> Parser ProjectEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> ProjectEventAction
ProjectActionOther Text
t)

-- | Triggered when a project is created, updated, closed, reopened, or deleted.

-- See <https://developer.github.com/v3/activity/events/types/#projectevent>.

data ProjectEvent = ProjectEvent
    { ProjectEvent -> ProjectEventAction
evProjectEventAction      :: !ProjectEventAction
    , ProjectEvent -> HookProject
evProjectPayload          :: !HookProject
    , ProjectEvent -> HookRepository
evProjectRepo             :: !HookRepository
    , ProjectEvent -> HookOrganization
evProjectOrganization     :: !HookOrganization
    , ProjectEvent -> HookUser
evProjectSender           :: !HookUser
    }
    deriving (ProjectEvent -> ProjectEvent -> Bool
(ProjectEvent -> ProjectEvent -> Bool)
-> (ProjectEvent -> ProjectEvent -> Bool) -> Eq ProjectEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProjectEvent -> ProjectEvent -> Bool
$c/= :: ProjectEvent -> ProjectEvent -> Bool
== :: ProjectEvent -> ProjectEvent -> Bool
$c== :: ProjectEvent -> ProjectEvent -> Bool
Eq, Int -> ProjectEvent -> ShowS
[ProjectEvent] -> ShowS
ProjectEvent -> String
(Int -> ProjectEvent -> ShowS)
-> (ProjectEvent -> String)
-> ([ProjectEvent] -> ShowS)
-> Show ProjectEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProjectEvent] -> ShowS
$cshowList :: [ProjectEvent] -> ShowS
show :: ProjectEvent -> String
$cshow :: ProjectEvent -> String
showsPrec :: Int -> ProjectEvent -> ShowS
$cshowsPrec :: Int -> ProjectEvent -> ShowS
Show, Typeable, Typeable ProjectEvent
DataType
Constr
Typeable ProjectEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> ProjectEvent -> c ProjectEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c ProjectEvent)
-> (ProjectEvent -> Constr)
-> (ProjectEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c ProjectEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c ProjectEvent))
-> ((forall b. Data b => b -> b) -> ProjectEvent -> ProjectEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> ProjectEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> ProjectEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> ProjectEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> ProjectEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> ProjectEvent -> m ProjectEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> ProjectEvent -> m ProjectEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> ProjectEvent -> m ProjectEvent)
-> Data ProjectEvent
ProjectEvent -> DataType
ProjectEvent -> Constr
(forall b. Data b => b -> b) -> ProjectEvent -> ProjectEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ProjectEvent -> c ProjectEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> ProjectEvent -> u
forall u. (forall d. Data d => d -> u) -> ProjectEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> ProjectEvent -> m ProjectEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ProjectEvent -> m ProjectEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ProjectEvent -> c ProjectEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ProjectEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectEvent)
$cProjectEvent :: Constr
$tProjectEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> ProjectEvent -> m ProjectEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ProjectEvent -> m ProjectEvent
gmapMp :: (forall d. Data d => d -> m d) -> ProjectEvent -> m ProjectEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ProjectEvent -> m ProjectEvent
gmapM :: (forall d. Data d => d -> m d) -> ProjectEvent -> m ProjectEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> ProjectEvent -> m ProjectEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> ProjectEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> ProjectEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> ProjectEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> ProjectEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ProjectEvent -> r
gmapT :: (forall b. Data b => b -> b) -> ProjectEvent -> ProjectEvent
$cgmapT :: (forall b. Data b => b -> b) -> ProjectEvent -> ProjectEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ProjectEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c ProjectEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ProjectEvent)
dataTypeOf :: ProjectEvent -> DataType
$cdataTypeOf :: ProjectEvent -> DataType
toConstr :: ProjectEvent -> Constr
$ctoConstr :: ProjectEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ProjectEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ProjectEvent -> c ProjectEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ProjectEvent -> c ProjectEvent
$cp1Data :: Typeable ProjectEvent
Data, (forall x. ProjectEvent -> Rep ProjectEvent x)
-> (forall x. Rep ProjectEvent x -> ProjectEvent)
-> Generic ProjectEvent
forall x. Rep ProjectEvent x -> ProjectEvent
forall x. ProjectEvent -> Rep ProjectEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ProjectEvent x -> ProjectEvent
$cfrom :: forall x. ProjectEvent -> Rep ProjectEvent x
Generic)

instance EventHasSender ProjectEvent where senderOfEvent :: ProjectEvent -> HookUser
senderOfEvent = ProjectEvent -> HookUser
evProjectSender
instance EventHasRepo ProjectEvent where repoForEvent :: ProjectEvent -> HookRepository
repoForEvent = ProjectEvent -> HookRepository
evProjectRepo
instance NFData ProjectEvent where rnf :: ProjectEvent -> ()
rnf = ProjectEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


-- | Triggered when a private repository is open sourced. Without a doubt: the best GitHub event.

-- See <https://developer.github.com/v3/activity/events/types/#publicevent>.

data PublicEvent = PublicEvent
    { PublicEvent -> HookRepository
evPublicEventRepo         :: !HookRepository
    , PublicEvent -> HookUser
evPublicEventSender       :: !HookUser
    }
    deriving (PublicEvent -> PublicEvent -> Bool
(PublicEvent -> PublicEvent -> Bool)
-> (PublicEvent -> PublicEvent -> Bool) -> Eq PublicEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PublicEvent -> PublicEvent -> Bool
$c/= :: PublicEvent -> PublicEvent -> Bool
== :: PublicEvent -> PublicEvent -> Bool
$c== :: PublicEvent -> PublicEvent -> Bool
Eq, Int -> PublicEvent -> ShowS
[PublicEvent] -> ShowS
PublicEvent -> String
(Int -> PublicEvent -> ShowS)
-> (PublicEvent -> String)
-> ([PublicEvent] -> ShowS)
-> Show PublicEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PublicEvent] -> ShowS
$cshowList :: [PublicEvent] -> ShowS
show :: PublicEvent -> String
$cshow :: PublicEvent -> String
showsPrec :: Int -> PublicEvent -> ShowS
$cshowsPrec :: Int -> PublicEvent -> ShowS
Show, Typeable, Typeable PublicEvent
DataType
Constr
Typeable PublicEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> PublicEvent -> c PublicEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c PublicEvent)
-> (PublicEvent -> Constr)
-> (PublicEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c PublicEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c PublicEvent))
-> ((forall b. Data b => b -> b) -> PublicEvent -> PublicEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> PublicEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> PublicEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> PublicEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> PublicEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> PublicEvent -> m PublicEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> PublicEvent -> m PublicEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> PublicEvent -> m PublicEvent)
-> Data PublicEvent
PublicEvent -> DataType
PublicEvent -> Constr
(forall b. Data b => b -> b) -> PublicEvent -> PublicEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PublicEvent -> c PublicEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PublicEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> PublicEvent -> u
forall u. (forall d. Data d => d -> u) -> PublicEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PublicEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PublicEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PublicEvent -> m PublicEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PublicEvent -> m PublicEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PublicEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PublicEvent -> c PublicEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PublicEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PublicEvent)
$cPublicEvent :: Constr
$tPublicEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> PublicEvent -> m PublicEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PublicEvent -> m PublicEvent
gmapMp :: (forall d. Data d => d -> m d) -> PublicEvent -> m PublicEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PublicEvent -> m PublicEvent
gmapM :: (forall d. Data d => d -> m d) -> PublicEvent -> m PublicEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PublicEvent -> m PublicEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> PublicEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> PublicEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> PublicEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> PublicEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PublicEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PublicEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PublicEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PublicEvent -> r
gmapT :: (forall b. Data b => b -> b) -> PublicEvent -> PublicEvent
$cgmapT :: (forall b. Data b => b -> b) -> PublicEvent -> PublicEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PublicEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PublicEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c PublicEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PublicEvent)
dataTypeOf :: PublicEvent -> DataType
$cdataTypeOf :: PublicEvent -> DataType
toConstr :: PublicEvent -> Constr
$ctoConstr :: PublicEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PublicEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PublicEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PublicEvent -> c PublicEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PublicEvent -> c PublicEvent
$cp1Data :: Typeable PublicEvent
Data, (forall x. PublicEvent -> Rep PublicEvent x)
-> (forall x. Rep PublicEvent x -> PublicEvent)
-> Generic PublicEvent
forall x. Rep PublicEvent x -> PublicEvent
forall x. PublicEvent -> Rep PublicEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PublicEvent x -> PublicEvent
$cfrom :: forall x. PublicEvent -> Rep PublicEvent x
Generic)

instance EventHasSender PublicEvent where senderOfEvent :: PublicEvent -> HookUser
senderOfEvent = PublicEvent -> HookUser
evPublicEventSender
instance EventHasRepo PublicEvent where repoForEvent :: PublicEvent -> HookRepository
repoForEvent = PublicEvent -> HookRepository
evPublicEventRepo
instance NFData PublicEvent where rnf :: PublicEvent -> ()
rnf = PublicEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data PullRequestEventAction
  -- | Decodes from "assigned"

  = PullRequestAssignedAction
  -- | Decodes from "unassigned"

  | PullRequestUnassignedAction
  -- | Decodes from "review_requsted"

  | PullRequestReviewRequestedAction
  -- | Decodes from "review_request_removed"

  | PullRequestReviewRequestRemovedAction
  -- | Decodes from "labeled"

  | PullRequestLabeledAction
  -- | Decodes from "unlabeled"

  | PullRequestUnlabeledAction
  -- | Decodes from "opened"

  | PullRequestOpenedAction
  -- | Decodes from "edited"

  | PullRequestEditedAction
  -- | Decodes from "closed"

  | PullRequestClosedAction
  -- | Decodes from "reopened"

  | PullRequestReopenedAction
  -- | The result of decoding an unknown pull request event action type

  | PullRequestActionOther !Text
  deriving (PullRequestEventAction -> PullRequestEventAction -> Bool
(PullRequestEventAction -> PullRequestEventAction -> Bool)
-> (PullRequestEventAction -> PullRequestEventAction -> Bool)
-> Eq PullRequestEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PullRequestEventAction -> PullRequestEventAction -> Bool
$c/= :: PullRequestEventAction -> PullRequestEventAction -> Bool
== :: PullRequestEventAction -> PullRequestEventAction -> Bool
$c== :: PullRequestEventAction -> PullRequestEventAction -> Bool
Eq, Eq PullRequestEventAction
Eq PullRequestEventAction
-> (PullRequestEventAction -> PullRequestEventAction -> Ordering)
-> (PullRequestEventAction -> PullRequestEventAction -> Bool)
-> (PullRequestEventAction -> PullRequestEventAction -> Bool)
-> (PullRequestEventAction -> PullRequestEventAction -> Bool)
-> (PullRequestEventAction -> PullRequestEventAction -> Bool)
-> (PullRequestEventAction
    -> PullRequestEventAction -> PullRequestEventAction)
-> (PullRequestEventAction
    -> PullRequestEventAction -> PullRequestEventAction)
-> Ord PullRequestEventAction
PullRequestEventAction -> PullRequestEventAction -> Bool
PullRequestEventAction -> PullRequestEventAction -> Ordering
PullRequestEventAction
-> PullRequestEventAction -> PullRequestEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: PullRequestEventAction
-> PullRequestEventAction -> PullRequestEventAction
$cmin :: PullRequestEventAction
-> PullRequestEventAction -> PullRequestEventAction
max :: PullRequestEventAction
-> PullRequestEventAction -> PullRequestEventAction
$cmax :: PullRequestEventAction
-> PullRequestEventAction -> PullRequestEventAction
>= :: PullRequestEventAction -> PullRequestEventAction -> Bool
$c>= :: PullRequestEventAction -> PullRequestEventAction -> Bool
> :: PullRequestEventAction -> PullRequestEventAction -> Bool
$c> :: PullRequestEventAction -> PullRequestEventAction -> Bool
<= :: PullRequestEventAction -> PullRequestEventAction -> Bool
$c<= :: PullRequestEventAction -> PullRequestEventAction -> Bool
< :: PullRequestEventAction -> PullRequestEventAction -> Bool
$c< :: PullRequestEventAction -> PullRequestEventAction -> Bool
compare :: PullRequestEventAction -> PullRequestEventAction -> Ordering
$ccompare :: PullRequestEventAction -> PullRequestEventAction -> Ordering
$cp1Ord :: Eq PullRequestEventAction
Ord, Int -> PullRequestEventAction -> ShowS
[PullRequestEventAction] -> ShowS
PullRequestEventAction -> String
(Int -> PullRequestEventAction -> ShowS)
-> (PullRequestEventAction -> String)
-> ([PullRequestEventAction] -> ShowS)
-> Show PullRequestEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PullRequestEventAction] -> ShowS
$cshowList :: [PullRequestEventAction] -> ShowS
show :: PullRequestEventAction -> String
$cshow :: PullRequestEventAction -> String
showsPrec :: Int -> PullRequestEventAction -> ShowS
$cshowsPrec :: Int -> PullRequestEventAction -> ShowS
Show, (forall x. PullRequestEventAction -> Rep PullRequestEventAction x)
-> (forall x.
    Rep PullRequestEventAction x -> PullRequestEventAction)
-> Generic PullRequestEventAction
forall x. Rep PullRequestEventAction x -> PullRequestEventAction
forall x. PullRequestEventAction -> Rep PullRequestEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PullRequestEventAction x -> PullRequestEventAction
$cfrom :: forall x. PullRequestEventAction -> Rep PullRequestEventAction x
Generic, Typeable, Typeable PullRequestEventAction
DataType
Constr
Typeable PullRequestEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> PullRequestEventAction
    -> c PullRequestEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c PullRequestEventAction)
-> (PullRequestEventAction -> Constr)
-> (PullRequestEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c PullRequestEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c PullRequestEventAction))
-> ((forall b. Data b => b -> b)
    -> PullRequestEventAction -> PullRequestEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> PullRequestEventAction
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> PullRequestEventAction
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> PullRequestEventAction -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> PullRequestEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> PullRequestEventAction -> m PullRequestEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestEventAction -> m PullRequestEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestEventAction -> m PullRequestEventAction)
-> Data PullRequestEventAction
PullRequestEventAction -> DataType
PullRequestEventAction -> Constr
(forall b. Data b => b -> b)
-> PullRequestEventAction -> PullRequestEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestEventAction
-> c PullRequestEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestEventAction -> u
forall u.
(forall d. Data d => d -> u) -> PullRequestEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestEventAction
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestEventAction
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestEventAction -> m PullRequestEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestEventAction -> m PullRequestEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestEventAction
-> c PullRequestEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestEventAction)
$cPullRequestActionOther :: Constr
$cPullRequestReopenedAction :: Constr
$cPullRequestClosedAction :: Constr
$cPullRequestEditedAction :: Constr
$cPullRequestOpenedAction :: Constr
$cPullRequestUnlabeledAction :: Constr
$cPullRequestLabeledAction :: Constr
$cPullRequestReviewRequestRemovedAction :: Constr
$cPullRequestReviewRequestedAction :: Constr
$cPullRequestUnassignedAction :: Constr
$cPullRequestAssignedAction :: Constr
$tPullRequestEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> PullRequestEventAction -> m PullRequestEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestEventAction -> m PullRequestEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> PullRequestEventAction -> m PullRequestEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestEventAction -> m PullRequestEventAction
gmapM :: (forall d. Data d => d -> m d)
-> PullRequestEventAction -> m PullRequestEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestEventAction -> m PullRequestEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> PullRequestEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> PullRequestEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> PullRequestEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestEventAction
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestEventAction
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestEventAction
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestEventAction
-> r
gmapT :: (forall b. Data b => b -> b)
-> PullRequestEventAction -> PullRequestEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> PullRequestEventAction -> PullRequestEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c PullRequestEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestEventAction)
dataTypeOf :: PullRequestEventAction -> DataType
$cdataTypeOf :: PullRequestEventAction -> DataType
toConstr :: PullRequestEventAction -> Constr
$ctoConstr :: PullRequestEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestEventAction
-> c PullRequestEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestEventAction
-> c PullRequestEventAction
$cp1Data :: Typeable PullRequestEventAction
Data)

instance NFData PullRequestEventAction where rnf :: PullRequestEventAction -> ()
rnf = PullRequestEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON PullRequestEventAction where
  parseJSON :: Value -> Parser PullRequestEventAction
parseJSON = String
-> (Text -> Parser PullRequestEventAction)
-> Value
-> Parser PullRequestEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Pull request event action" ((Text -> Parser PullRequestEventAction)
 -> Value -> Parser PullRequestEventAction)
-> (Text -> Parser PullRequestEventAction)
-> Value
-> Parser PullRequestEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"assigned"      -> PullRequestEventAction -> Parser PullRequestEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventAction
PullRequestAssignedAction
        Text
"unassigned"    -> PullRequestEventAction -> Parser PullRequestEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventAction
PullRequestUnassignedAction
        Text
"review_requsted" -> PullRequestEventAction -> Parser PullRequestEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventAction
PullRequestReviewRequestedAction
        Text
"review_request_removed" -> PullRequestEventAction -> Parser PullRequestEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventAction
PullRequestReviewRequestRemovedAction
        Text
"labeled"       -> PullRequestEventAction -> Parser PullRequestEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventAction
PullRequestLabeledAction
        Text
"unlabeled"     -> PullRequestEventAction -> Parser PullRequestEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventAction
PullRequestUnlabeledAction
        Text
"opened"        -> PullRequestEventAction -> Parser PullRequestEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventAction
PullRequestOpenedAction
        Text
"edited"        -> PullRequestEventAction -> Parser PullRequestEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventAction
PullRequestEditedAction
        Text
"closed"        -> PullRequestEventAction -> Parser PullRequestEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventAction
PullRequestClosedAction
        Text
"reopened"      -> PullRequestEventAction -> Parser PullRequestEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestEventAction
PullRequestReopenedAction
        Text
_               -> PullRequestEventAction -> Parser PullRequestEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> PullRequestEventAction
PullRequestActionOther Text
t)

-- | Triggered when a pull request is assigned, unassigned, labeled, unlabeled, opened, edited,

-- closed, reopened, or synchronized. Also triggered when a pull request review is requested,

-- or when a review request is removed.

-- See <https://developer.github.com/v3/activity/events/types/#pullrequestevent>.

data PullRequestEvent = PullRequestEvent
    { PullRequestEvent -> PullRequestEventAction
evPullReqAction           :: !PullRequestEventAction
    , PullRequestEvent -> Int
evPullReqNumber           :: !Int
    , PullRequestEvent -> HookPullRequest
evPullReqPayload          :: !HookPullRequest
    , PullRequestEvent -> HookRepository
evPullReqRepo             :: !HookRepository
    , PullRequestEvent -> HookUser
evPullReqSender           :: !HookUser
    , PullRequestEvent -> Maybe Int
evPullReqInstallationId   :: !(Maybe Int)
    }
    deriving (PullRequestEvent -> PullRequestEvent -> Bool
(PullRequestEvent -> PullRequestEvent -> Bool)
-> (PullRequestEvent -> PullRequestEvent -> Bool)
-> Eq PullRequestEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PullRequestEvent -> PullRequestEvent -> Bool
$c/= :: PullRequestEvent -> PullRequestEvent -> Bool
== :: PullRequestEvent -> PullRequestEvent -> Bool
$c== :: PullRequestEvent -> PullRequestEvent -> Bool
Eq, Int -> PullRequestEvent -> ShowS
[PullRequestEvent] -> ShowS
PullRequestEvent -> String
(Int -> PullRequestEvent -> ShowS)
-> (PullRequestEvent -> String)
-> ([PullRequestEvent] -> ShowS)
-> Show PullRequestEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PullRequestEvent] -> ShowS
$cshowList :: [PullRequestEvent] -> ShowS
show :: PullRequestEvent -> String
$cshow :: PullRequestEvent -> String
showsPrec :: Int -> PullRequestEvent -> ShowS
$cshowsPrec :: Int -> PullRequestEvent -> ShowS
Show, Typeable, Typeable PullRequestEvent
DataType
Constr
Typeable PullRequestEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> PullRequestEvent -> c PullRequestEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c PullRequestEvent)
-> (PullRequestEvent -> Constr)
-> (PullRequestEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c PullRequestEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c PullRequestEvent))
-> ((forall b. Data b => b -> b)
    -> PullRequestEvent -> PullRequestEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> PullRequestEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> PullRequestEvent -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> PullRequestEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> PullRequestEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> PullRequestEvent -> m PullRequestEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestEvent -> m PullRequestEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestEvent -> m PullRequestEvent)
-> Data PullRequestEvent
PullRequestEvent -> DataType
PullRequestEvent -> Constr
(forall b. Data b => b -> b)
-> PullRequestEvent -> PullRequestEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PullRequestEvent -> c PullRequestEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestEvent -> u
forall u. (forall d. Data d => d -> u) -> PullRequestEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestEvent -> m PullRequestEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestEvent -> m PullRequestEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PullRequestEvent -> c PullRequestEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestEvent)
$cPullRequestEvent :: Constr
$tPullRequestEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> PullRequestEvent -> m PullRequestEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestEvent -> m PullRequestEvent
gmapMp :: (forall d. Data d => d -> m d)
-> PullRequestEvent -> m PullRequestEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestEvent -> m PullRequestEvent
gmapM :: (forall d. Data d => d -> m d)
-> PullRequestEvent -> m PullRequestEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestEvent -> m PullRequestEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> PullRequestEvent -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> PullRequestEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> PullRequestEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PullRequestEvent -> r
gmapT :: (forall b. Data b => b -> b)
-> PullRequestEvent -> PullRequestEvent
$cgmapT :: (forall b. Data b => b -> b)
-> PullRequestEvent -> PullRequestEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c PullRequestEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestEvent)
dataTypeOf :: PullRequestEvent -> DataType
$cdataTypeOf :: PullRequestEvent -> DataType
toConstr :: PullRequestEvent -> Constr
$ctoConstr :: PullRequestEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PullRequestEvent -> c PullRequestEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PullRequestEvent -> c PullRequestEvent
$cp1Data :: Typeable PullRequestEvent
Data, (forall x. PullRequestEvent -> Rep PullRequestEvent x)
-> (forall x. Rep PullRequestEvent x -> PullRequestEvent)
-> Generic PullRequestEvent
forall x. Rep PullRequestEvent x -> PullRequestEvent
forall x. PullRequestEvent -> Rep PullRequestEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PullRequestEvent x -> PullRequestEvent
$cfrom :: forall x. PullRequestEvent -> Rep PullRequestEvent x
Generic)

instance EventHasSender PullRequestEvent where senderOfEvent :: PullRequestEvent -> HookUser
senderOfEvent = PullRequestEvent -> HookUser
evPullReqSender
instance EventHasRepo PullRequestEvent where repoForEvent :: PullRequestEvent -> HookRepository
repoForEvent = PullRequestEvent -> HookRepository
evPullReqRepo
instance NFData PullRequestEvent where rnf :: PullRequestEvent -> ()
rnf = PullRequestEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data PullRequestReviewEventAction
  -- | Decodes from "submitted"

  = PullRequestReviewSubmittedAction
  -- | Decodes from "edited"

  | PullRequestReviewEditedAction
  -- | Decodes from "dismissed"

  | PullRequestReviewDismissedAction
  -- | The result of decoding an unknown pull request review event action type

  | PullRequestReviewActionOther !Text
  deriving (PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Bool
(PullRequestReviewEventAction
 -> PullRequestReviewEventAction -> Bool)
-> (PullRequestReviewEventAction
    -> PullRequestReviewEventAction -> Bool)
-> Eq PullRequestReviewEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Bool
$c/= :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Bool
== :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Bool
$c== :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Bool
Eq, Eq PullRequestReviewEventAction
Eq PullRequestReviewEventAction
-> (PullRequestReviewEventAction
    -> PullRequestReviewEventAction -> Ordering)
-> (PullRequestReviewEventAction
    -> PullRequestReviewEventAction -> Bool)
-> (PullRequestReviewEventAction
    -> PullRequestReviewEventAction -> Bool)
-> (PullRequestReviewEventAction
    -> PullRequestReviewEventAction -> Bool)
-> (PullRequestReviewEventAction
    -> PullRequestReviewEventAction -> Bool)
-> (PullRequestReviewEventAction
    -> PullRequestReviewEventAction -> PullRequestReviewEventAction)
-> (PullRequestReviewEventAction
    -> PullRequestReviewEventAction -> PullRequestReviewEventAction)
-> Ord PullRequestReviewEventAction
PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Bool
PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Ordering
PullRequestReviewEventAction
-> PullRequestReviewEventAction -> PullRequestReviewEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> PullRequestReviewEventAction
$cmin :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> PullRequestReviewEventAction
max :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> PullRequestReviewEventAction
$cmax :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> PullRequestReviewEventAction
>= :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Bool
$c>= :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Bool
> :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Bool
$c> :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Bool
<= :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Bool
$c<= :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Bool
< :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Bool
$c< :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Bool
compare :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Ordering
$ccompare :: PullRequestReviewEventAction
-> PullRequestReviewEventAction -> Ordering
$cp1Ord :: Eq PullRequestReviewEventAction
Ord, Int -> PullRequestReviewEventAction -> ShowS
[PullRequestReviewEventAction] -> ShowS
PullRequestReviewEventAction -> String
(Int -> PullRequestReviewEventAction -> ShowS)
-> (PullRequestReviewEventAction -> String)
-> ([PullRequestReviewEventAction] -> ShowS)
-> Show PullRequestReviewEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PullRequestReviewEventAction] -> ShowS
$cshowList :: [PullRequestReviewEventAction] -> ShowS
show :: PullRequestReviewEventAction -> String
$cshow :: PullRequestReviewEventAction -> String
showsPrec :: Int -> PullRequestReviewEventAction -> ShowS
$cshowsPrec :: Int -> PullRequestReviewEventAction -> ShowS
Show, (forall x.
 PullRequestReviewEventAction -> Rep PullRequestReviewEventAction x)
-> (forall x.
    Rep PullRequestReviewEventAction x -> PullRequestReviewEventAction)
-> Generic PullRequestReviewEventAction
forall x.
Rep PullRequestReviewEventAction x -> PullRequestReviewEventAction
forall x.
PullRequestReviewEventAction -> Rep PullRequestReviewEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep PullRequestReviewEventAction x -> PullRequestReviewEventAction
$cfrom :: forall x.
PullRequestReviewEventAction -> Rep PullRequestReviewEventAction x
Generic, Typeable, Typeable PullRequestReviewEventAction
DataType
Constr
Typeable PullRequestReviewEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> PullRequestReviewEventAction
    -> c PullRequestReviewEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r)
    -> Constr
    -> c PullRequestReviewEventAction)
-> (PullRequestReviewEventAction -> Constr)
-> (PullRequestReviewEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d))
    -> Maybe (c PullRequestReviewEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c PullRequestReviewEventAction))
-> ((forall b. Data b => b -> b)
    -> PullRequestReviewEventAction -> PullRequestReviewEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> PullRequestReviewEventAction
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> PullRequestReviewEventAction
    -> r)
-> (forall u.
    (forall d. Data d => d -> u)
    -> PullRequestReviewEventAction -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u)
    -> PullRequestReviewEventAction
    -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> PullRequestReviewEventAction -> m PullRequestReviewEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestReviewEventAction -> m PullRequestReviewEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestReviewEventAction -> m PullRequestReviewEventAction)
-> Data PullRequestReviewEventAction
PullRequestReviewEventAction -> DataType
PullRequestReviewEventAction -> Constr
(forall b. Data b => b -> b)
-> PullRequestReviewEventAction -> PullRequestReviewEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReviewEventAction
-> c PullRequestReviewEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestReviewEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int
-> (forall d. Data d => d -> u)
-> PullRequestReviewEventAction
-> u
forall u.
(forall d. Data d => d -> u) -> PullRequestReviewEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewEventAction
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewEventAction
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewEventAction -> m PullRequestReviewEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewEventAction -> m PullRequestReviewEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestReviewEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReviewEventAction
-> c PullRequestReviewEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c PullRequestReviewEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestReviewEventAction)
$cPullRequestReviewActionOther :: Constr
$cPullRequestReviewDismissedAction :: Constr
$cPullRequestReviewEditedAction :: Constr
$cPullRequestReviewSubmittedAction :: Constr
$tPullRequestReviewEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> PullRequestReviewEventAction -> m PullRequestReviewEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewEventAction -> m PullRequestReviewEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> PullRequestReviewEventAction -> m PullRequestReviewEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewEventAction -> m PullRequestReviewEventAction
gmapM :: (forall d. Data d => d -> m d)
-> PullRequestReviewEventAction -> m PullRequestReviewEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewEventAction -> m PullRequestReviewEventAction
gmapQi :: Int
-> (forall d. Data d => d -> u)
-> PullRequestReviewEventAction
-> u
$cgmapQi :: forall u.
Int
-> (forall d. Data d => d -> u)
-> PullRequestReviewEventAction
-> u
gmapQ :: (forall d. Data d => d -> u) -> PullRequestReviewEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> PullRequestReviewEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewEventAction
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewEventAction
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewEventAction
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewEventAction
-> r
gmapT :: (forall b. Data b => b -> b)
-> PullRequestReviewEventAction -> PullRequestReviewEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> PullRequestReviewEventAction -> PullRequestReviewEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestReviewEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestReviewEventAction)
dataCast1 :: (forall d. Data d => c (t d))
-> Maybe (c PullRequestReviewEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c PullRequestReviewEventAction)
dataTypeOf :: PullRequestReviewEventAction -> DataType
$cdataTypeOf :: PullRequestReviewEventAction -> DataType
toConstr :: PullRequestReviewEventAction -> Constr
$ctoConstr :: PullRequestReviewEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestReviewEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestReviewEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReviewEventAction
-> c PullRequestReviewEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReviewEventAction
-> c PullRequestReviewEventAction
$cp1Data :: Typeable PullRequestReviewEventAction
Data)

instance NFData PullRequestReviewEventAction where rnf :: PullRequestReviewEventAction -> ()
rnf = PullRequestReviewEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON PullRequestReviewEventAction where
  parseJSON :: Value -> Parser PullRequestReviewEventAction
parseJSON = String
-> (Text -> Parser PullRequestReviewEventAction)
-> Value
-> Parser PullRequestReviewEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Pull request review event action" ((Text -> Parser PullRequestReviewEventAction)
 -> Value -> Parser PullRequestReviewEventAction)
-> (Text -> Parser PullRequestReviewEventAction)
-> Value
-> Parser PullRequestReviewEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"submitted"     -> PullRequestReviewEventAction -> Parser PullRequestReviewEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestReviewEventAction
PullRequestReviewSubmittedAction
        Text
"edited"        -> PullRequestReviewEventAction -> Parser PullRequestReviewEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestReviewEventAction
PullRequestReviewEditedAction
        Text
"dismissed"     -> PullRequestReviewEventAction -> Parser PullRequestReviewEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestReviewEventAction
PullRequestReviewDismissedAction
        Text
_               -> PullRequestReviewEventAction -> Parser PullRequestReviewEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> PullRequestReviewEventAction
PullRequestReviewActionOther Text
t)

-- | Triggered when a pull request review is submitted into a non-pending state,

-- the body is edited, or the review is dismissed.

-- See <https://developer.github.com/v3/activity/events/types/#pullrequestreviewevent>.

data PullRequestReviewEvent = PullRequestReviewEvent
    { PullRequestReviewEvent -> PullRequestReviewEventAction
evPullReqReviewAction     :: !PullRequestReviewEventAction
    , PullRequestReviewEvent -> HookPullRequestReview
evPullReqReviewPayload    :: !HookPullRequestReview
    , PullRequestReviewEvent -> HookPullRequest
evPullReqReviewTarget     :: !HookPullRequest
    , PullRequestReviewEvent -> HookRepository
evPullReqReviewRepo       :: !HookRepository
    , PullRequestReviewEvent -> HookUser
evPullReqReviewSender     :: !HookUser
    }
    deriving (PullRequestReviewEvent -> PullRequestReviewEvent -> Bool
(PullRequestReviewEvent -> PullRequestReviewEvent -> Bool)
-> (PullRequestReviewEvent -> PullRequestReviewEvent -> Bool)
-> Eq PullRequestReviewEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PullRequestReviewEvent -> PullRequestReviewEvent -> Bool
$c/= :: PullRequestReviewEvent -> PullRequestReviewEvent -> Bool
== :: PullRequestReviewEvent -> PullRequestReviewEvent -> Bool
$c== :: PullRequestReviewEvent -> PullRequestReviewEvent -> Bool
Eq, Int -> PullRequestReviewEvent -> ShowS
[PullRequestReviewEvent] -> ShowS
PullRequestReviewEvent -> String
(Int -> PullRequestReviewEvent -> ShowS)
-> (PullRequestReviewEvent -> String)
-> ([PullRequestReviewEvent] -> ShowS)
-> Show PullRequestReviewEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PullRequestReviewEvent] -> ShowS
$cshowList :: [PullRequestReviewEvent] -> ShowS
show :: PullRequestReviewEvent -> String
$cshow :: PullRequestReviewEvent -> String
showsPrec :: Int -> PullRequestReviewEvent -> ShowS
$cshowsPrec :: Int -> PullRequestReviewEvent -> ShowS
Show, Typeable, Typeable PullRequestReviewEvent
DataType
Constr
Typeable PullRequestReviewEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> PullRequestReviewEvent
    -> c PullRequestReviewEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c PullRequestReviewEvent)
-> (PullRequestReviewEvent -> Constr)
-> (PullRequestReviewEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c PullRequestReviewEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c PullRequestReviewEvent))
-> ((forall b. Data b => b -> b)
    -> PullRequestReviewEvent -> PullRequestReviewEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> PullRequestReviewEvent
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> PullRequestReviewEvent
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> PullRequestReviewEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> PullRequestReviewEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> PullRequestReviewEvent -> m PullRequestReviewEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestReviewEvent -> m PullRequestReviewEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestReviewEvent -> m PullRequestReviewEvent)
-> Data PullRequestReviewEvent
PullRequestReviewEvent -> DataType
PullRequestReviewEvent -> Constr
(forall b. Data b => b -> b)
-> PullRequestReviewEvent -> PullRequestReviewEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReviewEvent
-> c PullRequestReviewEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestReviewEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestReviewEvent -> u
forall u.
(forall d. Data d => d -> u) -> PullRequestReviewEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewEvent
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewEvent
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewEvent -> m PullRequestReviewEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewEvent -> m PullRequestReviewEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestReviewEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReviewEvent
-> c PullRequestReviewEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestReviewEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestReviewEvent)
$cPullRequestReviewEvent :: Constr
$tPullRequestReviewEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> PullRequestReviewEvent -> m PullRequestReviewEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewEvent -> m PullRequestReviewEvent
gmapMp :: (forall d. Data d => d -> m d)
-> PullRequestReviewEvent -> m PullRequestReviewEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewEvent -> m PullRequestReviewEvent
gmapM :: (forall d. Data d => d -> m d)
-> PullRequestReviewEvent -> m PullRequestReviewEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewEvent -> m PullRequestReviewEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> PullRequestReviewEvent -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PullRequestReviewEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> PullRequestReviewEvent -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> PullRequestReviewEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewEvent
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewEvent
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewEvent
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewEvent
-> r
gmapT :: (forall b. Data b => b -> b)
-> PullRequestReviewEvent -> PullRequestReviewEvent
$cgmapT :: (forall b. Data b => b -> b)
-> PullRequestReviewEvent -> PullRequestReviewEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestReviewEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestReviewEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c PullRequestReviewEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PullRequestReviewEvent)
dataTypeOf :: PullRequestReviewEvent -> DataType
$cdataTypeOf :: PullRequestReviewEvent -> DataType
toConstr :: PullRequestReviewEvent -> Constr
$ctoConstr :: PullRequestReviewEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestReviewEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PullRequestReviewEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReviewEvent
-> c PullRequestReviewEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReviewEvent
-> c PullRequestReviewEvent
$cp1Data :: Typeable PullRequestReviewEvent
Data, (forall x. PullRequestReviewEvent -> Rep PullRequestReviewEvent x)
-> (forall x.
    Rep PullRequestReviewEvent x -> PullRequestReviewEvent)
-> Generic PullRequestReviewEvent
forall x. Rep PullRequestReviewEvent x -> PullRequestReviewEvent
forall x. PullRequestReviewEvent -> Rep PullRequestReviewEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PullRequestReviewEvent x -> PullRequestReviewEvent
$cfrom :: forall x. PullRequestReviewEvent -> Rep PullRequestReviewEvent x
Generic)

instance EventHasSender PullRequestReviewEvent where senderOfEvent :: PullRequestReviewEvent -> HookUser
senderOfEvent = PullRequestReviewEvent -> HookUser
evPullReqReviewSender
instance EventHasRepo PullRequestReviewEvent where repoForEvent :: PullRequestReviewEvent -> HookRepository
repoForEvent = PullRequestReviewEvent -> HookRepository
evPullReqReviewRepo
instance NFData PullRequestReviewEvent where rnf :: PullRequestReviewEvent -> ()
rnf = PullRequestReviewEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data PullRequestReviewCommentEventAction
  -- | Decodes from "created"

  = PullRequestReviewCommentCreatedAction
  -- | Decodes from "edited"

  | PullRequestReviewCommentEditedAction
  -- | Decodes from "deleted"

  | PullRequestReviewCommentDeletedAction
  -- | The result of decoding an unknown pull request review comment event action type

  | PullRequestReviewCommentActionOther !Text
  deriving (PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Bool
(PullRequestReviewCommentEventAction
 -> PullRequestReviewCommentEventAction -> Bool)
-> (PullRequestReviewCommentEventAction
    -> PullRequestReviewCommentEventAction -> Bool)
-> Eq PullRequestReviewCommentEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Bool
$c/= :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Bool
== :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Bool
$c== :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Bool
Eq, Eq PullRequestReviewCommentEventAction
Eq PullRequestReviewCommentEventAction
-> (PullRequestReviewCommentEventAction
    -> PullRequestReviewCommentEventAction -> Ordering)
-> (PullRequestReviewCommentEventAction
    -> PullRequestReviewCommentEventAction -> Bool)
-> (PullRequestReviewCommentEventAction
    -> PullRequestReviewCommentEventAction -> Bool)
-> (PullRequestReviewCommentEventAction
    -> PullRequestReviewCommentEventAction -> Bool)
-> (PullRequestReviewCommentEventAction
    -> PullRequestReviewCommentEventAction -> Bool)
-> (PullRequestReviewCommentEventAction
    -> PullRequestReviewCommentEventAction
    -> PullRequestReviewCommentEventAction)
-> (PullRequestReviewCommentEventAction
    -> PullRequestReviewCommentEventAction
    -> PullRequestReviewCommentEventAction)
-> Ord PullRequestReviewCommentEventAction
PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Bool
PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Ordering
PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction
$cmin :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction
max :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction
$cmax :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction
>= :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Bool
$c>= :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Bool
> :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Bool
$c> :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Bool
<= :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Bool
$c<= :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Bool
< :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Bool
$c< :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Bool
compare :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Ordering
$ccompare :: PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction -> Ordering
$cp1Ord :: Eq PullRequestReviewCommentEventAction
Ord, Int -> PullRequestReviewCommentEventAction -> ShowS
[PullRequestReviewCommentEventAction] -> ShowS
PullRequestReviewCommentEventAction -> String
(Int -> PullRequestReviewCommentEventAction -> ShowS)
-> (PullRequestReviewCommentEventAction -> String)
-> ([PullRequestReviewCommentEventAction] -> ShowS)
-> Show PullRequestReviewCommentEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PullRequestReviewCommentEventAction] -> ShowS
$cshowList :: [PullRequestReviewCommentEventAction] -> ShowS
show :: PullRequestReviewCommentEventAction -> String
$cshow :: PullRequestReviewCommentEventAction -> String
showsPrec :: Int -> PullRequestReviewCommentEventAction -> ShowS
$cshowsPrec :: Int -> PullRequestReviewCommentEventAction -> ShowS
Show, (forall x.
 PullRequestReviewCommentEventAction
 -> Rep PullRequestReviewCommentEventAction x)
-> (forall x.
    Rep PullRequestReviewCommentEventAction x
    -> PullRequestReviewCommentEventAction)
-> Generic PullRequestReviewCommentEventAction
forall x.
Rep PullRequestReviewCommentEventAction x
-> PullRequestReviewCommentEventAction
forall x.
PullRequestReviewCommentEventAction
-> Rep PullRequestReviewCommentEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep PullRequestReviewCommentEventAction x
-> PullRequestReviewCommentEventAction
$cfrom :: forall x.
PullRequestReviewCommentEventAction
-> Rep PullRequestReviewCommentEventAction x
Generic, Typeable, Typeable PullRequestReviewCommentEventAction
DataType
Constr
Typeable PullRequestReviewCommentEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> PullRequestReviewCommentEventAction
    -> c PullRequestReviewCommentEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r)
    -> Constr
    -> c PullRequestReviewCommentEventAction)
-> (PullRequestReviewCommentEventAction -> Constr)
-> (PullRequestReviewCommentEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d))
    -> Maybe (c PullRequestReviewCommentEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c PullRequestReviewCommentEventAction))
-> ((forall b. Data b => b -> b)
    -> PullRequestReviewCommentEventAction
    -> PullRequestReviewCommentEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> PullRequestReviewCommentEventAction
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> PullRequestReviewCommentEventAction
    -> r)
-> (forall u.
    (forall d. Data d => d -> u)
    -> PullRequestReviewCommentEventAction -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u)
    -> PullRequestReviewCommentEventAction
    -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> PullRequestReviewCommentEventAction
    -> m PullRequestReviewCommentEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestReviewCommentEventAction
    -> m PullRequestReviewCommentEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestReviewCommentEventAction
    -> m PullRequestReviewCommentEventAction)
-> Data PullRequestReviewCommentEventAction
PullRequestReviewCommentEventAction -> DataType
PullRequestReviewCommentEventAction -> Constr
(forall b. Data b => b -> b)
-> PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReviewCommentEventAction
-> c PullRequestReviewCommentEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c PullRequestReviewCommentEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int
-> (forall d. Data d => d -> u)
-> PullRequestReviewCommentEventAction
-> u
forall u.
(forall d. Data d => d -> u)
-> PullRequestReviewCommentEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewCommentEventAction
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewCommentEventAction
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewCommentEventAction
-> m PullRequestReviewCommentEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewCommentEventAction
-> m PullRequestReviewCommentEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c PullRequestReviewCommentEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReviewCommentEventAction
-> c PullRequestReviewCommentEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c PullRequestReviewCommentEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestReviewCommentEventAction)
$cPullRequestReviewCommentActionOther :: Constr
$cPullRequestReviewCommentDeletedAction :: Constr
$cPullRequestReviewCommentEditedAction :: Constr
$cPullRequestReviewCommentCreatedAction :: Constr
$tPullRequestReviewCommentEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> PullRequestReviewCommentEventAction
-> m PullRequestReviewCommentEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewCommentEventAction
-> m PullRequestReviewCommentEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> PullRequestReviewCommentEventAction
-> m PullRequestReviewCommentEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewCommentEventAction
-> m PullRequestReviewCommentEventAction
gmapM :: (forall d. Data d => d -> m d)
-> PullRequestReviewCommentEventAction
-> m PullRequestReviewCommentEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewCommentEventAction
-> m PullRequestReviewCommentEventAction
gmapQi :: Int
-> (forall d. Data d => d -> u)
-> PullRequestReviewCommentEventAction
-> u
$cgmapQi :: forall u.
Int
-> (forall d. Data d => d -> u)
-> PullRequestReviewCommentEventAction
-> u
gmapQ :: (forall d. Data d => d -> u)
-> PullRequestReviewCommentEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u)
-> PullRequestReviewCommentEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewCommentEventAction
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewCommentEventAction
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewCommentEventAction
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewCommentEventAction
-> r
gmapT :: (forall b. Data b => b -> b)
-> PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> PullRequestReviewCommentEventAction
-> PullRequestReviewCommentEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestReviewCommentEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestReviewCommentEventAction)
dataCast1 :: (forall d. Data d => c (t d))
-> Maybe (c PullRequestReviewCommentEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c PullRequestReviewCommentEventAction)
dataTypeOf :: PullRequestReviewCommentEventAction -> DataType
$cdataTypeOf :: PullRequestReviewCommentEventAction -> DataType
toConstr :: PullRequestReviewCommentEventAction -> Constr
$ctoConstr :: PullRequestReviewCommentEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c PullRequestReviewCommentEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c PullRequestReviewCommentEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReviewCommentEventAction
-> c PullRequestReviewCommentEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReviewCommentEventAction
-> c PullRequestReviewCommentEventAction
$cp1Data :: Typeable PullRequestReviewCommentEventAction
Data)

instance NFData PullRequestReviewCommentEventAction where rnf :: PullRequestReviewCommentEventAction -> ()
rnf = PullRequestReviewCommentEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON PullRequestReviewCommentEventAction where
  parseJSON :: Value -> Parser PullRequestReviewCommentEventAction
parseJSON = String
-> (Text -> Parser PullRequestReviewCommentEventAction)
-> Value
-> Parser PullRequestReviewCommentEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Pull request review comment event action" ((Text -> Parser PullRequestReviewCommentEventAction)
 -> Value -> Parser PullRequestReviewCommentEventAction)
-> (Text -> Parser PullRequestReviewCommentEventAction)
-> Value
-> Parser PullRequestReviewCommentEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"created"       -> PullRequestReviewCommentEventAction
-> Parser PullRequestReviewCommentEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestReviewCommentEventAction
PullRequestReviewCommentCreatedAction
        Text
"edited"        -> PullRequestReviewCommentEventAction
-> Parser PullRequestReviewCommentEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestReviewCommentEventAction
PullRequestReviewCommentEditedAction
        Text
"deleted"       -> PullRequestReviewCommentEventAction
-> Parser PullRequestReviewCommentEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure PullRequestReviewCommentEventAction
PullRequestReviewCommentDeletedAction
        Text
_               -> PullRequestReviewCommentEventAction
-> Parser PullRequestReviewCommentEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> PullRequestReviewCommentEventAction
PullRequestReviewCommentActionOther Text
t)

-- | Triggered when a comment on a pull request's unified diff is created,

-- edited, or deleted (in the Files Changed tab).

-- See <https://developer.github.com/v3/activity/events/types/#pullrequestreviewcommentevent>.

data PullRequestReviewCommentEvent = PullRequestReviewCommentEvent
    { PullRequestReviewCommentEvent
-> PullRequestReviewCommentEventAction
evPullReqRevComAction     :: !PullRequestReviewCommentEventAction
    , PullRequestReviewCommentEvent -> HookPullRequestReviewComment
evPullReqRevComment       :: !HookPullRequestReviewComment
    , PullRequestReviewCommentEvent -> HookPullRequest
evPullReqRevTarget        :: !HookPullRequest
    , PullRequestReviewCommentEvent -> HookRepository
evPullReqRevRepo          :: !HookRepository
    , PullRequestReviewCommentEvent -> HookUser
evPullReqRevSender        :: !HookUser
    }
    deriving (PullRequestReviewCommentEvent
-> PullRequestReviewCommentEvent -> Bool
(PullRequestReviewCommentEvent
 -> PullRequestReviewCommentEvent -> Bool)
-> (PullRequestReviewCommentEvent
    -> PullRequestReviewCommentEvent -> Bool)
-> Eq PullRequestReviewCommentEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PullRequestReviewCommentEvent
-> PullRequestReviewCommentEvent -> Bool
$c/= :: PullRequestReviewCommentEvent
-> PullRequestReviewCommentEvent -> Bool
== :: PullRequestReviewCommentEvent
-> PullRequestReviewCommentEvent -> Bool
$c== :: PullRequestReviewCommentEvent
-> PullRequestReviewCommentEvent -> Bool
Eq, Int -> PullRequestReviewCommentEvent -> ShowS
[PullRequestReviewCommentEvent] -> ShowS
PullRequestReviewCommentEvent -> String
(Int -> PullRequestReviewCommentEvent -> ShowS)
-> (PullRequestReviewCommentEvent -> String)
-> ([PullRequestReviewCommentEvent] -> ShowS)
-> Show PullRequestReviewCommentEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PullRequestReviewCommentEvent] -> ShowS
$cshowList :: [PullRequestReviewCommentEvent] -> ShowS
show :: PullRequestReviewCommentEvent -> String
$cshow :: PullRequestReviewCommentEvent -> String
showsPrec :: Int -> PullRequestReviewCommentEvent -> ShowS
$cshowsPrec :: Int -> PullRequestReviewCommentEvent -> ShowS
Show, Typeable, Typeable PullRequestReviewCommentEvent
DataType
Constr
Typeable PullRequestReviewCommentEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> PullRequestReviewCommentEvent
    -> c PullRequestReviewCommentEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r)
    -> Constr
    -> c PullRequestReviewCommentEvent)
-> (PullRequestReviewCommentEvent -> Constr)
-> (PullRequestReviewCommentEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d))
    -> Maybe (c PullRequestReviewCommentEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c PullRequestReviewCommentEvent))
-> ((forall b. Data b => b -> b)
    -> PullRequestReviewCommentEvent -> PullRequestReviewCommentEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> PullRequestReviewCommentEvent
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> PullRequestReviewCommentEvent
    -> r)
-> (forall u.
    (forall d. Data d => d -> u)
    -> PullRequestReviewCommentEvent -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u)
    -> PullRequestReviewCommentEvent
    -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> PullRequestReviewCommentEvent
    -> m PullRequestReviewCommentEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestReviewCommentEvent
    -> m PullRequestReviewCommentEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> PullRequestReviewCommentEvent
    -> m PullRequestReviewCommentEvent)
-> Data PullRequestReviewCommentEvent
PullRequestReviewCommentEvent -> DataType
PullRequestReviewCommentEvent -> Constr
(forall b. Data b => b -> b)
-> PullRequestReviewCommentEvent -> PullRequestReviewCommentEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReviewCommentEvent
-> c PullRequestReviewCommentEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c PullRequestReviewCommentEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int
-> (forall d. Data d => d -> u)
-> PullRequestReviewCommentEvent
-> u
forall u.
(forall d. Data d => d -> u)
-> PullRequestReviewCommentEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewCommentEvent
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewCommentEvent
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewCommentEvent -> m PullRequestReviewCommentEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewCommentEvent -> m PullRequestReviewCommentEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c PullRequestReviewCommentEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReviewCommentEvent
-> c PullRequestReviewCommentEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c PullRequestReviewCommentEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestReviewCommentEvent)
$cPullRequestReviewCommentEvent :: Constr
$tPullRequestReviewCommentEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> PullRequestReviewCommentEvent -> m PullRequestReviewCommentEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewCommentEvent -> m PullRequestReviewCommentEvent
gmapMp :: (forall d. Data d => d -> m d)
-> PullRequestReviewCommentEvent -> m PullRequestReviewCommentEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewCommentEvent -> m PullRequestReviewCommentEvent
gmapM :: (forall d. Data d => d -> m d)
-> PullRequestReviewCommentEvent -> m PullRequestReviewCommentEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PullRequestReviewCommentEvent -> m PullRequestReviewCommentEvent
gmapQi :: Int
-> (forall d. Data d => d -> u)
-> PullRequestReviewCommentEvent
-> u
$cgmapQi :: forall u.
Int
-> (forall d. Data d => d -> u)
-> PullRequestReviewCommentEvent
-> u
gmapQ :: (forall d. Data d => d -> u)
-> PullRequestReviewCommentEvent -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u)
-> PullRequestReviewCommentEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewCommentEvent
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewCommentEvent
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewCommentEvent
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> PullRequestReviewCommentEvent
-> r
gmapT :: (forall b. Data b => b -> b)
-> PullRequestReviewCommentEvent -> PullRequestReviewCommentEvent
$cgmapT :: (forall b. Data b => b -> b)
-> PullRequestReviewCommentEvent -> PullRequestReviewCommentEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestReviewCommentEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PullRequestReviewCommentEvent)
dataCast1 :: (forall d. Data d => c (t d))
-> Maybe (c PullRequestReviewCommentEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c PullRequestReviewCommentEvent)
dataTypeOf :: PullRequestReviewCommentEvent -> DataType
$cdataTypeOf :: PullRequestReviewCommentEvent -> DataType
toConstr :: PullRequestReviewCommentEvent -> Constr
$ctoConstr :: PullRequestReviewCommentEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c PullRequestReviewCommentEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c PullRequestReviewCommentEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReviewCommentEvent
-> c PullRequestReviewCommentEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PullRequestReviewCommentEvent
-> c PullRequestReviewCommentEvent
$cp1Data :: Typeable PullRequestReviewCommentEvent
Data, (forall x.
 PullRequestReviewCommentEvent
 -> Rep PullRequestReviewCommentEvent x)
-> (forall x.
    Rep PullRequestReviewCommentEvent x
    -> PullRequestReviewCommentEvent)
-> Generic PullRequestReviewCommentEvent
forall x.
Rep PullRequestReviewCommentEvent x
-> PullRequestReviewCommentEvent
forall x.
PullRequestReviewCommentEvent
-> Rep PullRequestReviewCommentEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep PullRequestReviewCommentEvent x
-> PullRequestReviewCommentEvent
$cfrom :: forall x.
PullRequestReviewCommentEvent
-> Rep PullRequestReviewCommentEvent x
Generic)

instance EventHasSender PullRequestReviewCommentEvent where senderOfEvent :: PullRequestReviewCommentEvent -> HookUser
senderOfEvent = PullRequestReviewCommentEvent -> HookUser
evPullReqRevSender
instance EventHasRepo PullRequestReviewCommentEvent where repoForEvent :: PullRequestReviewCommentEvent -> HookRepository
repoForEvent = PullRequestReviewCommentEvent -> HookRepository
evPullReqRevRepo
instance NFData PullRequestReviewCommentEvent where rnf :: PullRequestReviewCommentEvent -> ()
rnf = PullRequestReviewCommentEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


-- | Triggered on a push to a repository branch. Branch pushes and repository tag

-- pushes also trigger webhook push events.

-- See <https://developer.github.com/v3/activity/events/types/#pushevent>.

data PushEvent = PushEvent
    { PushEvent -> Text
evPushRef                 :: !Text
    , PushEvent -> Maybe Text
evPushHeadSha             :: !(Maybe Text)
    , PushEvent -> Maybe Text
evPushBeforeSha           :: !(Maybe Text)
    , PushEvent -> Bool
evPushCreated             :: !Bool
    , PushEvent -> Bool
evPushDeleted             :: !Bool
    , PushEvent -> Bool
evPushForced              :: !Bool
    , PushEvent -> Maybe Text
evPushBaseRef             :: !(Maybe Text)
    , PushEvent -> URL
evPushCompareUrl          :: !URL
    , PushEvent -> Maybe (Vector HookCommit)
evPushCommits             :: !(Maybe (Vector HookCommit))
    , PushEvent -> Maybe HookCommit
evPushHeadCommit          :: !(Maybe HookCommit)
    , PushEvent -> HookRepository
evPushRepository          :: !HookRepository
    , PushEvent -> Maybe HookOrganization
evPushOrganization        :: !(Maybe HookOrganization)
    , PushEvent -> HookUser
evPushSender              :: !HookUser
    }
    deriving (PushEvent -> PushEvent -> Bool
(PushEvent -> PushEvent -> Bool)
-> (PushEvent -> PushEvent -> Bool) -> Eq PushEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PushEvent -> PushEvent -> Bool
$c/= :: PushEvent -> PushEvent -> Bool
== :: PushEvent -> PushEvent -> Bool
$c== :: PushEvent -> PushEvent -> Bool
Eq, Int -> PushEvent -> ShowS
[PushEvent] -> ShowS
PushEvent -> String
(Int -> PushEvent -> ShowS)
-> (PushEvent -> String)
-> ([PushEvent] -> ShowS)
-> Show PushEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PushEvent] -> ShowS
$cshowList :: [PushEvent] -> ShowS
show :: PushEvent -> String
$cshow :: PushEvent -> String
showsPrec :: Int -> PushEvent -> ShowS
$cshowsPrec :: Int -> PushEvent -> ShowS
Show, Typeable, Typeable PushEvent
DataType
Constr
Typeable PushEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> PushEvent -> c PushEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c PushEvent)
-> (PushEvent -> Constr)
-> (PushEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c PushEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PushEvent))
-> ((forall b. Data b => b -> b) -> PushEvent -> PushEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> PushEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> PushEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> PushEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> PushEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> PushEvent -> m PushEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> PushEvent -> m PushEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> PushEvent -> m PushEvent)
-> Data PushEvent
PushEvent -> DataType
PushEvent -> Constr
(forall b. Data b => b -> b) -> PushEvent -> PushEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PushEvent -> c PushEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PushEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> PushEvent -> u
forall u. (forall d. Data d => d -> u) -> PushEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PushEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PushEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PushEvent -> m PushEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PushEvent -> m PushEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PushEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PushEvent -> c PushEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PushEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PushEvent)
$cPushEvent :: Constr
$tPushEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> PushEvent -> m PushEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PushEvent -> m PushEvent
gmapMp :: (forall d. Data d => d -> m d) -> PushEvent -> m PushEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PushEvent -> m PushEvent
gmapM :: (forall d. Data d => d -> m d) -> PushEvent -> m PushEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PushEvent -> m PushEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> PushEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> PushEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> PushEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> PushEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PushEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PushEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PushEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PushEvent -> r
gmapT :: (forall b. Data b => b -> b) -> PushEvent -> PushEvent
$cgmapT :: (forall b. Data b => b -> b) -> PushEvent -> PushEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PushEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PushEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c PushEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PushEvent)
dataTypeOf :: PushEvent -> DataType
$cdataTypeOf :: PushEvent -> DataType
toConstr :: PushEvent -> Constr
$ctoConstr :: PushEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PushEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PushEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PushEvent -> c PushEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PushEvent -> c PushEvent
$cp1Data :: Typeable PushEvent
Data, (forall x. PushEvent -> Rep PushEvent x)
-> (forall x. Rep PushEvent x -> PushEvent) -> Generic PushEvent
forall x. Rep PushEvent x -> PushEvent
forall x. PushEvent -> Rep PushEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PushEvent x -> PushEvent
$cfrom :: forall x. PushEvent -> Rep PushEvent x
Generic)

instance EventHasSender PushEvent where senderOfEvent :: PushEvent -> HookUser
senderOfEvent = PushEvent -> HookUser
evPushSender
instance EventHasRepo PushEvent where repoForEvent :: PushEvent -> HookRepository
repoForEvent = PushEvent -> HookRepository
evPushRepository
instance NFData PushEvent where rnf :: PushEvent -> ()
rnf = PushEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data ReleaseEventAction
  -- | Decodes from "published"

  = ReleasePublishedAction
  -- | The result of decoding an unknown release event action type

  | ReleaseActionOther !Text
  deriving (ReleaseEventAction -> ReleaseEventAction -> Bool
(ReleaseEventAction -> ReleaseEventAction -> Bool)
-> (ReleaseEventAction -> ReleaseEventAction -> Bool)
-> Eq ReleaseEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ReleaseEventAction -> ReleaseEventAction -> Bool
$c/= :: ReleaseEventAction -> ReleaseEventAction -> Bool
== :: ReleaseEventAction -> ReleaseEventAction -> Bool
$c== :: ReleaseEventAction -> ReleaseEventAction -> Bool
Eq, Eq ReleaseEventAction
Eq ReleaseEventAction
-> (ReleaseEventAction -> ReleaseEventAction -> Ordering)
-> (ReleaseEventAction -> ReleaseEventAction -> Bool)
-> (ReleaseEventAction -> ReleaseEventAction -> Bool)
-> (ReleaseEventAction -> ReleaseEventAction -> Bool)
-> (ReleaseEventAction -> ReleaseEventAction -> Bool)
-> (ReleaseEventAction -> ReleaseEventAction -> ReleaseEventAction)
-> (ReleaseEventAction -> ReleaseEventAction -> ReleaseEventAction)
-> Ord ReleaseEventAction
ReleaseEventAction -> ReleaseEventAction -> Bool
ReleaseEventAction -> ReleaseEventAction -> Ordering
ReleaseEventAction -> ReleaseEventAction -> ReleaseEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: ReleaseEventAction -> ReleaseEventAction -> ReleaseEventAction
$cmin :: ReleaseEventAction -> ReleaseEventAction -> ReleaseEventAction
max :: ReleaseEventAction -> ReleaseEventAction -> ReleaseEventAction
$cmax :: ReleaseEventAction -> ReleaseEventAction -> ReleaseEventAction
>= :: ReleaseEventAction -> ReleaseEventAction -> Bool
$c>= :: ReleaseEventAction -> ReleaseEventAction -> Bool
> :: ReleaseEventAction -> ReleaseEventAction -> Bool
$c> :: ReleaseEventAction -> ReleaseEventAction -> Bool
<= :: ReleaseEventAction -> ReleaseEventAction -> Bool
$c<= :: ReleaseEventAction -> ReleaseEventAction -> Bool
< :: ReleaseEventAction -> ReleaseEventAction -> Bool
$c< :: ReleaseEventAction -> ReleaseEventAction -> Bool
compare :: ReleaseEventAction -> ReleaseEventAction -> Ordering
$ccompare :: ReleaseEventAction -> ReleaseEventAction -> Ordering
$cp1Ord :: Eq ReleaseEventAction
Ord, Int -> ReleaseEventAction -> ShowS
[ReleaseEventAction] -> ShowS
ReleaseEventAction -> String
(Int -> ReleaseEventAction -> ShowS)
-> (ReleaseEventAction -> String)
-> ([ReleaseEventAction] -> ShowS)
-> Show ReleaseEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ReleaseEventAction] -> ShowS
$cshowList :: [ReleaseEventAction] -> ShowS
show :: ReleaseEventAction -> String
$cshow :: ReleaseEventAction -> String
showsPrec :: Int -> ReleaseEventAction -> ShowS
$cshowsPrec :: Int -> ReleaseEventAction -> ShowS
Show, (forall x. ReleaseEventAction -> Rep ReleaseEventAction x)
-> (forall x. Rep ReleaseEventAction x -> ReleaseEventAction)
-> Generic ReleaseEventAction
forall x. Rep ReleaseEventAction x -> ReleaseEventAction
forall x. ReleaseEventAction -> Rep ReleaseEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ReleaseEventAction x -> ReleaseEventAction
$cfrom :: forall x. ReleaseEventAction -> Rep ReleaseEventAction x
Generic, Typeable, Typeable ReleaseEventAction
DataType
Constr
Typeable ReleaseEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> ReleaseEventAction
    -> c ReleaseEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c ReleaseEventAction)
-> (ReleaseEventAction -> Constr)
-> (ReleaseEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c ReleaseEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c ReleaseEventAction))
-> ((forall b. Data b => b -> b)
    -> ReleaseEventAction -> ReleaseEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> ReleaseEventAction -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> ReleaseEventAction -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> ReleaseEventAction -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> ReleaseEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> ReleaseEventAction -> m ReleaseEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> ReleaseEventAction -> m ReleaseEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> ReleaseEventAction -> m ReleaseEventAction)
-> Data ReleaseEventAction
ReleaseEventAction -> DataType
ReleaseEventAction -> Constr
(forall b. Data b => b -> b)
-> ReleaseEventAction -> ReleaseEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ReleaseEventAction
-> c ReleaseEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ReleaseEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> ReleaseEventAction -> u
forall u. (forall d. Data d => d -> u) -> ReleaseEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ReleaseEventAction -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ReleaseEventAction -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ReleaseEventAction -> m ReleaseEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ReleaseEventAction -> m ReleaseEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ReleaseEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ReleaseEventAction
-> c ReleaseEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ReleaseEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ReleaseEventAction)
$cReleaseActionOther :: Constr
$cReleasePublishedAction :: Constr
$tReleaseEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> ReleaseEventAction -> m ReleaseEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ReleaseEventAction -> m ReleaseEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> ReleaseEventAction -> m ReleaseEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ReleaseEventAction -> m ReleaseEventAction
gmapM :: (forall d. Data d => d -> m d)
-> ReleaseEventAction -> m ReleaseEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ReleaseEventAction -> m ReleaseEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> ReleaseEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> ReleaseEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> ReleaseEventAction -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> ReleaseEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ReleaseEventAction -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ReleaseEventAction -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ReleaseEventAction -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ReleaseEventAction -> r
gmapT :: (forall b. Data b => b -> b)
-> ReleaseEventAction -> ReleaseEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> ReleaseEventAction -> ReleaseEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ReleaseEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ReleaseEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c ReleaseEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ReleaseEventAction)
dataTypeOf :: ReleaseEventAction -> DataType
$cdataTypeOf :: ReleaseEventAction -> DataType
toConstr :: ReleaseEventAction -> Constr
$ctoConstr :: ReleaseEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ReleaseEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ReleaseEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ReleaseEventAction
-> c ReleaseEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ReleaseEventAction
-> c ReleaseEventAction
$cp1Data :: Typeable ReleaseEventAction
Data)

instance NFData ReleaseEventAction where rnf :: ReleaseEventAction -> ()
rnf = ReleaseEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON ReleaseEventAction where
  parseJSON :: Value -> Parser ReleaseEventAction
parseJSON = String
-> (Text -> Parser ReleaseEventAction)
-> Value
-> Parser ReleaseEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Release event action" ((Text -> Parser ReleaseEventAction)
 -> Value -> Parser ReleaseEventAction)
-> (Text -> Parser ReleaseEventAction)
-> Value
-> Parser ReleaseEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"published"     -> ReleaseEventAction -> Parser ReleaseEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure ReleaseEventAction
ReleasePublishedAction
        Text
_               -> ReleaseEventAction -> Parser ReleaseEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> ReleaseEventAction
ReleaseActionOther Text
t)

-- | Triggered when a release is published.

-- See <https://developer.github.com/v3/activity/events/types/#releaseevent>.

data ReleaseEvent = ReleaseEvent
    { ReleaseEvent -> ReleaseEventAction
evReleaseEventAction      :: !ReleaseEventAction      -- ^ Currently only releasePublished.

    , ReleaseEvent -> HookRelease
evReleaseEventPayload     :: !HookRelease
    , ReleaseEvent -> HookRepository
evReleaseEventRepo        :: !HookRepository
    , ReleaseEvent -> HookUser
evReleaseEventSender      :: !HookUser
    }
    deriving (ReleaseEvent -> ReleaseEvent -> Bool
(ReleaseEvent -> ReleaseEvent -> Bool)
-> (ReleaseEvent -> ReleaseEvent -> Bool) -> Eq ReleaseEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ReleaseEvent -> ReleaseEvent -> Bool
$c/= :: ReleaseEvent -> ReleaseEvent -> Bool
== :: ReleaseEvent -> ReleaseEvent -> Bool
$c== :: ReleaseEvent -> ReleaseEvent -> Bool
Eq, Int -> ReleaseEvent -> ShowS
[ReleaseEvent] -> ShowS
ReleaseEvent -> String
(Int -> ReleaseEvent -> ShowS)
-> (ReleaseEvent -> String)
-> ([ReleaseEvent] -> ShowS)
-> Show ReleaseEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ReleaseEvent] -> ShowS
$cshowList :: [ReleaseEvent] -> ShowS
show :: ReleaseEvent -> String
$cshow :: ReleaseEvent -> String
showsPrec :: Int -> ReleaseEvent -> ShowS
$cshowsPrec :: Int -> ReleaseEvent -> ShowS
Show, Typeable, Typeable ReleaseEvent
DataType
Constr
Typeable ReleaseEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> ReleaseEvent -> c ReleaseEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c ReleaseEvent)
-> (ReleaseEvent -> Constr)
-> (ReleaseEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c ReleaseEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c ReleaseEvent))
-> ((forall b. Data b => b -> b) -> ReleaseEvent -> ReleaseEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> ReleaseEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> ReleaseEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> ReleaseEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> ReleaseEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> ReleaseEvent -> m ReleaseEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> ReleaseEvent -> m ReleaseEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> ReleaseEvent -> m ReleaseEvent)
-> Data ReleaseEvent
ReleaseEvent -> DataType
ReleaseEvent -> Constr
(forall b. Data b => b -> b) -> ReleaseEvent -> ReleaseEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ReleaseEvent -> c ReleaseEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ReleaseEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> ReleaseEvent -> u
forall u. (forall d. Data d => d -> u) -> ReleaseEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ReleaseEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ReleaseEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> ReleaseEvent -> m ReleaseEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ReleaseEvent -> m ReleaseEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ReleaseEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ReleaseEvent -> c ReleaseEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ReleaseEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ReleaseEvent)
$cReleaseEvent :: Constr
$tReleaseEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> ReleaseEvent -> m ReleaseEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ReleaseEvent -> m ReleaseEvent
gmapMp :: (forall d. Data d => d -> m d) -> ReleaseEvent -> m ReleaseEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ReleaseEvent -> m ReleaseEvent
gmapM :: (forall d. Data d => d -> m d) -> ReleaseEvent -> m ReleaseEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> ReleaseEvent -> m ReleaseEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> ReleaseEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> ReleaseEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> ReleaseEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> ReleaseEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ReleaseEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ReleaseEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ReleaseEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ReleaseEvent -> r
gmapT :: (forall b. Data b => b -> b) -> ReleaseEvent -> ReleaseEvent
$cgmapT :: (forall b. Data b => b -> b) -> ReleaseEvent -> ReleaseEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ReleaseEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ReleaseEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c ReleaseEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ReleaseEvent)
dataTypeOf :: ReleaseEvent -> DataType
$cdataTypeOf :: ReleaseEvent -> DataType
toConstr :: ReleaseEvent -> Constr
$ctoConstr :: ReleaseEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ReleaseEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ReleaseEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ReleaseEvent -> c ReleaseEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ReleaseEvent -> c ReleaseEvent
$cp1Data :: Typeable ReleaseEvent
Data, (forall x. ReleaseEvent -> Rep ReleaseEvent x)
-> (forall x. Rep ReleaseEvent x -> ReleaseEvent)
-> Generic ReleaseEvent
forall x. Rep ReleaseEvent x -> ReleaseEvent
forall x. ReleaseEvent -> Rep ReleaseEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ReleaseEvent x -> ReleaseEvent
$cfrom :: forall x. ReleaseEvent -> Rep ReleaseEvent x
Generic)

instance EventHasSender ReleaseEvent where senderOfEvent :: ReleaseEvent -> HookUser
senderOfEvent = ReleaseEvent -> HookUser
evReleaseEventSender
instance EventHasRepo ReleaseEvent where repoForEvent :: ReleaseEvent -> HookRepository
repoForEvent = ReleaseEvent -> HookRepository
evReleaseEventRepo
instance NFData ReleaseEvent where rnf :: ReleaseEvent -> ()
rnf = ReleaseEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data RepositoryEventAction
  -- | Decodes from "created"

  = RepositoryCreatedAction
  -- | Decodes from "deleted"

  | RepositoryDeletedAction
  -- | Decodes from "archived"

  | RepositoryArchivedAction
  -- | Decodes from "unarchived"

  | RepositoryUnarchivedAction
  -- | Decodes from "publicized"

  | RepositoryPublicizedAction
  -- | Decodes from "privatized"

  | RepositoryPrivatizedAction
  -- | The result of decoding an unknown repository event action type

  | RepositoryActionOther !Text
  deriving (RepositoryEventAction -> RepositoryEventAction -> Bool
(RepositoryEventAction -> RepositoryEventAction -> Bool)
-> (RepositoryEventAction -> RepositoryEventAction -> Bool)
-> Eq RepositoryEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RepositoryEventAction -> RepositoryEventAction -> Bool
$c/= :: RepositoryEventAction -> RepositoryEventAction -> Bool
== :: RepositoryEventAction -> RepositoryEventAction -> Bool
$c== :: RepositoryEventAction -> RepositoryEventAction -> Bool
Eq, Eq RepositoryEventAction
Eq RepositoryEventAction
-> (RepositoryEventAction -> RepositoryEventAction -> Ordering)
-> (RepositoryEventAction -> RepositoryEventAction -> Bool)
-> (RepositoryEventAction -> RepositoryEventAction -> Bool)
-> (RepositoryEventAction -> RepositoryEventAction -> Bool)
-> (RepositoryEventAction -> RepositoryEventAction -> Bool)
-> (RepositoryEventAction
    -> RepositoryEventAction -> RepositoryEventAction)
-> (RepositoryEventAction
    -> RepositoryEventAction -> RepositoryEventAction)
-> Ord RepositoryEventAction
RepositoryEventAction -> RepositoryEventAction -> Bool
RepositoryEventAction -> RepositoryEventAction -> Ordering
RepositoryEventAction
-> RepositoryEventAction -> RepositoryEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: RepositoryEventAction
-> RepositoryEventAction -> RepositoryEventAction
$cmin :: RepositoryEventAction
-> RepositoryEventAction -> RepositoryEventAction
max :: RepositoryEventAction
-> RepositoryEventAction -> RepositoryEventAction
$cmax :: RepositoryEventAction
-> RepositoryEventAction -> RepositoryEventAction
>= :: RepositoryEventAction -> RepositoryEventAction -> Bool
$c>= :: RepositoryEventAction -> RepositoryEventAction -> Bool
> :: RepositoryEventAction -> RepositoryEventAction -> Bool
$c> :: RepositoryEventAction -> RepositoryEventAction -> Bool
<= :: RepositoryEventAction -> RepositoryEventAction -> Bool
$c<= :: RepositoryEventAction -> RepositoryEventAction -> Bool
< :: RepositoryEventAction -> RepositoryEventAction -> Bool
$c< :: RepositoryEventAction -> RepositoryEventAction -> Bool
compare :: RepositoryEventAction -> RepositoryEventAction -> Ordering
$ccompare :: RepositoryEventAction -> RepositoryEventAction -> Ordering
$cp1Ord :: Eq RepositoryEventAction
Ord, Int -> RepositoryEventAction -> ShowS
[RepositoryEventAction] -> ShowS
RepositoryEventAction -> String
(Int -> RepositoryEventAction -> ShowS)
-> (RepositoryEventAction -> String)
-> ([RepositoryEventAction] -> ShowS)
-> Show RepositoryEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [RepositoryEventAction] -> ShowS
$cshowList :: [RepositoryEventAction] -> ShowS
show :: RepositoryEventAction -> String
$cshow :: RepositoryEventAction -> String
showsPrec :: Int -> RepositoryEventAction -> ShowS
$cshowsPrec :: Int -> RepositoryEventAction -> ShowS
Show, (forall x. RepositoryEventAction -> Rep RepositoryEventAction x)
-> (forall x. Rep RepositoryEventAction x -> RepositoryEventAction)
-> Generic RepositoryEventAction
forall x. Rep RepositoryEventAction x -> RepositoryEventAction
forall x. RepositoryEventAction -> Rep RepositoryEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep RepositoryEventAction x -> RepositoryEventAction
$cfrom :: forall x. RepositoryEventAction -> Rep RepositoryEventAction x
Generic, Typeable, Typeable RepositoryEventAction
DataType
Constr
Typeable RepositoryEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> RepositoryEventAction
    -> c RepositoryEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c RepositoryEventAction)
-> (RepositoryEventAction -> Constr)
-> (RepositoryEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c RepositoryEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c RepositoryEventAction))
-> ((forall b. Data b => b -> b)
    -> RepositoryEventAction -> RepositoryEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> RepositoryEventAction
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> RepositoryEventAction
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> RepositoryEventAction -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> RepositoryEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> RepositoryEventAction -> m RepositoryEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> RepositoryEventAction -> m RepositoryEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> RepositoryEventAction -> m RepositoryEventAction)
-> Data RepositoryEventAction
RepositoryEventAction -> DataType
RepositoryEventAction -> Constr
(forall b. Data b => b -> b)
-> RepositoryEventAction -> RepositoryEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> RepositoryEventAction
-> c RepositoryEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c RepositoryEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> RepositoryEventAction -> u
forall u.
(forall d. Data d => d -> u) -> RepositoryEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> RepositoryEventAction -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> RepositoryEventAction -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> RepositoryEventAction -> m RepositoryEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> RepositoryEventAction -> m RepositoryEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c RepositoryEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> RepositoryEventAction
-> c RepositoryEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c RepositoryEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c RepositoryEventAction)
$cRepositoryActionOther :: Constr
$cRepositoryPrivatizedAction :: Constr
$cRepositoryPublicizedAction :: Constr
$cRepositoryUnarchivedAction :: Constr
$cRepositoryArchivedAction :: Constr
$cRepositoryDeletedAction :: Constr
$cRepositoryCreatedAction :: Constr
$tRepositoryEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> RepositoryEventAction -> m RepositoryEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> RepositoryEventAction -> m RepositoryEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> RepositoryEventAction -> m RepositoryEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> RepositoryEventAction -> m RepositoryEventAction
gmapM :: (forall d. Data d => d -> m d)
-> RepositoryEventAction -> m RepositoryEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> RepositoryEventAction -> m RepositoryEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> RepositoryEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> RepositoryEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> RepositoryEventAction -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> RepositoryEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> RepositoryEventAction -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> RepositoryEventAction -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> RepositoryEventAction -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> RepositoryEventAction -> r
gmapT :: (forall b. Data b => b -> b)
-> RepositoryEventAction -> RepositoryEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> RepositoryEventAction -> RepositoryEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c RepositoryEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c RepositoryEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c RepositoryEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c RepositoryEventAction)
dataTypeOf :: RepositoryEventAction -> DataType
$cdataTypeOf :: RepositoryEventAction -> DataType
toConstr :: RepositoryEventAction -> Constr
$ctoConstr :: RepositoryEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c RepositoryEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c RepositoryEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> RepositoryEventAction
-> c RepositoryEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> RepositoryEventAction
-> c RepositoryEventAction
$cp1Data :: Typeable RepositoryEventAction
Data)

instance NFData RepositoryEventAction where rnf :: RepositoryEventAction -> ()
rnf = RepositoryEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON RepositoryEventAction where
  parseJSON :: Value -> Parser RepositoryEventAction
parseJSON = String
-> (Text -> Parser RepositoryEventAction)
-> Value
-> Parser RepositoryEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Repository event action" ((Text -> Parser RepositoryEventAction)
 -> Value -> Parser RepositoryEventAction)
-> (Text -> Parser RepositoryEventAction)
-> Value
-> Parser RepositoryEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"created"       -> RepositoryEventAction -> Parser RepositoryEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure RepositoryEventAction
RepositoryCreatedAction
        Text
"deleted"       -> RepositoryEventAction -> Parser RepositoryEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure RepositoryEventAction
RepositoryDeletedAction
        Text
"archived"      -> RepositoryEventAction -> Parser RepositoryEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure RepositoryEventAction
RepositoryArchivedAction
        Text
"unarchived"    -> RepositoryEventAction -> Parser RepositoryEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure RepositoryEventAction
RepositoryUnarchivedAction
        Text
"publicized"    -> RepositoryEventAction -> Parser RepositoryEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure RepositoryEventAction
RepositoryPublicizedAction
        Text
"privatized"    -> RepositoryEventAction -> Parser RepositoryEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure RepositoryEventAction
RepositoryPrivatizedAction
        Text
_               -> RepositoryEventAction -> Parser RepositoryEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> RepositoryEventAction
RepositoryActionOther Text
t)

-- | Triggered when a repository is created, archived, unarchived, made public, or made private.

-- Organization hooks are also triggered when a repository is deleted.

-- Events of this type are not visible in timelines. These events are only used to trigger hooks.

-- See <https://developer.github.com/v3/activity/events/types/#repositoryevent>.

data RepositoryEvent = RepositoryEvent
    { RepositoryEvent -> RepositoryEventAction
evRepositoryAction        :: !RepositoryEventAction
    , RepositoryEvent -> HookRepository
evRepositoryTarget        :: !HookRepository
    , RepositoryEvent -> Maybe HookOrganization
evRepositoryOrg           :: !(Maybe HookOrganization)
    , RepositoryEvent -> HookUser
evRepositorySender        :: !HookUser
    }
    deriving (RepositoryEvent -> RepositoryEvent -> Bool
(RepositoryEvent -> RepositoryEvent -> Bool)
-> (RepositoryEvent -> RepositoryEvent -> Bool)
-> Eq RepositoryEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RepositoryEvent -> RepositoryEvent -> Bool
$c/= :: RepositoryEvent -> RepositoryEvent -> Bool
== :: RepositoryEvent -> RepositoryEvent -> Bool
$c== :: RepositoryEvent -> RepositoryEvent -> Bool
Eq, Int -> RepositoryEvent -> ShowS
[RepositoryEvent] -> ShowS
RepositoryEvent -> String
(Int -> RepositoryEvent -> ShowS)
-> (RepositoryEvent -> String)
-> ([RepositoryEvent] -> ShowS)
-> Show RepositoryEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [RepositoryEvent] -> ShowS
$cshowList :: [RepositoryEvent] -> ShowS
show :: RepositoryEvent -> String
$cshow :: RepositoryEvent -> String
showsPrec :: Int -> RepositoryEvent -> ShowS
$cshowsPrec :: Int -> RepositoryEvent -> ShowS
Show, Typeable, Typeable RepositoryEvent
DataType
Constr
Typeable RepositoryEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> RepositoryEvent -> c RepositoryEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c RepositoryEvent)
-> (RepositoryEvent -> Constr)
-> (RepositoryEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c RepositoryEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c RepositoryEvent))
-> ((forall b. Data b => b -> b)
    -> RepositoryEvent -> RepositoryEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> RepositoryEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> RepositoryEvent -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> RepositoryEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> RepositoryEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> RepositoryEvent -> m RepositoryEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> RepositoryEvent -> m RepositoryEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> RepositoryEvent -> m RepositoryEvent)
-> Data RepositoryEvent
RepositoryEvent -> DataType
RepositoryEvent -> Constr
(forall b. Data b => b -> b) -> RepositoryEvent -> RepositoryEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> RepositoryEvent -> c RepositoryEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c RepositoryEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> RepositoryEvent -> u
forall u. (forall d. Data d => d -> u) -> RepositoryEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> RepositoryEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> RepositoryEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> RepositoryEvent -> m RepositoryEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> RepositoryEvent -> m RepositoryEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c RepositoryEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> RepositoryEvent -> c RepositoryEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c RepositoryEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c RepositoryEvent)
$cRepositoryEvent :: Constr
$tRepositoryEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> RepositoryEvent -> m RepositoryEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> RepositoryEvent -> m RepositoryEvent
gmapMp :: (forall d. Data d => d -> m d)
-> RepositoryEvent -> m RepositoryEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> RepositoryEvent -> m RepositoryEvent
gmapM :: (forall d. Data d => d -> m d)
-> RepositoryEvent -> m RepositoryEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> RepositoryEvent -> m RepositoryEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> RepositoryEvent -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> RepositoryEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> RepositoryEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> RepositoryEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> RepositoryEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> RepositoryEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> RepositoryEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> RepositoryEvent -> r
gmapT :: (forall b. Data b => b -> b) -> RepositoryEvent -> RepositoryEvent
$cgmapT :: (forall b. Data b => b -> b) -> RepositoryEvent -> RepositoryEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c RepositoryEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c RepositoryEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c RepositoryEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c RepositoryEvent)
dataTypeOf :: RepositoryEvent -> DataType
$cdataTypeOf :: RepositoryEvent -> DataType
toConstr :: RepositoryEvent -> Constr
$ctoConstr :: RepositoryEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c RepositoryEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c RepositoryEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> RepositoryEvent -> c RepositoryEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> RepositoryEvent -> c RepositoryEvent
$cp1Data :: Typeable RepositoryEvent
Data, (forall x. RepositoryEvent -> Rep RepositoryEvent x)
-> (forall x. Rep RepositoryEvent x -> RepositoryEvent)
-> Generic RepositoryEvent
forall x. Rep RepositoryEvent x -> RepositoryEvent
forall x. RepositoryEvent -> Rep RepositoryEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep RepositoryEvent x -> RepositoryEvent
$cfrom :: forall x. RepositoryEvent -> Rep RepositoryEvent x
Generic)

instance EventHasSender RepositoryEvent where senderOfEvent :: RepositoryEvent -> HookUser
senderOfEvent = RepositoryEvent -> HookUser
evRepositorySender
instance EventHasRepo RepositoryEvent where repoForEvent :: RepositoryEvent -> HookRepository
repoForEvent = RepositoryEvent -> HookRepository
evRepositoryTarget
instance NFData RepositoryEvent where rnf :: RepositoryEvent -> ()
rnf = RepositoryEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data StatusEventState
  -- | Decodes from "pending"

  = StatusPendingState
  -- | Decodes from "success"

  | StatusSuccessState
  -- | Decodes from "failure"

  | StatusFailureState
  -- | Decodes from "error"

  | StatusErrorState
  -- | The result of decoding an unknown status event state

  | StatusStateOther !Text
  deriving (StatusEventState -> StatusEventState -> Bool
(StatusEventState -> StatusEventState -> Bool)
-> (StatusEventState -> StatusEventState -> Bool)
-> Eq StatusEventState
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StatusEventState -> StatusEventState -> Bool
$c/= :: StatusEventState -> StatusEventState -> Bool
== :: StatusEventState -> StatusEventState -> Bool
$c== :: StatusEventState -> StatusEventState -> Bool
Eq, Eq StatusEventState
Eq StatusEventState
-> (StatusEventState -> StatusEventState -> Ordering)
-> (StatusEventState -> StatusEventState -> Bool)
-> (StatusEventState -> StatusEventState -> Bool)
-> (StatusEventState -> StatusEventState -> Bool)
-> (StatusEventState -> StatusEventState -> Bool)
-> (StatusEventState -> StatusEventState -> StatusEventState)
-> (StatusEventState -> StatusEventState -> StatusEventState)
-> Ord StatusEventState
StatusEventState -> StatusEventState -> Bool
StatusEventState -> StatusEventState -> Ordering
StatusEventState -> StatusEventState -> StatusEventState
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: StatusEventState -> StatusEventState -> StatusEventState
$cmin :: StatusEventState -> StatusEventState -> StatusEventState
max :: StatusEventState -> StatusEventState -> StatusEventState
$cmax :: StatusEventState -> StatusEventState -> StatusEventState
>= :: StatusEventState -> StatusEventState -> Bool
$c>= :: StatusEventState -> StatusEventState -> Bool
> :: StatusEventState -> StatusEventState -> Bool
$c> :: StatusEventState -> StatusEventState -> Bool
<= :: StatusEventState -> StatusEventState -> Bool
$c<= :: StatusEventState -> StatusEventState -> Bool
< :: StatusEventState -> StatusEventState -> Bool
$c< :: StatusEventState -> StatusEventState -> Bool
compare :: StatusEventState -> StatusEventState -> Ordering
$ccompare :: StatusEventState -> StatusEventState -> Ordering
$cp1Ord :: Eq StatusEventState
Ord, Int -> StatusEventState -> ShowS
[StatusEventState] -> ShowS
StatusEventState -> String
(Int -> StatusEventState -> ShowS)
-> (StatusEventState -> String)
-> ([StatusEventState] -> ShowS)
-> Show StatusEventState
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StatusEventState] -> ShowS
$cshowList :: [StatusEventState] -> ShowS
show :: StatusEventState -> String
$cshow :: StatusEventState -> String
showsPrec :: Int -> StatusEventState -> ShowS
$cshowsPrec :: Int -> StatusEventState -> ShowS
Show, (forall x. StatusEventState -> Rep StatusEventState x)
-> (forall x. Rep StatusEventState x -> StatusEventState)
-> Generic StatusEventState
forall x. Rep StatusEventState x -> StatusEventState
forall x. StatusEventState -> Rep StatusEventState x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StatusEventState x -> StatusEventState
$cfrom :: forall x. StatusEventState -> Rep StatusEventState x
Generic, Typeable, Typeable StatusEventState
DataType
Constr
Typeable StatusEventState
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> StatusEventState -> c StatusEventState)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c StatusEventState)
-> (StatusEventState -> Constr)
-> (StatusEventState -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c StatusEventState))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c StatusEventState))
-> ((forall b. Data b => b -> b)
    -> StatusEventState -> StatusEventState)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> StatusEventState -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> StatusEventState -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> StatusEventState -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> StatusEventState -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> StatusEventState -> m StatusEventState)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> StatusEventState -> m StatusEventState)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> StatusEventState -> m StatusEventState)
-> Data StatusEventState
StatusEventState -> DataType
StatusEventState -> Constr
(forall b. Data b => b -> b)
-> StatusEventState -> StatusEventState
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> StatusEventState -> c StatusEventState
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c StatusEventState
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> StatusEventState -> u
forall u. (forall d. Data d => d -> u) -> StatusEventState -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> StatusEventState -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> StatusEventState -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> StatusEventState -> m StatusEventState
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> StatusEventState -> m StatusEventState
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c StatusEventState
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> StatusEventState -> c StatusEventState
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c StatusEventState)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c StatusEventState)
$cStatusStateOther :: Constr
$cStatusErrorState :: Constr
$cStatusFailureState :: Constr
$cStatusSuccessState :: Constr
$cStatusPendingState :: Constr
$tStatusEventState :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> StatusEventState -> m StatusEventState
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> StatusEventState -> m StatusEventState
gmapMp :: (forall d. Data d => d -> m d)
-> StatusEventState -> m StatusEventState
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> StatusEventState -> m StatusEventState
gmapM :: (forall d. Data d => d -> m d)
-> StatusEventState -> m StatusEventState
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> StatusEventState -> m StatusEventState
gmapQi :: Int -> (forall d. Data d => d -> u) -> StatusEventState -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> StatusEventState -> u
gmapQ :: (forall d. Data d => d -> u) -> StatusEventState -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> StatusEventState -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> StatusEventState -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> StatusEventState -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> StatusEventState -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> StatusEventState -> r
gmapT :: (forall b. Data b => b -> b)
-> StatusEventState -> StatusEventState
$cgmapT :: (forall b. Data b => b -> b)
-> StatusEventState -> StatusEventState
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c StatusEventState)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c StatusEventState)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c StatusEventState)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c StatusEventState)
dataTypeOf :: StatusEventState -> DataType
$cdataTypeOf :: StatusEventState -> DataType
toConstr :: StatusEventState -> Constr
$ctoConstr :: StatusEventState -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c StatusEventState
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c StatusEventState
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> StatusEventState -> c StatusEventState
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> StatusEventState -> c StatusEventState
$cp1Data :: Typeable StatusEventState
Data)

instance NFData StatusEventState where rnf :: StatusEventState -> ()
rnf = StatusEventState -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON StatusEventState where
  parseJSON :: Value -> Parser StatusEventState
parseJSON = String
-> (Text -> Parser StatusEventState)
-> Value
-> Parser StatusEventState
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Status event state" ((Text -> Parser StatusEventState)
 -> Value -> Parser StatusEventState)
-> (Text -> Parser StatusEventState)
-> Value
-> Parser StatusEventState
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"pending"       -> StatusEventState -> Parser StatusEventState
forall (f :: * -> *) a. Applicative f => a -> f a
pure StatusEventState
StatusPendingState
        Text
"success"       -> StatusEventState -> Parser StatusEventState
forall (f :: * -> *) a. Applicative f => a -> f a
pure StatusEventState
StatusSuccessState
        Text
"failure"       -> StatusEventState -> Parser StatusEventState
forall (f :: * -> *) a. Applicative f => a -> f a
pure StatusEventState
StatusFailureState
        Text
"error"         -> StatusEventState -> Parser StatusEventState
forall (f :: * -> *) a. Applicative f => a -> f a
pure StatusEventState
StatusErrorState
        Text
_               -> StatusEventState -> Parser StatusEventState
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> StatusEventState
StatusStateOther Text
t)

-- | Triggered when the status of a Git commit changes.

-- Events of this type are not visible in timelines. These events are only used to trigger hooks.

-- See <https://developer.github.com/v3/activity/events/types/#statusevent>.

data StatusEvent = StatusEvent
    { StatusEvent -> Int
evStatusId                :: !Int
    , StatusEvent -> Text
evStatusCommitSha         :: !Text
    , StatusEvent -> Text
evStatusCommitName        :: !Text
    , StatusEvent -> Maybe URL
evStatusTargetUrl         :: !(Maybe URL)
    , StatusEvent -> Text
evStatusContext           :: !Text
    , StatusEvent -> Maybe Text
evStatusDescription       :: !(Maybe Text)
    , StatusEvent -> StatusEventState
evStatusState             :: !StatusEventState
    , StatusEvent -> HookCommit
evStatusCommit            :: !HookCommit
    -- FIXME: Branches are missing here

    , StatusEvent -> UTCTime
evStatusCreatedAt         :: !UTCTime
    , StatusEvent -> UTCTime
evStatusUpdatedAt         :: !UTCTime
    , StatusEvent -> HookRepository
evStatusRepo              :: !HookRepository
    , StatusEvent -> HookUser
evStatusSender            :: !HookUser
    }
    deriving (StatusEvent -> StatusEvent -> Bool
(StatusEvent -> StatusEvent -> Bool)
-> (StatusEvent -> StatusEvent -> Bool) -> Eq StatusEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StatusEvent -> StatusEvent -> Bool
$c/= :: StatusEvent -> StatusEvent -> Bool
== :: StatusEvent -> StatusEvent -> Bool
$c== :: StatusEvent -> StatusEvent -> Bool
Eq, Int -> StatusEvent -> ShowS
[StatusEvent] -> ShowS
StatusEvent -> String
(Int -> StatusEvent -> ShowS)
-> (StatusEvent -> String)
-> ([StatusEvent] -> ShowS)
-> Show StatusEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StatusEvent] -> ShowS
$cshowList :: [StatusEvent] -> ShowS
show :: StatusEvent -> String
$cshow :: StatusEvent -> String
showsPrec :: Int -> StatusEvent -> ShowS
$cshowsPrec :: Int -> StatusEvent -> ShowS
Show, Typeable, Typeable StatusEvent
DataType
Constr
Typeable StatusEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> StatusEvent -> c StatusEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c StatusEvent)
-> (StatusEvent -> Constr)
-> (StatusEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c StatusEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c StatusEvent))
-> ((forall b. Data b => b -> b) -> StatusEvent -> StatusEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> StatusEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> StatusEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> StatusEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> StatusEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> StatusEvent -> m StatusEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> StatusEvent -> m StatusEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> StatusEvent -> m StatusEvent)
-> Data StatusEvent
StatusEvent -> DataType
StatusEvent -> Constr
(forall b. Data b => b -> b) -> StatusEvent -> StatusEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> StatusEvent -> c StatusEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c StatusEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> StatusEvent -> u
forall u. (forall d. Data d => d -> u) -> StatusEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> StatusEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> StatusEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> StatusEvent -> m StatusEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> StatusEvent -> m StatusEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c StatusEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> StatusEvent -> c StatusEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c StatusEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c StatusEvent)
$cStatusEvent :: Constr
$tStatusEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> StatusEvent -> m StatusEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> StatusEvent -> m StatusEvent
gmapMp :: (forall d. Data d => d -> m d) -> StatusEvent -> m StatusEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> StatusEvent -> m StatusEvent
gmapM :: (forall d. Data d => d -> m d) -> StatusEvent -> m StatusEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> StatusEvent -> m StatusEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> StatusEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> StatusEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> StatusEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> StatusEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> StatusEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> StatusEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> StatusEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> StatusEvent -> r
gmapT :: (forall b. Data b => b -> b) -> StatusEvent -> StatusEvent
$cgmapT :: (forall b. Data b => b -> b) -> StatusEvent -> StatusEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c StatusEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c StatusEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c StatusEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c StatusEvent)
dataTypeOf :: StatusEvent -> DataType
$cdataTypeOf :: StatusEvent -> DataType
toConstr :: StatusEvent -> Constr
$ctoConstr :: StatusEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c StatusEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c StatusEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> StatusEvent -> c StatusEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> StatusEvent -> c StatusEvent
$cp1Data :: Typeable StatusEvent
Data, (forall x. StatusEvent -> Rep StatusEvent x)
-> (forall x. Rep StatusEvent x -> StatusEvent)
-> Generic StatusEvent
forall x. Rep StatusEvent x -> StatusEvent
forall x. StatusEvent -> Rep StatusEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StatusEvent x -> StatusEvent
$cfrom :: forall x. StatusEvent -> Rep StatusEvent x
Generic)

instance EventHasSender StatusEvent where senderOfEvent :: StatusEvent -> HookUser
senderOfEvent = StatusEvent -> HookUser
evStatusSender
instance EventHasRepo StatusEvent where repoForEvent :: StatusEvent -> HookRepository
repoForEvent = StatusEvent -> HookRepository
evStatusRepo
instance NFData StatusEvent where rnf :: StatusEvent -> ()
rnf = StatusEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data TeamEventAction
  -- | Decodes from "created"

  = TeamCreatedAction
  -- | Decodes from "deleted"

  | TeamDeletedAction
  -- | Decodes from "edited"

  | TeamEditedAction
  -- | Decodes from "added_to_repository"

  | TeamAddedToRepoAction
  -- | Decodes from "removed_from_repository"

  | TeamRemovedFromRepoAction
  -- | The result of decoding an unknown team event action type

  | TeamActionOther !Text
  deriving (TeamEventAction -> TeamEventAction -> Bool
(TeamEventAction -> TeamEventAction -> Bool)
-> (TeamEventAction -> TeamEventAction -> Bool)
-> Eq TeamEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TeamEventAction -> TeamEventAction -> Bool
$c/= :: TeamEventAction -> TeamEventAction -> Bool
== :: TeamEventAction -> TeamEventAction -> Bool
$c== :: TeamEventAction -> TeamEventAction -> Bool
Eq, Eq TeamEventAction
Eq TeamEventAction
-> (TeamEventAction -> TeamEventAction -> Ordering)
-> (TeamEventAction -> TeamEventAction -> Bool)
-> (TeamEventAction -> TeamEventAction -> Bool)
-> (TeamEventAction -> TeamEventAction -> Bool)
-> (TeamEventAction -> TeamEventAction -> Bool)
-> (TeamEventAction -> TeamEventAction -> TeamEventAction)
-> (TeamEventAction -> TeamEventAction -> TeamEventAction)
-> Ord TeamEventAction
TeamEventAction -> TeamEventAction -> Bool
TeamEventAction -> TeamEventAction -> Ordering
TeamEventAction -> TeamEventAction -> TeamEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: TeamEventAction -> TeamEventAction -> TeamEventAction
$cmin :: TeamEventAction -> TeamEventAction -> TeamEventAction
max :: TeamEventAction -> TeamEventAction -> TeamEventAction
$cmax :: TeamEventAction -> TeamEventAction -> TeamEventAction
>= :: TeamEventAction -> TeamEventAction -> Bool
$c>= :: TeamEventAction -> TeamEventAction -> Bool
> :: TeamEventAction -> TeamEventAction -> Bool
$c> :: TeamEventAction -> TeamEventAction -> Bool
<= :: TeamEventAction -> TeamEventAction -> Bool
$c<= :: TeamEventAction -> TeamEventAction -> Bool
< :: TeamEventAction -> TeamEventAction -> Bool
$c< :: TeamEventAction -> TeamEventAction -> Bool
compare :: TeamEventAction -> TeamEventAction -> Ordering
$ccompare :: TeamEventAction -> TeamEventAction -> Ordering
$cp1Ord :: Eq TeamEventAction
Ord, Int -> TeamEventAction -> ShowS
[TeamEventAction] -> ShowS
TeamEventAction -> String
(Int -> TeamEventAction -> ShowS)
-> (TeamEventAction -> String)
-> ([TeamEventAction] -> ShowS)
-> Show TeamEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TeamEventAction] -> ShowS
$cshowList :: [TeamEventAction] -> ShowS
show :: TeamEventAction -> String
$cshow :: TeamEventAction -> String
showsPrec :: Int -> TeamEventAction -> ShowS
$cshowsPrec :: Int -> TeamEventAction -> ShowS
Show, (forall x. TeamEventAction -> Rep TeamEventAction x)
-> (forall x. Rep TeamEventAction x -> TeamEventAction)
-> Generic TeamEventAction
forall x. Rep TeamEventAction x -> TeamEventAction
forall x. TeamEventAction -> Rep TeamEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TeamEventAction x -> TeamEventAction
$cfrom :: forall x. TeamEventAction -> Rep TeamEventAction x
Generic, Typeable, Typeable TeamEventAction
DataType
Constr
Typeable TeamEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> TeamEventAction -> c TeamEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c TeamEventAction)
-> (TeamEventAction -> Constr)
-> (TeamEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c TeamEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c TeamEventAction))
-> ((forall b. Data b => b -> b)
    -> TeamEventAction -> TeamEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> TeamEventAction -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> TeamEventAction -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> TeamEventAction -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> TeamEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> TeamEventAction -> m TeamEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> TeamEventAction -> m TeamEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> TeamEventAction -> m TeamEventAction)
-> Data TeamEventAction
TeamEventAction -> DataType
TeamEventAction -> Constr
(forall b. Data b => b -> b) -> TeamEventAction -> TeamEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> TeamEventAction -> c TeamEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c TeamEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> TeamEventAction -> u
forall u. (forall d. Data d => d -> u) -> TeamEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> TeamEventAction -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> TeamEventAction -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> TeamEventAction -> m TeamEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> TeamEventAction -> m TeamEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c TeamEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> TeamEventAction -> c TeamEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c TeamEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c TeamEventAction)
$cTeamActionOther :: Constr
$cTeamRemovedFromRepoAction :: Constr
$cTeamAddedToRepoAction :: Constr
$cTeamEditedAction :: Constr
$cTeamDeletedAction :: Constr
$cTeamCreatedAction :: Constr
$tTeamEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> TeamEventAction -> m TeamEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> TeamEventAction -> m TeamEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> TeamEventAction -> m TeamEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> TeamEventAction -> m TeamEventAction
gmapM :: (forall d. Data d => d -> m d)
-> TeamEventAction -> m TeamEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> TeamEventAction -> m TeamEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> TeamEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> TeamEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> TeamEventAction -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> TeamEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> TeamEventAction -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> TeamEventAction -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> TeamEventAction -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> TeamEventAction -> r
gmapT :: (forall b. Data b => b -> b) -> TeamEventAction -> TeamEventAction
$cgmapT :: (forall b. Data b => b -> b) -> TeamEventAction -> TeamEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c TeamEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c TeamEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c TeamEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c TeamEventAction)
dataTypeOf :: TeamEventAction -> DataType
$cdataTypeOf :: TeamEventAction -> DataType
toConstr :: TeamEventAction -> Constr
$ctoConstr :: TeamEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c TeamEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c TeamEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> TeamEventAction -> c TeamEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> TeamEventAction -> c TeamEventAction
$cp1Data :: Typeable TeamEventAction
Data)

instance NFData TeamEventAction where rnf :: TeamEventAction -> ()
rnf = TeamEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON TeamEventAction where
  parseJSON :: Value -> Parser TeamEventAction
parseJSON = String
-> (Text -> Parser TeamEventAction)
-> Value
-> Parser TeamEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Team event action" ((Text -> Parser TeamEventAction)
 -> Value -> Parser TeamEventAction)
-> (Text -> Parser TeamEventAction)
-> Value
-> Parser TeamEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"created"       -> TeamEventAction -> Parser TeamEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure TeamEventAction
TeamCreatedAction
        Text
"deleted"       -> TeamEventAction -> Parser TeamEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure TeamEventAction
TeamDeletedAction
        Text
"edited"        -> TeamEventAction -> Parser TeamEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure TeamEventAction
TeamEditedAction
        Text
"added_to_repository"     -> TeamEventAction -> Parser TeamEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure TeamEventAction
TeamAddedToRepoAction
        Text
"removed_from_repository" -> TeamEventAction -> Parser TeamEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure TeamEventAction
TeamRemovedFromRepoAction
        Text
_               -> TeamEventAction -> Parser TeamEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> TeamEventAction
TeamActionOther Text
t)

-- | Triggered when an organization's team is created or deleted.

-- Events of this type are not visible in timelines. These events are only used to trigger organization hooks.

-- See <https://developer.github.com/v3/activity/events/types/#teamevent>.

data TeamEvent = TeamEvent
    { TeamEvent -> TeamEventAction
evTeamAction              :: !TeamEventAction
    , TeamEvent -> HookTeam
evTeamTarget              :: !HookTeam
    , TeamEvent -> HookOrganization
evTeamOrganization        :: !HookOrganization
    , TeamEvent -> HookUser
evTeamSender              :: !HookUser
    }
    deriving (TeamEvent -> TeamEvent -> Bool
(TeamEvent -> TeamEvent -> Bool)
-> (TeamEvent -> TeamEvent -> Bool) -> Eq TeamEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TeamEvent -> TeamEvent -> Bool
$c/= :: TeamEvent -> TeamEvent -> Bool
== :: TeamEvent -> TeamEvent -> Bool
$c== :: TeamEvent -> TeamEvent -> Bool
Eq, Int -> TeamEvent -> ShowS
[TeamEvent] -> ShowS
TeamEvent -> String
(Int -> TeamEvent -> ShowS)
-> (TeamEvent -> String)
-> ([TeamEvent] -> ShowS)
-> Show TeamEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TeamEvent] -> ShowS
$cshowList :: [TeamEvent] -> ShowS
show :: TeamEvent -> String
$cshow :: TeamEvent -> String
showsPrec :: Int -> TeamEvent -> ShowS
$cshowsPrec :: Int -> TeamEvent -> ShowS
Show, Typeable, Typeable TeamEvent
DataType
Constr
Typeable TeamEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> TeamEvent -> c TeamEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c TeamEvent)
-> (TeamEvent -> Constr)
-> (TeamEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c TeamEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TeamEvent))
-> ((forall b. Data b => b -> b) -> TeamEvent -> TeamEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> TeamEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> TeamEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> TeamEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> TeamEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> TeamEvent -> m TeamEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> TeamEvent -> m TeamEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> TeamEvent -> m TeamEvent)
-> Data TeamEvent
TeamEvent -> DataType
TeamEvent -> Constr
(forall b. Data b => b -> b) -> TeamEvent -> TeamEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> TeamEvent -> c TeamEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c TeamEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> TeamEvent -> u
forall u. (forall d. Data d => d -> u) -> TeamEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> TeamEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> TeamEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> TeamEvent -> m TeamEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> TeamEvent -> m TeamEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c TeamEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> TeamEvent -> c TeamEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c TeamEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TeamEvent)
$cTeamEvent :: Constr
$tTeamEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> TeamEvent -> m TeamEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> TeamEvent -> m TeamEvent
gmapMp :: (forall d. Data d => d -> m d) -> TeamEvent -> m TeamEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> TeamEvent -> m TeamEvent
gmapM :: (forall d. Data d => d -> m d) -> TeamEvent -> m TeamEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> TeamEvent -> m TeamEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> TeamEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> TeamEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> TeamEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> TeamEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> TeamEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> TeamEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> TeamEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> TeamEvent -> r
gmapT :: (forall b. Data b => b -> b) -> TeamEvent -> TeamEvent
$cgmapT :: (forall b. Data b => b -> b) -> TeamEvent -> TeamEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TeamEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TeamEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c TeamEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c TeamEvent)
dataTypeOf :: TeamEvent -> DataType
$cdataTypeOf :: TeamEvent -> DataType
toConstr :: TeamEvent -> Constr
$ctoConstr :: TeamEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c TeamEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c TeamEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> TeamEvent -> c TeamEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> TeamEvent -> c TeamEvent
$cp1Data :: Typeable TeamEvent
Data, (forall x. TeamEvent -> Rep TeamEvent x)
-> (forall x. Rep TeamEvent x -> TeamEvent) -> Generic TeamEvent
forall x. Rep TeamEvent x -> TeamEvent
forall x. TeamEvent -> Rep TeamEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TeamEvent x -> TeamEvent
$cfrom :: forall x. TeamEvent -> Rep TeamEvent x
Generic)

instance EventHasSender TeamEvent where senderOfEvent :: TeamEvent -> HookUser
senderOfEvent = TeamEvent -> HookUser
evTeamSender
instance NFData TeamEvent where rnf :: TeamEvent -> ()
rnf = TeamEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


-- | Triggered when a repository is added to a team.

-- Events of this type are not visible in timelines. These events are only used to trigger hooks.

-- See <https://developer.github.com/v3/activity/events/types/#teamaddevent>.

data TeamAddEvent = TeamAddEvent
    { TeamAddEvent -> Maybe HookTeam
evTeamAddTarget           :: !(Maybe HookTeam) -- ^ Older events may not include this in the payload.

    , TeamAddEvent -> HookRepository
evTeamAddRepo             :: !HookRepository
    , TeamAddEvent -> HookOrganization
evTeamAddOrg              :: !HookOrganization
    , TeamAddEvent -> HookUser
evTeamAddSender           :: !HookUser
    }
    deriving (TeamAddEvent -> TeamAddEvent -> Bool
(TeamAddEvent -> TeamAddEvent -> Bool)
-> (TeamAddEvent -> TeamAddEvent -> Bool) -> Eq TeamAddEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TeamAddEvent -> TeamAddEvent -> Bool
$c/= :: TeamAddEvent -> TeamAddEvent -> Bool
== :: TeamAddEvent -> TeamAddEvent -> Bool
$c== :: TeamAddEvent -> TeamAddEvent -> Bool
Eq, Int -> TeamAddEvent -> ShowS
[TeamAddEvent] -> ShowS
TeamAddEvent -> String
(Int -> TeamAddEvent -> ShowS)
-> (TeamAddEvent -> String)
-> ([TeamAddEvent] -> ShowS)
-> Show TeamAddEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TeamAddEvent] -> ShowS
$cshowList :: [TeamAddEvent] -> ShowS
show :: TeamAddEvent -> String
$cshow :: TeamAddEvent -> String
showsPrec :: Int -> TeamAddEvent -> ShowS
$cshowsPrec :: Int -> TeamAddEvent -> ShowS
Show, Typeable, Typeable TeamAddEvent
DataType
Constr
Typeable TeamAddEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> TeamAddEvent -> c TeamAddEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c TeamAddEvent)
-> (TeamAddEvent -> Constr)
-> (TeamAddEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c TeamAddEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c TeamAddEvent))
-> ((forall b. Data b => b -> b) -> TeamAddEvent -> TeamAddEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> TeamAddEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> TeamAddEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> TeamAddEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> TeamAddEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> TeamAddEvent -> m TeamAddEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> TeamAddEvent -> m TeamAddEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> TeamAddEvent -> m TeamAddEvent)
-> Data TeamAddEvent
TeamAddEvent -> DataType
TeamAddEvent -> Constr
(forall b. Data b => b -> b) -> TeamAddEvent -> TeamAddEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> TeamAddEvent -> c TeamAddEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c TeamAddEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> TeamAddEvent -> u
forall u. (forall d. Data d => d -> u) -> TeamAddEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> TeamAddEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> TeamAddEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> TeamAddEvent -> m TeamAddEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> TeamAddEvent -> m TeamAddEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c TeamAddEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> TeamAddEvent -> c TeamAddEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c TeamAddEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c TeamAddEvent)
$cTeamAddEvent :: Constr
$tTeamAddEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> TeamAddEvent -> m TeamAddEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> TeamAddEvent -> m TeamAddEvent
gmapMp :: (forall d. Data d => d -> m d) -> TeamAddEvent -> m TeamAddEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> TeamAddEvent -> m TeamAddEvent
gmapM :: (forall d. Data d => d -> m d) -> TeamAddEvent -> m TeamAddEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> TeamAddEvent -> m TeamAddEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> TeamAddEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> TeamAddEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> TeamAddEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> TeamAddEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> TeamAddEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> TeamAddEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> TeamAddEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> TeamAddEvent -> r
gmapT :: (forall b. Data b => b -> b) -> TeamAddEvent -> TeamAddEvent
$cgmapT :: (forall b. Data b => b -> b) -> TeamAddEvent -> TeamAddEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c TeamAddEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c TeamAddEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c TeamAddEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c TeamAddEvent)
dataTypeOf :: TeamAddEvent -> DataType
$cdataTypeOf :: TeamAddEvent -> DataType
toConstr :: TeamAddEvent -> Constr
$ctoConstr :: TeamAddEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c TeamAddEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c TeamAddEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> TeamAddEvent -> c TeamAddEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> TeamAddEvent -> c TeamAddEvent
$cp1Data :: Typeable TeamAddEvent
Data, (forall x. TeamAddEvent -> Rep TeamAddEvent x)
-> (forall x. Rep TeamAddEvent x -> TeamAddEvent)
-> Generic TeamAddEvent
forall x. Rep TeamAddEvent x -> TeamAddEvent
forall x. TeamAddEvent -> Rep TeamAddEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TeamAddEvent x -> TeamAddEvent
$cfrom :: forall x. TeamAddEvent -> Rep TeamAddEvent x
Generic)

instance EventHasSender TeamAddEvent where senderOfEvent :: TeamAddEvent -> HookUser
senderOfEvent = TeamAddEvent -> HookUser
evTeamAddSender
instance EventHasRepo TeamAddEvent where repoForEvent :: TeamAddEvent -> HookRepository
repoForEvent = TeamAddEvent -> HookRepository
evTeamAddRepo
instance NFData TeamAddEvent where rnf :: TeamAddEvent -> ()
rnf = TeamAddEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


data WatchEventAction
  -- | Decodes from "started"

  = WatchStartedAction
  -- | The result of decoding an unknown watch event action type

  | WatchActionOther !Text
  deriving (WatchEventAction -> WatchEventAction -> Bool
(WatchEventAction -> WatchEventAction -> Bool)
-> (WatchEventAction -> WatchEventAction -> Bool)
-> Eq WatchEventAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WatchEventAction -> WatchEventAction -> Bool
$c/= :: WatchEventAction -> WatchEventAction -> Bool
== :: WatchEventAction -> WatchEventAction -> Bool
$c== :: WatchEventAction -> WatchEventAction -> Bool
Eq, Eq WatchEventAction
Eq WatchEventAction
-> (WatchEventAction -> WatchEventAction -> Ordering)
-> (WatchEventAction -> WatchEventAction -> Bool)
-> (WatchEventAction -> WatchEventAction -> Bool)
-> (WatchEventAction -> WatchEventAction -> Bool)
-> (WatchEventAction -> WatchEventAction -> Bool)
-> (WatchEventAction -> WatchEventAction -> WatchEventAction)
-> (WatchEventAction -> WatchEventAction -> WatchEventAction)
-> Ord WatchEventAction
WatchEventAction -> WatchEventAction -> Bool
WatchEventAction -> WatchEventAction -> Ordering
WatchEventAction -> WatchEventAction -> WatchEventAction
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: WatchEventAction -> WatchEventAction -> WatchEventAction
$cmin :: WatchEventAction -> WatchEventAction -> WatchEventAction
max :: WatchEventAction -> WatchEventAction -> WatchEventAction
$cmax :: WatchEventAction -> WatchEventAction -> WatchEventAction
>= :: WatchEventAction -> WatchEventAction -> Bool
$c>= :: WatchEventAction -> WatchEventAction -> Bool
> :: WatchEventAction -> WatchEventAction -> Bool
$c> :: WatchEventAction -> WatchEventAction -> Bool
<= :: WatchEventAction -> WatchEventAction -> Bool
$c<= :: WatchEventAction -> WatchEventAction -> Bool
< :: WatchEventAction -> WatchEventAction -> Bool
$c< :: WatchEventAction -> WatchEventAction -> Bool
compare :: WatchEventAction -> WatchEventAction -> Ordering
$ccompare :: WatchEventAction -> WatchEventAction -> Ordering
$cp1Ord :: Eq WatchEventAction
Ord, Int -> WatchEventAction -> ShowS
[WatchEventAction] -> ShowS
WatchEventAction -> String
(Int -> WatchEventAction -> ShowS)
-> (WatchEventAction -> String)
-> ([WatchEventAction] -> ShowS)
-> Show WatchEventAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WatchEventAction] -> ShowS
$cshowList :: [WatchEventAction] -> ShowS
show :: WatchEventAction -> String
$cshow :: WatchEventAction -> String
showsPrec :: Int -> WatchEventAction -> ShowS
$cshowsPrec :: Int -> WatchEventAction -> ShowS
Show, (forall x. WatchEventAction -> Rep WatchEventAction x)
-> (forall x. Rep WatchEventAction x -> WatchEventAction)
-> Generic WatchEventAction
forall x. Rep WatchEventAction x -> WatchEventAction
forall x. WatchEventAction -> Rep WatchEventAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep WatchEventAction x -> WatchEventAction
$cfrom :: forall x. WatchEventAction -> Rep WatchEventAction x
Generic, Typeable, Typeable WatchEventAction
DataType
Constr
Typeable WatchEventAction
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> WatchEventAction -> c WatchEventAction)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c WatchEventAction)
-> (WatchEventAction -> Constr)
-> (WatchEventAction -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c WatchEventAction))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c WatchEventAction))
-> ((forall b. Data b => b -> b)
    -> WatchEventAction -> WatchEventAction)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> WatchEventAction -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> WatchEventAction -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> WatchEventAction -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> WatchEventAction -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> WatchEventAction -> m WatchEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> WatchEventAction -> m WatchEventAction)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> WatchEventAction -> m WatchEventAction)
-> Data WatchEventAction
WatchEventAction -> DataType
WatchEventAction -> Constr
(forall b. Data b => b -> b)
-> WatchEventAction -> WatchEventAction
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> WatchEventAction -> c WatchEventAction
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c WatchEventAction
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> WatchEventAction -> u
forall u. (forall d. Data d => d -> u) -> WatchEventAction -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> WatchEventAction -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> WatchEventAction -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> WatchEventAction -> m WatchEventAction
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> WatchEventAction -> m WatchEventAction
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c WatchEventAction
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> WatchEventAction -> c WatchEventAction
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c WatchEventAction)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c WatchEventAction)
$cWatchActionOther :: Constr
$cWatchStartedAction :: Constr
$tWatchEventAction :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> WatchEventAction -> m WatchEventAction
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> WatchEventAction -> m WatchEventAction
gmapMp :: (forall d. Data d => d -> m d)
-> WatchEventAction -> m WatchEventAction
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> WatchEventAction -> m WatchEventAction
gmapM :: (forall d. Data d => d -> m d)
-> WatchEventAction -> m WatchEventAction
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> WatchEventAction -> m WatchEventAction
gmapQi :: Int -> (forall d. Data d => d -> u) -> WatchEventAction -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> WatchEventAction -> u
gmapQ :: (forall d. Data d => d -> u) -> WatchEventAction -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> WatchEventAction -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> WatchEventAction -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> WatchEventAction -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> WatchEventAction -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> WatchEventAction -> r
gmapT :: (forall b. Data b => b -> b)
-> WatchEventAction -> WatchEventAction
$cgmapT :: (forall b. Data b => b -> b)
-> WatchEventAction -> WatchEventAction
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c WatchEventAction)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c WatchEventAction)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c WatchEventAction)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c WatchEventAction)
dataTypeOf :: WatchEventAction -> DataType
$cdataTypeOf :: WatchEventAction -> DataType
toConstr :: WatchEventAction -> Constr
$ctoConstr :: WatchEventAction -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c WatchEventAction
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c WatchEventAction
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> WatchEventAction -> c WatchEventAction
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> WatchEventAction -> c WatchEventAction
$cp1Data :: Typeable WatchEventAction
Data)

instance NFData WatchEventAction where rnf :: WatchEventAction -> ()
rnf = WatchEventAction -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf

instance FromJSON WatchEventAction where
  parseJSON :: Value -> Parser WatchEventAction
parseJSON = String
-> (Text -> Parser WatchEventAction)
-> Value
-> Parser WatchEventAction
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"Watch event action" ((Text -> Parser WatchEventAction)
 -> Value -> Parser WatchEventAction)
-> (Text -> Parser WatchEventAction)
-> Value
-> Parser WatchEventAction
forall a b. (a -> b) -> a -> b
$ \Text
t ->
    case Text
t of
        Text
"started"       -> WatchEventAction -> Parser WatchEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure WatchEventAction
WatchStartedAction
        Text
_               -> WatchEventAction -> Parser WatchEventAction
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> WatchEventAction
WatchActionOther Text
t)

-- | The WatchEvent is related to starring a repository, not watching.

-- The event’s actor is the user who starred a repository, and the event’s

-- repository is the repository that was starred.

-- See <https://developer.github.com/v3/activity/events/types/#watchevent>.

data WatchEvent = WatchEvent
    { WatchEvent -> WatchEventAction
evWatchAction             :: !WatchEventAction
    , WatchEvent -> HookRepository
evWatchRepo               :: !HookRepository
    , WatchEvent -> HookUser
evWatchSender             :: !HookUser
    }
    deriving (WatchEvent -> WatchEvent -> Bool
(WatchEvent -> WatchEvent -> Bool)
-> (WatchEvent -> WatchEvent -> Bool) -> Eq WatchEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WatchEvent -> WatchEvent -> Bool
$c/= :: WatchEvent -> WatchEvent -> Bool
== :: WatchEvent -> WatchEvent -> Bool
$c== :: WatchEvent -> WatchEvent -> Bool
Eq, Int -> WatchEvent -> ShowS
[WatchEvent] -> ShowS
WatchEvent -> String
(Int -> WatchEvent -> ShowS)
-> (WatchEvent -> String)
-> ([WatchEvent] -> ShowS)
-> Show WatchEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WatchEvent] -> ShowS
$cshowList :: [WatchEvent] -> ShowS
show :: WatchEvent -> String
$cshow :: WatchEvent -> String
showsPrec :: Int -> WatchEvent -> ShowS
$cshowsPrec :: Int -> WatchEvent -> ShowS
Show, Typeable, Typeable WatchEvent
DataType
Constr
Typeable WatchEvent
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> WatchEvent -> c WatchEvent)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c WatchEvent)
-> (WatchEvent -> Constr)
-> (WatchEvent -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c WatchEvent))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c WatchEvent))
-> ((forall b. Data b => b -> b) -> WatchEvent -> WatchEvent)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> WatchEvent -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> WatchEvent -> r)
-> (forall u. (forall d. Data d => d -> u) -> WatchEvent -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> WatchEvent -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> WatchEvent -> m WatchEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> WatchEvent -> m WatchEvent)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> WatchEvent -> m WatchEvent)
-> Data WatchEvent
WatchEvent -> DataType
WatchEvent -> Constr
(forall b. Data b => b -> b) -> WatchEvent -> WatchEvent
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> WatchEvent -> c WatchEvent
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c WatchEvent
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> WatchEvent -> u
forall u. (forall d. Data d => d -> u) -> WatchEvent -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> WatchEvent -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> WatchEvent -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> WatchEvent -> m WatchEvent
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> WatchEvent -> m WatchEvent
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c WatchEvent
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> WatchEvent -> c WatchEvent
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c WatchEvent)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c WatchEvent)
$cWatchEvent :: Constr
$tWatchEvent :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> WatchEvent -> m WatchEvent
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> WatchEvent -> m WatchEvent
gmapMp :: (forall d. Data d => d -> m d) -> WatchEvent -> m WatchEvent
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> WatchEvent -> m WatchEvent
gmapM :: (forall d. Data d => d -> m d) -> WatchEvent -> m WatchEvent
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> WatchEvent -> m WatchEvent
gmapQi :: Int -> (forall d. Data d => d -> u) -> WatchEvent -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> WatchEvent -> u
gmapQ :: (forall d. Data d => d -> u) -> WatchEvent -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> WatchEvent -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> WatchEvent -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> WatchEvent -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> WatchEvent -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> WatchEvent -> r
gmapT :: (forall b. Data b => b -> b) -> WatchEvent -> WatchEvent
$cgmapT :: (forall b. Data b => b -> b) -> WatchEvent -> WatchEvent
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c WatchEvent)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c WatchEvent)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c WatchEvent)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c WatchEvent)
dataTypeOf :: WatchEvent -> DataType
$cdataTypeOf :: WatchEvent -> DataType
toConstr :: WatchEvent -> Constr
$ctoConstr :: WatchEvent -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c WatchEvent
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c WatchEvent
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> WatchEvent -> c WatchEvent
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> WatchEvent -> c WatchEvent
$cp1Data :: Typeable WatchEvent
Data, (forall x. WatchEvent -> Rep WatchEvent x)
-> (forall x. Rep WatchEvent x -> WatchEvent) -> Generic WatchEvent
forall x. Rep WatchEvent x -> WatchEvent
forall x. WatchEvent -> Rep WatchEvent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep WatchEvent x -> WatchEvent
$cfrom :: forall x. WatchEvent -> Rep WatchEvent x
Generic)

instance EventHasSender WatchEvent where senderOfEvent :: WatchEvent -> HookUser
senderOfEvent = WatchEvent -> HookUser
evWatchSender
instance EventHasRepo WatchEvent where repoForEvent :: WatchEvent -> HookRepository
repoForEvent = WatchEvent -> HookRepository
evWatchRepo
instance NFData WatchEvent where rnf :: WatchEvent -> ()
rnf = WatchEvent -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
genericRnf


-- Aeson Instances


instance FromJSON CheckSuiteEvent where
    parseJSON :: Value -> Parser CheckSuiteEvent
parseJSON = String
-> (Object -> Parser CheckSuiteEvent)
-> Value
-> Parser CheckSuiteEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"CheckSuiteEvent" ((Object -> Parser CheckSuiteEvent)
 -> Value -> Parser CheckSuiteEvent)
-> (Object -> Parser CheckSuiteEvent)
-> Value
-> Parser CheckSuiteEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> CheckSuiteEventAction
-> HookCheckSuite
-> HookRepository
-> Maybe HookOrganization
-> HookUser
-> Maybe HookChecksInstallation
-> CheckSuiteEvent
CheckSuiteEvent
        (CheckSuiteEventAction
 -> HookCheckSuite
 -> HookRepository
 -> Maybe HookOrganization
 -> HookUser
 -> Maybe HookChecksInstallation
 -> CheckSuiteEvent)
-> Parser CheckSuiteEventAction
-> Parser
     (HookCheckSuite
      -> HookRepository
      -> Maybe HookOrganization
      -> HookUser
      -> Maybe HookChecksInstallation
      -> CheckSuiteEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser CheckSuiteEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (HookCheckSuite
   -> HookRepository
   -> Maybe HookOrganization
   -> HookUser
   -> Maybe HookChecksInstallation
   -> CheckSuiteEvent)
-> Parser HookCheckSuite
-> Parser
     (HookRepository
      -> Maybe HookOrganization
      -> HookUser
      -> Maybe HookChecksInstallation
      -> CheckSuiteEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookCheckSuite
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"check_suite"
        Parser
  (HookRepository
   -> Maybe HookOrganization
   -> HookUser
   -> Maybe HookChecksInstallation
   -> CheckSuiteEvent)
-> Parser HookRepository
-> Parser
     (Maybe HookOrganization
      -> HookUser -> Maybe HookChecksInstallation -> CheckSuiteEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser
  (Maybe HookOrganization
   -> HookUser -> Maybe HookChecksInstallation -> CheckSuiteEvent)
-> Parser (Maybe HookOrganization)
-> Parser
     (HookUser -> Maybe HookChecksInstallation -> CheckSuiteEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe HookOrganization)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"organization"
        Parser
  (HookUser -> Maybe HookChecksInstallation -> CheckSuiteEvent)
-> Parser HookUser
-> Parser (Maybe HookChecksInstallation -> CheckSuiteEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"
        Parser (Maybe HookChecksInstallation -> CheckSuiteEvent)
-> Parser (Maybe HookChecksInstallation) -> Parser CheckSuiteEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe HookChecksInstallation)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"installation"

instance FromJSON CheckRunEvent where
    parseJSON :: Value -> Parser CheckRunEvent
parseJSON = String
-> (Object -> Parser CheckRunEvent)
-> Value
-> Parser CheckRunEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"CheckRunEvent" ((Object -> Parser CheckRunEvent) -> Value -> Parser CheckRunEvent)
-> (Object -> Parser CheckRunEvent)
-> Value
-> Parser CheckRunEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> CheckRunEventAction
-> HookCheckRun
-> Maybe HookCheckRunRequestedAction
-> HookRepository
-> Maybe HookOrganization
-> HookUser
-> Maybe HookChecksInstallation
-> CheckRunEvent
CheckRunEvent
        (CheckRunEventAction
 -> HookCheckRun
 -> Maybe HookCheckRunRequestedAction
 -> HookRepository
 -> Maybe HookOrganization
 -> HookUser
 -> Maybe HookChecksInstallation
 -> CheckRunEvent)
-> Parser CheckRunEventAction
-> Parser
     (HookCheckRun
      -> Maybe HookCheckRunRequestedAction
      -> HookRepository
      -> Maybe HookOrganization
      -> HookUser
      -> Maybe HookChecksInstallation
      -> CheckRunEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser CheckRunEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (HookCheckRun
   -> Maybe HookCheckRunRequestedAction
   -> HookRepository
   -> Maybe HookOrganization
   -> HookUser
   -> Maybe HookChecksInstallation
   -> CheckRunEvent)
-> Parser HookCheckRun
-> Parser
     (Maybe HookCheckRunRequestedAction
      -> HookRepository
      -> Maybe HookOrganization
      -> HookUser
      -> Maybe HookChecksInstallation
      -> CheckRunEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookCheckRun
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"check_run"
        Parser
  (Maybe HookCheckRunRequestedAction
   -> HookRepository
   -> Maybe HookOrganization
   -> HookUser
   -> Maybe HookChecksInstallation
   -> CheckRunEvent)
-> Parser (Maybe HookCheckRunRequestedAction)
-> Parser
     (HookRepository
      -> Maybe HookOrganization
      -> HookUser
      -> Maybe HookChecksInstallation
      -> CheckRunEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe HookCheckRunRequestedAction)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"requested_action"
        Parser
  (HookRepository
   -> Maybe HookOrganization
   -> HookUser
   -> Maybe HookChecksInstallation
   -> CheckRunEvent)
-> Parser HookRepository
-> Parser
     (Maybe HookOrganization
      -> HookUser -> Maybe HookChecksInstallation -> CheckRunEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser
  (Maybe HookOrganization
   -> HookUser -> Maybe HookChecksInstallation -> CheckRunEvent)
-> Parser (Maybe HookOrganization)
-> Parser
     (HookUser -> Maybe HookChecksInstallation -> CheckRunEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe HookOrganization)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"organization"
        Parser (HookUser -> Maybe HookChecksInstallation -> CheckRunEvent)
-> Parser HookUser
-> Parser (Maybe HookChecksInstallation -> CheckRunEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"
        Parser (Maybe HookChecksInstallation -> CheckRunEvent)
-> Parser (Maybe HookChecksInstallation) -> Parser CheckRunEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe HookChecksInstallation)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"installation"

instance FromJSON CommitCommentEvent where
    parseJSON :: Value -> Parser CommitCommentEvent
parseJSON = String
-> (Object -> Parser CommitCommentEvent)
-> Value
-> Parser CommitCommentEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"CommitCommentEvent" ((Object -> Parser CommitCommentEvent)
 -> Value -> Parser CommitCommentEvent)
-> (Object -> Parser CommitCommentEvent)
-> Value
-> Parser CommitCommentEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> CommitCommentEventAction
-> HookCommitComment
-> HookRepository
-> HookUser
-> CommitCommentEvent
CommitCommentEvent
        (CommitCommentEventAction
 -> HookCommitComment
 -> HookRepository
 -> HookUser
 -> CommitCommentEvent)
-> Parser CommitCommentEventAction
-> Parser
     (HookCommitComment
      -> HookRepository -> HookUser -> CommitCommentEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser CommitCommentEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (HookCommitComment
   -> HookRepository -> HookUser -> CommitCommentEvent)
-> Parser HookCommitComment
-> Parser (HookRepository -> HookUser -> CommitCommentEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookCommitComment
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"comment"
        Parser (HookRepository -> HookUser -> CommitCommentEvent)
-> Parser HookRepository -> Parser (HookUser -> CommitCommentEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> CommitCommentEvent)
-> Parser HookUser -> Parser CommitCommentEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON CreateEvent where
    parseJSON :: Value -> Parser CreateEvent
parseJSON = String
-> (Object -> Parser CreateEvent) -> Value -> Parser CreateEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"CreateEvent" ((Object -> Parser CreateEvent) -> Value -> Parser CreateEvent)
-> (Object -> Parser CreateEvent) -> Value -> Parser CreateEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> Text
-> Text
-> Text
-> Text
-> OwnerType
-> HookRepository
-> HookUser
-> CreateEvent
CreateEvent
        (Text
 -> Text
 -> Text
 -> Text
 -> OwnerType
 -> HookRepository
 -> HookUser
 -> CreateEvent)
-> Parser Text
-> Parser
     (Text
      -> Text
      -> Text
      -> OwnerType
      -> HookRepository
      -> HookUser
      -> CreateEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"ref"
        Parser
  (Text
   -> Text
   -> Text
   -> OwnerType
   -> HookRepository
   -> HookUser
   -> CreateEvent)
-> Parser Text
-> Parser
     (Text
      -> Text -> OwnerType -> HookRepository -> HookUser -> CreateEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"ref_type"
        Parser
  (Text
   -> Text -> OwnerType -> HookRepository -> HookUser -> CreateEvent)
-> Parser Text
-> Parser
     (Text -> OwnerType -> HookRepository -> HookUser -> CreateEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"master_branch"
        Parser
  (Text -> OwnerType -> HookRepository -> HookUser -> CreateEvent)
-> Parser Text
-> Parser (OwnerType -> HookRepository -> HookUser -> CreateEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"description"
        Parser (OwnerType -> HookRepository -> HookUser -> CreateEvent)
-> Parser OwnerType
-> Parser (HookRepository -> HookUser -> CreateEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser OwnerType
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"pusher_type"
        Parser (HookRepository -> HookUser -> CreateEvent)
-> Parser HookRepository -> Parser (HookUser -> CreateEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> CreateEvent)
-> Parser HookUser -> Parser CreateEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON DeleteEvent where
    parseJSON :: Value -> Parser DeleteEvent
parseJSON = String
-> (Object -> Parser DeleteEvent) -> Value -> Parser DeleteEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"DeleteEvent" ((Object -> Parser DeleteEvent) -> Value -> Parser DeleteEvent)
-> (Object -> Parser DeleteEvent) -> Value -> Parser DeleteEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> Text
-> Text -> OwnerType -> HookRepository -> HookUser -> DeleteEvent
DeleteEvent
        (Text
 -> Text -> OwnerType -> HookRepository -> HookUser -> DeleteEvent)
-> Parser Text
-> Parser
     (Text -> OwnerType -> HookRepository -> HookUser -> DeleteEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"ref"
        Parser
  (Text -> OwnerType -> HookRepository -> HookUser -> DeleteEvent)
-> Parser Text
-> Parser (OwnerType -> HookRepository -> HookUser -> DeleteEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"ref_type"
        Parser (OwnerType -> HookRepository -> HookUser -> DeleteEvent)
-> Parser OwnerType
-> Parser (HookRepository -> HookUser -> DeleteEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser OwnerType
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"pusher_type"
        Parser (HookRepository -> HookUser -> DeleteEvent)
-> Parser HookRepository -> Parser (HookUser -> DeleteEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> DeleteEvent)
-> Parser HookUser -> Parser DeleteEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON DeploymentEvent where
    parseJSON :: Value -> Parser DeploymentEvent
parseJSON = String
-> (Object -> Parser DeploymentEvent)
-> Value
-> Parser DeploymentEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"DeploymentEvent" ((Object -> Parser DeploymentEvent)
 -> Value -> Parser DeploymentEvent)
-> (Object -> Parser DeploymentEvent)
-> Value
-> Parser DeploymentEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> HookDeployment -> HookRepository -> HookUser -> DeploymentEvent
DeploymentEvent
        (HookDeployment -> HookRepository -> HookUser -> DeploymentEvent)
-> Parser HookDeployment
-> Parser (HookRepository -> HookUser -> DeploymentEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser HookDeployment
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"deployment"
        Parser (HookRepository -> HookUser -> DeploymentEvent)
-> Parser HookRepository -> Parser (HookUser -> DeploymentEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> DeploymentEvent)
-> Parser HookUser -> Parser DeploymentEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON DeploymentStatusEvent where
    parseJSON :: Value -> Parser DeploymentStatusEvent
parseJSON = String
-> (Object -> Parser DeploymentStatusEvent)
-> Value
-> Parser DeploymentStatusEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"DeploymentStatusEvent" ((Object -> Parser DeploymentStatusEvent)
 -> Value -> Parser DeploymentStatusEvent)
-> (Object -> Parser DeploymentStatusEvent)
-> Value
-> Parser DeploymentStatusEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> HookDeploymentStatus
-> HookDeployment
-> HookRepository
-> HookUser
-> DeploymentStatusEvent
DeploymentStatusEvent
        (HookDeploymentStatus
 -> HookDeployment
 -> HookRepository
 -> HookUser
 -> DeploymentStatusEvent)
-> Parser HookDeploymentStatus
-> Parser
     (HookDeployment
      -> HookRepository -> HookUser -> DeploymentStatusEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser HookDeploymentStatus
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"deployment_status"
        Parser
  (HookDeployment
   -> HookRepository -> HookUser -> DeploymentStatusEvent)
-> Parser HookDeployment
-> Parser (HookRepository -> HookUser -> DeploymentStatusEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookDeployment
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"deployment"
        Parser (HookRepository -> HookUser -> DeploymentStatusEvent)
-> Parser HookRepository
-> Parser (HookUser -> DeploymentStatusEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> DeploymentStatusEvent)
-> Parser HookUser -> Parser DeploymentStatusEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON ForkEvent where
    parseJSON :: Value -> Parser ForkEvent
parseJSON = String -> (Object -> Parser ForkEvent) -> Value -> Parser ForkEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"ForkEvent" ((Object -> Parser ForkEvent) -> Value -> Parser ForkEvent)
-> (Object -> Parser ForkEvent) -> Value -> Parser ForkEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> HookRepository -> HookRepository -> HookUser -> ForkEvent
ForkEvent
        (HookRepository -> HookRepository -> HookUser -> ForkEvent)
-> Parser HookRepository
-> Parser (HookRepository -> HookUser -> ForkEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"forkee"
        Parser (HookRepository -> HookUser -> ForkEvent)
-> Parser HookRepository -> Parser (HookUser -> ForkEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> ForkEvent)
-> Parser HookUser -> Parser ForkEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON GollumEvent where
    parseJSON :: Value -> Parser GollumEvent
parseJSON = String
-> (Object -> Parser GollumEvent) -> Value -> Parser GollumEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"GollumEvent" ((Object -> Parser GollumEvent) -> Value -> Parser GollumEvent)
-> (Object -> Parser GollumEvent) -> Value -> Parser GollumEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> Vector HookWikiPage -> HookRepository -> HookUser -> GollumEvent
GollumEvent
        (Vector HookWikiPage -> HookRepository -> HookUser -> GollumEvent)
-> Parser (Vector HookWikiPage)
-> Parser (HookRepository -> HookUser -> GollumEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Vector HookWikiPage)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"pages"
        Parser (HookRepository -> HookUser -> GollumEvent)
-> Parser HookRepository -> Parser (HookUser -> GollumEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> GollumEvent)
-> Parser HookUser -> Parser GollumEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON InstallationEvent where
    parseJSON :: Value -> Parser InstallationEvent
parseJSON = String
-> (Object -> Parser InstallationEvent)
-> Value
-> Parser InstallationEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"InstallationEvent" ((Object -> Parser InstallationEvent)
 -> Value -> Parser InstallationEvent)
-> (Object -> Parser InstallationEvent)
-> Value
-> Parser InstallationEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> InstallationEventAction
-> HookInstallation
-> Vector HookRepositorySimple
-> HookUser
-> InstallationEvent
InstallationEvent
        (InstallationEventAction
 -> HookInstallation
 -> Vector HookRepositorySimple
 -> HookUser
 -> InstallationEvent)
-> Parser InstallationEventAction
-> Parser
     (HookInstallation
      -> Vector HookRepositorySimple -> HookUser -> InstallationEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser InstallationEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (HookInstallation
   -> Vector HookRepositorySimple -> HookUser -> InstallationEvent)
-> Parser HookInstallation
-> Parser
     (Vector HookRepositorySimple -> HookUser -> InstallationEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookInstallation
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"installation"
        Parser
  (Vector HookRepositorySimple -> HookUser -> InstallationEvent)
-> Parser (Vector HookRepositorySimple)
-> Parser (HookUser -> InstallationEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe (Vector HookRepositorySimple))
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"repositories" Parser (Maybe (Vector HookRepositorySimple))
-> Vector HookRepositorySimple
-> Parser (Vector HookRepositorySimple)
forall a. Parser (Maybe a) -> a -> Parser a
.!= Vector HookRepositorySimple
forall a. Monoid a => a
mempty
        Parser (HookUser -> InstallationEvent)
-> Parser HookUser -> Parser InstallationEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON InstallationRepositoriesEvent where
    parseJSON :: Value -> Parser InstallationRepositoriesEvent
parseJSON = String
-> (Object -> Parser InstallationRepositoriesEvent)
-> Value
-> Parser InstallationRepositoriesEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"InstallationRepositoriesEvent" ((Object -> Parser InstallationRepositoriesEvent)
 -> Value -> Parser InstallationRepositoriesEvent)
-> (Object -> Parser InstallationRepositoriesEvent)
-> Value
-> Parser InstallationRepositoriesEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> InstallationRepoEventAction
-> HookInstallation
-> Text
-> Vector HookRepositorySimple
-> Vector HookRepositorySimple
-> HookUser
-> InstallationRepositoriesEvent
InstallationRepositoriesEvent
        (InstallationRepoEventAction
 -> HookInstallation
 -> Text
 -> Vector HookRepositorySimple
 -> Vector HookRepositorySimple
 -> HookUser
 -> InstallationRepositoriesEvent)
-> Parser InstallationRepoEventAction
-> Parser
     (HookInstallation
      -> Text
      -> Vector HookRepositorySimple
      -> Vector HookRepositorySimple
      -> HookUser
      -> InstallationRepositoriesEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser InstallationRepoEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (HookInstallation
   -> Text
   -> Vector HookRepositorySimple
   -> Vector HookRepositorySimple
   -> HookUser
   -> InstallationRepositoriesEvent)
-> Parser HookInstallation
-> Parser
     (Text
      -> Vector HookRepositorySimple
      -> Vector HookRepositorySimple
      -> HookUser
      -> InstallationRepositoriesEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookInstallation
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"installation"
        Parser
  (Text
   -> Vector HookRepositorySimple
   -> Vector HookRepositorySimple
   -> HookUser
   -> InstallationRepositoriesEvent)
-> Parser Text
-> Parser
     (Vector HookRepositorySimple
      -> Vector HookRepositorySimple
      -> HookUser
      -> InstallationRepositoriesEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository_selection"
        Parser
  (Vector HookRepositorySimple
   -> Vector HookRepositorySimple
   -> HookUser
   -> InstallationRepositoriesEvent)
-> Parser (Vector HookRepositorySimple)
-> Parser
     (Vector HookRepositorySimple
      -> HookUser -> InstallationRepositoriesEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Vector HookRepositorySimple)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repositories_added"
        Parser
  (Vector HookRepositorySimple
   -> HookUser -> InstallationRepositoriesEvent)
-> Parser (Vector HookRepositorySimple)
-> Parser (HookUser -> InstallationRepositoriesEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Vector HookRepositorySimple)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repositories_removed"
        Parser (HookUser -> InstallationRepositoriesEvent)
-> Parser HookUser -> Parser InstallationRepositoriesEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON IssueCommentEvent where
    parseJSON :: Value -> Parser IssueCommentEvent
parseJSON = String
-> (Object -> Parser IssueCommentEvent)
-> Value
-> Parser IssueCommentEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"IssueCommentEvent" ((Object -> Parser IssueCommentEvent)
 -> Value -> Parser IssueCommentEvent)
-> (Object -> Parser IssueCommentEvent)
-> Value
-> Parser IssueCommentEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> IssueCommentEventAction
-> HookIssue
-> HookIssueComment
-> HookRepository
-> HookUser
-> IssueCommentEvent
IssueCommentEvent
        (IssueCommentEventAction
 -> HookIssue
 -> HookIssueComment
 -> HookRepository
 -> HookUser
 -> IssueCommentEvent)
-> Parser IssueCommentEventAction
-> Parser
     (HookIssue
      -> HookIssueComment
      -> HookRepository
      -> HookUser
      -> IssueCommentEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser IssueCommentEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (HookIssue
   -> HookIssueComment
   -> HookRepository
   -> HookUser
   -> IssueCommentEvent)
-> Parser HookIssue
-> Parser
     (HookIssueComment
      -> HookRepository -> HookUser -> IssueCommentEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookIssue
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"issue"
        Parser
  (HookIssueComment
   -> HookRepository -> HookUser -> IssueCommentEvent)
-> Parser HookIssueComment
-> Parser (HookRepository -> HookUser -> IssueCommentEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookIssueComment
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"comment"
        Parser (HookRepository -> HookUser -> IssueCommentEvent)
-> Parser HookRepository -> Parser (HookUser -> IssueCommentEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> IssueCommentEvent)
-> Parser HookUser -> Parser IssueCommentEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON IssuesEvent where
    parseJSON :: Value -> Parser IssuesEvent
parseJSON = String
-> (Object -> Parser IssuesEvent) -> Value -> Parser IssuesEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"IssuesEvent" ((Object -> Parser IssuesEvent) -> Value -> Parser IssuesEvent)
-> (Object -> Parser IssuesEvent) -> Value -> Parser IssuesEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> IssuesEventAction
-> HookIssue -> HookRepository -> HookUser -> IssuesEvent
IssuesEvent
        (IssuesEventAction
 -> HookIssue -> HookRepository -> HookUser -> IssuesEvent)
-> Parser IssuesEventAction
-> Parser (HookIssue -> HookRepository -> HookUser -> IssuesEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser IssuesEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser (HookIssue -> HookRepository -> HookUser -> IssuesEvent)
-> Parser HookIssue
-> Parser (HookRepository -> HookUser -> IssuesEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookIssue
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"issue"
        Parser (HookRepository -> HookUser -> IssuesEvent)
-> Parser HookRepository -> Parser (HookUser -> IssuesEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> IssuesEvent)
-> Parser HookUser -> Parser IssuesEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON LabelEvent where
    parseJSON :: Value -> Parser LabelEvent
parseJSON = String
-> (Object -> Parser LabelEvent) -> Value -> Parser LabelEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"LabelEvent" ((Object -> Parser LabelEvent) -> Value -> Parser LabelEvent)
-> (Object -> Parser LabelEvent) -> Value -> Parser LabelEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> LabelEventAction
-> HookRepositoryLabel
-> HookRepository
-> Maybe HookOrganization
-> HookUser
-> LabelEvent
LabelEvent
        (LabelEventAction
 -> HookRepositoryLabel
 -> HookRepository
 -> Maybe HookOrganization
 -> HookUser
 -> LabelEvent)
-> Parser LabelEventAction
-> Parser
     (HookRepositoryLabel
      -> HookRepository
      -> Maybe HookOrganization
      -> HookUser
      -> LabelEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser LabelEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (HookRepositoryLabel
   -> HookRepository
   -> Maybe HookOrganization
   -> HookUser
   -> LabelEvent)
-> Parser HookRepositoryLabel
-> Parser
     (HookRepository
      -> Maybe HookOrganization -> HookUser -> LabelEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepositoryLabel
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"label"
        Parser
  (HookRepository
   -> Maybe HookOrganization -> HookUser -> LabelEvent)
-> Parser HookRepository
-> Parser (Maybe HookOrganization -> HookUser -> LabelEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (Maybe HookOrganization -> HookUser -> LabelEvent)
-> Parser (Maybe HookOrganization)
-> Parser (HookUser -> LabelEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe HookOrganization)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"organization"
        Parser (HookUser -> LabelEvent)
-> Parser HookUser -> Parser LabelEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON MarketplacePurchaseEvent where
    parseJSON :: Value -> Parser MarketplacePurchaseEvent
parseJSON = String
-> (Object -> Parser MarketplacePurchaseEvent)
-> Value
-> Parser MarketplacePurchaseEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"MarketplacePurchaseEvent" ((Object -> Parser MarketplacePurchaseEvent)
 -> Value -> Parser MarketplacePurchaseEvent)
-> (Object -> Parser MarketplacePurchaseEvent)
-> Value
-> Parser MarketplacePurchaseEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> MarketplacePurchaseEventAction
-> UTCTime
-> HookUser
-> HookMarketplacePurchase
-> Maybe HookMarketplacePurchase
-> MarketplacePurchaseEvent
MarketplacePurchaseEvent
        (MarketplacePurchaseEventAction
 -> UTCTime
 -> HookUser
 -> HookMarketplacePurchase
 -> Maybe HookMarketplacePurchase
 -> MarketplacePurchaseEvent)
-> Parser MarketplacePurchaseEventAction
-> Parser
     (UTCTime
      -> HookUser
      -> HookMarketplacePurchase
      -> Maybe HookMarketplacePurchase
      -> MarketplacePurchaseEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser MarketplacePurchaseEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (UTCTime
   -> HookUser
   -> HookMarketplacePurchase
   -> Maybe HookMarketplacePurchase
   -> MarketplacePurchaseEvent)
-> Parser UTCTime
-> Parser
     (HookUser
      -> HookMarketplacePurchase
      -> Maybe HookMarketplacePurchase
      -> MarketplacePurchaseEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (ZonedTime -> UTCTime
zonedTimeToUTC (ZonedTime -> UTCTime) -> Parser ZonedTime -> Parser UTCTime
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser ZonedTime
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"effective_date")
        Parser
  (HookUser
   -> HookMarketplacePurchase
   -> Maybe HookMarketplacePurchase
   -> MarketplacePurchaseEvent)
-> Parser HookUser
-> Parser
     (HookMarketplacePurchase
      -> Maybe HookMarketplacePurchase -> MarketplacePurchaseEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"
        Parser
  (HookMarketplacePurchase
   -> Maybe HookMarketplacePurchase -> MarketplacePurchaseEvent)
-> Parser HookMarketplacePurchase
-> Parser
     (Maybe HookMarketplacePurchase -> MarketplacePurchaseEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookMarketplacePurchase
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"marketplace_purchase"
        Parser (Maybe HookMarketplacePurchase -> MarketplacePurchaseEvent)
-> Parser (Maybe HookMarketplacePurchase)
-> Parser MarketplacePurchaseEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe HookMarketplacePurchase)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"previous_marketplace_purchase"

instance FromJSON MemberEvent where
    parseJSON :: Value -> Parser MemberEvent
parseJSON = String
-> (Object -> Parser MemberEvent) -> Value -> Parser MemberEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"MemberEvent" ((Object -> Parser MemberEvent) -> Value -> Parser MemberEvent)
-> (Object -> Parser MemberEvent) -> Value -> Parser MemberEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> MemberEventAction
-> HookUser -> HookRepository -> HookUser -> MemberEvent
MemberEvent
        (MemberEventAction
 -> HookUser -> HookRepository -> HookUser -> MemberEvent)
-> Parser MemberEventAction
-> Parser (HookUser -> HookRepository -> HookUser -> MemberEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser MemberEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser (HookUser -> HookRepository -> HookUser -> MemberEvent)
-> Parser HookUser
-> Parser (HookRepository -> HookUser -> MemberEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"member"
        Parser (HookRepository -> HookUser -> MemberEvent)
-> Parser HookRepository -> Parser (HookUser -> MemberEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> MemberEvent)
-> Parser HookUser -> Parser MemberEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON MembershipEvent where
    parseJSON :: Value -> Parser MembershipEvent
parseJSON = String
-> (Object -> Parser MembershipEvent)
-> Value
-> Parser MembershipEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"MembershipEvent" ((Object -> Parser MembershipEvent)
 -> Value -> Parser MembershipEvent)
-> (Object -> Parser MembershipEvent)
-> Value
-> Parser MembershipEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> MembershipEventAction
-> Text
-> HookUser
-> HookTeam
-> HookOrganization
-> HookUser
-> MembershipEvent
MembershipEvent
        (MembershipEventAction
 -> Text
 -> HookUser
 -> HookTeam
 -> HookOrganization
 -> HookUser
 -> MembershipEvent)
-> Parser MembershipEventAction
-> Parser
     (Text
      -> HookUser
      -> HookTeam
      -> HookOrganization
      -> HookUser
      -> MembershipEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser MembershipEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (Text
   -> HookUser
   -> HookTeam
   -> HookOrganization
   -> HookUser
   -> MembershipEvent)
-> Parser Text
-> Parser
     (HookUser
      -> HookTeam -> HookOrganization -> HookUser -> MembershipEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"scope"
        Parser
  (HookUser
   -> HookTeam -> HookOrganization -> HookUser -> MembershipEvent)
-> Parser HookUser
-> Parser
     (HookTeam -> HookOrganization -> HookUser -> MembershipEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"member"
        Parser
  (HookTeam -> HookOrganization -> HookUser -> MembershipEvent)
-> Parser HookTeam
-> Parser (HookOrganization -> HookUser -> MembershipEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookTeam
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"team"
        Parser (HookOrganization -> HookUser -> MembershipEvent)
-> Parser HookOrganization -> Parser (HookUser -> MembershipEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookOrganization
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"organization"
        Parser (HookUser -> MembershipEvent)
-> Parser HookUser -> Parser MembershipEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON MilestoneEvent where
    parseJSON :: Value -> Parser MilestoneEvent
parseJSON = String
-> (Object -> Parser MilestoneEvent)
-> Value
-> Parser MilestoneEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"MilestoneEvent" ((Object -> Parser MilestoneEvent)
 -> Value -> Parser MilestoneEvent)
-> (Object -> Parser MilestoneEvent)
-> Value
-> Parser MilestoneEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> MilestoneEventAction
-> HookMilestone
-> HookRepository
-> HookOrganization
-> HookUser
-> MilestoneEvent
MilestoneEvent
        (MilestoneEventAction
 -> HookMilestone
 -> HookRepository
 -> HookOrganization
 -> HookUser
 -> MilestoneEvent)
-> Parser MilestoneEventAction
-> Parser
     (HookMilestone
      -> HookRepository
      -> HookOrganization
      -> HookUser
      -> MilestoneEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser MilestoneEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (HookMilestone
   -> HookRepository
   -> HookOrganization
   -> HookUser
   -> MilestoneEvent)
-> Parser HookMilestone
-> Parser
     (HookRepository -> HookOrganization -> HookUser -> MilestoneEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookMilestone
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"milestone"
        Parser
  (HookRepository -> HookOrganization -> HookUser -> MilestoneEvent)
-> Parser HookRepository
-> Parser (HookOrganization -> HookUser -> MilestoneEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookOrganization -> HookUser -> MilestoneEvent)
-> Parser HookOrganization -> Parser (HookUser -> MilestoneEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookOrganization
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"organization"
        Parser (HookUser -> MilestoneEvent)
-> Parser HookUser -> Parser MilestoneEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON OrganizationEvent where
    parseJSON :: Value -> Parser OrganizationEvent
parseJSON = String
-> (Object -> Parser OrganizationEvent)
-> Value
-> Parser OrganizationEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"OrganizationEvent" ((Object -> Parser OrganizationEvent)
 -> Value -> Parser OrganizationEvent)
-> (Object -> Parser OrganizationEvent)
-> Value
-> Parser OrganizationEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> OrganizationEventAction
-> Maybe HookOrganizationInvitation
-> Maybe HookOrganizationMembership
-> HookOrganization
-> HookUser
-> OrganizationEvent
OrganizationEvent
        (OrganizationEventAction
 -> Maybe HookOrganizationInvitation
 -> Maybe HookOrganizationMembership
 -> HookOrganization
 -> HookUser
 -> OrganizationEvent)
-> Parser OrganizationEventAction
-> Parser
     (Maybe HookOrganizationInvitation
      -> Maybe HookOrganizationMembership
      -> HookOrganization
      -> HookUser
      -> OrganizationEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser OrganizationEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (Maybe HookOrganizationInvitation
   -> Maybe HookOrganizationMembership
   -> HookOrganization
   -> HookUser
   -> OrganizationEvent)
-> Parser (Maybe HookOrganizationInvitation)
-> Parser
     (Maybe HookOrganizationMembership
      -> HookOrganization -> HookUser -> OrganizationEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe HookOrganizationInvitation)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"invitation"
        Parser
  (Maybe HookOrganizationMembership
   -> HookOrganization -> HookUser -> OrganizationEvent)
-> Parser (Maybe HookOrganizationMembership)
-> Parser (HookOrganization -> HookUser -> OrganizationEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe HookOrganizationMembership)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"membership"
        Parser (HookOrganization -> HookUser -> OrganizationEvent)
-> Parser HookOrganization
-> Parser (HookUser -> OrganizationEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookOrganization
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"organization"
        Parser (HookUser -> OrganizationEvent)
-> Parser HookUser -> Parser OrganizationEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON OrgBlockEvent where
    parseJSON :: Value -> Parser OrgBlockEvent
parseJSON = String
-> (Object -> Parser OrgBlockEvent)
-> Value
-> Parser OrgBlockEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"OrgBlockEvent" ((Object -> Parser OrgBlockEvent) -> Value -> Parser OrgBlockEvent)
-> (Object -> Parser OrgBlockEvent)
-> Value
-> Parser OrgBlockEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> OrgBlockEventAction
-> HookUser -> HookOrganization -> HookUser -> OrgBlockEvent
OrgBlockEvent
        (OrgBlockEventAction
 -> HookUser -> HookOrganization -> HookUser -> OrgBlockEvent)
-> Parser OrgBlockEventAction
-> Parser
     (HookUser -> HookOrganization -> HookUser -> OrgBlockEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser OrgBlockEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser (HookUser -> HookOrganization -> HookUser -> OrgBlockEvent)
-> Parser HookUser
-> Parser (HookOrganization -> HookUser -> OrgBlockEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"blocked_user"
        Parser (HookOrganization -> HookUser -> OrgBlockEvent)
-> Parser HookOrganization -> Parser (HookUser -> OrgBlockEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookOrganization
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"organization"
        Parser (HookUser -> OrgBlockEvent)
-> Parser HookUser -> Parser OrgBlockEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON PageBuildEvent where
    parseJSON :: Value -> Parser PageBuildEvent
parseJSON = String
-> (Object -> Parser PageBuildEvent)
-> Value
-> Parser PageBuildEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"PageBuildEvent" ((Object -> Parser PageBuildEvent)
 -> Value -> Parser PageBuildEvent)
-> (Object -> Parser PageBuildEvent)
-> Value
-> Parser PageBuildEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> Int
-> HookPageBuildResult
-> HookRepository
-> HookUser
-> PageBuildEvent
PageBuildEvent
        (Int
 -> HookPageBuildResult
 -> HookRepository
 -> HookUser
 -> PageBuildEvent)
-> Parser Int
-> Parser
     (HookPageBuildResult
      -> HookRepository -> HookUser -> PageBuildEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"id"
        Parser
  (HookPageBuildResult
   -> HookRepository -> HookUser -> PageBuildEvent)
-> Parser HookPageBuildResult
-> Parser (HookRepository -> HookUser -> PageBuildEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookPageBuildResult
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"build"
        Parser (HookRepository -> HookUser -> PageBuildEvent)
-> Parser HookRepository -> Parser (HookUser -> PageBuildEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> PageBuildEvent)
-> Parser HookUser -> Parser PageBuildEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON ProjectCardEvent where
    parseJSON :: Value -> Parser ProjectCardEvent
parseJSON = String
-> (Object -> Parser ProjectCardEvent)
-> Value
-> Parser ProjectCardEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"ProjectCardEvent" ((Object -> Parser ProjectCardEvent)
 -> Value -> Parser ProjectCardEvent)
-> (Object -> Parser ProjectCardEvent)
-> Value
-> Parser ProjectCardEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> ProjectCardEventAction
-> HookProjectCard
-> HookRepository
-> HookOrganization
-> HookUser
-> ProjectCardEvent
ProjectCardEvent
        (ProjectCardEventAction
 -> HookProjectCard
 -> HookRepository
 -> HookOrganization
 -> HookUser
 -> ProjectCardEvent)
-> Parser ProjectCardEventAction
-> Parser
     (HookProjectCard
      -> HookRepository
      -> HookOrganization
      -> HookUser
      -> ProjectCardEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser ProjectCardEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (HookProjectCard
   -> HookRepository
   -> HookOrganization
   -> HookUser
   -> ProjectCardEvent)
-> Parser HookProjectCard
-> Parser
     (HookRepository
      -> HookOrganization -> HookUser -> ProjectCardEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookProjectCard
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"project_card"
        Parser
  (HookRepository
   -> HookOrganization -> HookUser -> ProjectCardEvent)
-> Parser HookRepository
-> Parser (HookOrganization -> HookUser -> ProjectCardEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookOrganization -> HookUser -> ProjectCardEvent)
-> Parser HookOrganization -> Parser (HookUser -> ProjectCardEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookOrganization
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"organization"
        Parser (HookUser -> ProjectCardEvent)
-> Parser HookUser -> Parser ProjectCardEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON ProjectColumnEvent where
    parseJSON :: Value -> Parser ProjectColumnEvent
parseJSON = String
-> (Object -> Parser ProjectColumnEvent)
-> Value
-> Parser ProjectColumnEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"ProjectColumnEvent" ((Object -> Parser ProjectColumnEvent)
 -> Value -> Parser ProjectColumnEvent)
-> (Object -> Parser ProjectColumnEvent)
-> Value
-> Parser ProjectColumnEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> ProjectColumnEventAction
-> HookProjectColumn
-> HookRepository
-> HookOrganization
-> HookUser
-> ProjectColumnEvent
ProjectColumnEvent
        (ProjectColumnEventAction
 -> HookProjectColumn
 -> HookRepository
 -> HookOrganization
 -> HookUser
 -> ProjectColumnEvent)
-> Parser ProjectColumnEventAction
-> Parser
     (HookProjectColumn
      -> HookRepository
      -> HookOrganization
      -> HookUser
      -> ProjectColumnEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser ProjectColumnEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (HookProjectColumn
   -> HookRepository
   -> HookOrganization
   -> HookUser
   -> ProjectColumnEvent)
-> Parser HookProjectColumn
-> Parser
     (HookRepository
      -> HookOrganization -> HookUser -> ProjectColumnEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookProjectColumn
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"project_column"
        Parser
  (HookRepository
   -> HookOrganization -> HookUser -> ProjectColumnEvent)
-> Parser HookRepository
-> Parser (HookOrganization -> HookUser -> ProjectColumnEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookOrganization -> HookUser -> ProjectColumnEvent)
-> Parser HookOrganization
-> Parser (HookUser -> ProjectColumnEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookOrganization
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"organization"
        Parser (HookUser -> ProjectColumnEvent)
-> Parser HookUser -> Parser ProjectColumnEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON ProjectEvent where
    parseJSON :: Value -> Parser ProjectEvent
parseJSON = String
-> (Object -> Parser ProjectEvent) -> Value -> Parser ProjectEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"ProjectEvent" ((Object -> Parser ProjectEvent) -> Value -> Parser ProjectEvent)
-> (Object -> Parser ProjectEvent) -> Value -> Parser ProjectEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> ProjectEventAction
-> HookProject
-> HookRepository
-> HookOrganization
-> HookUser
-> ProjectEvent
ProjectEvent
        (ProjectEventAction
 -> HookProject
 -> HookRepository
 -> HookOrganization
 -> HookUser
 -> ProjectEvent)
-> Parser ProjectEventAction
-> Parser
     (HookProject
      -> HookRepository -> HookOrganization -> HookUser -> ProjectEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser ProjectEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (HookProject
   -> HookRepository -> HookOrganization -> HookUser -> ProjectEvent)
-> Parser HookProject
-> Parser
     (HookRepository -> HookOrganization -> HookUser -> ProjectEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookProject
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"project"
        Parser
  (HookRepository -> HookOrganization -> HookUser -> ProjectEvent)
-> Parser HookRepository
-> Parser (HookOrganization -> HookUser -> ProjectEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookOrganization -> HookUser -> ProjectEvent)
-> Parser HookOrganization -> Parser (HookUser -> ProjectEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookOrganization
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"organization"
        Parser (HookUser -> ProjectEvent)
-> Parser HookUser -> Parser ProjectEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON PublicEvent where
    parseJSON :: Value -> Parser PublicEvent
parseJSON = String
-> (Object -> Parser PublicEvent) -> Value -> Parser PublicEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"PublicEvent" ((Object -> Parser PublicEvent) -> Value -> Parser PublicEvent)
-> (Object -> Parser PublicEvent) -> Value -> Parser PublicEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> HookRepository -> HookUser -> PublicEvent
PublicEvent
        (HookRepository -> HookUser -> PublicEvent)
-> Parser HookRepository -> Parser (HookUser -> PublicEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> PublicEvent)
-> Parser HookUser -> Parser PublicEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON PullRequestEvent where
    parseJSON :: Value -> Parser PullRequestEvent
parseJSON = String
-> (Object -> Parser PullRequestEvent)
-> Value
-> Parser PullRequestEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"PullRequestEvent" ((Object -> Parser PullRequestEvent)
 -> Value -> Parser PullRequestEvent)
-> (Object -> Parser PullRequestEvent)
-> Value
-> Parser PullRequestEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> PullRequestEventAction
-> Int
-> HookPullRequest
-> HookRepository
-> HookUser
-> Maybe Int
-> PullRequestEvent
PullRequestEvent
        (PullRequestEventAction
 -> Int
 -> HookPullRequest
 -> HookRepository
 -> HookUser
 -> Maybe Int
 -> PullRequestEvent)
-> Parser PullRequestEventAction
-> Parser
     (Int
      -> HookPullRequest
      -> HookRepository
      -> HookUser
      -> Maybe Int
      -> PullRequestEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser PullRequestEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (Int
   -> HookPullRequest
   -> HookRepository
   -> HookUser
   -> Maybe Int
   -> PullRequestEvent)
-> Parser Int
-> Parser
     (HookPullRequest
      -> HookRepository -> HookUser -> Maybe Int -> PullRequestEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"number"
        Parser
  (HookPullRequest
   -> HookRepository -> HookUser -> Maybe Int -> PullRequestEvent)
-> Parser HookPullRequest
-> Parser
     (HookRepository -> HookUser -> Maybe Int -> PullRequestEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookPullRequest
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"pull_request"
        Parser
  (HookRepository -> HookUser -> Maybe Int -> PullRequestEvent)
-> Parser HookRepository
-> Parser (HookUser -> Maybe Int -> PullRequestEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> Maybe Int -> PullRequestEvent)
-> Parser HookUser -> Parser (Maybe Int -> PullRequestEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"
        Parser (Maybe Int -> PullRequestEvent)
-> Parser (Maybe Int) -> Parser PullRequestEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Key -> Parser (Maybe Object)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"installation" Parser (Maybe Object)
-> (Maybe Object -> Parser (Maybe Int)) -> Parser (Maybe Int)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Parser (Maybe Int)
-> (Object -> Parser (Maybe Int))
-> Maybe Object
-> Parser (Maybe Int)
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (Maybe Int -> Parser (Maybe Int)
forall (f :: * -> *) a. Applicative f => a -> f a
pure Maybe Int
forall a. Maybe a
Nothing) (Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"id"))

instance FromJSON PullRequestReviewEvent where
    parseJSON :: Value -> Parser PullRequestReviewEvent
parseJSON = String
-> (Object -> Parser PullRequestReviewEvent)
-> Value
-> Parser PullRequestReviewEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"PullRequestReviewEvent" ((Object -> Parser PullRequestReviewEvent)
 -> Value -> Parser PullRequestReviewEvent)
-> (Object -> Parser PullRequestReviewEvent)
-> Value
-> Parser PullRequestReviewEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> PullRequestReviewEventAction
-> HookPullRequestReview
-> HookPullRequest
-> HookRepository
-> HookUser
-> PullRequestReviewEvent
PullRequestReviewEvent
        (PullRequestReviewEventAction
 -> HookPullRequestReview
 -> HookPullRequest
 -> HookRepository
 -> HookUser
 -> PullRequestReviewEvent)
-> Parser PullRequestReviewEventAction
-> Parser
     (HookPullRequestReview
      -> HookPullRequest
      -> HookRepository
      -> HookUser
      -> PullRequestReviewEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser PullRequestReviewEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (HookPullRequestReview
   -> HookPullRequest
   -> HookRepository
   -> HookUser
   -> PullRequestReviewEvent)
-> Parser HookPullRequestReview
-> Parser
     (HookPullRequest
      -> HookRepository -> HookUser -> PullRequestReviewEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookPullRequestReview
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"review"
        Parser
  (HookPullRequest
   -> HookRepository -> HookUser -> PullRequestReviewEvent)
-> Parser HookPullRequest
-> Parser (HookRepository -> HookUser -> PullRequestReviewEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookPullRequest
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"pull_request"
        Parser (HookRepository -> HookUser -> PullRequestReviewEvent)
-> Parser HookRepository
-> Parser (HookUser -> PullRequestReviewEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> PullRequestReviewEvent)
-> Parser HookUser -> Parser PullRequestReviewEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON PullRequestReviewCommentEvent where
    parseJSON :: Value -> Parser PullRequestReviewCommentEvent
parseJSON = String
-> (Object -> Parser PullRequestReviewCommentEvent)
-> Value
-> Parser PullRequestReviewCommentEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"PullRequestReviewCommentEvent" ((Object -> Parser PullRequestReviewCommentEvent)
 -> Value -> Parser PullRequestReviewCommentEvent)
-> (Object -> Parser PullRequestReviewCommentEvent)
-> Value
-> Parser PullRequestReviewCommentEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> PullRequestReviewCommentEventAction
-> HookPullRequestReviewComment
-> HookPullRequest
-> HookRepository
-> HookUser
-> PullRequestReviewCommentEvent
PullRequestReviewCommentEvent
        (PullRequestReviewCommentEventAction
 -> HookPullRequestReviewComment
 -> HookPullRequest
 -> HookRepository
 -> HookUser
 -> PullRequestReviewCommentEvent)
-> Parser PullRequestReviewCommentEventAction
-> Parser
     (HookPullRequestReviewComment
      -> HookPullRequest
      -> HookRepository
      -> HookUser
      -> PullRequestReviewCommentEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser PullRequestReviewCommentEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (HookPullRequestReviewComment
   -> HookPullRequest
   -> HookRepository
   -> HookUser
   -> PullRequestReviewCommentEvent)
-> Parser HookPullRequestReviewComment
-> Parser
     (HookPullRequest
      -> HookRepository -> HookUser -> PullRequestReviewCommentEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookPullRequestReviewComment
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"comment"
        Parser
  (HookPullRequest
   -> HookRepository -> HookUser -> PullRequestReviewCommentEvent)
-> Parser HookPullRequest
-> Parser
     (HookRepository -> HookUser -> PullRequestReviewCommentEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookPullRequest
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"pull_request"
        Parser
  (HookRepository -> HookUser -> PullRequestReviewCommentEvent)
-> Parser HookRepository
-> Parser (HookUser -> PullRequestReviewCommentEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> PullRequestReviewCommentEvent)
-> Parser HookUser -> Parser PullRequestReviewCommentEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON PushEvent where
    parseJSON :: Value -> Parser PushEvent
parseJSON = String -> (Object -> Parser PushEvent) -> Value -> Parser PushEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"PushEvent" ((Object -> Parser PushEvent) -> Value -> Parser PushEvent)
-> (Object -> Parser PushEvent) -> Value -> Parser PushEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> Text
-> Maybe Text
-> Maybe Text
-> Bool
-> Bool
-> Bool
-> Maybe Text
-> URL
-> Maybe (Vector HookCommit)
-> Maybe HookCommit
-> HookRepository
-> Maybe HookOrganization
-> HookUser
-> PushEvent
PushEvent
        (Text
 -> Maybe Text
 -> Maybe Text
 -> Bool
 -> Bool
 -> Bool
 -> Maybe Text
 -> URL
 -> Maybe (Vector HookCommit)
 -> Maybe HookCommit
 -> HookRepository
 -> Maybe HookOrganization
 -> HookUser
 -> PushEvent)
-> Parser Text
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Bool
      -> Bool
      -> Bool
      -> Maybe Text
      -> URL
      -> Maybe (Vector HookCommit)
      -> Maybe HookCommit
      -> HookRepository
      -> Maybe HookOrganization
      -> HookUser
      -> PushEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"ref"
        Parser
  (Maybe Text
   -> Maybe Text
   -> Bool
   -> Bool
   -> Bool
   -> Maybe Text
   -> URL
   -> Maybe (Vector HookCommit)
   -> Maybe HookCommit
   -> HookRepository
   -> Maybe HookOrganization
   -> HookUser
   -> PushEvent)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Bool
      -> Bool
      -> Bool
      -> Maybe Text
      -> URL
      -> Maybe (Vector HookCommit)
      -> Maybe HookCommit
      -> HookRepository
      -> Maybe HookOrganization
      -> HookUser
      -> PushEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"after"
        Parser
  (Maybe Text
   -> Bool
   -> Bool
   -> Bool
   -> Maybe Text
   -> URL
   -> Maybe (Vector HookCommit)
   -> Maybe HookCommit
   -> HookRepository
   -> Maybe HookOrganization
   -> HookUser
   -> PushEvent)
-> Parser (Maybe Text)
-> Parser
     (Bool
      -> Bool
      -> Bool
      -> Maybe Text
      -> URL
      -> Maybe (Vector HookCommit)
      -> Maybe HookCommit
      -> HookRepository
      -> Maybe HookOrganization
      -> HookUser
      -> PushEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"before"
        Parser
  (Bool
   -> Bool
   -> Bool
   -> Maybe Text
   -> URL
   -> Maybe (Vector HookCommit)
   -> Maybe HookCommit
   -> HookRepository
   -> Maybe HookOrganization
   -> HookUser
   -> PushEvent)
-> Parser Bool
-> Parser
     (Bool
      -> Bool
      -> Maybe Text
      -> URL
      -> Maybe (Vector HookCommit)
      -> Maybe HookCommit
      -> HookRepository
      -> Maybe HookOrganization
      -> HookUser
      -> PushEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"created"
        Parser
  (Bool
   -> Bool
   -> Maybe Text
   -> URL
   -> Maybe (Vector HookCommit)
   -> Maybe HookCommit
   -> HookRepository
   -> Maybe HookOrganization
   -> HookUser
   -> PushEvent)
-> Parser Bool
-> Parser
     (Bool
      -> Maybe Text
      -> URL
      -> Maybe (Vector HookCommit)
      -> Maybe HookCommit
      -> HookRepository
      -> Maybe HookOrganization
      -> HookUser
      -> PushEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"deleted"
        Parser
  (Bool
   -> Maybe Text
   -> URL
   -> Maybe (Vector HookCommit)
   -> Maybe HookCommit
   -> HookRepository
   -> Maybe HookOrganization
   -> HookUser
   -> PushEvent)
-> Parser Bool
-> Parser
     (Maybe Text
      -> URL
      -> Maybe (Vector HookCommit)
      -> Maybe HookCommit
      -> HookRepository
      -> Maybe HookOrganization
      -> HookUser
      -> PushEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"forced"
        Parser
  (Maybe Text
   -> URL
   -> Maybe (Vector HookCommit)
   -> Maybe HookCommit
   -> HookRepository
   -> Maybe HookOrganization
   -> HookUser
   -> PushEvent)
-> Parser (Maybe Text)
-> Parser
     (URL
      -> Maybe (Vector HookCommit)
      -> Maybe HookCommit
      -> HookRepository
      -> Maybe HookOrganization
      -> HookUser
      -> PushEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"base_ref"
        Parser
  (URL
   -> Maybe (Vector HookCommit)
   -> Maybe HookCommit
   -> HookRepository
   -> Maybe HookOrganization
   -> HookUser
   -> PushEvent)
-> Parser URL
-> Parser
     (Maybe (Vector HookCommit)
      -> Maybe HookCommit
      -> HookRepository
      -> Maybe HookOrganization
      -> HookUser
      -> PushEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser URL
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"compare"
        Parser
  (Maybe (Vector HookCommit)
   -> Maybe HookCommit
   -> HookRepository
   -> Maybe HookOrganization
   -> HookUser
   -> PushEvent)
-> Parser (Maybe (Vector HookCommit))
-> Parser
     (Maybe HookCommit
      -> HookRepository
      -> Maybe HookOrganization
      -> HookUser
      -> PushEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe (Vector HookCommit))
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"commits"
        Parser
  (Maybe HookCommit
   -> HookRepository
   -> Maybe HookOrganization
   -> HookUser
   -> PushEvent)
-> Parser (Maybe HookCommit)
-> Parser
     (HookRepository -> Maybe HookOrganization -> HookUser -> PushEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe HookCommit)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"head_commit"
        Parser
  (HookRepository -> Maybe HookOrganization -> HookUser -> PushEvent)
-> Parser HookRepository
-> Parser (Maybe HookOrganization -> HookUser -> PushEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (Maybe HookOrganization -> HookUser -> PushEvent)
-> Parser (Maybe HookOrganization)
-> Parser (HookUser -> PushEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe HookOrganization)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"organization"
        Parser (HookUser -> PushEvent)
-> Parser HookUser -> Parser PushEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON ReleaseEvent where
    parseJSON :: Value -> Parser ReleaseEvent
parseJSON = String
-> (Object -> Parser ReleaseEvent) -> Value -> Parser ReleaseEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"ReleaseEvent" ((Object -> Parser ReleaseEvent) -> Value -> Parser ReleaseEvent)
-> (Object -> Parser ReleaseEvent) -> Value -> Parser ReleaseEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> ReleaseEventAction
-> HookRelease -> HookRepository -> HookUser -> ReleaseEvent
ReleaseEvent
        (ReleaseEventAction
 -> HookRelease -> HookRepository -> HookUser -> ReleaseEvent)
-> Parser ReleaseEventAction
-> Parser
     (HookRelease -> HookRepository -> HookUser -> ReleaseEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser ReleaseEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser (HookRelease -> HookRepository -> HookUser -> ReleaseEvent)
-> Parser HookRelease
-> Parser (HookRepository -> HookUser -> ReleaseEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRelease
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"release"
        Parser (HookRepository -> HookUser -> ReleaseEvent)
-> Parser HookRepository -> Parser (HookUser -> ReleaseEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> ReleaseEvent)
-> Parser HookUser -> Parser ReleaseEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON RepositoryEvent where
    parseJSON :: Value -> Parser RepositoryEvent
parseJSON = String
-> (Object -> Parser RepositoryEvent)
-> Value
-> Parser RepositoryEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"RepositoryEvent" ((Object -> Parser RepositoryEvent)
 -> Value -> Parser RepositoryEvent)
-> (Object -> Parser RepositoryEvent)
-> Value
-> Parser RepositoryEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> RepositoryEventAction
-> HookRepository
-> Maybe HookOrganization
-> HookUser
-> RepositoryEvent
RepositoryEvent
        (RepositoryEventAction
 -> HookRepository
 -> Maybe HookOrganization
 -> HookUser
 -> RepositoryEvent)
-> Parser RepositoryEventAction
-> Parser
     (HookRepository
      -> Maybe HookOrganization -> HookUser -> RepositoryEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser RepositoryEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser
  (HookRepository
   -> Maybe HookOrganization -> HookUser -> RepositoryEvent)
-> Parser HookRepository
-> Parser (Maybe HookOrganization -> HookUser -> RepositoryEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (Maybe HookOrganization -> HookUser -> RepositoryEvent)
-> Parser (Maybe HookOrganization)
-> Parser (HookUser -> RepositoryEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe HookOrganization)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"organization"
        Parser (HookUser -> RepositoryEvent)
-> Parser HookUser -> Parser RepositoryEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON StatusEvent where
    parseJSON :: Value -> Parser StatusEvent
parseJSON = String
-> (Object -> Parser StatusEvent) -> Value -> Parser StatusEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"StatusEvent" ((Object -> Parser StatusEvent) -> Value -> Parser StatusEvent)
-> (Object -> Parser StatusEvent) -> Value -> Parser StatusEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> Int
-> Text
-> Text
-> Maybe URL
-> Text
-> Maybe Text
-> StatusEventState
-> HookCommit
-> UTCTime
-> UTCTime
-> HookRepository
-> HookUser
-> StatusEvent
StatusEvent
        (Int
 -> Text
 -> Text
 -> Maybe URL
 -> Text
 -> Maybe Text
 -> StatusEventState
 -> HookCommit
 -> UTCTime
 -> UTCTime
 -> HookRepository
 -> HookUser
 -> StatusEvent)
-> Parser Int
-> Parser
     (Text
      -> Text
      -> Maybe URL
      -> Text
      -> Maybe Text
      -> StatusEventState
      -> HookCommit
      -> UTCTime
      -> UTCTime
      -> HookRepository
      -> HookUser
      -> StatusEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"id"
        Parser
  (Text
   -> Text
   -> Maybe URL
   -> Text
   -> Maybe Text
   -> StatusEventState
   -> HookCommit
   -> UTCTime
   -> UTCTime
   -> HookRepository
   -> HookUser
   -> StatusEvent)
-> Parser Text
-> Parser
     (Text
      -> Maybe URL
      -> Text
      -> Maybe Text
      -> StatusEventState
      -> HookCommit
      -> UTCTime
      -> UTCTime
      -> HookRepository
      -> HookUser
      -> StatusEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sha"
        Parser
  (Text
   -> Maybe URL
   -> Text
   -> Maybe Text
   -> StatusEventState
   -> HookCommit
   -> UTCTime
   -> UTCTime
   -> HookRepository
   -> HookUser
   -> StatusEvent)
-> Parser Text
-> Parser
     (Maybe URL
      -> Text
      -> Maybe Text
      -> StatusEventState
      -> HookCommit
      -> UTCTime
      -> UTCTime
      -> HookRepository
      -> HookUser
      -> StatusEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"name"
        Parser
  (Maybe URL
   -> Text
   -> Maybe Text
   -> StatusEventState
   -> HookCommit
   -> UTCTime
   -> UTCTime
   -> HookRepository
   -> HookUser
   -> StatusEvent)
-> Parser (Maybe URL)
-> Parser
     (Text
      -> Maybe Text
      -> StatusEventState
      -> HookCommit
      -> UTCTime
      -> UTCTime
      -> HookRepository
      -> HookUser
      -> StatusEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe URL)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"target_url"
        Parser
  (Text
   -> Maybe Text
   -> StatusEventState
   -> HookCommit
   -> UTCTime
   -> UTCTime
   -> HookRepository
   -> HookUser
   -> StatusEvent)
-> Parser Text
-> Parser
     (Maybe Text
      -> StatusEventState
      -> HookCommit
      -> UTCTime
      -> UTCTime
      -> HookRepository
      -> HookUser
      -> StatusEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"context"
        Parser
  (Maybe Text
   -> StatusEventState
   -> HookCommit
   -> UTCTime
   -> UTCTime
   -> HookRepository
   -> HookUser
   -> StatusEvent)
-> Parser (Maybe Text)
-> Parser
     (StatusEventState
      -> HookCommit
      -> UTCTime
      -> UTCTime
      -> HookRepository
      -> HookUser
      -> StatusEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"description"
        Parser
  (StatusEventState
   -> HookCommit
   -> UTCTime
   -> UTCTime
   -> HookRepository
   -> HookUser
   -> StatusEvent)
-> Parser StatusEventState
-> Parser
     (HookCommit
      -> UTCTime -> UTCTime -> HookRepository -> HookUser -> StatusEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser StatusEventState
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"state"
        Parser
  (HookCommit
   -> UTCTime -> UTCTime -> HookRepository -> HookUser -> StatusEvent)
-> Parser HookCommit
-> Parser
     (UTCTime -> UTCTime -> HookRepository -> HookUser -> StatusEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookCommit
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"commit"
        Parser
  (UTCTime -> UTCTime -> HookRepository -> HookUser -> StatusEvent)
-> Parser UTCTime
-> Parser (UTCTime -> HookRepository -> HookUser -> StatusEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UTCTime
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"created_at"
        Parser (UTCTime -> HookRepository -> HookUser -> StatusEvent)
-> Parser UTCTime
-> Parser (HookRepository -> HookUser -> StatusEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UTCTime
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"updated_at"
        Parser (HookRepository -> HookUser -> StatusEvent)
-> Parser HookRepository -> Parser (HookUser -> StatusEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> StatusEvent)
-> Parser HookUser -> Parser StatusEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON TeamEvent where
    parseJSON :: Value -> Parser TeamEvent
parseJSON = String -> (Object -> Parser TeamEvent) -> Value -> Parser TeamEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"TeamEvent" ((Object -> Parser TeamEvent) -> Value -> Parser TeamEvent)
-> (Object -> Parser TeamEvent) -> Value -> Parser TeamEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> TeamEventAction
-> HookTeam -> HookOrganization -> HookUser -> TeamEvent
TeamEvent
        (TeamEventAction
 -> HookTeam -> HookOrganization -> HookUser -> TeamEvent)
-> Parser TeamEventAction
-> Parser (HookTeam -> HookOrganization -> HookUser -> TeamEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser TeamEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser (HookTeam -> HookOrganization -> HookUser -> TeamEvent)
-> Parser HookTeam
-> Parser (HookOrganization -> HookUser -> TeamEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookTeam
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"team"
        Parser (HookOrganization -> HookUser -> TeamEvent)
-> Parser HookOrganization -> Parser (HookUser -> TeamEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookOrganization
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"organization"
        Parser (HookUser -> TeamEvent)
-> Parser HookUser -> Parser TeamEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON TeamAddEvent where
    parseJSON :: Value -> Parser TeamAddEvent
parseJSON = String
-> (Object -> Parser TeamAddEvent) -> Value -> Parser TeamAddEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"TeamAddEvent" ((Object -> Parser TeamAddEvent) -> Value -> Parser TeamAddEvent)
-> (Object -> Parser TeamAddEvent) -> Value -> Parser TeamAddEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> Maybe HookTeam
-> HookRepository -> HookOrganization -> HookUser -> TeamAddEvent
TeamAddEvent
        (Maybe HookTeam
 -> HookRepository -> HookOrganization -> HookUser -> TeamAddEvent)
-> Parser (Maybe HookTeam)
-> Parser
     (HookRepository -> HookOrganization -> HookUser -> TeamAddEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe HookTeam)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"team"
        Parser
  (HookRepository -> HookOrganization -> HookUser -> TeamAddEvent)
-> Parser HookRepository
-> Parser (HookOrganization -> HookUser -> TeamAddEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookOrganization -> HookUser -> TeamAddEvent)
-> Parser HookOrganization -> Parser (HookUser -> TeamAddEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookOrganization
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"organization"
        Parser (HookUser -> TeamAddEvent)
-> Parser HookUser -> Parser TeamAddEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"

instance FromJSON WatchEvent where
    parseJSON :: Value -> Parser WatchEvent
parseJSON = String
-> (Object -> Parser WatchEvent) -> Value -> Parser WatchEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"WatchEvent" ((Object -> Parser WatchEvent) -> Value -> Parser WatchEvent)
-> (Object -> Parser WatchEvent) -> Value -> Parser WatchEvent
forall a b. (a -> b) -> a -> b
$ \Object
o -> WatchEventAction -> HookRepository -> HookUser -> WatchEvent
WatchEvent
        (WatchEventAction -> HookRepository -> HookUser -> WatchEvent)
-> Parser WatchEventAction
-> Parser (HookRepository -> HookUser -> WatchEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser WatchEventAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"action"
        Parser (HookRepository -> HookUser -> WatchEvent)
-> Parser HookRepository -> Parser (HookUser -> WatchEvent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookRepository
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"repository"
        Parser (HookUser -> WatchEvent)
-> Parser HookUser -> Parser WatchEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser HookUser
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sender"