{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- | -- Module : Network.Google.AbusiveExperienceReport.Types.Product -- Copyright : (c) 2015-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.Google.AbusiveExperienceReport.Types.Product where import Network.Google.AbusiveExperienceReport.Types.Sum import Network.Google.Prelude -- | Response message for GetSiteSummary. -- -- /See:/ 'siteSummaryResponse' smart constructor. data SiteSummaryResponse = SiteSummaryResponse' { _ssrAbusiveStatus :: !(Maybe SiteSummaryResponseAbusiveStatus) , _ssrEnforcementTime :: !(Maybe DateTime') , _ssrLastChangeTime :: !(Maybe DateTime') , _ssrFilterStatus :: !(Maybe SiteSummaryResponseFilterStatus) , _ssrUnderReview :: !(Maybe Bool) , _ssrReportURL :: !(Maybe Text) , _ssrReviewedSite :: !(Maybe Text) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'SiteSummaryResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'ssrAbusiveStatus' -- -- * 'ssrEnforcementTime' -- -- * 'ssrLastChangeTime' -- -- * 'ssrFilterStatus' -- -- * 'ssrUnderReview' -- -- * 'ssrReportURL' -- -- * 'ssrReviewedSite' siteSummaryResponse :: SiteSummaryResponse siteSummaryResponse = SiteSummaryResponse' { _ssrAbusiveStatus = Nothing , _ssrEnforcementTime = Nothing , _ssrLastChangeTime = Nothing , _ssrFilterStatus = Nothing , _ssrUnderReview = Nothing , _ssrReportURL = Nothing , _ssrReviewedSite = Nothing } -- | The status of the site reviewed for the abusive experiences. ssrAbusiveStatus :: Lens' SiteSummaryResponse (Maybe SiteSummaryResponseAbusiveStatus) ssrAbusiveStatus = lens _ssrAbusiveStatus (\ s a -> s{_ssrAbusiveStatus = a}) -- | The date on which enforcement begins. ssrEnforcementTime :: Lens' SiteSummaryResponse (Maybe UTCTime) ssrEnforcementTime = lens _ssrEnforcementTime (\ s a -> s{_ssrEnforcementTime = a}) . mapping _DateTime -- | The last time that the site changed status. ssrLastChangeTime :: Lens' SiteSummaryResponse (Maybe UTCTime) ssrLastChangeTime = lens _ssrLastChangeTime (\ s a -> s{_ssrLastChangeTime = a}) . mapping _DateTime -- | The abusive experience enforcement status of the site. ssrFilterStatus :: Lens' SiteSummaryResponse (Maybe SiteSummaryResponseFilterStatus) ssrFilterStatus = lens _ssrFilterStatus (\ s a -> s{_ssrFilterStatus = a}) -- | Whether the site is currently under review. ssrUnderReview :: Lens' SiteSummaryResponse (Maybe Bool) ssrUnderReview = lens _ssrUnderReview (\ s a -> s{_ssrUnderReview = a}) -- | A link that leads to a full abusive experience report. ssrReportURL :: Lens' SiteSummaryResponse (Maybe Text) ssrReportURL = lens _ssrReportURL (\ s a -> s{_ssrReportURL = a}) -- | The name of the site reviewed. ssrReviewedSite :: Lens' SiteSummaryResponse (Maybe Text) ssrReviewedSite = lens _ssrReviewedSite (\ s a -> s{_ssrReviewedSite = a}) instance FromJSON SiteSummaryResponse where parseJSON = withObject "SiteSummaryResponse" (\ o -> SiteSummaryResponse' <$> (o .:? "abusiveStatus") <*> (o .:? "enforcementTime") <*> (o .:? "lastChangeTime") <*> (o .:? "filterStatus") <*> (o .:? "underReview") <*> (o .:? "reportUrl") <*> (o .:? "reviewedSite")) instance ToJSON SiteSummaryResponse where toJSON SiteSummaryResponse'{..} = object (catMaybes [("abusiveStatus" .=) <$> _ssrAbusiveStatus, ("enforcementTime" .=) <$> _ssrEnforcementTime, ("lastChangeTime" .=) <$> _ssrLastChangeTime, ("filterStatus" .=) <$> _ssrFilterStatus, ("underReview" .=) <$> _ssrUnderReview, ("reportUrl" .=) <$> _ssrReportURL, ("reviewedSite" .=) <$> _ssrReviewedSite]) -- | Response message for ListViolatingSites. -- -- /See:/ 'violatingSitesResponse' smart constructor. newtype ViolatingSitesResponse = ViolatingSitesResponse' { _vsrViolatingSites :: Maybe [SiteSummaryResponse] } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'ViolatingSitesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'vsrViolatingSites' violatingSitesResponse :: ViolatingSitesResponse violatingSitesResponse = ViolatingSitesResponse' { _vsrViolatingSites = Nothing } -- | A list of summaries of violating sites. vsrViolatingSites :: Lens' ViolatingSitesResponse [SiteSummaryResponse] vsrViolatingSites = lens _vsrViolatingSites (\ s a -> s{_vsrViolatingSites = a}) . _Default . _Coerce instance FromJSON ViolatingSitesResponse where parseJSON = withObject "ViolatingSitesResponse" (\ o -> ViolatingSitesResponse' <$> (o .:? "violatingSites" .!= mempty)) instance ToJSON ViolatingSitesResponse where toJSON ViolatingSitesResponse'{..} = object (catMaybes [("violatingSites" .=) <$> _vsrViolatingSites])