twitchapi-0.0.4: Client access to Twitch.tv API endpoints
Copyright(c) Christina Wuest 2021
LicenseBSD-style
Maintainertina@wuest.me
Stabilityexperimental
Portabilitynon-portable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Web.TwitchAPI.PubSub

Description

Messages sent over Twitch's PubSub interface.

Documentation

data Topic Source #

Instances

Instances details
Show Topic Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Methods

showsPrec :: Int -> Topic -> ShowS #

show :: Topic -> String #

showList :: [Topic] -> ShowS #

Eq Topic Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Methods

(==) :: Topic -> Topic -> Bool #

(/=) :: Topic -> Topic -> Bool #

data RequestType Source #

Constructors

Listen 
Unlisten 

Instances

Instances details
Show RequestType Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Eq RequestType Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

data Request Source #

Instances

Instances details
ToJSON Request Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Show Request Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Eq Request Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Methods

(==) :: Request -> Request -> Bool #

(/=) :: Request -> Request -> Bool #

data Response Source #

Instances

Instances details
FromJSON Response Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Show Response Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Eq Response Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

data RewardImages Source #

Constructors

RewardImages 

Instances

Instances details
FromJSON RewardImages Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

ToJSON RewardImages Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Generic RewardImages Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Associated Types

type Rep RewardImages :: Type -> Type #

Show RewardImages Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Eq RewardImages Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

type Rep RewardImages Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

