packages feed

gogol-blogger (empty) → 0.0.1

raw patch · 41 files changed

+8796/−0 lines, 41 filesdep +basedep +gogol-coresetup-changed

Dependencies added: base, gogol-core

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,28 @@+# gogol-blogger++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.0.1`+++## Description++A client library for the Google Blogger.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`gogol-blogger` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
+ Setup.hs view
@@ -0,0 +1,2 @@+import           Distribution.Simple+main = defaultMain
+ gen/Network/Google/Blogger.hs view
@@ -0,0 +1,556 @@+{-# 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 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++    -- * 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
+ gen/Network/Google/Blogger/Types.hs view
@@ -0,0 +1,393 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Blogger.Types+-- Copyright   : (c) 2015 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 :: Service+bloggerService+  = defaultService (ServiceId "blogger:v3")+      "www.googleapis.com"++-- | Manage your Blogger account+bloggerScope :: OAuthScope+bloggerScope = "https://www.googleapis.com/auth/blogger";++-- | View your Blogger account+bloggerReadonlyScope :: OAuthScope+bloggerReadonlyScope = "https://www.googleapis.com/auth/blogger.readonly";
+ gen/Network/Google/Blogger/Types/Product.hs view
@@ -0,0 +1,2407 @@+{-# 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 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])
+ gen/Network/Google/Blogger/Types/Sum.hs view
@@ -0,0 +1,762 @@+{-# 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 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++-- | 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 FromText PostsListOrderBy where+    fromText = \case+        "published" -> Just Published+        "updated" -> Just Updated+        _ -> Nothing++instance ToText PostsListOrderBy where+    toText = \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 FromText PostsListView where+    fromText = \case+        "ADMIN" -> Just Admin+        "AUTHOR" -> Just Author+        "READER" -> Just Reader+        _ -> Nothing++instance ToText PostsListView where+    toText = \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 FromText PageViewsGetRange where+    fromText = \case+        "30DAYS" -> Just PVGR30DAYS+        "7DAYS" -> Just PVGR7DAYS+        "all" -> Just PVGRAll+        _ -> Nothing++instance ToText PageViewsGetRange where+    toText = \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 FromText CommentsListView where+    fromText = \case+        "ADMIN" -> Just CLVAdmin+        "AUTHOR" -> Just CLVAuthor+        "READER" -> Just CLVReader+        _ -> Nothing++instance ToText CommentsListView where+    toText = \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 FromText PostUserInfosListStatus where+    fromText = \case+        "draft" -> Just Draft+        "live" -> Just Live+        "scheduled" -> Just Scheduled+        _ -> Nothing++instance ToText PostUserInfosListStatus where+    toText = \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 FromText PostsGetView where+    fromText = \case+        "ADMIN" -> Just PGVAdmin+        "AUTHOR" -> Just PGVAuthor+        "READER" -> Just PGVReader+        _ -> Nothing++instance ToText PostsGetView where+    toText = \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 FromText PostsSearchOrderBy where+    fromText = \case+        "published" -> Just PSOBPublished+        "updated" -> Just PSOBUpdated+        _ -> Nothing++instance ToText PostsSearchOrderBy where+    toText = \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 FromText CommentsListByBlogStatus where+    fromText = \case+        "emptied" -> Just CLBBSEmptied+        "live" -> Just CLBBSLive+        "pending" -> Just CLBBSPending+        "spam" -> Just CLBBSSpam+        _ -> Nothing++instance ToText CommentsListByBlogStatus where+    toText = \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 FromText PagesGetView where+    fromText = \case+        "ADMIN" -> Just PAdmin+        "AUTHOR" -> Just PAuthor+        "READER" -> Just PReader+        _ -> Nothing++instance ToText PagesGetView where+    toText = \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 FromText PostUserInfosListOrderBy where+    fromText = \case+        "published" -> Just PUILOBPublished+        "updated" -> Just PUILOBUpdated+        _ -> Nothing++instance ToText PostUserInfosListOrderBy where+    toText = \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 FromText BlogsGetView where+    fromText = \case+        "ADMIN" -> Just BGVAdmin+        "AUTHOR" -> Just BGVAuthor+        "READER" -> Just BGVReader+        _ -> Nothing++instance ToText BlogsGetView where+    toText = \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 FromText BlogsGetByURLView where+    fromText = \case+        "ADMIN" -> Just BGBUVAdmin+        "AUTHOR" -> Just BGBUVAuthor+        "READER" -> Just BGBUVReader+        _ -> Nothing++instance ToText BlogsGetByURLView where+    toText = \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 FromText CommentsListStatus where+    fromText = \case+        "emptied" -> Just CLSEmptied+        "live" -> Just CLSLive+        "pending" -> Just CLSPending+        "spam" -> Just CLSSpam+        _ -> Nothing++instance ToText CommentsListStatus where+    toText = \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 FromText BlogsListByUserStatus where+    fromText = \case+        "DELETED" -> Just BLBUSDeleted+        "LIVE" -> Just BLBUSLive+        _ -> Nothing++instance ToText BlogsListByUserStatus where+    toText = \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 FromText PagesListView where+    fromText = \case+        "ADMIN" -> Just PLVAdmin+        "AUTHOR" -> Just PLVAuthor+        "READER" -> Just PLVReader+        _ -> Nothing++instance ToText PagesListView where+    toText = \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 FromText PostsListStatus where+    fromText = \case+        "draft" -> Just PLSDraft+        "live" -> Just PLSLive+        "scheduled" -> Just PLSScheduled+        _ -> Nothing++instance ToText PostsListStatus where+    toText = \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 FromText BlogsListByUserView where+    fromText = \case+        "ADMIN" -> Just BLBUVAdmin+        "AUTHOR" -> Just BLBUVAuthor+        "READER" -> Just BLBUVReader+        _ -> Nothing++instance ToText BlogsListByUserView where+    toText = \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 FromText PostUserInfosListView where+    fromText = \case+        "ADMIN" -> Just PUILVAdmin+        "AUTHOR" -> Just PUILVAuthor+        "READER" -> Just PUILVReader+        _ -> Nothing++instance ToText PostUserInfosListView where+    toText = \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 FromText CommentsGetView where+    fromText = \case+        "ADMIN" -> Just CGVAdmin+        "AUTHOR" -> Just CGVAuthor+        "READER" -> Just CGVReader+        _ -> Nothing++instance ToText CommentsGetView where+    toText = \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 FromText PostsGetByPathView where+    fromText = \case+        "ADMIN" -> Just PGBPVAdmin+        "AUTHOR" -> Just PGBPVAuthor+        "READER" -> Just PGBPVReader+        _ -> Nothing++instance ToText PostsGetByPathView where+    toText = \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 FromText PagesListStatus where+    fromText = \case+        "draft" -> Just PDraft+        "live" -> Just PLive+        _ -> Nothing++instance ToText PagesListStatus where+    toText = \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 FromText BlogsListByUserRole where+    fromText = \case+        "ADMIN" -> Just BLBURAdmin+        "AUTHOR" -> Just BLBURAuthor+        "READER" -> Just BLBURReader+        _ -> Nothing++instance ToText BlogsListByUserRole where+    toText = \case+        BLBURAdmin -> "ADMIN"+        BLBURAuthor -> "AUTHOR"+        BLBURReader -> "READER"++instance FromJSON BlogsListByUserRole where+    parseJSON = parseJSONText "BlogsListByUserRole"++instance ToJSON BlogsListByUserRole where+    toJSON = toJSONText
+ gen/Network/Google/Resource/Blogger/BlogUserInfos/Get.hs view
@@ -0,0 +1,111 @@+{-# 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 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+        requestClient BlogUserInfosGet{..}+          = go _buigUserId _buigBlogId _buigMaxPosts+              (Just AltJSON)+              bloggerService+          where go+                  = buildClient+                      (Proxy :: Proxy BlogUserInfosGetResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Blogs/Get.hs view
@@ -0,0 +1,105 @@+{-# 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 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+        requestClient BlogsGet{..}+          = go _bgBlogId _bgMaxPosts _bgView (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy BlogsGetResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Blogs/GetByURL.hs view
@@ -0,0 +1,94 @@+{-# 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 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+        requestClient BlogsGetByURL{..}+          = go (Just _bgbuURL) _bgbuView (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy BlogsGetByURLResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Blogs/ListByUser.hs view
@@ -0,0 +1,141 @@+{-# 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 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+        requestClient BlogsListByUser{..}+          = go _blbuUserId _blbuStatus _blbuFetchUserInfo+              (_blbuRole ^. _Default)+              _blbuView+              (Just AltJSON)+              bloggerService+          where go+                  = buildClient+                      (Proxy :: Proxy BlogsListByUserResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Comments/Approve.hs view
@@ -0,0 +1,109 @@+{-# 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 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+        requestClient CommentsApprove{..}+          = go _caBlogId _caPostId _caCommentId (Just AltJSON)+              bloggerService+          where go+                  = buildClient+                      (Proxy :: Proxy CommentsApproveResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Comments/Delete.hs view
@@ -0,0 +1,107 @@+{-# 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 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 = ()+        requestClient CommentsDelete{..}+          = go _cdBlogId _cdPostId _cdCommentId (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy CommentsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Comments/Get.hs view
@@ -0,0 +1,121 @@+{-# 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 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+        requestClient CommentsGet{..}+          = go _cgBlogId _cgPostId _cgCommentId _cgView+              (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy CommentsGetResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Comments/List.hs view
@@ -0,0 +1,185 @@+{-# 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 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+        requestClient CommentsList{..}+          = go _clBlogId _clPostId (_clStatus ^. _Default)+              _clEndDate+              _clStartDate+              _clFetchBodies+              _clView+              _clPageToken+              _clMaxResults+              (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy CommentsListResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Comments/ListByBlog.hs view
@@ -0,0 +1,165 @@+{-# 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 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+        requestClient CommentsListByBlog{..}+          = go _clbbBlogId (_clbbStatus ^. _Default)+              _clbbEndDate+              _clbbStartDate+              _clbbFetchBodies+              _clbbPageToken+              _clbbMaxResults+              (Just AltJSON)+              bloggerService+          where go+                  = buildClient+                      (Proxy :: Proxy CommentsListByBlogResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Comments/MarkAsSpam.hs view
@@ -0,0 +1,113 @@+{-# 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 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+        requestClient CommentsMarkAsSpam{..}+          = go _cmasBlogId _cmasPostId _cmasCommentId+              (Just AltJSON)+              bloggerService+          where go+                  = buildClient+                      (Proxy :: Proxy CommentsMarkAsSpamResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Comments/RemoveContent.hs view
@@ -0,0 +1,112 @@+{-# 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 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+        requestClient CommentsRemoveContent{..}+          = go _crcBlogId _crcPostId _crcCommentId+              (Just AltJSON)+              bloggerService+          where go+                  = buildClient+                      (Proxy :: Proxy CommentsRemoveContentResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/PageViews/Get.hs view
@@ -0,0 +1,97 @@+{-# 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 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+        requestClient PageViewsGet{..}+          = go _pvgBlogId (_pvgRange ^. _Default)+              (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PageViewsGetResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Pages/Delete.hs view
@@ -0,0 +1,96 @@+{-# 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 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 = ()+        requestClient PagesDelete{..}+          = go _pddBlogId _pddPageId (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PagesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Pages/Get.hs view
@@ -0,0 +1,103 @@+{-# 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 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+        requestClient PagesGet{..}+          = go _pgBlogId _pgPageId _pgView (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PagesGetResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Pages/Insert.hs view
@@ -0,0 +1,106 @@+{-# 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 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+        requestClient PagesInsert{..}+          = go _piBlogId _piIsDraft (Just AltJSON) _piPayload+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PagesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Pages/List.hs view
@@ -0,0 +1,145 @@+{-# 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 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+        requestClient PagesList{..}+          = go _plBlogId (_plStatus ^. _Default) _plFetchBodies+              _plView+              _plPageToken+              _plMaxResults+              (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PagesListResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Pages/Patch.hs view
@@ -0,0 +1,131 @@+{-# 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 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+        requestClient PagesPatch{..}+          = go _ppBlogId _ppPageId _ppRevert _ppPublish+              (Just AltJSON)+              _ppPayload+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PagesPatchResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Pages/Publish.hs view
@@ -0,0 +1,97 @@+{-# 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 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+        requestClient PagesPublish{..}+          = go _pagaBlogId _pagaPageId (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PagesPublishResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Pages/Revert.hs view
@@ -0,0 +1,97 @@+{-# 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 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+        requestClient PagesRevert{..}+          = go _pagBlogId _pagPageId (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PagesRevertResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Pages/Update.hs view
@@ -0,0 +1,134 @@+{-# 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 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+        requestClient PagesUpdate{..}+          = go _puuBlogId _puuPageId _puuRevert _puuPublish+              (Just AltJSON)+              _puuPayload+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PagesUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/PostUserInfos/Get.hs view
@@ -0,0 +1,130 @@+{-# 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 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+        requestClient PostUserInfosGet{..}+          = go _puigUserId _puigBlogId _puigPostId+              _puigMaxComments+              (Just AltJSON)+              bloggerService+          where go+                  = buildClient+                      (Proxy :: Proxy PostUserInfosGetResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/PostUserInfos/List.hs view
@@ -0,0 +1,221 @@+{-# 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 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+        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
+ gen/Network/Google/Resource/Blogger/Posts/Delete.hs view
@@ -0,0 +1,94 @@+{-# 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 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 = ()+        requestClient PostsDelete{..}+          = go _pdBlogId _pdPostId (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PostsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Posts/Get.hs view
@@ -0,0 +1,149 @@+{-# 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 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'+        requestClient PostsGet{..}+          = go _pggBlogId _pggPostId (Just _pggFetchBody)+              _pggFetchImages+              _pggMaxComments+              _pggView+              (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PostsGetResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Posts/GetByPath.hs view
@@ -0,0 +1,122 @@+{-# 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 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'+        requestClient PostsGetByPath{..}+          = go _pgbpBlogId (Just _pgbpPath) _pgbpMaxComments+              _pgbpView+              (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PostsGetByPathResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Posts/Insert.hs view
@@ -0,0 +1,135 @@+{-# 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 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'+        requestClient PostsInsert{..}+          = go _posBlogId (Just _posFetchBody) _posIsDraft+              _posFetchImages+              (Just AltJSON)+              _posPayload+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PostsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Posts/List.hs view
@@ -0,0 +1,215 @@+{-# 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 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+        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
+ gen/Network/Google/Resource/Blogger/Posts/Patch.hs view
@@ -0,0 +1,177 @@+{-# 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 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'+        requestClient PostsPatch{..}+          = go _posoBlogId _posoPostId (Just _posoFetchBody)+              _posoFetchImages+              _posoMaxComments+              _posoRevert+              _posoPublish+              (Just AltJSON)+              _posoPayload+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PostsPatchResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Posts/Publish.hs view
@@ -0,0 +1,116 @@+{-# 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 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'+        requestClient PostsPublish{..}+          = go _pppBlogId _pppPostId _pppPublishDate+              (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PostsPublishResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Posts/Revert.hs view
@@ -0,0 +1,95 @@+{-# 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 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'+        requestClient PostsRevert{..}+          = go _prBlogId _prPostId (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PostsRevertResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Posts/Search.hs view
@@ -0,0 +1,122 @@+{-# 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 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+        requestClient PostsSearch{..}+          = go _psBlogId (Just _psQ) (Just _psOrderBy)+              (Just _psFetchBodies)+              (Just AltJSON)+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PostsSearchResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Posts/Update.hs view
@@ -0,0 +1,173 @@+{-# 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 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'+        requestClient PostsUpdate{..}+          = go _puBlogId _puPostId (Just _puFetchBody)+              _puFetchImages+              _puMaxComments+              _puRevert+              _puPublish+              (Just AltJSON)+              _puPayload+              bloggerService+          where go+                  = buildClient (Proxy :: Proxy PostsUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Blogger/Users/Get.hs view
@@ -0,0 +1,81 @@+{-# 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 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+        requestClient UsersGet{..}+          = go _ugUserId (Just AltJSON) bloggerService+          where go+                  = buildClient (Proxy :: Proxy UsersGetResource)+                      mempty
+ gogol-blogger.cabal view
@@ -0,0 +1,82 @@+name:                  gogol-blogger+version:               0.0.1+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 Brendan Hay+category:              Network, Google, Cloud+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md++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++source-repository head+    type:     git+    location: git://github.com/brendanhay/gogol.git++library+    default-language:  Haskell2010+    hs-source-dirs:    src gen++    ghc-options:       -Wall++    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++    other-modules:+          Network.Google.Blogger.Types.Product+        , Network.Google.Blogger.Types.Sum++    build-depends:+          gogol-core == 0.0.1.*+        , base       >= 4.7 && < 5