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/Blogger.hs b/gen/Gogol/Blogger.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger.hs
@@ -0,0 +1,475 @@
+{-# 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.Blogger
+-- 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)
+--
+-- The Blogger API provides access to posts, comments and pages of a Blogger blog.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference>
+module Gogol.Blogger
+  ( -- * Configuration
+    bloggerService,
+
+    -- * OAuth Scopes
+    Blogger'FullControl,
+    Blogger'Readonly,
+
+    -- * Resources
+
+    -- ** blogger.blogUserInfos.get
+    BloggerBlogUserInfosGetResource,
+    BloggerBlogUserInfosGet (..),
+    newBloggerBlogUserInfosGet,
+
+    -- ** blogger.blogs.get
+    BloggerBlogsGetResource,
+    BloggerBlogsGet (..),
+    newBloggerBlogsGet,
+
+    -- ** blogger.blogs.getByUrl
+    BloggerBlogsGetByUrlResource,
+    BloggerBlogsGetByUrl (..),
+    newBloggerBlogsGetByUrl,
+
+    -- ** blogger.blogs.listByUser
+    BloggerBlogsListByUserResource,
+    BloggerBlogsListByUser (..),
+    newBloggerBlogsListByUser,
+
+    -- ** blogger.comments.approve
+    BloggerCommentsApproveResource,
+    BloggerCommentsApprove (..),
+    newBloggerCommentsApprove,
+
+    -- ** blogger.comments.delete
+    BloggerCommentsDeleteResource,
+    BloggerCommentsDelete (..),
+    newBloggerCommentsDelete,
+
+    -- ** blogger.comments.get
+    BloggerCommentsGetResource,
+    BloggerCommentsGet (..),
+    newBloggerCommentsGet,
+
+    -- ** blogger.comments.list
+    BloggerCommentsListResource,
+    BloggerCommentsList (..),
+    newBloggerCommentsList,
+
+    -- ** blogger.comments.listByBlog
+    BloggerCommentsListByBlogResource,
+    BloggerCommentsListByBlog (..),
+    newBloggerCommentsListByBlog,
+
+    -- ** blogger.comments.markAsSpam
+    BloggerCommentsMarkAsSpamResource,
+    BloggerCommentsMarkAsSpam (..),
+    newBloggerCommentsMarkAsSpam,
+
+    -- ** blogger.comments.removeContent
+    BloggerCommentsRemoveContentResource,
+    BloggerCommentsRemoveContent (..),
+    newBloggerCommentsRemoveContent,
+
+    -- ** blogger.pageViews.get
+    BloggerPageViewsGetResource,
+    BloggerPageViewsGet (..),
+    newBloggerPageViewsGet,
+
+    -- ** blogger.pages.delete
+    BloggerPagesDeleteResource,
+    BloggerPagesDelete (..),
+    newBloggerPagesDelete,
+
+    -- ** blogger.pages.get
+    BloggerPagesGetResource,
+    BloggerPagesGet (..),
+    newBloggerPagesGet,
+
+    -- ** blogger.pages.insert
+    BloggerPagesInsertResource,
+    BloggerPagesInsert (..),
+    newBloggerPagesInsert,
+
+    -- ** blogger.pages.list
+    BloggerPagesListResource,
+    BloggerPagesList (..),
+    newBloggerPagesList,
+
+    -- ** blogger.pages.patch
+    BloggerPagesPatchResource,
+    BloggerPagesPatch (..),
+    newBloggerPagesPatch,
+
+    -- ** blogger.pages.publish
+    BloggerPagesPublishResource,
+    BloggerPagesPublish (..),
+    newBloggerPagesPublish,
+
+    -- ** blogger.pages.revert
+    BloggerPagesRevertResource,
+    BloggerPagesRevert (..),
+    newBloggerPagesRevert,
+
+    -- ** blogger.pages.update
+    BloggerPagesUpdateResource,
+    BloggerPagesUpdate (..),
+    newBloggerPagesUpdate,
+
+    -- ** blogger.postUserInfos.get
+    BloggerPostUserInfosGetResource,
+    BloggerPostUserInfosGet (..),
+    newBloggerPostUserInfosGet,
+
+    -- ** blogger.postUserInfos.list
+    BloggerPostUserInfosListResource,
+    BloggerPostUserInfosList (..),
+    newBloggerPostUserInfosList,
+
+    -- ** blogger.posts.delete
+    BloggerPostsDeleteResource,
+    BloggerPostsDelete (..),
+    newBloggerPostsDelete,
+
+    -- ** blogger.posts.get
+    BloggerPostsGetResource,
+    BloggerPostsGet (..),
+    newBloggerPostsGet,
+
+    -- ** blogger.posts.getByPath
+    BloggerPostsGetByPathResource,
+    BloggerPostsGetByPath (..),
+    newBloggerPostsGetByPath,
+
+    -- ** blogger.posts.insert
+    BloggerPostsInsertResource,
+    BloggerPostsInsert (..),
+    newBloggerPostsInsert,
+
+    -- ** blogger.posts.list
+    BloggerPostsListResource,
+    BloggerPostsList (..),
+    newBloggerPostsList,
+
+    -- ** blogger.posts.patch
+    BloggerPostsPatchResource,
+    BloggerPostsPatch (..),
+    newBloggerPostsPatch,
+
+    -- ** blogger.posts.publish
+    BloggerPostsPublishResource,
+    BloggerPostsPublish (..),
+    newBloggerPostsPublish,
+
+    -- ** blogger.posts.revert
+    BloggerPostsRevertResource,
+    BloggerPostsRevert (..),
+    newBloggerPostsRevert,
+
+    -- ** blogger.posts.search
+    BloggerPostsSearchResource,
+    BloggerPostsSearch (..),
+    newBloggerPostsSearch,
+
+    -- ** blogger.posts.update
+    BloggerPostsUpdateResource,
+    BloggerPostsUpdate (..),
+    newBloggerPostsUpdate,
+
+    -- ** blogger.users.get
+    BloggerUsersGetResource,
+    BloggerUsersGet (..),
+    newBloggerUsersGet,
+
+    -- * Types
+
+    -- ** Xgafv
+    Xgafv (..),
+
+    -- ** Blog
+    Blog (..),
+    newBlog,
+
+    -- ** Blog_Locale
+    Blog_Locale (..),
+    newBlog_Locale,
+
+    -- ** Blog_Pages
+    Blog_Pages (..),
+    newBlog_Pages,
+
+    -- ** Blog_Posts
+    Blog_Posts (..),
+    newBlog_Posts,
+
+    -- ** Blog_Status
+    Blog_Status (..),
+
+    -- ** BlogList
+    BlogList (..),
+    newBlogList,
+
+    -- ** BlogPerUserInfo
+    BlogPerUserInfo (..),
+    newBlogPerUserInfo,
+
+    -- ** BlogPerUserInfo_Role
+    BlogPerUserInfo_Role (..),
+
+    -- ** BlogUserInfo
+    BlogUserInfo (..),
+    newBlogUserInfo,
+
+    -- ** Comment
+    Comment (..),
+    newComment,
+
+    -- ** Comment_Author
+    Comment_Author (..),
+    newComment_Author,
+
+    -- ** Comment_Author_Image
+    Comment_Author_Image (..),
+    newComment_Author_Image,
+
+    -- ** Comment_Blog
+    Comment_Blog (..),
+    newComment_Blog,
+
+    -- ** Comment_InReplyTo
+    Comment_InReplyTo (..),
+    newComment_InReplyTo,
+
+    -- ** Comment_Post
+    Comment_Post (..),
+    newComment_Post,
+
+    -- ** Comment_Status
+    Comment_Status (..),
+
+    -- ** CommentList
+    CommentList (..),
+    newCommentList,
+
+    -- ** Page
+    Page (..),
+    newPage,
+
+    -- ** Page_Author
+    Page_Author (..),
+    newPage_Author,
+
+    -- ** Page_Author_Image
+    Page_Author_Image (..),
+    newPage_Author_Image,
+
+    -- ** Page_Blog
+    Page_Blog (..),
+    newPage_Blog,
+
+    -- ** Page_Status
+    Page_Status (..),
+
+    -- ** PageList
+    PageList (..),
+    newPageList,
+
+    -- ** Pageviews
+    Pageviews (..),
+    newPageviews,
+
+    -- ** Pageviews_CountsItem
+    Pageviews_CountsItem (..),
+    newPageviews_CountsItem,
+
+    -- ** Pageviews_CountsItem_TimeRange
+    Pageviews_CountsItem_TimeRange (..),
+
+    -- ** Post'
+    Post' (..),
+    newPost,
+
+    -- ** Post_Author
+    Post_Author (..),
+    newPost_Author,
+
+    -- ** Post_Author_Image
+    Post_Author_Image (..),
+    newPost_Author_Image,
+
+    -- ** Post_Blog
+    Post_Blog (..),
+    newPost_Blog,
+
+    -- ** Post_ImagesItem
+    Post_ImagesItem (..),
+    newPost_ImagesItem,
+
+    -- ** Post_Location
+    Post_Location (..),
+    newPost_Location,
+
+    -- ** Post_ReaderComments
+    Post_ReaderComments (..),
+
+    -- ** Post_Replies
+    Post_Replies (..),
+    newPost_Replies,
+
+    -- ** Post_Status
+    Post_Status (..),
+
+    -- ** PostList
+    PostList (..),
+    newPostList,
+
+    -- ** PostPerUserInfo
+    PostPerUserInfo (..),
+    newPostPerUserInfo,
+
+    -- ** PostUserInfo
+    PostUserInfo (..),
+    newPostUserInfo,
+
+    -- ** PostUserInfosList
+    PostUserInfosList (..),
+    newPostUserInfosList,
+
+    -- ** User
+    User (..),
+    newUser,
+
+    -- ** User_Blogs
+    User_Blogs (..),
+    newUser_Blogs,
+
+    -- ** User_Locale
+    User_Locale (..),
+    newUser_Locale,
+
+    -- ** BlogsGetView
+    BlogsGetView (..),
+
+    -- ** BlogsGetByUrlView
+    BlogsGetByUrlView (..),
+
+    -- ** BlogsListByUserRole
+    BlogsListByUserRole (..),
+
+    -- ** BlogsListByUserStatus
+    BlogsListByUserStatus (..),
+
+    -- ** BlogsListByUserView
+    BlogsListByUserView (..),
+
+    -- ** CommentsGetView
+    CommentsGetView (..),
+
+    -- ** CommentsListStatus
+    CommentsListStatus (..),
+
+    -- ** CommentsListView
+    CommentsListView (..),
+
+    -- ** CommentsListByBlogStatus
+    CommentsListByBlogStatus (..),
+
+    -- ** PageViewsGetRange
+    PageViewsGetRange (..),
+
+    -- ** PagesGetView
+    PagesGetView (..),
+
+    -- ** PagesListStatus
+    PagesListStatus (..),
+
+    -- ** PagesListView
+    PagesListView (..),
+
+    -- ** PostUserInfosListOrderBy
+    PostUserInfosListOrderBy (..),
+
+    -- ** PostUserInfosListStatus
+    PostUserInfosListStatus (..),
+
+    -- ** PostUserInfosListView
+    PostUserInfosListView (..),
+
+    -- ** PostsGetView
+    PostsGetView (..),
+
+    -- ** PostsGetByPathView
+    PostsGetByPathView (..),
+
+    -- ** PostsListOrderBy
+    PostsListOrderBy (..),
+
+    -- ** PostsListSortOption
+    PostsListSortOption (..),
+
+    -- ** PostsListStatus
+    PostsListStatus (..),
+
+    -- ** PostsListView
+    PostsListView (..),
+
+    -- ** PostsSearchOrderBy
+    PostsSearchOrderBy (..),
+  )
+where
+
+import Gogol.Blogger.BlogUserInfos.Get
+import Gogol.Blogger.Blogs.Get
+import Gogol.Blogger.Blogs.GetByUrl
+import Gogol.Blogger.Blogs.ListByUser
+import Gogol.Blogger.Comments.Approve
+import Gogol.Blogger.Comments.Delete
+import Gogol.Blogger.Comments.Get
+import Gogol.Blogger.Comments.List
+import Gogol.Blogger.Comments.ListByBlog
+import Gogol.Blogger.Comments.MarkAsSpam
+import Gogol.Blogger.Comments.RemoveContent
+import Gogol.Blogger.PageViews.Get
+import Gogol.Blogger.Pages.Delete
+import Gogol.Blogger.Pages.Get
+import Gogol.Blogger.Pages.Insert
+import Gogol.Blogger.Pages.List
+import Gogol.Blogger.Pages.Patch
+import Gogol.Blogger.Pages.Publish
+import Gogol.Blogger.Pages.Revert
+import Gogol.Blogger.Pages.Update
+import Gogol.Blogger.PostUserInfos.Get
+import Gogol.Blogger.PostUserInfos.List
+import Gogol.Blogger.Posts.Delete
+import Gogol.Blogger.Posts.Get
+import Gogol.Blogger.Posts.GetByPath
+import Gogol.Blogger.Posts.Insert
+import Gogol.Blogger.Posts.List
+import Gogol.Blogger.Posts.Patch
+import Gogol.Blogger.Posts.Publish
+import Gogol.Blogger.Posts.Revert
+import Gogol.Blogger.Posts.Search
+import Gogol.Blogger.Posts.Update
+import Gogol.Blogger.Types
+import Gogol.Blogger.Users.Get
diff --git a/gen/Gogol/Blogger/BlogUserInfos/Get.hs b/gen/Gogol/Blogger/BlogUserInfos/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/BlogUserInfos/Get.hs
@@ -0,0 +1,120 @@
+{-# 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.Blogger.BlogUserInfos.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 one blog and user info pair by blog id and user id.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.blogUserInfos.get@.
+module Gogol.Blogger.BlogUserInfos.Get
+  ( -- * Resource
+    BloggerBlogUserInfosGetResource,
+
+    -- ** Constructing a Request
+    BloggerBlogUserInfosGet (..),
+    newBloggerBlogUserInfosGet,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.blogUserInfos.get@ method which the
+-- 'BloggerBlogUserInfosGet' request conforms to.
+type BloggerBlogUserInfosGetResource =
+  "v3"
+    Core.:> "users"
+    Core.:> Core.Capture "userId" Core.Text
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "maxPosts" Core.Word32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] BlogUserInfo
+
+-- | Gets one blog and user info pair by blog id and user id.
+--
+-- /See:/ 'newBloggerBlogUserInfosGet' smart constructor.
+data BloggerBlogUserInfosGet = BloggerBlogUserInfosGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    maxPosts :: (Core.Maybe Core.Word32),
+    -- | 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),
+    userId :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BloggerBlogUserInfosGet' with the minimum fields required to make a request.
+newBloggerBlogUserInfosGet ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'userId'.
+  Core.Text ->
+  BloggerBlogUserInfosGet
+newBloggerBlogUserInfosGet blogId userId =
+  BloggerBlogUserInfosGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      maxPosts = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      userId = userId
+    }
+
+instance Core.GoogleRequest BloggerBlogUserInfosGet where
+  type Rs BloggerBlogUserInfosGet = BlogUserInfo
+  type
+    Scopes BloggerBlogUserInfosGet =
+      '[Blogger'FullControl, Blogger'Readonly]
+  requestClient BloggerBlogUserInfosGet {..} =
+    go
+      userId
+      blogId
+      xgafv
+      accessToken
+      callback
+      maxPosts
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerBlogUserInfosGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Blogs/Get.hs b/gen/Gogol/Blogger/Blogs/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Blogs/Get.hs
@@ -0,0 +1,117 @@
+{-# 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.Blogger.Blogs.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 blog by id.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.blogs.get@.
+module Gogol.Blogger.Blogs.Get
+  ( -- * Resource
+    BloggerBlogsGetResource,
+
+    -- ** Constructing a Request
+    BloggerBlogsGet (..),
+    newBloggerBlogsGet,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.blogs.get@ method which the
+-- 'BloggerBlogsGet' request conforms to.
+type BloggerBlogsGetResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "maxPosts" Core.Word32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "view" BlogsGetView
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Blog
+
+-- | Gets a blog by id.
+--
+-- /See:/ 'newBloggerBlogsGet' smart constructor.
+data BloggerBlogsGet = BloggerBlogsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    maxPosts :: (Core.Maybe Core.Word32),
+    -- | 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),
+    view :: (Core.Maybe BlogsGetView)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BloggerBlogsGet' with the minimum fields required to make a request.
+newBloggerBlogsGet ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  BloggerBlogsGet
+newBloggerBlogsGet blogId =
+  BloggerBlogsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      maxPosts = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      view = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerBlogsGet where
+  type Rs BloggerBlogsGet = Blog
+  type
+    Scopes BloggerBlogsGet =
+      '[Blogger'FullControl, Blogger'Readonly]
+  requestClient BloggerBlogsGet {..} =
+    go
+      blogId
+      xgafv
+      accessToken
+      callback
+      maxPosts
+      uploadType
+      uploadProtocol
+      view
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerBlogsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Blogs/GetByUrl.hs b/gen/Gogol/Blogger/Blogs/GetByUrl.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Blogs/GetByUrl.hs
@@ -0,0 +1,114 @@
+{-# 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.Blogger.Blogs.GetByUrl
+-- 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 blog by url.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.blogs.getByUrl@.
+module Gogol.Blogger.Blogs.GetByUrl
+  ( -- * Resource
+    BloggerBlogsGetByUrlResource,
+
+    -- ** Constructing a Request
+    BloggerBlogsGetByUrl (..),
+    newBloggerBlogsGetByUrl,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.blogs.getByUrl@ method which the
+-- 'BloggerBlogsGetByUrl' request conforms to.
+type BloggerBlogsGetByUrlResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> "byurl"
+    Core.:> Core.QueryParam "url" 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 "view" BlogsGetByUrlView
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Blog
+
+-- | Gets a blog by url.
+--
+-- /See:/ 'newBloggerBlogsGetByUrl' smart constructor.
+data BloggerBlogsGetByUrl = BloggerBlogsGetByUrl
+  { -- | 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),
+    url :: Core.Text,
+    view :: (Core.Maybe BlogsGetByUrlView)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BloggerBlogsGetByUrl' with the minimum fields required to make a request.
+newBloggerBlogsGetByUrl ::
+  -- |  See 'url'.
+  Core.Text ->
+  BloggerBlogsGetByUrl
+newBloggerBlogsGetByUrl url =
+  BloggerBlogsGetByUrl
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      url = url,
+      view = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerBlogsGetByUrl where
+  type Rs BloggerBlogsGetByUrl = Blog
+  type
+    Scopes BloggerBlogsGetByUrl =
+      '[Blogger'FullControl, Blogger'Readonly]
+  requestClient BloggerBlogsGetByUrl {..} =
+    go
+      (Core.Just url)
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      view
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerBlogsGetByUrlResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Blogs/ListByUser.hs b/gen/Gogol/Blogger/Blogs/ListByUser.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Blogs/ListByUser.hs
@@ -0,0 +1,127 @@
+{-# 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.Blogger.Blogs.ListByUser
+-- 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 blogs by user.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.blogs.listByUser@.
+module Gogol.Blogger.Blogs.ListByUser
+  ( -- * Resource
+    BloggerBlogsListByUserResource,
+
+    -- ** Constructing a Request
+    BloggerBlogsListByUser (..),
+    newBloggerBlogsListByUser,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.blogs.listByUser@ method which the
+-- 'BloggerBlogsListByUser' request conforms to.
+type BloggerBlogsListByUserResource =
+  "v3"
+    Core.:> "users"
+    Core.:> Core.Capture "userId" Core.Text
+    Core.:> "blogs"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "fetchUserInfo" Core.Bool
+    Core.:> Core.QueryParams "role" BlogsListByUserRole
+    Core.:> Core.QueryParams "status" BlogsListByUserStatus
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "view" BlogsListByUserView
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] BlogList
+
+-- | Lists blogs by user.
+--
+-- /See:/ 'newBloggerBlogsListByUser' smart constructor.
+data BloggerBlogsListByUser = BloggerBlogsListByUser
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    fetchUserInfo :: (Core.Maybe Core.Bool),
+    role' :: (Core.Maybe [BlogsListByUserRole]),
+    -- | Default value of status is LIVE.
+    status :: [BlogsListByUserStatus],
+    -- | 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),
+    userId :: Core.Text,
+    view :: (Core.Maybe BlogsListByUserView)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BloggerBlogsListByUser' with the minimum fields required to make a request.
+newBloggerBlogsListByUser ::
+  -- |  See 'userId'.
+  Core.Text ->
+  BloggerBlogsListByUser
+newBloggerBlogsListByUser userId =
+  BloggerBlogsListByUser
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      fetchUserInfo = Core.Nothing,
+      role' = Core.Nothing,
+      status = [BlogsListByUserStatus_Live],
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      userId = userId,
+      view = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerBlogsListByUser where
+  type Rs BloggerBlogsListByUser = BlogList
+  type
+    Scopes BloggerBlogsListByUser =
+      '[Blogger'FullControl, Blogger'Readonly]
+  requestClient BloggerBlogsListByUser {..} =
+    go
+      userId
+      xgafv
+      accessToken
+      callback
+      fetchUserInfo
+      (role' Core.^. Core._Default)
+      status
+      uploadType
+      uploadProtocol
+      view
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerBlogsListByUserResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Comments/Approve.hs b/gen/Gogol/Blogger/Comments/Approve.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Comments/Approve.hs
@@ -0,0 +1,122 @@
+{-# 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.Blogger.Comments.Approve
+-- 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)
+--
+-- Marks a comment as not spam by blog id, post id and comment id.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.comments.approve@.
+module Gogol.Blogger.Comments.Approve
+  ( -- * Resource
+    BloggerCommentsApproveResource,
+
+    -- ** Constructing a Request
+    BloggerCommentsApprove (..),
+    newBloggerCommentsApprove,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.comments.approve@ method which the
+-- 'BloggerCommentsApprove' request conforms to.
+type BloggerCommentsApproveResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> Core.Capture "postId" Core.Text
+    Core.:> "comments"
+    Core.:> Core.Capture "commentId" Core.Text
+    Core.:> "approve"
+    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.Post '[Core.JSON] Comment
+
+-- | Marks a comment as not spam by blog id, post id and comment id.
+--
+-- /See:/ 'newBloggerCommentsApprove' smart constructor.
+data BloggerCommentsApprove = BloggerCommentsApprove
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    commentId :: Core.Text,
+    postId :: 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 'BloggerCommentsApprove' with the minimum fields required to make a request.
+newBloggerCommentsApprove ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'commentId'.
+  Core.Text ->
+  -- |  See 'postId'.
+  Core.Text ->
+  BloggerCommentsApprove
+newBloggerCommentsApprove blogId commentId postId =
+  BloggerCommentsApprove
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      commentId = commentId,
+      postId = postId,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerCommentsApprove where
+  type Rs BloggerCommentsApprove = Comment
+  type Scopes BloggerCommentsApprove = '[Blogger'FullControl]
+  requestClient BloggerCommentsApprove {..} =
+    go
+      blogId
+      postId
+      commentId
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerCommentsApproveResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Comments/Delete.hs b/gen/Gogol/Blogger/Comments/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Comments/Delete.hs
@@ -0,0 +1,121 @@
+{-# 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.Blogger.Comments.Delete
+-- 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)
+--
+-- Deletes a comment by blog id, post id and comment id.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.comments.delete@.
+module Gogol.Blogger.Comments.Delete
+  ( -- * Resource
+    BloggerCommentsDeleteResource,
+
+    -- ** Constructing a Request
+    BloggerCommentsDelete (..),
+    newBloggerCommentsDelete,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.comments.delete@ method which the
+-- 'BloggerCommentsDelete' request conforms to.
+type BloggerCommentsDeleteResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> Core.Capture "postId" Core.Text
+    Core.:> "comments"
+    Core.:> Core.Capture "commentId" 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.Delete '[Core.JSON] ()
+
+-- | Deletes a comment by blog id, post id and comment id.
+--
+-- /See:/ 'newBloggerCommentsDelete' smart constructor.
+data BloggerCommentsDelete = BloggerCommentsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    commentId :: Core.Text,
+    postId :: 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 'BloggerCommentsDelete' with the minimum fields required to make a request.
+newBloggerCommentsDelete ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'commentId'.
+  Core.Text ->
+  -- |  See 'postId'.
+  Core.Text ->
+  BloggerCommentsDelete
+newBloggerCommentsDelete blogId commentId postId =
+  BloggerCommentsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      commentId = commentId,
+      postId = postId,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerCommentsDelete where
+  type Rs BloggerCommentsDelete = ()
+  type Scopes BloggerCommentsDelete = '[Blogger'FullControl]
+  requestClient BloggerCommentsDelete {..} =
+    go
+      blogId
+      postId
+      commentId
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerCommentsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Comments/Get.hs b/gen/Gogol/Blogger/Comments/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Comments/Get.hs
@@ -0,0 +1,127 @@
+{-# 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.Blogger.Comments.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 comment by id.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.comments.get@.
+module Gogol.Blogger.Comments.Get
+  ( -- * Resource
+    BloggerCommentsGetResource,
+
+    -- ** Constructing a Request
+    BloggerCommentsGet (..),
+    newBloggerCommentsGet,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.comments.get@ method which the
+-- 'BloggerCommentsGet' request conforms to.
+type BloggerCommentsGetResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> Core.Capture "postId" Core.Text
+    Core.:> "comments"
+    Core.:> Core.Capture "commentId" 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 "view" CommentsGetView
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Comment
+
+-- | Gets a comment by id.
+--
+-- /See:/ 'newBloggerCommentsGet' smart constructor.
+data BloggerCommentsGet = BloggerCommentsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    commentId :: Core.Text,
+    postId :: 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),
+    view :: (Core.Maybe CommentsGetView)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BloggerCommentsGet' with the minimum fields required to make a request.
+newBloggerCommentsGet ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'commentId'.
+  Core.Text ->
+  -- |  See 'postId'.
+  Core.Text ->
+  BloggerCommentsGet
+newBloggerCommentsGet blogId commentId postId =
+  BloggerCommentsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      commentId = commentId,
+      postId = postId,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      view = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerCommentsGet where
+  type Rs BloggerCommentsGet = Comment
+  type
+    Scopes BloggerCommentsGet =
+      '[Blogger'FullControl, Blogger'Readonly]
+  requestClient BloggerCommentsGet {..} =
+    go
+      blogId
+      postId
+      commentId
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      view
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerCommentsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Comments/List.hs b/gen/Gogol/Blogger/Comments/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Comments/List.hs
@@ -0,0 +1,145 @@
+{-# 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.Blogger.Comments.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 comments.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.comments.list@.
+module Gogol.Blogger.Comments.List
+  ( -- * Resource
+    BloggerCommentsListResource,
+
+    -- ** Constructing a Request
+    BloggerCommentsList (..),
+    newBloggerCommentsList,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.comments.list@ method which the
+-- 'BloggerCommentsList' request conforms to.
+type BloggerCommentsListResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> Core.Capture "postId" Core.Text
+    Core.:> "comments"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "endDate" Core.Text
+    Core.:> Core.QueryParam "fetchBodies" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "startDate" Core.Text
+    Core.:> Core.QueryParam "status" CommentsListStatus
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "view" CommentsListView
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] CommentList
+
+-- | Lists comments.
+--
+-- /See:/ 'newBloggerCommentsList' smart constructor.
+data BloggerCommentsList = BloggerCommentsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    endDate :: (Core.Maybe Core.Text),
+    fetchBodies :: (Core.Maybe Core.Bool),
+    maxResults :: (Core.Maybe Core.Word32),
+    pageToken :: (Core.Maybe Core.Text),
+    postId :: Core.Text,
+    startDate :: (Core.Maybe Core.Text),
+    status :: (Core.Maybe CommentsListStatus),
+    -- | 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),
+    view :: (Core.Maybe CommentsListView)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BloggerCommentsList' with the minimum fields required to make a request.
+newBloggerCommentsList ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'postId'.
+  Core.Text ->
+  BloggerCommentsList
+newBloggerCommentsList blogId postId =
+  BloggerCommentsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      endDate = Core.Nothing,
+      fetchBodies = Core.Nothing,
+      maxResults = Core.Nothing,
+      pageToken = Core.Nothing,
+      postId = postId,
+      startDate = Core.Nothing,
+      status = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      view = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerCommentsList where
+  type Rs BloggerCommentsList = CommentList
+  type
+    Scopes BloggerCommentsList =
+      '[Blogger'FullControl, Blogger'Readonly]
+  requestClient BloggerCommentsList {..} =
+    go
+      blogId
+      postId
+      xgafv
+      accessToken
+      callback
+      endDate
+      fetchBodies
+      maxResults
+      pageToken
+      startDate
+      status
+      uploadType
+      uploadProtocol
+      view
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerCommentsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Comments/ListByBlog.hs b/gen/Gogol/Blogger/Comments/ListByBlog.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Comments/ListByBlog.hs
@@ -0,0 +1,134 @@
+{-# 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.Blogger.Comments.ListByBlog
+-- 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 comments by blog.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.comments.listByBlog@.
+module Gogol.Blogger.Comments.ListByBlog
+  ( -- * Resource
+    BloggerCommentsListByBlogResource,
+
+    -- ** Constructing a Request
+    BloggerCommentsListByBlog (..),
+    newBloggerCommentsListByBlog,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.comments.listByBlog@ method which the
+-- 'BloggerCommentsListByBlog' request conforms to.
+type BloggerCommentsListByBlogResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "comments"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "endDate" Core.Text
+    Core.:> Core.QueryParam "fetchBodies" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "startDate" Core.Text
+    Core.:> Core.QueryParams "status" CommentsListByBlogStatus
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] CommentList
+
+-- | Lists comments by blog.
+--
+-- /See:/ 'newBloggerCommentsListByBlog' smart constructor.
+data BloggerCommentsListByBlog = BloggerCommentsListByBlog
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    endDate :: (Core.Maybe Core.Text),
+    fetchBodies :: (Core.Maybe Core.Bool),
+    maxResults :: (Core.Maybe Core.Word32),
+    pageToken :: (Core.Maybe Core.Text),
+    startDate :: (Core.Maybe Core.Text),
+    status :: (Core.Maybe [CommentsListByBlogStatus]),
+    -- | 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 'BloggerCommentsListByBlog' with the minimum fields required to make a request.
+newBloggerCommentsListByBlog ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  BloggerCommentsListByBlog
+newBloggerCommentsListByBlog blogId =
+  BloggerCommentsListByBlog
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      endDate = Core.Nothing,
+      fetchBodies = Core.Nothing,
+      maxResults = Core.Nothing,
+      pageToken = Core.Nothing,
+      startDate = Core.Nothing,
+      status = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerCommentsListByBlog where
+  type Rs BloggerCommentsListByBlog = CommentList
+  type
+    Scopes BloggerCommentsListByBlog =
+      '[Blogger'FullControl, Blogger'Readonly]
+  requestClient BloggerCommentsListByBlog {..} =
+    go
+      blogId
+      xgafv
+      accessToken
+      callback
+      endDate
+      fetchBodies
+      maxResults
+      pageToken
+      startDate
+      (status Core.^. Core._Default)
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerCommentsListByBlogResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Comments/MarkAsSpam.hs b/gen/Gogol/Blogger/Comments/MarkAsSpam.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Comments/MarkAsSpam.hs
@@ -0,0 +1,122 @@
+{-# 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.Blogger.Comments.MarkAsSpam
+-- 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)
+--
+-- Marks a comment as spam by blog id, post id and comment id.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.comments.markAsSpam@.
+module Gogol.Blogger.Comments.MarkAsSpam
+  ( -- * Resource
+    BloggerCommentsMarkAsSpamResource,
+
+    -- ** Constructing a Request
+    BloggerCommentsMarkAsSpam (..),
+    newBloggerCommentsMarkAsSpam,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.comments.markAsSpam@ method which the
+-- 'BloggerCommentsMarkAsSpam' request conforms to.
+type BloggerCommentsMarkAsSpamResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> Core.Capture "postId" Core.Text
+    Core.:> "comments"
+    Core.:> Core.Capture "commentId" Core.Text
+    Core.:> "spam"
+    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.Post '[Core.JSON] Comment
+
+-- | Marks a comment as spam by blog id, post id and comment id.
+--
+-- /See:/ 'newBloggerCommentsMarkAsSpam' smart constructor.
+data BloggerCommentsMarkAsSpam = BloggerCommentsMarkAsSpam
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    commentId :: Core.Text,
+    postId :: 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 'BloggerCommentsMarkAsSpam' with the minimum fields required to make a request.
+newBloggerCommentsMarkAsSpam ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'commentId'.
+  Core.Text ->
+  -- |  See 'postId'.
+  Core.Text ->
+  BloggerCommentsMarkAsSpam
+newBloggerCommentsMarkAsSpam blogId commentId postId =
+  BloggerCommentsMarkAsSpam
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      commentId = commentId,
+      postId = postId,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerCommentsMarkAsSpam where
+  type Rs BloggerCommentsMarkAsSpam = Comment
+  type Scopes BloggerCommentsMarkAsSpam = '[Blogger'FullControl]
+  requestClient BloggerCommentsMarkAsSpam {..} =
+    go
+      blogId
+      postId
+      commentId
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerCommentsMarkAsSpamResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Comments/RemoveContent.hs b/gen/Gogol/Blogger/Comments/RemoveContent.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Comments/RemoveContent.hs
@@ -0,0 +1,122 @@
+{-# 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.Blogger.Comments.RemoveContent
+-- 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)
+--
+-- Removes the content of a comment by blog id, post id and comment id.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.comments.removeContent@.
+module Gogol.Blogger.Comments.RemoveContent
+  ( -- * Resource
+    BloggerCommentsRemoveContentResource,
+
+    -- ** Constructing a Request
+    BloggerCommentsRemoveContent (..),
+    newBloggerCommentsRemoveContent,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.comments.removeContent@ method which the
+-- 'BloggerCommentsRemoveContent' request conforms to.
+type BloggerCommentsRemoveContentResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> Core.Capture "postId" Core.Text
+    Core.:> "comments"
+    Core.:> Core.Capture "commentId" Core.Text
+    Core.:> "removecontent"
+    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.Post '[Core.JSON] Comment
+
+-- | Removes the content of a comment by blog id, post id and comment id.
+--
+-- /See:/ 'newBloggerCommentsRemoveContent' smart constructor.
+data BloggerCommentsRemoveContent = BloggerCommentsRemoveContent
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    commentId :: Core.Text,
+    postId :: 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 'BloggerCommentsRemoveContent' with the minimum fields required to make a request.
+newBloggerCommentsRemoveContent ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'commentId'.
+  Core.Text ->
+  -- |  See 'postId'.
+  Core.Text ->
+  BloggerCommentsRemoveContent
+newBloggerCommentsRemoveContent blogId commentId postId =
+  BloggerCommentsRemoveContent
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      commentId = commentId,
+      postId = postId,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerCommentsRemoveContent where
+  type Rs BloggerCommentsRemoveContent = Comment
+  type Scopes BloggerCommentsRemoveContent = '[Blogger'FullControl]
+  requestClient BloggerCommentsRemoveContent {..} =
+    go
+      blogId
+      postId
+      commentId
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerCommentsRemoveContentResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Internal/Product.hs b/gen/Gogol/Blogger/Internal/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Internal/Product.hs
@@ -0,0 +1,1805 @@
+{-# 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.Blogger.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.Blogger.Internal.Product
+  ( -- * Blog
+    Blog (..),
+    newBlog,
+
+    -- * Blog_Locale
+    Blog_Locale (..),
+    newBlog_Locale,
+
+    -- * Blog_Pages
+    Blog_Pages (..),
+    newBlog_Pages,
+
+    -- * Blog_Posts
+    Blog_Posts (..),
+    newBlog_Posts,
+
+    -- * BlogList
+    BlogList (..),
+    newBlogList,
+
+    -- * BlogPerUserInfo
+    BlogPerUserInfo (..),
+    newBlogPerUserInfo,
+
+    -- * BlogUserInfo
+    BlogUserInfo (..),
+    newBlogUserInfo,
+
+    -- * Comment
+    Comment (..),
+    newComment,
+
+    -- * Comment_Author
+    Comment_Author (..),
+    newComment_Author,
+
+    -- * Comment_Author_Image
+    Comment_Author_Image (..),
+    newComment_Author_Image,
+
+    -- * Comment_Blog
+    Comment_Blog (..),
+    newComment_Blog,
+
+    -- * Comment_InReplyTo
+    Comment_InReplyTo (..),
+    newComment_InReplyTo,
+
+    -- * Comment_Post
+    Comment_Post (..),
+    newComment_Post,
+
+    -- * CommentList
+    CommentList (..),
+    newCommentList,
+
+    -- * Page
+    Page (..),
+    newPage,
+
+    -- * Page_Author
+    Page_Author (..),
+    newPage_Author,
+
+    -- * Page_Author_Image
+    Page_Author_Image (..),
+    newPage_Author_Image,
+
+    -- * Page_Blog
+    Page_Blog (..),
+    newPage_Blog,
+
+    -- * PageList
+    PageList (..),
+    newPageList,
+
+    -- * Pageviews
+    Pageviews (..),
+    newPageviews,
+
+    -- * Pageviews_CountsItem
+    Pageviews_CountsItem (..),
+    newPageviews_CountsItem,
+
+    -- * Post'
+    Post' (..),
+    newPost,
+
+    -- * Post_Author
+    Post_Author (..),
+    newPost_Author,
+
+    -- * Post_Author_Image
+    Post_Author_Image (..),
+    newPost_Author_Image,
+
+    -- * Post_Blog
+    Post_Blog (..),
+    newPost_Blog,
+
+    -- * Post_ImagesItem
+    Post_ImagesItem (..),
+    newPost_ImagesItem,
+
+    -- * Post_Location
+    Post_Location (..),
+    newPost_Location,
+
+    -- * Post_Replies
+    Post_Replies (..),
+    newPost_Replies,
+
+    -- * PostList
+    PostList (..),
+    newPostList,
+
+    -- * PostPerUserInfo
+    PostPerUserInfo (..),
+    newPostPerUserInfo,
+
+    -- * PostUserInfo
+    PostUserInfo (..),
+    newPostUserInfo,
+
+    -- * PostUserInfosList
+    PostUserInfosList (..),
+    newPostUserInfosList,
+
+    -- * User
+    User (..),
+    newUser,
+
+    -- * User_Blogs
+    User_Blogs (..),
+    newUser_Blogs,
+
+    -- * User_Locale
+    User_Locale (..),
+    newUser_Locale,
+  )
+where
+
+import Gogol.Blogger.Internal.Sum
+import Gogol.Prelude qualified as Core
+
+--
+-- /See:/ 'newBlog' smart constructor.
+data Blog = Blog
+  { -- | The JSON custom meta-data for the Blog.
+    customMetaData :: (Core.Maybe Core.Text),
+    -- | The description of this blog. This is displayed underneath the title.
+    description :: (Core.Maybe Core.Text),
+    -- | The identifier for this resource.
+    id :: (Core.Maybe Core.Text),
+    -- | The kind of this entry. Always blogger#blog.
+    kind :: (Core.Maybe Core.Text),
+    -- | The locale this Blog is set to.
+    locale :: (Core.Maybe Blog_Locale),
+    -- | The name of this blog. This is displayed as the title.
+    name :: (Core.Maybe Core.Text),
+    -- | The container of pages in this blog.
+    pages :: (Core.Maybe Blog_Pages),
+    -- | The container of posts in this blog.
+    posts :: (Core.Maybe Blog_Posts),
+    -- | RFC 3339 date-time when this blog was published.
+    published :: (Core.Maybe Core.Text),
+    -- | The API REST URL to fetch this resource from.
+    selfLink :: (Core.Maybe Core.Text),
+    -- | The status of the blog.
+    status :: (Core.Maybe Blog_Status),
+    -- | RFC 3339 date-time when this blog was last updated.
+    updated :: (Core.Maybe Core.Text),
+    -- | The URL where this blog is published.
+    url :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Blog' with the minimum fields required to make a request.
+newBlog ::
+  Blog
+newBlog =
+  Blog
+    { customMetaData = Core.Nothing,
+      description = Core.Nothing,
+      id = Core.Nothing,
+      kind = Core.Nothing,
+      locale = Core.Nothing,
+      name = Core.Nothing,
+      pages = Core.Nothing,
+      posts = Core.Nothing,
+      published = Core.Nothing,
+      selfLink = Core.Nothing,
+      status = Core.Nothing,
+      updated = Core.Nothing,
+      url = Core.Nothing
+    }
+
+instance Core.FromJSON Blog where
+  parseJSON =
+    Core.withObject
+      "Blog"
+      ( \o ->
+          Blog
+            Core.<$> (o Core..:? "customMetaData")
+            Core.<*> (o Core..:? "description")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "kind")
+            Core.<*> (o Core..:? "locale")
+            Core.<*> (o Core..:? "name")
+            Core.<*> (o Core..:? "pages")
+            Core.<*> (o Core..:? "posts")
+            Core.<*> (o Core..:? "published")
+            Core.<*> (o Core..:? "selfLink")
+            Core.<*> (o Core..:? "status")
+            Core.<*> (o Core..:? "updated")
+            Core.<*> (o Core..:? "url")
+      )
+
+instance Core.ToJSON Blog where
+  toJSON Blog {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("customMetaData" Core..=) Core.<$> customMetaData,
+            ("description" Core..=) Core.<$> description,
+            ("id" Core..=) Core.<$> id,
+            ("kind" Core..=) Core.<$> kind,
+            ("locale" Core..=) Core.<$> locale,
+            ("name" Core..=) Core.<$> name,
+            ("pages" Core..=) Core.<$> pages,
+            ("posts" Core..=) Core.<$> posts,
+            ("published" Core..=) Core.<$> published,
+            ("selfLink" Core..=) Core.<$> selfLink,
+            ("status" Core..=) Core.<$> status,
+            ("updated" Core..=) Core.<$> updated,
+            ("url" Core..=) Core.<$> url
+          ]
+      )
+
+-- | The locale this Blog is set to.
+--
+-- /See:/ 'newBlog_Locale' smart constructor.
+data Blog_Locale = Blog_Locale
+  { -- | The country this blog\'s locale is set to.
+    country :: (Core.Maybe Core.Text),
+    -- | The language this blog is authored in.
+    language :: (Core.Maybe Core.Text),
+    -- | The language variant this blog is authored in.
+    variant :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Blog_Locale' with the minimum fields required to make a request.
+newBlog_Locale ::
+  Blog_Locale
+newBlog_Locale =
+  Blog_Locale
+    { country = Core.Nothing,
+      language = Core.Nothing,
+      variant = Core.Nothing
+    }
+
+instance Core.FromJSON Blog_Locale where
+  parseJSON =
+    Core.withObject
+      "Blog_Locale"
+      ( \o ->
+          Blog_Locale
+            Core.<$> (o Core..:? "country")
+            Core.<*> (o Core..:? "language")
+            Core.<*> (o Core..:? "variant")
+      )
+
+instance Core.ToJSON Blog_Locale where
+  toJSON Blog_Locale {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("country" Core..=) Core.<$> country,
+            ("language" Core..=) Core.<$> language,
+            ("variant" Core..=) Core.<$> variant
+          ]
+      )
+
+-- | The container of pages in this blog.
+--
+-- /See:/ 'newBlog_Pages' smart constructor.
+data Blog_Pages = Blog_Pages
+  { -- | The URL of the container for pages in this blog.
+    selfLink :: (Core.Maybe Core.Text),
+    -- | The count of pages in this blog.
+    totalItems :: (Core.Maybe Core.Int32)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Blog_Pages' with the minimum fields required to make a request.
+newBlog_Pages ::
+  Blog_Pages
+newBlog_Pages =
+  Blog_Pages {selfLink = Core.Nothing, totalItems = Core.Nothing}
+
+instance Core.FromJSON Blog_Pages where
+  parseJSON =
+    Core.withObject
+      "Blog_Pages"
+      ( \o ->
+          Blog_Pages
+            Core.<$> (o Core..:? "selfLink")
+            Core.<*> (o Core..:? "totalItems")
+      )
+
+instance Core.ToJSON Blog_Pages where
+  toJSON Blog_Pages {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("selfLink" Core..=) Core.<$> selfLink,
+            ("totalItems" Core..=) Core.<$> totalItems
+          ]
+      )
+
+-- | The container of posts in this blog.
+--
+-- /See:/ 'newBlog_Posts' smart constructor.
+data Blog_Posts = Blog_Posts
+  { -- | The List of Posts for this Blog.
+    items :: (Core.Maybe [Post']),
+    -- | The URL of the container for posts in this blog.
+    selfLink :: (Core.Maybe Core.Text),
+    -- | The count of posts in this blog.
+    totalItems :: (Core.Maybe Core.Int32)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Blog_Posts' with the minimum fields required to make a request.
+newBlog_Posts ::
+  Blog_Posts
+newBlog_Posts =
+  Blog_Posts
+    { items = Core.Nothing,
+      selfLink = Core.Nothing,
+      totalItems = Core.Nothing
+    }
+
+instance Core.FromJSON Blog_Posts where
+  parseJSON =
+    Core.withObject
+      "Blog_Posts"
+      ( \o ->
+          Blog_Posts
+            Core.<$> (o Core..:? "items")
+            Core.<*> (o Core..:? "selfLink")
+            Core.<*> (o Core..:? "totalItems")
+      )
+
+instance Core.ToJSON Blog_Posts where
+  toJSON Blog_Posts {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("items" Core..=) Core.<$> items,
+            ("selfLink" Core..=) Core.<$> selfLink,
+            ("totalItems" Core..=) Core.<$> totalItems
+          ]
+      )
+
+--
+-- /See:/ 'newBlogList' smart constructor.
+data BlogList = BlogList
+  { -- | Admin level list of blog per-user information.
+    blogUserInfos :: (Core.Maybe [BlogUserInfo]),
+    -- | The list of Blogs this user has Authorship or Admin rights over.
+    items :: (Core.Maybe [Blog]),
+    -- | The kind of this entity. Always blogger#blogList.
+    kind :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BlogList' with the minimum fields required to make a request.
+newBlogList ::
+  BlogList
+newBlogList =
+  BlogList
+    { blogUserInfos = Core.Nothing,
+      items = Core.Nothing,
+      kind = Core.Nothing
+    }
+
+instance Core.FromJSON BlogList where
+  parseJSON =
+    Core.withObject
+      "BlogList"
+      ( \o ->
+          BlogList
+            Core.<$> (o Core..:? "blogUserInfos")
+            Core.<*> (o Core..:? "items")
+            Core.<*> (o Core..:? "kind")
+      )
+
+instance Core.ToJSON BlogList where
+  toJSON BlogList {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("blogUserInfos" Core..=) Core.<$> blogUserInfos,
+            ("items" Core..=) Core.<$> items,
+            ("kind" Core..=) Core.<$> kind
+          ]
+      )
+
+--
+-- /See:/ 'newBlogPerUserInfo' smart constructor.
+data BlogPerUserInfo = BlogPerUserInfo
+  { -- | ID of the Blog resource.
+    blogId :: (Core.Maybe Core.Text),
+    -- | True if the user has Admin level access to the blog.
+    hasAdminAccess :: (Core.Maybe Core.Bool),
+    -- | The kind of this entity. Always blogger#blogPerUserInfo.
+    kind :: (Core.Maybe Core.Text),
+    -- | The Photo Album Key for the user when adding photos to the blog.
+    photosAlbumKey :: (Core.Maybe Core.Text),
+    -- | Access permissions that the user has for the blog (ADMIN, AUTHOR, or READER).
+    role' :: (Core.Maybe BlogPerUserInfo_Role),
+    -- | ID of the User.
+    userId :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BlogPerUserInfo' with the minimum fields required to make a request.
+newBlogPerUserInfo ::
+  BlogPerUserInfo
+newBlogPerUserInfo =
+  BlogPerUserInfo
+    { blogId = Core.Nothing,
+      hasAdminAccess = Core.Nothing,
+      kind = Core.Nothing,
+      photosAlbumKey = Core.Nothing,
+      role' = Core.Nothing,
+      userId = Core.Nothing
+    }
+
+instance Core.FromJSON BlogPerUserInfo where
+  parseJSON =
+    Core.withObject
+      "BlogPerUserInfo"
+      ( \o ->
+          BlogPerUserInfo
+            Core.<$> (o Core..:? "blogId")
+            Core.<*> (o Core..:? "hasAdminAccess")
+            Core.<*> (o Core..:? "kind")
+            Core.<*> (o Core..:? "photosAlbumKey")
+            Core.<*> (o Core..:? "role")
+            Core.<*> (o Core..:? "userId")
+      )
+
+instance Core.ToJSON BlogPerUserInfo where
+  toJSON BlogPerUserInfo {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("blogId" Core..=) Core.<$> blogId,
+            ("hasAdminAccess" Core..=) Core.<$> hasAdminAccess,
+            ("kind" Core..=) Core.<$> kind,
+            ("photosAlbumKey" Core..=) Core.<$> photosAlbumKey,
+            ("role" Core..=) Core.<$> role',
+            ("userId" Core..=) Core.<$> userId
+          ]
+      )
+
+--
+-- /See:/ 'newBlogUserInfo' smart constructor.
+data BlogUserInfo = BlogUserInfo
+  { -- | The Blog resource.
+    blog :: (Core.Maybe Blog),
+    -- | Information about a User for the Blog.
+    blogUserInfo :: (Core.Maybe BlogPerUserInfo),
+    -- | The kind of this entity. Always blogger#blogUserInfo.
+    kind :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BlogUserInfo' with the minimum fields required to make a request.
+newBlogUserInfo ::
+  BlogUserInfo
+newBlogUserInfo =
+  BlogUserInfo
+    { blog = Core.Nothing,
+      blogUserInfo = Core.Nothing,
+      kind = Core.Nothing
+    }
+
+instance Core.FromJSON BlogUserInfo where
+  parseJSON =
+    Core.withObject
+      "BlogUserInfo"
+      ( \o ->
+          BlogUserInfo
+            Core.<$> (o Core..:? "blog")
+            Core.<*> (o Core..:? "blog_user_info")
+            Core.<*> (o Core..:? "kind")
+      )
+
+instance Core.ToJSON BlogUserInfo where
+  toJSON BlogUserInfo {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("blog" Core..=) Core.<$> blog,
+            ("blog_user_info" Core..=) Core.<$> blogUserInfo,
+            ("kind" Core..=) Core.<$> kind
+          ]
+      )
+
+--
+-- /See:/ 'newComment' smart constructor.
+data Comment = Comment
+  { -- | The author of this Comment.
+    author :: (Core.Maybe Comment_Author),
+    -- | Data about the blog containing this comment.
+    blog :: (Core.Maybe Comment_Blog),
+    -- | The actual content of the comment. May include HTML markup.
+    content :: (Core.Maybe Core.Text),
+    -- | The identifier for this resource.
+    id :: (Core.Maybe Core.Text),
+    -- | Data about the comment this is in reply to.
+    inReplyTo :: (Core.Maybe Comment_InReplyTo),
+    -- | The kind of this entry. Always blogger#comment.
+    kind :: (Core.Maybe Core.Text),
+    -- | Data about the post containing this comment.
+    post :: (Core.Maybe Comment_Post),
+    -- | RFC 3339 date-time when this comment was published.
+    published :: (Core.Maybe Core.Text),
+    -- | The API REST URL to fetch this resource from.
+    selfLink :: (Core.Maybe Core.Text),
+    -- | The status of the comment (only populated for admin users).
+    status :: (Core.Maybe Comment_Status),
+    -- | RFC 3339 date-time when this comment was last updated.
+    updated :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Comment' with the minimum fields required to make a request.
+newComment ::
+  Comment
+newComment =
+  Comment
+    { author = Core.Nothing,
+      blog = Core.Nothing,
+      content = Core.Nothing,
+      id = Core.Nothing,
+      inReplyTo = Core.Nothing,
+      kind = Core.Nothing,
+      post = Core.Nothing,
+      published = Core.Nothing,
+      selfLink = Core.Nothing,
+      status = Core.Nothing,
+      updated = Core.Nothing
+    }
+
+instance Core.FromJSON Comment where
+  parseJSON =
+    Core.withObject
+      "Comment"
+      ( \o ->
+          Comment
+            Core.<$> (o Core..:? "author")
+            Core.<*> (o Core..:? "blog")
+            Core.<*> (o Core..:? "content")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "inReplyTo")
+            Core.<*> (o Core..:? "kind")
+            Core.<*> (o Core..:? "post")
+            Core.<*> (o Core..:? "published")
+            Core.<*> (o Core..:? "selfLink")
+            Core.<*> (o Core..:? "status")
+            Core.<*> (o Core..:? "updated")
+      )
+
+instance Core.ToJSON Comment where
+  toJSON Comment {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("author" Core..=) Core.<$> author,
+            ("blog" Core..=) Core.<$> blog,
+            ("content" Core..=) Core.<$> content,
+            ("id" Core..=) Core.<$> id,
+            ("inReplyTo" Core..=) Core.<$> inReplyTo,
+            ("kind" Core..=) Core.<$> kind,
+            ("post" Core..=) Core.<$> post,
+            ("published" Core..=) Core.<$> published,
+            ("selfLink" Core..=) Core.<$> selfLink,
+            ("status" Core..=) Core.<$> status,
+            ("updated" Core..=) Core.<$> updated
+          ]
+      )
+
+-- | The author of this Comment.
+--
+-- /See:/ 'newComment_Author' smart constructor.
+data Comment_Author = Comment_Author
+  { -- | The display name.
+    displayName :: (Core.Maybe Core.Text),
+    -- | The identifier of the creator.
+    id :: (Core.Maybe Core.Text),
+    -- | The creator\'s avatar.
+    image :: (Core.Maybe Comment_Author_Image),
+    -- | The URL of the creator\'s Profile page.
+    url :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Comment_Author' with the minimum fields required to make a request.
+newComment_Author ::
+  Comment_Author
+newComment_Author =
+  Comment_Author
+    { displayName = Core.Nothing,
+      id = Core.Nothing,
+      image = Core.Nothing,
+      url = Core.Nothing
+    }
+
+instance Core.FromJSON Comment_Author where
+  parseJSON =
+    Core.withObject
+      "Comment_Author"
+      ( \o ->
+          Comment_Author
+            Core.<$> (o Core..:? "displayName")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "image")
+            Core.<*> (o Core..:? "url")
+      )
+
+instance Core.ToJSON Comment_Author where
+  toJSON Comment_Author {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("displayName" Core..=) Core.<$> displayName,
+            ("id" Core..=) Core.<$> id,
+            ("image" Core..=) Core.<$> image,
+            ("url" Core..=) Core.<$> url
+          ]
+      )
+
+-- | The creator\'s avatar.
+--
+-- /See:/ 'newComment_Author_Image' smart constructor.
+newtype Comment_Author_Image = Comment_Author_Image
+  { -- | The creator\'s avatar URL.
+    url :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Comment_Author_Image' with the minimum fields required to make a request.
+newComment_Author_Image ::
+  Comment_Author_Image
+newComment_Author_Image = Comment_Author_Image {url = Core.Nothing}
+
+instance Core.FromJSON Comment_Author_Image where
+  parseJSON =
+    Core.withObject
+      "Comment_Author_Image"
+      (\o -> Comment_Author_Image Core.<$> (o Core..:? "url"))
+
+instance Core.ToJSON Comment_Author_Image where
+  toJSON Comment_Author_Image {..} =
+    Core.object (Core.catMaybes [("url" Core..=) Core.<$> url])
+
+-- | Data about the blog containing this comment.
+--
+-- /See:/ 'newComment_Blog' smart constructor.
+newtype Comment_Blog = Comment_Blog
+  { -- | The identifier of the blog containing this comment.
+    id :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Comment_Blog' with the minimum fields required to make a request.
+newComment_Blog ::
+  Comment_Blog
+newComment_Blog = Comment_Blog {id = Core.Nothing}
+
+instance Core.FromJSON Comment_Blog where
+  parseJSON =
+    Core.withObject
+      "Comment_Blog"
+      (\o -> Comment_Blog Core.<$> (o Core..:? "id"))
+
+instance Core.ToJSON Comment_Blog where
+  toJSON Comment_Blog {..} =
+    Core.object (Core.catMaybes [("id" Core..=) Core.<$> id])
+
+-- | Data about the comment this is in reply to.
+--
+-- /See:/ 'newComment_InReplyTo' smart constructor.
+newtype Comment_InReplyTo = Comment_InReplyTo
+  { -- | The identified of the parent of this comment.
+    id :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Comment_InReplyTo' with the minimum fields required to make a request.
+newComment_InReplyTo ::
+  Comment_InReplyTo
+newComment_InReplyTo = Comment_InReplyTo {id = Core.Nothing}
+
+instance Core.FromJSON Comment_InReplyTo where
+  parseJSON =
+    Core.withObject
+      "Comment_InReplyTo"
+      (\o -> Comment_InReplyTo Core.<$> (o Core..:? "id"))
+
+instance Core.ToJSON Comment_InReplyTo where
+  toJSON Comment_InReplyTo {..} =
+    Core.object (Core.catMaybes [("id" Core..=) Core.<$> id])
+
+-- | Data about the post containing this comment.
+--
+-- /See:/ 'newComment_Post' smart constructor.
+newtype Comment_Post = Comment_Post
+  { -- | The identifier of the post containing this comment.
+    id :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Comment_Post' with the minimum fields required to make a request.
+newComment_Post ::
+  Comment_Post
+newComment_Post = Comment_Post {id = Core.Nothing}
+
+instance Core.FromJSON Comment_Post where
+  parseJSON =
+    Core.withObject
+      "Comment_Post"
+      (\o -> Comment_Post Core.<$> (o Core..:? "id"))
+
+instance Core.ToJSON Comment_Post where
+  toJSON Comment_Post {..} =
+    Core.object (Core.catMaybes [("id" Core..=) Core.<$> id])
+
+--
+-- /See:/ 'newCommentList' smart constructor.
+data CommentList = CommentList
+  { -- | Etag of the response.
+    etag :: (Core.Maybe Core.Text),
+    -- | The List of Comments for a Post.
+    items :: (Core.Maybe [Comment]),
+    -- | The kind of this entry. Always blogger#commentList.
+    kind :: (Core.Maybe Core.Text),
+    -- | Pagination token to fetch the next page, if one exists.
+    nextPageToken :: (Core.Maybe Core.Text),
+    -- | Pagination token to fetch the previous page, if one exists.
+    prevPageToken :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CommentList' with the minimum fields required to make a request.
+newCommentList ::
+  CommentList
+newCommentList =
+  CommentList
+    { etag = Core.Nothing,
+      items = Core.Nothing,
+      kind = Core.Nothing,
+      nextPageToken = Core.Nothing,
+      prevPageToken = Core.Nothing
+    }
+
+instance Core.FromJSON CommentList where
+  parseJSON =
+    Core.withObject
+      "CommentList"
+      ( \o ->
+          CommentList
+            Core.<$> (o Core..:? "etag")
+            Core.<*> (o Core..:? "items")
+            Core.<*> (o Core..:? "kind")
+            Core.<*> (o Core..:? "nextPageToken")
+            Core.<*> (o Core..:? "prevPageToken")
+      )
+
+instance Core.ToJSON CommentList where
+  toJSON CommentList {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("etag" Core..=) Core.<$> etag,
+            ("items" Core..=) Core.<$> items,
+            ("kind" Core..=) Core.<$> kind,
+            ("nextPageToken" Core..=) Core.<$> nextPageToken,
+            ("prevPageToken" Core..=) Core.<$> prevPageToken
+          ]
+      )
+
+--
+-- /See:/ 'newPage' smart constructor.
+data Page = Page
+  { -- | The author of this Page.
+    author :: (Core.Maybe Page_Author),
+    -- | Data about the blog containing this Page.
+    blog :: (Core.Maybe Page_Blog),
+    -- | The body content of this Page, in HTML.
+    content :: (Core.Maybe Core.Text),
+    -- | Etag of the resource.
+    etag :: (Core.Maybe Core.Text),
+    -- | The identifier for this resource.
+    id :: (Core.Maybe Core.Text),
+    -- | The kind of this entity. Always blogger#page.
+    kind :: (Core.Maybe Core.Text),
+    -- | RFC 3339 date-time when this Page was published.
+    published :: (Core.Maybe Core.Text),
+    -- | The API REST URL to fetch this resource from.
+    selfLink :: (Core.Maybe Core.Text),
+    -- | The status of the page for admin resources (either LIVE or DRAFT).
+    status :: (Core.Maybe Page_Status),
+    -- | The title of this entity. This is the name displayed in the Admin user interface.
+    title :: (Core.Maybe Core.Text),
+    -- | RFC 3339 date-time when this Page was trashed.
+    trashed :: (Core.Maybe Core.Text),
+    -- | RFC 3339 date-time when this Page was last updated.
+    updated :: (Core.Maybe Core.Text),
+    -- | The URL that this Page is displayed at.
+    url :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Page' with the minimum fields required to make a request.
+newPage ::
+  Page
+newPage =
+  Page
+    { author = Core.Nothing,
+      blog = Core.Nothing,
+      content = Core.Nothing,
+      etag = Core.Nothing,
+      id = Core.Nothing,
+      kind = Core.Nothing,
+      published = Core.Nothing,
+      selfLink = Core.Nothing,
+      status = Core.Nothing,
+      title = Core.Nothing,
+      trashed = Core.Nothing,
+      updated = Core.Nothing,
+      url = Core.Nothing
+    }
+
+instance Core.FromJSON Page where
+  parseJSON =
+    Core.withObject
+      "Page"
+      ( \o ->
+          Page
+            Core.<$> (o Core..:? "author")
+            Core.<*> (o Core..:? "blog")
+            Core.<*> (o Core..:? "content")
+            Core.<*> (o Core..:? "etag")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "kind")
+            Core.<*> (o Core..:? "published")
+            Core.<*> (o Core..:? "selfLink")
+            Core.<*> (o Core..:? "status")
+            Core.<*> (o Core..:? "title")
+            Core.<*> (o Core..:? "trashed")
+            Core.<*> (o Core..:? "updated")
+            Core.<*> (o Core..:? "url")
+      )
+
+instance Core.ToJSON Page where
+  toJSON Page {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("author" Core..=) Core.<$> author,
+            ("blog" Core..=) Core.<$> blog,
+            ("content" Core..=) Core.<$> content,
+            ("etag" Core..=) Core.<$> etag,
+            ("id" Core..=) Core.<$> id,
+            ("kind" Core..=) Core.<$> kind,
+            ("published" Core..=) Core.<$> published,
+            ("selfLink" Core..=) Core.<$> selfLink,
+            ("status" Core..=) Core.<$> status,
+            ("title" Core..=) Core.<$> title,
+            ("trashed" Core..=) Core.<$> trashed,
+            ("updated" Core..=) Core.<$> updated,
+            ("url" Core..=) Core.<$> url
+          ]
+      )
+
+-- | The author of this Page.
+--
+-- /See:/ 'newPage_Author' smart constructor.
+data Page_Author = Page_Author
+  { -- | The display name.
+    displayName :: (Core.Maybe Core.Text),
+    -- | The identifier of the creator.
+    id :: (Core.Maybe Core.Text),
+    -- | The creator\'s avatar.
+    image :: (Core.Maybe Page_Author_Image),
+    -- | The URL of the creator\'s Profile page.
+    url :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Page_Author' with the minimum fields required to make a request.
+newPage_Author ::
+  Page_Author
+newPage_Author =
+  Page_Author
+    { displayName = Core.Nothing,
+      id = Core.Nothing,
+      image = Core.Nothing,
+      url = Core.Nothing
+    }
+
+instance Core.FromJSON Page_Author where
+  parseJSON =
+    Core.withObject
+      "Page_Author"
+      ( \o ->
+          Page_Author
+            Core.<$> (o Core..:? "displayName")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "image")
+            Core.<*> (o Core..:? "url")
+      )
+
+instance Core.ToJSON Page_Author where
+  toJSON Page_Author {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("displayName" Core..=) Core.<$> displayName,
+            ("id" Core..=) Core.<$> id,
+            ("image" Core..=) Core.<$> image,
+            ("url" Core..=) Core.<$> url
+          ]
+      )
+
+-- | The creator\'s avatar.
+--
+-- /See:/ 'newPage_Author_Image' smart constructor.
+newtype Page_Author_Image = Page_Author_Image
+  { -- | The creator\'s avatar URL.
+    url :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Page_Author_Image' with the minimum fields required to make a request.
+newPage_Author_Image ::
+  Page_Author_Image
+newPage_Author_Image = Page_Author_Image {url = Core.Nothing}
+
+instance Core.FromJSON Page_Author_Image where
+  parseJSON =
+    Core.withObject
+      "Page_Author_Image"
+      (\o -> Page_Author_Image Core.<$> (o Core..:? "url"))
+
+instance Core.ToJSON Page_Author_Image where
+  toJSON Page_Author_Image {..} =
+    Core.object (Core.catMaybes [("url" Core..=) Core.<$> url])
+
+-- | Data about the blog containing this Page.
+--
+-- /See:/ 'newPage_Blog' smart constructor.
+newtype Page_Blog = Page_Blog
+  { -- | The identifier of the blog containing this page.
+    id :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Page_Blog' with the minimum fields required to make a request.
+newPage_Blog ::
+  Page_Blog
+newPage_Blog = Page_Blog {id = Core.Nothing}
+
+instance Core.FromJSON Page_Blog where
+  parseJSON =
+    Core.withObject
+      "Page_Blog"
+      (\o -> Page_Blog Core.<$> (o Core..:? "id"))
+
+instance Core.ToJSON Page_Blog where
+  toJSON Page_Blog {..} =
+    Core.object (Core.catMaybes [("id" Core..=) Core.<$> id])
+
+--
+-- /See:/ 'newPageList' smart constructor.
+data PageList = PageList
+  { -- | Etag of the response.
+    etag :: (Core.Maybe Core.Text),
+    -- | The list of Pages for a Blog.
+    items :: (Core.Maybe [Page]),
+    -- | The kind of this entity. Always blogger#pageList.
+    kind :: (Core.Maybe Core.Text),
+    -- | Pagination token to fetch the next page, if one exists.
+    nextPageToken :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'PageList' with the minimum fields required to make a request.
+newPageList ::
+  PageList
+newPageList =
+  PageList
+    { etag = Core.Nothing,
+      items = Core.Nothing,
+      kind = Core.Nothing,
+      nextPageToken = Core.Nothing
+    }
+
+instance Core.FromJSON PageList where
+  parseJSON =
+    Core.withObject
+      "PageList"
+      ( \o ->
+          PageList
+            Core.<$> (o Core..:? "etag")
+            Core.<*> (o Core..:? "items")
+            Core.<*> (o Core..:? "kind")
+            Core.<*> (o Core..:? "nextPageToken")
+      )
+
+instance Core.ToJSON PageList where
+  toJSON PageList {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("etag" Core..=) Core.<$> etag,
+            ("items" Core..=) Core.<$> items,
+            ("kind" Core..=) Core.<$> kind,
+            ("nextPageToken" Core..=) Core.<$> nextPageToken
+          ]
+      )
+
+--
+-- /See:/ 'newPageviews' smart constructor.
+data Pageviews = Pageviews
+  { -- | Blog Id.
+    blogId :: (Core.Maybe Core.Text),
+    -- | The container of posts in this blog.
+    counts :: (Core.Maybe [Pageviews_CountsItem]),
+    -- | The kind of this entry. Always blogger#page_views.
+    kind :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Pageviews' with the minimum fields required to make a request.
+newPageviews ::
+  Pageviews
+newPageviews =
+  Pageviews
+    { blogId = Core.Nothing,
+      counts = Core.Nothing,
+      kind = Core.Nothing
+    }
+
+instance Core.FromJSON Pageviews where
+  parseJSON =
+    Core.withObject
+      "Pageviews"
+      ( \o ->
+          Pageviews
+            Core.<$> (o Core..:? "blogId")
+            Core.<*> (o Core..:? "counts")
+            Core.<*> (o Core..:? "kind")
+      )
+
+instance Core.ToJSON Pageviews where
+  toJSON Pageviews {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("blogId" Core..=) Core.<$> blogId,
+            ("counts" Core..=) Core.<$> counts,
+            ("kind" Core..=) Core.<$> kind
+          ]
+      )
+
+--
+-- /See:/ 'newPageviews_CountsItem' smart constructor.
+data Pageviews_CountsItem = Pageviews_CountsItem
+  { -- | Count of page views for the given time range.
+    count :: (Core.Maybe Core.Int64),
+    -- | Time range the given count applies to.
+    timeRange :: (Core.Maybe Pageviews_CountsItem_TimeRange)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Pageviews_CountsItem' with the minimum fields required to make a request.
+newPageviews_CountsItem ::
+  Pageviews_CountsItem
+newPageviews_CountsItem =
+  Pageviews_CountsItem
+    { count = Core.Nothing,
+      timeRange = Core.Nothing
+    }
+
+instance Core.FromJSON Pageviews_CountsItem where
+  parseJSON =
+    Core.withObject
+      "Pageviews_CountsItem"
+      ( \o ->
+          Pageviews_CountsItem
+            Core.<$> (o Core..:? "count" Core.<&> Core.fmap Core.fromAsText)
+            Core.<*> (o Core..:? "timeRange")
+      )
+
+instance Core.ToJSON Pageviews_CountsItem where
+  toJSON Pageviews_CountsItem {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("count" Core..=) Core.. Core.AsText Core.<$> count,
+            ("timeRange" Core..=) Core.<$> timeRange
+          ]
+      )
+
+--
+-- /See:/ 'newPost' smart constructor.
+data Post' = Post'
+  { -- | The author of this Post.
+    author :: (Core.Maybe Post_Author),
+    -- | Data about the blog containing this Post.
+    blog :: (Core.Maybe Post_Blog),
+    -- | The content of the Post. May contain HTML markup.
+    content :: (Core.Maybe Core.Text),
+    -- | The JSON meta-data for the Post.
+    customMetaData :: (Core.Maybe Core.Text),
+    -- | Etag of the resource.
+    etag :: (Core.Maybe Core.Text),
+    -- | The identifier of this Post.
+    id :: (Core.Maybe Core.Text),
+    -- | Display image for the Post.
+    images :: (Core.Maybe [Post_ImagesItem]),
+    -- | The kind of this entity. Always blogger#post.
+    kind :: (Core.Maybe Core.Text),
+    -- | The list of labels this Post was tagged with.
+    labels :: (Core.Maybe [Core.Text]),
+    -- | The location for geotagged posts.
+    location :: (Core.Maybe Post_Location),
+    -- | RFC 3339 date-time when this Post was published.
+    published :: (Core.Maybe Core.Text),
+    -- | Comment control and display setting for readers of this post.
+    readerComments :: (Core.Maybe Post_ReaderComments),
+    -- | The container of comments on this Post.
+    replies :: (Core.Maybe Post_Replies),
+    -- | The API REST URL to fetch this resource from.
+    selfLink :: (Core.Maybe Core.Text),
+    -- | Status of the post. Only set for admin-level requests.
+    status :: (Core.Maybe Post_Status),
+    -- | The title of the Post.
+    title :: (Core.Maybe Core.Text),
+    -- | The title link URL, similar to atom\'s related link.
+    titleLink :: (Core.Maybe Core.Text),
+    -- | RFC 3339 date-time when this Post was last trashed.
+    trashed :: (Core.Maybe Core.Text),
+    -- | RFC 3339 date-time when this Post was last updated.
+    updated :: (Core.Maybe Core.Text),
+    -- | The URL where this Post is displayed.
+    url :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Post' with the minimum fields required to make a request.
+newPost ::
+  Post'
+newPost =
+  Post'
+    { author = Core.Nothing,
+      blog = Core.Nothing,
+      content = Core.Nothing,
+      customMetaData = Core.Nothing,
+      etag = Core.Nothing,
+      id = Core.Nothing,
+      images = Core.Nothing,
+      kind = Core.Nothing,
+      labels = Core.Nothing,
+      location = Core.Nothing,
+      published = Core.Nothing,
+      readerComments = Core.Nothing,
+      replies = Core.Nothing,
+      selfLink = Core.Nothing,
+      status = Core.Nothing,
+      title = Core.Nothing,
+      titleLink = Core.Nothing,
+      trashed = Core.Nothing,
+      updated = Core.Nothing,
+      url = Core.Nothing
+    }
+
+instance Core.FromJSON Post' where
+  parseJSON =
+    Core.withObject
+      "Post'"
+      ( \o ->
+          Post'
+            Core.<$> (o Core..:? "author")
+            Core.<*> (o Core..:? "blog")
+            Core.<*> (o Core..:? "content")
+            Core.<*> (o Core..:? "customMetaData")
+            Core.<*> (o Core..:? "etag")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "images")
+            Core.<*> (o Core..:? "kind")
+            Core.<*> (o Core..:? "labels")
+            Core.<*> (o Core..:? "location")
+            Core.<*> (o Core..:? "published")
+            Core.<*> (o Core..:? "readerComments")
+            Core.<*> (o Core..:? "replies")
+            Core.<*> (o Core..:? "selfLink")
+            Core.<*> (o Core..:? "status")
+            Core.<*> (o Core..:? "title")
+            Core.<*> (o Core..:? "titleLink")
+            Core.<*> (o Core..:? "trashed")
+            Core.<*> (o Core..:? "updated")
+            Core.<*> (o Core..:? "url")
+      )
+
+instance Core.ToJSON Post' where
+  toJSON Post' {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("author" Core..=) Core.<$> author,
+            ("blog" Core..=) Core.<$> blog,
+            ("content" Core..=) Core.<$> content,
+            ("customMetaData" Core..=) Core.<$> customMetaData,
+            ("etag" Core..=) Core.<$> etag,
+            ("id" Core..=) Core.<$> id,
+            ("images" Core..=) Core.<$> images,
+            ("kind" Core..=) Core.<$> kind,
+            ("labels" Core..=) Core.<$> labels,
+            ("location" Core..=) Core.<$> location,
+            ("published" Core..=) Core.<$> published,
+            ("readerComments" Core..=) Core.<$> readerComments,
+            ("replies" Core..=) Core.<$> replies,
+            ("selfLink" Core..=) Core.<$> selfLink,
+            ("status" Core..=) Core.<$> status,
+            ("title" Core..=) Core.<$> title,
+            ("titleLink" Core..=) Core.<$> titleLink,
+            ("trashed" Core..=) Core.<$> trashed,
+            ("updated" Core..=) Core.<$> updated,
+            ("url" Core..=) Core.<$> url
+          ]
+      )
+
+-- | The author of this Post.
+--
+-- /See:/ 'newPost_Author' smart constructor.
+data Post_Author = Post_Author
+  { -- | The display name.
+    displayName :: (Core.Maybe Core.Text),
+    -- | The identifier of the creator.
+    id :: (Core.Maybe Core.Text),
+    -- | The creator\'s avatar.
+    image :: (Core.Maybe Post_Author_Image),
+    -- | The URL of the creator\'s Profile page.
+    url :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Post_Author' with the minimum fields required to make a request.
+newPost_Author ::
+  Post_Author
+newPost_Author =
+  Post_Author
+    { displayName = Core.Nothing,
+      id = Core.Nothing,
+      image = Core.Nothing,
+      url = Core.Nothing
+    }
+
+instance Core.FromJSON Post_Author where
+  parseJSON =
+    Core.withObject
+      "Post_Author"
+      ( \o ->
+          Post_Author
+            Core.<$> (o Core..:? "displayName")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "image")
+            Core.<*> (o Core..:? "url")
+      )
+
+instance Core.ToJSON Post_Author where
+  toJSON Post_Author {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("displayName" Core..=) Core.<$> displayName,
+            ("id" Core..=) Core.<$> id,
+            ("image" Core..=) Core.<$> image,
+            ("url" Core..=) Core.<$> url
+          ]
+      )
+
+-- | The creator\'s avatar.
+--
+-- /See:/ 'newPost_Author_Image' smart constructor.
+newtype Post_Author_Image = Post_Author_Image
+  { -- | The creator\'s avatar URL.
+    url :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Post_Author_Image' with the minimum fields required to make a request.
+newPost_Author_Image ::
+  Post_Author_Image
+newPost_Author_Image = Post_Author_Image {url = Core.Nothing}
+
+instance Core.FromJSON Post_Author_Image where
+  parseJSON =
+    Core.withObject
+      "Post_Author_Image"
+      (\o -> Post_Author_Image Core.<$> (o Core..:? "url"))
+
+instance Core.ToJSON Post_Author_Image where
+  toJSON Post_Author_Image {..} =
+    Core.object (Core.catMaybes [("url" Core..=) Core.<$> url])
+
+-- | Data about the blog containing this Post.
+--
+-- /See:/ 'newPost_Blog' smart constructor.
+newtype Post_Blog = Post_Blog
+  { -- | The identifier of the Blog that contains this Post.
+    id :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Post_Blog' with the minimum fields required to make a request.
+newPost_Blog ::
+  Post_Blog
+newPost_Blog = Post_Blog {id = Core.Nothing}
+
+instance Core.FromJSON Post_Blog where
+  parseJSON =
+    Core.withObject
+      "Post_Blog"
+      (\o -> Post_Blog Core.<$> (o Core..:? "id"))
+
+instance Core.ToJSON Post_Blog where
+  toJSON Post_Blog {..} =
+    Core.object (Core.catMaybes [("id" Core..=) Core.<$> id])
+
+--
+-- /See:/ 'newPost_ImagesItem' smart constructor.
+newtype Post_ImagesItem = Post_ImagesItem
+  { url :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Post_ImagesItem' with the minimum fields required to make a request.
+newPost_ImagesItem ::
+  Post_ImagesItem
+newPost_ImagesItem = Post_ImagesItem {url = Core.Nothing}
+
+instance Core.FromJSON Post_ImagesItem where
+  parseJSON =
+    Core.withObject
+      "Post_ImagesItem"
+      (\o -> Post_ImagesItem Core.<$> (o Core..:? "url"))
+
+instance Core.ToJSON Post_ImagesItem where
+  toJSON Post_ImagesItem {..} =
+    Core.object (Core.catMaybes [("url" Core..=) Core.<$> url])
+
+-- | The location for geotagged posts.
+--
+-- /See:/ 'newPost_Location' smart constructor.
+data Post_Location = Post_Location
+  { -- | Location\'s latitude.
+    lat :: (Core.Maybe Core.Double),
+    -- | Location\'s longitude.
+    lng :: (Core.Maybe Core.Double),
+    -- | Location name.
+    name :: (Core.Maybe Core.Text),
+    -- | Location\'s viewport span. Can be used when rendering a map preview.
+    span :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Post_Location' with the minimum fields required to make a request.
+newPost_Location ::
+  Post_Location
+newPost_Location =
+  Post_Location
+    { lat = Core.Nothing,
+      lng = Core.Nothing,
+      name = Core.Nothing,
+      span = Core.Nothing
+    }
+
+instance Core.FromJSON Post_Location where
+  parseJSON =
+    Core.withObject
+      "Post_Location"
+      ( \o ->
+          Post_Location
+            Core.<$> (o Core..:? "lat")
+            Core.<*> (o Core..:? "lng")
+            Core.<*> (o Core..:? "name")
+            Core.<*> (o Core..:? "span")
+      )
+
+instance Core.ToJSON Post_Location where
+  toJSON Post_Location {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("lat" Core..=) Core.<$> lat,
+            ("lng" Core..=) Core.<$> lng,
+            ("name" Core..=) Core.<$> name,
+            ("span" Core..=) Core.<$> span
+          ]
+      )
+
+-- | The container of comments on this Post.
+--
+-- /See:/ 'newPost_Replies' smart constructor.
+data Post_Replies = Post_Replies
+  { -- | The List of Comments for this Post.
+    items :: (Core.Maybe [Comment]),
+    -- | The URL of the comments on this post.
+    selfLink :: (Core.Maybe Core.Text),
+    -- | The count of comments on this post.
+    totalItems :: (Core.Maybe Core.Int64)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Post_Replies' with the minimum fields required to make a request.
+newPost_Replies ::
+  Post_Replies
+newPost_Replies =
+  Post_Replies
+    { items = Core.Nothing,
+      selfLink = Core.Nothing,
+      totalItems = Core.Nothing
+    }
+
+instance Core.FromJSON Post_Replies where
+  parseJSON =
+    Core.withObject
+      "Post_Replies"
+      ( \o ->
+          Post_Replies
+            Core.<$> (o Core..:? "items")
+            Core.<*> (o Core..:? "selfLink")
+            Core.<*> (o Core..:? "totalItems" Core.<&> Core.fmap Core.fromAsText)
+      )
+
+instance Core.ToJSON Post_Replies where
+  toJSON Post_Replies {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("items" Core..=) Core.<$> items,
+            ("selfLink" Core..=) Core.<$> selfLink,
+            ("totalItems" Core..=) Core.. Core.AsText Core.<$> totalItems
+          ]
+      )
+
+--
+-- /See:/ 'newPostList' smart constructor.
+data PostList = PostList
+  { -- | Etag of the response.
+    etag :: (Core.Maybe Core.Text),
+    -- | The list of Posts for this Blog.
+    items :: (Core.Maybe [Post']),
+    -- | The kind of this entity. Always blogger#postList.
+    kind :: (Core.Maybe Core.Text),
+    -- | Pagination token to fetch the next page, if one exists.
+    nextPageToken :: (Core.Maybe Core.Text),
+    -- | Pagination token to fetch the previous page, if one exists.
+    prevPageToken :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'PostList' with the minimum fields required to make a request.
+newPostList ::
+  PostList
+newPostList =
+  PostList
+    { etag = Core.Nothing,
+      items = Core.Nothing,
+      kind = Core.Nothing,
+      nextPageToken = Core.Nothing,
+      prevPageToken = Core.Nothing
+    }
+
+instance Core.FromJSON PostList where
+  parseJSON =
+    Core.withObject
+      "PostList"
+      ( \o ->
+          PostList
+            Core.<$> (o Core..:? "etag")
+            Core.<*> (o Core..:? "items")
+            Core.<*> (o Core..:? "kind")
+            Core.<*> (o Core..:? "nextPageToken")
+            Core.<*> (o Core..:? "prevPageToken")
+      )
+
+instance Core.ToJSON PostList where
+  toJSON PostList {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("etag" Core..=) Core.<$> etag,
+            ("items" Core..=) Core.<$> items,
+            ("kind" Core..=) Core.<$> kind,
+            ("nextPageToken" Core..=) Core.<$> nextPageToken,
+            ("prevPageToken" Core..=) Core.<$> prevPageToken
+          ]
+      )
+
+--
+-- /See:/ 'newPostPerUserInfo' smart constructor.
+data PostPerUserInfo = PostPerUserInfo
+  { -- | ID of the Blog that the post resource belongs to.
+    blogId :: (Core.Maybe Core.Text),
+    -- | True if the user has Author level access to the post.
+    hasEditAccess :: (Core.Maybe Core.Bool),
+    -- | The kind of this entity. Always blogger#postPerUserInfo.
+    kind :: (Core.Maybe Core.Text),
+    -- | ID of the Post resource.
+    postId :: (Core.Maybe Core.Text),
+    -- | ID of the User.
+    userId :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'PostPerUserInfo' with the minimum fields required to make a request.
+newPostPerUserInfo ::
+  PostPerUserInfo
+newPostPerUserInfo =
+  PostPerUserInfo
+    { blogId = Core.Nothing,
+      hasEditAccess = Core.Nothing,
+      kind = Core.Nothing,
+      postId = Core.Nothing,
+      userId = Core.Nothing
+    }
+
+instance Core.FromJSON PostPerUserInfo where
+  parseJSON =
+    Core.withObject
+      "PostPerUserInfo"
+      ( \o ->
+          PostPerUserInfo
+            Core.<$> (o Core..:? "blogId")
+            Core.<*> (o Core..:? "hasEditAccess")
+            Core.<*> (o Core..:? "kind")
+            Core.<*> (o Core..:? "postId")
+            Core.<*> (o Core..:? "userId")
+      )
+
+instance Core.ToJSON PostPerUserInfo where
+  toJSON PostPerUserInfo {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("blogId" Core..=) Core.<$> blogId,
+            ("hasEditAccess" Core..=) Core.<$> hasEditAccess,
+            ("kind" Core..=) Core.<$> kind,
+            ("postId" Core..=) Core.<$> postId,
+            ("userId" Core..=) Core.<$> userId
+          ]
+      )
+
+--
+-- /See:/ 'newPostUserInfo' smart constructor.
+data PostUserInfo = PostUserInfo
+  { -- | The kind of this entity. Always blogger#postUserInfo.
+    kind :: (Core.Maybe Core.Text),
+    -- | The Post resource.
+    post :: (Core.Maybe Post'),
+    -- | Information about a User for the Post.
+    postUserInfo :: (Core.Maybe PostPerUserInfo)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'PostUserInfo' with the minimum fields required to make a request.
+newPostUserInfo ::
+  PostUserInfo
+newPostUserInfo =
+  PostUserInfo
+    { kind = Core.Nothing,
+      post = Core.Nothing,
+      postUserInfo = Core.Nothing
+    }
+
+instance Core.FromJSON PostUserInfo where
+  parseJSON =
+    Core.withObject
+      "PostUserInfo"
+      ( \o ->
+          PostUserInfo
+            Core.<$> (o Core..:? "kind")
+            Core.<*> (o Core..:? "post")
+            Core.<*> (o Core..:? "post_user_info")
+      )
+
+instance Core.ToJSON PostUserInfo where
+  toJSON PostUserInfo {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("kind" Core..=) Core.<$> kind,
+            ("post" Core..=) Core.<$> post,
+            ("post_user_info" Core..=) Core.<$> postUserInfo
+          ]
+      )
+
+--
+-- /See:/ 'newPostUserInfosList' smart constructor.
+data PostUserInfosList = PostUserInfosList
+  { -- | The list of Posts with User information for the post, for this Blog.
+    items :: (Core.Maybe [PostUserInfo]),
+    -- | The kind of this entity. Always blogger#postList.
+    kind :: (Core.Maybe Core.Text),
+    -- | Pagination token to fetch the next page, if one exists.
+    nextPageToken :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'PostUserInfosList' with the minimum fields required to make a request.
+newPostUserInfosList ::
+  PostUserInfosList
+newPostUserInfosList =
+  PostUserInfosList
+    { items = Core.Nothing,
+      kind = Core.Nothing,
+      nextPageToken = Core.Nothing
+    }
+
+instance Core.FromJSON PostUserInfosList where
+  parseJSON =
+    Core.withObject
+      "PostUserInfosList"
+      ( \o ->
+          PostUserInfosList
+            Core.<$> (o Core..:? "items")
+            Core.<*> (o Core..:? "kind")
+            Core.<*> (o Core..:? "nextPageToken")
+      )
+
+instance Core.ToJSON PostUserInfosList where
+  toJSON PostUserInfosList {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("items" Core..=) Core.<$> items,
+            ("kind" Core..=) Core.<$> kind,
+            ("nextPageToken" Core..=) Core.<$> nextPageToken
+          ]
+      )
+
+--
+-- /See:/ 'newUser' smart constructor.
+data User = User
+  { -- | Profile summary information.
+    about :: (Core.Maybe Core.Text),
+    -- | The container of blogs for this user.
+    blogs :: (Core.Maybe User_Blogs),
+    -- | The timestamp of when this profile was created, in seconds since epoch.
+    created :: (Core.Maybe Core.Text),
+    -- | The display name.
+    displayName :: (Core.Maybe Core.Text),
+    -- | The identifier for this User.
+    id :: (Core.Maybe Core.Text),
+    -- | The kind of this entity. Always blogger#user.
+    kind :: (Core.Maybe Core.Text),
+    -- | This user\'s locale
+    locale :: (Core.Maybe User_Locale),
+    -- | The API REST URL to fetch this resource from.
+    selfLink :: (Core.Maybe Core.Text),
+    -- | The user\'s profile page.
+    url :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'User' with the minimum fields required to make a request.
+newUser ::
+  User
+newUser =
+  User
+    { about = Core.Nothing,
+      blogs = Core.Nothing,
+      created = Core.Nothing,
+      displayName = Core.Nothing,
+      id = Core.Nothing,
+      kind = Core.Nothing,
+      locale = Core.Nothing,
+      selfLink = Core.Nothing,
+      url = Core.Nothing
+    }
+
+instance Core.FromJSON User where
+  parseJSON =
+    Core.withObject
+      "User"
+      ( \o ->
+          User
+            Core.<$> (o Core..:? "about")
+            Core.<*> (o Core..:? "blogs")
+            Core.<*> (o Core..:? "created")
+            Core.<*> (o Core..:? "displayName")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "kind")
+            Core.<*> (o Core..:? "locale")
+            Core.<*> (o Core..:? "selfLink")
+            Core.<*> (o Core..:? "url")
+      )
+
+instance Core.ToJSON User where
+  toJSON User {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("about" Core..=) Core.<$> about,
+            ("blogs" Core..=) Core.<$> blogs,
+            ("created" Core..=) Core.<$> created,
+            ("displayName" Core..=) Core.<$> displayName,
+            ("id" Core..=) Core.<$> id,
+            ("kind" Core..=) Core.<$> kind,
+            ("locale" Core..=) Core.<$> locale,
+            ("selfLink" Core..=) Core.<$> selfLink,
+            ("url" Core..=) Core.<$> url
+          ]
+      )
+
+-- | The container of blogs for this user.
+--
+-- /See:/ 'newUser_Blogs' smart constructor.
+newtype User_Blogs = User_Blogs
+  { -- | The URL of the Blogs for this user.
+    selfLink :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'User_Blogs' with the minimum fields required to make a request.
+newUser_Blogs ::
+  User_Blogs
+newUser_Blogs = User_Blogs {selfLink = Core.Nothing}
+
+instance Core.FromJSON User_Blogs where
+  parseJSON =
+    Core.withObject
+      "User_Blogs"
+      (\o -> User_Blogs Core.<$> (o Core..:? "selfLink"))
+
+instance Core.ToJSON User_Blogs where
+  toJSON User_Blogs {..} =
+    Core.object
+      (Core.catMaybes [("selfLink" Core..=) Core.<$> selfLink])
+
+-- | This user\'s locale
+--
+-- /See:/ 'newUser_Locale' smart constructor.
+data User_Locale = User_Locale
+  { -- | The country this blog\'s locale is set to.
+    country :: (Core.Maybe Core.Text),
+    -- | The language this blog is authored in.
+    language :: (Core.Maybe Core.Text),
+    -- | The language variant this blog is authored in.
+    variant :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'User_Locale' with the minimum fields required to make a request.
+newUser_Locale ::
+  User_Locale
+newUser_Locale =
+  User_Locale
+    { country = Core.Nothing,
+      language = Core.Nothing,
+      variant = Core.Nothing
+    }
+
+instance Core.FromJSON User_Locale where
+  parseJSON =
+    Core.withObject
+      "User_Locale"
+      ( \o ->
+          User_Locale
+            Core.<$> (o Core..:? "country")
+            Core.<*> (o Core..:? "language")
+            Core.<*> (o Core..:? "variant")
+      )
+
+instance Core.ToJSON User_Locale where
+  toJSON User_Locale {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("country" Core..=) Core.<$> country,
+            ("language" Core..=) Core.<$> language,
+            ("variant" Core..=) Core.<$> variant
+          ]
+      )
diff --git a/gen/Gogol/Blogger/Internal/Sum.hs b/gen/Gogol/Blogger/Internal/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Internal/Sum.hs
@@ -0,0 +1,1240 @@
+{-# 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.Blogger.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.Blogger.Internal.Sum
+  ( -- * Xgafv
+    Xgafv
+      ( Xgafv_1,
+        Xgafv_2,
+        ..
+      ),
+
+    -- * Blog_Status
+    Blog_Status
+      ( Blog_Status_Live,
+        Blog_Status_Deleted,
+        ..
+      ),
+
+    -- * BlogPerUserInfo_Role
+    BlogPerUserInfo_Role
+      ( BlogPerUserInfo_Role_VIEWTYPEUNSPECIFIED,
+        BlogPerUserInfo_Role_Reader,
+        BlogPerUserInfo_Role_Author,
+        BlogPerUserInfo_Role_Admin,
+        ..
+      ),
+
+    -- * Comment_Status
+    Comment_Status
+      ( Comment_Status_Live,
+        Comment_Status_Emptied,
+        Comment_Status_Pending,
+        Comment_Status_Spam,
+        ..
+      ),
+
+    -- * Page_Status
+    Page_Status
+      ( Page_Status_Live,
+        Page_Status_Draft,
+        Page_Status_SOFTTRASHED,
+        ..
+      ),
+
+    -- * Pageviews_CountsItem_TimeRange
+    Pageviews_CountsItem_TimeRange
+      ( Pageviews_CountsItem_TimeRange_ALLTIME,
+        Pageviews_CountsItem_TimeRange_THIRTYDAYS,
+        Pageviews_CountsItem_TimeRange_SEVENDAYS,
+        ..
+      ),
+
+    -- * Post_ReaderComments
+    Post_ReaderComments
+      ( Post_ReaderComments_Allow,
+        Post_ReaderComments_DONTALLOWSHOWEXISTING,
+        Post_ReaderComments_DONTALLOWHIDEEXISTING,
+        ..
+      ),
+
+    -- * Post_Status
+    Post_Status
+      ( Post_Status_Live,
+        Post_Status_Draft,
+        Post_Status_Scheduled,
+        Post_Status_SOFTTRASHED,
+        ..
+      ),
+
+    -- * BlogsGetView
+    BlogsGetView
+      ( BlogsGetView_VIEWTYPEUNSPECIFIED,
+        BlogsGetView_Reader,
+        BlogsGetView_Author,
+        BlogsGetView_Admin,
+        ..
+      ),
+
+    -- * BlogsGetByUrlView
+    BlogsGetByUrlView
+      ( BlogsGetByUrlView_VIEWTYPEUNSPECIFIED,
+        BlogsGetByUrlView_Reader,
+        BlogsGetByUrlView_Author,
+        BlogsGetByUrlView_Admin,
+        ..
+      ),
+
+    -- * BlogsListByUserRole
+    BlogsListByUserRole
+      ( BlogsListByUserRole_VIEWTYPEUNSPECIFIED,
+        BlogsListByUserRole_Reader,
+        BlogsListByUserRole_Author,
+        BlogsListByUserRole_Admin,
+        ..
+      ),
+
+    -- * BlogsListByUserStatus
+    BlogsListByUserStatus
+      ( BlogsListByUserStatus_Live,
+        BlogsListByUserStatus_Deleted,
+        ..
+      ),
+
+    -- * BlogsListByUserView
+    BlogsListByUserView
+      ( BlogsListByUserView_VIEWTYPEUNSPECIFIED,
+        BlogsListByUserView_Reader,
+        BlogsListByUserView_Author,
+        BlogsListByUserView_Admin,
+        ..
+      ),
+
+    -- * CommentsGetView
+    CommentsGetView
+      ( CommentsGetView_VIEWTYPEUNSPECIFIED,
+        CommentsGetView_Reader,
+        CommentsGetView_Author,
+        CommentsGetView_Admin,
+        ..
+      ),
+
+    -- * CommentsListStatus
+    CommentsListStatus
+      ( CommentsListStatus_Live,
+        CommentsListStatus_Emptied,
+        CommentsListStatus_Pending,
+        CommentsListStatus_Spam,
+        ..
+      ),
+
+    -- * CommentsListView
+    CommentsListView
+      ( CommentsListView_VIEWTYPEUNSPECIFIED,
+        CommentsListView_Reader,
+        CommentsListView_Author,
+        CommentsListView_Admin,
+        ..
+      ),
+
+    -- * CommentsListByBlogStatus
+    CommentsListByBlogStatus
+      ( CommentsListByBlogStatus_Live,
+        CommentsListByBlogStatus_Emptied,
+        CommentsListByBlogStatus_Pending,
+        CommentsListByBlogStatus_Spam,
+        ..
+      ),
+
+    -- * PageViewsGetRange
+    PageViewsGetRange
+      ( PageViewsGetRange_All,
+        PageViewsGetRange_30DAYS,
+        PageViewsGetRange_7DAYS,
+        ..
+      ),
+
+    -- * PagesGetView
+    PagesGetView
+      ( PagesGetView_VIEWTYPEUNSPECIFIED,
+        PagesGetView_Reader,
+        PagesGetView_Author,
+        PagesGetView_Admin,
+        ..
+      ),
+
+    -- * PagesListStatus
+    PagesListStatus
+      ( PagesListStatus_Live,
+        PagesListStatus_Draft,
+        PagesListStatus_SOFTTRASHED,
+        ..
+      ),
+
+    -- * PagesListView
+    PagesListView
+      ( PagesListView_VIEWTYPEUNSPECIFIED,
+        PagesListView_Reader,
+        PagesListView_Author,
+        PagesListView_Admin,
+        ..
+      ),
+
+    -- * PostUserInfosListOrderBy
+    PostUserInfosListOrderBy
+      ( PostUserInfosListOrderBy_ORDERBYUNSPECIFIED,
+        PostUserInfosListOrderBy_Published,
+        PostUserInfosListOrderBy_Updated,
+        ..
+      ),
+
+    -- * PostUserInfosListStatus
+    PostUserInfosListStatus
+      ( PostUserInfosListStatus_Live,
+        PostUserInfosListStatus_Draft,
+        PostUserInfosListStatus_Scheduled,
+        PostUserInfosListStatus_SOFTTRASHED,
+        ..
+      ),
+
+    -- * PostUserInfosListView
+    PostUserInfosListView
+      ( PostUserInfosListView_VIEWTYPEUNSPECIFIED,
+        PostUserInfosListView_Reader,
+        PostUserInfosListView_Author,
+        PostUserInfosListView_Admin,
+        ..
+      ),
+
+    -- * PostsGetView
+    PostsGetView
+      ( PostsGetView_VIEWTYPEUNSPECIFIED,
+        PostsGetView_Reader,
+        PostsGetView_Author,
+        PostsGetView_Admin,
+        ..
+      ),
+
+    -- * PostsGetByPathView
+    PostsGetByPathView
+      ( PostsGetByPathView_VIEWTYPEUNSPECIFIED,
+        PostsGetByPathView_Reader,
+        PostsGetByPathView_Author,
+        PostsGetByPathView_Admin,
+        ..
+      ),
+
+    -- * PostsListOrderBy
+    PostsListOrderBy
+      ( PostsListOrderBy_ORDERBYUNSPECIFIED,
+        PostsListOrderBy_Published,
+        PostsListOrderBy_Updated,
+        ..
+      ),
+
+    -- * PostsListSortOption
+    PostsListSortOption
+      ( PostsListSortOption_SORTOPTIONUNSPECIFIED,
+        PostsListSortOption_Descending,
+        PostsListSortOption_Ascending,
+        ..
+      ),
+
+    -- * PostsListStatus
+    PostsListStatus
+      ( PostsListStatus_Live,
+        PostsListStatus_Draft,
+        PostsListStatus_Scheduled,
+        PostsListStatus_SOFTTRASHED,
+        ..
+      ),
+
+    -- * PostsListView
+    PostsListView
+      ( PostsListView_VIEWTYPEUNSPECIFIED,
+        PostsListView_Reader,
+        PostsListView_Author,
+        PostsListView_Admin,
+        ..
+      ),
+
+    -- * PostsSearchOrderBy
+    PostsSearchOrderBy
+      ( PostsSearchOrderBy_ORDERBYUNSPECIFIED,
+        PostsSearchOrderBy_Published,
+        PostsSearchOrderBy_Updated,
+        ..
+      ),
+  )
+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 status of the blog.
+newtype Blog_Status = Blog_Status {fromBlog_Status :: 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
+    )
+
+pattern Blog_Status_Live :: Blog_Status
+pattern Blog_Status_Live = Blog_Status "LIVE"
+
+pattern Blog_Status_Deleted :: Blog_Status
+pattern Blog_Status_Deleted = Blog_Status "DELETED"
+
+{-# COMPLETE
+  Blog_Status_Live,
+  Blog_Status_Deleted,
+  Blog_Status
+  #-}
+
+-- | Access permissions that the user has for the blog (ADMIN, AUTHOR, or READER).
+newtype BlogPerUserInfo_Role = BlogPerUserInfo_Role {fromBlogPerUserInfo_Role :: 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
+    )
+
+pattern BlogPerUserInfo_Role_VIEWTYPEUNSPECIFIED :: BlogPerUserInfo_Role
+pattern BlogPerUserInfo_Role_VIEWTYPEUNSPECIFIED = BlogPerUserInfo_Role "VIEW_TYPE_UNSPECIFIED"
+
+pattern BlogPerUserInfo_Role_Reader :: BlogPerUserInfo_Role
+pattern BlogPerUserInfo_Role_Reader = BlogPerUserInfo_Role "READER"
+
+pattern BlogPerUserInfo_Role_Author :: BlogPerUserInfo_Role
+pattern BlogPerUserInfo_Role_Author = BlogPerUserInfo_Role "AUTHOR"
+
+pattern BlogPerUserInfo_Role_Admin :: BlogPerUserInfo_Role
+pattern BlogPerUserInfo_Role_Admin = BlogPerUserInfo_Role "ADMIN"
+
+{-# COMPLETE
+  BlogPerUserInfo_Role_VIEWTYPEUNSPECIFIED,
+  BlogPerUserInfo_Role_Reader,
+  BlogPerUserInfo_Role_Author,
+  BlogPerUserInfo_Role_Admin,
+  BlogPerUserInfo_Role
+  #-}
+
+-- | The status of the comment (only populated for admin users).
+newtype Comment_Status = Comment_Status {fromComment_Status :: 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
+    )
+
+pattern Comment_Status_Live :: Comment_Status
+pattern Comment_Status_Live = Comment_Status "LIVE"
+
+pattern Comment_Status_Emptied :: Comment_Status
+pattern Comment_Status_Emptied = Comment_Status "EMPTIED"
+
+pattern Comment_Status_Pending :: Comment_Status
+pattern Comment_Status_Pending = Comment_Status "PENDING"
+
+pattern Comment_Status_Spam :: Comment_Status
+pattern Comment_Status_Spam = Comment_Status "SPAM"
+
+{-# COMPLETE
+  Comment_Status_Live,
+  Comment_Status_Emptied,
+  Comment_Status_Pending,
+  Comment_Status_Spam,
+  Comment_Status
+  #-}
+
+-- | The status of the page for admin resources (either LIVE or DRAFT).
+newtype Page_Status = Page_Status {fromPage_Status :: 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
+    )
+
+pattern Page_Status_Live :: Page_Status
+pattern Page_Status_Live = Page_Status "LIVE"
+
+pattern Page_Status_Draft :: Page_Status
+pattern Page_Status_Draft = Page_Status "DRAFT"
+
+pattern Page_Status_SOFTTRASHED :: Page_Status
+pattern Page_Status_SOFTTRASHED = Page_Status "SOFT_TRASHED"
+
+{-# COMPLETE
+  Page_Status_Live,
+  Page_Status_Draft,
+  Page_Status_SOFTTRASHED,
+  Page_Status
+  #-}
+
+-- | Time range the given count applies to.
+newtype Pageviews_CountsItem_TimeRange = Pageviews_CountsItem_TimeRange {fromPageviews_CountsItem_TimeRange :: 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
+    )
+
+pattern Pageviews_CountsItem_TimeRange_ALLTIME :: Pageviews_CountsItem_TimeRange
+pattern Pageviews_CountsItem_TimeRange_ALLTIME = Pageviews_CountsItem_TimeRange "ALL_TIME"
+
+pattern Pageviews_CountsItem_TimeRange_THIRTYDAYS :: Pageviews_CountsItem_TimeRange
+pattern Pageviews_CountsItem_TimeRange_THIRTYDAYS = Pageviews_CountsItem_TimeRange "THIRTY_DAYS"
+
+pattern Pageviews_CountsItem_TimeRange_SEVENDAYS :: Pageviews_CountsItem_TimeRange
+pattern Pageviews_CountsItem_TimeRange_SEVENDAYS = Pageviews_CountsItem_TimeRange "SEVEN_DAYS"
+
+{-# COMPLETE
+  Pageviews_CountsItem_TimeRange_ALLTIME,
+  Pageviews_CountsItem_TimeRange_THIRTYDAYS,
+  Pageviews_CountsItem_TimeRange_SEVENDAYS,
+  Pageviews_CountsItem_TimeRange
+  #-}
+
+-- | Comment control and display setting for readers of this post.
+newtype Post_ReaderComments = Post_ReaderComments {fromPost_ReaderComments :: 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
+    )
+
+pattern Post_ReaderComments_Allow :: Post_ReaderComments
+pattern Post_ReaderComments_Allow = Post_ReaderComments "ALLOW"
+
+pattern Post_ReaderComments_DONTALLOWSHOWEXISTING :: Post_ReaderComments
+pattern Post_ReaderComments_DONTALLOWSHOWEXISTING = Post_ReaderComments "DONT_ALLOW_SHOW_EXISTING"
+
+pattern Post_ReaderComments_DONTALLOWHIDEEXISTING :: Post_ReaderComments
+pattern Post_ReaderComments_DONTALLOWHIDEEXISTING = Post_ReaderComments "DONT_ALLOW_HIDE_EXISTING"
+
+{-# COMPLETE
+  Post_ReaderComments_Allow,
+  Post_ReaderComments_DONTALLOWSHOWEXISTING,
+  Post_ReaderComments_DONTALLOWHIDEEXISTING,
+  Post_ReaderComments
+  #-}
+
+-- | Status of the post. Only set for admin-level requests.
+newtype Post_Status = Post_Status {fromPost_Status :: 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
+    )
+
+pattern Post_Status_Live :: Post_Status
+pattern Post_Status_Live = Post_Status "LIVE"
+
+pattern Post_Status_Draft :: Post_Status
+pattern Post_Status_Draft = Post_Status "DRAFT"
+
+pattern Post_Status_Scheduled :: Post_Status
+pattern Post_Status_Scheduled = Post_Status "SCHEDULED"
+
+pattern Post_Status_SOFTTRASHED :: Post_Status
+pattern Post_Status_SOFTTRASHED = Post_Status "SOFT_TRASHED"
+
+{-# COMPLETE
+  Post_Status_Live,
+  Post_Status_Draft,
+  Post_Status_Scheduled,
+  Post_Status_SOFTTRASHED,
+  Post_Status
+  #-}
+
+newtype BlogsGetView = BlogsGetView {fromBlogsGetView :: 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
+    )
+
+pattern BlogsGetView_VIEWTYPEUNSPECIFIED :: BlogsGetView
+pattern BlogsGetView_VIEWTYPEUNSPECIFIED = BlogsGetView "VIEW_TYPE_UNSPECIFIED"
+
+pattern BlogsGetView_Reader :: BlogsGetView
+pattern BlogsGetView_Reader = BlogsGetView "READER"
+
+pattern BlogsGetView_Author :: BlogsGetView
+pattern BlogsGetView_Author = BlogsGetView "AUTHOR"
+
+pattern BlogsGetView_Admin :: BlogsGetView
+pattern BlogsGetView_Admin = BlogsGetView "ADMIN"
+
+{-# COMPLETE
+  BlogsGetView_VIEWTYPEUNSPECIFIED,
+  BlogsGetView_Reader,
+  BlogsGetView_Author,
+  BlogsGetView_Admin,
+  BlogsGetView
+  #-}
+
+newtype BlogsGetByUrlView = BlogsGetByUrlView {fromBlogsGetByUrlView :: 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
+    )
+
+pattern BlogsGetByUrlView_VIEWTYPEUNSPECIFIED :: BlogsGetByUrlView
+pattern BlogsGetByUrlView_VIEWTYPEUNSPECIFIED = BlogsGetByUrlView "VIEW_TYPE_UNSPECIFIED"
+
+pattern BlogsGetByUrlView_Reader :: BlogsGetByUrlView
+pattern BlogsGetByUrlView_Reader = BlogsGetByUrlView "READER"
+
+pattern BlogsGetByUrlView_Author :: BlogsGetByUrlView
+pattern BlogsGetByUrlView_Author = BlogsGetByUrlView "AUTHOR"
+
+pattern BlogsGetByUrlView_Admin :: BlogsGetByUrlView
+pattern BlogsGetByUrlView_Admin = BlogsGetByUrlView "ADMIN"
+
+{-# COMPLETE
+  BlogsGetByUrlView_VIEWTYPEUNSPECIFIED,
+  BlogsGetByUrlView_Reader,
+  BlogsGetByUrlView_Author,
+  BlogsGetByUrlView_Admin,
+  BlogsGetByUrlView
+  #-}
+
+newtype BlogsListByUserRole = BlogsListByUserRole {fromBlogsListByUserRole :: 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
+    )
+
+pattern BlogsListByUserRole_VIEWTYPEUNSPECIFIED :: BlogsListByUserRole
+pattern BlogsListByUserRole_VIEWTYPEUNSPECIFIED = BlogsListByUserRole "VIEW_TYPE_UNSPECIFIED"
+
+pattern BlogsListByUserRole_Reader :: BlogsListByUserRole
+pattern BlogsListByUserRole_Reader = BlogsListByUserRole "READER"
+
+pattern BlogsListByUserRole_Author :: BlogsListByUserRole
+pattern BlogsListByUserRole_Author = BlogsListByUserRole "AUTHOR"
+
+pattern BlogsListByUserRole_Admin :: BlogsListByUserRole
+pattern BlogsListByUserRole_Admin = BlogsListByUserRole "ADMIN"
+
+{-# COMPLETE
+  BlogsListByUserRole_VIEWTYPEUNSPECIFIED,
+  BlogsListByUserRole_Reader,
+  BlogsListByUserRole_Author,
+  BlogsListByUserRole_Admin,
+  BlogsListByUserRole
+  #-}
+
+-- | Default value of status is LIVE.
+newtype BlogsListByUserStatus = BlogsListByUserStatus {fromBlogsListByUserStatus :: 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
+    )
+
+pattern BlogsListByUserStatus_Live :: BlogsListByUserStatus
+pattern BlogsListByUserStatus_Live = BlogsListByUserStatus "LIVE"
+
+pattern BlogsListByUserStatus_Deleted :: BlogsListByUserStatus
+pattern BlogsListByUserStatus_Deleted = BlogsListByUserStatus "DELETED"
+
+{-# COMPLETE
+  BlogsListByUserStatus_Live,
+  BlogsListByUserStatus_Deleted,
+  BlogsListByUserStatus
+  #-}
+
+newtype BlogsListByUserView = BlogsListByUserView {fromBlogsListByUserView :: 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
+    )
+
+pattern BlogsListByUserView_VIEWTYPEUNSPECIFIED :: BlogsListByUserView
+pattern BlogsListByUserView_VIEWTYPEUNSPECIFIED = BlogsListByUserView "VIEW_TYPE_UNSPECIFIED"
+
+pattern BlogsListByUserView_Reader :: BlogsListByUserView
+pattern BlogsListByUserView_Reader = BlogsListByUserView "READER"
+
+pattern BlogsListByUserView_Author :: BlogsListByUserView
+pattern BlogsListByUserView_Author = BlogsListByUserView "AUTHOR"
+
+pattern BlogsListByUserView_Admin :: BlogsListByUserView
+pattern BlogsListByUserView_Admin = BlogsListByUserView "ADMIN"
+
+{-# COMPLETE
+  BlogsListByUserView_VIEWTYPEUNSPECIFIED,
+  BlogsListByUserView_Reader,
+  BlogsListByUserView_Author,
+  BlogsListByUserView_Admin,
+  BlogsListByUserView
+  #-}
+
+newtype CommentsGetView = CommentsGetView {fromCommentsGetView :: 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
+    )
+
+pattern CommentsGetView_VIEWTYPEUNSPECIFIED :: CommentsGetView
+pattern CommentsGetView_VIEWTYPEUNSPECIFIED = CommentsGetView "VIEW_TYPE_UNSPECIFIED"
+
+pattern CommentsGetView_Reader :: CommentsGetView
+pattern CommentsGetView_Reader = CommentsGetView "READER"
+
+pattern CommentsGetView_Author :: CommentsGetView
+pattern CommentsGetView_Author = CommentsGetView "AUTHOR"
+
+pattern CommentsGetView_Admin :: CommentsGetView
+pattern CommentsGetView_Admin = CommentsGetView "ADMIN"
+
+{-# COMPLETE
+  CommentsGetView_VIEWTYPEUNSPECIFIED,
+  CommentsGetView_Reader,
+  CommentsGetView_Author,
+  CommentsGetView_Admin,
+  CommentsGetView
+  #-}
+
+newtype CommentsListStatus = CommentsListStatus {fromCommentsListStatus :: 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
+    )
+
+pattern CommentsListStatus_Live :: CommentsListStatus
+pattern CommentsListStatus_Live = CommentsListStatus "LIVE"
+
+pattern CommentsListStatus_Emptied :: CommentsListStatus
+pattern CommentsListStatus_Emptied = CommentsListStatus "EMPTIED"
+
+pattern CommentsListStatus_Pending :: CommentsListStatus
+pattern CommentsListStatus_Pending = CommentsListStatus "PENDING"
+
+pattern CommentsListStatus_Spam :: CommentsListStatus
+pattern CommentsListStatus_Spam = CommentsListStatus "SPAM"
+
+{-# COMPLETE
+  CommentsListStatus_Live,
+  CommentsListStatus_Emptied,
+  CommentsListStatus_Pending,
+  CommentsListStatus_Spam,
+  CommentsListStatus
+  #-}
+
+newtype CommentsListView = CommentsListView {fromCommentsListView :: 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
+    )
+
+pattern CommentsListView_VIEWTYPEUNSPECIFIED :: CommentsListView
+pattern CommentsListView_VIEWTYPEUNSPECIFIED = CommentsListView "VIEW_TYPE_UNSPECIFIED"
+
+pattern CommentsListView_Reader :: CommentsListView
+pattern CommentsListView_Reader = CommentsListView "READER"
+
+pattern CommentsListView_Author :: CommentsListView
+pattern CommentsListView_Author = CommentsListView "AUTHOR"
+
+pattern CommentsListView_Admin :: CommentsListView
+pattern CommentsListView_Admin = CommentsListView "ADMIN"
+
+{-# COMPLETE
+  CommentsListView_VIEWTYPEUNSPECIFIED,
+  CommentsListView_Reader,
+  CommentsListView_Author,
+  CommentsListView_Admin,
+  CommentsListView
+  #-}
+
+newtype CommentsListByBlogStatus = CommentsListByBlogStatus {fromCommentsListByBlogStatus :: 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
+    )
+
+pattern CommentsListByBlogStatus_Live :: CommentsListByBlogStatus
+pattern CommentsListByBlogStatus_Live = CommentsListByBlogStatus "LIVE"
+
+pattern CommentsListByBlogStatus_Emptied :: CommentsListByBlogStatus
+pattern CommentsListByBlogStatus_Emptied = CommentsListByBlogStatus "EMPTIED"
+
+pattern CommentsListByBlogStatus_Pending :: CommentsListByBlogStatus
+pattern CommentsListByBlogStatus_Pending = CommentsListByBlogStatus "PENDING"
+
+pattern CommentsListByBlogStatus_Spam :: CommentsListByBlogStatus
+pattern CommentsListByBlogStatus_Spam = CommentsListByBlogStatus "SPAM"
+
+{-# COMPLETE
+  CommentsListByBlogStatus_Live,
+  CommentsListByBlogStatus_Emptied,
+  CommentsListByBlogStatus_Pending,
+  CommentsListByBlogStatus_Spam,
+  CommentsListByBlogStatus
+  #-}
+
+newtype PageViewsGetRange = PageViewsGetRange {fromPageViewsGetRange :: 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
+    )
+
+pattern PageViewsGetRange_All :: PageViewsGetRange
+pattern PageViewsGetRange_All = PageViewsGetRange "all"
+
+pattern PageViewsGetRange_30DAYS :: PageViewsGetRange
+pattern PageViewsGetRange_30DAYS = PageViewsGetRange "30DAYS"
+
+pattern PageViewsGetRange_7DAYS :: PageViewsGetRange
+pattern PageViewsGetRange_7DAYS = PageViewsGetRange "7DAYS"
+
+{-# COMPLETE
+  PageViewsGetRange_All,
+  PageViewsGetRange_30DAYS,
+  PageViewsGetRange_7DAYS,
+  PageViewsGetRange
+  #-}
+
+newtype PagesGetView = PagesGetView {fromPagesGetView :: 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
+    )
+
+pattern PagesGetView_VIEWTYPEUNSPECIFIED :: PagesGetView
+pattern PagesGetView_VIEWTYPEUNSPECIFIED = PagesGetView "VIEW_TYPE_UNSPECIFIED"
+
+pattern PagesGetView_Reader :: PagesGetView
+pattern PagesGetView_Reader = PagesGetView "READER"
+
+pattern PagesGetView_Author :: PagesGetView
+pattern PagesGetView_Author = PagesGetView "AUTHOR"
+
+pattern PagesGetView_Admin :: PagesGetView
+pattern PagesGetView_Admin = PagesGetView "ADMIN"
+
+{-# COMPLETE
+  PagesGetView_VIEWTYPEUNSPECIFIED,
+  PagesGetView_Reader,
+  PagesGetView_Author,
+  PagesGetView_Admin,
+  PagesGetView
+  #-}
+
+newtype PagesListStatus = PagesListStatus {fromPagesListStatus :: 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
+    )
+
+pattern PagesListStatus_Live :: PagesListStatus
+pattern PagesListStatus_Live = PagesListStatus "LIVE"
+
+pattern PagesListStatus_Draft :: PagesListStatus
+pattern PagesListStatus_Draft = PagesListStatus "DRAFT"
+
+pattern PagesListStatus_SOFTTRASHED :: PagesListStatus
+pattern PagesListStatus_SOFTTRASHED = PagesListStatus "SOFT_TRASHED"
+
+{-# COMPLETE
+  PagesListStatus_Live,
+  PagesListStatus_Draft,
+  PagesListStatus_SOFTTRASHED,
+  PagesListStatus
+  #-}
+
+newtype PagesListView = PagesListView {fromPagesListView :: 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
+    )
+
+pattern PagesListView_VIEWTYPEUNSPECIFIED :: PagesListView
+pattern PagesListView_VIEWTYPEUNSPECIFIED = PagesListView "VIEW_TYPE_UNSPECIFIED"
+
+pattern PagesListView_Reader :: PagesListView
+pattern PagesListView_Reader = PagesListView "READER"
+
+pattern PagesListView_Author :: PagesListView
+pattern PagesListView_Author = PagesListView "AUTHOR"
+
+pattern PagesListView_Admin :: PagesListView
+pattern PagesListView_Admin = PagesListView "ADMIN"
+
+{-# COMPLETE
+  PagesListView_VIEWTYPEUNSPECIFIED,
+  PagesListView_Reader,
+  PagesListView_Author,
+  PagesListView_Admin,
+  PagesListView
+  #-}
+
+newtype PostUserInfosListOrderBy = PostUserInfosListOrderBy {fromPostUserInfosListOrderBy :: 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
+    )
+
+pattern PostUserInfosListOrderBy_ORDERBYUNSPECIFIED :: PostUserInfosListOrderBy
+pattern PostUserInfosListOrderBy_ORDERBYUNSPECIFIED = PostUserInfosListOrderBy "ORDER_BY_UNSPECIFIED"
+
+pattern PostUserInfosListOrderBy_Published :: PostUserInfosListOrderBy
+pattern PostUserInfosListOrderBy_Published = PostUserInfosListOrderBy "PUBLISHED"
+
+pattern PostUserInfosListOrderBy_Updated :: PostUserInfosListOrderBy
+pattern PostUserInfosListOrderBy_Updated = PostUserInfosListOrderBy "UPDATED"
+
+{-# COMPLETE
+  PostUserInfosListOrderBy_ORDERBYUNSPECIFIED,
+  PostUserInfosListOrderBy_Published,
+  PostUserInfosListOrderBy_Updated,
+  PostUserInfosListOrderBy
+  #-}
+
+newtype PostUserInfosListStatus = PostUserInfosListStatus {fromPostUserInfosListStatus :: 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
+    )
+
+pattern PostUserInfosListStatus_Live :: PostUserInfosListStatus
+pattern PostUserInfosListStatus_Live = PostUserInfosListStatus "LIVE"
+
+pattern PostUserInfosListStatus_Draft :: PostUserInfosListStatus
+pattern PostUserInfosListStatus_Draft = PostUserInfosListStatus "DRAFT"
+
+pattern PostUserInfosListStatus_Scheduled :: PostUserInfosListStatus
+pattern PostUserInfosListStatus_Scheduled = PostUserInfosListStatus "SCHEDULED"
+
+pattern PostUserInfosListStatus_SOFTTRASHED :: PostUserInfosListStatus
+pattern PostUserInfosListStatus_SOFTTRASHED = PostUserInfosListStatus "SOFT_TRASHED"
+
+{-# COMPLETE
+  PostUserInfosListStatus_Live,
+  PostUserInfosListStatus_Draft,
+  PostUserInfosListStatus_Scheduled,
+  PostUserInfosListStatus_SOFTTRASHED,
+  PostUserInfosListStatus
+  #-}
+
+newtype PostUserInfosListView = PostUserInfosListView {fromPostUserInfosListView :: 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
+    )
+
+pattern PostUserInfosListView_VIEWTYPEUNSPECIFIED :: PostUserInfosListView
+pattern PostUserInfosListView_VIEWTYPEUNSPECIFIED = PostUserInfosListView "VIEW_TYPE_UNSPECIFIED"
+
+pattern PostUserInfosListView_Reader :: PostUserInfosListView
+pattern PostUserInfosListView_Reader = PostUserInfosListView "READER"
+
+pattern PostUserInfosListView_Author :: PostUserInfosListView
+pattern PostUserInfosListView_Author = PostUserInfosListView "AUTHOR"
+
+pattern PostUserInfosListView_Admin :: PostUserInfosListView
+pattern PostUserInfosListView_Admin = PostUserInfosListView "ADMIN"
+
+{-# COMPLETE
+  PostUserInfosListView_VIEWTYPEUNSPECIFIED,
+  PostUserInfosListView_Reader,
+  PostUserInfosListView_Author,
+  PostUserInfosListView_Admin,
+  PostUserInfosListView
+  #-}
+
+newtype PostsGetView = PostsGetView {fromPostsGetView :: 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
+    )
+
+pattern PostsGetView_VIEWTYPEUNSPECIFIED :: PostsGetView
+pattern PostsGetView_VIEWTYPEUNSPECIFIED = PostsGetView "VIEW_TYPE_UNSPECIFIED"
+
+pattern PostsGetView_Reader :: PostsGetView
+pattern PostsGetView_Reader = PostsGetView "READER"
+
+pattern PostsGetView_Author :: PostsGetView
+pattern PostsGetView_Author = PostsGetView "AUTHOR"
+
+pattern PostsGetView_Admin :: PostsGetView
+pattern PostsGetView_Admin = PostsGetView "ADMIN"
+
+{-# COMPLETE
+  PostsGetView_VIEWTYPEUNSPECIFIED,
+  PostsGetView_Reader,
+  PostsGetView_Author,
+  PostsGetView_Admin,
+  PostsGetView
+  #-}
+
+newtype PostsGetByPathView = PostsGetByPathView {fromPostsGetByPathView :: 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
+    )
+
+pattern PostsGetByPathView_VIEWTYPEUNSPECIFIED :: PostsGetByPathView
+pattern PostsGetByPathView_VIEWTYPEUNSPECIFIED = PostsGetByPathView "VIEW_TYPE_UNSPECIFIED"
+
+pattern PostsGetByPathView_Reader :: PostsGetByPathView
+pattern PostsGetByPathView_Reader = PostsGetByPathView "READER"
+
+pattern PostsGetByPathView_Author :: PostsGetByPathView
+pattern PostsGetByPathView_Author = PostsGetByPathView "AUTHOR"
+
+pattern PostsGetByPathView_Admin :: PostsGetByPathView
+pattern PostsGetByPathView_Admin = PostsGetByPathView "ADMIN"
+
+{-# COMPLETE
+  PostsGetByPathView_VIEWTYPEUNSPECIFIED,
+  PostsGetByPathView_Reader,
+  PostsGetByPathView_Author,
+  PostsGetByPathView_Admin,
+  PostsGetByPathView
+  #-}
+
+newtype PostsListOrderBy = PostsListOrderBy {fromPostsListOrderBy :: 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
+    )
+
+pattern PostsListOrderBy_ORDERBYUNSPECIFIED :: PostsListOrderBy
+pattern PostsListOrderBy_ORDERBYUNSPECIFIED = PostsListOrderBy "ORDER_BY_UNSPECIFIED"
+
+pattern PostsListOrderBy_Published :: PostsListOrderBy
+pattern PostsListOrderBy_Published = PostsListOrderBy "PUBLISHED"
+
+pattern PostsListOrderBy_Updated :: PostsListOrderBy
+pattern PostsListOrderBy_Updated = PostsListOrderBy "UPDATED"
+
+{-# COMPLETE
+  PostsListOrderBy_ORDERBYUNSPECIFIED,
+  PostsListOrderBy_Published,
+  PostsListOrderBy_Updated,
+  PostsListOrderBy
+  #-}
+
+-- | Sort direction applied to post list.
+newtype PostsListSortOption = PostsListSortOption {fromPostsListSortOption :: 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
+    )
+
+-- | The unspecified sort option.
+pattern PostsListSortOption_SORTOPTIONUNSPECIFIED :: PostsListSortOption
+pattern PostsListSortOption_SORTOPTIONUNSPECIFIED = PostsListSortOption "SORT_OPTION_UNSPECIFIED"
+
+-- | The option to sort posts in descending order in time.
+pattern PostsListSortOption_Descending :: PostsListSortOption
+pattern PostsListSortOption_Descending = PostsListSortOption "DESCENDING"
+
+-- | The option to sort posts in ascending order in time.
+pattern PostsListSortOption_Ascending :: PostsListSortOption
+pattern PostsListSortOption_Ascending = PostsListSortOption "ASCENDING"
+
+{-# COMPLETE
+  PostsListSortOption_SORTOPTIONUNSPECIFIED,
+  PostsListSortOption_Descending,
+  PostsListSortOption_Ascending,
+  PostsListSortOption
+  #-}
+
+newtype PostsListStatus = PostsListStatus {fromPostsListStatus :: 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
+    )
+
+pattern PostsListStatus_Live :: PostsListStatus
+pattern PostsListStatus_Live = PostsListStatus "LIVE"
+
+pattern PostsListStatus_Draft :: PostsListStatus
+pattern PostsListStatus_Draft = PostsListStatus "DRAFT"
+
+pattern PostsListStatus_Scheduled :: PostsListStatus
+pattern PostsListStatus_Scheduled = PostsListStatus "SCHEDULED"
+
+pattern PostsListStatus_SOFTTRASHED :: PostsListStatus
+pattern PostsListStatus_SOFTTRASHED = PostsListStatus "SOFT_TRASHED"
+
+{-# COMPLETE
+  PostsListStatus_Live,
+  PostsListStatus_Draft,
+  PostsListStatus_Scheduled,
+  PostsListStatus_SOFTTRASHED,
+  PostsListStatus
+  #-}
+
+newtype PostsListView = PostsListView {fromPostsListView :: 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
+    )
+
+pattern PostsListView_VIEWTYPEUNSPECIFIED :: PostsListView
+pattern PostsListView_VIEWTYPEUNSPECIFIED = PostsListView "VIEW_TYPE_UNSPECIFIED"
+
+pattern PostsListView_Reader :: PostsListView
+pattern PostsListView_Reader = PostsListView "READER"
+
+pattern PostsListView_Author :: PostsListView
+pattern PostsListView_Author = PostsListView "AUTHOR"
+
+pattern PostsListView_Admin :: PostsListView
+pattern PostsListView_Admin = PostsListView "ADMIN"
+
+{-# COMPLETE
+  PostsListView_VIEWTYPEUNSPECIFIED,
+  PostsListView_Reader,
+  PostsListView_Author,
+  PostsListView_Admin,
+  PostsListView
+  #-}
+
+newtype PostsSearchOrderBy = PostsSearchOrderBy {fromPostsSearchOrderBy :: 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
+    )
+
+pattern PostsSearchOrderBy_ORDERBYUNSPECIFIED :: PostsSearchOrderBy
+pattern PostsSearchOrderBy_ORDERBYUNSPECIFIED = PostsSearchOrderBy "ORDER_BY_UNSPECIFIED"
+
+pattern PostsSearchOrderBy_Published :: PostsSearchOrderBy
+pattern PostsSearchOrderBy_Published = PostsSearchOrderBy "PUBLISHED"
+
+pattern PostsSearchOrderBy_Updated :: PostsSearchOrderBy
+pattern PostsSearchOrderBy_Updated = PostsSearchOrderBy "UPDATED"
+
+{-# COMPLETE
+  PostsSearchOrderBy_ORDERBYUNSPECIFIED,
+  PostsSearchOrderBy_Published,
+  PostsSearchOrderBy_Updated,
+  PostsSearchOrderBy
+  #-}
diff --git a/gen/Gogol/Blogger/PageViews/Get.hs b/gen/Gogol/Blogger/PageViews/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/PageViews/Get.hs
@@ -0,0 +1,112 @@
+{-# 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.Blogger.PageViews.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 page views by blog id.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pageViews.get@.
+module Gogol.Blogger.PageViews.Get
+  ( -- * Resource
+    BloggerPageViewsGetResource,
+
+    -- ** Constructing a Request
+    BloggerPageViewsGet (..),
+    newBloggerPageViewsGet,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.pageViews.get@ method which the
+-- 'BloggerPageViewsGet' request conforms to.
+type BloggerPageViewsGetResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "pageviews"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParams "range" PageViewsGetRange
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Pageviews
+
+-- | Gets page views by blog id.
+--
+-- /See:/ 'newBloggerPageViewsGet' smart constructor.
+data BloggerPageViewsGet = BloggerPageViewsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    range :: (Core.Maybe [PageViewsGetRange]),
+    -- | 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 'BloggerPageViewsGet' with the minimum fields required to make a request.
+newBloggerPageViewsGet ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  BloggerPageViewsGet
+newBloggerPageViewsGet blogId =
+  BloggerPageViewsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      range = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPageViewsGet where
+  type Rs BloggerPageViewsGet = Pageviews
+  type Scopes BloggerPageViewsGet = '[Blogger'FullControl]
+  requestClient BloggerPageViewsGet {..} =
+    go
+      blogId
+      xgafv
+      accessToken
+      callback
+      (range Core.^. Core._Default)
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPageViewsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Pages/Delete.hs b/gen/Gogol/Blogger/Pages/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Pages/Delete.hs
@@ -0,0 +1,119 @@
+{-# 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.Blogger.Pages.Delete
+-- 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)
+--
+-- Deletes a page by blog id and page id.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pages.delete@.
+module Gogol.Blogger.Pages.Delete
+  ( -- * Resource
+    BloggerPagesDeleteResource,
+
+    -- ** Constructing a Request
+    BloggerPagesDelete (..),
+    newBloggerPagesDelete,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.pages.delete@ method which the
+-- 'BloggerPagesDelete' request conforms to.
+type BloggerPagesDeleteResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "pages"
+    Core.:> Core.Capture "pageId" 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 "useTrash" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] ()
+
+-- | Deletes a page by blog id and page id.
+--
+-- /See:/ 'newBloggerPagesDelete' smart constructor.
+data BloggerPagesDelete = BloggerPagesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    pageId :: 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),
+    -- | Move to Trash if possible
+    useTrash :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BloggerPagesDelete' with the minimum fields required to make a request.
+newBloggerPagesDelete ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'pageId'.
+  Core.Text ->
+  BloggerPagesDelete
+newBloggerPagesDelete blogId pageId =
+  BloggerPagesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      pageId = pageId,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      useTrash = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPagesDelete where
+  type Rs BloggerPagesDelete = ()
+  type Scopes BloggerPagesDelete = '[Blogger'FullControl]
+  requestClient BloggerPagesDelete {..} =
+    go
+      blogId
+      pageId
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      useTrash
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPagesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Pages/Get.hs b/gen/Gogol/Blogger/Pages/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Pages/Get.hs
@@ -0,0 +1,120 @@
+{-# 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.Blogger.Pages.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 page by blog id and page id.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pages.get@.
+module Gogol.Blogger.Pages.Get
+  ( -- * Resource
+    BloggerPagesGetResource,
+
+    -- ** Constructing a Request
+    BloggerPagesGet (..),
+    newBloggerPagesGet,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.pages.get@ method which the
+-- 'BloggerPagesGet' request conforms to.
+type BloggerPagesGetResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "pages"
+    Core.:> Core.Capture "pageId" 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 "view" PagesGetView
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Page
+
+-- | Gets a page by blog id and page id.
+--
+-- /See:/ 'newBloggerPagesGet' smart constructor.
+data BloggerPagesGet = BloggerPagesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    pageId :: 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),
+    view :: (Core.Maybe PagesGetView)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BloggerPagesGet' with the minimum fields required to make a request.
+newBloggerPagesGet ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'pageId'.
+  Core.Text ->
+  BloggerPagesGet
+newBloggerPagesGet blogId pageId =
+  BloggerPagesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      pageId = pageId,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      view = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPagesGet where
+  type Rs BloggerPagesGet = Page
+  type
+    Scopes BloggerPagesGet =
+      '[Blogger'FullControl, Blogger'Readonly]
+  requestClient BloggerPagesGet {..} =
+    go
+      blogId
+      pageId
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      view
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPagesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Pages/Insert.hs b/gen/Gogol/Blogger/Pages/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Pages/Insert.hs
@@ -0,0 +1,119 @@
+{-# 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.Blogger.Pages.Insert
+-- 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)
+--
+-- Inserts a page.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pages.insert@.
+module Gogol.Blogger.Pages.Insert
+  ( -- * Resource
+    BloggerPagesInsertResource,
+
+    -- ** Constructing a Request
+    BloggerPagesInsert (..),
+    newBloggerPagesInsert,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.pages.insert@ method which the
+-- 'BloggerPagesInsert' request conforms to.
+type BloggerPagesInsertResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "pages"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "isDraft" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Page
+    Core.:> Core.Post '[Core.JSON] Page
+
+-- | Inserts a page.
+--
+-- /See:/ 'newBloggerPagesInsert' smart constructor.
+data BloggerPagesInsert = BloggerPagesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    isDraft :: (Core.Maybe Core.Bool),
+    -- | Multipart request metadata.
+    payload :: Page,
+    -- | 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 'BloggerPagesInsert' with the minimum fields required to make a request.
+newBloggerPagesInsert ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Page ->
+  BloggerPagesInsert
+newBloggerPagesInsert blogId payload =
+  BloggerPagesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      isDraft = Core.Nothing,
+      payload = payload,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPagesInsert where
+  type Rs BloggerPagesInsert = Page
+  type Scopes BloggerPagesInsert = '[Blogger'FullControl]
+  requestClient BloggerPagesInsert {..} =
+    go
+      blogId
+      xgafv
+      accessToken
+      callback
+      isDraft
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPagesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Pages/List.hs b/gen/Gogol/Blogger/Pages/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Pages/List.hs
@@ -0,0 +1,130 @@
+{-# 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.Blogger.Pages.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 pages.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pages.list@.
+module Gogol.Blogger.Pages.List
+  ( -- * Resource
+    BloggerPagesListResource,
+
+    -- ** Constructing a Request
+    BloggerPagesList (..),
+    newBloggerPagesList,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.pages.list@ method which the
+-- 'BloggerPagesList' request conforms to.
+type BloggerPagesListResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "pages"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "fetchBodies" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParams "status" PagesListStatus
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "view" PagesListView
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] PageList
+
+-- | Lists pages.
+--
+-- /See:/ 'newBloggerPagesList' smart constructor.
+data BloggerPagesList = BloggerPagesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    fetchBodies :: (Core.Maybe Core.Bool),
+    maxResults :: (Core.Maybe Core.Word32),
+    pageToken :: (Core.Maybe Core.Text),
+    status :: (Core.Maybe [PagesListStatus]),
+    -- | 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),
+    view :: (Core.Maybe PagesListView)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BloggerPagesList' with the minimum fields required to make a request.
+newBloggerPagesList ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  BloggerPagesList
+newBloggerPagesList blogId =
+  BloggerPagesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      fetchBodies = Core.Nothing,
+      maxResults = Core.Nothing,
+      pageToken = Core.Nothing,
+      status = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      view = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPagesList where
+  type Rs BloggerPagesList = PageList
+  type
+    Scopes BloggerPagesList =
+      '[Blogger'FullControl, Blogger'Readonly]
+  requestClient BloggerPagesList {..} =
+    go
+      blogId
+      xgafv
+      accessToken
+      callback
+      fetchBodies
+      maxResults
+      pageToken
+      (status Core.^. Core._Default)
+      uploadType
+      uploadProtocol
+      view
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPagesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Pages/Patch.hs b/gen/Gogol/Blogger/Pages/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Pages/Patch.hs
@@ -0,0 +1,129 @@
+{-# 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.Blogger.Pages.Patch
+-- 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)
+--
+-- Patches a page.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pages.patch@.
+module Gogol.Blogger.Pages.Patch
+  ( -- * Resource
+    BloggerPagesPatchResource,
+
+    -- ** Constructing a Request
+    BloggerPagesPatch (..),
+    newBloggerPagesPatch,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.pages.patch@ method which the
+-- 'BloggerPagesPatch' request conforms to.
+type BloggerPagesPatchResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "pages"
+    Core.:> Core.Capture "pageId" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "publish" Core.Bool
+    Core.:> Core.QueryParam "revert" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Page
+    Core.:> Core.Patch '[Core.JSON] Page
+
+-- | Patches a page.
+--
+-- /See:/ 'newBloggerPagesPatch' smart constructor.
+data BloggerPagesPatch = BloggerPagesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    pageId :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Page,
+    publish :: (Core.Maybe Core.Bool),
+    revert :: (Core.Maybe Core.Bool),
+    -- | 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 'BloggerPagesPatch' with the minimum fields required to make a request.
+newBloggerPagesPatch ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'pageId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Page ->
+  BloggerPagesPatch
+newBloggerPagesPatch blogId pageId payload =
+  BloggerPagesPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      pageId = pageId,
+      payload = payload,
+      publish = Core.Nothing,
+      revert = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPagesPatch where
+  type Rs BloggerPagesPatch = Page
+  type Scopes BloggerPagesPatch = '[Blogger'FullControl]
+  requestClient BloggerPagesPatch {..} =
+    go
+      blogId
+      pageId
+      xgafv
+      accessToken
+      callback
+      publish
+      revert
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPagesPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Pages/Publish.hs b/gen/Gogol/Blogger/Pages/Publish.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Pages/Publish.hs
@@ -0,0 +1,115 @@
+{-# 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.Blogger.Pages.Publish
+-- 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)
+--
+-- Publishes a page.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pages.publish@.
+module Gogol.Blogger.Pages.Publish
+  ( -- * Resource
+    BloggerPagesPublishResource,
+
+    -- ** Constructing a Request
+    BloggerPagesPublish (..),
+    newBloggerPagesPublish,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.pages.publish@ method which the
+-- 'BloggerPagesPublish' request conforms to.
+type BloggerPagesPublishResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "pages"
+    Core.:> Core.Capture "pageId" Core.Text
+    Core.:> "publish"
+    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.Post '[Core.JSON] Page
+
+-- | Publishes a page.
+--
+-- /See:/ 'newBloggerPagesPublish' smart constructor.
+data BloggerPagesPublish = BloggerPagesPublish
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    pageId :: 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 'BloggerPagesPublish' with the minimum fields required to make a request.
+newBloggerPagesPublish ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'pageId'.
+  Core.Text ->
+  BloggerPagesPublish
+newBloggerPagesPublish blogId pageId =
+  BloggerPagesPublish
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      pageId = pageId,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPagesPublish where
+  type Rs BloggerPagesPublish = Page
+  type Scopes BloggerPagesPublish = '[Blogger'FullControl]
+  requestClient BloggerPagesPublish {..} =
+    go
+      blogId
+      pageId
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPagesPublishResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Pages/Revert.hs b/gen/Gogol/Blogger/Pages/Revert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Pages/Revert.hs
@@ -0,0 +1,115 @@
+{-# 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.Blogger.Pages.Revert
+-- 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)
+--
+-- Reverts a published or scheduled page to draft state.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pages.revert@.
+module Gogol.Blogger.Pages.Revert
+  ( -- * Resource
+    BloggerPagesRevertResource,
+
+    -- ** Constructing a Request
+    BloggerPagesRevert (..),
+    newBloggerPagesRevert,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.pages.revert@ method which the
+-- 'BloggerPagesRevert' request conforms to.
+type BloggerPagesRevertResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "pages"
+    Core.:> Core.Capture "pageId" Core.Text
+    Core.:> "revert"
+    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.Post '[Core.JSON] Page
+
+-- | Reverts a published or scheduled page to draft state.
+--
+-- /See:/ 'newBloggerPagesRevert' smart constructor.
+data BloggerPagesRevert = BloggerPagesRevert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    pageId :: 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 'BloggerPagesRevert' with the minimum fields required to make a request.
+newBloggerPagesRevert ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'pageId'.
+  Core.Text ->
+  BloggerPagesRevert
+newBloggerPagesRevert blogId pageId =
+  BloggerPagesRevert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      pageId = pageId,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPagesRevert where
+  type Rs BloggerPagesRevert = Page
+  type Scopes BloggerPagesRevert = '[Blogger'FullControl]
+  requestClient BloggerPagesRevert {..} =
+    go
+      blogId
+      pageId
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPagesRevertResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Pages/Update.hs b/gen/Gogol/Blogger/Pages/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Pages/Update.hs
@@ -0,0 +1,129 @@
+{-# 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.Blogger.Pages.Update
+-- 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)
+--
+-- Updates a page by blog id and page id.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pages.update@.
+module Gogol.Blogger.Pages.Update
+  ( -- * Resource
+    BloggerPagesUpdateResource,
+
+    -- ** Constructing a Request
+    BloggerPagesUpdate (..),
+    newBloggerPagesUpdate,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.pages.update@ method which the
+-- 'BloggerPagesUpdate' request conforms to.
+type BloggerPagesUpdateResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "pages"
+    Core.:> Core.Capture "pageId" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "publish" Core.Bool
+    Core.:> Core.QueryParam "revert" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Page
+    Core.:> Core.Put '[Core.JSON] Page
+
+-- | Updates a page by blog id and page id.
+--
+-- /See:/ 'newBloggerPagesUpdate' smart constructor.
+data BloggerPagesUpdate = BloggerPagesUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    pageId :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Page,
+    publish :: (Core.Maybe Core.Bool),
+    revert :: (Core.Maybe Core.Bool),
+    -- | 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 'BloggerPagesUpdate' with the minimum fields required to make a request.
+newBloggerPagesUpdate ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'pageId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Page ->
+  BloggerPagesUpdate
+newBloggerPagesUpdate blogId pageId payload =
+  BloggerPagesUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      pageId = pageId,
+      payload = payload,
+      publish = Core.Nothing,
+      revert = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPagesUpdate where
+  type Rs BloggerPagesUpdate = Page
+  type Scopes BloggerPagesUpdate = '[Blogger'FullControl]
+  requestClient BloggerPagesUpdate {..} =
+    go
+      blogId
+      pageId
+      xgafv
+      accessToken
+      callback
+      publish
+      revert
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPagesUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/PostUserInfos/Get.hs b/gen/Gogol/Blogger/PostUserInfos/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/PostUserInfos/Get.hs
@@ -0,0 +1,127 @@
+{-# 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.Blogger.PostUserInfos.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 one post and user info pair, by post/id and user/id.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.postUserInfos.get@.
+module Gogol.Blogger.PostUserInfos.Get
+  ( -- * Resource
+    BloggerPostUserInfosGetResource,
+
+    -- ** Constructing a Request
+    BloggerPostUserInfosGet (..),
+    newBloggerPostUserInfosGet,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.postUserInfos.get@ method which the
+-- 'BloggerPostUserInfosGet' request conforms to.
+type BloggerPostUserInfosGetResource =
+  "v3"
+    Core.:> "users"
+    Core.:> Core.Capture "userId" Core.Text
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> Core.Capture "postId" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "maxComments" Core.Word32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] PostUserInfo
+
+-- | Gets one post and user info pair, by post/id and user/id.
+--
+-- /See:/ 'newBloggerPostUserInfosGet' smart constructor.
+data BloggerPostUserInfosGet = BloggerPostUserInfosGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    maxComments :: (Core.Maybe Core.Word32),
+    postId :: 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),
+    userId :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BloggerPostUserInfosGet' with the minimum fields required to make a request.
+newBloggerPostUserInfosGet ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'postId'.
+  Core.Text ->
+  -- |  See 'userId'.
+  Core.Text ->
+  BloggerPostUserInfosGet
+newBloggerPostUserInfosGet blogId postId userId =
+  BloggerPostUserInfosGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      maxComments = Core.Nothing,
+      postId = postId,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      userId = userId
+    }
+
+instance Core.GoogleRequest BloggerPostUserInfosGet where
+  type Rs BloggerPostUserInfosGet = PostUserInfo
+  type
+    Scopes BloggerPostUserInfosGet =
+      '[Blogger'FullControl, Blogger'Readonly]
+  requestClient BloggerPostUserInfosGet {..} =
+    go
+      userId
+      blogId
+      postId
+      xgafv
+      accessToken
+      callback
+      maxComments
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPostUserInfosGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/PostUserInfos/List.hs b/gen/Gogol/Blogger/PostUserInfos/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/PostUserInfos/List.hs
@@ -0,0 +1,153 @@
+{-# 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.Blogger.PostUserInfos.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 post and user info pairs.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.postUserInfos.list@.
+module Gogol.Blogger.PostUserInfos.List
+  ( -- * Resource
+    BloggerPostUserInfosListResource,
+
+    -- ** Constructing a Request
+    BloggerPostUserInfosList (..),
+    newBloggerPostUserInfosList,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.postUserInfos.list@ method which the
+-- 'BloggerPostUserInfosList' request conforms to.
+type BloggerPostUserInfosListResource =
+  "v3"
+    Core.:> "users"
+    Core.:> Core.Capture "userId" Core.Text
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "endDate" Core.Text
+    Core.:> Core.QueryParam "fetchBodies" Core.Bool
+    Core.:> Core.QueryParam "labels" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" PostUserInfosListOrderBy
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "startDate" Core.Text
+    Core.:> Core.QueryParams "status" PostUserInfosListStatus
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "view" PostUserInfosListView
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] PostUserInfosList
+
+-- | Lists post and user info pairs.
+--
+-- /See:/ 'newBloggerPostUserInfosList' smart constructor.
+data BloggerPostUserInfosList = BloggerPostUserInfosList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    endDate :: (Core.Maybe Core.Text),
+    fetchBodies :: Core.Bool,
+    labels :: (Core.Maybe Core.Text),
+    maxResults :: (Core.Maybe Core.Word32),
+    orderBy :: PostUserInfosListOrderBy,
+    pageToken :: (Core.Maybe Core.Text),
+    startDate :: (Core.Maybe Core.Text),
+    status :: (Core.Maybe [PostUserInfosListStatus]),
+    -- | 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),
+    userId :: Core.Text,
+    view :: (Core.Maybe PostUserInfosListView)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BloggerPostUserInfosList' with the minimum fields required to make a request.
+newBloggerPostUserInfosList ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'userId'.
+  Core.Text ->
+  BloggerPostUserInfosList
+newBloggerPostUserInfosList blogId userId =
+  BloggerPostUserInfosList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      endDate = Core.Nothing,
+      fetchBodies = Core.False,
+      labels = Core.Nothing,
+      maxResults = Core.Nothing,
+      orderBy = PostUserInfosListOrderBy_Published,
+      pageToken = Core.Nothing,
+      startDate = Core.Nothing,
+      status = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      userId = userId,
+      view = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPostUserInfosList where
+  type Rs BloggerPostUserInfosList = PostUserInfosList
+  type
+    Scopes BloggerPostUserInfosList =
+      '[Blogger'FullControl, Blogger'Readonly]
+  requestClient BloggerPostUserInfosList {..} =
+    go
+      userId
+      blogId
+      xgafv
+      accessToken
+      callback
+      endDate
+      (Core.Just fetchBodies)
+      labels
+      maxResults
+      (Core.Just orderBy)
+      pageToken
+      startDate
+      (status Core.^. Core._Default)
+      uploadType
+      uploadProtocol
+      view
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPostUserInfosListResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Posts/Delete.hs b/gen/Gogol/Blogger/Posts/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Posts/Delete.hs
@@ -0,0 +1,119 @@
+{-# 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.Blogger.Posts.Delete
+-- 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)
+--
+-- Deletes a post by blog id and post id.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.delete@.
+module Gogol.Blogger.Posts.Delete
+  ( -- * Resource
+    BloggerPostsDeleteResource,
+
+    -- ** Constructing a Request
+    BloggerPostsDelete (..),
+    newBloggerPostsDelete,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.posts.delete@ method which the
+-- 'BloggerPostsDelete' request conforms to.
+type BloggerPostsDeleteResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> Core.Capture "postId" 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 "useTrash" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] ()
+
+-- | Deletes a post by blog id and post id.
+--
+-- /See:/ 'newBloggerPostsDelete' smart constructor.
+data BloggerPostsDelete = BloggerPostsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    postId :: 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),
+    -- | Move to Trash if possible
+    useTrash :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BloggerPostsDelete' with the minimum fields required to make a request.
+newBloggerPostsDelete ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'postId'.
+  Core.Text ->
+  BloggerPostsDelete
+newBloggerPostsDelete blogId postId =
+  BloggerPostsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      postId = postId,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      useTrash = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPostsDelete where
+  type Rs BloggerPostsDelete = ()
+  type Scopes BloggerPostsDelete = '[Blogger'FullControl]
+  requestClient BloggerPostsDelete {..} =
+    go
+      blogId
+      postId
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      useTrash
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPostsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Posts/Get.hs b/gen/Gogol/Blogger/Posts/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Posts/Get.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.Blogger.Posts.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 post by blog id and post id
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.get@.
+module Gogol.Blogger.Posts.Get
+  ( -- * Resource
+    BloggerPostsGetResource,
+
+    -- ** Constructing a Request
+    BloggerPostsGet (..),
+    newBloggerPostsGet,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.posts.get@ method which the
+-- 'BloggerPostsGet' request conforms to.
+type BloggerPostsGetResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> Core.Capture "postId" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "fetchBody" Core.Bool
+    Core.:> Core.QueryParam "fetchImages" Core.Bool
+    Core.:> Core.QueryParam "maxComments" Core.Word32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "view" PostsGetView
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Post'
+
+-- | Gets a post by blog id and post id
+--
+-- /See:/ 'newBloggerPostsGet' smart constructor.
+data BloggerPostsGet = BloggerPostsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    fetchBody :: Core.Bool,
+    fetchImages :: (Core.Maybe Core.Bool),
+    maxComments :: (Core.Maybe Core.Word32),
+    postId :: 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),
+    view :: (Core.Maybe PostsGetView)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BloggerPostsGet' with the minimum fields required to make a request.
+newBloggerPostsGet ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'postId'.
+  Core.Text ->
+  BloggerPostsGet
+newBloggerPostsGet blogId postId =
+  BloggerPostsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      fetchBody = Core.True,
+      fetchImages = Core.Nothing,
+      maxComments = Core.Nothing,
+      postId = postId,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      view = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPostsGet where
+  type Rs BloggerPostsGet = Post'
+  type
+    Scopes BloggerPostsGet =
+      '[Blogger'FullControl, Blogger'Readonly]
+  requestClient BloggerPostsGet {..} =
+    go
+      blogId
+      postId
+      xgafv
+      accessToken
+      callback
+      (Core.Just fetchBody)
+      fetchImages
+      maxComments
+      uploadType
+      uploadProtocol
+      view
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPostsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Posts/GetByPath.hs b/gen/Gogol/Blogger/Posts/GetByPath.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Posts/GetByPath.hs
@@ -0,0 +1,125 @@
+{-# 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.Blogger.Posts.GetByPath
+-- 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 post by path.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.getByPath@.
+module Gogol.Blogger.Posts.GetByPath
+  ( -- * Resource
+    BloggerPostsGetByPathResource,
+
+    -- ** Constructing a Request
+    BloggerPostsGetByPath (..),
+    newBloggerPostsGetByPath,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.posts.getByPath@ method which the
+-- 'BloggerPostsGetByPath' request conforms to.
+type BloggerPostsGetByPathResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> "bypath"
+    Core.:> Core.QueryParam "path" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "maxComments" Core.Word32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "view" PostsGetByPathView
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Post'
+
+-- | Gets a post by path.
+--
+-- /See:/ 'newBloggerPostsGetByPath' smart constructor.
+data BloggerPostsGetByPath = BloggerPostsGetByPath
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    maxComments :: (Core.Maybe Core.Word32),
+    path :: 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),
+    view :: (Core.Maybe PostsGetByPathView)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BloggerPostsGetByPath' with the minimum fields required to make a request.
+newBloggerPostsGetByPath ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'path'.
+  Core.Text ->
+  BloggerPostsGetByPath
+newBloggerPostsGetByPath blogId path =
+  BloggerPostsGetByPath
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      maxComments = Core.Nothing,
+      path = path,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      view = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPostsGetByPath where
+  type Rs BloggerPostsGetByPath = Post'
+  type
+    Scopes BloggerPostsGetByPath =
+      '[Blogger'FullControl, Blogger'Readonly]
+  requestClient BloggerPostsGetByPath {..} =
+    go
+      blogId
+      (Core.Just path)
+      xgafv
+      accessToken
+      callback
+      maxComments
+      uploadType
+      uploadProtocol
+      view
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPostsGetByPathResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Posts/Insert.hs b/gen/Gogol/Blogger/Posts/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Posts/Insert.hs
@@ -0,0 +1,127 @@
+{-# 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.Blogger.Posts.Insert
+-- 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)
+--
+-- Inserts a post.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.insert@.
+module Gogol.Blogger.Posts.Insert
+  ( -- * Resource
+    BloggerPostsInsertResource,
+
+    -- ** Constructing a Request
+    BloggerPostsInsert (..),
+    newBloggerPostsInsert,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.posts.insert@ method which the
+-- 'BloggerPostsInsert' request conforms to.
+type BloggerPostsInsertResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "fetchBody" Core.Bool
+    Core.:> Core.QueryParam "fetchImages" Core.Bool
+    Core.:> Core.QueryParam "isDraft" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Post'
+    Core.:> Core.Post '[Core.JSON] Post'
+
+-- | Inserts a post.
+--
+-- /See:/ 'newBloggerPostsInsert' smart constructor.
+data BloggerPostsInsert = BloggerPostsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    fetchBody :: Core.Bool,
+    fetchImages :: (Core.Maybe Core.Bool),
+    isDraft :: (Core.Maybe Core.Bool),
+    -- | Multipart request metadata.
+    payload :: Post',
+    -- | 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 'BloggerPostsInsert' with the minimum fields required to make a request.
+newBloggerPostsInsert ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Post' ->
+  BloggerPostsInsert
+newBloggerPostsInsert blogId payload =
+  BloggerPostsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      fetchBody = Core.True,
+      fetchImages = Core.Nothing,
+      isDraft = Core.Nothing,
+      payload = payload,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPostsInsert where
+  type Rs BloggerPostsInsert = Post'
+  type Scopes BloggerPostsInsert = '[Blogger'FullControl]
+  requestClient BloggerPostsInsert {..} =
+    go
+      blogId
+      xgafv
+      accessToken
+      callback
+      (Core.Just fetchBody)
+      fetchImages
+      isDraft
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPostsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Posts/List.hs b/gen/Gogol/Blogger/Posts/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Posts/List.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.Blogger.Posts.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 posts.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.list@.
+module Gogol.Blogger.Posts.List
+  ( -- * Resource
+    BloggerPostsListResource,
+
+    -- ** Constructing a Request
+    BloggerPostsList (..),
+    newBloggerPostsList,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.posts.list@ method which the
+-- 'BloggerPostsList' request conforms to.
+type BloggerPostsListResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "endDate" Core.Text
+    Core.:> Core.QueryParam "fetchBodies" Core.Bool
+    Core.:> Core.QueryParam "fetchImages" Core.Bool
+    Core.:> Core.QueryParam "labels" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" PostsListOrderBy
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "sortOption" PostsListSortOption
+    Core.:> Core.QueryParam "startDate" Core.Text
+    Core.:> Core.QueryParams "status" PostsListStatus
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "view" PostsListView
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] PostList
+
+-- | Lists posts.
+--
+-- /See:/ 'newBloggerPostsList' smart constructor.
+data BloggerPostsList = BloggerPostsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    endDate :: (Core.Maybe Core.Text),
+    fetchBodies :: Core.Bool,
+    fetchImages :: (Core.Maybe Core.Bool),
+    labels :: (Core.Maybe Core.Text),
+    maxResults :: (Core.Maybe Core.Word32),
+    orderBy :: PostsListOrderBy,
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Sort direction applied to post list.
+    sortOption :: PostsListSortOption,
+    startDate :: (Core.Maybe Core.Text),
+    status :: (Core.Maybe [PostsListStatus]),
+    -- | 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),
+    view :: (Core.Maybe PostsListView)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BloggerPostsList' with the minimum fields required to make a request.
+newBloggerPostsList ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  BloggerPostsList
+newBloggerPostsList blogId =
+  BloggerPostsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      endDate = Core.Nothing,
+      fetchBodies = Core.True,
+      fetchImages = Core.Nothing,
+      labels = Core.Nothing,
+      maxResults = Core.Nothing,
+      orderBy = PostsListOrderBy_Published,
+      pageToken = Core.Nothing,
+      sortOption = PostsListSortOption_Descending,
+      startDate = Core.Nothing,
+      status = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      view = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPostsList where
+  type Rs BloggerPostsList = PostList
+  type
+    Scopes BloggerPostsList =
+      '[Blogger'FullControl, Blogger'Readonly]
+  requestClient BloggerPostsList {..} =
+    go
+      blogId
+      xgafv
+      accessToken
+      callback
+      endDate
+      (Core.Just fetchBodies)
+      fetchImages
+      labels
+      maxResults
+      (Core.Just orderBy)
+      pageToken
+      (Core.Just sortOption)
+      startDate
+      (status Core.^. Core._Default)
+      uploadType
+      uploadProtocol
+      view
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPostsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Posts/Patch.hs b/gen/Gogol/Blogger/Posts/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Posts/Patch.hs
@@ -0,0 +1,141 @@
+{-# 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.Blogger.Posts.Patch
+-- 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)
+--
+-- Patches a post.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.patch@.
+module Gogol.Blogger.Posts.Patch
+  ( -- * Resource
+    BloggerPostsPatchResource,
+
+    -- ** Constructing a Request
+    BloggerPostsPatch (..),
+    newBloggerPostsPatch,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.posts.patch@ method which the
+-- 'BloggerPostsPatch' request conforms to.
+type BloggerPostsPatchResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> Core.Capture "postId" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "fetchBody" Core.Bool
+    Core.:> Core.QueryParam "fetchImages" Core.Bool
+    Core.:> Core.QueryParam "maxComments" Core.Word32
+    Core.:> Core.QueryParam "publish" Core.Bool
+    Core.:> Core.QueryParam "revert" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Post'
+    Core.:> Core.Patch '[Core.JSON] Post'
+
+-- | Patches a post.
+--
+-- /See:/ 'newBloggerPostsPatch' smart constructor.
+data BloggerPostsPatch = BloggerPostsPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    fetchBody :: Core.Bool,
+    fetchImages :: (Core.Maybe Core.Bool),
+    maxComments :: (Core.Maybe Core.Word32),
+    -- | Multipart request metadata.
+    payload :: Post',
+    postId :: Core.Text,
+    publish :: (Core.Maybe Core.Bool),
+    revert :: (Core.Maybe Core.Bool),
+    -- | 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 'BloggerPostsPatch' with the minimum fields required to make a request.
+newBloggerPostsPatch ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Post' ->
+  -- |  See 'postId'.
+  Core.Text ->
+  BloggerPostsPatch
+newBloggerPostsPatch blogId payload postId =
+  BloggerPostsPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      fetchBody = Core.True,
+      fetchImages = Core.Nothing,
+      maxComments = Core.Nothing,
+      payload = payload,
+      postId = postId,
+      publish = Core.Nothing,
+      revert = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPostsPatch where
+  type Rs BloggerPostsPatch = Post'
+  type Scopes BloggerPostsPatch = '[Blogger'FullControl]
+  requestClient BloggerPostsPatch {..} =
+    go
+      blogId
+      postId
+      xgafv
+      accessToken
+      callback
+      (Core.Just fetchBody)
+      fetchImages
+      maxComments
+      publish
+      revert
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPostsPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Posts/Publish.hs b/gen/Gogol/Blogger/Posts/Publish.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Posts/Publish.hs
@@ -0,0 +1,119 @@
+{-# 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.Blogger.Posts.Publish
+-- 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)
+--
+-- Publishes a post.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.publish@.
+module Gogol.Blogger.Posts.Publish
+  ( -- * Resource
+    BloggerPostsPublishResource,
+
+    -- ** Constructing a Request
+    BloggerPostsPublish (..),
+    newBloggerPostsPublish,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.posts.publish@ method which the
+-- 'BloggerPostsPublish' request conforms to.
+type BloggerPostsPublishResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> Core.Capture "postId" Core.Text
+    Core.:> "publish"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "publishDate" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Post'
+
+-- | Publishes a post.
+--
+-- /See:/ 'newBloggerPostsPublish' smart constructor.
+data BloggerPostsPublish = BloggerPostsPublish
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    postId :: Core.Text,
+    publishDate :: (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 'BloggerPostsPublish' with the minimum fields required to make a request.
+newBloggerPostsPublish ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'postId'.
+  Core.Text ->
+  BloggerPostsPublish
+newBloggerPostsPublish blogId postId =
+  BloggerPostsPublish
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      postId = postId,
+      publishDate = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPostsPublish where
+  type Rs BloggerPostsPublish = Post'
+  type Scopes BloggerPostsPublish = '[Blogger'FullControl]
+  requestClient BloggerPostsPublish {..} =
+    go
+      blogId
+      postId
+      xgafv
+      accessToken
+      callback
+      publishDate
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPostsPublishResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Posts/Revert.hs b/gen/Gogol/Blogger/Posts/Revert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Posts/Revert.hs
@@ -0,0 +1,115 @@
+{-# 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.Blogger.Posts.Revert
+-- 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)
+--
+-- Reverts a published or scheduled post to draft state.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.revert@.
+module Gogol.Blogger.Posts.Revert
+  ( -- * Resource
+    BloggerPostsRevertResource,
+
+    -- ** Constructing a Request
+    BloggerPostsRevert (..),
+    newBloggerPostsRevert,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.posts.revert@ method which the
+-- 'BloggerPostsRevert' request conforms to.
+type BloggerPostsRevertResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> Core.Capture "postId" Core.Text
+    Core.:> "revert"
+    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.Post '[Core.JSON] Post'
+
+-- | Reverts a published or scheduled post to draft state.
+--
+-- /See:/ 'newBloggerPostsRevert' smart constructor.
+data BloggerPostsRevert = BloggerPostsRevert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    postId :: 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 'BloggerPostsRevert' with the minimum fields required to make a request.
+newBloggerPostsRevert ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'postId'.
+  Core.Text ->
+  BloggerPostsRevert
+newBloggerPostsRevert blogId postId =
+  BloggerPostsRevert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      postId = postId,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPostsRevert where
+  type Rs BloggerPostsRevert = Post'
+  type Scopes BloggerPostsRevert = '[Blogger'FullControl]
+  requestClient BloggerPostsRevert {..} =
+    go
+      blogId
+      postId
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPostsRevertResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Posts/Search.hs b/gen/Gogol/Blogger/Posts/Search.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Posts/Search.hs
@@ -0,0 +1,125 @@
+{-# 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.Blogger.Posts.Search
+-- 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)
+--
+-- Searches for posts matching given query terms in the specified blog.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.search@.
+module Gogol.Blogger.Posts.Search
+  ( -- * Resource
+    BloggerPostsSearchResource,
+
+    -- ** Constructing a Request
+    BloggerPostsSearch (..),
+    newBloggerPostsSearch,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.posts.search@ method which the
+-- 'BloggerPostsSearch' request conforms to.
+type BloggerPostsSearchResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> "search"
+    Core.:> Core.QueryParam "q" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "fetchBodies" Core.Bool
+    Core.:> Core.QueryParam "orderBy" PostsSearchOrderBy
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] PostList
+
+-- | Searches for posts matching given query terms in the specified blog.
+--
+-- /See:/ 'newBloggerPostsSearch' smart constructor.
+data BloggerPostsSearch = BloggerPostsSearch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    fetchBodies :: Core.Bool,
+    orderBy :: PostsSearchOrderBy,
+    q :: 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 'BloggerPostsSearch' with the minimum fields required to make a request.
+newBloggerPostsSearch ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  See 'q'.
+  Core.Text ->
+  BloggerPostsSearch
+newBloggerPostsSearch blogId q =
+  BloggerPostsSearch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      fetchBodies = Core.True,
+      orderBy = PostsSearchOrderBy_Published,
+      q = q,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPostsSearch where
+  type Rs BloggerPostsSearch = PostList
+  type
+    Scopes BloggerPostsSearch =
+      '[Blogger'FullControl, Blogger'Readonly]
+  requestClient BloggerPostsSearch {..} =
+    go
+      blogId
+      (Core.Just q)
+      xgafv
+      accessToken
+      callback
+      (Core.Just fetchBodies)
+      (Core.Just orderBy)
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPostsSearchResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Posts/Update.hs b/gen/Gogol/Blogger/Posts/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Posts/Update.hs
@@ -0,0 +1,141 @@
+{-# 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.Blogger.Posts.Update
+-- 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)
+--
+-- Updates a post by blog id and post id.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.update@.
+module Gogol.Blogger.Posts.Update
+  ( -- * Resource
+    BloggerPostsUpdateResource,
+
+    -- ** Constructing a Request
+    BloggerPostsUpdate (..),
+    newBloggerPostsUpdate,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.posts.update@ method which the
+-- 'BloggerPostsUpdate' request conforms to.
+type BloggerPostsUpdateResource =
+  "v3"
+    Core.:> "blogs"
+    Core.:> Core.Capture "blogId" Core.Text
+    Core.:> "posts"
+    Core.:> Core.Capture "postId" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "fetchBody" Core.Bool
+    Core.:> Core.QueryParam "fetchImages" Core.Bool
+    Core.:> Core.QueryParam "maxComments" Core.Word32
+    Core.:> Core.QueryParam "publish" Core.Bool
+    Core.:> Core.QueryParam "revert" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Post'
+    Core.:> Core.Put '[Core.JSON] Post'
+
+-- | Updates a post by blog id and post id.
+--
+-- /See:/ 'newBloggerPostsUpdate' smart constructor.
+data BloggerPostsUpdate = BloggerPostsUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    blogId :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    fetchBody :: Core.Bool,
+    fetchImages :: (Core.Maybe Core.Bool),
+    maxComments :: (Core.Maybe Core.Word32),
+    -- | Multipart request metadata.
+    payload :: Post',
+    postId :: Core.Text,
+    publish :: (Core.Maybe Core.Bool),
+    revert :: (Core.Maybe Core.Bool),
+    -- | 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 'BloggerPostsUpdate' with the minimum fields required to make a request.
+newBloggerPostsUpdate ::
+  -- |  See 'blogId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Post' ->
+  -- |  See 'postId'.
+  Core.Text ->
+  BloggerPostsUpdate
+newBloggerPostsUpdate blogId payload postId =
+  BloggerPostsUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      blogId = blogId,
+      callback = Core.Nothing,
+      fetchBody = Core.True,
+      fetchImages = Core.Nothing,
+      maxComments = Core.Nothing,
+      payload = payload,
+      postId = postId,
+      publish = Core.Nothing,
+      revert = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest BloggerPostsUpdate where
+  type Rs BloggerPostsUpdate = Post'
+  type Scopes BloggerPostsUpdate = '[Blogger'FullControl]
+  requestClient BloggerPostsUpdate {..} =
+    go
+      blogId
+      postId
+      xgafv
+      accessToken
+      callback
+      (Core.Just fetchBody)
+      fetchImages
+      maxComments
+      publish
+      revert
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerPostsUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Blogger/Types.hs b/gen/Gogol/Blogger/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Types.hs
@@ -0,0 +1,288 @@
+{-# 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.Blogger.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.Blogger.Types
+  ( -- * Configuration
+    bloggerService,
+
+    -- * OAuth Scopes
+    Blogger'FullControl,
+    Blogger'Readonly,
+
+    -- * Types
+
+    -- ** Xgafv
+    Xgafv (..),
+
+    -- ** Blog
+    Blog (..),
+    newBlog,
+
+    -- ** Blog_Locale
+    Blog_Locale (..),
+    newBlog_Locale,
+
+    -- ** Blog_Pages
+    Blog_Pages (..),
+    newBlog_Pages,
+
+    -- ** Blog_Posts
+    Blog_Posts (..),
+    newBlog_Posts,
+
+    -- ** Blog_Status
+    Blog_Status (..),
+
+    -- ** BlogList
+    BlogList (..),
+    newBlogList,
+
+    -- ** BlogPerUserInfo
+    BlogPerUserInfo (..),
+    newBlogPerUserInfo,
+
+    -- ** BlogPerUserInfo_Role
+    BlogPerUserInfo_Role (..),
+
+    -- ** BlogUserInfo
+    BlogUserInfo (..),
+    newBlogUserInfo,
+
+    -- ** Comment
+    Comment (..),
+    newComment,
+
+    -- ** Comment_Author
+    Comment_Author (..),
+    newComment_Author,
+
+    -- ** Comment_Author_Image
+    Comment_Author_Image (..),
+    newComment_Author_Image,
+
+    -- ** Comment_Blog
+    Comment_Blog (..),
+    newComment_Blog,
+
+    -- ** Comment_InReplyTo
+    Comment_InReplyTo (..),
+    newComment_InReplyTo,
+
+    -- ** Comment_Post
+    Comment_Post (..),
+    newComment_Post,
+
+    -- ** Comment_Status
+    Comment_Status (..),
+
+    -- ** CommentList
+    CommentList (..),
+    newCommentList,
+
+    -- ** Page
+    Page (..),
+    newPage,
+
+    -- ** Page_Author
+    Page_Author (..),
+    newPage_Author,
+
+    -- ** Page_Author_Image
+    Page_Author_Image (..),
+    newPage_Author_Image,
+
+    -- ** Page_Blog
+    Page_Blog (..),
+    newPage_Blog,
+
+    -- ** Page_Status
+    Page_Status (..),
+
+    -- ** PageList
+    PageList (..),
+    newPageList,
+
+    -- ** Pageviews
+    Pageviews (..),
+    newPageviews,
+
+    -- ** Pageviews_CountsItem
+    Pageviews_CountsItem (..),
+    newPageviews_CountsItem,
+
+    -- ** Pageviews_CountsItem_TimeRange
+    Pageviews_CountsItem_TimeRange (..),
+
+    -- ** Post'
+    Post' (..),
+    newPost,
+
+    -- ** Post_Author
+    Post_Author (..),
+    newPost_Author,
+
+    -- ** Post_Author_Image
+    Post_Author_Image (..),
+    newPost_Author_Image,
+
+    -- ** Post_Blog
+    Post_Blog (..),
+    newPost_Blog,
+
+    -- ** Post_ImagesItem
+    Post_ImagesItem (..),
+    newPost_ImagesItem,
+
+    -- ** Post_Location
+    Post_Location (..),
+    newPost_Location,
+
+    -- ** Post_ReaderComments
+    Post_ReaderComments (..),
+
+    -- ** Post_Replies
+    Post_Replies (..),
+    newPost_Replies,
+
+    -- ** Post_Status
+    Post_Status (..),
+
+    -- ** PostList
+    PostList (..),
+    newPostList,
+
+    -- ** PostPerUserInfo
+    PostPerUserInfo (..),
+    newPostPerUserInfo,
+
+    -- ** PostUserInfo
+    PostUserInfo (..),
+    newPostUserInfo,
+
+    -- ** PostUserInfosList
+    PostUserInfosList (..),
+    newPostUserInfosList,
+
+    -- ** User
+    User (..),
+    newUser,
+
+    -- ** User_Blogs
+    User_Blogs (..),
+    newUser_Blogs,
+
+    -- ** User_Locale
+    User_Locale (..),
+    newUser_Locale,
+
+    -- ** BlogsGetView
+    BlogsGetView (..),
+
+    -- ** BlogsGetByUrlView
+    BlogsGetByUrlView (..),
+
+    -- ** BlogsListByUserRole
+    BlogsListByUserRole (..),
+
+    -- ** BlogsListByUserStatus
+    BlogsListByUserStatus (..),
+
+    -- ** BlogsListByUserView
+    BlogsListByUserView (..),
+
+    -- ** CommentsGetView
+    CommentsGetView (..),
+
+    -- ** CommentsListStatus
+    CommentsListStatus (..),
+
+    -- ** CommentsListView
+    CommentsListView (..),
+
+    -- ** CommentsListByBlogStatus
+    CommentsListByBlogStatus (..),
+
+    -- ** PageViewsGetRange
+    PageViewsGetRange (..),
+
+    -- ** PagesGetView
+    PagesGetView (..),
+
+    -- ** PagesListStatus
+    PagesListStatus (..),
+
+    -- ** PagesListView
+    PagesListView (..),
+
+    -- ** PostUserInfosListOrderBy
+    PostUserInfosListOrderBy (..),
+
+    -- ** PostUserInfosListStatus
+    PostUserInfosListStatus (..),
+
+    -- ** PostUserInfosListView
+    PostUserInfosListView (..),
+
+    -- ** PostsGetView
+    PostsGetView (..),
+
+    -- ** PostsGetByPathView
+    PostsGetByPathView (..),
+
+    -- ** PostsListOrderBy
+    PostsListOrderBy (..),
+
+    -- ** PostsListSortOption
+    PostsListSortOption (..),
+
+    -- ** PostsListStatus
+    PostsListStatus (..),
+
+    -- ** PostsListView
+    PostsListView (..),
+
+    -- ** PostsSearchOrderBy
+    PostsSearchOrderBy (..),
+  )
+where
+
+import Gogol.Blogger.Internal.Product
+import Gogol.Blogger.Internal.Sum
+import Gogol.Prelude qualified as Core
+
+-- | Default request referring to version @v3@ of the Blogger API. This contains the host and root path used as a starting point for constructing service requests.
+bloggerService :: Core.ServiceConfig
+bloggerService =
+  Core.defaultService
+    (Core.ServiceId "blogger:v3")
+    "blogger.googleapis.com"
+
+-- | Manage your Blogger account
+type Blogger'FullControl =
+  "https://www.googleapis.com/auth/blogger"
+
+-- | View your Blogger account
+type Blogger'Readonly =
+  "https://www.googleapis.com/auth/blogger.readonly"
diff --git a/gen/Gogol/Blogger/Users/Get.hs b/gen/Gogol/Blogger/Users/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Blogger/Users/Get.hs
@@ -0,0 +1,109 @@
+{-# 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.Blogger.Users.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 one user by user_id.
+--
+-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.users.get@.
+module Gogol.Blogger.Users.Get
+  ( -- * Resource
+    BloggerUsersGetResource,
+
+    -- ** Constructing a Request
+    BloggerUsersGet (..),
+    newBloggerUsersGet,
+  )
+where
+
+import Gogol.Blogger.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @blogger.users.get@ method which the
+-- 'BloggerUsersGet' request conforms to.
+type BloggerUsersGetResource =
+  "v3"
+    Core.:> "users"
+    Core.:> Core.Capture "userId" 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] User
+
+-- | Gets one user by user_id.
+--
+-- /See:/ 'newBloggerUsersGet' smart constructor.
+data BloggerUsersGet = BloggerUsersGet
+  { -- | 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),
+    userId :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'BloggerUsersGet' with the minimum fields required to make a request.
+newBloggerUsersGet ::
+  -- |  See 'userId'.
+  Core.Text ->
+  BloggerUsersGet
+newBloggerUsersGet userId =
+  BloggerUsersGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      userId = userId
+    }
+
+instance Core.GoogleRequest BloggerUsersGet where
+  type Rs BloggerUsersGet = User
+  type
+    Scopes BloggerUsersGet =
+      '[Blogger'FullControl, Blogger'Readonly]
+  requestClient BloggerUsersGet {..} =
+    go
+      userId
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      bloggerService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy BloggerUsersGetResource)
+          Core.mempty
diff --git a/gen/Network/Google/Blogger.hs b/gen/Network/Google/Blogger.hs
deleted file mode 100644
--- a/gen/Network/Google/Blogger.hs
+++ /dev/null
@@ -1,560 +0,0 @@
-{-# LANGUAGE DataKinds         #-}
-{-# LANGUAGE NoImplicitPrelude #-}
-{-# LANGUAGE TypeOperators     #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-
--- |
--- Module      : Network.Google.Blogger
--- 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)
---
--- API for access to the data within Blogger.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference>
-module Network.Google.Blogger
-    (
-    -- * Service Configuration
-      bloggerService
-
-    -- * OAuth Scopes
-    , bloggerScope
-    , bloggerReadOnlyScope
-
-    -- * API Declaration
-    , BloggerAPI
-
-    -- * Resources
-
-    -- ** blogger.blogUserInfos.get
-    , module Network.Google.Resource.Blogger.BlogUserInfos.Get
-
-    -- ** blogger.blogs.get
-    , module Network.Google.Resource.Blogger.Blogs.Get
-
-    -- ** blogger.blogs.getByUrl
-    , module Network.Google.Resource.Blogger.Blogs.GetByURL
-
-    -- ** blogger.blogs.listByUser
-    , module Network.Google.Resource.Blogger.Blogs.ListByUser
-
-    -- ** blogger.comments.approve
-    , module Network.Google.Resource.Blogger.Comments.Approve
-
-    -- ** blogger.comments.delete
-    , module Network.Google.Resource.Blogger.Comments.Delete
-
-    -- ** blogger.comments.get
-    , module Network.Google.Resource.Blogger.Comments.Get
-
-    -- ** blogger.comments.list
-    , module Network.Google.Resource.Blogger.Comments.List
-
-    -- ** blogger.comments.listByBlog
-    , module Network.Google.Resource.Blogger.Comments.ListByBlog
-
-    -- ** blogger.comments.markAsSpam
-    , module Network.Google.Resource.Blogger.Comments.MarkAsSpam
-
-    -- ** blogger.comments.removeContent
-    , module Network.Google.Resource.Blogger.Comments.RemoveContent
-
-    -- ** blogger.pageViews.get
-    , module Network.Google.Resource.Blogger.PageViews.Get
-
-    -- ** blogger.pages.delete
-    , module Network.Google.Resource.Blogger.Pages.Delete
-
-    -- ** blogger.pages.get
-    , module Network.Google.Resource.Blogger.Pages.Get
-
-    -- ** blogger.pages.insert
-    , module Network.Google.Resource.Blogger.Pages.Insert
-
-    -- ** blogger.pages.list
-    , module Network.Google.Resource.Blogger.Pages.List
-
-    -- ** blogger.pages.patch
-    , module Network.Google.Resource.Blogger.Pages.Patch
-
-    -- ** blogger.pages.publish
-    , module Network.Google.Resource.Blogger.Pages.Publish
-
-    -- ** blogger.pages.revert
-    , module Network.Google.Resource.Blogger.Pages.Revert
-
-    -- ** blogger.pages.update
-    , module Network.Google.Resource.Blogger.Pages.Update
-
-    -- ** blogger.postUserInfos.get
-    , module Network.Google.Resource.Blogger.PostUserInfos.Get
-
-    -- ** blogger.postUserInfos.list
-    , module Network.Google.Resource.Blogger.PostUserInfos.List
-
-    -- ** blogger.posts.delete
-    , module Network.Google.Resource.Blogger.Posts.Delete
-
-    -- ** blogger.posts.get
-    , module Network.Google.Resource.Blogger.Posts.Get
-
-    -- ** blogger.posts.getByPath
-    , module Network.Google.Resource.Blogger.Posts.GetByPath
-
-    -- ** blogger.posts.insert
-    , module Network.Google.Resource.Blogger.Posts.Insert
-
-    -- ** blogger.posts.list
-    , module Network.Google.Resource.Blogger.Posts.List
-
-    -- ** blogger.posts.patch
-    , module Network.Google.Resource.Blogger.Posts.Patch
-
-    -- ** blogger.posts.publish
-    , module Network.Google.Resource.Blogger.Posts.Publish
-
-    -- ** blogger.posts.revert
-    , module Network.Google.Resource.Blogger.Posts.Revert
-
-    -- ** blogger.posts.search
-    , module Network.Google.Resource.Blogger.Posts.Search
-
-    -- ** blogger.posts.update
-    , module Network.Google.Resource.Blogger.Posts.Update
-
-    -- ** blogger.users.get
-    , module Network.Google.Resource.Blogger.Users.Get
-
-    -- * Types
-
-    -- ** PostsListOrderBy
-    , PostsListOrderBy (..)
-
-    -- ** PostsListView
-    , PostsListView (..)
-
-    -- ** PageViewsGetRange
-    , PageViewsGetRange (..)
-
-    -- ** PostUserInfo
-    , PostUserInfo
-    , postUserInfo
-    , puiPostUserInfo
-    , puiPost
-    , puiKind
-
-    -- ** CommentsListView
-    , CommentsListView (..)
-
-    -- ** PostAuthorImage
-    , PostAuthorImage
-    , postAuthorImage
-    , paiURL
-
-    -- ** PostUserInfosListStatus
-    , PostUserInfosListStatus (..)
-
-    -- ** PostList
-    , PostList
-    , postList
-    , plEtag
-    , plNextPageToken
-    , plKind
-    , plItems
-
-    -- ** CommentInReplyTo
-    , CommentInReplyTo
-    , commentInReplyTo
-    , cirtId
-
-    -- ** CommentBlog
-    , CommentBlog
-    , commentBlog
-    , cbId
-
-    -- ** Pageviews
-    , Pageviews
-    , pageviews
-    , pKind
-    , pCounts
-    , pBlogId
-
-    -- ** PostLocation
-    , PostLocation
-    , postLocation
-    , plSpan
-    , plLat
-    , plName
-    , plLng
-
-    -- ** BlogPosts
-    , BlogPosts
-    , blogPosts
-    , bpTotalItems
-    , bpItems
-    , bpSelfLink
-
-    -- ** PostsGetView
-    , PostsGetView (..)
-
-    -- ** Post'
-    , Post'
-    , post
-    , posImages
-    , posStatus
-    , posEtag
-    , posReaderComments
-    , posLocation
-    , posKind
-    , posPublished
-    , posURL
-    , posBlog
-    , posCustomMetaData
-    , posContent
-    , posReplies
-    , posSelfLink
-    , posAuthor
-    , posId
-    , posLabels
-    , posUpdated
-    , posTitleLink
-    , posTitle
-
-    -- ** PostsSearchOrderBy
-    , PostsSearchOrderBy (..)
-
-    -- ** CommentsListByBlogStatus
-    , CommentsListByBlogStatus (..)
-
-    -- ** PagesGetView
-    , PagesGetView (..)
-
-    -- ** PostUserInfosListOrderBy
-    , PostUserInfosListOrderBy (..)
-
-    -- ** Page
-    , Page
-    , page
-    , pagStatus
-    , pagEtag
-    , pagKind
-    , pagPublished
-    , pagURL
-    , pagBlog
-    , pagContent
-    , pagSelfLink
-    , pagAuthor
-    , pagId
-    , pagUpdated
-    , pagTitle
-
-    -- ** BlogLocale
-    , BlogLocale
-    , blogLocale
-    , blVariant
-    , blCountry
-    , blLanguage
-
-    -- ** PageAuthor
-    , PageAuthor
-    , pageAuthor
-    , paImage
-    , paURL
-    , paDisplayName
-    , paId
-
-    -- ** BlogsGetView
-    , BlogsGetView (..)
-
-    -- ** Blog
-    , Blog
-    , blog
-    , bStatus
-    , bKind
-    , bPages
-    , bLocale
-    , bPublished
-    , bURL
-    , bCustomMetaData
-    , bSelfLink
-    , bName
-    , bId
-    , bUpdated
-    , bPosts
-    , bDescription
-
-    -- ** BlogsGetByURLView
-    , BlogsGetByURLView (..)
-
-    -- ** CommentsListStatus
-    , CommentsListStatus (..)
-
-    -- ** BlogPages
-    , BlogPages
-    , blogPages
-    , bpsTotalItems
-    , bpsSelfLink
-
-    -- ** PostBlog
-    , PostBlog
-    , postBlog
-    , pbId
-
-    -- ** BlogsListByUserStatus
-    , BlogsListByUserStatus (..)
-
-    -- ** PageList
-    , PageList
-    , pageList
-    , pllEtag
-    , pllNextPageToken
-    , pllKind
-    , pllItems
-
-    -- ** UserLocale
-    , UserLocale
-    , userLocale
-    , ulVariant
-    , ulCountry
-    , ulLanguage
-
-    -- ** CommentAuthorImage
-    , CommentAuthorImage
-    , commentAuthorImage
-    , caiURL
-
-    -- ** User
-    , User
-    , user
-    , uBlogs
-    , uKind
-    , uCreated
-    , uLocale
-    , uURL
-    , uSelfLink
-    , uAbout
-    , uDisplayName
-    , uId
-
-    -- ** UserBlogs
-    , UserBlogs
-    , userBlogs
-    , ubSelfLink
-
-    -- ** PostReplies
-    , PostReplies
-    , postReplies
-    , prTotalItems
-    , prItems
-    , prSelfLink
-
-    -- ** BlogList
-    , BlogList
-    , blogList
-    , blKind
-    , blItems
-    , blBlogUserInfos
-
-    -- ** PagesListView
-    , PagesListView (..)
-
-    -- ** PageBlog
-    , PageBlog
-    , pageBlog
-    , pId
-
-    -- ** PostsListStatus
-    , PostsListStatus (..)
-
-    -- ** PostAuthor
-    , PostAuthor
-    , postAuthor
-    , paaImage
-    , paaURL
-    , paaDisplayName
-    , paaId
-
-    -- ** PostPerUserInfo
-    , PostPerUserInfo
-    , postPerUserInfo
-    , ppuiKind
-    , ppuiBlogId
-    , ppuiUserId
-    , ppuiHasEditAccess
-    , ppuiPostId
-
-    -- ** BlogsListByUserView
-    , BlogsListByUserView (..)
-
-    -- ** PageviewsCountsItem
-    , PageviewsCountsItem
-    , pageviewsCountsItem
-    , pciTimeRange
-    , pciCount
-
-    -- ** PostUserInfosListView
-    , PostUserInfosListView (..)
-
-    -- ** Comment
-    , Comment
-    , comment
-    , cStatus
-    , cPost
-    , cKind
-    , cPublished
-    , cBlog
-    , cContent
-    , cSelfLink
-    , cAuthor
-    , cId
-    , cUpdated
-    , cInReplyTo
-
-    -- ** CommentsGetView
-    , CommentsGetView (..)
-
-    -- ** CommentPost
-    , CommentPost
-    , commentPost
-    , cpId
-
-    -- ** PostsGetByPathView
-    , PostsGetByPathView (..)
-
-    -- ** BlogPerUserInfo
-    , BlogPerUserInfo
-    , blogPerUserInfo
-    , bpuiPhotosAlbumKey
-    , bpuiKind
-    , bpuiBlogId
-    , bpuiUserId
-    , bpuiRole
-    , bpuiHasAdminAccess
-
-    -- ** PostUserInfosList
-    , PostUserInfosList
-    , postUserInfosList
-    , puilNextPageToken
-    , puilKind
-    , puilItems
-
-    -- ** PagesListStatus
-    , PagesListStatus (..)
-
-    -- ** CommentAuthor
-    , CommentAuthor
-    , commentAuthor
-    , caImage
-    , caURL
-    , caDisplayName
-    , caId
-
-    -- ** BlogsListByUserRole
-    , BlogsListByUserRole (..)
-
-    -- ** BlogUserInfo
-    , BlogUserInfo
-    , blogUserInfo
-    , buiKind
-    , buiBlog
-    , buiBlogUserInfo
-
-    -- ** PageAuthorImage
-    , PageAuthorImage
-    , pageAuthorImage
-    , pURL
-
-    -- ** CommentList
-    , CommentList
-    , commentList
-    , clEtag
-    , clNextPageToken
-    , clKind
-    , clItems
-    , clPrevPageToken
-
-    -- ** PostImagesItem
-    , PostImagesItem
-    , postImagesItem
-    , piiURL
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-import           Network.Google.Resource.Blogger.Blogs.Get
-import           Network.Google.Resource.Blogger.Blogs.GetByURL
-import           Network.Google.Resource.Blogger.Blogs.ListByUser
-import           Network.Google.Resource.Blogger.BlogUserInfos.Get
-import           Network.Google.Resource.Blogger.Comments.Approve
-import           Network.Google.Resource.Blogger.Comments.Delete
-import           Network.Google.Resource.Blogger.Comments.Get
-import           Network.Google.Resource.Blogger.Comments.List
-import           Network.Google.Resource.Blogger.Comments.ListByBlog
-import           Network.Google.Resource.Blogger.Comments.MarkAsSpam
-import           Network.Google.Resource.Blogger.Comments.RemoveContent
-import           Network.Google.Resource.Blogger.Pages.Delete
-import           Network.Google.Resource.Blogger.Pages.Get
-import           Network.Google.Resource.Blogger.Pages.Insert
-import           Network.Google.Resource.Blogger.Pages.List
-import           Network.Google.Resource.Blogger.Pages.Patch
-import           Network.Google.Resource.Blogger.Pages.Publish
-import           Network.Google.Resource.Blogger.Pages.Revert
-import           Network.Google.Resource.Blogger.Pages.Update
-import           Network.Google.Resource.Blogger.PageViews.Get
-import           Network.Google.Resource.Blogger.Posts.Delete
-import           Network.Google.Resource.Blogger.Posts.Get
-import           Network.Google.Resource.Blogger.Posts.GetByPath
-import           Network.Google.Resource.Blogger.Posts.Insert
-import           Network.Google.Resource.Blogger.Posts.List
-import           Network.Google.Resource.Blogger.Posts.Patch
-import           Network.Google.Resource.Blogger.Posts.Publish
-import           Network.Google.Resource.Blogger.Posts.Revert
-import           Network.Google.Resource.Blogger.Posts.Search
-import           Network.Google.Resource.Blogger.Posts.Update
-import           Network.Google.Resource.Blogger.PostUserInfos.Get
-import           Network.Google.Resource.Blogger.PostUserInfos.List
-import           Network.Google.Resource.Blogger.Users.Get
-
-{- $resources
-TODO
--}
-
--- | Represents the entirety of the methods and resources available for the Blogger API service.
-type BloggerAPI =
-     PostUserInfosListResource :<|>
-       PostUserInfosGetResource
-       :<|> UsersGetResource
-       :<|> PageViewsGetResource
-       :<|> BlogsListByUserResource
-       :<|> BlogsGetResource
-       :<|> BlogsGetByURLResource
-       :<|> PagesInsertResource
-       :<|> PagesListResource
-       :<|> PagesPatchResource
-       :<|> PagesGetResource
-       :<|> PagesRevertResource
-       :<|> PagesDeleteResource
-       :<|> PagesUpdateResource
-       :<|> PagesPublishResource
-       :<|> BlogUserInfosGetResource
-       :<|> CommentsListResource
-       :<|> CommentsGetResource
-       :<|> CommentsListByBlogResource
-       :<|> CommentsRemoveContentResource
-       :<|> CommentsApproveResource
-       :<|> CommentsMarkAsSpamResource
-       :<|> CommentsDeleteResource
-       :<|> PostsInsertResource
-       :<|> PostsListResource
-       :<|> PostsPatchResource
-       :<|> PostsGetResource
-       :<|> PostsRevertResource
-       :<|> PostsGetByPathResource
-       :<|> PostsSearchResource
-       :<|> PostsDeleteResource
-       :<|> PostsUpdateResource
-       :<|> PostsPublishResource
diff --git a/gen/Network/Google/Blogger/Types.hs b/gen/Network/Google/Blogger/Types.hs
deleted file mode 100644
--- a/gen/Network/Google/Blogger/Types.hs
+++ /dev/null
@@ -1,394 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- |
--- Module      : Network.Google.Blogger.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.Blogger.Types
-    (
-    -- * Service Configuration
-      bloggerService
-
-    -- * OAuth Scopes
-    , bloggerScope
-    , bloggerReadOnlyScope
-
-    -- * PostsListOrderBy
-    , PostsListOrderBy (..)
-
-    -- * PostsListView
-    , PostsListView (..)
-
-    -- * PageViewsGetRange
-    , PageViewsGetRange (..)
-
-    -- * PostUserInfo
-    , PostUserInfo
-    , postUserInfo
-    , puiPostUserInfo
-    , puiPost
-    , puiKind
-
-    -- * CommentsListView
-    , CommentsListView (..)
-
-    -- * PostAuthorImage
-    , PostAuthorImage
-    , postAuthorImage
-    , paiURL
-
-    -- * PostUserInfosListStatus
-    , PostUserInfosListStatus (..)
-
-    -- * PostList
-    , PostList
-    , postList
-    , plEtag
-    , plNextPageToken
-    , plKind
-    , plItems
-
-    -- * CommentInReplyTo
-    , CommentInReplyTo
-    , commentInReplyTo
-    , cirtId
-
-    -- * CommentBlog
-    , CommentBlog
-    , commentBlog
-    , cbId
-
-    -- * Pageviews
-    , Pageviews
-    , pageviews
-    , pKind
-    , pCounts
-    , pBlogId
-
-    -- * PostLocation
-    , PostLocation
-    , postLocation
-    , plSpan
-    , plLat
-    , plName
-    , plLng
-
-    -- * BlogPosts
-    , BlogPosts
-    , blogPosts
-    , bpTotalItems
-    , bpItems
-    , bpSelfLink
-
-    -- * PostsGetView
-    , PostsGetView (..)
-
-    -- * Post'
-    , Post'
-    , post
-    , posImages
-    , posStatus
-    , posEtag
-    , posReaderComments
-    , posLocation
-    , posKind
-    , posPublished
-    , posURL
-    , posBlog
-    , posCustomMetaData
-    , posContent
-    , posReplies
-    , posSelfLink
-    , posAuthor
-    , posId
-    , posLabels
-    , posUpdated
-    , posTitleLink
-    , posTitle
-
-    -- * PostsSearchOrderBy
-    , PostsSearchOrderBy (..)
-
-    -- * CommentsListByBlogStatus
-    , CommentsListByBlogStatus (..)
-
-    -- * PagesGetView
-    , PagesGetView (..)
-
-    -- * PostUserInfosListOrderBy
-    , PostUserInfosListOrderBy (..)
-
-    -- * Page
-    , Page
-    , page
-    , pagStatus
-    , pagEtag
-    , pagKind
-    , pagPublished
-    , pagURL
-    , pagBlog
-    , pagContent
-    , pagSelfLink
-    , pagAuthor
-    , pagId
-    , pagUpdated
-    , pagTitle
-
-    -- * BlogLocale
-    , BlogLocale
-    , blogLocale
-    , blVariant
-    , blCountry
-    , blLanguage
-
-    -- * PageAuthor
-    , PageAuthor
-    , pageAuthor
-    , paImage
-    , paURL
-    , paDisplayName
-    , paId
-
-    -- * BlogsGetView
-    , BlogsGetView (..)
-
-    -- * Blog
-    , Blog
-    , blog
-    , bStatus
-    , bKind
-    , bPages
-    , bLocale
-    , bPublished
-    , bURL
-    , bCustomMetaData
-    , bSelfLink
-    , bName
-    , bId
-    , bUpdated
-    , bPosts
-    , bDescription
-
-    -- * BlogsGetByURLView
-    , BlogsGetByURLView (..)
-
-    -- * CommentsListStatus
-    , CommentsListStatus (..)
-
-    -- * BlogPages
-    , BlogPages
-    , blogPages
-    , bpsTotalItems
-    , bpsSelfLink
-
-    -- * PostBlog
-    , PostBlog
-    , postBlog
-    , pbId
-
-    -- * BlogsListByUserStatus
-    , BlogsListByUserStatus (..)
-
-    -- * PageList
-    , PageList
-    , pageList
-    , pllEtag
-    , pllNextPageToken
-    , pllKind
-    , pllItems
-
-    -- * UserLocale
-    , UserLocale
-    , userLocale
-    , ulVariant
-    , ulCountry
-    , ulLanguage
-
-    -- * CommentAuthorImage
-    , CommentAuthorImage
-    , commentAuthorImage
-    , caiURL
-
-    -- * User
-    , User
-    , user
-    , uBlogs
-    , uKind
-    , uCreated
-    , uLocale
-    , uURL
-    , uSelfLink
-    , uAbout
-    , uDisplayName
-    , uId
-
-    -- * UserBlogs
-    , UserBlogs
-    , userBlogs
-    , ubSelfLink
-
-    -- * PostReplies
-    , PostReplies
-    , postReplies
-    , prTotalItems
-    , prItems
-    , prSelfLink
-
-    -- * BlogList
-    , BlogList
-    , blogList
-    , blKind
-    , blItems
-    , blBlogUserInfos
-
-    -- * PagesListView
-    , PagesListView (..)
-
-    -- * PageBlog
-    , PageBlog
-    , pageBlog
-    , pId
-
-    -- * PostsListStatus
-    , PostsListStatus (..)
-
-    -- * PostAuthor
-    , PostAuthor
-    , postAuthor
-    , paaImage
-    , paaURL
-    , paaDisplayName
-    , paaId
-
-    -- * PostPerUserInfo
-    , PostPerUserInfo
-    , postPerUserInfo
-    , ppuiKind
-    , ppuiBlogId
-    , ppuiUserId
-    , ppuiHasEditAccess
-    , ppuiPostId
-
-    -- * BlogsListByUserView
-    , BlogsListByUserView (..)
-
-    -- * PageviewsCountsItem
-    , PageviewsCountsItem
-    , pageviewsCountsItem
-    , pciTimeRange
-    , pciCount
-
-    -- * PostUserInfosListView
-    , PostUserInfosListView (..)
-
-    -- * Comment
-    , Comment
-    , comment
-    , cStatus
-    , cPost
-    , cKind
-    , cPublished
-    , cBlog
-    , cContent
-    , cSelfLink
-    , cAuthor
-    , cId
-    , cUpdated
-    , cInReplyTo
-
-    -- * CommentsGetView
-    , CommentsGetView (..)
-
-    -- * CommentPost
-    , CommentPost
-    , commentPost
-    , cpId
-
-    -- * PostsGetByPathView
-    , PostsGetByPathView (..)
-
-    -- * BlogPerUserInfo
-    , BlogPerUserInfo
-    , blogPerUserInfo
-    , bpuiPhotosAlbumKey
-    , bpuiKind
-    , bpuiBlogId
-    , bpuiUserId
-    , bpuiRole
-    , bpuiHasAdminAccess
-
-    -- * PostUserInfosList
-    , PostUserInfosList
-    , postUserInfosList
-    , puilNextPageToken
-    , puilKind
-    , puilItems
-
-    -- * PagesListStatus
-    , PagesListStatus (..)
-
-    -- * CommentAuthor
-    , CommentAuthor
-    , commentAuthor
-    , caImage
-    , caURL
-    , caDisplayName
-    , caId
-
-    -- * BlogsListByUserRole
-    , BlogsListByUserRole (..)
-
-    -- * BlogUserInfo
-    , BlogUserInfo
-    , blogUserInfo
-    , buiKind
-    , buiBlog
-    , buiBlogUserInfo
-
-    -- * PageAuthorImage
-    , PageAuthorImage
-    , pageAuthorImage
-    , pURL
-
-    -- * CommentList
-    , CommentList
-    , commentList
-    , clEtag
-    , clNextPageToken
-    , clKind
-    , clItems
-    , clPrevPageToken
-
-    -- * PostImagesItem
-    , PostImagesItem
-    , postImagesItem
-    , piiURL
-    ) where
-
-import           Network.Google.Blogger.Types.Product
-import           Network.Google.Blogger.Types.Sum
-import           Network.Google.Prelude
-
--- | Default request referring to version 'v3' of the Blogger API. This contains the host and root path used as a starting point for constructing service requests.
-bloggerService :: ServiceConfig
-bloggerService
-  = defaultService (ServiceId "blogger:v3")
-      "www.googleapis.com"
-
--- | Manage your Blogger account
-bloggerScope :: Proxy '["https://www.googleapis.com/auth/blogger"]
-bloggerScope = Proxy
-
--- | View your Blogger account
-bloggerReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/blogger.readonly"]
-bloggerReadOnlyScope = Proxy
diff --git a/gen/Network/Google/Blogger/Types/Product.hs b/gen/Network/Google/Blogger/Types/Product.hs
deleted file mode 100644
--- a/gen/Network/Google/Blogger/Types/Product.hs
+++ /dev/null
@@ -1,2491 +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.Blogger.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.Blogger.Types.Product where
-
-import           Network.Google.Blogger.Types.Sum
-import           Network.Google.Prelude
-
---
--- /See:/ 'postUserInfo' smart constructor.
-data PostUserInfo =
-  PostUserInfo'
-    { _puiPostUserInfo :: !(Maybe PostPerUserInfo)
-    , _puiPost         :: !(Maybe Post')
-    , _puiKind         :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostUserInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'puiPostUserInfo'
---
--- * 'puiPost'
---
--- * 'puiKind'
-postUserInfo
-    :: PostUserInfo
-postUserInfo =
-  PostUserInfo'
-    { _puiPostUserInfo = Nothing
-    , _puiPost = Nothing
-    , _puiKind = "blogger#postUserInfo"
-    }
-
-
--- | Information about a User for the Post.
-puiPostUserInfo :: Lens' PostUserInfo (Maybe PostPerUserInfo)
-puiPostUserInfo
-  = lens _puiPostUserInfo
-      (\ s a -> s{_puiPostUserInfo = a})
-
--- | The Post resource.
-puiPost :: Lens' PostUserInfo (Maybe Post')
-puiPost = lens _puiPost (\ s a -> s{_puiPost = a})
-
--- | The kind of this entity. Always blogger#postUserInfo
-puiKind :: Lens' PostUserInfo Text
-puiKind = lens _puiKind (\ s a -> s{_puiKind = a})
-
-instance FromJSON PostUserInfo where
-        parseJSON
-          = withObject "PostUserInfo"
-              (\ o ->
-                 PostUserInfo' <$>
-                   (o .:? "post_user_info") <*> (o .:? "post") <*>
-                     (o .:? "kind" .!= "blogger#postUserInfo"))
-
-instance ToJSON PostUserInfo where
-        toJSON PostUserInfo'{..}
-          = object
-              (catMaybes
-                 [("post_user_info" .=) <$> _puiPostUserInfo,
-                  ("post" .=) <$> _puiPost, Just ("kind" .= _puiKind)])
-
--- | The Post author\'s avatar.
---
--- /See:/ 'postAuthorImage' smart constructor.
-newtype PostAuthorImage =
-  PostAuthorImage'
-    { _paiURL :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostAuthorImage' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'paiURL'
-postAuthorImage
-    :: PostAuthorImage
-postAuthorImage = PostAuthorImage' {_paiURL = Nothing}
-
-
--- | The Post author\'s avatar URL.
-paiURL :: Lens' PostAuthorImage (Maybe Text)
-paiURL = lens _paiURL (\ s a -> s{_paiURL = a})
-
-instance FromJSON PostAuthorImage where
-        parseJSON
-          = withObject "PostAuthorImage"
-              (\ o -> PostAuthorImage' <$> (o .:? "url"))
-
-instance ToJSON PostAuthorImage where
-        toJSON PostAuthorImage'{..}
-          = object (catMaybes [("url" .=) <$> _paiURL])
-
---
--- /See:/ 'postList' smart constructor.
-data PostList =
-  PostList'
-    { _plEtag          :: !(Maybe Text)
-    , _plNextPageToken :: !(Maybe Text)
-    , _plKind          :: !Text
-    , _plItems         :: !(Maybe [Post'])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'plEtag'
---
--- * 'plNextPageToken'
---
--- * 'plKind'
---
--- * 'plItems'
-postList
-    :: PostList
-postList =
-  PostList'
-    { _plEtag = Nothing
-    , _plNextPageToken = Nothing
-    , _plKind = "blogger#postList"
-    , _plItems = Nothing
-    }
-
-
--- | Etag of the response.
-plEtag :: Lens' PostList (Maybe Text)
-plEtag = lens _plEtag (\ s a -> s{_plEtag = a})
-
--- | Pagination token to fetch the next page, if one exists.
-plNextPageToken :: Lens' PostList (Maybe Text)
-plNextPageToken
-  = lens _plNextPageToken
-      (\ s a -> s{_plNextPageToken = a})
-
--- | The kind of this entity. Always blogger#postList
-plKind :: Lens' PostList Text
-plKind = lens _plKind (\ s a -> s{_plKind = a})
-
--- | The list of Posts for this Blog.
-plItems :: Lens' PostList [Post']
-plItems
-  = lens _plItems (\ s a -> s{_plItems = a}) . _Default
-      . _Coerce
-
-instance FromJSON PostList where
-        parseJSON
-          = withObject "PostList"
-              (\ o ->
-                 PostList' <$>
-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "blogger#postList")
-                     <*> (o .:? "items" .!= mempty))
-
-instance ToJSON PostList where
-        toJSON PostList'{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _plEtag,
-                  ("nextPageToken" .=) <$> _plNextPageToken,
-                  Just ("kind" .= _plKind), ("items" .=) <$> _plItems])
-
--- | Data about the comment this is in reply to.
---
--- /See:/ 'commentInReplyTo' smart constructor.
-newtype CommentInReplyTo =
-  CommentInReplyTo'
-    { _cirtId :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommentInReplyTo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cirtId'
-commentInReplyTo
-    :: CommentInReplyTo
-commentInReplyTo = CommentInReplyTo' {_cirtId = Nothing}
-
-
--- | The identified of the parent of this comment.
-cirtId :: Lens' CommentInReplyTo (Maybe Text)
-cirtId = lens _cirtId (\ s a -> s{_cirtId = a})
-
-instance FromJSON CommentInReplyTo where
-        parseJSON
-          = withObject "CommentInReplyTo"
-              (\ o -> CommentInReplyTo' <$> (o .:? "id"))
-
-instance ToJSON CommentInReplyTo where
-        toJSON CommentInReplyTo'{..}
-          = object (catMaybes [("id" .=) <$> _cirtId])
-
--- | Data about the blog containing this comment.
---
--- /See:/ 'commentBlog' smart constructor.
-newtype CommentBlog =
-  CommentBlog'
-    { _cbId :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommentBlog' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cbId'
-commentBlog
-    :: CommentBlog
-commentBlog = CommentBlog' {_cbId = Nothing}
-
-
--- | The identifier of the blog containing this comment.
-cbId :: Lens' CommentBlog (Maybe Text)
-cbId = lens _cbId (\ s a -> s{_cbId = a})
-
-instance FromJSON CommentBlog where
-        parseJSON
-          = withObject "CommentBlog"
-              (\ o -> CommentBlog' <$> (o .:? "id"))
-
-instance ToJSON CommentBlog where
-        toJSON CommentBlog'{..}
-          = object (catMaybes [("id" .=) <$> _cbId])
-
---
--- /See:/ 'pageviews' smart constructor.
-data Pageviews =
-  Pageviews'
-    { _pKind   :: !Text
-    , _pCounts :: !(Maybe [PageviewsCountsItem])
-    , _pBlogId :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Pageviews' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pKind'
---
--- * 'pCounts'
---
--- * 'pBlogId'
-pageviews
-    :: Pageviews
-pageviews =
-  Pageviews'
-    {_pKind = "blogger#page_views", _pCounts = Nothing, _pBlogId = Nothing}
-
-
--- | The kind of this entry. Always blogger#page_views
-pKind :: Lens' Pageviews Text
-pKind = lens _pKind (\ s a -> s{_pKind = a})
-
--- | The container of posts in this blog.
-pCounts :: Lens' Pageviews [PageviewsCountsItem]
-pCounts
-  = lens _pCounts (\ s a -> s{_pCounts = a}) . _Default
-      . _Coerce
-
--- | Blog Id
-pBlogId :: Lens' Pageviews (Maybe Text)
-pBlogId = lens _pBlogId (\ s a -> s{_pBlogId = a})
-
-instance FromJSON Pageviews where
-        parseJSON
-          = withObject "Pageviews"
-              (\ o ->
-                 Pageviews' <$>
-                   (o .:? "kind" .!= "blogger#page_views") <*>
-                     (o .:? "counts" .!= mempty)
-                     <*> (o .:? "blogId"))
-
-instance ToJSON Pageviews where
-        toJSON Pageviews'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _pKind), ("counts" .=) <$> _pCounts,
-                  ("blogId" .=) <$> _pBlogId])
-
--- | The location for geotagged posts.
---
--- /See:/ 'postLocation' smart constructor.
-data PostLocation =
-  PostLocation'
-    { _plSpan :: !(Maybe Text)
-    , _plLat  :: !(Maybe (Textual Double))
-    , _plName :: !(Maybe Text)
-    , _plLng  :: !(Maybe (Textual Double))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostLocation' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'plSpan'
---
--- * 'plLat'
---
--- * 'plName'
---
--- * 'plLng'
-postLocation
-    :: PostLocation
-postLocation =
-  PostLocation'
-    {_plSpan = Nothing, _plLat = Nothing, _plName = Nothing, _plLng = Nothing}
-
-
--- | Location\'s viewport span. Can be used when rendering a map preview.
-plSpan :: Lens' PostLocation (Maybe Text)
-plSpan = lens _plSpan (\ s a -> s{_plSpan = a})
-
--- | Location\'s latitude.
-plLat :: Lens' PostLocation (Maybe Double)
-plLat
-  = lens _plLat (\ s a -> s{_plLat = a}) .
-      mapping _Coerce
-
--- | Location name.
-plName :: Lens' PostLocation (Maybe Text)
-plName = lens _plName (\ s a -> s{_plName = a})
-
--- | Location\'s longitude.
-plLng :: Lens' PostLocation (Maybe Double)
-plLng
-  = lens _plLng (\ s a -> s{_plLng = a}) .
-      mapping _Coerce
-
-instance FromJSON PostLocation where
-        parseJSON
-          = withObject "PostLocation"
-              (\ o ->
-                 PostLocation' <$>
-                   (o .:? "span") <*> (o .:? "lat") <*> (o .:? "name")
-                     <*> (o .:? "lng"))
-
-instance ToJSON PostLocation where
-        toJSON PostLocation'{..}
-          = object
-              (catMaybes
-                 [("span" .=) <$> _plSpan, ("lat" .=) <$> _plLat,
-                  ("name" .=) <$> _plName, ("lng" .=) <$> _plLng])
-
--- | The container of posts in this blog.
---
--- /See:/ 'blogPosts' smart constructor.
-data BlogPosts =
-  BlogPosts'
-    { _bpTotalItems :: !(Maybe (Textual Int32))
-    , _bpItems      :: !(Maybe [Post'])
-    , _bpSelfLink   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BlogPosts' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bpTotalItems'
---
--- * 'bpItems'
---
--- * 'bpSelfLink'
-blogPosts
-    :: BlogPosts
-blogPosts =
-  BlogPosts'
-    {_bpTotalItems = Nothing, _bpItems = Nothing, _bpSelfLink = Nothing}
-
-
--- | The count of posts in this blog.
-bpTotalItems :: Lens' BlogPosts (Maybe Int32)
-bpTotalItems
-  = lens _bpTotalItems (\ s a -> s{_bpTotalItems = a})
-      . mapping _Coerce
-
--- | The List of Posts for this Blog.
-bpItems :: Lens' BlogPosts [Post']
-bpItems
-  = lens _bpItems (\ s a -> s{_bpItems = a}) . _Default
-      . _Coerce
-
--- | The URL of the container for posts in this blog.
-bpSelfLink :: Lens' BlogPosts (Maybe Text)
-bpSelfLink
-  = lens _bpSelfLink (\ s a -> s{_bpSelfLink = a})
-
-instance FromJSON BlogPosts where
-        parseJSON
-          = withObject "BlogPosts"
-              (\ o ->
-                 BlogPosts' <$>
-                   (o .:? "totalItems") <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink"))
-
-instance ToJSON BlogPosts where
-        toJSON BlogPosts'{..}
-          = object
-              (catMaybes
-                 [("totalItems" .=) <$> _bpTotalItems,
-                  ("items" .=) <$> _bpItems,
-                  ("selfLink" .=) <$> _bpSelfLink])
-
---
--- /See:/ 'post' smart constructor.
-data Post' =
-  Post''
-    { _posImages         :: !(Maybe [PostImagesItem])
-    , _posStatus         :: !(Maybe Text)
-    , _posEtag           :: !(Maybe Text)
-    , _posReaderComments :: !(Maybe Text)
-    , _posLocation       :: !(Maybe PostLocation)
-    , _posKind           :: !Text
-    , _posPublished      :: !(Maybe DateTime')
-    , _posURL            :: !(Maybe Text)
-    , _posBlog           :: !(Maybe PostBlog)
-    , _posCustomMetaData :: !(Maybe Text)
-    , _posContent        :: !(Maybe Text)
-    , _posReplies        :: !(Maybe PostReplies)
-    , _posSelfLink       :: !(Maybe Text)
-    , _posAuthor         :: !(Maybe PostAuthor)
-    , _posId             :: !(Maybe Text)
-    , _posLabels         :: !(Maybe [Text])
-    , _posUpdated        :: !(Maybe DateTime')
-    , _posTitleLink      :: !(Maybe Text)
-    , _posTitle          :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Post' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'posImages'
---
--- * 'posStatus'
---
--- * 'posEtag'
---
--- * 'posReaderComments'
---
--- * 'posLocation'
---
--- * 'posKind'
---
--- * 'posPublished'
---
--- * 'posURL'
---
--- * 'posBlog'
---
--- * 'posCustomMetaData'
---
--- * 'posContent'
---
--- * 'posReplies'
---
--- * 'posSelfLink'
---
--- * 'posAuthor'
---
--- * 'posId'
---
--- * 'posLabels'
---
--- * 'posUpdated'
---
--- * 'posTitleLink'
---
--- * 'posTitle'
-post
-    :: Post'
-post =
-  Post''
-    { _posImages = Nothing
-    , _posStatus = Nothing
-    , _posEtag = Nothing
-    , _posReaderComments = Nothing
-    , _posLocation = Nothing
-    , _posKind = "blogger#post"
-    , _posPublished = Nothing
-    , _posURL = Nothing
-    , _posBlog = Nothing
-    , _posCustomMetaData = Nothing
-    , _posContent = Nothing
-    , _posReplies = Nothing
-    , _posSelfLink = Nothing
-    , _posAuthor = Nothing
-    , _posId = Nothing
-    , _posLabels = Nothing
-    , _posUpdated = Nothing
-    , _posTitleLink = Nothing
-    , _posTitle = Nothing
-    }
-
-
--- | Display image for the Post.
-posImages :: Lens' Post' [PostImagesItem]
-posImages
-  = lens _posImages (\ s a -> s{_posImages = a}) .
-      _Default
-      . _Coerce
-
--- | Status of the post. Only set for admin-level requests
-posStatus :: Lens' Post' (Maybe Text)
-posStatus
-  = lens _posStatus (\ s a -> s{_posStatus = a})
-
--- | Etag of the resource.
-posEtag :: Lens' Post' (Maybe Text)
-posEtag = lens _posEtag (\ s a -> s{_posEtag = a})
-
--- | Comment control and display setting for readers of this post.
-posReaderComments :: Lens' Post' (Maybe Text)
-posReaderComments
-  = lens _posReaderComments
-      (\ s a -> s{_posReaderComments = a})
-
--- | The location for geotagged posts.
-posLocation :: Lens' Post' (Maybe PostLocation)
-posLocation
-  = lens _posLocation (\ s a -> s{_posLocation = a})
-
--- | The kind of this entity. Always blogger#post
-posKind :: Lens' Post' Text
-posKind = lens _posKind (\ s a -> s{_posKind = a})
-
--- | RFC 3339 date-time when this Post was published.
-posPublished :: Lens' Post' (Maybe UTCTime)
-posPublished
-  = lens _posPublished (\ s a -> s{_posPublished = a})
-      . mapping _DateTime
-
--- | The URL where this Post is displayed.
-posURL :: Lens' Post' (Maybe Text)
-posURL = lens _posURL (\ s a -> s{_posURL = a})
-
--- | Data about the blog containing this Post.
-posBlog :: Lens' Post' (Maybe PostBlog)
-posBlog = lens _posBlog (\ s a -> s{_posBlog = a})
-
--- | The JSON meta-data for the Post.
-posCustomMetaData :: Lens' Post' (Maybe Text)
-posCustomMetaData
-  = lens _posCustomMetaData
-      (\ s a -> s{_posCustomMetaData = a})
-
--- | The content of the Post. May contain HTML markup.
-posContent :: Lens' Post' (Maybe Text)
-posContent
-  = lens _posContent (\ s a -> s{_posContent = a})
-
--- | The container of comments on this Post.
-posReplies :: Lens' Post' (Maybe PostReplies)
-posReplies
-  = lens _posReplies (\ s a -> s{_posReplies = a})
-
--- | The API REST URL to fetch this resource from.
-posSelfLink :: Lens' Post' (Maybe Text)
-posSelfLink
-  = lens _posSelfLink (\ s a -> s{_posSelfLink = a})
-
--- | The author of this Post.
-posAuthor :: Lens' Post' (Maybe PostAuthor)
-posAuthor
-  = lens _posAuthor (\ s a -> s{_posAuthor = a})
-
--- | The identifier of this Post.
-posId :: Lens' Post' (Maybe Text)
-posId = lens _posId (\ s a -> s{_posId = a})
-
--- | The list of labels this Post was tagged with.
-posLabels :: Lens' Post' [Text]
-posLabels
-  = lens _posLabels (\ s a -> s{_posLabels = a}) .
-      _Default
-      . _Coerce
-
--- | RFC 3339 date-time when this Post was last updated.
-posUpdated :: Lens' Post' (Maybe UTCTime)
-posUpdated
-  = lens _posUpdated (\ s a -> s{_posUpdated = a}) .
-      mapping _DateTime
-
--- | The title link URL, similar to atom\'s related link.
-posTitleLink :: Lens' Post' (Maybe Text)
-posTitleLink
-  = lens _posTitleLink (\ s a -> s{_posTitleLink = a})
-
--- | The title of the Post.
-posTitle :: Lens' Post' (Maybe Text)
-posTitle = lens _posTitle (\ s a -> s{_posTitle = a})
-
-instance FromJSON Post' where
-        parseJSON
-          = withObject "Post"
-              (\ o ->
-                 Post'' <$>
-                   (o .:? "images" .!= mempty) <*> (o .:? "status") <*>
-                     (o .:? "etag")
-                     <*> (o .:? "readerComments")
-                     <*> (o .:? "location")
-                     <*> (o .:? "kind" .!= "blogger#post")
-                     <*> (o .:? "published")
-                     <*> (o .:? "url")
-                     <*> (o .:? "blog")
-                     <*> (o .:? "customMetaData")
-                     <*> (o .:? "content")
-                     <*> (o .:? "replies")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "author")
-                     <*> (o .:? "id")
-                     <*> (o .:? "labels" .!= mempty)
-                     <*> (o .:? "updated")
-                     <*> (o .:? "titleLink")
-                     <*> (o .:? "title"))
-
-instance ToJSON Post' where
-        toJSON Post''{..}
-          = object
-              (catMaybes
-                 [("images" .=) <$> _posImages,
-                  ("status" .=) <$> _posStatus,
-                  ("etag" .=) <$> _posEtag,
-                  ("readerComments" .=) <$> _posReaderComments,
-                  ("location" .=) <$> _posLocation,
-                  Just ("kind" .= _posKind),
-                  ("published" .=) <$> _posPublished,
-                  ("url" .=) <$> _posURL, ("blog" .=) <$> _posBlog,
-                  ("customMetaData" .=) <$> _posCustomMetaData,
-                  ("content" .=) <$> _posContent,
-                  ("replies" .=) <$> _posReplies,
-                  ("selfLink" .=) <$> _posSelfLink,
-                  ("author" .=) <$> _posAuthor, ("id" .=) <$> _posId,
-                  ("labels" .=) <$> _posLabels,
-                  ("updated" .=) <$> _posUpdated,
-                  ("titleLink" .=) <$> _posTitleLink,
-                  ("title" .=) <$> _posTitle])
-
---
--- /See:/ 'page' smart constructor.
-data Page =
-  Page'
-    { _pagStatus    :: !(Maybe Text)
-    , _pagEtag      :: !(Maybe Text)
-    , _pagKind      :: !Text
-    , _pagPublished :: !(Maybe DateTime')
-    , _pagURL       :: !(Maybe Text)
-    , _pagBlog      :: !(Maybe PageBlog)
-    , _pagContent   :: !(Maybe Text)
-    , _pagSelfLink  :: !(Maybe Text)
-    , _pagAuthor    :: !(Maybe PageAuthor)
-    , _pagId        :: !(Maybe Text)
-    , _pagUpdated   :: !(Maybe DateTime')
-    , _pagTitle     :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Page' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pagStatus'
---
--- * 'pagEtag'
---
--- * 'pagKind'
---
--- * 'pagPublished'
---
--- * 'pagURL'
---
--- * 'pagBlog'
---
--- * 'pagContent'
---
--- * 'pagSelfLink'
---
--- * 'pagAuthor'
---
--- * 'pagId'
---
--- * 'pagUpdated'
---
--- * 'pagTitle'
-page
-    :: Page
-page =
-  Page'
-    { _pagStatus = Nothing
-    , _pagEtag = Nothing
-    , _pagKind = "blogger#page"
-    , _pagPublished = Nothing
-    , _pagURL = Nothing
-    , _pagBlog = Nothing
-    , _pagContent = Nothing
-    , _pagSelfLink = Nothing
-    , _pagAuthor = Nothing
-    , _pagId = Nothing
-    , _pagUpdated = Nothing
-    , _pagTitle = Nothing
-    }
-
-
--- | The status of the page for admin resources (either LIVE or DRAFT).
-pagStatus :: Lens' Page (Maybe Text)
-pagStatus
-  = lens _pagStatus (\ s a -> s{_pagStatus = a})
-
--- | Etag of the resource.
-pagEtag :: Lens' Page (Maybe Text)
-pagEtag = lens _pagEtag (\ s a -> s{_pagEtag = a})
-
--- | The kind of this entity. Always blogger#page
-pagKind :: Lens' Page Text
-pagKind = lens _pagKind (\ s a -> s{_pagKind = a})
-
--- | RFC 3339 date-time when this Page was published.
-pagPublished :: Lens' Page (Maybe UTCTime)
-pagPublished
-  = lens _pagPublished (\ s a -> s{_pagPublished = a})
-      . mapping _DateTime
-
--- | The URL that this Page is displayed at.
-pagURL :: Lens' Page (Maybe Text)
-pagURL = lens _pagURL (\ s a -> s{_pagURL = a})
-
--- | Data about the blog containing this Page.
-pagBlog :: Lens' Page (Maybe PageBlog)
-pagBlog = lens _pagBlog (\ s a -> s{_pagBlog = a})
-
--- | The body content of this Page, in HTML.
-pagContent :: Lens' Page (Maybe Text)
-pagContent
-  = lens _pagContent (\ s a -> s{_pagContent = a})
-
--- | The API REST URL to fetch this resource from.
-pagSelfLink :: Lens' Page (Maybe Text)
-pagSelfLink
-  = lens _pagSelfLink (\ s a -> s{_pagSelfLink = a})
-
--- | The author of this Page.
-pagAuthor :: Lens' Page (Maybe PageAuthor)
-pagAuthor
-  = lens _pagAuthor (\ s a -> s{_pagAuthor = a})
-
--- | The identifier for this resource.
-pagId :: Lens' Page (Maybe Text)
-pagId = lens _pagId (\ s a -> s{_pagId = a})
-
--- | RFC 3339 date-time when this Page was last updated.
-pagUpdated :: Lens' Page (Maybe UTCTime)
-pagUpdated
-  = lens _pagUpdated (\ s a -> s{_pagUpdated = a}) .
-      mapping _DateTime
-
--- | The title of this entity. This is the name displayed in the Admin user
--- interface.
-pagTitle :: Lens' Page (Maybe Text)
-pagTitle = lens _pagTitle (\ s a -> s{_pagTitle = a})
-
-instance FromJSON Page where
-        parseJSON
-          = withObject "Page"
-              (\ o ->
-                 Page' <$>
-                   (o .:? "status") <*> (o .:? "etag") <*>
-                     (o .:? "kind" .!= "blogger#page")
-                     <*> (o .:? "published")
-                     <*> (o .:? "url")
-                     <*> (o .:? "blog")
-                     <*> (o .:? "content")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "author")
-                     <*> (o .:? "id")
-                     <*> (o .:? "updated")
-                     <*> (o .:? "title"))
-
-instance ToJSON Page where
-        toJSON Page'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _pagStatus,
-                  ("etag" .=) <$> _pagEtag, Just ("kind" .= _pagKind),
-                  ("published" .=) <$> _pagPublished,
-                  ("url" .=) <$> _pagURL, ("blog" .=) <$> _pagBlog,
-                  ("content" .=) <$> _pagContent,
-                  ("selfLink" .=) <$> _pagSelfLink,
-                  ("author" .=) <$> _pagAuthor, ("id" .=) <$> _pagId,
-                  ("updated" .=) <$> _pagUpdated,
-                  ("title" .=) <$> _pagTitle])
-
--- | The locale this Blog is set to.
---
--- /See:/ 'blogLocale' smart constructor.
-data BlogLocale =
-  BlogLocale'
-    { _blVariant  :: !(Maybe Text)
-    , _blCountry  :: !(Maybe Text)
-    , _blLanguage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BlogLocale' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'blVariant'
---
--- * 'blCountry'
---
--- * 'blLanguage'
-blogLocale
-    :: BlogLocale
-blogLocale =
-  BlogLocale'
-    {_blVariant = Nothing, _blCountry = Nothing, _blLanguage = Nothing}
-
-
--- | The language variant this blog is authored in.
-blVariant :: Lens' BlogLocale (Maybe Text)
-blVariant
-  = lens _blVariant (\ s a -> s{_blVariant = a})
-
--- | The country this blog\'s locale is set to.
-blCountry :: Lens' BlogLocale (Maybe Text)
-blCountry
-  = lens _blCountry (\ s a -> s{_blCountry = a})
-
--- | The language this blog is authored in.
-blLanguage :: Lens' BlogLocale (Maybe Text)
-blLanguage
-  = lens _blLanguage (\ s a -> s{_blLanguage = a})
-
-instance FromJSON BlogLocale where
-        parseJSON
-          = withObject "BlogLocale"
-              (\ o ->
-                 BlogLocale' <$>
-                   (o .:? "variant") <*> (o .:? "country") <*>
-                     (o .:? "language"))
-
-instance ToJSON BlogLocale where
-        toJSON BlogLocale'{..}
-          = object
-              (catMaybes
-                 [("variant" .=) <$> _blVariant,
-                  ("country" .=) <$> _blCountry,
-                  ("language" .=) <$> _blLanguage])
-
--- | The author of this Page.
---
--- /See:/ 'pageAuthor' smart constructor.
-data PageAuthor =
-  PageAuthor'
-    { _paImage       :: !(Maybe PageAuthorImage)
-    , _paURL         :: !(Maybe Text)
-    , _paDisplayName :: !(Maybe Text)
-    , _paId          :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PageAuthor' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'paImage'
---
--- * 'paURL'
---
--- * 'paDisplayName'
---
--- * 'paId'
-pageAuthor
-    :: PageAuthor
-pageAuthor =
-  PageAuthor'
-    { _paImage = Nothing
-    , _paURL = Nothing
-    , _paDisplayName = Nothing
-    , _paId = Nothing
-    }
-
-
--- | The page author\'s avatar.
-paImage :: Lens' PageAuthor (Maybe PageAuthorImage)
-paImage = lens _paImage (\ s a -> s{_paImage = a})
-
--- | The URL of the Page creator\'s Profile page.
-paURL :: Lens' PageAuthor (Maybe Text)
-paURL = lens _paURL (\ s a -> s{_paURL = a})
-
--- | The display name.
-paDisplayName :: Lens' PageAuthor (Maybe Text)
-paDisplayName
-  = lens _paDisplayName
-      (\ s a -> s{_paDisplayName = a})
-
--- | The identifier of the Page creator.
-paId :: Lens' PageAuthor (Maybe Text)
-paId = lens _paId (\ s a -> s{_paId = a})
-
-instance FromJSON PageAuthor where
-        parseJSON
-          = withObject "PageAuthor"
-              (\ o ->
-                 PageAuthor' <$>
-                   (o .:? "image") <*> (o .:? "url") <*>
-                     (o .:? "displayName")
-                     <*> (o .:? "id"))
-
-instance ToJSON PageAuthor where
-        toJSON PageAuthor'{..}
-          = object
-              (catMaybes
-                 [("image" .=) <$> _paImage, ("url" .=) <$> _paURL,
-                  ("displayName" .=) <$> _paDisplayName,
-                  ("id" .=) <$> _paId])
-
---
--- /See:/ 'blog' smart constructor.
-data Blog =
-  Blog'
-    { _bStatus         :: !(Maybe Text)
-    , _bKind           :: !Text
-    , _bPages          :: !(Maybe BlogPages)
-    , _bLocale         :: !(Maybe BlogLocale)
-    , _bPublished      :: !(Maybe DateTime')
-    , _bURL            :: !(Maybe Text)
-    , _bCustomMetaData :: !(Maybe Text)
-    , _bSelfLink       :: !(Maybe Text)
-    , _bName           :: !(Maybe Text)
-    , _bId             :: !(Maybe Text)
-    , _bUpdated        :: !(Maybe DateTime')
-    , _bPosts          :: !(Maybe BlogPosts)
-    , _bDescription    :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Blog' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bStatus'
---
--- * 'bKind'
---
--- * 'bPages'
---
--- * 'bLocale'
---
--- * 'bPublished'
---
--- * 'bURL'
---
--- * 'bCustomMetaData'
---
--- * 'bSelfLink'
---
--- * 'bName'
---
--- * 'bId'
---
--- * 'bUpdated'
---
--- * 'bPosts'
---
--- * 'bDescription'
-blog
-    :: Blog
-blog =
-  Blog'
-    { _bStatus = Nothing
-    , _bKind = "blogger#blog"
-    , _bPages = Nothing
-    , _bLocale = Nothing
-    , _bPublished = Nothing
-    , _bURL = Nothing
-    , _bCustomMetaData = Nothing
-    , _bSelfLink = Nothing
-    , _bName = Nothing
-    , _bId = Nothing
-    , _bUpdated = Nothing
-    , _bPosts = Nothing
-    , _bDescription = Nothing
-    }
-
-
--- | The status of the blog.
-bStatus :: Lens' Blog (Maybe Text)
-bStatus = lens _bStatus (\ s a -> s{_bStatus = a})
-
--- | The kind of this entry. Always blogger#blog
-bKind :: Lens' Blog Text
-bKind = lens _bKind (\ s a -> s{_bKind = a})
-
--- | The container of pages in this blog.
-bPages :: Lens' Blog (Maybe BlogPages)
-bPages = lens _bPages (\ s a -> s{_bPages = a})
-
--- | The locale this Blog is set to.
-bLocale :: Lens' Blog (Maybe BlogLocale)
-bLocale = lens _bLocale (\ s a -> s{_bLocale = a})
-
--- | RFC 3339 date-time when this blog was published.
-bPublished :: Lens' Blog (Maybe UTCTime)
-bPublished
-  = lens _bPublished (\ s a -> s{_bPublished = a}) .
-      mapping _DateTime
-
--- | The URL where this blog is published.
-bURL :: Lens' Blog (Maybe Text)
-bURL = lens _bURL (\ s a -> s{_bURL = a})
-
--- | The JSON custom meta-data for the Blog
-bCustomMetaData :: Lens' Blog (Maybe Text)
-bCustomMetaData
-  = lens _bCustomMetaData
-      (\ s a -> s{_bCustomMetaData = a})
-
--- | The API REST URL to fetch this resource from.
-bSelfLink :: Lens' Blog (Maybe Text)
-bSelfLink
-  = lens _bSelfLink (\ s a -> s{_bSelfLink = a})
-
--- | The name of this blog. This is displayed as the title.
-bName :: Lens' Blog (Maybe Text)
-bName = lens _bName (\ s a -> s{_bName = a})
-
--- | The identifier for this resource.
-bId :: Lens' Blog (Maybe Text)
-bId = lens _bId (\ s a -> s{_bId = a})
-
--- | RFC 3339 date-time when this blog was last updated.
-bUpdated :: Lens' Blog (Maybe UTCTime)
-bUpdated
-  = lens _bUpdated (\ s a -> s{_bUpdated = a}) .
-      mapping _DateTime
-
--- | The container of posts in this blog.
-bPosts :: Lens' Blog (Maybe BlogPosts)
-bPosts = lens _bPosts (\ s a -> s{_bPosts = a})
-
--- | The description of this blog. This is displayed underneath the title.
-bDescription :: Lens' Blog (Maybe Text)
-bDescription
-  = lens _bDescription (\ s a -> s{_bDescription = a})
-
-instance FromJSON Blog where
-        parseJSON
-          = withObject "Blog"
-              (\ o ->
-                 Blog' <$>
-                   (o .:? "status") <*>
-                     (o .:? "kind" .!= "blogger#blog")
-                     <*> (o .:? "pages")
-                     <*> (o .:? "locale")
-                     <*> (o .:? "published")
-                     <*> (o .:? "url")
-                     <*> (o .:? "customMetaData")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id")
-                     <*> (o .:? "updated")
-                     <*> (o .:? "posts")
-                     <*> (o .:? "description"))
-
-instance ToJSON Blog where
-        toJSON Blog'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _bStatus, Just ("kind" .= _bKind),
-                  ("pages" .=) <$> _bPages, ("locale" .=) <$> _bLocale,
-                  ("published" .=) <$> _bPublished,
-                  ("url" .=) <$> _bURL,
-                  ("customMetaData" .=) <$> _bCustomMetaData,
-                  ("selfLink" .=) <$> _bSelfLink,
-                  ("name" .=) <$> _bName, ("id" .=) <$> _bId,
-                  ("updated" .=) <$> _bUpdated,
-                  ("posts" .=) <$> _bPosts,
-                  ("description" .=) <$> _bDescription])
-
--- | The container of pages in this blog.
---
--- /See:/ 'blogPages' smart constructor.
-data BlogPages =
-  BlogPages'
-    { _bpsTotalItems :: !(Maybe (Textual Int32))
-    , _bpsSelfLink   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BlogPages' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bpsTotalItems'
---
--- * 'bpsSelfLink'
-blogPages
-    :: BlogPages
-blogPages = BlogPages' {_bpsTotalItems = Nothing, _bpsSelfLink = Nothing}
-
-
--- | The count of pages in this blog.
-bpsTotalItems :: Lens' BlogPages (Maybe Int32)
-bpsTotalItems
-  = lens _bpsTotalItems
-      (\ s a -> s{_bpsTotalItems = a})
-      . mapping _Coerce
-
--- | The URL of the container for pages in this blog.
-bpsSelfLink :: Lens' BlogPages (Maybe Text)
-bpsSelfLink
-  = lens _bpsSelfLink (\ s a -> s{_bpsSelfLink = a})
-
-instance FromJSON BlogPages where
-        parseJSON
-          = withObject "BlogPages"
-              (\ o ->
-                 BlogPages' <$>
-                   (o .:? "totalItems") <*> (o .:? "selfLink"))
-
-instance ToJSON BlogPages where
-        toJSON BlogPages'{..}
-          = object
-              (catMaybes
-                 [("totalItems" .=) <$> _bpsTotalItems,
-                  ("selfLink" .=) <$> _bpsSelfLink])
-
--- | Data about the blog containing this Post.
---
--- /See:/ 'postBlog' smart constructor.
-newtype PostBlog =
-  PostBlog'
-    { _pbId :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostBlog' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pbId'
-postBlog
-    :: PostBlog
-postBlog = PostBlog' {_pbId = Nothing}
-
-
--- | The identifier of the Blog that contains this Post.
-pbId :: Lens' PostBlog (Maybe Text)
-pbId = lens _pbId (\ s a -> s{_pbId = a})
-
-instance FromJSON PostBlog where
-        parseJSON
-          = withObject "PostBlog"
-              (\ o -> PostBlog' <$> (o .:? "id"))
-
-instance ToJSON PostBlog where
-        toJSON PostBlog'{..}
-          = object (catMaybes [("id" .=) <$> _pbId])
-
---
--- /See:/ 'pageList' smart constructor.
-data PageList =
-  PageList'
-    { _pllEtag          :: !(Maybe Text)
-    , _pllNextPageToken :: !(Maybe Text)
-    , _pllKind          :: !Text
-    , _pllItems         :: !(Maybe [Page])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PageList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pllEtag'
---
--- * 'pllNextPageToken'
---
--- * 'pllKind'
---
--- * 'pllItems'
-pageList
-    :: PageList
-pageList =
-  PageList'
-    { _pllEtag = Nothing
-    , _pllNextPageToken = Nothing
-    , _pllKind = "blogger#pageList"
-    , _pllItems = Nothing
-    }
-
-
--- | Etag of the response.
-pllEtag :: Lens' PageList (Maybe Text)
-pllEtag = lens _pllEtag (\ s a -> s{_pllEtag = a})
-
--- | Pagination token to fetch the next page, if one exists.
-pllNextPageToken :: Lens' PageList (Maybe Text)
-pllNextPageToken
-  = lens _pllNextPageToken
-      (\ s a -> s{_pllNextPageToken = a})
-
--- | The kind of this entity. Always blogger#pageList
-pllKind :: Lens' PageList Text
-pllKind = lens _pllKind (\ s a -> s{_pllKind = a})
-
--- | The list of Pages for a Blog.
-pllItems :: Lens' PageList [Page]
-pllItems
-  = lens _pllItems (\ s a -> s{_pllItems = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON PageList where
-        parseJSON
-          = withObject "PageList"
-              (\ o ->
-                 PageList' <$>
-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "blogger#pageList")
-                     <*> (o .:? "items" .!= mempty))
-
-instance ToJSON PageList where
-        toJSON PageList'{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _pllEtag,
-                  ("nextPageToken" .=) <$> _pllNextPageToken,
-                  Just ("kind" .= _pllKind),
-                  ("items" .=) <$> _pllItems])
-
--- | This user\'s locale
---
--- /See:/ 'userLocale' smart constructor.
-data UserLocale =
-  UserLocale'
-    { _ulVariant  :: !(Maybe Text)
-    , _ulCountry  :: !(Maybe Text)
-    , _ulLanguage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UserLocale' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ulVariant'
---
--- * 'ulCountry'
---
--- * 'ulLanguage'
-userLocale
-    :: UserLocale
-userLocale =
-  UserLocale'
-    {_ulVariant = Nothing, _ulCountry = Nothing, _ulLanguage = Nothing}
-
-
--- | The user\'s language variant setting.
-ulVariant :: Lens' UserLocale (Maybe Text)
-ulVariant
-  = lens _ulVariant (\ s a -> s{_ulVariant = a})
-
--- | The user\'s country setting.
-ulCountry :: Lens' UserLocale (Maybe Text)
-ulCountry
-  = lens _ulCountry (\ s a -> s{_ulCountry = a})
-
--- | The user\'s language setting.
-ulLanguage :: Lens' UserLocale (Maybe Text)
-ulLanguage
-  = lens _ulLanguage (\ s a -> s{_ulLanguage = a})
-
-instance FromJSON UserLocale where
-        parseJSON
-          = withObject "UserLocale"
-              (\ o ->
-                 UserLocale' <$>
-                   (o .:? "variant") <*> (o .:? "country") <*>
-                     (o .:? "language"))
-
-instance ToJSON UserLocale where
-        toJSON UserLocale'{..}
-          = object
-              (catMaybes
-                 [("variant" .=) <$> _ulVariant,
-                  ("country" .=) <$> _ulCountry,
-                  ("language" .=) <$> _ulLanguage])
-
--- | The comment creator\'s avatar.
---
--- /See:/ 'commentAuthorImage' smart constructor.
-newtype CommentAuthorImage =
-  CommentAuthorImage'
-    { _caiURL :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommentAuthorImage' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'caiURL'
-commentAuthorImage
-    :: CommentAuthorImage
-commentAuthorImage = CommentAuthorImage' {_caiURL = Nothing}
-
-
--- | The comment creator\'s avatar URL.
-caiURL :: Lens' CommentAuthorImage (Maybe Text)
-caiURL = lens _caiURL (\ s a -> s{_caiURL = a})
-
-instance FromJSON CommentAuthorImage where
-        parseJSON
-          = withObject "CommentAuthorImage"
-              (\ o -> CommentAuthorImage' <$> (o .:? "url"))
-
-instance ToJSON CommentAuthorImage where
-        toJSON CommentAuthorImage'{..}
-          = object (catMaybes [("url" .=) <$> _caiURL])
-
---
--- /See:/ 'user' smart constructor.
-data User =
-  User'
-    { _uBlogs       :: !(Maybe UserBlogs)
-    , _uKind        :: !Text
-    , _uCreated     :: !(Maybe DateTime')
-    , _uLocale      :: !(Maybe UserLocale)
-    , _uURL         :: !(Maybe Text)
-    , _uSelfLink    :: !(Maybe Text)
-    , _uAbout       :: !(Maybe Text)
-    , _uDisplayName :: !(Maybe Text)
-    , _uId          :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'User' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uBlogs'
---
--- * 'uKind'
---
--- * 'uCreated'
---
--- * 'uLocale'
---
--- * 'uURL'
---
--- * 'uSelfLink'
---
--- * 'uAbout'
---
--- * 'uDisplayName'
---
--- * 'uId'
-user
-    :: User
-user =
-  User'
-    { _uBlogs = Nothing
-    , _uKind = "blogger#user"
-    , _uCreated = Nothing
-    , _uLocale = Nothing
-    , _uURL = Nothing
-    , _uSelfLink = Nothing
-    , _uAbout = Nothing
-    , _uDisplayName = Nothing
-    , _uId = Nothing
-    }
-
-
--- | The container of blogs for this user.
-uBlogs :: Lens' User (Maybe UserBlogs)
-uBlogs = lens _uBlogs (\ s a -> s{_uBlogs = a})
-
--- | The kind of this entity. Always blogger#user
-uKind :: Lens' User Text
-uKind = lens _uKind (\ s a -> s{_uKind = a})
-
--- | The timestamp of when this profile was created, in seconds since epoch.
-uCreated :: Lens' User (Maybe UTCTime)
-uCreated
-  = lens _uCreated (\ s a -> s{_uCreated = a}) .
-      mapping _DateTime
-
--- | This user\'s locale
-uLocale :: Lens' User (Maybe UserLocale)
-uLocale = lens _uLocale (\ s a -> s{_uLocale = a})
-
--- | The user\'s profile page.
-uURL :: Lens' User (Maybe Text)
-uURL = lens _uURL (\ s a -> s{_uURL = a})
-
--- | The API REST URL to fetch this resource from.
-uSelfLink :: Lens' User (Maybe Text)
-uSelfLink
-  = lens _uSelfLink (\ s a -> s{_uSelfLink = a})
-
--- | Profile summary information.
-uAbout :: Lens' User (Maybe Text)
-uAbout = lens _uAbout (\ s a -> s{_uAbout = a})
-
--- | The display name.
-uDisplayName :: Lens' User (Maybe Text)
-uDisplayName
-  = lens _uDisplayName (\ s a -> s{_uDisplayName = a})
-
--- | The identifier for this User.
-uId :: Lens' User (Maybe Text)
-uId = lens _uId (\ s a -> s{_uId = a})
-
-instance FromJSON User where
-        parseJSON
-          = withObject "User"
-              (\ o ->
-                 User' <$>
-                   (o .:? "blogs") <*> (o .:? "kind" .!= "blogger#user")
-                     <*> (o .:? "created")
-                     <*> (o .:? "locale")
-                     <*> (o .:? "url")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "about")
-                     <*> (o .:? "displayName")
-                     <*> (o .:? "id"))
-
-instance ToJSON User where
-        toJSON User'{..}
-          = object
-              (catMaybes
-                 [("blogs" .=) <$> _uBlogs, Just ("kind" .= _uKind),
-                  ("created" .=) <$> _uCreated,
-                  ("locale" .=) <$> _uLocale, ("url" .=) <$> _uURL,
-                  ("selfLink" .=) <$> _uSelfLink,
-                  ("about" .=) <$> _uAbout,
-                  ("displayName" .=) <$> _uDisplayName,
-                  ("id" .=) <$> _uId])
-
--- | The container of blogs for this user.
---
--- /See:/ 'userBlogs' smart constructor.
-newtype UserBlogs =
-  UserBlogs'
-    { _ubSelfLink :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UserBlogs' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ubSelfLink'
-userBlogs
-    :: UserBlogs
-userBlogs = UserBlogs' {_ubSelfLink = Nothing}
-
-
--- | The URL of the Blogs for this user.
-ubSelfLink :: Lens' UserBlogs (Maybe Text)
-ubSelfLink
-  = lens _ubSelfLink (\ s a -> s{_ubSelfLink = a})
-
-instance FromJSON UserBlogs where
-        parseJSON
-          = withObject "UserBlogs"
-              (\ o -> UserBlogs' <$> (o .:? "selfLink"))
-
-instance ToJSON UserBlogs where
-        toJSON UserBlogs'{..}
-          = object
-              (catMaybes [("selfLink" .=) <$> _ubSelfLink])
-
--- | The container of comments on this Post.
---
--- /See:/ 'postReplies' smart constructor.
-data PostReplies =
-  PostReplies'
-    { _prTotalItems :: !(Maybe (Textual Int64))
-    , _prItems      :: !(Maybe [Comment])
-    , _prSelfLink   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostReplies' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'prTotalItems'
---
--- * 'prItems'
---
--- * 'prSelfLink'
-postReplies
-    :: PostReplies
-postReplies =
-  PostReplies'
-    {_prTotalItems = Nothing, _prItems = Nothing, _prSelfLink = Nothing}
-
-
--- | The count of comments on this post.
-prTotalItems :: Lens' PostReplies (Maybe Int64)
-prTotalItems
-  = lens _prTotalItems (\ s a -> s{_prTotalItems = a})
-      . mapping _Coerce
-
--- | The List of Comments for this Post.
-prItems :: Lens' PostReplies [Comment]
-prItems
-  = lens _prItems (\ s a -> s{_prItems = a}) . _Default
-      . _Coerce
-
--- | The URL of the comments on this post.
-prSelfLink :: Lens' PostReplies (Maybe Text)
-prSelfLink
-  = lens _prSelfLink (\ s a -> s{_prSelfLink = a})
-
-instance FromJSON PostReplies where
-        parseJSON
-          = withObject "PostReplies"
-              (\ o ->
-                 PostReplies' <$>
-                   (o .:? "totalItems") <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink"))
-
-instance ToJSON PostReplies where
-        toJSON PostReplies'{..}
-          = object
-              (catMaybes
-                 [("totalItems" .=) <$> _prTotalItems,
-                  ("items" .=) <$> _prItems,
-                  ("selfLink" .=) <$> _prSelfLink])
-
---
--- /See:/ 'blogList' smart constructor.
-data BlogList =
-  BlogList'
-    { _blKind          :: !Text
-    , _blItems         :: !(Maybe [Blog])
-    , _blBlogUserInfos :: !(Maybe [BlogUserInfo])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BlogList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'blKind'
---
--- * 'blItems'
---
--- * 'blBlogUserInfos'
-blogList
-    :: BlogList
-blogList =
-  BlogList'
-    { _blKind = "blogger#blogList"
-    , _blItems = Nothing
-    , _blBlogUserInfos = Nothing
-    }
-
-
--- | The kind of this entity. Always blogger#blogList
-blKind :: Lens' BlogList Text
-blKind = lens _blKind (\ s a -> s{_blKind = a})
-
--- | The list of Blogs this user has Authorship or Admin rights over.
-blItems :: Lens' BlogList [Blog]
-blItems
-  = lens _blItems (\ s a -> s{_blItems = a}) . _Default
-      . _Coerce
-
--- | Admin level list of blog per-user information
-blBlogUserInfos :: Lens' BlogList [BlogUserInfo]
-blBlogUserInfos
-  = lens _blBlogUserInfos
-      (\ s a -> s{_blBlogUserInfos = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON BlogList where
-        parseJSON
-          = withObject "BlogList"
-              (\ o ->
-                 BlogList' <$>
-                   (o .:? "kind" .!= "blogger#blogList") <*>
-                     (o .:? "items" .!= mempty)
-                     <*> (o .:? "blogUserInfos" .!= mempty))
-
-instance ToJSON BlogList where
-        toJSON BlogList'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _blKind), ("items" .=) <$> _blItems,
-                  ("blogUserInfos" .=) <$> _blBlogUserInfos])
-
--- | Data about the blog containing this Page.
---
--- /See:/ 'pageBlog' smart constructor.
-newtype PageBlog =
-  PageBlog'
-    { _pId :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PageBlog' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pId'
-pageBlog
-    :: PageBlog
-pageBlog = PageBlog' {_pId = Nothing}
-
-
--- | The identifier of the blog containing this page.
-pId :: Lens' PageBlog (Maybe Text)
-pId = lens _pId (\ s a -> s{_pId = a})
-
-instance FromJSON PageBlog where
-        parseJSON
-          = withObject "PageBlog"
-              (\ o -> PageBlog' <$> (o .:? "id"))
-
-instance ToJSON PageBlog where
-        toJSON PageBlog'{..}
-          = object (catMaybes [("id" .=) <$> _pId])
-
--- | The author of this Post.
---
--- /See:/ 'postAuthor' smart constructor.
-data PostAuthor =
-  PostAuthor'
-    { _paaImage       :: !(Maybe PostAuthorImage)
-    , _paaURL         :: !(Maybe Text)
-    , _paaDisplayName :: !(Maybe Text)
-    , _paaId          :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostAuthor' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'paaImage'
---
--- * 'paaURL'
---
--- * 'paaDisplayName'
---
--- * 'paaId'
-postAuthor
-    :: PostAuthor
-postAuthor =
-  PostAuthor'
-    { _paaImage = Nothing
-    , _paaURL = Nothing
-    , _paaDisplayName = Nothing
-    , _paaId = Nothing
-    }
-
-
--- | The Post author\'s avatar.
-paaImage :: Lens' PostAuthor (Maybe PostAuthorImage)
-paaImage = lens _paaImage (\ s a -> s{_paaImage = a})
-
--- | The URL of the Post creator\'s Profile page.
-paaURL :: Lens' PostAuthor (Maybe Text)
-paaURL = lens _paaURL (\ s a -> s{_paaURL = a})
-
--- | The display name.
-paaDisplayName :: Lens' PostAuthor (Maybe Text)
-paaDisplayName
-  = lens _paaDisplayName
-      (\ s a -> s{_paaDisplayName = a})
-
--- | The identifier of the Post creator.
-paaId :: Lens' PostAuthor (Maybe Text)
-paaId = lens _paaId (\ s a -> s{_paaId = a})
-
-instance FromJSON PostAuthor where
-        parseJSON
-          = withObject "PostAuthor"
-              (\ o ->
-                 PostAuthor' <$>
-                   (o .:? "image") <*> (o .:? "url") <*>
-                     (o .:? "displayName")
-                     <*> (o .:? "id"))
-
-instance ToJSON PostAuthor where
-        toJSON PostAuthor'{..}
-          = object
-              (catMaybes
-                 [("image" .=) <$> _paaImage, ("url" .=) <$> _paaURL,
-                  ("displayName" .=) <$> _paaDisplayName,
-                  ("id" .=) <$> _paaId])
-
---
--- /See:/ 'postPerUserInfo' smart constructor.
-data PostPerUserInfo =
-  PostPerUserInfo'
-    { _ppuiKind          :: !Text
-    , _ppuiBlogId        :: !(Maybe Text)
-    , _ppuiUserId        :: !(Maybe Text)
-    , _ppuiHasEditAccess :: !(Maybe Bool)
-    , _ppuiPostId        :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostPerUserInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ppuiKind'
---
--- * 'ppuiBlogId'
---
--- * 'ppuiUserId'
---
--- * 'ppuiHasEditAccess'
---
--- * 'ppuiPostId'
-postPerUserInfo
-    :: PostPerUserInfo
-postPerUserInfo =
-  PostPerUserInfo'
-    { _ppuiKind = "blogger#postPerUserInfo"
-    , _ppuiBlogId = Nothing
-    , _ppuiUserId = Nothing
-    , _ppuiHasEditAccess = Nothing
-    , _ppuiPostId = Nothing
-    }
-
-
--- | The kind of this entity. Always blogger#postPerUserInfo
-ppuiKind :: Lens' PostPerUserInfo Text
-ppuiKind = lens _ppuiKind (\ s a -> s{_ppuiKind = a})
-
--- | ID of the Blog that the post resource belongs to.
-ppuiBlogId :: Lens' PostPerUserInfo (Maybe Text)
-ppuiBlogId
-  = lens _ppuiBlogId (\ s a -> s{_ppuiBlogId = a})
-
--- | ID of the User.
-ppuiUserId :: Lens' PostPerUserInfo (Maybe Text)
-ppuiUserId
-  = lens _ppuiUserId (\ s a -> s{_ppuiUserId = a})
-
--- | True if the user has Author level access to the post.
-ppuiHasEditAccess :: Lens' PostPerUserInfo (Maybe Bool)
-ppuiHasEditAccess
-  = lens _ppuiHasEditAccess
-      (\ s a -> s{_ppuiHasEditAccess = a})
-
--- | ID of the Post resource.
-ppuiPostId :: Lens' PostPerUserInfo (Maybe Text)
-ppuiPostId
-  = lens _ppuiPostId (\ s a -> s{_ppuiPostId = a})
-
-instance FromJSON PostPerUserInfo where
-        parseJSON
-          = withObject "PostPerUserInfo"
-              (\ o ->
-                 PostPerUserInfo' <$>
-                   (o .:? "kind" .!= "blogger#postPerUserInfo") <*>
-                     (o .:? "blogId")
-                     <*> (o .:? "userId")
-                     <*> (o .:? "hasEditAccess")
-                     <*> (o .:? "postId"))
-
-instance ToJSON PostPerUserInfo where
-        toJSON PostPerUserInfo'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _ppuiKind),
-                  ("blogId" .=) <$> _ppuiBlogId,
-                  ("userId" .=) <$> _ppuiUserId,
-                  ("hasEditAccess" .=) <$> _ppuiHasEditAccess,
-                  ("postId" .=) <$> _ppuiPostId])
-
---
--- /See:/ 'pageviewsCountsItem' smart constructor.
-data PageviewsCountsItem =
-  PageviewsCountsItem'
-    { _pciTimeRange :: !(Maybe Text)
-    , _pciCount     :: !(Maybe (Textual Int64))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PageviewsCountsItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pciTimeRange'
---
--- * 'pciCount'
-pageviewsCountsItem
-    :: PageviewsCountsItem
-pageviewsCountsItem =
-  PageviewsCountsItem' {_pciTimeRange = Nothing, _pciCount = Nothing}
-
-
--- | Time range the given count applies to
-pciTimeRange :: Lens' PageviewsCountsItem (Maybe Text)
-pciTimeRange
-  = lens _pciTimeRange (\ s a -> s{_pciTimeRange = a})
-
--- | Count of page views for the given time range
-pciCount :: Lens' PageviewsCountsItem (Maybe Int64)
-pciCount
-  = lens _pciCount (\ s a -> s{_pciCount = a}) .
-      mapping _Coerce
-
-instance FromJSON PageviewsCountsItem where
-        parseJSON
-          = withObject "PageviewsCountsItem"
-              (\ o ->
-                 PageviewsCountsItem' <$>
-                   (o .:? "timeRange") <*> (o .:? "count"))
-
-instance ToJSON PageviewsCountsItem where
-        toJSON PageviewsCountsItem'{..}
-          = object
-              (catMaybes
-                 [("timeRange" .=) <$> _pciTimeRange,
-                  ("count" .=) <$> _pciCount])
-
---
--- /See:/ 'comment' smart constructor.
-data Comment =
-  Comment'
-    { _cStatus    :: !(Maybe Text)
-    , _cPost      :: !(Maybe CommentPost)
-    , _cKind      :: !Text
-    , _cPublished :: !(Maybe DateTime')
-    , _cBlog      :: !(Maybe CommentBlog)
-    , _cContent   :: !(Maybe Text)
-    , _cSelfLink  :: !(Maybe Text)
-    , _cAuthor    :: !(Maybe CommentAuthor)
-    , _cId        :: !(Maybe Text)
-    , _cUpdated   :: !(Maybe DateTime')
-    , _cInReplyTo :: !(Maybe CommentInReplyTo)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Comment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cStatus'
---
--- * 'cPost'
---
--- * 'cKind'
---
--- * 'cPublished'
---
--- * 'cBlog'
---
--- * 'cContent'
---
--- * 'cSelfLink'
---
--- * 'cAuthor'
---
--- * 'cId'
---
--- * 'cUpdated'
---
--- * 'cInReplyTo'
-comment
-    :: Comment
-comment =
-  Comment'
-    { _cStatus = Nothing
-    , _cPost = Nothing
-    , _cKind = "blogger#comment"
-    , _cPublished = Nothing
-    , _cBlog = Nothing
-    , _cContent = Nothing
-    , _cSelfLink = Nothing
-    , _cAuthor = Nothing
-    , _cId = Nothing
-    , _cUpdated = Nothing
-    , _cInReplyTo = Nothing
-    }
-
-
--- | The status of the comment (only populated for admin users)
-cStatus :: Lens' Comment (Maybe Text)
-cStatus = lens _cStatus (\ s a -> s{_cStatus = a})
-
--- | Data about the post containing this comment.
-cPost :: Lens' Comment (Maybe CommentPost)
-cPost = lens _cPost (\ s a -> s{_cPost = a})
-
--- | The kind of this entry. Always blogger#comment
-cKind :: Lens' Comment Text
-cKind = lens _cKind (\ s a -> s{_cKind = a})
-
--- | RFC 3339 date-time when this comment was published.
-cPublished :: Lens' Comment (Maybe UTCTime)
-cPublished
-  = lens _cPublished (\ s a -> s{_cPublished = a}) .
-      mapping _DateTime
-
--- | Data about the blog containing this comment.
-cBlog :: Lens' Comment (Maybe CommentBlog)
-cBlog = lens _cBlog (\ s a -> s{_cBlog = a})
-
--- | The actual content of the comment. May include HTML markup.
-cContent :: Lens' Comment (Maybe Text)
-cContent = lens _cContent (\ s a -> s{_cContent = a})
-
--- | The API REST URL to fetch this resource from.
-cSelfLink :: Lens' Comment (Maybe Text)
-cSelfLink
-  = lens _cSelfLink (\ s a -> s{_cSelfLink = a})
-
--- | The author of this Comment.
-cAuthor :: Lens' Comment (Maybe CommentAuthor)
-cAuthor = lens _cAuthor (\ s a -> s{_cAuthor = a})
-
--- | The identifier for this resource.
-cId :: Lens' Comment (Maybe Text)
-cId = lens _cId (\ s a -> s{_cId = a})
-
--- | RFC 3339 date-time when this comment was last updated.
-cUpdated :: Lens' Comment (Maybe UTCTime)
-cUpdated
-  = lens _cUpdated (\ s a -> s{_cUpdated = a}) .
-      mapping _DateTime
-
--- | Data about the comment this is in reply to.
-cInReplyTo :: Lens' Comment (Maybe CommentInReplyTo)
-cInReplyTo
-  = lens _cInReplyTo (\ s a -> s{_cInReplyTo = a})
-
-instance FromJSON Comment where
-        parseJSON
-          = withObject "Comment"
-              (\ o ->
-                 Comment' <$>
-                   (o .:? "status") <*> (o .:? "post") <*>
-                     (o .:? "kind" .!= "blogger#comment")
-                     <*> (o .:? "published")
-                     <*> (o .:? "blog")
-                     <*> (o .:? "content")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "author")
-                     <*> (o .:? "id")
-                     <*> (o .:? "updated")
-                     <*> (o .:? "inReplyTo"))
-
-instance ToJSON Comment where
-        toJSON Comment'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _cStatus, ("post" .=) <$> _cPost,
-                  Just ("kind" .= _cKind),
-                  ("published" .=) <$> _cPublished,
-                  ("blog" .=) <$> _cBlog, ("content" .=) <$> _cContent,
-                  ("selfLink" .=) <$> _cSelfLink,
-                  ("author" .=) <$> _cAuthor, ("id" .=) <$> _cId,
-                  ("updated" .=) <$> _cUpdated,
-                  ("inReplyTo" .=) <$> _cInReplyTo])
-
--- | Data about the post containing this comment.
---
--- /See:/ 'commentPost' smart constructor.
-newtype CommentPost =
-  CommentPost'
-    { _cpId :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommentPost' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cpId'
-commentPost
-    :: CommentPost
-commentPost = CommentPost' {_cpId = Nothing}
-
-
--- | The identifier of the post containing this comment.
-cpId :: Lens' CommentPost (Maybe Text)
-cpId = lens _cpId (\ s a -> s{_cpId = a})
-
-instance FromJSON CommentPost where
-        parseJSON
-          = withObject "CommentPost"
-              (\ o -> CommentPost' <$> (o .:? "id"))
-
-instance ToJSON CommentPost where
-        toJSON CommentPost'{..}
-          = object (catMaybes [("id" .=) <$> _cpId])
-
---
--- /See:/ 'blogPerUserInfo' smart constructor.
-data BlogPerUserInfo =
-  BlogPerUserInfo'
-    { _bpuiPhotosAlbumKey :: !(Maybe Text)
-    , _bpuiKind           :: !Text
-    , _bpuiBlogId         :: !(Maybe Text)
-    , _bpuiUserId         :: !(Maybe Text)
-    , _bpuiRole           :: !(Maybe Text)
-    , _bpuiHasAdminAccess :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BlogPerUserInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bpuiPhotosAlbumKey'
---
--- * 'bpuiKind'
---
--- * 'bpuiBlogId'
---
--- * 'bpuiUserId'
---
--- * 'bpuiRole'
---
--- * 'bpuiHasAdminAccess'
-blogPerUserInfo
-    :: BlogPerUserInfo
-blogPerUserInfo =
-  BlogPerUserInfo'
-    { _bpuiPhotosAlbumKey = Nothing
-    , _bpuiKind = "blogger#blogPerUserInfo"
-    , _bpuiBlogId = Nothing
-    , _bpuiUserId = Nothing
-    , _bpuiRole = Nothing
-    , _bpuiHasAdminAccess = Nothing
-    }
-
-
--- | The Photo Album Key for the user when adding photos to the blog
-bpuiPhotosAlbumKey :: Lens' BlogPerUserInfo (Maybe Text)
-bpuiPhotosAlbumKey
-  = lens _bpuiPhotosAlbumKey
-      (\ s a -> s{_bpuiPhotosAlbumKey = a})
-
--- | The kind of this entity. Always blogger#blogPerUserInfo
-bpuiKind :: Lens' BlogPerUserInfo Text
-bpuiKind = lens _bpuiKind (\ s a -> s{_bpuiKind = a})
-
--- | ID of the Blog resource
-bpuiBlogId :: Lens' BlogPerUserInfo (Maybe Text)
-bpuiBlogId
-  = lens _bpuiBlogId (\ s a -> s{_bpuiBlogId = a})
-
--- | ID of the User
-bpuiUserId :: Lens' BlogPerUserInfo (Maybe Text)
-bpuiUserId
-  = lens _bpuiUserId (\ s a -> s{_bpuiUserId = a})
-
--- | Access permissions that the user has for the blog (ADMIN, AUTHOR, or
--- READER).
-bpuiRole :: Lens' BlogPerUserInfo (Maybe Text)
-bpuiRole = lens _bpuiRole (\ s a -> s{_bpuiRole = a})
-
--- | True if the user has Admin level access to the blog.
-bpuiHasAdminAccess :: Lens' BlogPerUserInfo (Maybe Bool)
-bpuiHasAdminAccess
-  = lens _bpuiHasAdminAccess
-      (\ s a -> s{_bpuiHasAdminAccess = a})
-
-instance FromJSON BlogPerUserInfo where
-        parseJSON
-          = withObject "BlogPerUserInfo"
-              (\ o ->
-                 BlogPerUserInfo' <$>
-                   (o .:? "photosAlbumKey") <*>
-                     (o .:? "kind" .!= "blogger#blogPerUserInfo")
-                     <*> (o .:? "blogId")
-                     <*> (o .:? "userId")
-                     <*> (o .:? "role")
-                     <*> (o .:? "hasAdminAccess"))
-
-instance ToJSON BlogPerUserInfo where
-        toJSON BlogPerUserInfo'{..}
-          = object
-              (catMaybes
-                 [("photosAlbumKey" .=) <$> _bpuiPhotosAlbumKey,
-                  Just ("kind" .= _bpuiKind),
-                  ("blogId" .=) <$> _bpuiBlogId,
-                  ("userId" .=) <$> _bpuiUserId,
-                  ("role" .=) <$> _bpuiRole,
-                  ("hasAdminAccess" .=) <$> _bpuiHasAdminAccess])
-
---
--- /See:/ 'postUserInfosList' smart constructor.
-data PostUserInfosList =
-  PostUserInfosList'
-    { _puilNextPageToken :: !(Maybe Text)
-    , _puilKind          :: !Text
-    , _puilItems         :: !(Maybe [PostUserInfo])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostUserInfosList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'puilNextPageToken'
---
--- * 'puilKind'
---
--- * 'puilItems'
-postUserInfosList
-    :: PostUserInfosList
-postUserInfosList =
-  PostUserInfosList'
-    { _puilNextPageToken = Nothing
-    , _puilKind = "blogger#postUserInfosList"
-    , _puilItems = Nothing
-    }
-
-
--- | Pagination token to fetch the next page, if one exists.
-puilNextPageToken :: Lens' PostUserInfosList (Maybe Text)
-puilNextPageToken
-  = lens _puilNextPageToken
-      (\ s a -> s{_puilNextPageToken = a})
-
--- | The kind of this entity. Always blogger#postList
-puilKind :: Lens' PostUserInfosList Text
-puilKind = lens _puilKind (\ s a -> s{_puilKind = a})
-
--- | The list of Posts with User information for the post, for this Blog.
-puilItems :: Lens' PostUserInfosList [PostUserInfo]
-puilItems
-  = lens _puilItems (\ s a -> s{_puilItems = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON PostUserInfosList where
-        parseJSON
-          = withObject "PostUserInfosList"
-              (\ o ->
-                 PostUserInfosList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "blogger#postUserInfosList")
-                     <*> (o .:? "items" .!= mempty))
-
-instance ToJSON PostUserInfosList where
-        toJSON PostUserInfosList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _puilNextPageToken,
-                  Just ("kind" .= _puilKind),
-                  ("items" .=) <$> _puilItems])
-
--- | The author of this Comment.
---
--- /See:/ 'commentAuthor' smart constructor.
-data CommentAuthor =
-  CommentAuthor'
-    { _caImage       :: !(Maybe CommentAuthorImage)
-    , _caURL         :: !(Maybe Text)
-    , _caDisplayName :: !(Maybe Text)
-    , _caId          :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommentAuthor' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'caImage'
---
--- * 'caURL'
---
--- * 'caDisplayName'
---
--- * 'caId'
-commentAuthor
-    :: CommentAuthor
-commentAuthor =
-  CommentAuthor'
-    { _caImage = Nothing
-    , _caURL = Nothing
-    , _caDisplayName = Nothing
-    , _caId = Nothing
-    }
-
-
--- | The comment creator\'s avatar.
-caImage :: Lens' CommentAuthor (Maybe CommentAuthorImage)
-caImage = lens _caImage (\ s a -> s{_caImage = a})
-
--- | The URL of the Comment creator\'s Profile page.
-caURL :: Lens' CommentAuthor (Maybe Text)
-caURL = lens _caURL (\ s a -> s{_caURL = a})
-
--- | The display name.
-caDisplayName :: Lens' CommentAuthor (Maybe Text)
-caDisplayName
-  = lens _caDisplayName
-      (\ s a -> s{_caDisplayName = a})
-
--- | The identifier of the Comment creator.
-caId :: Lens' CommentAuthor (Maybe Text)
-caId = lens _caId (\ s a -> s{_caId = a})
-
-instance FromJSON CommentAuthor where
-        parseJSON
-          = withObject "CommentAuthor"
-              (\ o ->
-                 CommentAuthor' <$>
-                   (o .:? "image") <*> (o .:? "url") <*>
-                     (o .:? "displayName")
-                     <*> (o .:? "id"))
-
-instance ToJSON CommentAuthor where
-        toJSON CommentAuthor'{..}
-          = object
-              (catMaybes
-                 [("image" .=) <$> _caImage, ("url" .=) <$> _caURL,
-                  ("displayName" .=) <$> _caDisplayName,
-                  ("id" .=) <$> _caId])
-
---
--- /See:/ 'blogUserInfo' smart constructor.
-data BlogUserInfo =
-  BlogUserInfo'
-    { _buiKind         :: !Text
-    , _buiBlog         :: !(Maybe Blog)
-    , _buiBlogUserInfo :: !(Maybe BlogPerUserInfo)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BlogUserInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'buiKind'
---
--- * 'buiBlog'
---
--- * 'buiBlogUserInfo'
-blogUserInfo
-    :: BlogUserInfo
-blogUserInfo =
-  BlogUserInfo'
-    { _buiKind = "blogger#blogUserInfo"
-    , _buiBlog = Nothing
-    , _buiBlogUserInfo = Nothing
-    }
-
-
--- | The kind of this entity. Always blogger#blogUserInfo
-buiKind :: Lens' BlogUserInfo Text
-buiKind = lens _buiKind (\ s a -> s{_buiKind = a})
-
--- | The Blog resource.
-buiBlog :: Lens' BlogUserInfo (Maybe Blog)
-buiBlog = lens _buiBlog (\ s a -> s{_buiBlog = a})
-
--- | Information about a User for the Blog.
-buiBlogUserInfo :: Lens' BlogUserInfo (Maybe BlogPerUserInfo)
-buiBlogUserInfo
-  = lens _buiBlogUserInfo
-      (\ s a -> s{_buiBlogUserInfo = a})
-
-instance FromJSON BlogUserInfo where
-        parseJSON
-          = withObject "BlogUserInfo"
-              (\ o ->
-                 BlogUserInfo' <$>
-                   (o .:? "kind" .!= "blogger#blogUserInfo") <*>
-                     (o .:? "blog")
-                     <*> (o .:? "blog_user_info"))
-
-instance ToJSON BlogUserInfo where
-        toJSON BlogUserInfo'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _buiKind), ("blog" .=) <$> _buiBlog,
-                  ("blog_user_info" .=) <$> _buiBlogUserInfo])
-
--- | The page author\'s avatar.
---
--- /See:/ 'pageAuthorImage' smart constructor.
-newtype PageAuthorImage =
-  PageAuthorImage'
-    { _pURL :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PageAuthorImage' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pURL'
-pageAuthorImage
-    :: PageAuthorImage
-pageAuthorImage = PageAuthorImage' {_pURL = Nothing}
-
-
--- | The page author\'s avatar URL.
-pURL :: Lens' PageAuthorImage (Maybe Text)
-pURL = lens _pURL (\ s a -> s{_pURL = a})
-
-instance FromJSON PageAuthorImage where
-        parseJSON
-          = withObject "PageAuthorImage"
-              (\ o -> PageAuthorImage' <$> (o .:? "url"))
-
-instance ToJSON PageAuthorImage where
-        toJSON PageAuthorImage'{..}
-          = object (catMaybes [("url" .=) <$> _pURL])
-
---
--- /See:/ 'commentList' smart constructor.
-data CommentList =
-  CommentList'
-    { _clEtag          :: !(Maybe Text)
-    , _clNextPageToken :: !(Maybe Text)
-    , _clKind          :: !Text
-    , _clItems         :: !(Maybe [Comment])
-    , _clPrevPageToken :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommentList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'clEtag'
---
--- * 'clNextPageToken'
---
--- * 'clKind'
---
--- * 'clItems'
---
--- * 'clPrevPageToken'
-commentList
-    :: CommentList
-commentList =
-  CommentList'
-    { _clEtag = Nothing
-    , _clNextPageToken = Nothing
-    , _clKind = "blogger#commentList"
-    , _clItems = Nothing
-    , _clPrevPageToken = Nothing
-    }
-
-
--- | Etag of the response.
-clEtag :: Lens' CommentList (Maybe Text)
-clEtag = lens _clEtag (\ s a -> s{_clEtag = a})
-
--- | Pagination token to fetch the next page, if one exists.
-clNextPageToken :: Lens' CommentList (Maybe Text)
-clNextPageToken
-  = lens _clNextPageToken
-      (\ s a -> s{_clNextPageToken = a})
-
--- | The kind of this entry. Always blogger#commentList
-clKind :: Lens' CommentList Text
-clKind = lens _clKind (\ s a -> s{_clKind = a})
-
--- | The List of Comments for a Post.
-clItems :: Lens' CommentList [Comment]
-clItems
-  = lens _clItems (\ s a -> s{_clItems = a}) . _Default
-      . _Coerce
-
--- | Pagination token to fetch the previous page, if one exists.
-clPrevPageToken :: Lens' CommentList (Maybe Text)
-clPrevPageToken
-  = lens _clPrevPageToken
-      (\ s a -> s{_clPrevPageToken = a})
-
-instance FromJSON CommentList where
-        parseJSON
-          = withObject "CommentList"
-              (\ o ->
-                 CommentList' <$>
-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "blogger#commentList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "prevPageToken"))
-
-instance ToJSON CommentList where
-        toJSON CommentList'{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _clEtag,
-                  ("nextPageToken" .=) <$> _clNextPageToken,
-                  Just ("kind" .= _clKind), ("items" .=) <$> _clItems,
-                  ("prevPageToken" .=) <$> _clPrevPageToken])
-
---
--- /See:/ 'postImagesItem' smart constructor.
-newtype PostImagesItem =
-  PostImagesItem'
-    { _piiURL :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostImagesItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'piiURL'
-postImagesItem
-    :: PostImagesItem
-postImagesItem = PostImagesItem' {_piiURL = Nothing}
-
-
-piiURL :: Lens' PostImagesItem (Maybe Text)
-piiURL = lens _piiURL (\ s a -> s{_piiURL = a})
-
-instance FromJSON PostImagesItem where
-        parseJSON
-          = withObject "PostImagesItem"
-              (\ o -> PostImagesItem' <$> (o .:? "url"))
-
-instance ToJSON PostImagesItem where
-        toJSON PostImagesItem'{..}
-          = object (catMaybes [("url" .=) <$> _piiURL])
diff --git a/gen/Network/Google/Blogger/Types/Sum.hs b/gen/Network/Google/Blogger/Types/Sum.hs
deleted file mode 100644
--- a/gen/Network/Google/Blogger/Types/Sum.hs
+++ /dev/null
@@ -1,762 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE LambdaCase         #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- |
--- Module      : Network.Google.Blogger.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.Blogger.Types.Sum where
-
-import           Network.Google.Prelude hiding (Bytes)
-
--- | Sort search results
-data PostsListOrderBy
-    = Published
-      -- ^ @published@
-      -- Order by the date the post was published
-    | Updated
-      -- ^ @updated@
-      -- Order by the date the post was last updated
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable PostsListOrderBy
-
-instance FromHttpApiData PostsListOrderBy where
-    parseQueryParam = \case
-        "published" -> Right Published
-        "updated" -> Right Updated
-        x -> Left ("Unable to parse PostsListOrderBy from: " <> x)
-
-instance ToHttpApiData PostsListOrderBy where
-    toQueryParam = \case
-        Published -> "published"
-        Updated -> "updated"
-
-instance FromJSON PostsListOrderBy where
-    parseJSON = parseJSONText "PostsListOrderBy"
-
-instance ToJSON PostsListOrderBy where
-    toJSON = toJSONText
-
--- | Access level with which to view the returned result. Note that some
--- fields require escalated access.
-data PostsListView
-    = Admin
-      -- ^ @ADMIN@
-      -- Admin level detail
-    | Author
-      -- ^ @AUTHOR@
-      -- Author level detail
-    | Reader
-      -- ^ @READER@
-      -- Reader level detail
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable PostsListView
-
-instance FromHttpApiData PostsListView where
-    parseQueryParam = \case
-        "ADMIN" -> Right Admin
-        "AUTHOR" -> Right Author
-        "READER" -> Right Reader
-        x -> Left ("Unable to parse PostsListView from: " <> x)
-
-instance ToHttpApiData PostsListView where
-    toQueryParam = \case
-        Admin -> "ADMIN"
-        Author -> "AUTHOR"
-        Reader -> "READER"
-
-instance FromJSON PostsListView where
-    parseJSON = parseJSONText "PostsListView"
-
-instance ToJSON PostsListView where
-    toJSON = toJSONText
-
-data PageViewsGetRange
-    = PVGR30DAYS
-      -- ^ @30DAYS@
-      -- Page view counts from the last thirty days.
-    | PVGR7DAYS
-      -- ^ @7DAYS@
-      -- Page view counts from the last seven days.
-    | PVGRAll
-      -- ^ @all@
-      -- Total page view counts from all time.
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable PageViewsGetRange
-
-instance FromHttpApiData PageViewsGetRange where
-    parseQueryParam = \case
-        "30DAYS" -> Right PVGR30DAYS
-        "7DAYS" -> Right PVGR7DAYS
-        "all" -> Right PVGRAll
-        x -> Left ("Unable to parse PageViewsGetRange from: " <> x)
-
-instance ToHttpApiData PageViewsGetRange where
-    toQueryParam = \case
-        PVGR30DAYS -> "30DAYS"
-        PVGR7DAYS -> "7DAYS"
-        PVGRAll -> "all"
-
-instance FromJSON PageViewsGetRange where
-    parseJSON = parseJSONText "PageViewsGetRange"
-
-instance ToJSON PageViewsGetRange where
-    toJSON = toJSONText
-
--- | Access level with which to view the returned result. Note that some
--- fields require elevated access.
-data CommentsListView
-    = CLVAdmin
-      -- ^ @ADMIN@
-      -- Admin level detail
-    | CLVAuthor
-      -- ^ @AUTHOR@
-      -- Author level detail
-    | CLVReader
-      -- ^ @READER@
-      -- Reader level detail
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable CommentsListView
-
-instance FromHttpApiData CommentsListView where
-    parseQueryParam = \case
-        "ADMIN" -> Right CLVAdmin
-        "AUTHOR" -> Right CLVAuthor
-        "READER" -> Right CLVReader
-        x -> Left ("Unable to parse CommentsListView from: " <> x)
-
-instance ToHttpApiData CommentsListView where
-    toQueryParam = \case
-        CLVAdmin -> "ADMIN"
-        CLVAuthor -> "AUTHOR"
-        CLVReader -> "READER"
-
-instance FromJSON CommentsListView where
-    parseJSON = parseJSONText "CommentsListView"
-
-instance ToJSON CommentsListView where
-    toJSON = toJSONText
-
-data PostUserInfosListStatus
-    = Draft
-      -- ^ @draft@
-      -- Draft posts
-    | Live
-      -- ^ @live@
-      -- Published posts
-    | Scheduled
-      -- ^ @scheduled@
-      -- Posts that are scheduled to publish in future.
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable PostUserInfosListStatus
-
-instance FromHttpApiData PostUserInfosListStatus where
-    parseQueryParam = \case
-        "draft" -> Right Draft
-        "live" -> Right Live
-        "scheduled" -> Right Scheduled
-        x -> Left ("Unable to parse PostUserInfosListStatus from: " <> x)
-
-instance ToHttpApiData PostUserInfosListStatus where
-    toQueryParam = \case
-        Draft -> "draft"
-        Live -> "live"
-        Scheduled -> "scheduled"
-
-instance FromJSON PostUserInfosListStatus where
-    parseJSON = parseJSONText "PostUserInfosListStatus"
-
-instance ToJSON PostUserInfosListStatus where
-    toJSON = toJSONText
-
--- | Access level with which to view the returned result. Note that some
--- fields require elevated access.
-data PostsGetView
-    = PGVAdmin
-      -- ^ @ADMIN@
-      -- Admin level detail
-    | PGVAuthor
-      -- ^ @AUTHOR@
-      -- Author level detail
-    | PGVReader
-      -- ^ @READER@
-      -- Reader level detail
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable PostsGetView
-
-instance FromHttpApiData PostsGetView where
-    parseQueryParam = \case
-        "ADMIN" -> Right PGVAdmin
-        "AUTHOR" -> Right PGVAuthor
-        "READER" -> Right PGVReader
-        x -> Left ("Unable to parse PostsGetView from: " <> x)
-
-instance ToHttpApiData PostsGetView where
-    toQueryParam = \case
-        PGVAdmin -> "ADMIN"
-        PGVAuthor -> "AUTHOR"
-        PGVReader -> "READER"
-
-instance FromJSON PostsGetView where
-    parseJSON = parseJSONText "PostsGetView"
-
-instance ToJSON PostsGetView where
-    toJSON = toJSONText
-
--- | Sort search results
-data PostsSearchOrderBy
-    = PSOBPublished
-      -- ^ @published@
-      -- Order by the date the post was published
-    | PSOBUpdated
-      -- ^ @updated@
-      -- Order by the date the post was last updated
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable PostsSearchOrderBy
-
-instance FromHttpApiData PostsSearchOrderBy where
-    parseQueryParam = \case
-        "published" -> Right PSOBPublished
-        "updated" -> Right PSOBUpdated
-        x -> Left ("Unable to parse PostsSearchOrderBy from: " <> x)
-
-instance ToHttpApiData PostsSearchOrderBy where
-    toQueryParam = \case
-        PSOBPublished -> "published"
-        PSOBUpdated -> "updated"
-
-instance FromJSON PostsSearchOrderBy where
-    parseJSON = parseJSONText "PostsSearchOrderBy"
-
-instance ToJSON PostsSearchOrderBy where
-    toJSON = toJSONText
-
-data CommentsListByBlogStatus
-    = CLBBSEmptied
-      -- ^ @emptied@
-      -- Comments that have had their content removed
-    | CLBBSLive
-      -- ^ @live@
-      -- Comments that are publicly visible
-    | CLBBSPending
-      -- ^ @pending@
-      -- Comments that are awaiting administrator approval
-    | CLBBSSpam
-      -- ^ @spam@
-      -- Comments marked as spam by the administrator
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable CommentsListByBlogStatus
-
-instance FromHttpApiData CommentsListByBlogStatus where
-    parseQueryParam = \case
-        "emptied" -> Right CLBBSEmptied
-        "live" -> Right CLBBSLive
-        "pending" -> Right CLBBSPending
-        "spam" -> Right CLBBSSpam
-        x -> Left ("Unable to parse CommentsListByBlogStatus from: " <> x)
-
-instance ToHttpApiData CommentsListByBlogStatus where
-    toQueryParam = \case
-        CLBBSEmptied -> "emptied"
-        CLBBSLive -> "live"
-        CLBBSPending -> "pending"
-        CLBBSSpam -> "spam"
-
-instance FromJSON CommentsListByBlogStatus where
-    parseJSON = parseJSONText "CommentsListByBlogStatus"
-
-instance ToJSON CommentsListByBlogStatus where
-    toJSON = toJSONText
-
-data PagesGetView
-    = PAdmin
-      -- ^ @ADMIN@
-      -- Admin level detail
-    | PAuthor
-      -- ^ @AUTHOR@
-      -- Author level detail
-    | PReader
-      -- ^ @READER@
-      -- Reader level detail
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable PagesGetView
-
-instance FromHttpApiData PagesGetView where
-    parseQueryParam = \case
-        "ADMIN" -> Right PAdmin
-        "AUTHOR" -> Right PAuthor
-        "READER" -> Right PReader
-        x -> Left ("Unable to parse PagesGetView from: " <> x)
-
-instance ToHttpApiData PagesGetView where
-    toQueryParam = \case
-        PAdmin -> "ADMIN"
-        PAuthor -> "AUTHOR"
-        PReader -> "READER"
-
-instance FromJSON PagesGetView where
-    parseJSON = parseJSONText "PagesGetView"
-
-instance ToJSON PagesGetView where
-    toJSON = toJSONText
-
--- | Sort order applied to search results. Default is published.
-data PostUserInfosListOrderBy
-    = PUILOBPublished
-      -- ^ @published@
-      -- Order by the date the post was published
-    | PUILOBUpdated
-      -- ^ @updated@
-      -- Order by the date the post was last updated
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable PostUserInfosListOrderBy
-
-instance FromHttpApiData PostUserInfosListOrderBy where
-    parseQueryParam = \case
-        "published" -> Right PUILOBPublished
-        "updated" -> Right PUILOBUpdated
-        x -> Left ("Unable to parse PostUserInfosListOrderBy from: " <> x)
-
-instance ToHttpApiData PostUserInfosListOrderBy where
-    toQueryParam = \case
-        PUILOBPublished -> "published"
-        PUILOBUpdated -> "updated"
-
-instance FromJSON PostUserInfosListOrderBy where
-    parseJSON = parseJSONText "PostUserInfosListOrderBy"
-
-instance ToJSON PostUserInfosListOrderBy where
-    toJSON = toJSONText
-
--- | Access level with which to view the blog. Note that some fields require
--- elevated access.
-data BlogsGetView
-    = BGVAdmin
-      -- ^ @ADMIN@
-      -- Admin level detail.
-    | BGVAuthor
-      -- ^ @AUTHOR@
-      -- Author level detail.
-    | BGVReader
-      -- ^ @READER@
-      -- Reader level detail.
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable BlogsGetView
-
-instance FromHttpApiData BlogsGetView where
-    parseQueryParam = \case
-        "ADMIN" -> Right BGVAdmin
-        "AUTHOR" -> Right BGVAuthor
-        "READER" -> Right BGVReader
-        x -> Left ("Unable to parse BlogsGetView from: " <> x)
-
-instance ToHttpApiData BlogsGetView where
-    toQueryParam = \case
-        BGVAdmin -> "ADMIN"
-        BGVAuthor -> "AUTHOR"
-        BGVReader -> "READER"
-
-instance FromJSON BlogsGetView where
-    parseJSON = parseJSONText "BlogsGetView"
-
-instance ToJSON BlogsGetView where
-    toJSON = toJSONText
-
--- | Access level with which to view the blog. Note that some fields require
--- elevated access.
-data BlogsGetByURLView
-    = BGBUVAdmin
-      -- ^ @ADMIN@
-      -- Admin level detail.
-    | BGBUVAuthor
-      -- ^ @AUTHOR@
-      -- Author level detail.
-    | BGBUVReader
-      -- ^ @READER@
-      -- Reader level detail.
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable BlogsGetByURLView
-
-instance FromHttpApiData BlogsGetByURLView where
-    parseQueryParam = \case
-        "ADMIN" -> Right BGBUVAdmin
-        "AUTHOR" -> Right BGBUVAuthor
-        "READER" -> Right BGBUVReader
-        x -> Left ("Unable to parse BlogsGetByURLView from: " <> x)
-
-instance ToHttpApiData BlogsGetByURLView where
-    toQueryParam = \case
-        BGBUVAdmin -> "ADMIN"
-        BGBUVAuthor -> "AUTHOR"
-        BGBUVReader -> "READER"
-
-instance FromJSON BlogsGetByURLView where
-    parseJSON = parseJSONText "BlogsGetByURLView"
-
-instance ToJSON BlogsGetByURLView where
-    toJSON = toJSONText
-
-data CommentsListStatus
-    = CLSEmptied
-      -- ^ @emptied@
-      -- Comments that have had their content removed
-    | CLSLive
-      -- ^ @live@
-      -- Comments that are publicly visible
-    | CLSPending
-      -- ^ @pending@
-      -- Comments that are awaiting administrator approval
-    | CLSSpam
-      -- ^ @spam@
-      -- Comments marked as spam by the administrator
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable CommentsListStatus
-
-instance FromHttpApiData CommentsListStatus where
-    parseQueryParam = \case
-        "emptied" -> Right CLSEmptied
-        "live" -> Right CLSLive
-        "pending" -> Right CLSPending
-        "spam" -> Right CLSSpam
-        x -> Left ("Unable to parse CommentsListStatus from: " <> x)
-
-instance ToHttpApiData CommentsListStatus where
-    toQueryParam = \case
-        CLSEmptied -> "emptied"
-        CLSLive -> "live"
-        CLSPending -> "pending"
-        CLSSpam -> "spam"
-
-instance FromJSON CommentsListStatus where
-    parseJSON = parseJSONText "CommentsListStatus"
-
-instance ToJSON CommentsListStatus where
-    toJSON = toJSONText
-
--- | Blog statuses to include in the result (default: Live blogs only). Note
--- that ADMIN access is required to view deleted blogs.
-data BlogsListByUserStatus
-    = BLBUSDeleted
-      -- ^ @DELETED@
-      -- Blog has been deleted by an administrator.
-    | BLBUSLive
-      -- ^ @LIVE@
-      -- Blog is currently live.
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable BlogsListByUserStatus
-
-instance FromHttpApiData BlogsListByUserStatus where
-    parseQueryParam = \case
-        "DELETED" -> Right BLBUSDeleted
-        "LIVE" -> Right BLBUSLive
-        x -> Left ("Unable to parse BlogsListByUserStatus from: " <> x)
-
-instance ToHttpApiData BlogsListByUserStatus where
-    toQueryParam = \case
-        BLBUSDeleted -> "DELETED"
-        BLBUSLive -> "LIVE"
-
-instance FromJSON BlogsListByUserStatus where
-    parseJSON = parseJSONText "BlogsListByUserStatus"
-
-instance ToJSON BlogsListByUserStatus where
-    toJSON = toJSONText
-
--- | Access level with which to view the returned result. Note that some
--- fields require elevated access.
-data PagesListView
-    = PLVAdmin
-      -- ^ @ADMIN@
-      -- Admin level detail
-    | PLVAuthor
-      -- ^ @AUTHOR@
-      -- Author level detail
-    | PLVReader
-      -- ^ @READER@
-      -- Reader level detail
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable PagesListView
-
-instance FromHttpApiData PagesListView where
-    parseQueryParam = \case
-        "ADMIN" -> Right PLVAdmin
-        "AUTHOR" -> Right PLVAuthor
-        "READER" -> Right PLVReader
-        x -> Left ("Unable to parse PagesListView from: " <> x)
-
-instance ToHttpApiData PagesListView where
-    toQueryParam = \case
-        PLVAdmin -> "ADMIN"
-        PLVAuthor -> "AUTHOR"
-        PLVReader -> "READER"
-
-instance FromJSON PagesListView where
-    parseJSON = parseJSONText "PagesListView"
-
-instance ToJSON PagesListView where
-    toJSON = toJSONText
-
--- | Statuses to include in the results.
-data PostsListStatus
-    = PLSDraft
-      -- ^ @draft@
-      -- Draft (non-published) posts.
-    | PLSLive
-      -- ^ @live@
-      -- Published posts
-    | PLSScheduled
-      -- ^ @scheduled@
-      -- Posts that are scheduled to publish in the future.
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable PostsListStatus
-
-instance FromHttpApiData PostsListStatus where
-    parseQueryParam = \case
-        "draft" -> Right PLSDraft
-        "live" -> Right PLSLive
-        "scheduled" -> Right PLSScheduled
-        x -> Left ("Unable to parse PostsListStatus from: " <> x)
-
-instance ToHttpApiData PostsListStatus where
-    toQueryParam = \case
-        PLSDraft -> "draft"
-        PLSLive -> "live"
-        PLSScheduled -> "scheduled"
-
-instance FromJSON PostsListStatus where
-    parseJSON = parseJSONText "PostsListStatus"
-
-instance ToJSON PostsListStatus where
-    toJSON = toJSONText
-
--- | Access level with which to view the blogs. Note that some fields require
--- elevated access.
-data BlogsListByUserView
-    = BLBUVAdmin
-      -- ^ @ADMIN@
-      -- Admin level detail.
-    | BLBUVAuthor
-      -- ^ @AUTHOR@
-      -- Author level detail.
-    | BLBUVReader
-      -- ^ @READER@
-      -- Reader level detail.
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable BlogsListByUserView
-
-instance FromHttpApiData BlogsListByUserView where
-    parseQueryParam = \case
-        "ADMIN" -> Right BLBUVAdmin
-        "AUTHOR" -> Right BLBUVAuthor
-        "READER" -> Right BLBUVReader
-        x -> Left ("Unable to parse BlogsListByUserView from: " <> x)
-
-instance ToHttpApiData BlogsListByUserView where
-    toQueryParam = \case
-        BLBUVAdmin -> "ADMIN"
-        BLBUVAuthor -> "AUTHOR"
-        BLBUVReader -> "READER"
-
-instance FromJSON BlogsListByUserView where
-    parseJSON = parseJSONText "BlogsListByUserView"
-
-instance ToJSON BlogsListByUserView where
-    toJSON = toJSONText
-
--- | Access level with which to view the returned result. Note that some
--- fields require elevated access.
-data PostUserInfosListView
-    = PUILVAdmin
-      -- ^ @ADMIN@
-      -- Admin level detail
-    | PUILVAuthor
-      -- ^ @AUTHOR@
-      -- Author level detail
-    | PUILVReader
-      -- ^ @READER@
-      -- Reader level detail
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable PostUserInfosListView
-
-instance FromHttpApiData PostUserInfosListView where
-    parseQueryParam = \case
-        "ADMIN" -> Right PUILVAdmin
-        "AUTHOR" -> Right PUILVAuthor
-        "READER" -> Right PUILVReader
-        x -> Left ("Unable to parse PostUserInfosListView from: " <> x)
-
-instance ToHttpApiData PostUserInfosListView where
-    toQueryParam = \case
-        PUILVAdmin -> "ADMIN"
-        PUILVAuthor -> "AUTHOR"
-        PUILVReader -> "READER"
-
-instance FromJSON PostUserInfosListView where
-    parseJSON = parseJSONText "PostUserInfosListView"
-
-instance ToJSON PostUserInfosListView where
-    toJSON = toJSONText
-
--- | Access level for the requested comment (default: READER). Note that some
--- comments will require elevated permissions, for example comments where
--- the parent posts which is in a draft state, or comments that are pending
--- moderation.
-data CommentsGetView
-    = CGVAdmin
-      -- ^ @ADMIN@
-      -- Admin level detail
-    | CGVAuthor
-      -- ^ @AUTHOR@
-      -- Author level detail
-    | CGVReader
-      -- ^ @READER@
-      -- Admin level detail
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable CommentsGetView
-
-instance FromHttpApiData CommentsGetView where
-    parseQueryParam = \case
-        "ADMIN" -> Right CGVAdmin
-        "AUTHOR" -> Right CGVAuthor
-        "READER" -> Right CGVReader
-        x -> Left ("Unable to parse CommentsGetView from: " <> x)
-
-instance ToHttpApiData CommentsGetView where
-    toQueryParam = \case
-        CGVAdmin -> "ADMIN"
-        CGVAuthor -> "AUTHOR"
-        CGVReader -> "READER"
-
-instance FromJSON CommentsGetView where
-    parseJSON = parseJSONText "CommentsGetView"
-
-instance ToJSON CommentsGetView where
-    toJSON = toJSONText
-
--- | Access level with which to view the returned result. Note that some
--- fields require elevated access.
-data PostsGetByPathView
-    = PGBPVAdmin
-      -- ^ @ADMIN@
-      -- Admin level detail
-    | PGBPVAuthor
-      -- ^ @AUTHOR@
-      -- Author level detail
-    | PGBPVReader
-      -- ^ @READER@
-      -- Reader level detail
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable PostsGetByPathView
-
-instance FromHttpApiData PostsGetByPathView where
-    parseQueryParam = \case
-        "ADMIN" -> Right PGBPVAdmin
-        "AUTHOR" -> Right PGBPVAuthor
-        "READER" -> Right PGBPVReader
-        x -> Left ("Unable to parse PostsGetByPathView from: " <> x)
-
-instance ToHttpApiData PostsGetByPathView where
-    toQueryParam = \case
-        PGBPVAdmin -> "ADMIN"
-        PGBPVAuthor -> "AUTHOR"
-        PGBPVReader -> "READER"
-
-instance FromJSON PostsGetByPathView where
-    parseJSON = parseJSONText "PostsGetByPathView"
-
-instance ToJSON PostsGetByPathView where
-    toJSON = toJSONText
-
-data PagesListStatus
-    = PDraft
-      -- ^ @draft@
-      -- Draft (unpublished) Pages
-    | PLive
-      -- ^ @live@
-      -- Pages that are publicly visible
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable PagesListStatus
-
-instance FromHttpApiData PagesListStatus where
-    parseQueryParam = \case
-        "draft" -> Right PDraft
-        "live" -> Right PLive
-        x -> Left ("Unable to parse PagesListStatus from: " <> x)
-
-instance ToHttpApiData PagesListStatus where
-    toQueryParam = \case
-        PDraft -> "draft"
-        PLive -> "live"
-
-instance FromJSON PagesListStatus where
-    parseJSON = parseJSONText "PagesListStatus"
-
-instance ToJSON PagesListStatus where
-    toJSON = toJSONText
-
--- | User access types for blogs to include in the results, e.g. AUTHOR will
--- return blogs where the user has author level access. If no roles are
--- specified, defaults to ADMIN and AUTHOR roles.
-data BlogsListByUserRole
-    = BLBURAdmin
-      -- ^ @ADMIN@
-      -- Admin role - Blogs where the user has Admin level access.
-    | BLBURAuthor
-      -- ^ @AUTHOR@
-      -- Author role - Blogs where the user has Author level access.
-    | BLBURReader
-      -- ^ @READER@
-      -- Reader role - Blogs where the user has Reader level access (to a private
-      -- blog).
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable BlogsListByUserRole
-
-instance FromHttpApiData BlogsListByUserRole where
-    parseQueryParam = \case
-        "ADMIN" -> Right BLBURAdmin
-        "AUTHOR" -> Right BLBURAuthor
-        "READER" -> Right BLBURReader
-        x -> Left ("Unable to parse BlogsListByUserRole from: " <> x)
-
-instance ToHttpApiData BlogsListByUserRole where
-    toQueryParam = \case
-        BLBURAdmin -> "ADMIN"
-        BLBURAuthor -> "AUTHOR"
-        BLBURReader -> "READER"
-
-instance FromJSON BlogsListByUserRole where
-    parseJSON = parseJSONText "BlogsListByUserRole"
-
-instance ToJSON BlogsListByUserRole where
-    toJSON = toJSONText
diff --git a/gen/Network/Google/Resource/Blogger/BlogUserInfos/Get.hs b/gen/Network/Google/Resource/Blogger/BlogUserInfos/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/BlogUserInfos/Get.hs
+++ /dev/null
@@ -1,118 +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.Blogger.BlogUserInfos.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 one blog and user info pair by blogId and userId.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.blogUserInfos.get@.
-module Network.Google.Resource.Blogger.BlogUserInfos.Get
-    (
-    -- * REST Resource
-      BlogUserInfosGetResource
-
-    -- * Creating a Request
-    , blogUserInfosGet
-    , BlogUserInfosGet
-
-    -- * Request Lenses
-    , buigBlogId
-    , buigUserId
-    , buigMaxPosts
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.blogUserInfos.get@ method which the
--- 'BlogUserInfosGet' request conforms to.
-type BlogUserInfosGetResource =
-     "blogger" :>
-       "v3" :>
-         "users" :>
-           Capture "userId" Text :>
-             "blogs" :>
-               Capture "blogId" Text :>
-                 QueryParam "maxPosts" (Textual Word32) :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] BlogUserInfo
-
--- | Gets one blog and user info pair by blogId and userId.
---
--- /See:/ 'blogUserInfosGet' smart constructor.
-data BlogUserInfosGet =
-  BlogUserInfosGet'
-    { _buigBlogId   :: !Text
-    , _buigUserId   :: !Text
-    , _buigMaxPosts :: !(Maybe (Textual Word32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BlogUserInfosGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'buigBlogId'
---
--- * 'buigUserId'
---
--- * 'buigMaxPosts'
-blogUserInfosGet
-    :: Text -- ^ 'buigBlogId'
-    -> Text -- ^ 'buigUserId'
-    -> BlogUserInfosGet
-blogUserInfosGet pBuigBlogId_ pBuigUserId_ =
-  BlogUserInfosGet'
-    { _buigBlogId = pBuigBlogId_
-    , _buigUserId = pBuigUserId_
-    , _buigMaxPosts = Nothing
-    }
-
-
--- | The ID of the blog to get.
-buigBlogId :: Lens' BlogUserInfosGet Text
-buigBlogId
-  = lens _buigBlogId (\ s a -> s{_buigBlogId = a})
-
--- | ID of the user whose blogs are to be fetched. Either the word \'self\'
--- (sans quote marks) or the user\'s profile identifier.
-buigUserId :: Lens' BlogUserInfosGet Text
-buigUserId
-  = lens _buigUserId (\ s a -> s{_buigUserId = a})
-
--- | Maximum number of posts to pull back with the blog.
-buigMaxPosts :: Lens' BlogUserInfosGet (Maybe Word32)
-buigMaxPosts
-  = lens _buigMaxPosts (\ s a -> s{_buigMaxPosts = a})
-      . mapping _Coerce
-
-instance GoogleRequest BlogUserInfosGet where
-        type Rs BlogUserInfosGet = BlogUserInfo
-        type Scopes BlogUserInfosGet =
-             '["https://www.googleapis.com/auth/blogger",
-               "https://www.googleapis.com/auth/blogger.readonly"]
-        requestClient BlogUserInfosGet'{..}
-          = go _buigUserId _buigBlogId _buigMaxPosts
-              (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy BlogUserInfosGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Blogs/Get.hs b/gen/Network/Google/Resource/Blogger/Blogs/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Blogs/Get.hs
+++ /dev/null
@@ -1,108 +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.Blogger.Blogs.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 one blog by ID.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.blogs.get@.
-module Network.Google.Resource.Blogger.Blogs.Get
-    (
-    -- * REST Resource
-      BlogsGetResource
-
-    -- * Creating a Request
-    , blogsGet
-    , BlogsGet
-
-    -- * Request Lenses
-    , bgBlogId
-    , bgMaxPosts
-    , bgView
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.blogs.get@ method which the
--- 'BlogsGet' request conforms to.
-type BlogsGetResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             QueryParam "maxPosts" (Textual Word32) :>
-               QueryParam "view" BlogsGetView :>
-                 QueryParam "alt" AltJSON :> Get '[JSON] Blog
-
--- | Gets one blog by ID.
---
--- /See:/ 'blogsGet' smart constructor.
-data BlogsGet =
-  BlogsGet'
-    { _bgBlogId   :: !Text
-    , _bgMaxPosts :: !(Maybe (Textual Word32))
-    , _bgView     :: !(Maybe BlogsGetView)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BlogsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bgBlogId'
---
--- * 'bgMaxPosts'
---
--- * 'bgView'
-blogsGet
-    :: Text -- ^ 'bgBlogId'
-    -> BlogsGet
-blogsGet pBgBlogId_ =
-  BlogsGet' {_bgBlogId = pBgBlogId_, _bgMaxPosts = Nothing, _bgView = Nothing}
-
-
--- | The ID of the blog to get.
-bgBlogId :: Lens' BlogsGet Text
-bgBlogId = lens _bgBlogId (\ s a -> s{_bgBlogId = a})
-
--- | Maximum number of posts to pull back with the blog.
-bgMaxPosts :: Lens' BlogsGet (Maybe Word32)
-bgMaxPosts
-  = lens _bgMaxPosts (\ s a -> s{_bgMaxPosts = a}) .
-      mapping _Coerce
-
--- | Access level with which to view the blog. Note that some fields require
--- elevated access.
-bgView :: Lens' BlogsGet (Maybe BlogsGetView)
-bgView = lens _bgView (\ s a -> s{_bgView = a})
-
-instance GoogleRequest BlogsGet where
-        type Rs BlogsGet = Blog
-        type Scopes BlogsGet =
-             '["https://www.googleapis.com/auth/blogger",
-               "https://www.googleapis.com/auth/blogger.readonly"]
-        requestClient BlogsGet'{..}
-          = go _bgBlogId _bgMaxPosts _bgView (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy BlogsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Blogs/GetByURL.hs b/gen/Network/Google/Resource/Blogger/Blogs/GetByURL.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Blogs/GetByURL.hs
+++ /dev/null
@@ -1,98 +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.Blogger.Blogs.GetByURL
--- 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)
---
--- Retrieve a Blog by URL.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.blogs.getByUrl@.
-module Network.Google.Resource.Blogger.Blogs.GetByURL
-    (
-    -- * REST Resource
-      BlogsGetByURLResource
-
-    -- * Creating a Request
-    , blogsGetByURL
-    , BlogsGetByURL
-
-    -- * Request Lenses
-    , bgbuURL
-    , bgbuView
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.blogs.getByUrl@ method which the
--- 'BlogsGetByURL' request conforms to.
-type BlogsGetByURLResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           "byurl" :>
-             QueryParam "url" Text :>
-               QueryParam "view" BlogsGetByURLView :>
-                 QueryParam "alt" AltJSON :> Get '[JSON] Blog
-
--- | Retrieve a Blog by URL.
---
--- /See:/ 'blogsGetByURL' smart constructor.
-data BlogsGetByURL =
-  BlogsGetByURL'
-    { _bgbuURL  :: !Text
-    , _bgbuView :: !(Maybe BlogsGetByURLView)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BlogsGetByURL' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bgbuURL'
---
--- * 'bgbuView'
-blogsGetByURL
-    :: Text -- ^ 'bgbuURL'
-    -> BlogsGetByURL
-blogsGetByURL pBgbuURL_ =
-  BlogsGetByURL' {_bgbuURL = pBgbuURL_, _bgbuView = Nothing}
-
-
--- | The URL of the blog to retrieve.
-bgbuURL :: Lens' BlogsGetByURL Text
-bgbuURL = lens _bgbuURL (\ s a -> s{_bgbuURL = a})
-
--- | Access level with which to view the blog. Note that some fields require
--- elevated access.
-bgbuView :: Lens' BlogsGetByURL (Maybe BlogsGetByURLView)
-bgbuView = lens _bgbuView (\ s a -> s{_bgbuView = a})
-
-instance GoogleRequest BlogsGetByURL where
-        type Rs BlogsGetByURL = Blog
-        type Scopes BlogsGetByURL =
-             '["https://www.googleapis.com/auth/blogger",
-               "https://www.googleapis.com/auth/blogger.readonly"]
-        requestClient BlogsGetByURL'{..}
-          = go (Just _bgbuURL) _bgbuView (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy BlogsGetByURLResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Blogs/ListByUser.hs b/gen/Network/Google/Resource/Blogger/Blogs/ListByUser.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Blogs/ListByUser.hs
+++ /dev/null
@@ -1,148 +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.Blogger.Blogs.ListByUser
--- 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)
---
--- Retrieves a list of blogs, possibly filtered.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.blogs.listByUser@.
-module Network.Google.Resource.Blogger.Blogs.ListByUser
-    (
-    -- * REST Resource
-      BlogsListByUserResource
-
-    -- * Creating a Request
-    , blogsListByUser
-    , BlogsListByUser
-
-    -- * Request Lenses
-    , blbuStatus
-    , blbuFetchUserInfo
-    , blbuUserId
-    , blbuRole
-    , blbuView
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.blogs.listByUser@ method which the
--- 'BlogsListByUser' request conforms to.
-type BlogsListByUserResource =
-     "blogger" :>
-       "v3" :>
-         "users" :>
-           Capture "userId" Text :>
-             "blogs" :>
-               QueryParams "status" BlogsListByUserStatus :>
-                 QueryParam "fetchUserInfo" Bool :>
-                   QueryParams "role" BlogsListByUserRole :>
-                     QueryParam "view" BlogsListByUserView :>
-                       QueryParam "alt" AltJSON :> Get '[JSON] BlogList
-
--- | Retrieves a list of blogs, possibly filtered.
---
--- /See:/ 'blogsListByUser' smart constructor.
-data BlogsListByUser =
-  BlogsListByUser'
-    { _blbuStatus        :: ![BlogsListByUserStatus]
-    , _blbuFetchUserInfo :: !(Maybe Bool)
-    , _blbuUserId        :: !Text
-    , _blbuRole          :: !(Maybe [BlogsListByUserRole])
-    , _blbuView          :: !(Maybe BlogsListByUserView)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BlogsListByUser' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'blbuStatus'
---
--- * 'blbuFetchUserInfo'
---
--- * 'blbuUserId'
---
--- * 'blbuRole'
---
--- * 'blbuView'
-blogsListByUser
-    :: Text -- ^ 'blbuUserId'
-    -> BlogsListByUser
-blogsListByUser pBlbuUserId_ =
-  BlogsListByUser'
-    { _blbuStatus = [BLBUSLive]
-    , _blbuFetchUserInfo = Nothing
-    , _blbuUserId = pBlbuUserId_
-    , _blbuRole = Nothing
-    , _blbuView = Nothing
-    }
-
-
--- | Blog statuses to include in the result (default: Live blogs only). Note
--- that ADMIN access is required to view deleted blogs.
-blbuStatus :: Lens' BlogsListByUser [BlogsListByUserStatus]
-blbuStatus
-  = lens _blbuStatus (\ s a -> s{_blbuStatus = a}) .
-      _Coerce
-
--- | Whether the response is a list of blogs with per-user information
--- instead of just blogs.
-blbuFetchUserInfo :: Lens' BlogsListByUser (Maybe Bool)
-blbuFetchUserInfo
-  = lens _blbuFetchUserInfo
-      (\ s a -> s{_blbuFetchUserInfo = a})
-
--- | ID of the user whose blogs are to be fetched. Either the word \'self\'
--- (sans quote marks) or the user\'s profile identifier.
-blbuUserId :: Lens' BlogsListByUser Text
-blbuUserId
-  = lens _blbuUserId (\ s a -> s{_blbuUserId = a})
-
--- | User access types for blogs to include in the results, e.g. AUTHOR will
--- return blogs where the user has author level access. If no roles are
--- specified, defaults to ADMIN and AUTHOR roles.
-blbuRole :: Lens' BlogsListByUser [BlogsListByUserRole]
-blbuRole
-  = lens _blbuRole (\ s a -> s{_blbuRole = a}) .
-      _Default
-      . _Coerce
-
--- | Access level with which to view the blogs. Note that some fields require
--- elevated access.
-blbuView :: Lens' BlogsListByUser (Maybe BlogsListByUserView)
-blbuView = lens _blbuView (\ s a -> s{_blbuView = a})
-
-instance GoogleRequest BlogsListByUser where
-        type Rs BlogsListByUser = BlogList
-        type Scopes BlogsListByUser =
-             '["https://www.googleapis.com/auth/blogger",
-               "https://www.googleapis.com/auth/blogger.readonly"]
-        requestClient BlogsListByUser'{..}
-          = go _blbuUserId _blbuStatus _blbuFetchUserInfo
-              (_blbuRole ^. _Default)
-              _blbuView
-              (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy BlogsListByUserResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Comments/Approve.hs b/gen/Network/Google/Resource/Blogger/Comments/Approve.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Comments/Approve.hs
+++ /dev/null
@@ -1,115 +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.Blogger.Comments.Approve
--- 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)
---
--- Marks a comment as not spam.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.comments.approve@.
-module Network.Google.Resource.Blogger.Comments.Approve
-    (
-    -- * REST Resource
-      CommentsApproveResource
-
-    -- * Creating a Request
-    , commentsApprove
-    , CommentsApprove
-
-    -- * Request Lenses
-    , caBlogId
-    , caPostId
-    , caCommentId
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.comments.approve@ method which the
--- 'CommentsApprove' request conforms to.
-type CommentsApproveResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "posts" :>
-               Capture "postId" Text :>
-                 "comments" :>
-                   Capture "commentId" Text :>
-                     "approve" :>
-                       QueryParam "alt" AltJSON :> Post '[JSON] Comment
-
--- | Marks a comment as not spam.
---
--- /See:/ 'commentsApprove' smart constructor.
-data CommentsApprove =
-  CommentsApprove'
-    { _caBlogId    :: !Text
-    , _caPostId    :: !Text
-    , _caCommentId :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommentsApprove' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'caBlogId'
---
--- * 'caPostId'
---
--- * 'caCommentId'
-commentsApprove
-    :: Text -- ^ 'caBlogId'
-    -> Text -- ^ 'caPostId'
-    -> Text -- ^ 'caCommentId'
-    -> CommentsApprove
-commentsApprove pCaBlogId_ pCaPostId_ pCaCommentId_ =
-  CommentsApprove'
-    { _caBlogId = pCaBlogId_
-    , _caPostId = pCaPostId_
-    , _caCommentId = pCaCommentId_
-    }
-
-
--- | The ID of the Blog.
-caBlogId :: Lens' CommentsApprove Text
-caBlogId = lens _caBlogId (\ s a -> s{_caBlogId = a})
-
--- | The ID of the Post.
-caPostId :: Lens' CommentsApprove Text
-caPostId = lens _caPostId (\ s a -> s{_caPostId = a})
-
--- | The ID of the comment to mark as not spam.
-caCommentId :: Lens' CommentsApprove Text
-caCommentId
-  = lens _caCommentId (\ s a -> s{_caCommentId = a})
-
-instance GoogleRequest CommentsApprove where
-        type Rs CommentsApprove = Comment
-        type Scopes CommentsApprove =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient CommentsApprove'{..}
-          = go _caBlogId _caPostId _caCommentId (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy CommentsApproveResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Comments/Delete.hs b/gen/Network/Google/Resource/Blogger/Comments/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Comments/Delete.hs
+++ /dev/null
@@ -1,113 +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.Blogger.Comments.Delete
--- 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)
---
--- Delete a comment by ID.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.comments.delete@.
-module Network.Google.Resource.Blogger.Comments.Delete
-    (
-    -- * REST Resource
-      CommentsDeleteResource
-
-    -- * Creating a Request
-    , commentsDelete
-    , CommentsDelete
-
-    -- * Request Lenses
-    , cdBlogId
-    , cdPostId
-    , cdCommentId
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.comments.delete@ method which the
--- 'CommentsDelete' request conforms to.
-type CommentsDeleteResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "posts" :>
-               Capture "postId" Text :>
-                 "comments" :>
-                   Capture "commentId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] ()
-
--- | Delete a comment by ID.
---
--- /See:/ 'commentsDelete' smart constructor.
-data CommentsDelete =
-  CommentsDelete'
-    { _cdBlogId    :: !Text
-    , _cdPostId    :: !Text
-    , _cdCommentId :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommentsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cdBlogId'
---
--- * 'cdPostId'
---
--- * 'cdCommentId'
-commentsDelete
-    :: Text -- ^ 'cdBlogId'
-    -> Text -- ^ 'cdPostId'
-    -> Text -- ^ 'cdCommentId'
-    -> CommentsDelete
-commentsDelete pCdBlogId_ pCdPostId_ pCdCommentId_ =
-  CommentsDelete'
-    { _cdBlogId = pCdBlogId_
-    , _cdPostId = pCdPostId_
-    , _cdCommentId = pCdCommentId_
-    }
-
-
--- | The ID of the Blog.
-cdBlogId :: Lens' CommentsDelete Text
-cdBlogId = lens _cdBlogId (\ s a -> s{_cdBlogId = a})
-
--- | The ID of the Post.
-cdPostId :: Lens' CommentsDelete Text
-cdPostId = lens _cdPostId (\ s a -> s{_cdPostId = a})
-
--- | The ID of the comment to delete.
-cdCommentId :: Lens' CommentsDelete Text
-cdCommentId
-  = lens _cdCommentId (\ s a -> s{_cdCommentId = a})
-
-instance GoogleRequest CommentsDelete where
-        type Rs CommentsDelete = ()
-        type Scopes CommentsDelete =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient CommentsDelete'{..}
-          = go _cdBlogId _cdPostId _cdCommentId (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy CommentsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Comments/Get.hs b/gen/Network/Google/Resource/Blogger/Comments/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Comments/Get.hs
+++ /dev/null
@@ -1,128 +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.Blogger.Comments.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 one comment by ID.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.comments.get@.
-module Network.Google.Resource.Blogger.Comments.Get
-    (
-    -- * REST Resource
-      CommentsGetResource
-
-    -- * Creating a Request
-    , commentsGet
-    , CommentsGet
-
-    -- * Request Lenses
-    , cgBlogId
-    , cgView
-    , cgPostId
-    , cgCommentId
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.comments.get@ method which the
--- 'CommentsGet' request conforms to.
-type CommentsGetResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "posts" :>
-               Capture "postId" Text :>
-                 "comments" :>
-                   Capture "commentId" Text :>
-                     QueryParam "view" CommentsGetView :>
-                       QueryParam "alt" AltJSON :> Get '[JSON] Comment
-
--- | Gets one comment by ID.
---
--- /See:/ 'commentsGet' smart constructor.
-data CommentsGet =
-  CommentsGet'
-    { _cgBlogId    :: !Text
-    , _cgView      :: !(Maybe CommentsGetView)
-    , _cgPostId    :: !Text
-    , _cgCommentId :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommentsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cgBlogId'
---
--- * 'cgView'
---
--- * 'cgPostId'
---
--- * 'cgCommentId'
-commentsGet
-    :: Text -- ^ 'cgBlogId'
-    -> Text -- ^ 'cgPostId'
-    -> Text -- ^ 'cgCommentId'
-    -> CommentsGet
-commentsGet pCgBlogId_ pCgPostId_ pCgCommentId_ =
-  CommentsGet'
-    { _cgBlogId = pCgBlogId_
-    , _cgView = Nothing
-    , _cgPostId = pCgPostId_
-    , _cgCommentId = pCgCommentId_
-    }
-
-
--- | ID of the blog to containing the comment.
-cgBlogId :: Lens' CommentsGet Text
-cgBlogId = lens _cgBlogId (\ s a -> s{_cgBlogId = a})
-
--- | Access level for the requested comment (default: READER). Note that some
--- comments will require elevated permissions, for example comments where
--- the parent posts which is in a draft state, or comments that are pending
--- moderation.
-cgView :: Lens' CommentsGet (Maybe CommentsGetView)
-cgView = lens _cgView (\ s a -> s{_cgView = a})
-
--- | ID of the post to fetch posts from.
-cgPostId :: Lens' CommentsGet Text
-cgPostId = lens _cgPostId (\ s a -> s{_cgPostId = a})
-
--- | The ID of the comment to get.
-cgCommentId :: Lens' CommentsGet Text
-cgCommentId
-  = lens _cgCommentId (\ s a -> s{_cgCommentId = a})
-
-instance GoogleRequest CommentsGet where
-        type Rs CommentsGet = Comment
-        type Scopes CommentsGet =
-             '["https://www.googleapis.com/auth/blogger",
-               "https://www.googleapis.com/auth/blogger.readonly"]
-        requestClient CommentsGet'{..}
-          = go _cgBlogId _cgPostId _cgCommentId _cgView
-              (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy CommentsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Comments/List.hs b/gen/Network/Google/Resource/Blogger/Comments/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Comments/List.hs
+++ /dev/null
@@ -1,192 +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.Blogger.Comments.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)
---
--- Retrieves the comments for a post, possibly filtered.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.comments.list@.
-module Network.Google.Resource.Blogger.Comments.List
-    (
-    -- * REST Resource
-      CommentsListResource
-
-    -- * Creating a Request
-    , commentsList
-    , CommentsList
-
-    -- * Request Lenses
-    , clStatus
-    , clEndDate
-    , clBlogId
-    , clStartDate
-    , clFetchBodies
-    , clView
-    , clPostId
-    , clPageToken
-    , clMaxResults
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.comments.list@ method which the
--- 'CommentsList' request conforms to.
-type CommentsListResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "posts" :>
-               Capture "postId" Text :>
-                 "comments" :>
-                   QueryParams "status" CommentsListStatus :>
-                     QueryParam "endDate" DateTime' :>
-                       QueryParam "startDate" DateTime' :>
-                         QueryParam "fetchBodies" Bool :>
-                           QueryParam "view" CommentsListView :>
-                             QueryParam "pageToken" Text :>
-                               QueryParam "maxResults" (Textual Word32) :>
-                                 QueryParam "alt" AltJSON :>
-                                   Get '[JSON] CommentList
-
--- | Retrieves the comments for a post, possibly filtered.
---
--- /See:/ 'commentsList' smart constructor.
-data CommentsList =
-  CommentsList'
-    { _clStatus      :: !(Maybe [CommentsListStatus])
-    , _clEndDate     :: !(Maybe DateTime')
-    , _clBlogId      :: !Text
-    , _clStartDate   :: !(Maybe DateTime')
-    , _clFetchBodies :: !(Maybe Bool)
-    , _clView        :: !(Maybe CommentsListView)
-    , _clPostId      :: !Text
-    , _clPageToken   :: !(Maybe Text)
-    , _clMaxResults  :: !(Maybe (Textual Word32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommentsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'clStatus'
---
--- * 'clEndDate'
---
--- * 'clBlogId'
---
--- * 'clStartDate'
---
--- * 'clFetchBodies'
---
--- * 'clView'
---
--- * 'clPostId'
---
--- * 'clPageToken'
---
--- * 'clMaxResults'
-commentsList
-    :: Text -- ^ 'clBlogId'
-    -> Text -- ^ 'clPostId'
-    -> CommentsList
-commentsList pClBlogId_ pClPostId_ =
-  CommentsList'
-    { _clStatus = Nothing
-    , _clEndDate = Nothing
-    , _clBlogId = pClBlogId_
-    , _clStartDate = Nothing
-    , _clFetchBodies = Nothing
-    , _clView = Nothing
-    , _clPostId = pClPostId_
-    , _clPageToken = Nothing
-    , _clMaxResults = Nothing
-    }
-
-
-clStatus :: Lens' CommentsList [CommentsListStatus]
-clStatus
-  = lens _clStatus (\ s a -> s{_clStatus = a}) .
-      _Default
-      . _Coerce
-
--- | Latest date of comment to fetch, a date-time with RFC 3339 formatting.
-clEndDate :: Lens' CommentsList (Maybe UTCTime)
-clEndDate
-  = lens _clEndDate (\ s a -> s{_clEndDate = a}) .
-      mapping _DateTime
-
--- | ID of the blog to fetch comments from.
-clBlogId :: Lens' CommentsList Text
-clBlogId = lens _clBlogId (\ s a -> s{_clBlogId = a})
-
--- | Earliest date of comment to fetch, a date-time with RFC 3339 formatting.
-clStartDate :: Lens' CommentsList (Maybe UTCTime)
-clStartDate
-  = lens _clStartDate (\ s a -> s{_clStartDate = a}) .
-      mapping _DateTime
-
--- | Whether the body content of the comments is included.
-clFetchBodies :: Lens' CommentsList (Maybe Bool)
-clFetchBodies
-  = lens _clFetchBodies
-      (\ s a -> s{_clFetchBodies = a})
-
--- | Access level with which to view the returned result. Note that some
--- fields require elevated access.
-clView :: Lens' CommentsList (Maybe CommentsListView)
-clView = lens _clView (\ s a -> s{_clView = a})
-
--- | ID of the post to fetch posts from.
-clPostId :: Lens' CommentsList Text
-clPostId = lens _clPostId (\ s a -> s{_clPostId = a})
-
--- | Continuation token if request is paged.
-clPageToken :: Lens' CommentsList (Maybe Text)
-clPageToken
-  = lens _clPageToken (\ s a -> s{_clPageToken = a})
-
--- | Maximum number of comments to include in the result.
-clMaxResults :: Lens' CommentsList (Maybe Word32)
-clMaxResults
-  = lens _clMaxResults (\ s a -> s{_clMaxResults = a})
-      . mapping _Coerce
-
-instance GoogleRequest CommentsList where
-        type Rs CommentsList = CommentList
-        type Scopes CommentsList =
-             '["https://www.googleapis.com/auth/blogger",
-               "https://www.googleapis.com/auth/blogger.readonly"]
-        requestClient CommentsList'{..}
-          = go _clBlogId _clPostId (_clStatus ^. _Default)
-              _clEndDate
-              _clStartDate
-              _clFetchBodies
-              _clView
-              _clPageToken
-              _clMaxResults
-              (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy CommentsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Comments/ListByBlog.hs b/gen/Network/Google/Resource/Blogger/Comments/ListByBlog.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Comments/ListByBlog.hs
+++ /dev/null
@@ -1,172 +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.Blogger.Comments.ListByBlog
--- 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)
---
--- Retrieves the comments for a blog, across all posts, possibly filtered.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.comments.listByBlog@.
-module Network.Google.Resource.Blogger.Comments.ListByBlog
-    (
-    -- * REST Resource
-      CommentsListByBlogResource
-
-    -- * Creating a Request
-    , commentsListByBlog
-    , CommentsListByBlog
-
-    -- * Request Lenses
-    , clbbStatus
-    , clbbEndDate
-    , clbbBlogId
-    , clbbStartDate
-    , clbbFetchBodies
-    , clbbPageToken
-    , clbbMaxResults
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.comments.listByBlog@ method which the
--- 'CommentsListByBlog' request conforms to.
-type CommentsListByBlogResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "comments" :>
-               QueryParams "status" CommentsListByBlogStatus :>
-                 QueryParam "endDate" DateTime' :>
-                   QueryParam "startDate" DateTime' :>
-                     QueryParam "fetchBodies" Bool :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :> Get '[JSON] CommentList
-
--- | Retrieves the comments for a blog, across all posts, possibly filtered.
---
--- /See:/ 'commentsListByBlog' smart constructor.
-data CommentsListByBlog =
-  CommentsListByBlog'
-    { _clbbStatus      :: !(Maybe [CommentsListByBlogStatus])
-    , _clbbEndDate     :: !(Maybe DateTime')
-    , _clbbBlogId      :: !Text
-    , _clbbStartDate   :: !(Maybe DateTime')
-    , _clbbFetchBodies :: !(Maybe Bool)
-    , _clbbPageToken   :: !(Maybe Text)
-    , _clbbMaxResults  :: !(Maybe (Textual Word32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommentsListByBlog' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'clbbStatus'
---
--- * 'clbbEndDate'
---
--- * 'clbbBlogId'
---
--- * 'clbbStartDate'
---
--- * 'clbbFetchBodies'
---
--- * 'clbbPageToken'
---
--- * 'clbbMaxResults'
-commentsListByBlog
-    :: Text -- ^ 'clbbBlogId'
-    -> CommentsListByBlog
-commentsListByBlog pClbbBlogId_ =
-  CommentsListByBlog'
-    { _clbbStatus = Nothing
-    , _clbbEndDate = Nothing
-    , _clbbBlogId = pClbbBlogId_
-    , _clbbStartDate = Nothing
-    , _clbbFetchBodies = Nothing
-    , _clbbPageToken = Nothing
-    , _clbbMaxResults = Nothing
-    }
-
-
-clbbStatus :: Lens' CommentsListByBlog [CommentsListByBlogStatus]
-clbbStatus
-  = lens _clbbStatus (\ s a -> s{_clbbStatus = a}) .
-      _Default
-      . _Coerce
-
--- | Latest date of comment to fetch, a date-time with RFC 3339 formatting.
-clbbEndDate :: Lens' CommentsListByBlog (Maybe UTCTime)
-clbbEndDate
-  = lens _clbbEndDate (\ s a -> s{_clbbEndDate = a}) .
-      mapping _DateTime
-
--- | ID of the blog to fetch comments from.
-clbbBlogId :: Lens' CommentsListByBlog Text
-clbbBlogId
-  = lens _clbbBlogId (\ s a -> s{_clbbBlogId = a})
-
--- | Earliest date of comment to fetch, a date-time with RFC 3339 formatting.
-clbbStartDate :: Lens' CommentsListByBlog (Maybe UTCTime)
-clbbStartDate
-  = lens _clbbStartDate
-      (\ s a -> s{_clbbStartDate = a})
-      . mapping _DateTime
-
--- | Whether the body content of the comments is included.
-clbbFetchBodies :: Lens' CommentsListByBlog (Maybe Bool)
-clbbFetchBodies
-  = lens _clbbFetchBodies
-      (\ s a -> s{_clbbFetchBodies = a})
-
--- | Continuation token if request is paged.
-clbbPageToken :: Lens' CommentsListByBlog (Maybe Text)
-clbbPageToken
-  = lens _clbbPageToken
-      (\ s a -> s{_clbbPageToken = a})
-
--- | Maximum number of comments to include in the result.
-clbbMaxResults :: Lens' CommentsListByBlog (Maybe Word32)
-clbbMaxResults
-  = lens _clbbMaxResults
-      (\ s a -> s{_clbbMaxResults = a})
-      . mapping _Coerce
-
-instance GoogleRequest CommentsListByBlog where
-        type Rs CommentsListByBlog = CommentList
-        type Scopes CommentsListByBlog =
-             '["https://www.googleapis.com/auth/blogger",
-               "https://www.googleapis.com/auth/blogger.readonly"]
-        requestClient CommentsListByBlog'{..}
-          = go _clbbBlogId (_clbbStatus ^. _Default)
-              _clbbEndDate
-              _clbbStartDate
-              _clbbFetchBodies
-              _clbbPageToken
-              _clbbMaxResults
-              (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy CommentsListByBlogResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Comments/MarkAsSpam.hs b/gen/Network/Google/Resource/Blogger/Comments/MarkAsSpam.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Comments/MarkAsSpam.hs
+++ /dev/null
@@ -1,119 +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.Blogger.Comments.MarkAsSpam
--- 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)
---
--- Marks a comment as spam.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.comments.markAsSpam@.
-module Network.Google.Resource.Blogger.Comments.MarkAsSpam
-    (
-    -- * REST Resource
-      CommentsMarkAsSpamResource
-
-    -- * Creating a Request
-    , commentsMarkAsSpam
-    , CommentsMarkAsSpam
-
-    -- * Request Lenses
-    , cmasBlogId
-    , cmasPostId
-    , cmasCommentId
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.comments.markAsSpam@ method which the
--- 'CommentsMarkAsSpam' request conforms to.
-type CommentsMarkAsSpamResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "posts" :>
-               Capture "postId" Text :>
-                 "comments" :>
-                   Capture "commentId" Text :>
-                     "spam" :>
-                       QueryParam "alt" AltJSON :> Post '[JSON] Comment
-
--- | Marks a comment as spam.
---
--- /See:/ 'commentsMarkAsSpam' smart constructor.
-data CommentsMarkAsSpam =
-  CommentsMarkAsSpam'
-    { _cmasBlogId    :: !Text
-    , _cmasPostId    :: !Text
-    , _cmasCommentId :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommentsMarkAsSpam' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cmasBlogId'
---
--- * 'cmasPostId'
---
--- * 'cmasCommentId'
-commentsMarkAsSpam
-    :: Text -- ^ 'cmasBlogId'
-    -> Text -- ^ 'cmasPostId'
-    -> Text -- ^ 'cmasCommentId'
-    -> CommentsMarkAsSpam
-commentsMarkAsSpam pCmasBlogId_ pCmasPostId_ pCmasCommentId_ =
-  CommentsMarkAsSpam'
-    { _cmasBlogId = pCmasBlogId_
-    , _cmasPostId = pCmasPostId_
-    , _cmasCommentId = pCmasCommentId_
-    }
-
-
--- | The ID of the Blog.
-cmasBlogId :: Lens' CommentsMarkAsSpam Text
-cmasBlogId
-  = lens _cmasBlogId (\ s a -> s{_cmasBlogId = a})
-
--- | The ID of the Post.
-cmasPostId :: Lens' CommentsMarkAsSpam Text
-cmasPostId
-  = lens _cmasPostId (\ s a -> s{_cmasPostId = a})
-
--- | The ID of the comment to mark as spam.
-cmasCommentId :: Lens' CommentsMarkAsSpam Text
-cmasCommentId
-  = lens _cmasCommentId
-      (\ s a -> s{_cmasCommentId = a})
-
-instance GoogleRequest CommentsMarkAsSpam where
-        type Rs CommentsMarkAsSpam = Comment
-        type Scopes CommentsMarkAsSpam =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient CommentsMarkAsSpam'{..}
-          = go _cmasBlogId _cmasPostId _cmasCommentId
-              (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy CommentsMarkAsSpamResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Comments/RemoveContent.hs b/gen/Network/Google/Resource/Blogger/Comments/RemoveContent.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Comments/RemoveContent.hs
+++ /dev/null
@@ -1,118 +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.Blogger.Comments.RemoveContent
--- 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)
---
--- Removes the content of a comment.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.comments.removeContent@.
-module Network.Google.Resource.Blogger.Comments.RemoveContent
-    (
-    -- * REST Resource
-      CommentsRemoveContentResource
-
-    -- * Creating a Request
-    , commentsRemoveContent
-    , CommentsRemoveContent
-
-    -- * Request Lenses
-    , crcBlogId
-    , crcPostId
-    , crcCommentId
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.comments.removeContent@ method which the
--- 'CommentsRemoveContent' request conforms to.
-type CommentsRemoveContentResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "posts" :>
-               Capture "postId" Text :>
-                 "comments" :>
-                   Capture "commentId" Text :>
-                     "removecontent" :>
-                       QueryParam "alt" AltJSON :> Post '[JSON] Comment
-
--- | Removes the content of a comment.
---
--- /See:/ 'commentsRemoveContent' smart constructor.
-data CommentsRemoveContent =
-  CommentsRemoveContent'
-    { _crcBlogId    :: !Text
-    , _crcPostId    :: !Text
-    , _crcCommentId :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommentsRemoveContent' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'crcBlogId'
---
--- * 'crcPostId'
---
--- * 'crcCommentId'
-commentsRemoveContent
-    :: Text -- ^ 'crcBlogId'
-    -> Text -- ^ 'crcPostId'
-    -> Text -- ^ 'crcCommentId'
-    -> CommentsRemoveContent
-commentsRemoveContent pCrcBlogId_ pCrcPostId_ pCrcCommentId_ =
-  CommentsRemoveContent'
-    { _crcBlogId = pCrcBlogId_
-    , _crcPostId = pCrcPostId_
-    , _crcCommentId = pCrcCommentId_
-    }
-
-
--- | The ID of the Blog.
-crcBlogId :: Lens' CommentsRemoveContent Text
-crcBlogId
-  = lens _crcBlogId (\ s a -> s{_crcBlogId = a})
-
--- | The ID of the Post.
-crcPostId :: Lens' CommentsRemoveContent Text
-crcPostId
-  = lens _crcPostId (\ s a -> s{_crcPostId = a})
-
--- | The ID of the comment to delete content from.
-crcCommentId :: Lens' CommentsRemoveContent Text
-crcCommentId
-  = lens _crcCommentId (\ s a -> s{_crcCommentId = a})
-
-instance GoogleRequest CommentsRemoveContent where
-        type Rs CommentsRemoveContent = Comment
-        type Scopes CommentsRemoveContent =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient CommentsRemoveContent'{..}
-          = go _crcBlogId _crcPostId _crcCommentId
-              (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy CommentsRemoveContentResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/PageViews/Get.hs b/gen/Network/Google/Resource/Blogger/PageViews/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/PageViews/Get.hs
+++ /dev/null
@@ -1,100 +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.Blogger.PageViews.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)
---
--- Retrieve pageview stats for a Blog.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pageViews.get@.
-module Network.Google.Resource.Blogger.PageViews.Get
-    (
-    -- * REST Resource
-      PageViewsGetResource
-
-    -- * Creating a Request
-    , pageViewsGet
-    , PageViewsGet
-
-    -- * Request Lenses
-    , pvgBlogId
-    , pvgRange
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.pageViews.get@ method which the
--- 'PageViewsGet' request conforms to.
-type PageViewsGetResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "pageviews" :>
-               QueryParams "range" PageViewsGetRange :>
-                 QueryParam "alt" AltJSON :> Get '[JSON] Pageviews
-
--- | Retrieve pageview stats for a Blog.
---
--- /See:/ 'pageViewsGet' smart constructor.
-data PageViewsGet =
-  PageViewsGet'
-    { _pvgBlogId :: !Text
-    , _pvgRange  :: !(Maybe [PageViewsGetRange])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PageViewsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pvgBlogId'
---
--- * 'pvgRange'
-pageViewsGet
-    :: Text -- ^ 'pvgBlogId'
-    -> PageViewsGet
-pageViewsGet pPvgBlogId_ =
-  PageViewsGet' {_pvgBlogId = pPvgBlogId_, _pvgRange = Nothing}
-
-
--- | The ID of the blog to get.
-pvgBlogId :: Lens' PageViewsGet Text
-pvgBlogId
-  = lens _pvgBlogId (\ s a -> s{_pvgBlogId = a})
-
-pvgRange :: Lens' PageViewsGet [PageViewsGetRange]
-pvgRange
-  = lens _pvgRange (\ s a -> s{_pvgRange = a}) .
-      _Default
-      . _Coerce
-
-instance GoogleRequest PageViewsGet where
-        type Rs PageViewsGet = Pageviews
-        type Scopes PageViewsGet =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient PageViewsGet'{..}
-          = go _pvgBlogId (_pvgRange ^. _Default)
-              (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PageViewsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Pages/Delete.hs b/gen/Network/Google/Resource/Blogger/Pages/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Pages/Delete.hs
+++ /dev/null
@@ -1,99 +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.Blogger.Pages.Delete
--- 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)
---
--- Delete a page by ID.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pages.delete@.
-module Network.Google.Resource.Blogger.Pages.Delete
-    (
-    -- * REST Resource
-      PagesDeleteResource
-
-    -- * Creating a Request
-    , pagesDelete
-    , PagesDelete
-
-    -- * Request Lenses
-    , pddBlogId
-    , pddPageId
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.pages.delete@ method which the
--- 'PagesDelete' request conforms to.
-type PagesDeleteResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "pages" :>
-               Capture "pageId" Text :>
-                 QueryParam "alt" AltJSON :> Delete '[JSON] ()
-
--- | Delete a page by ID.
---
--- /See:/ 'pagesDelete' smart constructor.
-data PagesDelete =
-  PagesDelete'
-    { _pddBlogId :: !Text
-    , _pddPageId :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PagesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pddBlogId'
---
--- * 'pddPageId'
-pagesDelete
-    :: Text -- ^ 'pddBlogId'
-    -> Text -- ^ 'pddPageId'
-    -> PagesDelete
-pagesDelete pPddBlogId_ pPddPageId_ =
-  PagesDelete' {_pddBlogId = pPddBlogId_, _pddPageId = pPddPageId_}
-
-
--- | The ID of the Blog.
-pddBlogId :: Lens' PagesDelete Text
-pddBlogId
-  = lens _pddBlogId (\ s a -> s{_pddBlogId = a})
-
--- | The ID of the Page.
-pddPageId :: Lens' PagesDelete Text
-pddPageId
-  = lens _pddPageId (\ s a -> s{_pddPageId = a})
-
-instance GoogleRequest PagesDelete where
-        type Rs PagesDelete = ()
-        type Scopes PagesDelete =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient PagesDelete'{..}
-          = go _pddBlogId _pddPageId (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PagesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Pages/Get.hs b/gen/Network/Google/Resource/Blogger/Pages/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Pages/Get.hs
+++ /dev/null
@@ -1,106 +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.Blogger.Pages.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 one blog page by ID.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pages.get@.
-module Network.Google.Resource.Blogger.Pages.Get
-    (
-    -- * REST Resource
-      PagesGetResource
-
-    -- * Creating a Request
-    , pagesGet
-    , PagesGet
-
-    -- * Request Lenses
-    , pgBlogId
-    , pgPageId
-    , pgView
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.pages.get@ method which the
--- 'PagesGet' request conforms to.
-type PagesGetResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "pages" :>
-               Capture "pageId" Text :>
-                 QueryParam "view" PagesGetView :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] Page
-
--- | Gets one blog page by ID.
---
--- /See:/ 'pagesGet' smart constructor.
-data PagesGet =
-  PagesGet'
-    { _pgBlogId :: !Text
-    , _pgPageId :: !Text
-    , _pgView   :: !(Maybe PagesGetView)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PagesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pgBlogId'
---
--- * 'pgPageId'
---
--- * 'pgView'
-pagesGet
-    :: Text -- ^ 'pgBlogId'
-    -> Text -- ^ 'pgPageId'
-    -> PagesGet
-pagesGet pPgBlogId_ pPgPageId_ =
-  PagesGet' {_pgBlogId = pPgBlogId_, _pgPageId = pPgPageId_, _pgView = Nothing}
-
-
--- | ID of the blog containing the page.
-pgBlogId :: Lens' PagesGet Text
-pgBlogId = lens _pgBlogId (\ s a -> s{_pgBlogId = a})
-
--- | The ID of the page to get.
-pgPageId :: Lens' PagesGet Text
-pgPageId = lens _pgPageId (\ s a -> s{_pgPageId = a})
-
-pgView :: Lens' PagesGet (Maybe PagesGetView)
-pgView = lens _pgView (\ s a -> s{_pgView = a})
-
-instance GoogleRequest PagesGet where
-        type Rs PagesGet = Page
-        type Scopes PagesGet =
-             '["https://www.googleapis.com/auth/blogger",
-               "https://www.googleapis.com/auth/blogger.readonly"]
-        requestClient PagesGet'{..}
-          = go _pgBlogId _pgPageId _pgView (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PagesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Pages/Insert.hs b/gen/Network/Google/Resource/Blogger/Pages/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Pages/Insert.hs
+++ /dev/null
@@ -1,109 +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.Blogger.Pages.Insert
--- 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)
---
--- Add a page.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pages.insert@.
-module Network.Google.Resource.Blogger.Pages.Insert
-    (
-    -- * REST Resource
-      PagesInsertResource
-
-    -- * Creating a Request
-    , pagesInsert
-    , PagesInsert
-
-    -- * Request Lenses
-    , piIsDraft
-    , piBlogId
-    , piPayload
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.pages.insert@ method which the
--- 'PagesInsert' request conforms to.
-type PagesInsertResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "pages" :>
-               QueryParam "isDraft" Bool :>
-                 QueryParam "alt" AltJSON :>
-                   ReqBody '[JSON] Page :> Post '[JSON] Page
-
--- | Add a page.
---
--- /See:/ 'pagesInsert' smart constructor.
-data PagesInsert =
-  PagesInsert'
-    { _piIsDraft :: !(Maybe Bool)
-    , _piBlogId  :: !Text
-    , _piPayload :: !Page
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PagesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'piIsDraft'
---
--- * 'piBlogId'
---
--- * 'piPayload'
-pagesInsert
-    :: Text -- ^ 'piBlogId'
-    -> Page -- ^ 'piPayload'
-    -> PagesInsert
-pagesInsert pPiBlogId_ pPiPayload_ =
-  PagesInsert'
-    {_piIsDraft = Nothing, _piBlogId = pPiBlogId_, _piPayload = pPiPayload_}
-
-
--- | Whether to create the page as a draft (default: false).
-piIsDraft :: Lens' PagesInsert (Maybe Bool)
-piIsDraft
-  = lens _piIsDraft (\ s a -> s{_piIsDraft = a})
-
--- | ID of the blog to add the page to.
-piBlogId :: Lens' PagesInsert Text
-piBlogId = lens _piBlogId (\ s a -> s{_piBlogId = a})
-
--- | Multipart request metadata.
-piPayload :: Lens' PagesInsert Page
-piPayload
-  = lens _piPayload (\ s a -> s{_piPayload = a})
-
-instance GoogleRequest PagesInsert where
-        type Rs PagesInsert = Page
-        type Scopes PagesInsert =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient PagesInsert'{..}
-          = go _piBlogId _piIsDraft (Just AltJSON) _piPayload
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PagesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Pages/List.hs b/gen/Network/Google/Resource/Blogger/Pages/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Pages/List.hs
+++ /dev/null
@@ -1,152 +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.Blogger.Pages.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)
---
--- Retrieves the pages for a blog, optionally including non-LIVE statuses.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pages.list@.
-module Network.Google.Resource.Blogger.Pages.List
-    (
-    -- * REST Resource
-      PagesListResource
-
-    -- * Creating a Request
-    , pagesList
-    , PagesList
-
-    -- * Request Lenses
-    , plStatus
-    , plBlogId
-    , plFetchBodies
-    , plView
-    , plPageToken
-    , plMaxResults
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.pages.list@ method which the
--- 'PagesList' request conforms to.
-type PagesListResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "pages" :>
-               QueryParams "status" PagesListStatus :>
-                 QueryParam "fetchBodies" Bool :>
-                   QueryParam "view" PagesListView :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :> Get '[JSON] PageList
-
--- | Retrieves the pages for a blog, optionally including non-LIVE statuses.
---
--- /See:/ 'pagesList' smart constructor.
-data PagesList =
-  PagesList'
-    { _plStatus      :: !(Maybe [PagesListStatus])
-    , _plBlogId      :: !Text
-    , _plFetchBodies :: !(Maybe Bool)
-    , _plView        :: !(Maybe PagesListView)
-    , _plPageToken   :: !(Maybe Text)
-    , _plMaxResults  :: !(Maybe (Textual Word32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PagesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'plStatus'
---
--- * 'plBlogId'
---
--- * 'plFetchBodies'
---
--- * 'plView'
---
--- * 'plPageToken'
---
--- * 'plMaxResults'
-pagesList
-    :: Text -- ^ 'plBlogId'
-    -> PagesList
-pagesList pPlBlogId_ =
-  PagesList'
-    { _plStatus = Nothing
-    , _plBlogId = pPlBlogId_
-    , _plFetchBodies = Nothing
-    , _plView = Nothing
-    , _plPageToken = Nothing
-    , _plMaxResults = Nothing
-    }
-
-
-plStatus :: Lens' PagesList [PagesListStatus]
-plStatus
-  = lens _plStatus (\ s a -> s{_plStatus = a}) .
-      _Default
-      . _Coerce
-
--- | ID of the blog to fetch Pages from.
-plBlogId :: Lens' PagesList Text
-plBlogId = lens _plBlogId (\ s a -> s{_plBlogId = a})
-
--- | Whether to retrieve the Page bodies.
-plFetchBodies :: Lens' PagesList (Maybe Bool)
-plFetchBodies
-  = lens _plFetchBodies
-      (\ s a -> s{_plFetchBodies = a})
-
--- | Access level with which to view the returned result. Note that some
--- fields require elevated access.
-plView :: Lens' PagesList (Maybe PagesListView)
-plView = lens _plView (\ s a -> s{_plView = a})
-
--- | Continuation token if the request is paged.
-plPageToken :: Lens' PagesList (Maybe Text)
-plPageToken
-  = lens _plPageToken (\ s a -> s{_plPageToken = a})
-
--- | Maximum number of Pages to fetch.
-plMaxResults :: Lens' PagesList (Maybe Word32)
-plMaxResults
-  = lens _plMaxResults (\ s a -> s{_plMaxResults = a})
-      . mapping _Coerce
-
-instance GoogleRequest PagesList where
-        type Rs PagesList = PageList
-        type Scopes PagesList =
-             '["https://www.googleapis.com/auth/blogger",
-               "https://www.googleapis.com/auth/blogger.readonly"]
-        requestClient PagesList'{..}
-          = go _plBlogId (_plStatus ^. _Default) _plFetchBodies
-              _plView
-              _plPageToken
-              _plMaxResults
-              (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PagesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Pages/Patch.hs b/gen/Network/Google/Resource/Blogger/Pages/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Pages/Patch.hs
+++ /dev/null
@@ -1,137 +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.Blogger.Pages.Patch
--- 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)
---
--- Update a page. This method supports patch semantics.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pages.patch@.
-module Network.Google.Resource.Blogger.Pages.Patch
-    (
-    -- * REST Resource
-      PagesPatchResource
-
-    -- * Creating a Request
-    , pagesPatch
-    , PagesPatch
-
-    -- * Request Lenses
-    , ppBlogId
-    , ppPageId
-    , ppPayload
-    , ppRevert
-    , ppPublish
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.pages.patch@ method which the
--- 'PagesPatch' request conforms to.
-type PagesPatchResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "pages" :>
-               Capture "pageId" Text :>
-                 QueryParam "revert" Bool :>
-                   QueryParam "publish" Bool :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Page :> Patch '[JSON] Page
-
--- | Update a page. This method supports patch semantics.
---
--- /See:/ 'pagesPatch' smart constructor.
-data PagesPatch =
-  PagesPatch'
-    { _ppBlogId  :: !Text
-    , _ppPageId  :: !Text
-    , _ppPayload :: !Page
-    , _ppRevert  :: !(Maybe Bool)
-    , _ppPublish :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PagesPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ppBlogId'
---
--- * 'ppPageId'
---
--- * 'ppPayload'
---
--- * 'ppRevert'
---
--- * 'ppPublish'
-pagesPatch
-    :: Text -- ^ 'ppBlogId'
-    -> Text -- ^ 'ppPageId'
-    -> Page -- ^ 'ppPayload'
-    -> PagesPatch
-pagesPatch pPpBlogId_ pPpPageId_ pPpPayload_ =
-  PagesPatch'
-    { _ppBlogId = pPpBlogId_
-    , _ppPageId = pPpPageId_
-    , _ppPayload = pPpPayload_
-    , _ppRevert = Nothing
-    , _ppPublish = Nothing
-    }
-
-
--- | The ID of the Blog.
-ppBlogId :: Lens' PagesPatch Text
-ppBlogId = lens _ppBlogId (\ s a -> s{_ppBlogId = a})
-
--- | The ID of the Page.
-ppPageId :: Lens' PagesPatch Text
-ppPageId = lens _ppPageId (\ s a -> s{_ppPageId = a})
-
--- | Multipart request metadata.
-ppPayload :: Lens' PagesPatch Page
-ppPayload
-  = lens _ppPayload (\ s a -> s{_ppPayload = a})
-
--- | Whether a revert action should be performed when the page is updated
--- (default: false).
-ppRevert :: Lens' PagesPatch (Maybe Bool)
-ppRevert = lens _ppRevert (\ s a -> s{_ppRevert = a})
-
--- | Whether a publish action should be performed when the page is updated
--- (default: false).
-ppPublish :: Lens' PagesPatch (Maybe Bool)
-ppPublish
-  = lens _ppPublish (\ s a -> s{_ppPublish = a})
-
-instance GoogleRequest PagesPatch where
-        type Rs PagesPatch = Page
-        type Scopes PagesPatch =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient PagesPatch'{..}
-          = go _ppBlogId _ppPageId _ppRevert _ppPublish
-              (Just AltJSON)
-              _ppPayload
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PagesPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Pages/Publish.hs b/gen/Network/Google/Resource/Blogger/Pages/Publish.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Pages/Publish.hs
+++ /dev/null
@@ -1,100 +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.Blogger.Pages.Publish
--- 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)
---
--- Publishes a draft page.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pages.publish@.
-module Network.Google.Resource.Blogger.Pages.Publish
-    (
-    -- * REST Resource
-      PagesPublishResource
-
-    -- * Creating a Request
-    , pagesPublish
-    , PagesPublish
-
-    -- * Request Lenses
-    , pagaBlogId
-    , pagaPageId
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.pages.publish@ method which the
--- 'PagesPublish' request conforms to.
-type PagesPublishResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "pages" :>
-               Capture "pageId" Text :>
-                 "publish" :>
-                   QueryParam "alt" AltJSON :> Post '[JSON] Page
-
--- | Publishes a draft page.
---
--- /See:/ 'pagesPublish' smart constructor.
-data PagesPublish =
-  PagesPublish'
-    { _pagaBlogId :: !Text
-    , _pagaPageId :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PagesPublish' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pagaBlogId'
---
--- * 'pagaPageId'
-pagesPublish
-    :: Text -- ^ 'pagaBlogId'
-    -> Text -- ^ 'pagaPageId'
-    -> PagesPublish
-pagesPublish pPagaBlogId_ pPagaPageId_ =
-  PagesPublish' {_pagaBlogId = pPagaBlogId_, _pagaPageId = pPagaPageId_}
-
-
--- | The ID of the blog.
-pagaBlogId :: Lens' PagesPublish Text
-pagaBlogId
-  = lens _pagaBlogId (\ s a -> s{_pagaBlogId = a})
-
--- | The ID of the page.
-pagaPageId :: Lens' PagesPublish Text
-pagaPageId
-  = lens _pagaPageId (\ s a -> s{_pagaPageId = a})
-
-instance GoogleRequest PagesPublish where
-        type Rs PagesPublish = Page
-        type Scopes PagesPublish =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient PagesPublish'{..}
-          = go _pagaBlogId _pagaPageId (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PagesPublishResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Pages/Revert.hs b/gen/Network/Google/Resource/Blogger/Pages/Revert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Pages/Revert.hs
+++ /dev/null
@@ -1,100 +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.Blogger.Pages.Revert
--- 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)
---
--- Revert a published or scheduled page to draft state.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pages.revert@.
-module Network.Google.Resource.Blogger.Pages.Revert
-    (
-    -- * REST Resource
-      PagesRevertResource
-
-    -- * Creating a Request
-    , pagesRevert
-    , PagesRevert
-
-    -- * Request Lenses
-    , pagBlogId
-    , pagPageId
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.pages.revert@ method which the
--- 'PagesRevert' request conforms to.
-type PagesRevertResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "pages" :>
-               Capture "pageId" Text :>
-                 "revert" :>
-                   QueryParam "alt" AltJSON :> Post '[JSON] Page
-
--- | Revert a published or scheduled page to draft state.
---
--- /See:/ 'pagesRevert' smart constructor.
-data PagesRevert =
-  PagesRevert'
-    { _pagBlogId :: !Text
-    , _pagPageId :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PagesRevert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pagBlogId'
---
--- * 'pagPageId'
-pagesRevert
-    :: Text -- ^ 'pagBlogId'
-    -> Text -- ^ 'pagPageId'
-    -> PagesRevert
-pagesRevert pPagBlogId_ pPagPageId_ =
-  PagesRevert' {_pagBlogId = pPagBlogId_, _pagPageId = pPagPageId_}
-
-
--- | The ID of the blog.
-pagBlogId :: Lens' PagesRevert Text
-pagBlogId
-  = lens _pagBlogId (\ s a -> s{_pagBlogId = a})
-
--- | The ID of the page.
-pagPageId :: Lens' PagesRevert Text
-pagPageId
-  = lens _pagPageId (\ s a -> s{_pagPageId = a})
-
-instance GoogleRequest PagesRevert where
-        type Rs PagesRevert = Page
-        type Scopes PagesRevert =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient PagesRevert'{..}
-          = go _pagBlogId _pagPageId (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PagesRevertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Pages/Update.hs b/gen/Network/Google/Resource/Blogger/Pages/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Pages/Update.hs
+++ /dev/null
@@ -1,140 +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.Blogger.Pages.Update
--- 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)
---
--- Update a page.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.pages.update@.
-module Network.Google.Resource.Blogger.Pages.Update
-    (
-    -- * REST Resource
-      PagesUpdateResource
-
-    -- * Creating a Request
-    , pagesUpdate
-    , PagesUpdate
-
-    -- * Request Lenses
-    , puuBlogId
-    , puuPageId
-    , puuPayload
-    , puuRevert
-    , puuPublish
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.pages.update@ method which the
--- 'PagesUpdate' request conforms to.
-type PagesUpdateResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "pages" :>
-               Capture "pageId" Text :>
-                 QueryParam "revert" Bool :>
-                   QueryParam "publish" Bool :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Page :> Put '[JSON] Page
-
--- | Update a page.
---
--- /See:/ 'pagesUpdate' smart constructor.
-data PagesUpdate =
-  PagesUpdate'
-    { _puuBlogId  :: !Text
-    , _puuPageId  :: !Text
-    , _puuPayload :: !Page
-    , _puuRevert  :: !(Maybe Bool)
-    , _puuPublish :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PagesUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'puuBlogId'
---
--- * 'puuPageId'
---
--- * 'puuPayload'
---
--- * 'puuRevert'
---
--- * 'puuPublish'
-pagesUpdate
-    :: Text -- ^ 'puuBlogId'
-    -> Text -- ^ 'puuPageId'
-    -> Page -- ^ 'puuPayload'
-    -> PagesUpdate
-pagesUpdate pPuuBlogId_ pPuuPageId_ pPuuPayload_ =
-  PagesUpdate'
-    { _puuBlogId = pPuuBlogId_
-    , _puuPageId = pPuuPageId_
-    , _puuPayload = pPuuPayload_
-    , _puuRevert = Nothing
-    , _puuPublish = Nothing
-    }
-
-
--- | The ID of the Blog.
-puuBlogId :: Lens' PagesUpdate Text
-puuBlogId
-  = lens _puuBlogId (\ s a -> s{_puuBlogId = a})
-
--- | The ID of the Page.
-puuPageId :: Lens' PagesUpdate Text
-puuPageId
-  = lens _puuPageId (\ s a -> s{_puuPageId = a})
-
--- | Multipart request metadata.
-puuPayload :: Lens' PagesUpdate Page
-puuPayload
-  = lens _puuPayload (\ s a -> s{_puuPayload = a})
-
--- | Whether a revert action should be performed when the page is updated
--- (default: false).
-puuRevert :: Lens' PagesUpdate (Maybe Bool)
-puuRevert
-  = lens _puuRevert (\ s a -> s{_puuRevert = a})
-
--- | Whether a publish action should be performed when the page is updated
--- (default: false).
-puuPublish :: Lens' PagesUpdate (Maybe Bool)
-puuPublish
-  = lens _puuPublish (\ s a -> s{_puuPublish = a})
-
-instance GoogleRequest PagesUpdate where
-        type Rs PagesUpdate = Page
-        type Scopes PagesUpdate =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient PagesUpdate'{..}
-          = go _puuBlogId _puuPageId _puuRevert _puuPublish
-              (Just AltJSON)
-              _puuPayload
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PagesUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/PostUserInfos/Get.hs b/gen/Network/Google/Resource/Blogger/PostUserInfos/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/PostUserInfos/Get.hs
+++ /dev/null
@@ -1,137 +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.Blogger.PostUserInfos.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 one post and user info pair, by post ID and user ID. The post user
--- info contains per-user information about the post, such as access
--- rights, specific to the user.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.postUserInfos.get@.
-module Network.Google.Resource.Blogger.PostUserInfos.Get
-    (
-    -- * REST Resource
-      PostUserInfosGetResource
-
-    -- * Creating a Request
-    , postUserInfosGet
-    , PostUserInfosGet
-
-    -- * Request Lenses
-    , puigBlogId
-    , puigMaxComments
-    , puigUserId
-    , puigPostId
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.postUserInfos.get@ method which the
--- 'PostUserInfosGet' request conforms to.
-type PostUserInfosGetResource =
-     "blogger" :>
-       "v3" :>
-         "users" :>
-           Capture "userId" Text :>
-             "blogs" :>
-               Capture "blogId" Text :>
-                 "posts" :>
-                   Capture "postId" Text :>
-                     QueryParam "maxComments" (Textual Word32) :>
-                       QueryParam "alt" AltJSON :> Get '[JSON] PostUserInfo
-
--- | Gets one post and user info pair, by post ID and user ID. The post user
--- info contains per-user information about the post, such as access
--- rights, specific to the user.
---
--- /See:/ 'postUserInfosGet' smart constructor.
-data PostUserInfosGet =
-  PostUserInfosGet'
-    { _puigBlogId      :: !Text
-    , _puigMaxComments :: !(Maybe (Textual Word32))
-    , _puigUserId      :: !Text
-    , _puigPostId      :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostUserInfosGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'puigBlogId'
---
--- * 'puigMaxComments'
---
--- * 'puigUserId'
---
--- * 'puigPostId'
-postUserInfosGet
-    :: Text -- ^ 'puigBlogId'
-    -> Text -- ^ 'puigUserId'
-    -> Text -- ^ 'puigPostId'
-    -> PostUserInfosGet
-postUserInfosGet pPuigBlogId_ pPuigUserId_ pPuigPostId_ =
-  PostUserInfosGet'
-    { _puigBlogId = pPuigBlogId_
-    , _puigMaxComments = Nothing
-    , _puigUserId = pPuigUserId_
-    , _puigPostId = pPuigPostId_
-    }
-
-
--- | The ID of the blog.
-puigBlogId :: Lens' PostUserInfosGet Text
-puigBlogId
-  = lens _puigBlogId (\ s a -> s{_puigBlogId = a})
-
--- | Maximum number of comments to pull back on a post.
-puigMaxComments :: Lens' PostUserInfosGet (Maybe Word32)
-puigMaxComments
-  = lens _puigMaxComments
-      (\ s a -> s{_puigMaxComments = a})
-      . mapping _Coerce
-
--- | ID of the user for the per-user information to be fetched. Either the
--- word \'self\' (sans quote marks) or the user\'s profile identifier.
-puigUserId :: Lens' PostUserInfosGet Text
-puigUserId
-  = lens _puigUserId (\ s a -> s{_puigUserId = a})
-
--- | The ID of the post to get.
-puigPostId :: Lens' PostUserInfosGet Text
-puigPostId
-  = lens _puigPostId (\ s a -> s{_puigPostId = a})
-
-instance GoogleRequest PostUserInfosGet where
-        type Rs PostUserInfosGet = PostUserInfo
-        type Scopes PostUserInfosGet =
-             '["https://www.googleapis.com/auth/blogger",
-               "https://www.googleapis.com/auth/blogger.readonly"]
-        requestClient PostUserInfosGet'{..}
-          = go _puigUserId _puigBlogId _puigPostId
-              _puigMaxComments
-              (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy PostUserInfosGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/PostUserInfos/List.hs b/gen/Network/Google/Resource/Blogger/PostUserInfos/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/PostUserInfos/List.hs
+++ /dev/null
@@ -1,228 +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.Blogger.PostUserInfos.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)
---
--- Retrieves a list of post and post user info pairs, possibly filtered.
--- The post user info contains per-user information about the post, such as
--- access rights, specific to the user.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.postUserInfos.list@.
-module Network.Google.Resource.Blogger.PostUserInfos.List
-    (
-    -- * REST Resource
-      PostUserInfosListResource
-
-    -- * Creating a Request
-    , postUserInfosList'
-    , PostUserInfosList'
-
-    -- * Request Lenses
-    , puilStatus
-    , puilOrderBy
-    , puilEndDate
-    , puilBlogId
-    , puilUserId
-    , puilStartDate
-    , puilFetchBodies
-    , puilView
-    , puilLabels
-    , puilPageToken
-    , puilMaxResults
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.postUserInfos.list@ method which the
--- 'PostUserInfosList'' request conforms to.
-type PostUserInfosListResource =
-     "blogger" :>
-       "v3" :>
-         "users" :>
-           Capture "userId" Text :>
-             "blogs" :>
-               Capture "blogId" Text :>
-                 "posts" :>
-                   QueryParams "status" PostUserInfosListStatus :>
-                     QueryParam "orderBy" PostUserInfosListOrderBy :>
-                       QueryParam "endDate" DateTime' :>
-                         QueryParam "startDate" DateTime' :>
-                           QueryParam "fetchBodies" Bool :>
-                             QueryParam "view" PostUserInfosListView :>
-                               QueryParam "labels" Text :>
-                                 QueryParam "pageToken" Text :>
-                                   QueryParam "maxResults" (Textual Word32) :>
-                                     QueryParam "alt" AltJSON :>
-                                       Get '[JSON] PostUserInfosList
-
--- | Retrieves a list of post and post user info pairs, possibly filtered.
--- The post user info contains per-user information about the post, such as
--- access rights, specific to the user.
---
--- /See:/ 'postUserInfosList'' smart constructor.
-data PostUserInfosList' =
-  PostUserInfosList''
-    { _puilStatus      :: !(Maybe [PostUserInfosListStatus])
-    , _puilOrderBy     :: !PostUserInfosListOrderBy
-    , _puilEndDate     :: !(Maybe DateTime')
-    , _puilBlogId      :: !Text
-    , _puilUserId      :: !Text
-    , _puilStartDate   :: !(Maybe DateTime')
-    , _puilFetchBodies :: !Bool
-    , _puilView        :: !(Maybe PostUserInfosListView)
-    , _puilLabels      :: !(Maybe Text)
-    , _puilPageToken   :: !(Maybe Text)
-    , _puilMaxResults  :: !(Maybe (Textual Word32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostUserInfosList'' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'puilStatus'
---
--- * 'puilOrderBy'
---
--- * 'puilEndDate'
---
--- * 'puilBlogId'
---
--- * 'puilUserId'
---
--- * 'puilStartDate'
---
--- * 'puilFetchBodies'
---
--- * 'puilView'
---
--- * 'puilLabels'
---
--- * 'puilPageToken'
---
--- * 'puilMaxResults'
-postUserInfosList'
-    :: Text -- ^ 'puilBlogId'
-    -> Text -- ^ 'puilUserId'
-    -> PostUserInfosList'
-postUserInfosList' pPuilBlogId_ pPuilUserId_ =
-  PostUserInfosList''
-    { _puilStatus = Nothing
-    , _puilOrderBy = PUILOBPublished
-    , _puilEndDate = Nothing
-    , _puilBlogId = pPuilBlogId_
-    , _puilUserId = pPuilUserId_
-    , _puilStartDate = Nothing
-    , _puilFetchBodies = False
-    , _puilView = Nothing
-    , _puilLabels = Nothing
-    , _puilPageToken = Nothing
-    , _puilMaxResults = Nothing
-    }
-
-
-puilStatus :: Lens' PostUserInfosList' [PostUserInfosListStatus]
-puilStatus
-  = lens _puilStatus (\ s a -> s{_puilStatus = a}) .
-      _Default
-      . _Coerce
-
--- | Sort order applied to search results. Default is published.
-puilOrderBy :: Lens' PostUserInfosList' PostUserInfosListOrderBy
-puilOrderBy
-  = lens _puilOrderBy (\ s a -> s{_puilOrderBy = a})
-
--- | Latest post date to fetch, a date-time with RFC 3339 formatting.
-puilEndDate :: Lens' PostUserInfosList' (Maybe UTCTime)
-puilEndDate
-  = lens _puilEndDate (\ s a -> s{_puilEndDate = a}) .
-      mapping _DateTime
-
--- | ID of the blog to fetch posts from.
-puilBlogId :: Lens' PostUserInfosList' Text
-puilBlogId
-  = lens _puilBlogId (\ s a -> s{_puilBlogId = a})
-
--- | ID of the user for the per-user information to be fetched. Either the
--- word \'self\' (sans quote marks) or the user\'s profile identifier.
-puilUserId :: Lens' PostUserInfosList' Text
-puilUserId
-  = lens _puilUserId (\ s a -> s{_puilUserId = a})
-
--- | Earliest post date to fetch, a date-time with RFC 3339 formatting.
-puilStartDate :: Lens' PostUserInfosList' (Maybe UTCTime)
-puilStartDate
-  = lens _puilStartDate
-      (\ s a -> s{_puilStartDate = a})
-      . mapping _DateTime
-
--- | Whether the body content of posts is included. Default is false.
-puilFetchBodies :: Lens' PostUserInfosList' Bool
-puilFetchBodies
-  = lens _puilFetchBodies
-      (\ s a -> s{_puilFetchBodies = a})
-
--- | Access level with which to view the returned result. Note that some
--- fields require elevated access.
-puilView :: Lens' PostUserInfosList' (Maybe PostUserInfosListView)
-puilView = lens _puilView (\ s a -> s{_puilView = a})
-
--- | Comma-separated list of labels to search for.
-puilLabels :: Lens' PostUserInfosList' (Maybe Text)
-puilLabels
-  = lens _puilLabels (\ s a -> s{_puilLabels = a})
-
--- | Continuation token if the request is paged.
-puilPageToken :: Lens' PostUserInfosList' (Maybe Text)
-puilPageToken
-  = lens _puilPageToken
-      (\ s a -> s{_puilPageToken = a})
-
--- | Maximum number of posts to fetch.
-puilMaxResults :: Lens' PostUserInfosList' (Maybe Word32)
-puilMaxResults
-  = lens _puilMaxResults
-      (\ s a -> s{_puilMaxResults = a})
-      . mapping _Coerce
-
-instance GoogleRequest PostUserInfosList' where
-        type Rs PostUserInfosList' = PostUserInfosList
-        type Scopes PostUserInfosList' =
-             '["https://www.googleapis.com/auth/blogger",
-               "https://www.googleapis.com/auth/blogger.readonly"]
-        requestClient PostUserInfosList''{..}
-          = go _puilUserId _puilBlogId
-              (_puilStatus ^. _Default)
-              (Just _puilOrderBy)
-              _puilEndDate
-              _puilStartDate
-              (Just _puilFetchBodies)
-              _puilView
-              _puilLabels
-              _puilPageToken
-              _puilMaxResults
-              (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy PostUserInfosListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Posts/Delete.hs b/gen/Network/Google/Resource/Blogger/Posts/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Posts/Delete.hs
+++ /dev/null
@@ -1,97 +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.Blogger.Posts.Delete
--- 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)
---
--- Delete a post by ID.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.delete@.
-module Network.Google.Resource.Blogger.Posts.Delete
-    (
-    -- * REST Resource
-      PostsDeleteResource
-
-    -- * Creating a Request
-    , postsDelete
-    , PostsDelete
-
-    -- * Request Lenses
-    , pdBlogId
-    , pdPostId
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.posts.delete@ method which the
--- 'PostsDelete' request conforms to.
-type PostsDeleteResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "posts" :>
-               Capture "postId" Text :>
-                 QueryParam "alt" AltJSON :> Delete '[JSON] ()
-
--- | Delete a post by ID.
---
--- /See:/ 'postsDelete' smart constructor.
-data PostsDelete =
-  PostsDelete'
-    { _pdBlogId :: !Text
-    , _pdPostId :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pdBlogId'
---
--- * 'pdPostId'
-postsDelete
-    :: Text -- ^ 'pdBlogId'
-    -> Text -- ^ 'pdPostId'
-    -> PostsDelete
-postsDelete pPdBlogId_ pPdPostId_ =
-  PostsDelete' {_pdBlogId = pPdBlogId_, _pdPostId = pPdPostId_}
-
-
--- | The ID of the Blog.
-pdBlogId :: Lens' PostsDelete Text
-pdBlogId = lens _pdBlogId (\ s a -> s{_pdBlogId = a})
-
--- | The ID of the Post.
-pdPostId :: Lens' PostsDelete Text
-pdPostId = lens _pdPostId (\ s a -> s{_pdPostId = a})
-
-instance GoogleRequest PostsDelete where
-        type Rs PostsDelete = ()
-        type Scopes PostsDelete =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient PostsDelete'{..}
-          = go _pdBlogId _pdPostId (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PostsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Posts/Get.hs b/gen/Network/Google/Resource/Blogger/Posts/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Posts/Get.hs
+++ /dev/null
@@ -1,156 +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.Blogger.Posts.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)
---
--- Get a post by ID.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.get@.
-module Network.Google.Resource.Blogger.Posts.Get
-    (
-    -- * REST Resource
-      PostsGetResource
-
-    -- * Creating a Request
-    , postsGet
-    , PostsGet
-
-    -- * Request Lenses
-    , pggFetchBody
-    , pggFetchImages
-    , pggBlogId
-    , pggMaxComments
-    , pggView
-    , pggPostId
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.posts.get@ method which the
--- 'PostsGet' request conforms to.
-type PostsGetResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "posts" :>
-               Capture "postId" Text :>
-                 QueryParam "fetchBody" Bool :>
-                   QueryParam "fetchImages" Bool :>
-                     QueryParam "maxComments" (Textual Word32) :>
-                       QueryParam "view" PostsGetView :>
-                         QueryParam "alt" AltJSON :> Get '[JSON] Post'
-
--- | Get a post by ID.
---
--- /See:/ 'postsGet' smart constructor.
-data PostsGet =
-  PostsGet'
-    { _pggFetchBody   :: !Bool
-    , _pggFetchImages :: !(Maybe Bool)
-    , _pggBlogId      :: !Text
-    , _pggMaxComments :: !(Maybe (Textual Word32))
-    , _pggView        :: !(Maybe PostsGetView)
-    , _pggPostId      :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pggFetchBody'
---
--- * 'pggFetchImages'
---
--- * 'pggBlogId'
---
--- * 'pggMaxComments'
---
--- * 'pggView'
---
--- * 'pggPostId'
-postsGet
-    :: Text -- ^ 'pggBlogId'
-    -> Text -- ^ 'pggPostId'
-    -> PostsGet
-postsGet pPggBlogId_ pPggPostId_ =
-  PostsGet'
-    { _pggFetchBody = True
-    , _pggFetchImages = Nothing
-    , _pggBlogId = pPggBlogId_
-    , _pggMaxComments = Nothing
-    , _pggView = Nothing
-    , _pggPostId = pPggPostId_
-    }
-
-
--- | Whether the body content of the post is included (default: true). This
--- should be set to false when the post bodies are not required, to help
--- minimize traffic.
-pggFetchBody :: Lens' PostsGet Bool
-pggFetchBody
-  = lens _pggFetchBody (\ s a -> s{_pggFetchBody = a})
-
--- | Whether image URL metadata for each post is included (default: false).
-pggFetchImages :: Lens' PostsGet (Maybe Bool)
-pggFetchImages
-  = lens _pggFetchImages
-      (\ s a -> s{_pggFetchImages = a})
-
--- | ID of the blog to fetch the post from.
-pggBlogId :: Lens' PostsGet Text
-pggBlogId
-  = lens _pggBlogId (\ s a -> s{_pggBlogId = a})
-
--- | Maximum number of comments to pull back on a post.
-pggMaxComments :: Lens' PostsGet (Maybe Word32)
-pggMaxComments
-  = lens _pggMaxComments
-      (\ s a -> s{_pggMaxComments = a})
-      . mapping _Coerce
-
--- | Access level with which to view the returned result. Note that some
--- fields require elevated access.
-pggView :: Lens' PostsGet (Maybe PostsGetView)
-pggView = lens _pggView (\ s a -> s{_pggView = a})
-
--- | The ID of the post
-pggPostId :: Lens' PostsGet Text
-pggPostId
-  = lens _pggPostId (\ s a -> s{_pggPostId = a})
-
-instance GoogleRequest PostsGet where
-        type Rs PostsGet = Post'
-        type Scopes PostsGet =
-             '["https://www.googleapis.com/auth/blogger",
-               "https://www.googleapis.com/auth/blogger.readonly"]
-        requestClient PostsGet'{..}
-          = go _pggBlogId _pggPostId (Just _pggFetchBody)
-              _pggFetchImages
-              _pggMaxComments
-              _pggView
-              (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PostsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Posts/GetByPath.hs b/gen/Network/Google/Resource/Blogger/Posts/GetByPath.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Posts/GetByPath.hs
+++ /dev/null
@@ -1,129 +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.Blogger.Posts.GetByPath
--- 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)
---
--- Retrieve a Post by Path.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.getByPath@.
-module Network.Google.Resource.Blogger.Posts.GetByPath
-    (
-    -- * REST Resource
-      PostsGetByPathResource
-
-    -- * Creating a Request
-    , postsGetByPath
-    , PostsGetByPath
-
-    -- * Request Lenses
-    , pgbpPath
-    , pgbpBlogId
-    , pgbpMaxComments
-    , pgbpView
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.posts.getByPath@ method which the
--- 'PostsGetByPath' request conforms to.
-type PostsGetByPathResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "posts" :>
-               "bypath" :>
-                 QueryParam "path" Text :>
-                   QueryParam "maxComments" (Textual Word32) :>
-                     QueryParam "view" PostsGetByPathView :>
-                       QueryParam "alt" AltJSON :> Get '[JSON] Post'
-
--- | Retrieve a Post by Path.
---
--- /See:/ 'postsGetByPath' smart constructor.
-data PostsGetByPath =
-  PostsGetByPath'
-    { _pgbpPath        :: !Text
-    , _pgbpBlogId      :: !Text
-    , _pgbpMaxComments :: !(Maybe (Textual Word32))
-    , _pgbpView        :: !(Maybe PostsGetByPathView)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostsGetByPath' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pgbpPath'
---
--- * 'pgbpBlogId'
---
--- * 'pgbpMaxComments'
---
--- * 'pgbpView'
-postsGetByPath
-    :: Text -- ^ 'pgbpPath'
-    -> Text -- ^ 'pgbpBlogId'
-    -> PostsGetByPath
-postsGetByPath pPgbpPath_ pPgbpBlogId_ =
-  PostsGetByPath'
-    { _pgbpPath = pPgbpPath_
-    , _pgbpBlogId = pPgbpBlogId_
-    , _pgbpMaxComments = Nothing
-    , _pgbpView = Nothing
-    }
-
-
--- | Path of the Post to retrieve.
-pgbpPath :: Lens' PostsGetByPath Text
-pgbpPath = lens _pgbpPath (\ s a -> s{_pgbpPath = a})
-
--- | ID of the blog to fetch the post from.
-pgbpBlogId :: Lens' PostsGetByPath Text
-pgbpBlogId
-  = lens _pgbpBlogId (\ s a -> s{_pgbpBlogId = a})
-
--- | Maximum number of comments to pull back on a post.
-pgbpMaxComments :: Lens' PostsGetByPath (Maybe Word32)
-pgbpMaxComments
-  = lens _pgbpMaxComments
-      (\ s a -> s{_pgbpMaxComments = a})
-      . mapping _Coerce
-
--- | Access level with which to view the returned result. Note that some
--- fields require elevated access.
-pgbpView :: Lens' PostsGetByPath (Maybe PostsGetByPathView)
-pgbpView = lens _pgbpView (\ s a -> s{_pgbpView = a})
-
-instance GoogleRequest PostsGetByPath where
-        type Rs PostsGetByPath = Post'
-        type Scopes PostsGetByPath =
-             '["https://www.googleapis.com/auth/blogger",
-               "https://www.googleapis.com/auth/blogger.readonly"]
-        requestClient PostsGetByPath'{..}
-          = go _pgbpBlogId (Just _pgbpPath) _pgbpMaxComments
-              _pgbpView
-              (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PostsGetByPathResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Posts/Insert.hs b/gen/Network/Google/Resource/Blogger/Posts/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Posts/Insert.hs
+++ /dev/null
@@ -1,141 +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.Blogger.Posts.Insert
--- 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)
---
--- Add a post.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.insert@.
-module Network.Google.Resource.Blogger.Posts.Insert
-    (
-    -- * REST Resource
-      PostsInsertResource
-
-    -- * Creating a Request
-    , postsInsert
-    , PostsInsert
-
-    -- * Request Lenses
-    , posFetchBody
-    , posIsDraft
-    , posFetchImages
-    , posBlogId
-    , posPayload
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.posts.insert@ method which the
--- 'PostsInsert' request conforms to.
-type PostsInsertResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "posts" :>
-               QueryParam "fetchBody" Bool :>
-                 QueryParam "isDraft" Bool :>
-                   QueryParam "fetchImages" Bool :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Post' :> Post '[JSON] Post'
-
--- | Add a post.
---
--- /See:/ 'postsInsert' smart constructor.
-data PostsInsert =
-  PostsInsert'
-    { _posFetchBody   :: !Bool
-    , _posIsDraft     :: !(Maybe Bool)
-    , _posFetchImages :: !(Maybe Bool)
-    , _posBlogId      :: !Text
-    , _posPayload     :: !Post'
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostsInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'posFetchBody'
---
--- * 'posIsDraft'
---
--- * 'posFetchImages'
---
--- * 'posBlogId'
---
--- * 'posPayload'
-postsInsert
-    :: Text -- ^ 'posBlogId'
-    -> Post' -- ^ 'posPayload'
-    -> PostsInsert
-postsInsert pPosBlogId_ pPosPayload_ =
-  PostsInsert'
-    { _posFetchBody = True
-    , _posIsDraft = Nothing
-    , _posFetchImages = Nothing
-    , _posBlogId = pPosBlogId_
-    , _posPayload = pPosPayload_
-    }
-
-
--- | Whether the body content of the post is included with the result
--- (default: true).
-posFetchBody :: Lens' PostsInsert Bool
-posFetchBody
-  = lens _posFetchBody (\ s a -> s{_posFetchBody = a})
-
--- | Whether to create the post as a draft (default: false).
-posIsDraft :: Lens' PostsInsert (Maybe Bool)
-posIsDraft
-  = lens _posIsDraft (\ s a -> s{_posIsDraft = a})
-
--- | Whether image URL metadata for each post is included in the returned
--- result (default: false).
-posFetchImages :: Lens' PostsInsert (Maybe Bool)
-posFetchImages
-  = lens _posFetchImages
-      (\ s a -> s{_posFetchImages = a})
-
--- | ID of the blog to add the post to.
-posBlogId :: Lens' PostsInsert Text
-posBlogId
-  = lens _posBlogId (\ s a -> s{_posBlogId = a})
-
--- | Multipart request metadata.
-posPayload :: Lens' PostsInsert Post'
-posPayload
-  = lens _posPayload (\ s a -> s{_posPayload = a})
-
-instance GoogleRequest PostsInsert where
-        type Rs PostsInsert = Post'
-        type Scopes PostsInsert =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient PostsInsert'{..}
-          = go _posBlogId (Just _posFetchBody) _posIsDraft
-              _posFetchImages
-              (Just AltJSON)
-              _posPayload
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PostsInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Posts/List.hs b/gen/Network/Google/Resource/Blogger/Posts/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Posts/List.hs
+++ /dev/null
@@ -1,222 +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.Blogger.Posts.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)
---
--- Retrieves a list of posts, possibly filtered.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.list@.
-module Network.Google.Resource.Blogger.Posts.List
-    (
-    -- * REST Resource
-      PostsListResource
-
-    -- * Creating a Request
-    , postsList
-    , PostsList
-
-    -- * Request Lenses
-    , pllStatus
-    , pllOrderBy
-    , pllFetchImages
-    , pllEndDate
-    , pllBlogId
-    , pllStartDate
-    , pllFetchBodies
-    , pllView
-    , pllLabels
-    , pllPageToken
-    , pllMaxResults
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.posts.list@ method which the
--- 'PostsList' request conforms to.
-type PostsListResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "posts" :>
-               QueryParams "status" PostsListStatus :>
-                 QueryParam "orderBy" PostsListOrderBy :>
-                   QueryParam "fetchImages" Bool :>
-                     QueryParam "endDate" DateTime' :>
-                       QueryParam "startDate" DateTime' :>
-                         QueryParam "fetchBodies" Bool :>
-                           QueryParam "view" PostsListView :>
-                             QueryParam "labels" Text :>
-                               QueryParam "pageToken" Text :>
-                                 QueryParam "maxResults" (Textual Word32) :>
-                                   QueryParam "alt" AltJSON :>
-                                     Get '[JSON] PostList
-
--- | Retrieves a list of posts, possibly filtered.
---
--- /See:/ 'postsList' smart constructor.
-data PostsList =
-  PostsList'
-    { _pllStatus      :: !(Maybe [PostsListStatus])
-    , _pllOrderBy     :: !PostsListOrderBy
-    , _pllFetchImages :: !(Maybe Bool)
-    , _pllEndDate     :: !(Maybe DateTime')
-    , _pllBlogId      :: !Text
-    , _pllStartDate   :: !(Maybe DateTime')
-    , _pllFetchBodies :: !Bool
-    , _pllView        :: !(Maybe PostsListView)
-    , _pllLabels      :: !(Maybe Text)
-    , _pllPageToken   :: !(Maybe Text)
-    , _pllMaxResults  :: !(Maybe (Textual Word32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pllStatus'
---
--- * 'pllOrderBy'
---
--- * 'pllFetchImages'
---
--- * 'pllEndDate'
---
--- * 'pllBlogId'
---
--- * 'pllStartDate'
---
--- * 'pllFetchBodies'
---
--- * 'pllView'
---
--- * 'pllLabels'
---
--- * 'pllPageToken'
---
--- * 'pllMaxResults'
-postsList
-    :: Text -- ^ 'pllBlogId'
-    -> PostsList
-postsList pPllBlogId_ =
-  PostsList'
-    { _pllStatus = Nothing
-    , _pllOrderBy = Published
-    , _pllFetchImages = Nothing
-    , _pllEndDate = Nothing
-    , _pllBlogId = pPllBlogId_
-    , _pllStartDate = Nothing
-    , _pllFetchBodies = True
-    , _pllView = Nothing
-    , _pllLabels = Nothing
-    , _pllPageToken = Nothing
-    , _pllMaxResults = Nothing
-    }
-
-
--- | Statuses to include in the results.
-pllStatus :: Lens' PostsList [PostsListStatus]
-pllStatus
-  = lens _pllStatus (\ s a -> s{_pllStatus = a}) .
-      _Default
-      . _Coerce
-
--- | Sort search results
-pllOrderBy :: Lens' PostsList PostsListOrderBy
-pllOrderBy
-  = lens _pllOrderBy (\ s a -> s{_pllOrderBy = a})
-
--- | Whether image URL metadata for each post is included.
-pllFetchImages :: Lens' PostsList (Maybe Bool)
-pllFetchImages
-  = lens _pllFetchImages
-      (\ s a -> s{_pllFetchImages = a})
-
--- | Latest post date to fetch, a date-time with RFC 3339 formatting.
-pllEndDate :: Lens' PostsList (Maybe UTCTime)
-pllEndDate
-  = lens _pllEndDate (\ s a -> s{_pllEndDate = a}) .
-      mapping _DateTime
-
--- | ID of the blog to fetch posts from.
-pllBlogId :: Lens' PostsList Text
-pllBlogId
-  = lens _pllBlogId (\ s a -> s{_pllBlogId = a})
-
--- | Earliest post date to fetch, a date-time with RFC 3339 formatting.
-pllStartDate :: Lens' PostsList (Maybe UTCTime)
-pllStartDate
-  = lens _pllStartDate (\ s a -> s{_pllStartDate = a})
-      . mapping _DateTime
-
--- | Whether the body content of posts is included (default: true). This
--- should be set to false when the post bodies are not required, to help
--- minimize traffic.
-pllFetchBodies :: Lens' PostsList Bool
-pllFetchBodies
-  = lens _pllFetchBodies
-      (\ s a -> s{_pllFetchBodies = a})
-
--- | Access level with which to view the returned result. Note that some
--- fields require escalated access.
-pllView :: Lens' PostsList (Maybe PostsListView)
-pllView = lens _pllView (\ s a -> s{_pllView = a})
-
--- | Comma-separated list of labels to search for.
-pllLabels :: Lens' PostsList (Maybe Text)
-pllLabels
-  = lens _pllLabels (\ s a -> s{_pllLabels = a})
-
--- | Continuation token if the request is paged.
-pllPageToken :: Lens' PostsList (Maybe Text)
-pllPageToken
-  = lens _pllPageToken (\ s a -> s{_pllPageToken = a})
-
--- | Maximum number of posts to fetch.
-pllMaxResults :: Lens' PostsList (Maybe Word32)
-pllMaxResults
-  = lens _pllMaxResults
-      (\ s a -> s{_pllMaxResults = a})
-      . mapping _Coerce
-
-instance GoogleRequest PostsList where
-        type Rs PostsList = PostList
-        type Scopes PostsList =
-             '["https://www.googleapis.com/auth/blogger",
-               "https://www.googleapis.com/auth/blogger.readonly"]
-        requestClient PostsList'{..}
-          = go _pllBlogId (_pllStatus ^. _Default)
-              (Just _pllOrderBy)
-              _pllFetchImages
-              _pllEndDate
-              _pllStartDate
-              (Just _pllFetchBodies)
-              _pllView
-              _pllLabels
-              _pllPageToken
-              _pllMaxResults
-              (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PostsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Posts/Patch.hs b/gen/Network/Google/Resource/Blogger/Posts/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Posts/Patch.hs
+++ /dev/null
@@ -1,183 +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.Blogger.Posts.Patch
--- 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)
---
--- Update a post. This method supports patch semantics.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.patch@.
-module Network.Google.Resource.Blogger.Posts.Patch
-    (
-    -- * REST Resource
-      PostsPatchResource
-
-    -- * Creating a Request
-    , postsPatch
-    , PostsPatch
-
-    -- * Request Lenses
-    , posoFetchBody
-    , posoFetchImages
-    , posoBlogId
-    , posoPayload
-    , posoMaxComments
-    , posoRevert
-    , posoPostId
-    , posoPublish
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.posts.patch@ method which the
--- 'PostsPatch' request conforms to.
-type PostsPatchResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "posts" :>
-               Capture "postId" Text :>
-                 QueryParam "fetchBody" Bool :>
-                   QueryParam "fetchImages" Bool :>
-                     QueryParam "maxComments" (Textual Word32) :>
-                       QueryParam "revert" Bool :>
-                         QueryParam "publish" Bool :>
-                           QueryParam "alt" AltJSON :>
-                             ReqBody '[JSON] Post' :> Patch '[JSON] Post'
-
--- | Update a post. This method supports patch semantics.
---
--- /See:/ 'postsPatch' smart constructor.
-data PostsPatch =
-  PostsPatch'
-    { _posoFetchBody   :: !Bool
-    , _posoFetchImages :: !(Maybe Bool)
-    , _posoBlogId      :: !Text
-    , _posoPayload     :: !Post'
-    , _posoMaxComments :: !(Maybe (Textual Word32))
-    , _posoRevert      :: !(Maybe Bool)
-    , _posoPostId      :: !Text
-    , _posoPublish     :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostsPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'posoFetchBody'
---
--- * 'posoFetchImages'
---
--- * 'posoBlogId'
---
--- * 'posoPayload'
---
--- * 'posoMaxComments'
---
--- * 'posoRevert'
---
--- * 'posoPostId'
---
--- * 'posoPublish'
-postsPatch
-    :: Text -- ^ 'posoBlogId'
-    -> Post' -- ^ 'posoPayload'
-    -> Text -- ^ 'posoPostId'
-    -> PostsPatch
-postsPatch pPosoBlogId_ pPosoPayload_ pPosoPostId_ =
-  PostsPatch'
-    { _posoFetchBody = True
-    , _posoFetchImages = Nothing
-    , _posoBlogId = pPosoBlogId_
-    , _posoPayload = pPosoPayload_
-    , _posoMaxComments = Nothing
-    , _posoRevert = Nothing
-    , _posoPostId = pPosoPostId_
-    , _posoPublish = Nothing
-    }
-
-
--- | Whether the body content of the post is included with the result
--- (default: true).
-posoFetchBody :: Lens' PostsPatch Bool
-posoFetchBody
-  = lens _posoFetchBody
-      (\ s a -> s{_posoFetchBody = a})
-
--- | Whether image URL metadata for each post is included in the returned
--- result (default: false).
-posoFetchImages :: Lens' PostsPatch (Maybe Bool)
-posoFetchImages
-  = lens _posoFetchImages
-      (\ s a -> s{_posoFetchImages = a})
-
--- | The ID of the Blog.
-posoBlogId :: Lens' PostsPatch Text
-posoBlogId
-  = lens _posoBlogId (\ s a -> s{_posoBlogId = a})
-
--- | Multipart request metadata.
-posoPayload :: Lens' PostsPatch Post'
-posoPayload
-  = lens _posoPayload (\ s a -> s{_posoPayload = a})
-
--- | Maximum number of comments to retrieve with the returned post.
-posoMaxComments :: Lens' PostsPatch (Maybe Word32)
-posoMaxComments
-  = lens _posoMaxComments
-      (\ s a -> s{_posoMaxComments = a})
-      . mapping _Coerce
-
--- | Whether a revert action should be performed when the post is updated
--- (default: false).
-posoRevert :: Lens' PostsPatch (Maybe Bool)
-posoRevert
-  = lens _posoRevert (\ s a -> s{_posoRevert = a})
-
--- | The ID of the Post.
-posoPostId :: Lens' PostsPatch Text
-posoPostId
-  = lens _posoPostId (\ s a -> s{_posoPostId = a})
-
--- | Whether a publish action should be performed when the post is updated
--- (default: false).
-posoPublish :: Lens' PostsPatch (Maybe Bool)
-posoPublish
-  = lens _posoPublish (\ s a -> s{_posoPublish = a})
-
-instance GoogleRequest PostsPatch where
-        type Rs PostsPatch = Post'
-        type Scopes PostsPatch =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient PostsPatch'{..}
-          = go _posoBlogId _posoPostId (Just _posoFetchBody)
-              _posoFetchImages
-              _posoMaxComments
-              _posoRevert
-              _posoPublish
-              (Just AltJSON)
-              _posoPayload
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PostsPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Posts/Publish.hs b/gen/Network/Google/Resource/Blogger/Posts/Publish.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Posts/Publish.hs
+++ /dev/null
@@ -1,122 +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.Blogger.Posts.Publish
--- 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)
---
--- Publishes a draft post, optionally at the specific time of the given
--- publishDate parameter.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.publish@.
-module Network.Google.Resource.Blogger.Posts.Publish
-    (
-    -- * REST Resource
-      PostsPublishResource
-
-    -- * Creating a Request
-    , postsPublish
-    , PostsPublish
-
-    -- * Request Lenses
-    , pppPublishDate
-    , pppBlogId
-    , pppPostId
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.posts.publish@ method which the
--- 'PostsPublish' request conforms to.
-type PostsPublishResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "posts" :>
-               Capture "postId" Text :>
-                 "publish" :>
-                   QueryParam "publishDate" DateTime' :>
-                     QueryParam "alt" AltJSON :> Post '[JSON] Post'
-
--- | Publishes a draft post, optionally at the specific time of the given
--- publishDate parameter.
---
--- /See:/ 'postsPublish' smart constructor.
-data PostsPublish =
-  PostsPublish'
-    { _pppPublishDate :: !(Maybe DateTime')
-    , _pppBlogId      :: !Text
-    , _pppPostId      :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostsPublish' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pppPublishDate'
---
--- * 'pppBlogId'
---
--- * 'pppPostId'
-postsPublish
-    :: Text -- ^ 'pppBlogId'
-    -> Text -- ^ 'pppPostId'
-    -> PostsPublish
-postsPublish pPppBlogId_ pPppPostId_ =
-  PostsPublish'
-    { _pppPublishDate = Nothing
-    , _pppBlogId = pPppBlogId_
-    , _pppPostId = pPppPostId_
-    }
-
-
--- | Optional date and time to schedule the publishing of the Blog. If no
--- publishDate parameter is given, the post is either published at the a
--- previously saved schedule date (if present), or the current time. If a
--- future date is given, the post will be scheduled to be published.
-pppPublishDate :: Lens' PostsPublish (Maybe UTCTime)
-pppPublishDate
-  = lens _pppPublishDate
-      (\ s a -> s{_pppPublishDate = a})
-      . mapping _DateTime
-
--- | The ID of the Blog.
-pppBlogId :: Lens' PostsPublish Text
-pppBlogId
-  = lens _pppBlogId (\ s a -> s{_pppBlogId = a})
-
--- | The ID of the Post.
-pppPostId :: Lens' PostsPublish Text
-pppPostId
-  = lens _pppPostId (\ s a -> s{_pppPostId = a})
-
-instance GoogleRequest PostsPublish where
-        type Rs PostsPublish = Post'
-        type Scopes PostsPublish =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient PostsPublish'{..}
-          = go _pppBlogId _pppPostId _pppPublishDate
-              (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PostsPublishResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Posts/Revert.hs b/gen/Network/Google/Resource/Blogger/Posts/Revert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Posts/Revert.hs
+++ /dev/null
@@ -1,98 +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.Blogger.Posts.Revert
--- 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)
---
--- Revert a published or scheduled post to draft state.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.revert@.
-module Network.Google.Resource.Blogger.Posts.Revert
-    (
-    -- * REST Resource
-      PostsRevertResource
-
-    -- * Creating a Request
-    , postsRevert
-    , PostsRevert
-
-    -- * Request Lenses
-    , prBlogId
-    , prPostId
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.posts.revert@ method which the
--- 'PostsRevert' request conforms to.
-type PostsRevertResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "posts" :>
-               Capture "postId" Text :>
-                 "revert" :>
-                   QueryParam "alt" AltJSON :> Post '[JSON] Post'
-
--- | Revert a published or scheduled post to draft state.
---
--- /See:/ 'postsRevert' smart constructor.
-data PostsRevert =
-  PostsRevert'
-    { _prBlogId :: !Text
-    , _prPostId :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostsRevert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'prBlogId'
---
--- * 'prPostId'
-postsRevert
-    :: Text -- ^ 'prBlogId'
-    -> Text -- ^ 'prPostId'
-    -> PostsRevert
-postsRevert pPrBlogId_ pPrPostId_ =
-  PostsRevert' {_prBlogId = pPrBlogId_, _prPostId = pPrPostId_}
-
-
--- | The ID of the Blog.
-prBlogId :: Lens' PostsRevert Text
-prBlogId = lens _prBlogId (\ s a -> s{_prBlogId = a})
-
--- | The ID of the Post.
-prPostId :: Lens' PostsRevert Text
-prPostId = lens _prPostId (\ s a -> s{_prPostId = a})
-
-instance GoogleRequest PostsRevert where
-        type Rs PostsRevert = Post'
-        type Scopes PostsRevert =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient PostsRevert'{..}
-          = go _prBlogId _prPostId (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PostsRevertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Posts/Search.hs b/gen/Network/Google/Resource/Blogger/Posts/Search.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Posts/Search.hs
+++ /dev/null
@@ -1,129 +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.Blogger.Posts.Search
--- 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)
---
--- Search for a post.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.search@.
-module Network.Google.Resource.Blogger.Posts.Search
-    (
-    -- * REST Resource
-      PostsSearchResource
-
-    -- * Creating a Request
-    , postsSearch
-    , PostsSearch
-
-    -- * Request Lenses
-    , psOrderBy
-    , psBlogId
-    , psQ
-    , psFetchBodies
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.posts.search@ method which the
--- 'PostsSearch' request conforms to.
-type PostsSearchResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "posts" :>
-               "search" :>
-                 QueryParam "q" Text :>
-                   QueryParam "orderBy" PostsSearchOrderBy :>
-                     QueryParam "fetchBodies" Bool :>
-                       QueryParam "alt" AltJSON :> Get '[JSON] PostList
-
--- | Search for a post.
---
--- /See:/ 'postsSearch' smart constructor.
-data PostsSearch =
-  PostsSearch'
-    { _psOrderBy     :: !PostsSearchOrderBy
-    , _psBlogId      :: !Text
-    , _psQ           :: !Text
-    , _psFetchBodies :: !Bool
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostsSearch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'psOrderBy'
---
--- * 'psBlogId'
---
--- * 'psQ'
---
--- * 'psFetchBodies'
-postsSearch
-    :: Text -- ^ 'psBlogId'
-    -> Text -- ^ 'psQ'
-    -> PostsSearch
-postsSearch pPsBlogId_ pPsQ_ =
-  PostsSearch'
-    { _psOrderBy = PSOBPublished
-    , _psBlogId = pPsBlogId_
-    , _psQ = pPsQ_
-    , _psFetchBodies = True
-    }
-
-
--- | Sort search results
-psOrderBy :: Lens' PostsSearch PostsSearchOrderBy
-psOrderBy
-  = lens _psOrderBy (\ s a -> s{_psOrderBy = a})
-
--- | ID of the blog to fetch the post from.
-psBlogId :: Lens' PostsSearch Text
-psBlogId = lens _psBlogId (\ s a -> s{_psBlogId = a})
-
--- | Query terms to search this blog for matching posts.
-psQ :: Lens' PostsSearch Text
-psQ = lens _psQ (\ s a -> s{_psQ = a})
-
--- | Whether the body content of posts is included (default: true). This
--- should be set to false when the post bodies are not required, to help
--- minimize traffic.
-psFetchBodies :: Lens' PostsSearch Bool
-psFetchBodies
-  = lens _psFetchBodies
-      (\ s a -> s{_psFetchBodies = a})
-
-instance GoogleRequest PostsSearch where
-        type Rs PostsSearch = PostList
-        type Scopes PostsSearch =
-             '["https://www.googleapis.com/auth/blogger",
-               "https://www.googleapis.com/auth/blogger.readonly"]
-        requestClient PostsSearch'{..}
-          = go _psBlogId (Just _psQ) (Just _psOrderBy)
-              (Just _psFetchBodies)
-              (Just AltJSON)
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PostsSearchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Posts/Update.hs b/gen/Network/Google/Resource/Blogger/Posts/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Posts/Update.hs
+++ /dev/null
@@ -1,179 +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.Blogger.Posts.Update
--- 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)
---
--- Update a post.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.update@.
-module Network.Google.Resource.Blogger.Posts.Update
-    (
-    -- * REST Resource
-      PostsUpdateResource
-
-    -- * Creating a Request
-    , postsUpdate
-    , PostsUpdate
-
-    -- * Request Lenses
-    , puFetchBody
-    , puFetchImages
-    , puBlogId
-    , puPayload
-    , puMaxComments
-    , puRevert
-    , puPostId
-    , puPublish
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.posts.update@ method which the
--- 'PostsUpdate' request conforms to.
-type PostsUpdateResource =
-     "blogger" :>
-       "v3" :>
-         "blogs" :>
-           Capture "blogId" Text :>
-             "posts" :>
-               Capture "postId" Text :>
-                 QueryParam "fetchBody" Bool :>
-                   QueryParam "fetchImages" Bool :>
-                     QueryParam "maxComments" (Textual Word32) :>
-                       QueryParam "revert" Bool :>
-                         QueryParam "publish" Bool :>
-                           QueryParam "alt" AltJSON :>
-                             ReqBody '[JSON] Post' :> Put '[JSON] Post'
-
--- | Update a post.
---
--- /See:/ 'postsUpdate' smart constructor.
-data PostsUpdate =
-  PostsUpdate'
-    { _puFetchBody   :: !Bool
-    , _puFetchImages :: !(Maybe Bool)
-    , _puBlogId      :: !Text
-    , _puPayload     :: !Post'
-    , _puMaxComments :: !(Maybe (Textual Word32))
-    , _puRevert      :: !(Maybe Bool)
-    , _puPostId      :: !Text
-    , _puPublish     :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostsUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'puFetchBody'
---
--- * 'puFetchImages'
---
--- * 'puBlogId'
---
--- * 'puPayload'
---
--- * 'puMaxComments'
---
--- * 'puRevert'
---
--- * 'puPostId'
---
--- * 'puPublish'
-postsUpdate
-    :: Text -- ^ 'puBlogId'
-    -> Post' -- ^ 'puPayload'
-    -> Text -- ^ 'puPostId'
-    -> PostsUpdate
-postsUpdate pPuBlogId_ pPuPayload_ pPuPostId_ =
-  PostsUpdate'
-    { _puFetchBody = True
-    , _puFetchImages = Nothing
-    , _puBlogId = pPuBlogId_
-    , _puPayload = pPuPayload_
-    , _puMaxComments = Nothing
-    , _puRevert = Nothing
-    , _puPostId = pPuPostId_
-    , _puPublish = Nothing
-    }
-
-
--- | Whether the body content of the post is included with the result
--- (default: true).
-puFetchBody :: Lens' PostsUpdate Bool
-puFetchBody
-  = lens _puFetchBody (\ s a -> s{_puFetchBody = a})
-
--- | Whether image URL metadata for each post is included in the returned
--- result (default: false).
-puFetchImages :: Lens' PostsUpdate (Maybe Bool)
-puFetchImages
-  = lens _puFetchImages
-      (\ s a -> s{_puFetchImages = a})
-
--- | The ID of the Blog.
-puBlogId :: Lens' PostsUpdate Text
-puBlogId = lens _puBlogId (\ s a -> s{_puBlogId = a})
-
--- | Multipart request metadata.
-puPayload :: Lens' PostsUpdate Post'
-puPayload
-  = lens _puPayload (\ s a -> s{_puPayload = a})
-
--- | Maximum number of comments to retrieve with the returned post.
-puMaxComments :: Lens' PostsUpdate (Maybe Word32)
-puMaxComments
-  = lens _puMaxComments
-      (\ s a -> s{_puMaxComments = a})
-      . mapping _Coerce
-
--- | Whether a revert action should be performed when the post is updated
--- (default: false).
-puRevert :: Lens' PostsUpdate (Maybe Bool)
-puRevert = lens _puRevert (\ s a -> s{_puRevert = a})
-
--- | The ID of the Post.
-puPostId :: Lens' PostsUpdate Text
-puPostId = lens _puPostId (\ s a -> s{_puPostId = a})
-
--- | Whether a publish action should be performed when the post is updated
--- (default: false).
-puPublish :: Lens' PostsUpdate (Maybe Bool)
-puPublish
-  = lens _puPublish (\ s a -> s{_puPublish = a})
-
-instance GoogleRequest PostsUpdate where
-        type Rs PostsUpdate = Post'
-        type Scopes PostsUpdate =
-             '["https://www.googleapis.com/auth/blogger"]
-        requestClient PostsUpdate'{..}
-          = go _puBlogId _puPostId (Just _puFetchBody)
-              _puFetchImages
-              _puMaxComments
-              _puRevert
-              _puPublish
-              (Just AltJSON)
-              _puPayload
-              bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy PostsUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Blogger/Users/Get.hs b/gen/Network/Google/Resource/Blogger/Users/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Blogger/Users/Get.hs
+++ /dev/null
@@ -1,85 +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.Blogger.Users.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 one user by ID.
---
--- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.users.get@.
-module Network.Google.Resource.Blogger.Users.Get
-    (
-    -- * REST Resource
-      UsersGetResource
-
-    -- * Creating a Request
-    , usersGet
-    , UsersGet
-
-    -- * Request Lenses
-    , ugUserId
-    ) where
-
-import           Network.Google.Blogger.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @blogger.users.get@ method which the
--- 'UsersGet' request conforms to.
-type UsersGetResource =
-     "blogger" :>
-       "v3" :>
-         "users" :>
-           Capture "userId" Text :>
-             QueryParam "alt" AltJSON :> Get '[JSON] User
-
--- | Gets one user by ID.
---
--- /See:/ 'usersGet' smart constructor.
-newtype UsersGet =
-  UsersGet'
-    { _ugUserId :: Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UsersGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ugUserId'
-usersGet
-    :: Text -- ^ 'ugUserId'
-    -> UsersGet
-usersGet pUgUserId_ = UsersGet' {_ugUserId = pUgUserId_}
-
-
--- | The ID of the user to get.
-ugUserId :: Lens' UsersGet Text
-ugUserId = lens _ugUserId (\ s a -> s{_ugUserId = a})
-
-instance GoogleRequest UsersGet where
-        type Rs UsersGet = User
-        type Scopes UsersGet =
-             '["https://www.googleapis.com/auth/blogger",
-               "https://www.googleapis.com/auth/blogger.readonly"]
-        requestClient UsersGet'{..}
-          = go _ugUserId (Just AltJSON) bloggerService
-          where go
-                  = buildClient (Proxy :: Proxy UsersGetResource)
-                      mempty
diff --git a/gogol-blogger.cabal b/gogol-blogger.cabal
--- a/gogol-blogger.cabal
+++ b/gogol-blogger.cabal
@@ -1,82 +1,93 @@
-name:                  gogol-blogger
-version:               0.5.0
-synopsis:              Google Blogger 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-blogger
+version:            1.0.0
+synopsis:           Google Blogger 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:
-    API for access to the data within Blogger.
-    .
-    /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 @v3@
-    of the API.
-    .
-    Labels:
-    .
-    * Limited Availability
+  The Blogger API provides access to posts, comments and pages of a Blogger blog.
+  .
+  /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 @v3@
+  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-blogger
 
+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.Blogger
-        , Network.Google.Blogger.Types
-        , Network.Google.Resource.Blogger.BlogUserInfos.Get
-        , Network.Google.Resource.Blogger.Blogs.Get
-        , Network.Google.Resource.Blogger.Blogs.GetByURL
-        , Network.Google.Resource.Blogger.Blogs.ListByUser
-        , Network.Google.Resource.Blogger.Comments.Approve
-        , Network.Google.Resource.Blogger.Comments.Delete
-        , Network.Google.Resource.Blogger.Comments.Get
-        , Network.Google.Resource.Blogger.Comments.List
-        , Network.Google.Resource.Blogger.Comments.ListByBlog
-        , Network.Google.Resource.Blogger.Comments.MarkAsSpam
-        , Network.Google.Resource.Blogger.Comments.RemoveContent
-        , Network.Google.Resource.Blogger.PageViews.Get
-        , Network.Google.Resource.Blogger.Pages.Delete
-        , Network.Google.Resource.Blogger.Pages.Get
-        , Network.Google.Resource.Blogger.Pages.Insert
-        , Network.Google.Resource.Blogger.Pages.List
-        , Network.Google.Resource.Blogger.Pages.Patch
-        , Network.Google.Resource.Blogger.Pages.Publish
-        , Network.Google.Resource.Blogger.Pages.Revert
-        , Network.Google.Resource.Blogger.Pages.Update
-        , Network.Google.Resource.Blogger.PostUserInfos.Get
-        , Network.Google.Resource.Blogger.PostUserInfos.List
-        , Network.Google.Resource.Blogger.Posts.Delete
-        , Network.Google.Resource.Blogger.Posts.Get
-        , Network.Google.Resource.Blogger.Posts.GetByPath
-        , Network.Google.Resource.Blogger.Posts.Insert
-        , Network.Google.Resource.Blogger.Posts.List
-        , Network.Google.Resource.Blogger.Posts.Patch
-        , Network.Google.Resource.Blogger.Posts.Publish
-        , Network.Google.Resource.Blogger.Posts.Revert
-        , Network.Google.Resource.Blogger.Posts.Search
-        , Network.Google.Resource.Blogger.Posts.Update
-        , Network.Google.Resource.Blogger.Users.Get
+  exposed-modules:
+    Gogol.Blogger
+    Gogol.Blogger.Blogs.Get
+    Gogol.Blogger.Blogs.GetByUrl
+    Gogol.Blogger.Blogs.ListByUser
+    Gogol.Blogger.BlogUserInfos.Get
+    Gogol.Blogger.Comments.Approve
+    Gogol.Blogger.Comments.Delete
+    Gogol.Blogger.Comments.Get
+    Gogol.Blogger.Comments.List
+    Gogol.Blogger.Comments.ListByBlog
+    Gogol.Blogger.Comments.MarkAsSpam
+    Gogol.Blogger.Comments.RemoveContent
+    Gogol.Blogger.Pages.Delete
+    Gogol.Blogger.Pages.Get
+    Gogol.Blogger.Pages.Insert
+    Gogol.Blogger.Pages.List
+    Gogol.Blogger.Pages.Patch
+    Gogol.Blogger.Pages.Publish
+    Gogol.Blogger.Pages.Revert
+    Gogol.Blogger.Pages.Update
+    Gogol.Blogger.PageViews.Get
+    Gogol.Blogger.Posts.Delete
+    Gogol.Blogger.Posts.Get
+    Gogol.Blogger.Posts.GetByPath
+    Gogol.Blogger.Posts.Insert
+    Gogol.Blogger.Posts.List
+    Gogol.Blogger.Posts.Patch
+    Gogol.Blogger.Posts.Publish
+    Gogol.Blogger.Posts.Revert
+    Gogol.Blogger.Posts.Search
+    Gogol.Blogger.Posts.Update
+    Gogol.Blogger.PostUserInfos.Get
+    Gogol.Blogger.PostUserInfos.List
+    Gogol.Blogger.Types
+    Gogol.Blogger.Users.Get
 
-    other-modules:
-          Network.Google.Blogger.Types.Product
-        , Network.Google.Blogger.Types.Sum
+  other-modules:
+    Gogol.Blogger.Internal.Product
+    Gogol.Blogger.Internal.Sum
 
-    build-depends:
-          gogol-core == 0.5.0.*
-        , base       >= 4.7 && < 5
+  build-depends:    gogol-core ^>=1.0.0