type Rep RewardImages = D1 ('MetaData "RewardImages" "Web.TwitchAPI.PubSub" "twitchapi-0.0.4-L6r9NH7gAppFdNo9fEDaOb" 'False) (C1 ('MetaCons "RewardImages" 'PrefixI 'True) (S1 ('MetaSel ('Just "tiny") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: (S1 ('MetaSel ('Just "large") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just "huge") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)))))

data UserInfo Source #

Constructors

UserInfo 

Instances

Instances details
FromJSON UserInfo Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

ToJSON UserInfo Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Generic UserInfo Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Associated Types

type Rep UserInfo :: Type -> Type #

Methods

from :: UserInfo -> Rep UserInfo x #

to :: Rep UserInfo x -> UserInfo #

Show UserInfo Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Eq UserInfo Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

type Rep UserInfo Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

type Rep UserInfo = D1 ('MetaData "UserInfo" "Web.TwitchAPI.PubSub" "twitchapi-0.0.4-L6r9NH7gAppFdNo9fEDaOb" 'False) (C1 ('MetaCons "UserInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "userId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: (S1 ('MetaSel ('Just "userName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "displayName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)))))

data RewardStatus Source #

Constructors

Fulfilled 
Unfulfilled 

Instances

Instances details
ToJSON RewardStatus Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Generic RewardStatus Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Associated Types

type Rep RewardStatus :: Type -> Type #

Read RewardStatus Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Show RewardStatus Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Eq RewardStatus Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

type Rep RewardStatus Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

type Rep RewardStatus = D1 ('MetaData "RewardStatus" "Web.TwitchAPI.PubSub" "twitchapi-0.0.4-L6r9NH7gAppFdNo9fEDaOb" 'False) (C1 ('MetaCons "Fulfilled" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Unfulfilled" 'PrefixI 'False) (U1 :: Type -> Type))

data BadgeUnlock Source #

Instances

Instances details
FromJSON BadgeUnlock Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

ToJSON BadgeUnlock Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Generic BadgeUnlock Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Associated Types

type Rep BadgeUnlock :: Type -> Type #

Show BadgeUnlock Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Eq BadgeUnlock Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

type Rep BadgeUnlock Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

type Rep BadgeUnlock = D1 ('MetaData "BadgeUnlock" "Web.TwitchAPI.PubSub" "twitchapi-0.0.4-L6r9NH7gAppFdNo9fEDaOb" 'False) (C1 ('MetaCons "BadgeUnlock" 'PrefixI 'True) (S1 ('MetaSel ('Just "newVersion") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "previousVersion") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))

data SubscriptionTier Source #

Constructors

Prime 
Tier1 
Tier2 
Tier3 

Instances

Instances details
FromJSON SubscriptionTier Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

ToJSON SubscriptionTier Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Generic SubscriptionTier Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Associated Types

type Rep SubscriptionTier :: Type -> Type #

Show SubscriptionTier Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Eq SubscriptionTier Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

type Rep SubscriptionTier Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

type Rep SubscriptionTier = D1 ('MetaData "SubscriptionTier" "Web.TwitchAPI.PubSub" "twitchapi-0.0.4-L6r9NH7gAppFdNo9fEDaOb" 'False) ((C1 ('MetaCons "Prime" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Tier1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Tier2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Tier3" 'PrefixI 'False) (U1 :: Type -> Type)))

data EmoteSpec Source #

Instances

Instances details
FromJSON EmoteSpec Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

ToJSON EmoteSpec Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Generic EmoteSpec Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Associated Types

type Rep EmoteSpec :: Type -> Type #

Show EmoteSpec Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Eq EmoteSpec Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

type Rep EmoteSpec Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

type Rep EmoteSpec = D1 ('MetaData "EmoteSpec" "Web.TwitchAPI.PubSub" "twitchapi-0.0.4-L6r9NH7gAppFdNo9fEDaOb" 'False) (C1 ('MetaCons "EmoteSpec" 'PrefixI 'True) (S1 ('MetaSel ('Just "emoteStart") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: (S1 ('MetaSel ('Just "emoteLength") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "emoteId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer))))

data SubscriptionMessage Source #

Instances

Instances details
FromJSON SubscriptionMessage Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

ToJSON SubscriptionMessage Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Generic SubscriptionMessage Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Associated Types

type Rep SubscriptionMessage :: Type -> Type #

Show SubscriptionMessage Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Eq SubscriptionMessage Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

type Rep SubscriptionMessage Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

type Rep SubscriptionMessage = D1 ('MetaData "SubscriptionMessage" "Web.TwitchAPI.PubSub" "twitchapi-0.0.4-L6r9NH7gAppFdNo9fEDaOb" 'False) (C1 ('MetaCons "SubscriptionMessage" 'PrefixI 'True) (S1 ('MetaSel ('Just "subscriptionMessage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "subscriptionEmotes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [EmoteSpec])))

data Message Source #

Constructors

BitsV2Message 
BitsV2AnonymousMessage 
BitsV1Message 
BitsBadgeMessage 
ChannelPointsMessage 
ChannelSubscriptionMessage 
ChannelResubscriptionMessage 
ChannelExtendSubscriptionMessage 
ChannelSubscriptionGiftMessage 
ChannelMultiMonthSubscriptionGiftMessage 
ChannelAnonymousSubscriptionGiftMessage 
ChannelAnonymousMultiMonthSubscriptionGiftMessage 
WhisperMessage 
SuccessMessage 

Fields

ErrorMessage 

Instances

Instances details
FromJSON Message Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

ToJSON Message Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Generic Message Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Associated Types

type Rep Message :: Type -> Type #

Methods

from :: Message -> Rep Message x #

to :: Rep Message x -> Message #

Show Message Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Eq Message Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

Methods

(==) :: Message -> Message -> Bool #

(/=) :: Message -> Message -> Bool #

type Rep Message Source # 
Instance details

Defined in Web.TwitchAPI.PubSub

type Rep Message = D1 ('MetaData "Message" "Web.TwitchAPI.PubSub" "twitchapi-0.0.4-L6r9NH7gAppFdNo9fEDaOb" 'False) (((C1 ('MetaCons "BitsV2Message" 'PrefixI 'True) (((S1 ('MetaSel ('Just "badge") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe BadgeUnlock)) :*: (S1 ('MetaSel ('Just "bits") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "channelId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer))) :*: (S1 ('MetaSel ('Just "chatMessage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: (S1 ('MetaSel ('Just "context") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "messageId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))) :*: ((S1 ('MetaSel ('Just "messageType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just "time") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe UTCTime)) :*: S1 ('MetaSel ('Just "userTotal") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer))) :*: (S1 ('MetaSel ('Just "messageUser") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Integer)) :*: (S1 ('MetaSel ('Just "messageUserName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just "version") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))) :+: (C1 ('MetaCons "BitsV2AnonymousMessage" 'PrefixI 'True) (((S1 ('MetaSel ('Just "bits") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "channelId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :*: (S1 ('MetaSel ('Just "chatMessage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just "context") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))) :*: ((S1 ('MetaSel ('Just "messageId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "messageType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Just "time") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe UTCTime)) :*: S1 ('MetaSel ('Just "version") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))) :+: C1 ('MetaCons "BitsV1Message" 'PrefixI 'True) (((S1 ('MetaSel ('Just "badge") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe BadgeUnlock)) :*: (S1 ('MetaSel ('Just "bits") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "channelId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer))) :*: (S1 ('MetaSel ('Just "channelName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just "chatMessage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just "context") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))) :*: ((S1 ('MetaSel ('Just "messageId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just "messageType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "time") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe UTCTime)))) :*: ((S1 ('MetaSel ('Just "userTotal") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "messageUser") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Integer))) :*: (S1 ('MetaSel ('Just "messageUserName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just "version") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))))) :+: ((C1 ('MetaCons "BitsBadgeMessage" 'PrefixI 'True) ((S1 ('MetaSel ('Just "messageUser") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Integer)) :*: (S1 ('MetaSel ('Just "messageUserName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just "channelId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer))) :*: ((S1 ('MetaSel ('Just "channelName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "bitsTier") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :*: (S1 ('MetaSel ('Just "chatMessage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just "time") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe UTCTime))))) :+: C1 ('MetaCons "ChannelPointsMessage" 'PrefixI 'True) ((((S1 ('MetaSel ('Just "serverTime") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe UTCTime)) :*: S1 ('MetaSel ('Just "redeemedTime") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe UTCTime))) :*: (S1 ('MetaSel ('Just "userInfo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UserInfo) :*: S1 ('MetaSel ('Just "rewardId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))) :*: ((S1 ('MetaSel ('Just "channelId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "title") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Just "prompt") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: (S1 ('MetaSel ('Just "cost") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "userInput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)))))) :*: (((S1 ('MetaSel ('Just "subOnly") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "image") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe RewardImages))) :*: (S1 ('MetaSel ('Just "defaultImage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RewardImages) :*: (S1 ('MetaSel ('Just "backgroundColor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "enabled") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) :*: ((S1 ('MetaSel ('Just "paused") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "inStock") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "maxPerStream") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Integer)) :*: (S1 ('MetaSel ('Just "autoFulfilled") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "status") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RewardStatus))))))) :+: (C1 ('MetaCons "ChannelSubscriptionMessage" 'PrefixI 'True) ((S1 ('MetaSel ('Just "userInfo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UserInfo) :*: (S1 ('MetaSel ('Just "channelName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "channelId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer))) :*: ((S1 ('MetaSel ('Just "time") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe UTCTime)) :*: S1 ('MetaSel ('Just "subTier") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SubscriptionTier)) :*: (S1 ('MetaSel ('Just "subPlanName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "subMessage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SubscriptionMessage)))) :+: C1 ('MetaCons "ChannelResubscriptionMessage" 'PrefixI 'True) (((S1 ('MetaSel ('Just "userInfo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UserInfo) :*: S1 ('MetaSel ('Just "channelName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Just "channelId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "time") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe UTCTime)))) :*: ((S1 ('MetaSel ('Just "subTier") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SubscriptionTier) :*: S1 ('MetaSel ('Just "subPlanName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Just "totalMonths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: (S1 ('MetaSel ('Just "streakMonths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Integer)) :*: S1 ('MetaSel ('Just "subMessage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SubscriptionMessage)))))))) :+: (((C1 ('MetaCons "ChannelExtendSubscriptionMessage" 'PrefixI 'True) (((S1 ('MetaSel ('Just "userInfo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UserInfo) :*: S1 ('MetaSel ('Just "channelName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Just "channelId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: (S1 ('MetaSel ('Just "time") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe UTCTime)) :*: S1 ('MetaSel ('Just "subTier") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SubscriptionTier)))) :*: ((S1 ('MetaSel ('Just "subPlanName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "totalMonths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :*: (S1 ('MetaSel ('Just "streakMonths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Integer)) :*: (S1 ('MetaSel ('Just "endMonth") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "subMessage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SubscriptionMessage))))) :+: C1 ('MetaCons "ChannelSubscriptionGiftMessage" 'PrefixI 'True) ((S1 ('MetaSel ('Just "userInfo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UserInfo) :*: (S1 ('MetaSel ('Just "channelName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "channelId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer))) :*: ((S1 ('MetaSel ('Just "time") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe UTCTime)) :*: S1 ('MetaSel ('Just "subTier") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SubscriptionTier)) :*: (S1 ('MetaSel ('Just "subPlanName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "recipient") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UserInfo))))) :+: (C1 ('MetaCons "ChannelMultiMonthSubscriptionGiftMessage" 'PrefixI 'True) (((S1 ('MetaSel ('Just "userInfo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UserInfo) :*: S1 ('MetaSel ('Just "channelName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Just "channelId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "time") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe UTCTime)))) :*: ((S1 ('MetaSel ('Just "subTier") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SubscriptionTier) :*: S1 ('MetaSel ('Just "subPlanName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Just "recipient") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UserInfo) :*: S1 ('MetaSel ('Just "months") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))) :+: C1 ('MetaCons "ChannelAnonymousSubscriptionGiftMessage" 'PrefixI 'True) ((S1 ('MetaSel ('Just "channelName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just "channelId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "time") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe UTCTime)))) :*: (S1 ('MetaSel ('Just "subTier") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SubscriptionTier) :*: (S1 ('MetaSel ('Just "subPlanName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "recipient") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UserInfo)))))) :+: ((C1 ('MetaCons "ChannelAnonymousMultiMonthSubscriptionGiftMessage" 'PrefixI 'True) ((S1 ('MetaSel ('Just "channelName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just "channelId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "time") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe UTCTime)))) :*: ((S1 ('MetaSel ('Just "subTier") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SubscriptionTier) :*: S1 ('MetaSel ('Just "subPlanName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Just "recipient") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UserInfo) :*: S1 ('MetaSel ('Just "months") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))) :+: C1 ('MetaCons "WhisperMessage" 'PrefixI 'True) (((S1 ('MetaSel ('Just "messageId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "threadId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Just "time") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe UTCTime)) :*: S1 ('MetaSel ('Just "messageBody") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))) :*: ((S1 ('MetaSel ('Just "messageEmotes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [EmoteSpec]) :*: S1 ('MetaSel ('Just "userInfo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UserInfo)) :*: (S1 ('MetaSel ('Just "userColor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "recipient") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UserInfo))))) :+: (C1 ('MetaCons "SuccessMessage" 'PrefixI 'True) (S1 ('MetaSel ('Just "nonce") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String))) :+: C1 ('MetaCons "ErrorMessage" 'PrefixI 'True) (S1 ('MetaSel ('Just "nonce") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just "errorString") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))))