diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`0.5.0`
+`1.0.0`
 
 
 ## Description
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,2 +1,3 @@
-import           Distribution.Simple
+import Distribution.Simple
+
 main = defaultMain
diff --git a/gen/Gogol/AbusiveExperienceReport.hs b/gen/Gogol/AbusiveExperienceReport.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AbusiveExperienceReport.hs
@@ -0,0 +1,69 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AbusiveExperienceReport
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Views Abusive Experience Report data, and gets a list of sites that have a significant number of abusive experiences.
+--
+-- /See:/ <https://developers.google.com/abusive-experience-report/ Abusive Experience Report API Reference>
+module Gogol.AbusiveExperienceReport
+  ( -- * Configuration
+    abusiveExperienceReportService,
+
+    -- * Resources
+
+    -- ** abusiveexperiencereport.sites.get
+    AbusiveExperienceReportSitesGetResource,
+    AbusiveExperienceReportSitesGet (..),
+    newAbusiveExperienceReportSitesGet,
+
+    -- ** abusiveexperiencereport.violatingSites.list
+    AbusiveExperienceReportViolatingSitesListResource,
+    AbusiveExperienceReportViolatingSitesList (..),
+    newAbusiveExperienceReportViolatingSitesList,
+
+    -- * Types
+
+    -- ** Xgafv
+    Xgafv (..),
+
+    -- ** SiteSummaryResponse
+    SiteSummaryResponse (..),
+    newSiteSummaryResponse,
+
+    -- ** SiteSummaryResponse_AbusiveStatus
+    SiteSummaryResponse_AbusiveStatus (..),
+
+    -- ** SiteSummaryResponse_FilterStatus
+    SiteSummaryResponse_FilterStatus (..),
+
+    -- ** ViolatingSitesResponse
+    ViolatingSitesResponse (..),
+    newViolatingSitesResponse,
+  )
+where
+
+import Gogol.AbusiveExperienceReport.Sites.Get
+import Gogol.AbusiveExperienceReport.Types
+import Gogol.AbusiveExperienceReport.ViolatingSites.List
diff --git a/gen/Gogol/AbusiveExperienceReport/Internal/Product.hs b/gen/Gogol/AbusiveExperienceReport/Internal/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AbusiveExperienceReport/Internal/Product.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AbusiveExperienceReport.Internal.Product
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Gogol.AbusiveExperienceReport.Internal.Product
+  ( -- * SiteSummaryResponse
+    SiteSummaryResponse (..),
+    newSiteSummaryResponse,
+
+    -- * ViolatingSitesResponse
+    ViolatingSitesResponse (..),
+    newViolatingSitesResponse,
+  )
+where
+
+import Gogol.AbusiveExperienceReport.Internal.Sum
+import Gogol.Prelude qualified as Core
+
+-- | Response message for GetSiteSummary.
+--
+-- /See:/ 'newSiteSummaryResponse' smart constructor.
+data SiteSummaryResponse = SiteSummaryResponse
+  { -- | The site\'s Abusive Experience Report status.
+    abusiveStatus :: (Core.Maybe SiteSummaryResponse_AbusiveStatus),
+    -- | The time at which <https://support.google.com/webtools/answer/7538608 enforcement> against the site began or will begin. Not set when the filter_status is OFF.
+    enforcementTime :: (Core.Maybe Core.DateTime),
+    -- | The site\'s <https://support.google.com/webtools/answer/7538608 enforcement status>.
+    filterStatus :: (Core.Maybe SiteSummaryResponse_FilterStatus),
+    -- | The time at which the site\'s status last changed.
+    lastChangeTime :: (Core.Maybe Core.DateTime),
+    -- | A link to the full Abusive Experience Report for the site. Not set in ViolatingSitesResponse. Note that you must complete the <https://support.google.com/webmasters/answer/9008080 Search Console verification process> for the site before you can access the full report.
+    reportUrl :: (Core.Maybe Core.Text),
+    -- | The name of the reviewed site, e.g. @google.com@.
+    reviewedSite :: (Core.Maybe Core.Text),
+    -- | Whether the site is currently under review.
+    underReview :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'SiteSummaryResponse' with the minimum fields required to make a request.
+newSiteSummaryResponse ::
+  SiteSummaryResponse
+newSiteSummaryResponse =
+  SiteSummaryResponse
+    { abusiveStatus = Core.Nothing,
+      enforcementTime = Core.Nothing,
+      filterStatus = Core.Nothing,
+      lastChangeTime = Core.Nothing,
+      reportUrl = Core.Nothing,
+      reviewedSite = Core.Nothing,
+      underReview = Core.Nothing
+    }
+
+instance Core.FromJSON SiteSummaryResponse where
+  parseJSON =
+    Core.withObject
+      "SiteSummaryResponse"
+      ( \o ->
+          SiteSummaryResponse
+            Core.<$> (o Core..:? "abusiveStatus")
+            Core.<*> (o Core..:? "enforcementTime")
+            Core.<*> (o Core..:? "filterStatus")
+            Core.<*> (o Core..:? "lastChangeTime")
+            Core.<*> (o Core..:? "reportUrl")
+            Core.<*> (o Core..:? "reviewedSite")
+            Core.<*> (o Core..:? "underReview")
+      )
+
+instance Core.ToJSON SiteSummaryResponse where
+  toJSON SiteSummaryResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("abusiveStatus" Core..=) Core.<$> abusiveStatus,
+            ("enforcementTime" Core..=) Core.<$> enforcementTime,
+            ("filterStatus" Core..=) Core.<$> filterStatus,
+            ("lastChangeTime" Core..=) Core.<$> lastChangeTime,
+            ("reportUrl" Core..=) Core.<$> reportUrl,
+            ("reviewedSite" Core..=) Core.<$> reviewedSite,
+            ("underReview" Core..=) Core.<$> underReview
+          ]
+      )
+
+-- | Response message for ListViolatingSites.
+--
+-- /See:/ 'newViolatingSitesResponse' smart constructor.
+newtype ViolatingSitesResponse = ViolatingSitesResponse
+  { -- | The list of violating sites.
+    violatingSites :: (Core.Maybe [SiteSummaryResponse])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ViolatingSitesResponse' with the minimum fields required to make a request.
+newViolatingSitesResponse ::
+  ViolatingSitesResponse
+newViolatingSitesResponse =
+  ViolatingSitesResponse {violatingSites = Core.Nothing}
+
+instance Core.FromJSON ViolatingSitesResponse where
+  parseJSON =
+    Core.withObject
+      "ViolatingSitesResponse"
+      ( \o ->
+          ViolatingSitesResponse Core.<$> (o Core..:? "violatingSites")
+      )
+
+instance Core.ToJSON ViolatingSitesResponse where
+  toJSON ViolatingSitesResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [("violatingSites" Core..=) Core.<$> violatingSites]
+      )
diff --git a/gen/Gogol/AbusiveExperienceReport/Internal/Sum.hs b/gen/Gogol/AbusiveExperienceReport/Internal/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AbusiveExperienceReport/Internal/Sum.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AbusiveExperienceReport.Internal.Sum
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Gogol.AbusiveExperienceReport.Internal.Sum
+  ( -- * Xgafv
+    Xgafv
+      ( Xgafv_1,
+        Xgafv_2,
+        ..
+      ),
+
+    -- * SiteSummaryResponse_AbusiveStatus
+    SiteSummaryResponse_AbusiveStatus
+      ( SiteSummaryResponse_AbusiveStatus_Unknown,
+        SiteSummaryResponse_AbusiveStatus_Passing,
+        SiteSummaryResponse_AbusiveStatus_Failing,
+        ..
+      ),
+
+    -- * SiteSummaryResponse_FilterStatus
+    SiteSummaryResponse_FilterStatus
+      ( SiteSummaryResponse_FilterStatus_Unknown,
+        SiteSummaryResponse_FilterStatus_ON,
+        SiteSummaryResponse_FilterStatus_Off,
+        SiteSummaryResponse_FilterStatus_Paused,
+        SiteSummaryResponse_FilterStatus_Pending,
+        ..
+      ),
+  )
+where
+
+import Gogol.Prelude qualified as Core
+
+-- | V1 error format.
+newtype Xgafv = Xgafv {fromXgafv :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | v1 error format
+pattern Xgafv_1 :: Xgafv
+pattern Xgafv_1 = Xgafv "1"
+
+-- | v2 error format
+pattern Xgafv_2 :: Xgafv
+pattern Xgafv_2 = Xgafv "2"
+
+{-# COMPLETE
+  Xgafv_1,
+  Xgafv_2,
+  Xgafv
+  #-}
+
+-- | The site\'s Abusive Experience Report status.
+newtype SiteSummaryResponse_AbusiveStatus = SiteSummaryResponse_AbusiveStatus {fromSiteSummaryResponse_AbusiveStatus :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | Not reviewed.
+pattern SiteSummaryResponse_AbusiveStatus_Unknown :: SiteSummaryResponse_AbusiveStatus
+pattern SiteSummaryResponse_AbusiveStatus_Unknown = SiteSummaryResponse_AbusiveStatus "UNKNOWN"
+
+-- | Passing.
+pattern SiteSummaryResponse_AbusiveStatus_Passing :: SiteSummaryResponse_AbusiveStatus
+pattern SiteSummaryResponse_AbusiveStatus_Passing = SiteSummaryResponse_AbusiveStatus "PASSING"
+
+-- | Failing.
+pattern SiteSummaryResponse_AbusiveStatus_Failing :: SiteSummaryResponse_AbusiveStatus
+pattern SiteSummaryResponse_AbusiveStatus_Failing = SiteSummaryResponse_AbusiveStatus "FAILING"
+
+{-# COMPLETE
+  SiteSummaryResponse_AbusiveStatus_Unknown,
+  SiteSummaryResponse_AbusiveStatus_Passing,
+  SiteSummaryResponse_AbusiveStatus_Failing,
+  SiteSummaryResponse_AbusiveStatus
+  #-}
+
+-- | The site\'s <https://support.google.com/webtools/answer/7538608 enforcement status>.
+newtype SiteSummaryResponse_FilterStatus = SiteSummaryResponse_FilterStatus {fromSiteSummaryResponse_FilterStatus :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | N\/A.
+pattern SiteSummaryResponse_FilterStatus_Unknown :: SiteSummaryResponse_FilterStatus
+pattern SiteSummaryResponse_FilterStatus_Unknown = SiteSummaryResponse_FilterStatus "UNKNOWN"
+
+-- | Enforcement is on.
+pattern SiteSummaryResponse_FilterStatus_ON :: SiteSummaryResponse_FilterStatus
+pattern SiteSummaryResponse_FilterStatus_ON = SiteSummaryResponse_FilterStatus "ON"
+
+-- | Enforcement is off.
+pattern SiteSummaryResponse_FilterStatus_Off :: SiteSummaryResponse_FilterStatus
+pattern SiteSummaryResponse_FilterStatus_Off = SiteSummaryResponse_FilterStatus "OFF"
+
+-- | Enforcement is paused.
+pattern SiteSummaryResponse_FilterStatus_Paused :: SiteSummaryResponse_FilterStatus
+pattern SiteSummaryResponse_FilterStatus_Paused = SiteSummaryResponse_FilterStatus "PAUSED"
+
+-- | Enforcement is pending.
+pattern SiteSummaryResponse_FilterStatus_Pending :: SiteSummaryResponse_FilterStatus
+pattern SiteSummaryResponse_FilterStatus_Pending = SiteSummaryResponse_FilterStatus "PENDING"
+
+{-# COMPLETE
+  SiteSummaryResponse_FilterStatus_Unknown,
+  SiteSummaryResponse_FilterStatus_ON,
+  SiteSummaryResponse_FilterStatus_Off,
+  SiteSummaryResponse_FilterStatus_Paused,
+  SiteSummaryResponse_FilterStatus_Pending,
+  SiteSummaryResponse_FilterStatus
+  #-}
diff --git a/gen/Gogol/AbusiveExperienceReport/Sites/Get.hs b/gen/Gogol/AbusiveExperienceReport/Sites/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AbusiveExperienceReport/Sites/Get.hs
@@ -0,0 +1,107 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AbusiveExperienceReport.Sites.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a site\'s Abusive Experience Report summary.
+--
+-- /See:/ <https://developers.google.com/abusive-experience-report/ Abusive Experience Report API Reference> for @abusiveexperiencereport.sites.get@.
+module Gogol.AbusiveExperienceReport.Sites.Get
+  ( -- * Resource
+    AbusiveExperienceReportSitesGetResource,
+
+    -- ** Constructing a Request
+    AbusiveExperienceReportSitesGet (..),
+    newAbusiveExperienceReportSitesGet,
+  )
+where
+
+import Gogol.AbusiveExperienceReport.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @abusiveexperiencereport.sites.get@ method which the
+-- 'AbusiveExperienceReportSitesGet' request conforms to.
+type AbusiveExperienceReportSitesGetResource =
+  "v1"
+    Core.:> Core.Capture "name" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SiteSummaryResponse
+
+-- | Gets a site\'s Abusive Experience Report summary.
+--
+-- /See:/ 'newAbusiveExperienceReportSitesGet' smart constructor.
+data AbusiveExperienceReportSitesGet = AbusiveExperienceReportSitesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Required. The name of the site whose summary to get, e.g. @sites\/http%3A%2F%2Fwww.google.com%2F@. Format: @sites\/{site}@
+    name :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'AbusiveExperienceReportSitesGet' with the minimum fields required to make a request.
+newAbusiveExperienceReportSitesGet ::
+  -- |  Required. The name of the site whose summary to get, e.g. @sites\/http%3A%2F%2Fwww.google.com%2F@. Format: @sites\/{site}@ See 'name'.
+  Core.Text ->
+  AbusiveExperienceReportSitesGet
+newAbusiveExperienceReportSitesGet name =
+  AbusiveExperienceReportSitesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      name = name,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest AbusiveExperienceReportSitesGet where
+  type Rs AbusiveExperienceReportSitesGet = SiteSummaryResponse
+  type Scopes AbusiveExperienceReportSitesGet = '[]
+  requestClient AbusiveExperienceReportSitesGet {..} =
+    go
+      name
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      abusiveExperienceReportService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy AbusiveExperienceReportSitesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/AbusiveExperienceReport/Types.hs b/gen/Gogol/AbusiveExperienceReport/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AbusiveExperienceReport/Types.hs
@@ -0,0 +1,60 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AbusiveExperienceReport.Types
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Gogol.AbusiveExperienceReport.Types
+  ( -- * Configuration
+    abusiveExperienceReportService,
+
+    -- * Types
+
+    -- ** Xgafv
+    Xgafv (..),
+
+    -- ** SiteSummaryResponse
+    SiteSummaryResponse (..),
+    newSiteSummaryResponse,
+
+    -- ** SiteSummaryResponse_AbusiveStatus
+    SiteSummaryResponse_AbusiveStatus (..),
+
+    -- ** SiteSummaryResponse_FilterStatus
+    SiteSummaryResponse_FilterStatus (..),
+
+    -- ** ViolatingSitesResponse
+    ViolatingSitesResponse (..),
+    newViolatingSitesResponse,
+  )
+where
+
+import Gogol.AbusiveExperienceReport.Internal.Product
+import Gogol.AbusiveExperienceReport.Internal.Sum
+import Gogol.Prelude qualified as Core
+
+-- | Default request referring to version @v1@ of the Abusive Experience Report API. This contains the host and root path used as a starting point for constructing service requests.
+abusiveExperienceReportService :: Core.ServiceConfig
+abusiveExperienceReportService =
+  Core.defaultService
+    (Core.ServiceId "abusiveexperiencereport:v1")
+    "abusiveexperiencereport.googleapis.com"
diff --git a/gen/Gogol/AbusiveExperienceReport/ViolatingSites/List.hs b/gen/Gogol/AbusiveExperienceReport/ViolatingSites/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AbusiveExperienceReport/ViolatingSites/List.hs
@@ -0,0 +1,108 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AbusiveExperienceReport.ViolatingSites.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists sites that are failing in the Abusive Experience Report.
+--
+-- /See:/ <https://developers.google.com/abusive-experience-report/ Abusive Experience Report API Reference> for @abusiveexperiencereport.violatingSites.list@.
+module Gogol.AbusiveExperienceReport.ViolatingSites.List
+  ( -- * Resource
+    AbusiveExperienceReportViolatingSitesListResource,
+
+    -- ** Constructing a Request
+    AbusiveExperienceReportViolatingSitesList (..),
+    newAbusiveExperienceReportViolatingSitesList,
+  )
+where
+
+import Gogol.AbusiveExperienceReport.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @abusiveexperiencereport.violatingSites.list@ method which the
+-- 'AbusiveExperienceReportViolatingSitesList' request conforms to.
+type AbusiveExperienceReportViolatingSitesListResource =
+  "v1"
+    Core.:> "violatingSites"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ViolatingSitesResponse
+
+-- | Lists sites that are failing in the Abusive Experience Report.
+--
+-- /See:/ 'newAbusiveExperienceReportViolatingSitesList' smart constructor.
+data AbusiveExperienceReportViolatingSitesList = AbusiveExperienceReportViolatingSitesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'AbusiveExperienceReportViolatingSitesList' with the minimum fields required to make a request.
+newAbusiveExperienceReportViolatingSitesList ::
+  AbusiveExperienceReportViolatingSitesList
+newAbusiveExperienceReportViolatingSitesList =
+  AbusiveExperienceReportViolatingSitesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    AbusiveExperienceReportViolatingSitesList
+  where
+  type
+    Rs AbusiveExperienceReportViolatingSitesList =
+      ViolatingSitesResponse
+  type Scopes AbusiveExperienceReportViolatingSitesList = '[]
+  requestClient AbusiveExperienceReportViolatingSitesList {..} =
+    go
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      abusiveExperienceReportService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy AbusiveExperienceReportViolatingSitesListResource
+          )
+          Core.mempty
diff --git a/gen/Network/Google/AbusiveExperienceReport.hs b/gen/Network/Google/AbusiveExperienceReport.hs
deleted file mode 100644
--- a/gen/Network/Google/AbusiveExperienceReport.hs
+++ /dev/null
@@ -1,78 +0,0 @@
-{-# LANGUAGE DataKinds         #-}
-{-# LANGUAGE NoImplicitPrelude #-}
-{-# LANGUAGE TypeOperators     #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-
--- |
--- Module      : Network.Google.AbusiveExperienceReport
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Views Abusive Experience Report data, and gets a list of sites that have
--- a significant number of abusive experiences.
---
--- /See:/ <https://developers.google.com/abusive-experience-report/ Abusive Experience Report API Reference>
-module Network.Google.AbusiveExperienceReport
-    (
-    -- * Service Configuration
-      abusiveExperienceReportService
-
-    -- * OAuth Scopes
-    , xapiZooScope
-
-    -- * API Declaration
-    , AbusiveExperienceReportAPI
-
-    -- * Resources
-
-    -- ** abusiveexperiencereport.sites.get
-    , module Network.Google.Resource.AbusiveExperienceReport.Sites.Get
-
-    -- ** abusiveexperiencereport.violatingSites.list
-    , module Network.Google.Resource.AbusiveExperienceReport.ViolatingSites.List
-
-    -- * Types
-
-    -- ** SiteSummaryResponse
-    , SiteSummaryResponse
-    , siteSummaryResponse
-    , ssrAbusiveStatus
-    , ssrEnforcementTime
-    , ssrLastChangeTime
-    , ssrFilterStatus
-    , ssrUnderReview
-    , ssrReportURL
-    , ssrReviewedSite
-
-    -- ** SiteSummaryResponseAbusiveStatus
-    , SiteSummaryResponseAbusiveStatus (..)
-
-    -- ** ViolatingSitesResponse
-    , ViolatingSitesResponse
-    , violatingSitesResponse
-    , vsrViolatingSites
-
-    -- ** Xgafv
-    , Xgafv (..)
-
-    -- ** SiteSummaryResponseFilterStatus
-    , SiteSummaryResponseFilterStatus (..)
-    ) where
-
-import           Network.Google.AbusiveExperienceReport.Types
-import           Network.Google.Prelude
-import           Network.Google.Resource.AbusiveExperienceReport.Sites.Get
-import           Network.Google.Resource.AbusiveExperienceReport.ViolatingSites.List
-
-{- $resources
-TODO
--}
-
--- | Represents the entirety of the methods and resources available for the Abusive Experience Report API service.
-type AbusiveExperienceReportAPI =
-     ViolatingSitesListResource :<|> SitesGetResource
diff --git a/gen/Network/Google/AbusiveExperienceReport/Types.hs b/gen/Network/Google/AbusiveExperienceReport/Types.hs
deleted file mode 100644
--- a/gen/Network/Google/AbusiveExperienceReport/Types.hs
+++ /dev/null
@@ -1,64 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- |
--- Module      : Network.Google.AbusiveExperienceReport.Types
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.Google.AbusiveExperienceReport.Types
-    (
-    -- * Service Configuration
-      abusiveExperienceReportService
-
-    -- * OAuth Scopes
-    , xapiZooScope
-
-    -- * SiteSummaryResponse
-    , SiteSummaryResponse
-    , siteSummaryResponse
-    , ssrAbusiveStatus
-    , ssrEnforcementTime
-    , ssrLastChangeTime
-    , ssrFilterStatus
-    , ssrUnderReview
-    , ssrReportURL
-    , ssrReviewedSite
-
-    -- * SiteSummaryResponseAbusiveStatus
-    , SiteSummaryResponseAbusiveStatus (..)
-
-    -- * ViolatingSitesResponse
-    , ViolatingSitesResponse
-    , violatingSitesResponse
-    , vsrViolatingSites
-
-    -- * Xgafv
-    , Xgafv (..)
-
-    -- * SiteSummaryResponseFilterStatus
-    , SiteSummaryResponseFilterStatus (..)
-    ) where
-
-import           Network.Google.AbusiveExperienceReport.Types.Product
-import           Network.Google.AbusiveExperienceReport.Types.Sum
-import           Network.Google.Prelude
-
--- | Default request referring to version 'v1' of the Abusive Experience Report API. This contains the host and root path used as a starting point for constructing service requests.
-abusiveExperienceReportService :: ServiceConfig
-abusiveExperienceReportService
-  = defaultService
-      (ServiceId "abusiveexperiencereport:v1")
-      "abusiveexperiencereport.googleapis.com"
-
--- | Test scope for access to the Zoo service
-xapiZooScope :: Proxy '["https://www.googleapis.com/auth/xapi.zoo"]
-xapiZooScope = Proxy
diff --git a/gen/Network/Google/AbusiveExperienceReport/Types/Product.hs b/gen/Network/Google/AbusiveExperienceReport/Types/Product.hs
deleted file mode 100644
--- a/gen/Network/Google/AbusiveExperienceReport/Types/Product.hs
+++ /dev/null
@@ -1,176 +0,0 @@
-{-# 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 <brendan.g.hay@gmail.com>
--- 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])
diff --git a/gen/Network/Google/AbusiveExperienceReport/Types/Sum.hs b/gen/Network/Google/AbusiveExperienceReport/Types/Sum.hs
deleted file mode 100644
--- a/gen/Network/Google/AbusiveExperienceReport/Types/Sum.hs
+++ /dev/null
@@ -1,126 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE LambdaCase         #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- |
--- Module      : Network.Google.AbusiveExperienceReport.Types.Sum
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.Google.AbusiveExperienceReport.Types.Sum where
-
-import           Network.Google.Prelude hiding (Bytes)
-
--- | The status of the site reviewed for the abusive experiences.
-data SiteSummaryResponseAbusiveStatus
-    = Unknown
-      -- ^ @UNKNOWN@
-      -- Not reviewed.
-    | Passing
-      -- ^ @PASSING@
-      -- Passing.
-    | Failing
-      -- ^ @FAILING@
-      -- Failing.
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SiteSummaryResponseAbusiveStatus
-
-instance FromHttpApiData SiteSummaryResponseAbusiveStatus where
-    parseQueryParam = \case
-        "UNKNOWN" -> Right Unknown
-        "PASSING" -> Right Passing
-        "FAILING" -> Right Failing
-        x -> Left ("Unable to parse SiteSummaryResponseAbusiveStatus from: " <> x)
-
-instance ToHttpApiData SiteSummaryResponseAbusiveStatus where
-    toQueryParam = \case
-        Unknown -> "UNKNOWN"
-        Passing -> "PASSING"
-        Failing -> "FAILING"
-
-instance FromJSON SiteSummaryResponseAbusiveStatus where
-    parseJSON = parseJSONText "SiteSummaryResponseAbusiveStatus"
-
-instance ToJSON SiteSummaryResponseAbusiveStatus where
-    toJSON = toJSONText
-
--- | V1 error format.
-data Xgafv
-    = X1
-      -- ^ @1@
-      -- v1 error format
-    | X2
-      -- ^ @2@
-      -- v2 error format
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable Xgafv
-
-instance FromHttpApiData Xgafv where
-    parseQueryParam = \case
-        "1" -> Right X1
-        "2" -> Right X2
-        x -> Left ("Unable to parse Xgafv from: " <> x)
-
-instance ToHttpApiData Xgafv where
-    toQueryParam = \case
-        X1 -> "1"
-        X2 -> "2"
-
-instance FromJSON Xgafv where
-    parseJSON = parseJSONText "Xgafv"
-
-instance ToJSON Xgafv where
-    toJSON = toJSONText
-
--- | The abusive experience enforcement status of the site.
-data SiteSummaryResponseFilterStatus
-    = SSRFSUnknown
-      -- ^ @UNKNOWN@
-      -- N\/A.
-    | SSRFSON
-      -- ^ @ON@
-      -- Ad filtering is on.
-    | SSRFSOff
-      -- ^ @OFF@
-      -- Ad filtering is off.
-    | SSRFSPaused
-      -- ^ @PAUSED@
-      -- Ad filtering is paused.
-    | SSRFSPending
-      -- ^ @PENDING@
-      -- Ad filtering is pending.
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SiteSummaryResponseFilterStatus
-
-instance FromHttpApiData SiteSummaryResponseFilterStatus where
-    parseQueryParam = \case
-        "UNKNOWN" -> Right SSRFSUnknown
-        "ON" -> Right SSRFSON
-        "OFF" -> Right SSRFSOff
-        "PAUSED" -> Right SSRFSPaused
-        "PENDING" -> Right SSRFSPending
-        x -> Left ("Unable to parse SiteSummaryResponseFilterStatus from: " <> x)
-
-instance ToHttpApiData SiteSummaryResponseFilterStatus where
-    toQueryParam = \case
-        SSRFSUnknown -> "UNKNOWN"
-        SSRFSON -> "ON"
-        SSRFSOff -> "OFF"
-        SSRFSPaused -> "PAUSED"
-        SSRFSPending -> "PENDING"
-
-instance FromJSON SiteSummaryResponseFilterStatus where
-    parseJSON = parseJSONText "SiteSummaryResponseFilterStatus"
-
-instance ToJSON SiteSummaryResponseFilterStatus where
-    toJSON = toJSONText
diff --git a/gen/Network/Google/Resource/AbusiveExperienceReport/Sites/Get.hs b/gen/Network/Google/Resource/AbusiveExperienceReport/Sites/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/AbusiveExperienceReport/Sites/Get.hs
+++ /dev/null
@@ -1,154 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.AbusiveExperienceReport.Sites.Get
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Gets a summary of the abusive experience rating of a site.
---
--- /See:/ <https://developers.google.com/abusive-experience-report/ Abusive Experience Report API Reference> for @abusiveexperiencereport.sites.get@.
-module Network.Google.Resource.AbusiveExperienceReport.Sites.Get
-    (
-    -- * REST Resource
-      SitesGetResource
-
-    -- * Creating a Request
-    , sitesGet
-    , SitesGet
-
-    -- * Request Lenses
-    , sgXgafv
-    , sgUploadProtocol
-    , sgAccessToken
-    , sgUploadType
-    , sgName
-    , sgCallback
-    ) where
-
-import           Network.Google.AbusiveExperienceReport.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @abusiveexperiencereport.sites.get@ method which the
--- 'SitesGet' request conforms to.
-type SitesGetResource =
-     "v1" :>
-       Capture "name" Text :>
-         QueryParam "$.xgafv" Xgafv :>
-           QueryParam "upload_protocol" Text :>
-             QueryParam "access_token" Text :>
-               QueryParam "uploadType" Text :>
-                 QueryParam "callback" Text :>
-                   QueryParam "alt" AltJSON :>
-                     Get '[JSON] SiteSummaryResponse
-
--- | Gets a summary of the abusive experience rating of a site.
---
--- /See:/ 'sitesGet' smart constructor.
-data SitesGet =
-  SitesGet'
-    { _sgXgafv          :: !(Maybe Xgafv)
-    , _sgUploadProtocol :: !(Maybe Text)
-    , _sgAccessToken    :: !(Maybe Text)
-    , _sgUploadType     :: !(Maybe Text)
-    , _sgName           :: !Text
-    , _sgCallback       :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SitesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sgXgafv'
---
--- * 'sgUploadProtocol'
---
--- * 'sgAccessToken'
---
--- * 'sgUploadType'
---
--- * 'sgName'
---
--- * 'sgCallback'
-sitesGet
-    :: Text -- ^ 'sgName'
-    -> SitesGet
-sitesGet pSgName_ =
-  SitesGet'
-    { _sgXgafv = Nothing
-    , _sgUploadProtocol = Nothing
-    , _sgAccessToken = Nothing
-    , _sgUploadType = Nothing
-    , _sgName = pSgName_
-    , _sgCallback = Nothing
-    }
-
-
--- | V1 error format.
-sgXgafv :: Lens' SitesGet (Maybe Xgafv)
-sgXgafv = lens _sgXgafv (\ s a -> s{_sgXgafv = a})
-
--- | Upload protocol for media (e.g. \"raw\", \"multipart\").
-sgUploadProtocol :: Lens' SitesGet (Maybe Text)
-sgUploadProtocol
-  = lens _sgUploadProtocol
-      (\ s a -> s{_sgUploadProtocol = a})
-
--- | OAuth access token.
-sgAccessToken :: Lens' SitesGet (Maybe Text)
-sgAccessToken
-  = lens _sgAccessToken
-      (\ s a -> s{_sgAccessToken = a})
-
--- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
-sgUploadType :: Lens' SitesGet (Maybe Text)
-sgUploadType
-  = lens _sgUploadType (\ s a -> s{_sgUploadType = a})
-
--- | The required site name. This is the site property whose abusive
--- experiences have been reviewed, and it must be URL-encoded. For example,
--- sites\/https%3A%2F%2Fwww.google.com. The server will return an error of
--- BAD_REQUEST if this field is not filled in. Note that if the site
--- property is not yet verified in Search Console, the reportUrl field
--- returned by the API will lead to the verification page, prompting the
--- user to go through that process before they can gain access to the
--- Abusive Experience Report.
-sgName :: Lens' SitesGet Text
-sgName = lens _sgName (\ s a -> s{_sgName = a})
-
--- | JSONP
-sgCallback :: Lens' SitesGet (Maybe Text)
-sgCallback
-  = lens _sgCallback (\ s a -> s{_sgCallback = a})
-
-instance GoogleRequest SitesGet where
-        type Rs SitesGet = SiteSummaryResponse
-        type Scopes SitesGet =
-             '["https://www.googleapis.com/auth/xapi.zoo"]
-        requestClient SitesGet'{..}
-          = go _sgName _sgXgafv _sgUploadProtocol
-              _sgAccessToken
-              _sgUploadType
-              _sgCallback
-              (Just AltJSON)
-              abusiveExperienceReportService
-          where go
-                  = buildClient (Proxy :: Proxy SitesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/AbusiveExperienceReport/ViolatingSites/List.hs b/gen/Network/Google/Resource/AbusiveExperienceReport/ViolatingSites/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/AbusiveExperienceReport/ViolatingSites/List.hs
+++ /dev/null
@@ -1,138 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.AbusiveExperienceReport.ViolatingSites.List
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Lists sites with Abusive Experience Report statuses of \"Failing\".
---
--- /See:/ <https://developers.google.com/abusive-experience-report/ Abusive Experience Report API Reference> for @abusiveexperiencereport.violatingSites.list@.
-module Network.Google.Resource.AbusiveExperienceReport.ViolatingSites.List
-    (
-    -- * REST Resource
-      ViolatingSitesListResource
-
-    -- * Creating a Request
-    , violatingSitesList
-    , ViolatingSitesList
-
-    -- * Request Lenses
-    , vslXgafv
-    , vslUploadProtocol
-    , vslAccessToken
-    , vslUploadType
-    , vslCallback
-    ) where
-
-import           Network.Google.AbusiveExperienceReport.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @abusiveexperiencereport.violatingSites.list@ method which the
--- 'ViolatingSitesList' request conforms to.
-type ViolatingSitesListResource =
-     "v1" :>
-       "violatingSites" :>
-         QueryParam "$.xgafv" Xgafv :>
-           QueryParam "upload_protocol" Text :>
-             QueryParam "access_token" Text :>
-               QueryParam "uploadType" Text :>
-                 QueryParam "callback" Text :>
-                   QueryParam "alt" AltJSON :>
-                     Get '[JSON] ViolatingSitesResponse
-
--- | Lists sites with Abusive Experience Report statuses of \"Failing\".
---
--- /See:/ 'violatingSitesList' smart constructor.
-data ViolatingSitesList =
-  ViolatingSitesList'
-    { _vslXgafv          :: !(Maybe Xgafv)
-    , _vslUploadProtocol :: !(Maybe Text)
-    , _vslAccessToken    :: !(Maybe Text)
-    , _vslUploadType     :: !(Maybe Text)
-    , _vslCallback       :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ViolatingSitesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vslXgafv'
---
--- * 'vslUploadProtocol'
---
--- * 'vslAccessToken'
---
--- * 'vslUploadType'
---
--- * 'vslCallback'
-violatingSitesList
-    :: ViolatingSitesList
-violatingSitesList =
-  ViolatingSitesList'
-    { _vslXgafv = Nothing
-    , _vslUploadProtocol = Nothing
-    , _vslAccessToken = Nothing
-    , _vslUploadType = Nothing
-    , _vslCallback = Nothing
-    }
-
-
--- | V1 error format.
-vslXgafv :: Lens' ViolatingSitesList (Maybe Xgafv)
-vslXgafv = lens _vslXgafv (\ s a -> s{_vslXgafv = a})
-
--- | Upload protocol for media (e.g. \"raw\", \"multipart\").
-vslUploadProtocol :: Lens' ViolatingSitesList (Maybe Text)
-vslUploadProtocol
-  = lens _vslUploadProtocol
-      (\ s a -> s{_vslUploadProtocol = a})
-
--- | OAuth access token.
-vslAccessToken :: Lens' ViolatingSitesList (Maybe Text)
-vslAccessToken
-  = lens _vslAccessToken
-      (\ s a -> s{_vslAccessToken = a})
-
--- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
-vslUploadType :: Lens' ViolatingSitesList (Maybe Text)
-vslUploadType
-  = lens _vslUploadType
-      (\ s a -> s{_vslUploadType = a})
-
--- | JSONP
-vslCallback :: Lens' ViolatingSitesList (Maybe Text)
-vslCallback
-  = lens _vslCallback (\ s a -> s{_vslCallback = a})
-
-instance GoogleRequest ViolatingSitesList where
-        type Rs ViolatingSitesList = ViolatingSitesResponse
-        type Scopes ViolatingSitesList =
-             '["https://www.googleapis.com/auth/xapi.zoo"]
-        requestClient ViolatingSitesList'{..}
-          = go _vslXgafv _vslUploadProtocol _vslAccessToken
-              _vslUploadType
-              _vslCallback
-              (Just AltJSON)
-              abusiveExperienceReportService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ViolatingSitesListResource)
-                      mempty
diff --git a/gogol-abusiveexperiencereport.cabal b/gogol-abusiveexperiencereport.cabal
--- a/gogol-abusiveexperiencereport.cabal
+++ b/gogol-abusiveexperiencereport.cabal
@@ -1,48 +1,62 @@
-name:                  gogol-abusiveexperiencereport
-version:               0.5.0
-synopsis:              Google Abusive Experience Report SDK.
-homepage:              https://github.com/brendanhay/gogol
-bug-reports:           https://github.com/brendanhay/gogol/issues
-license:               OtherLicense
-license-file:          LICENSE
-author:                Brendan Hay
-maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2015-2016 Brendan Hay
-category:              Network, Google, Cloud
-build-type:            Simple
-cabal-version:         >= 1.10
-extra-source-files:    README.md src/.gitkeep
+cabal-version:      2.2
+name:               gogol-abusiveexperiencereport
+version:            1.0.0
+synopsis:           Google Abusive Experience Report SDK.
+homepage:           https://github.com/brendanhay/gogol
+bug-reports:        https://github.com/brendanhay/gogol/issues
+license:            MPL-2.0
+license-file:       LICENSE
+author:             Brendan Hay
+maintainer:
+  Brendan Hay <brendan.g.hay+gogol@gmail.com>, Toni Cebrián <toni@tonicebrian.com>
 
+copyright:          Copyright (c) 2015-2025 Brendan Hay
+category:           Google
+build-type:         Simple
+extra-source-files:
+  README.md
+  src/.gitkeep
+
 description:
-    Views Abusive Experience Report data, and gets a list of sites that have
-    a significant number of abusive experiences.
-    .
-    /Warning:/ This is an experimental prototype/preview release which is still
-    under exploratory development and not intended for public use, caveat emptor!
-    .
-    This library is compatible with version @v1@
-    of the API.
+  Views Abusive Experience Report data, and gets a list of sites that have a significant number of abusive experiences.
+  .
+  /Warning:/ This is an experimental prototype/preview release which is still
+  under exploratory development and not intended for public use, caveat emptor!
+  .
+  This library is compatible with version @v1@
+  of the API.
 
 source-repository head
-    type:     git
-    location: git://github.com/brendanhay/gogol.git
+  type:     git
+  location: git://github.com/brendanhay/gogol.git
+  subdir:   gogol-abusiveexperiencereport
 
+flag field-selectors
+  description:
+    If record field selectors should be enabled. Disabling this requires GHC >=9.2 and the NoFieldSelectors extension.
+
+  default:     False
+  manual:      True
+
 library
-    default-language:  Haskell2010
-    hs-source-dirs:    src gen
+  default-language: GHC2021
+  hs-source-dirs:   src gen
+  ghc-options:
+    -Wall -fwarn-incomplete-uni-patterns
+    -fwarn-incomplete-record-updates -funbox-strict-fields
+    -fwarn-unused-packages
 
-    ghc-options:       -Wall
+  if (!flag(field-selectors) && impl(ghc >=9.2))
+    default-extensions: NoFieldSelectors
 
-    exposed-modules:
-          Network.Google.AbusiveExperienceReport
-        , Network.Google.AbusiveExperienceReport.Types
-        , Network.Google.Resource.AbusiveExperienceReport.Sites.Get
-        , Network.Google.Resource.AbusiveExperienceReport.ViolatingSites.List
+  exposed-modules:
+    Gogol.AbusiveExperienceReport
+    Gogol.AbusiveExperienceReport.Sites.Get
+    Gogol.AbusiveExperienceReport.Types
+    Gogol.AbusiveExperienceReport.ViolatingSites.List
 
-    other-modules:
-          Network.Google.AbusiveExperienceReport.Types.Product
-        , Network.Google.AbusiveExperienceReport.Types.Sum
+  other-modules:
+    Gogol.AbusiveExperienceReport.Internal.Product
+    Gogol.AbusiveExperienceReport.Internal.Sum
 
-    build-depends:
-          gogol-core == 0.5.0.*
-        , base       >= 4.7 && < 5
+  build-depends:    gogol-core ^>=1.0.0
