@@ -852,6 +852,39 @@ instance ToJSON ChannelStatus where
852852 ("longUploadsStatus" .=) <$> _csLongUploadsStatus,
853853 ("privacyStatus" .=) <$> _csPrivacyStatus])
854854
855+--
856+-- /See:/ 'liveChatPollClosedDetails' smart constructor.
857+newtype LiveChatPollClosedDetails = LiveChatPollClosedDetails'
858+ { _lcpcdPollId :: Maybe Text
859+ } deriving (Eq,Show,Data,Typeable,Generic)
860+
861+-- | Creates a value of 'LiveChatPollClosedDetails' with the minimum fields required to make a request.
862+--
863+-- Use one of the following lenses to modify other fields as desired:
864+--
865+-- * 'lcpcdPollId'
866+liveChatPollClosedDetails
867+ :: LiveChatPollClosedDetails
868+liveChatPollClosedDetails =
869+ LiveChatPollClosedDetails'
870+ { _lcpcdPollId = Nothing
871+ }
872+
873+-- | The id of the poll that was closed.
874+lcpcdPollId :: Lens' LiveChatPollClosedDetails (Maybe Text)
875+lcpcdPollId
876+ = lens _lcpcdPollId (\ s a -> s{_lcpcdPollId = a})
877+
878+instance FromJSON LiveChatPollClosedDetails where
879+ parseJSON
880+ = withObject "LiveChatPollClosedDetails"
881+ (\ o ->
882+ LiveChatPollClosedDetails' <$> (o .:? "pollId"))
883+
884+instance ToJSON LiveChatPollClosedDetails where
885+ toJSON LiveChatPollClosedDetails'{..}
886+ = object (catMaybes [("pollId" .=) <$> _lcpcdPollId])
887+
855888-- | Describes a single promoted item.
856889--
857890-- /See:/ 'promotedItem' smart constructor.
@@ -4572,6 +4605,61 @@ instance ToJSON ChannelTopicDetails where
45724605 = object
45734606 (catMaybes [("topicIds" .=) <$> _ctdTopicIds])
45744607
4608+--
4609+-- /See:/ 'liveChatPollEditedDetails' smart constructor.
4610+data LiveChatPollEditedDetails = LiveChatPollEditedDetails'
4611+ { _lcpedPrompt :: !(Maybe Text)
4612+ , _lcpedItems :: !(Maybe [LiveChatPollItem])
4613+ , _lcpedId :: !(Maybe Text)
4614+ } deriving (Eq,Show,Data,Typeable,Generic)
4615+
4616+-- | Creates a value of 'LiveChatPollEditedDetails' with the minimum fields required to make a request.
4617+--
4618+-- Use one of the following lenses to modify other fields as desired:
4619+--
4620+-- * 'lcpedPrompt'
4621+--
4622+-- * 'lcpedItems'
4623+--
4624+-- * 'lcpedId'
4625+liveChatPollEditedDetails
4626+ :: LiveChatPollEditedDetails
4627+liveChatPollEditedDetails =
4628+ LiveChatPollEditedDetails'
4629+ { _lcpedPrompt = Nothing
4630+ , _lcpedItems = Nothing
4631+ , _lcpedId = Nothing
4632+ }
4633+
4634+lcpedPrompt :: Lens' LiveChatPollEditedDetails (Maybe Text)
4635+lcpedPrompt
4636+ = lens _lcpedPrompt (\ s a -> s{_lcpedPrompt = a})
4637+
4638+lcpedItems :: Lens' LiveChatPollEditedDetails [LiveChatPollItem]
4639+lcpedItems
4640+ = lens _lcpedItems (\ s a -> s{_lcpedItems = a}) .
4641+ _Default
4642+ . _Coerce
4643+
4644+lcpedId :: Lens' LiveChatPollEditedDetails (Maybe Text)
4645+lcpedId = lens _lcpedId (\ s a -> s{_lcpedId = a})
4646+
4647+instance FromJSON LiveChatPollEditedDetails where
4648+ parseJSON
4649+ = withObject "LiveChatPollEditedDetails"
4650+ (\ o ->
4651+ LiveChatPollEditedDetails' <$>
4652+ (o .:? "prompt") <*> (o .:? "items" .!= mempty) <*>
4653+ (o .:? "id"))
4654+
4655+instance ToJSON LiveChatPollEditedDetails where
4656+ toJSON LiveChatPollEditedDetails'{..}
4657+ = object
4658+ (catMaybes
4659+ [("prompt" .=) <$> _lcpedPrompt,
4660+ ("items" .=) <$> _lcpedItems,
4661+ ("id" .=) <$> _lcpedId])
4662+
45754663--
45764664-- /See:/ 'videoCategoryListResponse' smart constructor.
45774665data VideoCategoryListResponse = VideoCategoryListResponse'
@@ -6525,9 +6613,13 @@ data LiveChatMessageSnippet = LiveChatMessageSnippet'
65256613 { _lcmsMessageDeletedDetails :: !(Maybe LiveChatMessageDeletedDetails)
65266614 , _lcmsLiveChatId :: !(Maybe Text)
65276615 , _lcmsPublishedAt :: !(Maybe DateTime')
6616+ , _lcmsPollOpenedDetails :: !(Maybe LiveChatPollOpenedDetails)
6617+ , _lcmsPollVotedDetails :: !(Maybe LiveChatPollVotedDetails)
65286618 , _lcmsUserBannedDetails :: !(Maybe LiveChatUserBannedMessageDetails)
65296619 , _lcmsTextMessageDetails :: !(Maybe LiveChatTextMessageDetails)
6620+ , _lcmsPollClosedDetails :: !(Maybe LiveChatPollClosedDetails)
65306621 , _lcmsMessageRetractedDetails :: !(Maybe LiveChatMessageRetractedDetails)
6622+ , _lcmsPollEditedDetails :: !(Maybe LiveChatPollEditedDetails)
65316623 , _lcmsType :: !(Maybe LiveChatMessageSnippetType)
65326624 , _lcmsAuthorChannelId :: !(Maybe Text)
65336625 , _lcmsFanFundingEventDetails :: !(Maybe LiveChatFanFundingEventDetails)
@@ -6545,12 +6637,20 @@ data LiveChatMessageSnippet = LiveChatMessageSnippet'
65456637--
65466638-- * 'lcmsPublishedAt'
65476639--
6640+-- * 'lcmsPollOpenedDetails'
6641+--
6642+-- * 'lcmsPollVotedDetails'
6643+--
65486644-- * 'lcmsUserBannedDetails'
65496645--
65506646-- * 'lcmsTextMessageDetails'
65516647--
6648+-- * 'lcmsPollClosedDetails'
6649+--
65526650-- * 'lcmsMessageRetractedDetails'
65536651--
6652+-- * 'lcmsPollEditedDetails'
6653+--
65546654-- * 'lcmsType'
65556655--
65566656-- * 'lcmsAuthorChannelId'
@@ -6567,9 +6667,13 @@ liveChatMessageSnippet =
65676667 { _lcmsMessageDeletedDetails = Nothing
65686668 , _lcmsLiveChatId = Nothing
65696669 , _lcmsPublishedAt = Nothing
6670+ , _lcmsPollOpenedDetails = Nothing
6671+ , _lcmsPollVotedDetails = Nothing
65706672 , _lcmsUserBannedDetails = Nothing
65716673 , _lcmsTextMessageDetails = Nothing
6674+ , _lcmsPollClosedDetails = Nothing
65726675 , _lcmsMessageRetractedDetails = Nothing
6676+ , _lcmsPollEditedDetails = Nothing
65736677 , _lcmsType = Nothing
65746678 , _lcmsAuthorChannelId = Nothing
65756679 , _lcmsFanFundingEventDetails = Nothing
@@ -6595,6 +6699,16 @@ lcmsPublishedAt
65956699 (\ s a -> s{_lcmsPublishedAt = a})
65966700 . mapping _DateTime
65976701
6702+lcmsPollOpenedDetails :: Lens' LiveChatMessageSnippet (Maybe LiveChatPollOpenedDetails)
6703+lcmsPollOpenedDetails
6704+ = lens _lcmsPollOpenedDetails
6705+ (\ s a -> s{_lcmsPollOpenedDetails = a})
6706+
6707+lcmsPollVotedDetails :: Lens' LiveChatMessageSnippet (Maybe LiveChatPollVotedDetails)
6708+lcmsPollVotedDetails
6709+ = lens _lcmsPollVotedDetails
6710+ (\ s a -> s{_lcmsPollVotedDetails = a})
6711+
65986712lcmsUserBannedDetails :: Lens' LiveChatMessageSnippet (Maybe LiveChatUserBannedMessageDetails)
65996713lcmsUserBannedDetails
66006714 = lens _lcmsUserBannedDetails
@@ -6607,11 +6721,21 @@ lcmsTextMessageDetails
66076721 = lens _lcmsTextMessageDetails
66086722 (\ s a -> s{_lcmsTextMessageDetails = a})
66096723
6724+lcmsPollClosedDetails :: Lens' LiveChatMessageSnippet (Maybe LiveChatPollClosedDetails)
6725+lcmsPollClosedDetails
6726+ = lens _lcmsPollClosedDetails
6727+ (\ s a -> s{_lcmsPollClosedDetails = a})
6728+
66106729lcmsMessageRetractedDetails :: Lens' LiveChatMessageSnippet (Maybe LiveChatMessageRetractedDetails)
66116730lcmsMessageRetractedDetails
66126731 = lens _lcmsMessageRetractedDetails
66136732 (\ s a -> s{_lcmsMessageRetractedDetails = a})
66146733
6734+lcmsPollEditedDetails :: Lens' LiveChatMessageSnippet (Maybe LiveChatPollEditedDetails)
6735+lcmsPollEditedDetails
6736+ = lens _lcmsPollEditedDetails
6737+ (\ s a -> s{_lcmsPollEditedDetails = a})
6738+
66156739-- | The type of message, this will always be present, it determines the
66166740-- contents of the message as well as which fields will be present.
66176741lcmsType :: Lens' LiveChatMessageSnippet (Maybe LiveChatMessageSnippetType)
@@ -6658,9 +6782,13 @@ instance FromJSON LiveChatMessageSnippet where
66586782 (o .:? "messageDeletedDetails") <*>
66596783 (o .:? "liveChatId")
66606784 <*> (o .:? "publishedAt")
6785+ <*> (o .:? "pollOpenedDetails")
6786+ <*> (o .:? "pollVotedDetails")
66616787 <*> (o .:? "userBannedDetails")
66626788 <*> (o .:? "textMessageDetails")
6789+ <*> (o .:? "pollClosedDetails")
66636790 <*> (o .:? "messageRetractedDetails")
6791+ <*> (o .:? "pollEditedDetails")
66646792 <*> (o .:? "type")
66656793 <*> (o .:? "authorChannelId")
66666794 <*> (o .:? "fanFundingEventDetails")
@@ -6675,11 +6803,15 @@ instance ToJSON LiveChatMessageSnippet where
66756803 _lcmsMessageDeletedDetails,
66766804 ("liveChatId" .=) <$> _lcmsLiveChatId,
66776805 ("publishedAt" .=) <$> _lcmsPublishedAt,
6806+ ("pollOpenedDetails" .=) <$> _lcmsPollOpenedDetails,
6807+ ("pollVotedDetails" .=) <$> _lcmsPollVotedDetails,
66786808 ("userBannedDetails" .=) <$> _lcmsUserBannedDetails,
66796809 ("textMessageDetails" .=) <$>
66806810 _lcmsTextMessageDetails,
6811+ ("pollClosedDetails" .=) <$> _lcmsPollClosedDetails,
66816812 ("messageRetractedDetails" .=) <$>
66826813 _lcmsMessageRetractedDetails,
6814+ ("pollEditedDetails" .=) <$> _lcmsPollEditedDetails,
66836815 ("type" .=) <$> _lcmsType,
66846816 ("authorChannelId" .=) <$> _lcmsAuthorChannelId,
66856817 ("fanFundingEventDetails" .=) <$>
@@ -10432,6 +10564,52 @@ instance ToJSON SearchResultSnippet where
1043210564 _srsLiveBroadcastContent,
1043310565 ("description" .=) <$> _srsDescription])
1043410566
10567+--
10568+-- /See:/ 'liveChatPollItem' smart constructor.
10569+data LiveChatPollItem = LiveChatPollItem'
10570+ { _lcpiItemId :: !(Maybe Text)
10571+ , _lcpiDescription :: !(Maybe Text)
10572+ } deriving (Eq,Show,Data,Typeable,Generic)
10573+
10574+-- | Creates a value of 'LiveChatPollItem' with the minimum fields required to make a request.
10575+--
10576+-- Use one of the following lenses to modify other fields as desired:
10577+--
10578+-- * 'lcpiItemId'
10579+--
10580+-- * 'lcpiDescription'
10581+liveChatPollItem
10582+ :: LiveChatPollItem
10583+liveChatPollItem =
10584+ LiveChatPollItem'
10585+ { _lcpiItemId = Nothing
10586+ , _lcpiDescription = Nothing
10587+ }
10588+
10589+lcpiItemId :: Lens' LiveChatPollItem (Maybe Text)
10590+lcpiItemId
10591+ = lens _lcpiItemId (\ s a -> s{_lcpiItemId = a})
10592+
10593+-- | Plain text description of the item.
10594+lcpiDescription :: Lens' LiveChatPollItem (Maybe Text)
10595+lcpiDescription
10596+ = lens _lcpiDescription
10597+ (\ s a -> s{_lcpiDescription = a})
10598+
10599+instance FromJSON LiveChatPollItem where
10600+ parseJSON
10601+ = withObject "LiveChatPollItem"
10602+ (\ o ->
10603+ LiveChatPollItem' <$>
10604+ (o .:? "itemId") <*> (o .:? "description"))
10605+
10606+instance ToJSON LiveChatPollItem where
10607+ toJSON LiveChatPollItem'{..}
10608+ = object
10609+ (catMaybes
10610+ [("itemId" .=) <$> _lcpiItemId,
10611+ ("description" .=) <$> _lcpiDescription])
10612+
1043510613--
1043610614-- /See:/ 'sponsorListResponse' smart constructor.
1043710615data SponsorListResponse = SponsorListResponse'
@@ -11836,6 +12014,61 @@ instance ToJSON LanguageTag where
1183612014 toJSON LanguageTag'{..}
1183712015 = object (catMaybes [("value" .=) <$> _ltValue])
1183812016
12017+--
12018+-- /See:/ 'liveChatPollOpenedDetails' smart constructor.
12019+data LiveChatPollOpenedDetails = LiveChatPollOpenedDetails'
12020+ { _lcpodPrompt :: !(Maybe Text)
12021+ , _lcpodItems :: !(Maybe [LiveChatPollItem])
12022+ , _lcpodId :: !(Maybe Text)
12023+ } deriving (Eq,Show,Data,Typeable,Generic)
12024+
12025+-- | Creates a value of 'LiveChatPollOpenedDetails' with the minimum fields required to make a request.
12026+--
12027+-- Use one of the following lenses to modify other fields as desired:
12028+--
12029+-- * 'lcpodPrompt'
12030+--
12031+-- * 'lcpodItems'
12032+--
12033+-- * 'lcpodId'
12034+liveChatPollOpenedDetails
12035+ :: LiveChatPollOpenedDetails
12036+liveChatPollOpenedDetails =
12037+ LiveChatPollOpenedDetails'
12038+ { _lcpodPrompt = Nothing
12039+ , _lcpodItems = Nothing
12040+ , _lcpodId = Nothing
12041+ }
12042+
12043+lcpodPrompt :: Lens' LiveChatPollOpenedDetails (Maybe Text)
12044+lcpodPrompt
12045+ = lens _lcpodPrompt (\ s a -> s{_lcpodPrompt = a})
12046+
12047+lcpodItems :: Lens' LiveChatPollOpenedDetails [LiveChatPollItem]
12048+lcpodItems
12049+ = lens _lcpodItems (\ s a -> s{_lcpodItems = a}) .
12050+ _Default
12051+ . _Coerce
12052+
12053+lcpodId :: Lens' LiveChatPollOpenedDetails (Maybe Text)
12054+lcpodId = lens _lcpodId (\ s a -> s{_lcpodId = a})
12055+
12056+instance FromJSON LiveChatPollOpenedDetails where
12057+ parseJSON
12058+ = withObject "LiveChatPollOpenedDetails"
12059+ (\ o ->
12060+ LiveChatPollOpenedDetails' <$>
12061+ (o .:? "prompt") <*> (o .:? "items" .!= mempty) <*>
12062+ (o .:? "id"))
12063+
12064+instance ToJSON LiveChatPollOpenedDetails where
12065+ toJSON LiveChatPollOpenedDetails'{..}
12066+ = object
12067+ (catMaybes
12068+ [("prompt" .=) <$> _lcpodPrompt,
12069+ ("items" .=) <$> _lcpodItems,
12070+ ("id" .=) <$> _lcpodId])
12071+
1183912072-- | Information about a video stream.
1184012073--
1184112074-- /See:/ 'videoFileDetailsVideoStream' smart constructor.
@@ -13322,11 +13555,12 @@ instance ToJSON VideoProjectDetails where
1332213555 = object (catMaybes [("tags" .=) <$> _vpdTags])
1332313556
1332413557-- | Ratings schemes. The country-specific ratings are mostly for movies and
13325−-- shows. NEXT_ID: 67
13558+-- shows. NEXT_ID: 68
1332613559--
1332713560-- /See:/ 'contentRating' smart constructor.
1332813561data ContentRating = ContentRating'
13329− { _crPefilmRating :: !(Maybe ContentRatingPefilmRating)
13562+ { _crFpbRatingReasons :: !(Maybe [ContentRatingFpbRatingReasonsItem])
13563+ , _crPefilmRating :: !(Maybe ContentRatingPefilmRating)
1333013564 , _crCccRating :: !(Maybe ContentRatingCccRating)
1333113565 , _crAnatelRating :: !(Maybe ContentRatingAnatelRating)
1333213566 , _crMpaaRating :: !(Maybe ContentRatingMpaaRating)
@@ -13398,6 +13632,8 @@ data ContentRating = ContentRating'
1339813632--
1339913633-- Use one of the following lenses to modify other fields as desired:
1340013634--
13635+-- * 'crFpbRatingReasons'
13636+--
1340113637-- * 'crPefilmRating'
1340213638--
1340313639-- * 'crCccRating'
@@ -13533,7 +13769,8 @@ contentRating
1353313769 :: ContentRating
1353413770contentRating =
1353513771 ContentRating'
13536− { _crPefilmRating = Nothing
13772+ { _crFpbRatingReasons = Nothing
13773+ , _crPefilmRating = Nothing
1353713774 , _crCccRating = Nothing
1353813775 , _crAnatelRating = Nothing
1353913776 , _crMpaaRating = Nothing
@@ -13601,6 +13838,15 @@ contentRating =
1360113838 , _crKmrbRating = Nothing
1360213839 }
1360313840
13841+-- | Reasons that explain why the video received its FPB (South Africa)
13842+-- rating.
13843+crFpbRatingReasons :: Lens' ContentRating [ContentRatingFpbRatingReasonsItem]
13844+crFpbRatingReasons
13845+ = lens _crFpbRatingReasons
13846+ (\ s a -> s{_crFpbRatingReasons = a})
13847+ . _Default
13848+ . _Coerce
13849+
1360413850-- | The video\'s rating in Peru.
1360513851crPefilmRating :: Lens' ContentRating (Maybe ContentRatingPefilmRating)
1360613852crPefilmRating
@@ -14007,8 +14253,10 @@ instance FromJSON ContentRating where
1400714253 = withObject "ContentRating"
1400814254 (\ o ->
1400914255 ContentRating' <$>
14010− (o .:? "pefilmRating") <*> (o .:? "cccRating") <*>
14011− (o .:? "anatelRating")
14256+ (o .:? "fpbRatingReasons" .!= mempty) <*>
14257+ (o .:? "pefilmRating")
14258+ <*> (o .:? "cccRating")
14259+ <*> (o .:? "anatelRating")
1401214260 <*> (o .:? "mpaaRating")
1401314261 <*> (o .:? "cceRating")
1401414262 <*> (o .:? "mccaaRating")
@@ -14077,7 +14325,8 @@ instance ToJSON ContentRating where
1407714325 toJSON ContentRating'{..}
1407814326 = object
1407914327 (catMaybes
14080− [("pefilmRating" .=) <$> _crPefilmRating,
14328+ [("fpbRatingReasons" .=) <$> _crFpbRatingReasons,
14329+ ("pefilmRating" .=) <$> _crPefilmRating,
1408114330 ("cccRating" .=) <$> _crCccRating,
1408214331 ("anatelRating" .=) <$> _crAnatelRating,
1408314332 ("mpaaRating" .=) <$> _crMpaaRating,
@@ -15308,3 +15557,49 @@ instance ToJSON I18nLanguageSnippet where
1530815557 = object
1530915558 (catMaybes
1531015559 [("hl" .=) <$> _ilsHl, ("name" .=) <$> _ilsName])
15560+
15561+--
15562+-- /See:/ 'liveChatPollVotedDetails' smart constructor.
15563+data LiveChatPollVotedDetails = LiveChatPollVotedDetails'
15564+ { _lcpvdPollId :: !(Maybe Text)
15565+ , _lcpvdItemId :: !(Maybe Text)
15566+ } deriving (Eq,Show,Data,Typeable,Generic)
15567+
15568+-- | Creates a value of 'LiveChatPollVotedDetails' with the minimum fields required to make a request.
15569+--
15570+-- Use one of the following lenses to modify other fields as desired:
15571+--
15572+-- * 'lcpvdPollId'
15573+--
15574+-- * 'lcpvdItemId'
15575+liveChatPollVotedDetails
15576+ :: LiveChatPollVotedDetails
15577+liveChatPollVotedDetails =
15578+ LiveChatPollVotedDetails'
15579+ { _lcpvdPollId = Nothing
15580+ , _lcpvdItemId = Nothing
15581+ }
15582+
15583+-- | The poll the user voted on.
15584+lcpvdPollId :: Lens' LiveChatPollVotedDetails (Maybe Text)
15585+lcpvdPollId
15586+ = lens _lcpvdPollId (\ s a -> s{_lcpvdPollId = a})
15587+
15588+-- | The poll item the user chose.
15589+lcpvdItemId :: Lens' LiveChatPollVotedDetails (Maybe Text)
15590+lcpvdItemId
15591+ = lens _lcpvdItemId (\ s a -> s{_lcpvdItemId = a})
15592+
15593+instance FromJSON LiveChatPollVotedDetails where
15594+ parseJSON
15595+ = withObject "LiveChatPollVotedDetails"
15596+ (\ o ->
15597+ LiveChatPollVotedDetails' <$>
15598+ (o .:? "pollId") <*> (o .:? "itemId"))
15599+
15600+instance ToJSON LiveChatPollVotedDetails where
15601+ toJSON LiveChatPollVotedDetails'{..}
15602+ = object
15603+ (catMaybes
15604+ [("pollId" .=) <$> _lcpvdPollId,
15605+ ("itemId" .=) <$> _lcpvdItemId])