packages feed

gogol-docs (empty) → 0.5.0

raw patch · 12 files changed

+15639/−0 lines, 12 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-docs++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.5.0`+++## Description++A client library for the Google Docs.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.+++## Licence++`gogol-docs` 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/Docs.hs view
@@ -0,0 +1,1240 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.Docs+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Reads and writes Google Docs documents.+--+-- /See:/ <https://developers.google.com/docs/ Google Docs API Reference>+module Network.Google.Docs+    (+    -- * Service Configuration+      docsService++    -- * OAuth Scopes+    , driveReadOnlyScope+    , driveScope+    , driveFileScope+    , documentsScope+    , documentsReadOnlyScope++    -- * API Declaration+    , DocsAPI++    -- * Resources++    -- ** docs.documents.batchUpdate+    , module Network.Google.Resource.Docs.Documents.BatchUpdate++    -- ** docs.documents.create+    , module Network.Google.Resource.Docs.Documents.Create++    -- ** docs.documents.get+    , module Network.Google.Resource.Docs.Documents.Get++    -- * Types++    -- ** TableCellStyleSuggestionState+    , TableCellStyleSuggestionState+    , tableCellStyleSuggestionState+    , tcsssPaddingLeftSuggested+    , tcsssPaddingTopSuggested+    , tcsssBOrderTopSuggested+    , tcsssRowSpanSuggested+    , tcsssPaddingBottomSuggested+    , tcsssBOrderBottomSuggested+    , tcsssPaddingRightSuggested+    , tcsssColumnSpanSuggested+    , tcsssBOrderLeftSuggested+    , tcsssContentAlignmentSuggested+    , tcsssBackgRoundColorSuggested+    , tcsssBOrderRightSuggested++    -- ** EmbeddedObjectBOrderSuggestionState+    , EmbeddedObjectBOrderSuggestionState+    , embeddedObjectBOrderSuggestionState+    , eobossDashStyleSuggested+    , eobossPropertyStateSuggested+    , eobossColorSuggested+    , eobossWidthSuggested++    -- ** TableCellBOrder+    , TableCellBOrder+    , tableCellBOrder+    , tcboColor+    , tcboWidth+    , tcboDashStyle++    -- ** DeleteTableRowRequest+    , DeleteTableRowRequest+    , deleteTableRowRequest+    , dtrrTableCellLocation++    -- ** NamedStylesSuggestionState+    , NamedStylesSuggestionState+    , namedStylesSuggestionState+    , nsssStylesSuggestionStates++    -- ** PositionedObjectPositioning+    , PositionedObjectPositioning+    , positionedObjectPositioning+    , popLayout+    , popTopOffSet+    , popLeftOffSet++    -- ** SuggestedParagraphStyle+    , SuggestedParagraphStyle+    , suggestedParagraphStyle+    , spsParagraphStyleSuggestionState+    , spsParagraphStyle++    -- ** PositionedObjectProperties+    , PositionedObjectProperties+    , positionedObjectProperties+    , popEmbeddedObject+    , popPositioning++    -- ** NamedStyle+    , NamedStyle+    , namedStyle+    , nsNamedStyleType+    , nsTextStyle+    , nsParagraphStyle++    -- ** DeleteNamedRangeRequest+    , DeleteNamedRangeRequest+    , deleteNamedRangeRequest+    , dnrrNamedRangeId+    , dnrrName++    -- ** ParagraphStyleDirection+    , ParagraphStyleDirection (..)++    -- ** TextStyleBaselineOffSet+    , TextStyleBaselineOffSet (..)++    -- ** EmbeddedDrawingPropertiesSuggestionState+    , EmbeddedDrawingPropertiesSuggestionState+    , embeddedDrawingPropertiesSuggestionState++    -- ** TabStop+    , TabStop+    , tabStop+    , tsOffSet+    , tsAlignment++    -- ** NamedRanges+    , NamedRanges+    , namedRanges+    , nrNamedRanges+    , nrName++    -- ** TableColumnPropertiesWidthType+    , TableColumnPropertiesWidthType (..)++    -- ** TableRowSuggestedTableRowStyleChanges+    , TableRowSuggestedTableRowStyleChanges+    , tableRowSuggestedTableRowStyleChanges+    , trstrscAddtional++    -- ** PositionedObjectPropertiesSuggestionState+    , PositionedObjectPropertiesSuggestionState+    , positionedObjectPropertiesSuggestionState+    , popssPositioningSuggestionState+    , popssEmbeddedObjectSuggestionState++    -- ** PositionedObjectPositioningSuggestionState+    , PositionedObjectPositioningSuggestionState+    , positionedObjectPositioningSuggestionState+    , popssTopOffSetSuggested+    , popssLayoutSuggested+    , popssLeftOffSetSuggested++    -- ** NamedStyleSuggestionState+    , NamedStyleSuggestionState+    , namedStyleSuggestionState+    , nsssParagraphStyleSuggestionState+    , nsssNamedStyleType+    , nsssTextStyleSuggestionState++    -- ** CropProperties+    , CropProperties+    , cropProperties+    , cpOffSetBottom+    , cpOffSetRight+    , cpAngle+    , cpOffSetTop+    , cpOffSetLeft++    -- ** ParagraphStyleSuggestionState+    , ParagraphStyleSuggestionState+    , paragraphStyleSuggestionState+    , psssSpacingModeSuggested+    , psssBOrderTopSuggested+    , psssLineSpacingSuggested+    , psssDirectionSuggested+    , psssAvoidWidowAndOrphanSuggested+    , psssBOrderBottomSuggested+    , psssSpaceAboveSuggested+    , psssNamedStyleTypeSuggested+    , psssIndentStartSuggested+    , psssAlignmentSuggested+    , psssBOrderLeftSuggested+    , psssSpaceBelowSuggested+    , psssIndentFirstLineSuggested+    , psssShadingSuggestionState+    , psssHeadingIdSuggested+    , psssBOrderBetweenSuggested+    , psssKeepWithNextSuggested+    , psssIndentEndSuggested+    , psssBOrderRightSuggested+    , psssKeepLinesTogetherSuggested++    -- ** FootNote+    , FootNote+    , footNote+    , fnContent+    , fnFootNoteId++    -- ** AutoText+    , AutoText+    , autoText+    , atSuggestedInsertionIds+    , atSuggestedTextStyleChanges+    , atSuggestedDeletionIds+    , atTextStyle+    , atType++    -- ** List+    , List+    , list+    , lSuggestedInsertionId+    , lSuggestedListPropertiesChanges+    , lSuggestedDeletionIds+    , lListProperties++    -- ** ParagraphBOrder+    , ParagraphBOrder+    , paragraphBOrder+    , pboColor+    , pboWidth+    , pboDashStyle+    , pboPadding++    -- ** SuggestedTableCellStyle+    , SuggestedTableCellStyle+    , suggestedTableCellStyle+    , stcsTableCellStyleSuggestionState+    , stcsTableCellStyle++    -- ** InsertInlineImageResponse+    , InsertInlineImageResponse+    , insertInlineImageResponse+    , iiirObjectId++    -- ** RgbColor+    , RgbColor+    , rgbColor+    , rcRed+    , rcGreen+    , rcBlue++    -- ** InsertPageBreakRequest+    , InsertPageBreakRequest+    , insertPageBreakRequest+    , ipbrLocation+    , ipbrEndOfSegmentLocation++    -- ** CreateParagraphBulletsRequestBulletPreset+    , CreateParagraphBulletsRequestBulletPreset (..)++    -- ** BackgRoundSuggestionState+    , BackgRoundSuggestionState+    , backgRoundSuggestionState+    , brssBackgRoundColorSuggested++    -- ** TableCellBOrderDashStyle+    , TableCellBOrderDashStyle (..)++    -- ** ParagraphStyleNamedStyleType+    , ParagraphStyleNamedStyleType (..)++    -- ** InlineObjectProperties+    , InlineObjectProperties+    , inlineObjectProperties+    , iopEmbeddedObject++    -- ** SuggestedDocumentStyle+    , SuggestedDocumentStyle+    , suggestedDocumentStyle+    , sdsDocumentStyle+    , sdsDocumentStyleSuggestionState++    -- ** Location+    , Location+    , location+    , lIndex+    , lSegmentId++    -- ** TableOfContents+    , TableOfContents+    , tableOfContents+    , tocSuggestedInsertionIds+    , tocContent+    , tocSuggestedDeletionIds++    -- ** Color+    , Color+    , color+    , cRgbColor++    -- ** Size+    , Size+    , size+    , sHeight+    , sWidth++    -- ** InsertInlineSheetsChartResponse+    , InsertInlineSheetsChartResponse+    , insertInlineSheetsChartResponse+    , iiscrObjectId++    -- ** TableRowStyleSuggestionState+    , TableRowStyleSuggestionState+    , tableRowStyleSuggestionState+    , trsssMinRowHeightSuggested++    -- ** DeleteTableColumnRequest+    , DeleteTableColumnRequest+    , deleteTableColumnRequest+    , dtcrTableCellLocation++    -- ** DocumentNamedRanges+    , DocumentNamedRanges+    , documentNamedRanges+    , dnrAddtional++    -- ** EndOfSegmentLocation+    , EndOfSegmentLocation+    , endOfSegmentLocation+    , eoslSegmentId++    -- ** DocumentInlineObjects+    , DocumentInlineObjects+    , documentInlineObjects+    , dioAddtional++    -- ** ParagraphSuggestedPositionedObjectIds+    , ParagraphSuggestedPositionedObjectIds+    , paragraphSuggestedPositionedObjectIds+    , pspoiAddtional++    -- ** Link+    , Link+    , link+    , lURL+    , lHeadingId+    , lBookmarkId++    -- ** TabStopAlignment+    , TabStopAlignment (..)++    -- ** NestingLevelGlyphType+    , NestingLevelGlyphType (..)++    -- ** AutoTextSuggestedTextStyleChanges+    , AutoTextSuggestedTextStyleChanges+    , autoTextSuggestedTextStyleChanges+    , atstscAddtional++    -- ** InsertInlineImageRequest+    , InsertInlineImageRequest+    , insertInlineImageRequest+    , iiirLocation+    , iiirEndOfSegmentLocation+    , iiirURI+    , iiirObjectSize++    -- ** Dimension+    , Dimension+    , dimension+    , dMagnitude+    , dUnit++    -- ** DocumentStyle+    , DocumentStyle+    , documentStyle+    , dsMarginTop+    , dsDefaultFooterId+    , dsFirstPageHeaderId+    , dsFirstPageFooterId+    , dsDefaultHeaderId+    , dsUseEvenPageHeaderFooter+    , dsMarginLeft+    , dsPageNumberStart+    , dsUseFirstPageHeaderFooter+    , dsEvenPageFooterId+    , dsPageSize+    , dsBackgRound+    , dsMarginRight+    , dsMarginBottom+    , dsEvenPageHeaderId++    -- ** Body+    , Body+    , body+    , bContent++    -- ** ListPropertiesSuggestionState+    , ListPropertiesSuggestionState+    , listPropertiesSuggestionState+    , lpssNestingLevelsSuggestionStates++    -- ** ParagraphSuggestedBulletChanges+    , ParagraphSuggestedBulletChanges+    , paragraphSuggestedBulletChanges+    , psbcAddtional++    -- ** Response+    , Response+    , response+    , rReplaceAllText+    , rCreateNamedRange+    , rInsertInlineImage+    , rInsertInlineSheetsChart++    -- ** SheetsChartReference+    , SheetsChartReference+    , sheetsChartReference+    , scrSpreadsheetId+    , scrChartId++    -- ** OptionalColor+    , OptionalColor+    , optionalColor+    , ocColor++    -- ** CreateNamedRangeResponse+    , CreateNamedRangeResponse+    , createNamedRangeResponse+    , cnrrNamedRangeId++    -- ** SuggestedBullet+    , SuggestedBullet+    , suggestedBullet+    , sbBullet+    , sbBulletSuggestionState++    -- ** ParagraphBOrderDashStyle+    , ParagraphBOrderDashStyle (..)++    -- ** EmbeddedObject+    , EmbeddedObject+    , embeddedObject+    , eoMarginTop+    , eoSize+    , eoLinkedContentReference+    , eoImageProperties+    , eoEmbeddedObjectBOrder+    , eoEmbeddedDrawingProperties+    , eoMarginLeft+    , eoTitle+    , eoMarginRight+    , eoDescription+    , eoMarginBottom++    -- ** ReplaceAllTextResponse+    , ReplaceAllTextResponse+    , replaceAllTextResponse+    , ratrOccurrencesChanged++    -- ** DocumentStyleSuggestionState+    , DocumentStyleSuggestionState+    , documentStyleSuggestionState+    , dsssFirstPageFooterIdSuggested+    , dsssDefaultHeaderIdSuggested+    , dsssUseEvenPageHeaderFooterSuggested+    , dsssPageNumberStartSuggested+    , dsssBackgRoundSuggestionState+    , dsssUseFirstPageHeaderFooterSuggested+    , dsssPageSizeSuggestionState+    , dsssMarginTopSuggested+    , dsssEvenPageFooterIdSuggested+    , dsssMarginBottomSuggested+    , dsssEvenPageHeaderIdSuggested+    , dsssMarginLeftSuggested+    , dsssMarginRightSuggested+    , dsssFirstPageHeaderIdSuggested+    , dsssDefaultFooterIdSuggested++    -- ** LinkedContentReference+    , LinkedContentReference+    , linkedContentReference+    , lcrSheetsChartReference++    -- ** Shading+    , Shading+    , shading+    , sBackgRoundColor++    -- ** InlineObjectPropertiesSuggestionState+    , InlineObjectPropertiesSuggestionState+    , inlineObjectPropertiesSuggestionState+    , iopssEmbeddedObjectSuggestionState++    -- ** PageBreakSuggestedTextStyleChanges+    , PageBreakSuggestedTextStyleChanges+    , pageBreakSuggestedTextStyleChanges+    , pbstscAddtional++    -- ** DocumentLists+    , DocumentLists+    , documentLists+    , dlAddtional++    -- ** DeleteContentRangeRequest+    , DeleteContentRangeRequest+    , deleteContentRangeRequest+    , dcrrRange++    -- ** Bullet+    , Bullet+    , bullet+    , bListId+    , bTextStyle+    , bNestingLevel++    -- ** Paragraph+    , Paragraph+    , paragraph+    , pBullet+    , pSuggestedBulletChanges+    , pSuggestedPositionedObjectIds+    , pSuggestedParagraphStyleChanges+    , pElements+    , pPositionedObjectIds+    , pParagraphStyle++    -- ** TextRunSuggestedTextStyleChanges+    , TextRunSuggestedTextStyleChanges+    , textRunSuggestedTextStyleChanges+    , trstscAddtional++    -- ** SuggestedTableRowStyle+    , SuggestedTableRowStyle+    , suggestedTableRowStyle+    , strsTableRowStyleSuggestionState+    , strsTableRowStyle++    -- ** DocumentFootNotes+    , DocumentFootNotes+    , documentFootNotes+    , dfnAddtional++    -- ** ImageProperties+    , ImageProperties+    , imageProperties+    , ipCropProperties+    , ipContentURI+    , ipTransparency+    , ipAngle+    , ipContrast+    , ipSourceURI+    , ipBrightness++    -- ** ParagraphStyleAlignment+    , ParagraphStyleAlignment (..)++    -- ** SizeSuggestionState+    , SizeSuggestionState+    , sizeSuggestionState+    , sssHeightSuggested+    , sssWidthSuggested++    -- ** ListSuggestedListPropertiesChanges+    , ListSuggestedListPropertiesChanges+    , listSuggestedListPropertiesChanges+    , lslpcAddtional++    -- ** BatchUpdateDocumentResponse+    , BatchUpdateDocumentResponse+    , batchUpdateDocumentResponse+    , budrDocumentId+    , budrReplies+    , budrWriteControl++    -- ** TableStyle+    , TableStyle+    , tableStyle+    , tsTableColumnProperties++    -- ** FootNoteReference+    , FootNoteReference+    , footNoteReference+    , fnrSuggestedInsertionIds+    , fnrSuggestedTextStyleChanges+    , fnrFootNoteId+    , fnrSuggestedDeletionIds+    , fnrTextStyle+    , fnrFootNoteNumber++    -- ** ColumnBreak+    , ColumnBreak+    , columnBreak+    , cbSuggestedInsertionIds+    , cbSuggestedTextStyleChanges+    , cbSuggestedDeletionIds+    , cbTextStyle++    -- ** InlineObjectSuggestedInlineObjectPropertiesChanges+    , InlineObjectSuggestedInlineObjectPropertiesChanges+    , inlineObjectSuggestedInlineObjectPropertiesChanges+    , iosiopcAddtional++    -- ** Equation+    , Equation+    , equation+    , eSuggestedInsertionIds+    , eSuggestedDeletionIds++    -- ** NamedRange+    , NamedRange+    , namedRange+    , nNamedRangeId+    , nRanges+    , nName++    -- ** CropPropertiesSuggestionState+    , CropPropertiesSuggestionState+    , cropPropertiesSuggestionState+    , cpssAngleSuggested+    , cpssOffSetRightSuggested+    , cpssOffSetBottomSuggested+    , cpssOffSetTopSuggested+    , cpssOffSetLeftSuggested++    -- ** TextRun+    , TextRun+    , textRun+    , trSuggestedInsertionIds+    , trSuggestedTextStyleChanges+    , trContent+    , trSuggestedDeletionIds+    , trTextStyle++    -- ** TableRow+    , TableRow+    , tableRow+    , tSuggestedInsertionIds+    , tTableCells+    , tEndIndex+    , tSuggestedDeletionIds+    , tSuggestedTableRowStyleChanges+    , tTableRowStyle+    , tStartIndex++    -- ** WeightedFontFamily+    , WeightedFontFamily+    , weightedFontFamily+    , wffFontFamily+    , wffWeight++    -- ** PageBreak+    , PageBreak+    , pageBreak+    , pbSuggestedInsertionIds+    , pbSuggestedTextStyleChanges+    , pbSuggestedDeletionIds+    , pbTextStyle++    -- ** InlineObject+    , InlineObject+    , inlineObject+    , ioSuggestedInsertionId+    , ioInlineObjectProperties+    , ioObjectId+    , ioSuggestedDeletionIds+    , ioSuggestedInlineObjectPropertiesChanges++    -- ** EmbeddedObjectBOrder+    , EmbeddedObjectBOrder+    , embeddedObjectBOrder+    , eoboColor+    , eoboWidth+    , eoboDashStyle+    , eoboPropertyState++    -- ** EmbeddedObjectBOrderPropertyState+    , EmbeddedObjectBOrderPropertyState (..)++    -- ** TableCellSuggestedTableCellStyleChanges+    , TableCellSuggestedTableCellStyleChanges+    , tableCellSuggestedTableCellStyleChanges+    , tcstcscAddtional++    -- ** TableCellStyle+    , TableCellStyle+    , tableCellStyle+    , tcsBOrderRight+    , tcsBOrderTop+    , tcsColumnSpan+    , tcsBackgRoundColor+    , tcsPaddingBottom+    , tcsRowSpan+    , tcsBOrderLeft+    , tcsPaddingLeft+    , tcsPaddingTop+    , tcsBOrderBottom+    , tcsContentAlignment+    , tcsPaddingRight++    -- ** Header+    , Header+    , header+    , hHeaderId+    , hContent++    -- ** Range+    , Range+    , range+    , rEndIndex+    , rStartIndex+    , rSegmentId++    -- ** Document+    , Document+    , document+    , dNamedRanges+    , dInlineObjects+    , dDocumentId+    , dBody+    , dDocumentStyle+    , dFooters+    , dPositionedObjects+    , dSuggestionsViewMode+    , dHeaders+    , dNamedStyles+    , dSuggestedNamedStylesChanges+    , dSuggestedDocumentStyleChanges+    , dTitle+    , dRevisionId+    , dFootNotes+    , dLists++    -- ** DocumentSuggestedDocumentStyleChanges+    , DocumentSuggestedDocumentStyleChanges+    , documentSuggestedDocumentStyleChanges+    , dsdscAddtional++    -- ** NamedStyles+    , NamedStyles+    , namedStyles+    , nsStyles++    -- ** ParagraphSuggestedParagraphStyleChanges+    , ParagraphSuggestedParagraphStyleChanges+    , paragraphSuggestedParagraphStyleChanges+    , pspscAddtional++    -- ** EmbeddedDrawingProperties+    , EmbeddedDrawingProperties+    , embeddedDrawingProperties++    -- ** SuggestedTextStyle+    , SuggestedTextStyle+    , suggestedTextStyle+    , stsTextStyle+    , stsTextStyleSuggestionState++    -- ** SectionStyleColumnSeparatorStyle+    , SectionStyleColumnSeparatorStyle (..)++    -- ** InsertTableRowRequest+    , InsertTableRowRequest+    , insertTableRowRequest+    , itrrInsertBelow+    , itrrTableCellLocation++    -- ** SuggestedNamedStyles+    , SuggestedNamedStyles+    , suggestedNamedStyles+    , snsNamedStylesSuggestionState+    , snsNamedStyles++    -- ** Xgafv+    , Xgafv (..)++    -- ** AutoTextType+    , AutoTextType (..)++    -- ** WriteControl+    , WriteControl+    , writeControl+    , wcRequiredRevisionId+    , wcTargetRevisionId++    -- ** TextStyle+    , TextStyle+    , textStyle+    , tsLink+    , tsBackgRoundColor+    , tsBaselineOffSet+    , tsForegRoundColor+    , tsFontSize+    , tsSmallCaps+    , tsUnderline+    , tsWeightedFontFamily+    , tsItalic+    , tsBold+    , tsStrikethrough++    -- ** HorizontalRuleSuggestedTextStyleChanges+    , HorizontalRuleSuggestedTextStyleChanges+    , horizontalRuleSuggestedTextStyleChanges+    , hrstscAddtional++    -- ** UpdateTextStyleRequest+    , UpdateTextStyleRequest+    , updateTextStyleRequest+    , utsrRange+    , utsrTextStyle+    , utsrFields++    -- ** InlineObjectElement+    , InlineObjectElement+    , inlineObjectElement+    , ioeSuggestedInsertionIds+    , ioeSuggestedTextStyleChanges+    , ioeInlineObjectId+    , ioeSuggestedDeletionIds+    , ioeTextStyle++    -- ** SectionStyleContentDirection+    , SectionStyleContentDirection (..)++    -- ** NestingLevel+    , NestingLevel+    , nestingLevel+    , nlIndentFirstLine+    , nlGlyphFormat+    , nlBulletAlignment+    , nlIndentStart+    , nlGlyphSymbol+    , nlTextStyle+    , nlGlyphType+    , nlStartNumber++    -- ** TableCellLocation+    , TableCellLocation+    , tableCellLocation+    , tclColumnIndex+    , tclTableStartLocation+    , tclRowIndex++    -- ** DeletePositionedObjectRequest+    , DeletePositionedObjectRequest+    , deletePositionedObjectRequest+    , dporObjectId++    -- ** Footer+    , Footer+    , footer+    , fFooterId+    , fContent++    -- ** PositionedObject+    , PositionedObject+    , positionedObject+    , poSuggestedPositionedObjectPropertiesChanges+    , poPositionedObjectProperties+    , poSuggestedInsertionId+    , poObjectId+    , poSuggestedDeletionIds++    -- ** ObjectReferences+    , ObjectReferences+    , objectReferences+    , orObjectIds++    -- ** BulletSuggestionState+    , BulletSuggestionState+    , bulletSuggestionState+    , bssNestingLevelSuggested+    , bssListIdSuggested+    , bssTextStyleSuggestionState++    -- ** ImagePropertiesSuggestionState+    , ImagePropertiesSuggestionState+    , imagePropertiesSuggestionState+    , ipssAngleSuggested+    , ipssContrastSuggested+    , ipssContentURISuggested+    , ipssSourceURISuggested+    , ipssCropPropertiesSuggestionState+    , ipssBrightnessSuggested+    , ipssTransparencySuggested++    -- ** ShadingSuggestionState+    , ShadingSuggestionState+    , shadingSuggestionState+    , sssBackgRoundColorSuggested++    -- ** DocumentSuggestedNamedStylesChanges+    , DocumentSuggestedNamedStylesChanges+    , documentSuggestedNamedStylesChanges+    , dsnscAddtional++    -- ** TableCell+    , TableCell+    , tableCell+    , tcSuggestedInsertionIds+    , tcSuggestedTableCellStyleChanges+    , tcEndIndex+    , tcContent+    , tcTableCellStyle+    , tcSuggestedDeletionIds+    , tcStartIndex++    -- ** SheetsChartReferenceSuggestionState+    , SheetsChartReferenceSuggestionState+    , sheetsChartReferenceSuggestionState+    , scrssChartIdSuggested+    , scrssSpreadsheetIdSuggested++    -- ** ParagraphElement+    , ParagraphElement+    , paragraphElement+    , peAutoText+    , peEndIndex+    , peFootNoteReference+    , peColumnBreak+    , peTextRun+    , peEquation+    , pePageBreak+    , peInlineObjectElement+    , peHorizontalRule+    , peStartIndex++    -- ** NamedStyleNamedStyleType+    , NamedStyleNamedStyleType (..)++    -- ** HorizontalRule+    , HorizontalRule+    , horizontalRule+    , hrSuggestedInsertionIds+    , hrSuggestedTextStyleChanges+    , hrSuggestedDeletionIds+    , hrTextStyle++    -- ** EmbeddedObjectSuggestionState+    , EmbeddedObjectSuggestionState+    , embeddedObjectSuggestionState+    , eossEmbeddedObjectBOrderSuggestionState+    , eossEmbeddedDrawingPropertiesSuggestionState+    , eossTitleSuggested+    , eossMarginTopSuggested+    , eossSizeSuggestionState+    , eossMarginBottomSuggested+    , eossImagePropertiesSuggestionState+    , eossMarginLeftSuggested+    , eossLinkedContentReferenceSuggestionState+    , eossDescriptionSuggested+    , eossMarginRightSuggested++    -- ** InsertTableRequest+    , InsertTableRequest+    , insertTableRequest+    , itrLocation+    , itrEndOfSegmentLocation+    , itrRows+    , itrColumns++    -- ** SuggestedInlineObjectProperties+    , SuggestedInlineObjectProperties+    , suggestedInlineObjectProperties+    , siopInlineObjectProperties+    , siopInlineObjectPropertiesSuggestionState++    -- ** LinkedContentReferenceSuggestionState+    , LinkedContentReferenceSuggestionState+    , linkedContentReferenceSuggestionState+    , lcrssSheetsChartReferenceSuggestionState++    -- ** InlineObjectElementSuggestedTextStyleChanges+    , InlineObjectElementSuggestedTextStyleChanges+    , inlineObjectElementSuggestedTextStyleChanges+    , ioestscAddtional++    -- ** ParagraphStyleSpacingMode+    , ParagraphStyleSpacingMode (..)++    -- ** StructuralElement+    , StructuralElement+    , structuralElement+    , seTableOfContents+    , seParagraph+    , seEndIndex+    , seTable+    , seStartIndex+    , seSectionBreak++    -- ** DeleteParagraphBulletsRequest+    , DeleteParagraphBulletsRequest+    , deleteParagraphBulletsRequest+    , dpbrRange++    -- ** BatchUpdateDocumentRequest+    , BatchUpdateDocumentRequest+    , batchUpdateDocumentRequest+    , bRequests+    , bWriteControl++    -- ** ListProperties+    , ListProperties+    , listProperties+    , lpNestingLevels++    -- ** InsertTextRequest+    , InsertTextRequest+    , insertTextRequest+    , iLocation+    , iText+    , iEndOfSegmentLocation++    -- ** NestingLevelBulletAlignment+    , NestingLevelBulletAlignment (..)++    -- ** ColumnBreakSuggestedTextStyleChanges+    , ColumnBreakSuggestedTextStyleChanges+    , columnBreakSuggestedTextStyleChanges+    , cbstscAddtional++    -- ** FootNoteReferenceSuggestedTextStyleChanges+    , FootNoteReferenceSuggestedTextStyleChanges+    , footNoteReferenceSuggestedTextStyleChanges+    , fnrstscAddtional++    -- ** DocumentHeaders+    , DocumentHeaders+    , documentHeaders+    , dhAddtional++    -- ** TableRowStyle+    , TableRowStyle+    , tableRowStyle+    , trsMinRowHeight++    -- ** NamedStyleSuggestionStateNamedStyleType+    , NamedStyleSuggestionStateNamedStyleType (..)++    -- ** SectionBreak+    , SectionBreak+    , sectionBreak+    , sbSuggestedInsertionIds+    , sbSuggestedDeletionIds+    , sbSectionStyle++    -- ** EmbeddedObjectBOrderDashStyle+    , EmbeddedObjectBOrderDashStyle (..)++    -- ** DocumentSuggestionsViewMode+    , DocumentSuggestionsViewMode (..)++    -- ** Table+    , Table+    , table+    , tabSuggestedInsertionIds+    , tabTableRows+    , tabRows+    , tabTableStyle+    , tabSuggestedDeletionIds+    , tabColumns++    -- ** SectionStyle+    , SectionStyle+    , sectionStyle+    , ssColumnSeparatorStyle+    , ssContentDirection+    , ssColumnProperties++    -- ** PositionedObjectPositioningLayout+    , PositionedObjectPositioningLayout (..)++    -- ** BackgRound+    , BackgRound+    , backgRound+    , brColor++    -- ** SuggestedListProperties+    , SuggestedListProperties+    , suggestedListProperties+    , slpListPropertiesSuggestionState+    , slpListProperties++    -- ** SectionColumnProperties+    , SectionColumnProperties+    , sectionColumnProperties+    , scpWidth+    , scpPaddingEnd++    -- ** CreateParagraphBulletsRequest+    , CreateParagraphBulletsRequest+    , createParagraphBulletsRequest+    , cpbrBulletPreset+    , cpbrRange++    -- ** DimensionUnit+    , DimensionUnit (..)++    -- ** DocumentFooters+    , DocumentFooters+    , documentFooters+    , dfAddtional++    -- ** CreateNamedRangeRequest+    , CreateNamedRangeRequest+    , createNamedRangeRequest+    , cnrrName+    , cnrrRange++    -- ** TextStyleSuggestionState+    , TextStyleSuggestionState+    , textStyleSuggestionState+    , tsssItalicSuggested+    , tsssUnderlineSuggested+    , tsssFontSizeSuggested+    , tsssSmallCapsSuggested+    , tsssForegRoundColorSuggested+    , tsssBaselineOffSetSuggested+    , tsssWeightedFontFamilySuggested+    , tsssStrikethroughSuggested+    , tsssLinkSuggested+    , tsssBoldSuggested+    , tsssBackgRoundColorSuggested++    -- ** NestingLevelSuggestionState+    , NestingLevelSuggestionState+    , nestingLevelSuggestionState+    , nlssGlyphFormatSuggested+    , nlssBulletAlignmentSuggested+    , nlssGlyphTypeSuggested+    , nlssStartNumberSuggested+    , nlssIndentStartSuggested+    , nlssGlyphSymbolSuggested+    , nlssIndentFirstLineSuggested+    , nlssTextStyleSuggestionState++    -- ** ParagraphStyle+    , ParagraphStyle+    , paragraphStyle+    , psBOrderRight+    , psKeepLinesTogether+    , psTabStops+    , psBOrderTop+    , psLineSpacing+    , psDirection+    , psIndentFirstLine+    , psIndentEnd+    , psShading+    , psAvoidWidowAndOrphan+    , psNamedStyleType+    , psIndentStart+    , psAlignment+    , psBOrderLeft+    , psSpaceBelow+    , psSpacingMode+    , psHeadingId+    , psSpaceAbove+    , psBOrderBottom+    , psKeepWithNext+    , psBOrderBetween++    -- ** SuggestedPositionedObjectProperties+    , SuggestedPositionedObjectProperties+    , suggestedPositionedObjectProperties+    , spopPositionedObjectProperties+    , spopPositionedObjectPropertiesSuggestionState++    -- ** TableColumnProperties+    , TableColumnProperties+    , tableColumnProperties+    , tcpWidth+    , tcpWidthType++    -- ** TableCellStyleContentAlignment+    , TableCellStyleContentAlignment (..)++    -- ** UpdateParagraphStyleRequest+    , UpdateParagraphStyleRequest+    , updateParagraphStyleRequest+    , upsrRange+    , upsrFields+    , upsrParagraphStyle++    -- ** ReplaceAllTextRequest+    , ReplaceAllTextRequest+    , replaceAllTextRequest+    , ratrContainsText+    , ratrReplaceText++    -- ** DocumentPositionedObjects+    , DocumentPositionedObjects+    , documentPositionedObjects+    , dpoAddtional++    -- ** Request'+    , Request'+    , request'+    , reqDeletePositionedObject+    , reqCreateParagraphBullets+    , reqInsertText+    , reqDeleteParagraphBullets+    , reqDeleteTableRow+    , reqDeleteNamedRange+    , reqReplaceAllText+    , reqUpdateParagraphStyle+    , reqCreateNamedRange+    , reqInsertPageBreak+    , reqDeleteTableColumn+    , reqInsertInlineImage+    , reqDeleteContentRange+    , reqInsertTableRow+    , reqUpdateTextStyle+    , reqInsertTable++    -- ** PositionedObjectSuggestedPositionedObjectPropertiesChanges+    , PositionedObjectSuggestedPositionedObjectPropertiesChanges+    , positionedObjectSuggestedPositionedObjectPropertiesChanges+    , pospopcAddtional++    -- ** SubstringMatchCriteria+    , SubstringMatchCriteria+    , substringMatchCriteria+    , smcMatchCase+    , smcText+    ) where++import           Network.Google.Docs.Types+import           Network.Google.Prelude+import           Network.Google.Resource.Docs.Documents.BatchUpdate+import           Network.Google.Resource.Docs.Documents.Create+import           Network.Google.Resource.Docs.Documents.Get++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Google Docs API service.+type DocsAPI =+     DocumentsGetResource :<|> DocumentsCreateResource+       :<|> DocumentsBatchUpdateResource
+ gen/Network/Google/Docs/Types.hs view
@@ -0,0 +1,1238 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Docs.Types+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Docs.Types+    (+    -- * Service Configuration+      docsService++    -- * OAuth Scopes+    , driveReadOnlyScope+    , driveScope+    , driveFileScope+    , documentsScope+    , documentsReadOnlyScope++    -- * TableCellStyleSuggestionState+    , TableCellStyleSuggestionState+    , tableCellStyleSuggestionState+    , tcsssPaddingLeftSuggested+    , tcsssPaddingTopSuggested+    , tcsssBOrderTopSuggested+    , tcsssRowSpanSuggested+    , tcsssPaddingBottomSuggested+    , tcsssBOrderBottomSuggested+    , tcsssPaddingRightSuggested+    , tcsssColumnSpanSuggested+    , tcsssBOrderLeftSuggested+    , tcsssContentAlignmentSuggested+    , tcsssBackgRoundColorSuggested+    , tcsssBOrderRightSuggested++    -- * EmbeddedObjectBOrderSuggestionState+    , EmbeddedObjectBOrderSuggestionState+    , embeddedObjectBOrderSuggestionState+    , eobossDashStyleSuggested+    , eobossPropertyStateSuggested+    , eobossColorSuggested+    , eobossWidthSuggested++    -- * TableCellBOrder+    , TableCellBOrder+    , tableCellBOrder+    , tcboColor+    , tcboWidth+    , tcboDashStyle++    -- * DeleteTableRowRequest+    , DeleteTableRowRequest+    , deleteTableRowRequest+    , dtrrTableCellLocation++    -- * NamedStylesSuggestionState+    , NamedStylesSuggestionState+    , namedStylesSuggestionState+    , nsssStylesSuggestionStates++    -- * PositionedObjectPositioning+    , PositionedObjectPositioning+    , positionedObjectPositioning+    , popLayout+    , popTopOffSet+    , popLeftOffSet++    -- * SuggestedParagraphStyle+    , SuggestedParagraphStyle+    , suggestedParagraphStyle+    , spsParagraphStyleSuggestionState+    , spsParagraphStyle++    -- * PositionedObjectProperties+    , PositionedObjectProperties+    , positionedObjectProperties+    , popEmbeddedObject+    , popPositioning++    -- * NamedStyle+    , NamedStyle+    , namedStyle+    , nsNamedStyleType+    , nsTextStyle+    , nsParagraphStyle++    -- * DeleteNamedRangeRequest+    , DeleteNamedRangeRequest+    , deleteNamedRangeRequest+    , dnrrNamedRangeId+    , dnrrName++    -- * ParagraphStyleDirection+    , ParagraphStyleDirection (..)++    -- * TextStyleBaselineOffSet+    , TextStyleBaselineOffSet (..)++    -- * EmbeddedDrawingPropertiesSuggestionState+    , EmbeddedDrawingPropertiesSuggestionState+    , embeddedDrawingPropertiesSuggestionState++    -- * TabStop+    , TabStop+    , tabStop+    , tsOffSet+    , tsAlignment++    -- * NamedRanges+    , NamedRanges+    , namedRanges+    , nrNamedRanges+    , nrName++    -- * TableColumnPropertiesWidthType+    , TableColumnPropertiesWidthType (..)++    -- * TableRowSuggestedTableRowStyleChanges+    , TableRowSuggestedTableRowStyleChanges+    , tableRowSuggestedTableRowStyleChanges+    , trstrscAddtional++    -- * PositionedObjectPropertiesSuggestionState+    , PositionedObjectPropertiesSuggestionState+    , positionedObjectPropertiesSuggestionState+    , popssPositioningSuggestionState+    , popssEmbeddedObjectSuggestionState++    -- * PositionedObjectPositioningSuggestionState+    , PositionedObjectPositioningSuggestionState+    , positionedObjectPositioningSuggestionState+    , popssTopOffSetSuggested+    , popssLayoutSuggested+    , popssLeftOffSetSuggested++    -- * NamedStyleSuggestionState+    , NamedStyleSuggestionState+    , namedStyleSuggestionState+    , nsssParagraphStyleSuggestionState+    , nsssNamedStyleType+    , nsssTextStyleSuggestionState++    -- * CropProperties+    , CropProperties+    , cropProperties+    , cpOffSetBottom+    , cpOffSetRight+    , cpAngle+    , cpOffSetTop+    , cpOffSetLeft++    -- * ParagraphStyleSuggestionState+    , ParagraphStyleSuggestionState+    , paragraphStyleSuggestionState+    , psssSpacingModeSuggested+    , psssBOrderTopSuggested+    , psssLineSpacingSuggested+    , psssDirectionSuggested+    , psssAvoidWidowAndOrphanSuggested+    , psssBOrderBottomSuggested+    , psssSpaceAboveSuggested+    , psssNamedStyleTypeSuggested+    , psssIndentStartSuggested+    , psssAlignmentSuggested+    , psssBOrderLeftSuggested+    , psssSpaceBelowSuggested+    , psssIndentFirstLineSuggested+    , psssShadingSuggestionState+    , psssHeadingIdSuggested+    , psssBOrderBetweenSuggested+    , psssKeepWithNextSuggested+    , psssIndentEndSuggested+    , psssBOrderRightSuggested+    , psssKeepLinesTogetherSuggested++    -- * FootNote+    , FootNote+    , footNote+    , fnContent+    , fnFootNoteId++    -- * AutoText+    , AutoText+    , autoText+    , atSuggestedInsertionIds+    , atSuggestedTextStyleChanges+    , atSuggestedDeletionIds+    , atTextStyle+    , atType++    -- * List+    , List+    , list+    , lSuggestedInsertionId+    , lSuggestedListPropertiesChanges+    , lSuggestedDeletionIds+    , lListProperties++    -- * ParagraphBOrder+    , ParagraphBOrder+    , paragraphBOrder+    , pboColor+    , pboWidth+    , pboDashStyle+    , pboPadding++    -- * SuggestedTableCellStyle+    , SuggestedTableCellStyle+    , suggestedTableCellStyle+    , stcsTableCellStyleSuggestionState+    , stcsTableCellStyle++    -- * InsertInlineImageResponse+    , InsertInlineImageResponse+    , insertInlineImageResponse+    , iiirObjectId++    -- * RgbColor+    , RgbColor+    , rgbColor+    , rcRed+    , rcGreen+    , rcBlue++    -- * InsertPageBreakRequest+    , InsertPageBreakRequest+    , insertPageBreakRequest+    , ipbrLocation+    , ipbrEndOfSegmentLocation++    -- * CreateParagraphBulletsRequestBulletPreset+    , CreateParagraphBulletsRequestBulletPreset (..)++    -- * BackgRoundSuggestionState+    , BackgRoundSuggestionState+    , backgRoundSuggestionState+    , brssBackgRoundColorSuggested++    -- * TableCellBOrderDashStyle+    , TableCellBOrderDashStyle (..)++    -- * ParagraphStyleNamedStyleType+    , ParagraphStyleNamedStyleType (..)++    -- * InlineObjectProperties+    , InlineObjectProperties+    , inlineObjectProperties+    , iopEmbeddedObject++    -- * SuggestedDocumentStyle+    , SuggestedDocumentStyle+    , suggestedDocumentStyle+    , sdsDocumentStyle+    , sdsDocumentStyleSuggestionState++    -- * Location+    , Location+    , location+    , lIndex+    , lSegmentId++    -- * TableOfContents+    , TableOfContents+    , tableOfContents+    , tocSuggestedInsertionIds+    , tocContent+    , tocSuggestedDeletionIds++    -- * Color+    , Color+    , color+    , cRgbColor++    -- * Size+    , Size+    , size+    , sHeight+    , sWidth++    -- * InsertInlineSheetsChartResponse+    , InsertInlineSheetsChartResponse+    , insertInlineSheetsChartResponse+    , iiscrObjectId++    -- * TableRowStyleSuggestionState+    , TableRowStyleSuggestionState+    , tableRowStyleSuggestionState+    , trsssMinRowHeightSuggested++    -- * DeleteTableColumnRequest+    , DeleteTableColumnRequest+    , deleteTableColumnRequest+    , dtcrTableCellLocation++    -- * DocumentNamedRanges+    , DocumentNamedRanges+    , documentNamedRanges+    , dnrAddtional++    -- * EndOfSegmentLocation+    , EndOfSegmentLocation+    , endOfSegmentLocation+    , eoslSegmentId++    -- * DocumentInlineObjects+    , DocumentInlineObjects+    , documentInlineObjects+    , dioAddtional++    -- * ParagraphSuggestedPositionedObjectIds+    , ParagraphSuggestedPositionedObjectIds+    , paragraphSuggestedPositionedObjectIds+    , pspoiAddtional++    -- * Link+    , Link+    , link+    , lURL+    , lHeadingId+    , lBookmarkId++    -- * TabStopAlignment+    , TabStopAlignment (..)++    -- * NestingLevelGlyphType+    , NestingLevelGlyphType (..)++    -- * AutoTextSuggestedTextStyleChanges+    , AutoTextSuggestedTextStyleChanges+    , autoTextSuggestedTextStyleChanges+    , atstscAddtional++    -- * InsertInlineImageRequest+    , InsertInlineImageRequest+    , insertInlineImageRequest+    , iiirLocation+    , iiirEndOfSegmentLocation+    , iiirURI+    , iiirObjectSize++    -- * Dimension+    , Dimension+    , dimension+    , dMagnitude+    , dUnit++    -- * DocumentStyle+    , DocumentStyle+    , documentStyle+    , dsMarginTop+    , dsDefaultFooterId+    , dsFirstPageHeaderId+    , dsFirstPageFooterId+    , dsDefaultHeaderId+    , dsUseEvenPageHeaderFooter+    , dsMarginLeft+    , dsPageNumberStart+    , dsUseFirstPageHeaderFooter+    , dsEvenPageFooterId+    , dsPageSize+    , dsBackgRound+    , dsMarginRight+    , dsMarginBottom+    , dsEvenPageHeaderId++    -- * Body+    , Body+    , body+    , bContent++    -- * ListPropertiesSuggestionState+    , ListPropertiesSuggestionState+    , listPropertiesSuggestionState+    , lpssNestingLevelsSuggestionStates++    -- * ParagraphSuggestedBulletChanges+    , ParagraphSuggestedBulletChanges+    , paragraphSuggestedBulletChanges+    , psbcAddtional++    -- * Response+    , Response+    , response+    , rReplaceAllText+    , rCreateNamedRange+    , rInsertInlineImage+    , rInsertInlineSheetsChart++    -- * SheetsChartReference+    , SheetsChartReference+    , sheetsChartReference+    , scrSpreadsheetId+    , scrChartId++    -- * OptionalColor+    , OptionalColor+    , optionalColor+    , ocColor++    -- * CreateNamedRangeResponse+    , CreateNamedRangeResponse+    , createNamedRangeResponse+    , cnrrNamedRangeId++    -- * SuggestedBullet+    , SuggestedBullet+    , suggestedBullet+    , sbBullet+    , sbBulletSuggestionState++    -- * ParagraphBOrderDashStyle+    , ParagraphBOrderDashStyle (..)++    -- * EmbeddedObject+    , EmbeddedObject+    , embeddedObject+    , eoMarginTop+    , eoSize+    , eoLinkedContentReference+    , eoImageProperties+    , eoEmbeddedObjectBOrder+    , eoEmbeddedDrawingProperties+    , eoMarginLeft+    , eoTitle+    , eoMarginRight+    , eoDescription+    , eoMarginBottom++    -- * ReplaceAllTextResponse+    , ReplaceAllTextResponse+    , replaceAllTextResponse+    , ratrOccurrencesChanged++    -- * DocumentStyleSuggestionState+    , DocumentStyleSuggestionState+    , documentStyleSuggestionState+    , dsssFirstPageFooterIdSuggested+    , dsssDefaultHeaderIdSuggested+    , dsssUseEvenPageHeaderFooterSuggested+    , dsssPageNumberStartSuggested+    , dsssBackgRoundSuggestionState+    , dsssUseFirstPageHeaderFooterSuggested+    , dsssPageSizeSuggestionState+    , dsssMarginTopSuggested+    , dsssEvenPageFooterIdSuggested+    , dsssMarginBottomSuggested+    , dsssEvenPageHeaderIdSuggested+    , dsssMarginLeftSuggested+    , dsssMarginRightSuggested+    , dsssFirstPageHeaderIdSuggested+    , dsssDefaultFooterIdSuggested++    -- * LinkedContentReference+    , LinkedContentReference+    , linkedContentReference+    , lcrSheetsChartReference++    -- * Shading+    , Shading+    , shading+    , sBackgRoundColor++    -- * InlineObjectPropertiesSuggestionState+    , InlineObjectPropertiesSuggestionState+    , inlineObjectPropertiesSuggestionState+    , iopssEmbeddedObjectSuggestionState++    -- * PageBreakSuggestedTextStyleChanges+    , PageBreakSuggestedTextStyleChanges+    , pageBreakSuggestedTextStyleChanges+    , pbstscAddtional++    -- * DocumentLists+    , DocumentLists+    , documentLists+    , dlAddtional++    -- * DeleteContentRangeRequest+    , DeleteContentRangeRequest+    , deleteContentRangeRequest+    , dcrrRange++    -- * Bullet+    , Bullet+    , bullet+    , bListId+    , bTextStyle+    , bNestingLevel++    -- * Paragraph+    , Paragraph+    , paragraph+    , pBullet+    , pSuggestedBulletChanges+    , pSuggestedPositionedObjectIds+    , pSuggestedParagraphStyleChanges+    , pElements+    , pPositionedObjectIds+    , pParagraphStyle++    -- * TextRunSuggestedTextStyleChanges+    , TextRunSuggestedTextStyleChanges+    , textRunSuggestedTextStyleChanges+    , trstscAddtional++    -- * SuggestedTableRowStyle+    , SuggestedTableRowStyle+    , suggestedTableRowStyle+    , strsTableRowStyleSuggestionState+    , strsTableRowStyle++    -- * DocumentFootNotes+    , DocumentFootNotes+    , documentFootNotes+    , dfnAddtional++    -- * ImageProperties+    , ImageProperties+    , imageProperties+    , ipCropProperties+    , ipContentURI+    , ipTransparency+    , ipAngle+    , ipContrast+    , ipSourceURI+    , ipBrightness++    -- * ParagraphStyleAlignment+    , ParagraphStyleAlignment (..)++    -- * SizeSuggestionState+    , SizeSuggestionState+    , sizeSuggestionState+    , sssHeightSuggested+    , sssWidthSuggested++    -- * ListSuggestedListPropertiesChanges+    , ListSuggestedListPropertiesChanges+    , listSuggestedListPropertiesChanges+    , lslpcAddtional++    -- * BatchUpdateDocumentResponse+    , BatchUpdateDocumentResponse+    , batchUpdateDocumentResponse+    , budrDocumentId+    , budrReplies+    , budrWriteControl++    -- * TableStyle+    , TableStyle+    , tableStyle+    , tsTableColumnProperties++    -- * FootNoteReference+    , FootNoteReference+    , footNoteReference+    , fnrSuggestedInsertionIds+    , fnrSuggestedTextStyleChanges+    , fnrFootNoteId+    , fnrSuggestedDeletionIds+    , fnrTextStyle+    , fnrFootNoteNumber++    -- * ColumnBreak+    , ColumnBreak+    , columnBreak+    , cbSuggestedInsertionIds+    , cbSuggestedTextStyleChanges+    , cbSuggestedDeletionIds+    , cbTextStyle++    -- * InlineObjectSuggestedInlineObjectPropertiesChanges+    , InlineObjectSuggestedInlineObjectPropertiesChanges+    , inlineObjectSuggestedInlineObjectPropertiesChanges+    , iosiopcAddtional++    -- * Equation+    , Equation+    , equation+    , eSuggestedInsertionIds+    , eSuggestedDeletionIds++    -- * NamedRange+    , NamedRange+    , namedRange+    , nNamedRangeId+    , nRanges+    , nName++    -- * CropPropertiesSuggestionState+    , CropPropertiesSuggestionState+    , cropPropertiesSuggestionState+    , cpssAngleSuggested+    , cpssOffSetRightSuggested+    , cpssOffSetBottomSuggested+    , cpssOffSetTopSuggested+    , cpssOffSetLeftSuggested++    -- * TextRun+    , TextRun+    , textRun+    , trSuggestedInsertionIds+    , trSuggestedTextStyleChanges+    , trContent+    , trSuggestedDeletionIds+    , trTextStyle++    -- * TableRow+    , TableRow+    , tableRow+    , tSuggestedInsertionIds+    , tTableCells+    , tEndIndex+    , tSuggestedDeletionIds+    , tSuggestedTableRowStyleChanges+    , tTableRowStyle+    , tStartIndex++    -- * WeightedFontFamily+    , WeightedFontFamily+    , weightedFontFamily+    , wffFontFamily+    , wffWeight++    -- * PageBreak+    , PageBreak+    , pageBreak+    , pbSuggestedInsertionIds+    , pbSuggestedTextStyleChanges+    , pbSuggestedDeletionIds+    , pbTextStyle++    -- * InlineObject+    , InlineObject+    , inlineObject+    , ioSuggestedInsertionId+    , ioInlineObjectProperties+    , ioObjectId+    , ioSuggestedDeletionIds+    , ioSuggestedInlineObjectPropertiesChanges++    -- * EmbeddedObjectBOrder+    , EmbeddedObjectBOrder+    , embeddedObjectBOrder+    , eoboColor+    , eoboWidth+    , eoboDashStyle+    , eoboPropertyState++    -- * EmbeddedObjectBOrderPropertyState+    , EmbeddedObjectBOrderPropertyState (..)++    -- * TableCellSuggestedTableCellStyleChanges+    , TableCellSuggestedTableCellStyleChanges+    , tableCellSuggestedTableCellStyleChanges+    , tcstcscAddtional++    -- * TableCellStyle+    , TableCellStyle+    , tableCellStyle+    , tcsBOrderRight+    , tcsBOrderTop+    , tcsColumnSpan+    , tcsBackgRoundColor+    , tcsPaddingBottom+    , tcsRowSpan+    , tcsBOrderLeft+    , tcsPaddingLeft+    , tcsPaddingTop+    , tcsBOrderBottom+    , tcsContentAlignment+    , tcsPaddingRight++    -- * Header+    , Header+    , header+    , hHeaderId+    , hContent++    -- * Range+    , Range+    , range+    , rEndIndex+    , rStartIndex+    , rSegmentId++    -- * Document+    , Document+    , document+    , dNamedRanges+    , dInlineObjects+    , dDocumentId+    , dBody+    , dDocumentStyle+    , dFooters+    , dPositionedObjects+    , dSuggestionsViewMode+    , dHeaders+    , dNamedStyles+    , dSuggestedNamedStylesChanges+    , dSuggestedDocumentStyleChanges+    , dTitle+    , dRevisionId+    , dFootNotes+    , dLists++    -- * DocumentSuggestedDocumentStyleChanges+    , DocumentSuggestedDocumentStyleChanges+    , documentSuggestedDocumentStyleChanges+    , dsdscAddtional++    -- * NamedStyles+    , NamedStyles+    , namedStyles+    , nsStyles++    -- * ParagraphSuggestedParagraphStyleChanges+    , ParagraphSuggestedParagraphStyleChanges+    , paragraphSuggestedParagraphStyleChanges+    , pspscAddtional++    -- * EmbeddedDrawingProperties+    , EmbeddedDrawingProperties+    , embeddedDrawingProperties++    -- * SuggestedTextStyle+    , SuggestedTextStyle+    , suggestedTextStyle+    , stsTextStyle+    , stsTextStyleSuggestionState++    -- * SectionStyleColumnSeparatorStyle+    , SectionStyleColumnSeparatorStyle (..)++    -- * InsertTableRowRequest+    , InsertTableRowRequest+    , insertTableRowRequest+    , itrrInsertBelow+    , itrrTableCellLocation++    -- * SuggestedNamedStyles+    , SuggestedNamedStyles+    , suggestedNamedStyles+    , snsNamedStylesSuggestionState+    , snsNamedStyles++    -- * Xgafv+    , Xgafv (..)++    -- * AutoTextType+    , AutoTextType (..)++    -- * WriteControl+    , WriteControl+    , writeControl+    , wcRequiredRevisionId+    , wcTargetRevisionId++    -- * TextStyle+    , TextStyle+    , textStyle+    , tsLink+    , tsBackgRoundColor+    , tsBaselineOffSet+    , tsForegRoundColor+    , tsFontSize+    , tsSmallCaps+    , tsUnderline+    , tsWeightedFontFamily+    , tsItalic+    , tsBold+    , tsStrikethrough++    -- * HorizontalRuleSuggestedTextStyleChanges+    , HorizontalRuleSuggestedTextStyleChanges+    , horizontalRuleSuggestedTextStyleChanges+    , hrstscAddtional++    -- * UpdateTextStyleRequest+    , UpdateTextStyleRequest+    , updateTextStyleRequest+    , utsrRange+    , utsrTextStyle+    , utsrFields++    -- * InlineObjectElement+    , InlineObjectElement+    , inlineObjectElement+    , ioeSuggestedInsertionIds+    , ioeSuggestedTextStyleChanges+    , ioeInlineObjectId+    , ioeSuggestedDeletionIds+    , ioeTextStyle++    -- * SectionStyleContentDirection+    , SectionStyleContentDirection (..)++    -- * NestingLevel+    , NestingLevel+    , nestingLevel+    , nlIndentFirstLine+    , nlGlyphFormat+    , nlBulletAlignment+    , nlIndentStart+    , nlGlyphSymbol+    , nlTextStyle+    , nlGlyphType+    , nlStartNumber++    -- * TableCellLocation+    , TableCellLocation+    , tableCellLocation+    , tclColumnIndex+    , tclTableStartLocation+    , tclRowIndex++    -- * DeletePositionedObjectRequest+    , DeletePositionedObjectRequest+    , deletePositionedObjectRequest+    , dporObjectId++    -- * Footer+    , Footer+    , footer+    , fFooterId+    , fContent++    -- * PositionedObject+    , PositionedObject+    , positionedObject+    , poSuggestedPositionedObjectPropertiesChanges+    , poPositionedObjectProperties+    , poSuggestedInsertionId+    , poObjectId+    , poSuggestedDeletionIds++    -- * ObjectReferences+    , ObjectReferences+    , objectReferences+    , orObjectIds++    -- * BulletSuggestionState+    , BulletSuggestionState+    , bulletSuggestionState+    , bssNestingLevelSuggested+    , bssListIdSuggested+    , bssTextStyleSuggestionState++    -- * ImagePropertiesSuggestionState+    , ImagePropertiesSuggestionState+    , imagePropertiesSuggestionState+    , ipssAngleSuggested+    , ipssContrastSuggested+    , ipssContentURISuggested+    , ipssSourceURISuggested+    , ipssCropPropertiesSuggestionState+    , ipssBrightnessSuggested+    , ipssTransparencySuggested++    -- * ShadingSuggestionState+    , ShadingSuggestionState+    , shadingSuggestionState+    , sssBackgRoundColorSuggested++    -- * DocumentSuggestedNamedStylesChanges+    , DocumentSuggestedNamedStylesChanges+    , documentSuggestedNamedStylesChanges+    , dsnscAddtional++    -- * TableCell+    , TableCell+    , tableCell+    , tcSuggestedInsertionIds+    , tcSuggestedTableCellStyleChanges+    , tcEndIndex+    , tcContent+    , tcTableCellStyle+    , tcSuggestedDeletionIds+    , tcStartIndex++    -- * SheetsChartReferenceSuggestionState+    , SheetsChartReferenceSuggestionState+    , sheetsChartReferenceSuggestionState+    , scrssChartIdSuggested+    , scrssSpreadsheetIdSuggested++    -- * ParagraphElement+    , ParagraphElement+    , paragraphElement+    , peAutoText+    , peEndIndex+    , peFootNoteReference+    , peColumnBreak+    , peTextRun+    , peEquation+    , pePageBreak+    , peInlineObjectElement+    , peHorizontalRule+    , peStartIndex++    -- * NamedStyleNamedStyleType+    , NamedStyleNamedStyleType (..)++    -- * HorizontalRule+    , HorizontalRule+    , horizontalRule+    , hrSuggestedInsertionIds+    , hrSuggestedTextStyleChanges+    , hrSuggestedDeletionIds+    , hrTextStyle++    -- * EmbeddedObjectSuggestionState+    , EmbeddedObjectSuggestionState+    , embeddedObjectSuggestionState+    , eossEmbeddedObjectBOrderSuggestionState+    , eossEmbeddedDrawingPropertiesSuggestionState+    , eossTitleSuggested+    , eossMarginTopSuggested+    , eossSizeSuggestionState+    , eossMarginBottomSuggested+    , eossImagePropertiesSuggestionState+    , eossMarginLeftSuggested+    , eossLinkedContentReferenceSuggestionState+    , eossDescriptionSuggested+    , eossMarginRightSuggested++    -- * InsertTableRequest+    , InsertTableRequest+    , insertTableRequest+    , itrLocation+    , itrEndOfSegmentLocation+    , itrRows+    , itrColumns++    -- * SuggestedInlineObjectProperties+    , SuggestedInlineObjectProperties+    , suggestedInlineObjectProperties+    , siopInlineObjectProperties+    , siopInlineObjectPropertiesSuggestionState++    -- * LinkedContentReferenceSuggestionState+    , LinkedContentReferenceSuggestionState+    , linkedContentReferenceSuggestionState+    , lcrssSheetsChartReferenceSuggestionState++    -- * InlineObjectElementSuggestedTextStyleChanges+    , InlineObjectElementSuggestedTextStyleChanges+    , inlineObjectElementSuggestedTextStyleChanges+    , ioestscAddtional++    -- * ParagraphStyleSpacingMode+    , ParagraphStyleSpacingMode (..)++    -- * StructuralElement+    , StructuralElement+    , structuralElement+    , seTableOfContents+    , seParagraph+    , seEndIndex+    , seTable+    , seStartIndex+    , seSectionBreak++    -- * DeleteParagraphBulletsRequest+    , DeleteParagraphBulletsRequest+    , deleteParagraphBulletsRequest+    , dpbrRange++    -- * BatchUpdateDocumentRequest+    , BatchUpdateDocumentRequest+    , batchUpdateDocumentRequest+    , bRequests+    , bWriteControl++    -- * ListProperties+    , ListProperties+    , listProperties+    , lpNestingLevels++    -- * InsertTextRequest+    , InsertTextRequest+    , insertTextRequest+    , iLocation+    , iText+    , iEndOfSegmentLocation++    -- * NestingLevelBulletAlignment+    , NestingLevelBulletAlignment (..)++    -- * ColumnBreakSuggestedTextStyleChanges+    , ColumnBreakSuggestedTextStyleChanges+    , columnBreakSuggestedTextStyleChanges+    , cbstscAddtional++    -- * FootNoteReferenceSuggestedTextStyleChanges+    , FootNoteReferenceSuggestedTextStyleChanges+    , footNoteReferenceSuggestedTextStyleChanges+    , fnrstscAddtional++    -- * DocumentHeaders+    , DocumentHeaders+    , documentHeaders+    , dhAddtional++    -- * TableRowStyle+    , TableRowStyle+    , tableRowStyle+    , trsMinRowHeight++    -- * NamedStyleSuggestionStateNamedStyleType+    , NamedStyleSuggestionStateNamedStyleType (..)++    -- * SectionBreak+    , SectionBreak+    , sectionBreak+    , sbSuggestedInsertionIds+    , sbSuggestedDeletionIds+    , sbSectionStyle++    -- * EmbeddedObjectBOrderDashStyle+    , EmbeddedObjectBOrderDashStyle (..)++    -- * DocumentSuggestionsViewMode+    , DocumentSuggestionsViewMode (..)++    -- * Table+    , Table+    , table+    , tabSuggestedInsertionIds+    , tabTableRows+    , tabRows+    , tabTableStyle+    , tabSuggestedDeletionIds+    , tabColumns++    -- * SectionStyle+    , SectionStyle+    , sectionStyle+    , ssColumnSeparatorStyle+    , ssContentDirection+    , ssColumnProperties++    -- * PositionedObjectPositioningLayout+    , PositionedObjectPositioningLayout (..)++    -- * BackgRound+    , BackgRound+    , backgRound+    , brColor++    -- * SuggestedListProperties+    , SuggestedListProperties+    , suggestedListProperties+    , slpListPropertiesSuggestionState+    , slpListProperties++    -- * SectionColumnProperties+    , SectionColumnProperties+    , sectionColumnProperties+    , scpWidth+    , scpPaddingEnd++    -- * CreateParagraphBulletsRequest+    , CreateParagraphBulletsRequest+    , createParagraphBulletsRequest+    , cpbrBulletPreset+    , cpbrRange++    -- * DimensionUnit+    , DimensionUnit (..)++    -- * DocumentFooters+    , DocumentFooters+    , documentFooters+    , dfAddtional++    -- * CreateNamedRangeRequest+    , CreateNamedRangeRequest+    , createNamedRangeRequest+    , cnrrName+    , cnrrRange++    -- * TextStyleSuggestionState+    , TextStyleSuggestionState+    , textStyleSuggestionState+    , tsssItalicSuggested+    , tsssUnderlineSuggested+    , tsssFontSizeSuggested+    , tsssSmallCapsSuggested+    , tsssForegRoundColorSuggested+    , tsssBaselineOffSetSuggested+    , tsssWeightedFontFamilySuggested+    , tsssStrikethroughSuggested+    , tsssLinkSuggested+    , tsssBoldSuggested+    , tsssBackgRoundColorSuggested++    -- * NestingLevelSuggestionState+    , NestingLevelSuggestionState+    , nestingLevelSuggestionState+    , nlssGlyphFormatSuggested+    , nlssBulletAlignmentSuggested+    , nlssGlyphTypeSuggested+    , nlssStartNumberSuggested+    , nlssIndentStartSuggested+    , nlssGlyphSymbolSuggested+    , nlssIndentFirstLineSuggested+    , nlssTextStyleSuggestionState++    -- * ParagraphStyle+    , ParagraphStyle+    , paragraphStyle+    , psBOrderRight+    , psKeepLinesTogether+    , psTabStops+    , psBOrderTop+    , psLineSpacing+    , psDirection+    , psIndentFirstLine+    , psIndentEnd+    , psShading+    , psAvoidWidowAndOrphan+    , psNamedStyleType+    , psIndentStart+    , psAlignment+    , psBOrderLeft+    , psSpaceBelow+    , psSpacingMode+    , psHeadingId+    , psSpaceAbove+    , psBOrderBottom+    , psKeepWithNext+    , psBOrderBetween++    -- * SuggestedPositionedObjectProperties+    , SuggestedPositionedObjectProperties+    , suggestedPositionedObjectProperties+    , spopPositionedObjectProperties+    , spopPositionedObjectPropertiesSuggestionState++    -- * TableColumnProperties+    , TableColumnProperties+    , tableColumnProperties+    , tcpWidth+    , tcpWidthType++    -- * TableCellStyleContentAlignment+    , TableCellStyleContentAlignment (..)++    -- * UpdateParagraphStyleRequest+    , UpdateParagraphStyleRequest+    , updateParagraphStyleRequest+    , upsrRange+    , upsrFields+    , upsrParagraphStyle++    -- * ReplaceAllTextRequest+    , ReplaceAllTextRequest+    , replaceAllTextRequest+    , ratrContainsText+    , ratrReplaceText++    -- * DocumentPositionedObjects+    , DocumentPositionedObjects+    , documentPositionedObjects+    , dpoAddtional++    -- * Request'+    , Request'+    , request'+    , reqDeletePositionedObject+    , reqCreateParagraphBullets+    , reqInsertText+    , reqDeleteParagraphBullets+    , reqDeleteTableRow+    , reqDeleteNamedRange+    , reqReplaceAllText+    , reqUpdateParagraphStyle+    , reqCreateNamedRange+    , reqInsertPageBreak+    , reqDeleteTableColumn+    , reqInsertInlineImage+    , reqDeleteContentRange+    , reqInsertTableRow+    , reqUpdateTextStyle+    , reqInsertTable++    -- * PositionedObjectSuggestedPositionedObjectPropertiesChanges+    , PositionedObjectSuggestedPositionedObjectPropertiesChanges+    , positionedObjectSuggestedPositionedObjectPropertiesChanges+    , pospopcAddtional++    -- * SubstringMatchCriteria+    , SubstringMatchCriteria+    , substringMatchCriteria+    , smcMatchCase+    , smcText+    ) where++import           Network.Google.Docs.Types.Product+import           Network.Google.Docs.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v1' of the Google Docs API. This contains the host and root path used as a starting point for constructing service requests.+docsService :: ServiceConfig+docsService+  = defaultService (ServiceId "docs:v1")+      "docs.googleapis.com"++-- | See and download all your Google Drive files+driveReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/drive.readonly"]+driveReadOnlyScope = Proxy++-- | See, edit, create, and delete all of your Google Drive files+driveScope :: Proxy '["https://www.googleapis.com/auth/drive"]+driveScope = Proxy++-- | View and manage Google Drive files and folders that you have opened or+-- created with this app+driveFileScope :: Proxy '["https://www.googleapis.com/auth/drive.file"]+driveFileScope = Proxy++-- | View and manage your Google Docs documents+documentsScope :: Proxy '["https://www.googleapis.com/auth/documents"]+documentsScope = Proxy++-- | View your Google Docs documents+documentsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/documents.readonly"]+documentsReadOnlyScope = Proxy
+ gen/Network/Google/Docs/Types/Product.hs view
@@ -0,0 +1,11043 @@+{-# 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.Docs.Types.Product+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Docs.Types.Product where++import           Network.Google.Docs.Types.Sum+import           Network.Google.Prelude++-- | A mask that indicates which of the fields on the base TableCellStyle+-- have been changed in this suggestion. For any field set to true, there+-- is a new suggested value.+--+-- /See:/ 'tableCellStyleSuggestionState' smart constructor.+data TableCellStyleSuggestionState =+  TableCellStyleSuggestionState'+    { _tcsssPaddingLeftSuggested      :: !(Maybe Bool)+    , _tcsssPaddingTopSuggested       :: !(Maybe Bool)+    , _tcsssBOrderTopSuggested        :: !(Maybe Bool)+    , _tcsssRowSpanSuggested          :: !(Maybe Bool)+    , _tcsssPaddingBottomSuggested    :: !(Maybe Bool)+    , _tcsssBOrderBottomSuggested     :: !(Maybe Bool)+    , _tcsssPaddingRightSuggested     :: !(Maybe Bool)+    , _tcsssColumnSpanSuggested       :: !(Maybe Bool)+    , _tcsssBOrderLeftSuggested       :: !(Maybe Bool)+    , _tcsssContentAlignmentSuggested :: !(Maybe Bool)+    , _tcsssBackgRoundColorSuggested  :: !(Maybe Bool)+    , _tcsssBOrderRightSuggested      :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TableCellStyleSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tcsssPaddingLeftSuggested'+--+-- * 'tcsssPaddingTopSuggested'+--+-- * 'tcsssBOrderTopSuggested'+--+-- * 'tcsssRowSpanSuggested'+--+-- * 'tcsssPaddingBottomSuggested'+--+-- * 'tcsssBOrderBottomSuggested'+--+-- * 'tcsssPaddingRightSuggested'+--+-- * 'tcsssColumnSpanSuggested'+--+-- * 'tcsssBOrderLeftSuggested'+--+-- * 'tcsssContentAlignmentSuggested'+--+-- * 'tcsssBackgRoundColorSuggested'+--+-- * 'tcsssBOrderRightSuggested'+tableCellStyleSuggestionState+    :: TableCellStyleSuggestionState+tableCellStyleSuggestionState =+  TableCellStyleSuggestionState'+    { _tcsssPaddingLeftSuggested = Nothing+    , _tcsssPaddingTopSuggested = Nothing+    , _tcsssBOrderTopSuggested = Nothing+    , _tcsssRowSpanSuggested = Nothing+    , _tcsssPaddingBottomSuggested = Nothing+    , _tcsssBOrderBottomSuggested = Nothing+    , _tcsssPaddingRightSuggested = Nothing+    , _tcsssColumnSpanSuggested = Nothing+    , _tcsssBOrderLeftSuggested = Nothing+    , _tcsssContentAlignmentSuggested = Nothing+    , _tcsssBackgRoundColorSuggested = Nothing+    , _tcsssBOrderRightSuggested = Nothing+    }+++-- | Indicates if there was a suggested change to padding_left.+tcsssPaddingLeftSuggested :: Lens' TableCellStyleSuggestionState (Maybe Bool)+tcsssPaddingLeftSuggested+  = lens _tcsssPaddingLeftSuggested+      (\ s a -> s{_tcsssPaddingLeftSuggested = a})++-- | Indicates if there was a suggested change to padding_top.+tcsssPaddingTopSuggested :: Lens' TableCellStyleSuggestionState (Maybe Bool)+tcsssPaddingTopSuggested+  = lens _tcsssPaddingTopSuggested+      (\ s a -> s{_tcsssPaddingTopSuggested = a})++-- | Indicates if there was a suggested change to border_top.+tcsssBOrderTopSuggested :: Lens' TableCellStyleSuggestionState (Maybe Bool)+tcsssBOrderTopSuggested+  = lens _tcsssBOrderTopSuggested+      (\ s a -> s{_tcsssBOrderTopSuggested = a})++-- | Indicates if there was a suggested change to row_span.+tcsssRowSpanSuggested :: Lens' TableCellStyleSuggestionState (Maybe Bool)+tcsssRowSpanSuggested+  = lens _tcsssRowSpanSuggested+      (\ s a -> s{_tcsssRowSpanSuggested = a})++-- | Indicates if there was a suggested change to padding_bottom.+tcsssPaddingBottomSuggested :: Lens' TableCellStyleSuggestionState (Maybe Bool)+tcsssPaddingBottomSuggested+  = lens _tcsssPaddingBottomSuggested+      (\ s a -> s{_tcsssPaddingBottomSuggested = a})++-- | Indicates if there was a suggested change to border_bottom.+tcsssBOrderBottomSuggested :: Lens' TableCellStyleSuggestionState (Maybe Bool)+tcsssBOrderBottomSuggested+  = lens _tcsssBOrderBottomSuggested+      (\ s a -> s{_tcsssBOrderBottomSuggested = a})++-- | Indicates if there was a suggested change to padding_right.+tcsssPaddingRightSuggested :: Lens' TableCellStyleSuggestionState (Maybe Bool)+tcsssPaddingRightSuggested+  = lens _tcsssPaddingRightSuggested+      (\ s a -> s{_tcsssPaddingRightSuggested = a})++-- | Indicates if there was a suggested change to column_span.+tcsssColumnSpanSuggested :: Lens' TableCellStyleSuggestionState (Maybe Bool)+tcsssColumnSpanSuggested+  = lens _tcsssColumnSpanSuggested+      (\ s a -> s{_tcsssColumnSpanSuggested = a})++-- | Indicates if there was a suggested change to border_left.+tcsssBOrderLeftSuggested :: Lens' TableCellStyleSuggestionState (Maybe Bool)+tcsssBOrderLeftSuggested+  = lens _tcsssBOrderLeftSuggested+      (\ s a -> s{_tcsssBOrderLeftSuggested = a})++-- | Indicates if there was a suggested change to content_alignment.+tcsssContentAlignmentSuggested :: Lens' TableCellStyleSuggestionState (Maybe Bool)+tcsssContentAlignmentSuggested+  = lens _tcsssContentAlignmentSuggested+      (\ s a -> s{_tcsssContentAlignmentSuggested = a})++-- | Indicates if there was a suggested change to background_color.+tcsssBackgRoundColorSuggested :: Lens' TableCellStyleSuggestionState (Maybe Bool)+tcsssBackgRoundColorSuggested+  = lens _tcsssBackgRoundColorSuggested+      (\ s a -> s{_tcsssBackgRoundColorSuggested = a})++-- | Indicates if there was a suggested change to border_right.+tcsssBOrderRightSuggested :: Lens' TableCellStyleSuggestionState (Maybe Bool)+tcsssBOrderRightSuggested+  = lens _tcsssBOrderRightSuggested+      (\ s a -> s{_tcsssBOrderRightSuggested = a})++instance FromJSON TableCellStyleSuggestionState where+        parseJSON+          = withObject "TableCellStyleSuggestionState"+              (\ o ->+                 TableCellStyleSuggestionState' <$>+                   (o .:? "paddingLeftSuggested") <*>+                     (o .:? "paddingTopSuggested")+                     <*> (o .:? "borderTopSuggested")+                     <*> (o .:? "rowSpanSuggested")+                     <*> (o .:? "paddingBottomSuggested")+                     <*> (o .:? "borderBottomSuggested")+                     <*> (o .:? "paddingRightSuggested")+                     <*> (o .:? "columnSpanSuggested")+                     <*> (o .:? "borderLeftSuggested")+                     <*> (o .:? "contentAlignmentSuggested")+                     <*> (o .:? "backgroundColorSuggested")+                     <*> (o .:? "borderRightSuggested"))++instance ToJSON TableCellStyleSuggestionState where+        toJSON TableCellStyleSuggestionState'{..}+          = object+              (catMaybes+                 [("paddingLeftSuggested" .=) <$>+                    _tcsssPaddingLeftSuggested,+                  ("paddingTopSuggested" .=) <$>+                    _tcsssPaddingTopSuggested,+                  ("borderTopSuggested" .=) <$>+                    _tcsssBOrderTopSuggested,+                  ("rowSpanSuggested" .=) <$> _tcsssRowSpanSuggested,+                  ("paddingBottomSuggested" .=) <$>+                    _tcsssPaddingBottomSuggested,+                  ("borderBottomSuggested" .=) <$>+                    _tcsssBOrderBottomSuggested,+                  ("paddingRightSuggested" .=) <$>+                    _tcsssPaddingRightSuggested,+                  ("columnSpanSuggested" .=) <$>+                    _tcsssColumnSpanSuggested,+                  ("borderLeftSuggested" .=) <$>+                    _tcsssBOrderLeftSuggested,+                  ("contentAlignmentSuggested" .=) <$>+                    _tcsssContentAlignmentSuggested,+                  ("backgroundColorSuggested" .=) <$>+                    _tcsssBackgRoundColorSuggested,+                  ("borderRightSuggested" .=) <$>+                    _tcsssBOrderRightSuggested])++-- | A mask that indicates which of the fields on the base+-- EmbeddedObjectBorder have been changed in this suggestion. For any field+-- set to true, there is a new suggested value.+--+-- /See:/ 'embeddedObjectBOrderSuggestionState' smart constructor.+data EmbeddedObjectBOrderSuggestionState =+  EmbeddedObjectBOrderSuggestionState'+    { _eobossDashStyleSuggested     :: !(Maybe Bool)+    , _eobossPropertyStateSuggested :: !(Maybe Bool)+    , _eobossColorSuggested         :: !(Maybe Bool)+    , _eobossWidthSuggested         :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EmbeddedObjectBOrderSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eobossDashStyleSuggested'+--+-- * 'eobossPropertyStateSuggested'+--+-- * 'eobossColorSuggested'+--+-- * 'eobossWidthSuggested'+embeddedObjectBOrderSuggestionState+    :: EmbeddedObjectBOrderSuggestionState+embeddedObjectBOrderSuggestionState =+  EmbeddedObjectBOrderSuggestionState'+    { _eobossDashStyleSuggested = Nothing+    , _eobossPropertyStateSuggested = Nothing+    , _eobossColorSuggested = Nothing+    , _eobossWidthSuggested = Nothing+    }+++-- | Indicates if there was a suggested change to dash_style.+eobossDashStyleSuggested :: Lens' EmbeddedObjectBOrderSuggestionState (Maybe Bool)+eobossDashStyleSuggested+  = lens _eobossDashStyleSuggested+      (\ s a -> s{_eobossDashStyleSuggested = a})++-- | Indicates if there was a suggested change to property_state.+eobossPropertyStateSuggested :: Lens' EmbeddedObjectBOrderSuggestionState (Maybe Bool)+eobossPropertyStateSuggested+  = lens _eobossPropertyStateSuggested+      (\ s a -> s{_eobossPropertyStateSuggested = a})++-- | Indicates if there was a suggested change to color.+eobossColorSuggested :: Lens' EmbeddedObjectBOrderSuggestionState (Maybe Bool)+eobossColorSuggested+  = lens _eobossColorSuggested+      (\ s a -> s{_eobossColorSuggested = a})++-- | Indicates if there was a suggested change to width.+eobossWidthSuggested :: Lens' EmbeddedObjectBOrderSuggestionState (Maybe Bool)+eobossWidthSuggested+  = lens _eobossWidthSuggested+      (\ s a -> s{_eobossWidthSuggested = a})++instance FromJSON EmbeddedObjectBOrderSuggestionState+         where+        parseJSON+          = withObject "EmbeddedObjectBOrderSuggestionState"+              (\ o ->+                 EmbeddedObjectBOrderSuggestionState' <$>+                   (o .:? "dashStyleSuggested") <*>+                     (o .:? "propertyStateSuggested")+                     <*> (o .:? "colorSuggested")+                     <*> (o .:? "widthSuggested"))++instance ToJSON EmbeddedObjectBOrderSuggestionState+         where+        toJSON EmbeddedObjectBOrderSuggestionState'{..}+          = object+              (catMaybes+                 [("dashStyleSuggested" .=) <$>+                    _eobossDashStyleSuggested,+                  ("propertyStateSuggested" .=) <$>+                    _eobossPropertyStateSuggested,+                  ("colorSuggested" .=) <$> _eobossColorSuggested,+                  ("widthSuggested" .=) <$> _eobossWidthSuggested])++-- | A border around a table cell. Table cell borders cannot be transparent.+-- To hide a table cell border, make its width 0.+--+-- /See:/ 'tableCellBOrder' smart constructor.+data TableCellBOrder =+  TableCellBOrder'+    { _tcboColor     :: !(Maybe OptionalColor)+    , _tcboWidth     :: !(Maybe Dimension)+    , _tcboDashStyle :: !(Maybe TableCellBOrderDashStyle)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TableCellBOrder' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tcboColor'+--+-- * 'tcboWidth'+--+-- * 'tcboDashStyle'+tableCellBOrder+    :: TableCellBOrder+tableCellBOrder =+  TableCellBOrder'+    {_tcboColor = Nothing, _tcboWidth = Nothing, _tcboDashStyle = Nothing}+++-- | The color of the border. This color cannot be transparent.+tcboColor :: Lens' TableCellBOrder (Maybe OptionalColor)+tcboColor+  = lens _tcboColor (\ s a -> s{_tcboColor = a})++-- | The width of the border.+tcboWidth :: Lens' TableCellBOrder (Maybe Dimension)+tcboWidth+  = lens _tcboWidth (\ s a -> s{_tcboWidth = a})++-- | The dash style of the border.+tcboDashStyle :: Lens' TableCellBOrder (Maybe TableCellBOrderDashStyle)+tcboDashStyle+  = lens _tcboDashStyle+      (\ s a -> s{_tcboDashStyle = a})++instance FromJSON TableCellBOrder where+        parseJSON+          = withObject "TableCellBOrder"+              (\ o ->+                 TableCellBOrder' <$>+                   (o .:? "color") <*> (o .:? "width") <*>+                     (o .:? "dashStyle"))++instance ToJSON TableCellBOrder where+        toJSON TableCellBOrder'{..}+          = object+              (catMaybes+                 [("color" .=) <$> _tcboColor,+                  ("width" .=) <$> _tcboWidth,+                  ("dashStyle" .=) <$> _tcboDashStyle])++-- | Deletes a row from a table.+--+-- /See:/ 'deleteTableRowRequest' smart constructor.+newtype DeleteTableRowRequest =+  DeleteTableRowRequest'+    { _dtrrTableCellLocation :: Maybe TableCellLocation+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteTableRowRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtrrTableCellLocation'+deleteTableRowRequest+    :: DeleteTableRowRequest+deleteTableRowRequest =+  DeleteTableRowRequest' {_dtrrTableCellLocation = Nothing}+++-- | The reference table cell location from which the row will be deleted.+-- The row this cell spans will be deleted. If this is a merged cell that+-- spans multiple rows, all rows that the cell spans will be deleted. If no+-- rows remain in the table after this deletion, the whole table is+-- deleted.+dtrrTableCellLocation :: Lens' DeleteTableRowRequest (Maybe TableCellLocation)+dtrrTableCellLocation+  = lens _dtrrTableCellLocation+      (\ s a -> s{_dtrrTableCellLocation = a})++instance FromJSON DeleteTableRowRequest where+        parseJSON+          = withObject "DeleteTableRowRequest"+              (\ o ->+                 DeleteTableRowRequest' <$>+                   (o .:? "tableCellLocation"))++instance ToJSON DeleteTableRowRequest where+        toJSON DeleteTableRowRequest'{..}+          = object+              (catMaybes+                 [("tableCellLocation" .=) <$>+                    _dtrrTableCellLocation])++-- | The suggestion state of a NamedStyles message.+--+-- /See:/ 'namedStylesSuggestionState' smart constructor.+newtype NamedStylesSuggestionState =+  NamedStylesSuggestionState'+    { _nsssStylesSuggestionStates :: Maybe [NamedStyleSuggestionState]+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NamedStylesSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nsssStylesSuggestionStates'+namedStylesSuggestionState+    :: NamedStylesSuggestionState+namedStylesSuggestionState =+  NamedStylesSuggestionState' {_nsssStylesSuggestionStates = Nothing}+++-- | A mask that indicates which of the fields on the corresponding+-- NamedStyle in styles have been changed in this suggestion. The order of+-- these named style suggestion states match the order of the corresponding+-- named style within the named styles suggestion.+nsssStylesSuggestionStates :: Lens' NamedStylesSuggestionState [NamedStyleSuggestionState]+nsssStylesSuggestionStates+  = lens _nsssStylesSuggestionStates+      (\ s a -> s{_nsssStylesSuggestionStates = a})+      . _Default+      . _Coerce++instance FromJSON NamedStylesSuggestionState where+        parseJSON+          = withObject "NamedStylesSuggestionState"+              (\ o ->+                 NamedStylesSuggestionState' <$>+                   (o .:? "stylesSuggestionStates" .!= mempty))++instance ToJSON NamedStylesSuggestionState where+        toJSON NamedStylesSuggestionState'{..}+          = object+              (catMaybes+                 [("stylesSuggestionStates" .=) <$>+                    _nsssStylesSuggestionStates])++-- | The positioning of a PositionedObject. The positioned object is+-- positioned relative to the beginning of the Paragraph it is tethered to.+--+-- /See:/ 'positionedObjectPositioning' smart constructor.+data PositionedObjectPositioning =+  PositionedObjectPositioning'+    { _popLayout     :: !(Maybe PositionedObjectPositioningLayout)+    , _popTopOffSet  :: !(Maybe Dimension)+    , _popLeftOffSet :: !(Maybe Dimension)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PositionedObjectPositioning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'popLayout'+--+-- * 'popTopOffSet'+--+-- * 'popLeftOffSet'+positionedObjectPositioning+    :: PositionedObjectPositioning+positionedObjectPositioning =+  PositionedObjectPositioning'+    {_popLayout = Nothing, _popTopOffSet = Nothing, _popLeftOffSet = Nothing}+++-- | The layout of this positioned object.+popLayout :: Lens' PositionedObjectPositioning (Maybe PositionedObjectPositioningLayout)+popLayout+  = lens _popLayout (\ s a -> s{_popLayout = a})++-- | The offset of the top edge of the positioned object relative to the+-- beginning of the Paragraph it is tethered to. The exact positioning of+-- the object can depend on other content in the document and the+-- document\'s styling.+popTopOffSet :: Lens' PositionedObjectPositioning (Maybe Dimension)+popTopOffSet+  = lens _popTopOffSet (\ s a -> s{_popTopOffSet = a})++-- | The offset of the left edge of the positioned object relative to the+-- beginning of the Paragraph it is tethered to. The exact positioning of+-- the object can depend on other content in the document and the+-- document\'s styling.+popLeftOffSet :: Lens' PositionedObjectPositioning (Maybe Dimension)+popLeftOffSet+  = lens _popLeftOffSet+      (\ s a -> s{_popLeftOffSet = a})++instance FromJSON PositionedObjectPositioning where+        parseJSON+          = withObject "PositionedObjectPositioning"+              (\ o ->+                 PositionedObjectPositioning' <$>+                   (o .:? "layout") <*> (o .:? "topOffset") <*>+                     (o .:? "leftOffset"))++instance ToJSON PositionedObjectPositioning where+        toJSON PositionedObjectPositioning'{..}+          = object+              (catMaybes+                 [("layout" .=) <$> _popLayout,+                  ("topOffset" .=) <$> _popTopOffSet,+                  ("leftOffset" .=) <$> _popLeftOffSet])++-- | A suggested change to a ParagraphStyle.+--+-- /See:/ 'suggestedParagraphStyle' smart constructor.+data SuggestedParagraphStyle =+  SuggestedParagraphStyle'+    { _spsParagraphStyleSuggestionState :: !(Maybe ParagraphStyleSuggestionState)+    , _spsParagraphStyle                :: !(Maybe ParagraphStyle)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SuggestedParagraphStyle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'spsParagraphStyleSuggestionState'+--+-- * 'spsParagraphStyle'+suggestedParagraphStyle+    :: SuggestedParagraphStyle+suggestedParagraphStyle =+  SuggestedParagraphStyle'+    {_spsParagraphStyleSuggestionState = Nothing, _spsParagraphStyle = Nothing}+++-- | A mask that indicates which of the fields on the base ParagraphStyle+-- have been changed in this suggestion.+spsParagraphStyleSuggestionState :: Lens' SuggestedParagraphStyle (Maybe ParagraphStyleSuggestionState)+spsParagraphStyleSuggestionState+  = lens _spsParagraphStyleSuggestionState+      (\ s a -> s{_spsParagraphStyleSuggestionState = a})++-- | A ParagraphStyle that only includes the changes made in this suggestion.+-- This can be used along with the paragraph_suggestion_state to see which+-- fields have changed and their new values.+spsParagraphStyle :: Lens' SuggestedParagraphStyle (Maybe ParagraphStyle)+spsParagraphStyle+  = lens _spsParagraphStyle+      (\ s a -> s{_spsParagraphStyle = a})++instance FromJSON SuggestedParagraphStyle where+        parseJSON+          = withObject "SuggestedParagraphStyle"+              (\ o ->+                 SuggestedParagraphStyle' <$>+                   (o .:? "paragraphStyleSuggestionState") <*>+                     (o .:? "paragraphStyle"))++instance ToJSON SuggestedParagraphStyle where+        toJSON SuggestedParagraphStyle'{..}+          = object+              (catMaybes+                 [("paragraphStyleSuggestionState" .=) <$>+                    _spsParagraphStyleSuggestionState,+                  ("paragraphStyle" .=) <$> _spsParagraphStyle])++-- | Properties of a PositionedObject.+--+-- /See:/ 'positionedObjectProperties' smart constructor.+data PositionedObjectProperties =+  PositionedObjectProperties'+    { _popEmbeddedObject :: !(Maybe EmbeddedObject)+    , _popPositioning    :: !(Maybe PositionedObjectPositioning)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PositionedObjectProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'popEmbeddedObject'+--+-- * 'popPositioning'+positionedObjectProperties+    :: PositionedObjectProperties+positionedObjectProperties =+  PositionedObjectProperties'+    {_popEmbeddedObject = Nothing, _popPositioning = Nothing}+++-- | The embedded object of this positioned object.+popEmbeddedObject :: Lens' PositionedObjectProperties (Maybe EmbeddedObject)+popEmbeddedObject+  = lens _popEmbeddedObject+      (\ s a -> s{_popEmbeddedObject = a})++-- | The positioning of this positioned object relative to the newline of the+-- Paragraph that references this positioned object.+popPositioning :: Lens' PositionedObjectProperties (Maybe PositionedObjectPositioning)+popPositioning+  = lens _popPositioning+      (\ s a -> s{_popPositioning = a})++instance FromJSON PositionedObjectProperties where+        parseJSON+          = withObject "PositionedObjectProperties"+              (\ o ->+                 PositionedObjectProperties' <$>+                   (o .:? "embeddedObject") <*> (o .:? "positioning"))++instance ToJSON PositionedObjectProperties where+        toJSON PositionedObjectProperties'{..}+          = object+              (catMaybes+                 [("embeddedObject" .=) <$> _popEmbeddedObject,+                  ("positioning" .=) <$> _popPositioning])++-- | A named style. Paragraphs in the document can inherit their TextStyle+-- and ParagraphStyle from this named style when they have the same named+-- style type.+--+-- /See:/ 'namedStyle' smart constructor.+data NamedStyle =+  NamedStyle'+    { _nsNamedStyleType :: !(Maybe NamedStyleNamedStyleType)+    , _nsTextStyle      :: !(Maybe TextStyle)+    , _nsParagraphStyle :: !(Maybe ParagraphStyle)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NamedStyle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nsNamedStyleType'+--+-- * 'nsTextStyle'+--+-- * 'nsParagraphStyle'+namedStyle+    :: NamedStyle+namedStyle =+  NamedStyle'+    { _nsNamedStyleType = Nothing+    , _nsTextStyle = Nothing+    , _nsParagraphStyle = Nothing+    }+++-- | The type of this named style.+nsNamedStyleType :: Lens' NamedStyle (Maybe NamedStyleNamedStyleType)+nsNamedStyleType+  = lens _nsNamedStyleType+      (\ s a -> s{_nsNamedStyleType = a})++-- | The text style of this named style.+nsTextStyle :: Lens' NamedStyle (Maybe TextStyle)+nsTextStyle+  = lens _nsTextStyle (\ s a -> s{_nsTextStyle = a})++-- | The paragraph style of this named style.+nsParagraphStyle :: Lens' NamedStyle (Maybe ParagraphStyle)+nsParagraphStyle+  = lens _nsParagraphStyle+      (\ s a -> s{_nsParagraphStyle = a})++instance FromJSON NamedStyle where+        parseJSON+          = withObject "NamedStyle"+              (\ o ->+                 NamedStyle' <$>+                   (o .:? "namedStyleType") <*> (o .:? "textStyle") <*>+                     (o .:? "paragraphStyle"))++instance ToJSON NamedStyle where+        toJSON NamedStyle'{..}+          = object+              (catMaybes+                 [("namedStyleType" .=) <$> _nsNamedStyleType,+                  ("textStyle" .=) <$> _nsTextStyle,+                  ("paragraphStyle" .=) <$> _nsParagraphStyle])++-- | Deletes a NamedRange.+--+-- /See:/ 'deleteNamedRangeRequest' smart constructor.+data DeleteNamedRangeRequest =+  DeleteNamedRangeRequest'+    { _dnrrNamedRangeId :: !(Maybe Text)+    , _dnrrName         :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteNamedRangeRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dnrrNamedRangeId'+--+-- * 'dnrrName'+deleteNamedRangeRequest+    :: DeleteNamedRangeRequest+deleteNamedRangeRequest =+  DeleteNamedRangeRequest' {_dnrrNamedRangeId = Nothing, _dnrrName = Nothing}+++-- | The ID of the named range to delete.+dnrrNamedRangeId :: Lens' DeleteNamedRangeRequest (Maybe Text)+dnrrNamedRangeId+  = lens _dnrrNamedRangeId+      (\ s a -> s{_dnrrNamedRangeId = a})++-- | The name of the range(s) to delete. All named ranges with the given name+-- will be deleted.+dnrrName :: Lens' DeleteNamedRangeRequest (Maybe Text)+dnrrName = lens _dnrrName (\ s a -> s{_dnrrName = a})++instance FromJSON DeleteNamedRangeRequest where+        parseJSON+          = withObject "DeleteNamedRangeRequest"+              (\ o ->+                 DeleteNamedRangeRequest' <$>+                   (o .:? "namedRangeId") <*> (o .:? "name"))++instance ToJSON DeleteNamedRangeRequest where+        toJSON DeleteNamedRangeRequest'{..}+          = object+              (catMaybes+                 [("namedRangeId" .=) <$> _dnrrNamedRangeId,+                  ("name" .=) <$> _dnrrName])++-- | A mask that indicates which of the fields on the base+-- EmbeddedDrawingProperties have been changed in this suggestion. For any+-- field set to true, there is a new suggested value.+--+-- /See:/ 'embeddedDrawingPropertiesSuggestionState' smart constructor.+data EmbeddedDrawingPropertiesSuggestionState =+  EmbeddedDrawingPropertiesSuggestionState'+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EmbeddedDrawingPropertiesSuggestionState' with the minimum fields required to make a request.+--+embeddedDrawingPropertiesSuggestionState+    :: EmbeddedDrawingPropertiesSuggestionState+embeddedDrawingPropertiesSuggestionState =+  EmbeddedDrawingPropertiesSuggestionState'+++instance FromJSON+           EmbeddedDrawingPropertiesSuggestionState+         where+        parseJSON+          = withObject+              "EmbeddedDrawingPropertiesSuggestionState"+              (\ o ->+                 pure EmbeddedDrawingPropertiesSuggestionState')++instance ToJSON+           EmbeddedDrawingPropertiesSuggestionState+         where+        toJSON = const emptyObject++-- | A tab stop within a paragraph.+--+-- /See:/ 'tabStop' smart constructor.+data TabStop =+  TabStop'+    { _tsOffSet    :: !(Maybe Dimension)+    , _tsAlignment :: !(Maybe TabStopAlignment)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TabStop' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tsOffSet'+--+-- * 'tsAlignment'+tabStop+    :: TabStop+tabStop = TabStop' {_tsOffSet = Nothing, _tsAlignment = Nothing}+++-- | The offset between this tab stop and the start margin.+tsOffSet :: Lens' TabStop (Maybe Dimension)+tsOffSet = lens _tsOffSet (\ s a -> s{_tsOffSet = a})++-- | The alignment of this tab stop. If unset, the value defaults to START.+tsAlignment :: Lens' TabStop (Maybe TabStopAlignment)+tsAlignment+  = lens _tsAlignment (\ s a -> s{_tsAlignment = a})++instance FromJSON TabStop where+        parseJSON+          = withObject "TabStop"+              (\ o ->+                 TabStop' <$>+                   (o .:? "offset") <*> (o .:? "alignment"))++instance ToJSON TabStop where+        toJSON TabStop'{..}+          = object+              (catMaybes+                 [("offset" .=) <$> _tsOffSet,+                  ("alignment" .=) <$> _tsAlignment])++-- | A collection of all the NamedRanges in the document that share a given+-- name.+--+-- /See:/ 'namedRanges' smart constructor.+data NamedRanges =+  NamedRanges'+    { _nrNamedRanges :: !(Maybe [NamedRange])+    , _nrName        :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NamedRanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nrNamedRanges'+--+-- * 'nrName'+namedRanges+    :: NamedRanges+namedRanges = NamedRanges' {_nrNamedRanges = Nothing, _nrName = Nothing}+++-- | The NamedRanges that share the same name.+nrNamedRanges :: Lens' NamedRanges [NamedRange]+nrNamedRanges+  = lens _nrNamedRanges+      (\ s a -> s{_nrNamedRanges = a})+      . _Default+      . _Coerce++-- | The name that all the named ranges share.+nrName :: Lens' NamedRanges (Maybe Text)+nrName = lens _nrName (\ s a -> s{_nrName = a})++instance FromJSON NamedRanges where+        parseJSON+          = withObject "NamedRanges"+              (\ o ->+                 NamedRanges' <$>+                   (o .:? "namedRanges" .!= mempty) <*> (o .:? "name"))++instance ToJSON NamedRanges where+        toJSON NamedRanges'{..}+          = object+              (catMaybes+                 [("namedRanges" .=) <$> _nrNamedRanges,+                  ("name" .=) <$> _nrName])++-- | The suggested style changes to this row, keyed by suggestion ID.+--+-- /See:/ 'tableRowSuggestedTableRowStyleChanges' smart constructor.+newtype TableRowSuggestedTableRowStyleChanges =+  TableRowSuggestedTableRowStyleChanges'+    { _trstrscAddtional :: HashMap Text SuggestedTableRowStyle+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TableRowSuggestedTableRowStyleChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'trstrscAddtional'+tableRowSuggestedTableRowStyleChanges+    :: HashMap Text SuggestedTableRowStyle -- ^ 'trstrscAddtional'+    -> TableRowSuggestedTableRowStyleChanges+tableRowSuggestedTableRowStyleChanges pTrstrscAddtional_ =+  TableRowSuggestedTableRowStyleChanges'+    {_trstrscAddtional = _Coerce # pTrstrscAddtional_}+++trstrscAddtional :: Lens' TableRowSuggestedTableRowStyleChanges (HashMap Text SuggestedTableRowStyle)+trstrscAddtional+  = lens _trstrscAddtional+      (\ s a -> s{_trstrscAddtional = a})+      . _Coerce++instance FromJSON+           TableRowSuggestedTableRowStyleChanges+         where+        parseJSON+          = withObject "TableRowSuggestedTableRowStyleChanges"+              (\ o ->+                 TableRowSuggestedTableRowStyleChanges' <$>+                   (parseJSONObject o))++instance ToJSON TableRowSuggestedTableRowStyleChanges+         where+        toJSON = toJSON . _trstrscAddtional++-- | A mask that indicates which of the fields on the base+-- PositionedObjectProperties have been changed in this suggestion. For any+-- field set to true, there is a new suggested value.+--+-- /See:/ 'positionedObjectPropertiesSuggestionState' smart constructor.+data PositionedObjectPropertiesSuggestionState =+  PositionedObjectPropertiesSuggestionState'+    { _popssPositioningSuggestionState    :: !(Maybe PositionedObjectPositioningSuggestionState)+    , _popssEmbeddedObjectSuggestionState :: !(Maybe EmbeddedObjectSuggestionState)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PositionedObjectPropertiesSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'popssPositioningSuggestionState'+--+-- * 'popssEmbeddedObjectSuggestionState'+positionedObjectPropertiesSuggestionState+    :: PositionedObjectPropertiesSuggestionState+positionedObjectPropertiesSuggestionState =+  PositionedObjectPropertiesSuggestionState'+    { _popssPositioningSuggestionState = Nothing+    , _popssEmbeddedObjectSuggestionState = Nothing+    }+++-- | A mask that indicates which of the fields in positioning have been+-- changed in this suggestion.+popssPositioningSuggestionState :: Lens' PositionedObjectPropertiesSuggestionState (Maybe PositionedObjectPositioningSuggestionState)+popssPositioningSuggestionState+  = lens _popssPositioningSuggestionState+      (\ s a -> s{_popssPositioningSuggestionState = a})++-- | A mask that indicates which of the fields in embedded_object have been+-- changed in this suggestion.+popssEmbeddedObjectSuggestionState :: Lens' PositionedObjectPropertiesSuggestionState (Maybe EmbeddedObjectSuggestionState)+popssEmbeddedObjectSuggestionState+  = lens _popssEmbeddedObjectSuggestionState+      (\ s a -> s{_popssEmbeddedObjectSuggestionState = a})++instance FromJSON+           PositionedObjectPropertiesSuggestionState+         where+        parseJSON+          = withObject+              "PositionedObjectPropertiesSuggestionState"+              (\ o ->+                 PositionedObjectPropertiesSuggestionState' <$>+                   (o .:? "positioningSuggestionState") <*>+                     (o .:? "embeddedObjectSuggestionState"))++instance ToJSON+           PositionedObjectPropertiesSuggestionState+         where+        toJSON PositionedObjectPropertiesSuggestionState'{..}+          = object+              (catMaybes+                 [("positioningSuggestionState" .=) <$>+                    _popssPositioningSuggestionState,+                  ("embeddedObjectSuggestionState" .=) <$>+                    _popssEmbeddedObjectSuggestionState])++-- | A mask that indicates which of the fields on the base+-- PositionedObjectPositioning have been changed in this suggestion. For+-- any field set to true, there is a new suggested value.+--+-- /See:/ 'positionedObjectPositioningSuggestionState' smart constructor.+data PositionedObjectPositioningSuggestionState =+  PositionedObjectPositioningSuggestionState'+    { _popssTopOffSetSuggested  :: !(Maybe Bool)+    , _popssLayoutSuggested     :: !(Maybe Bool)+    , _popssLeftOffSetSuggested :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PositionedObjectPositioningSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'popssTopOffSetSuggested'+--+-- * 'popssLayoutSuggested'+--+-- * 'popssLeftOffSetSuggested'+positionedObjectPositioningSuggestionState+    :: PositionedObjectPositioningSuggestionState+positionedObjectPositioningSuggestionState =+  PositionedObjectPositioningSuggestionState'+    { _popssTopOffSetSuggested = Nothing+    , _popssLayoutSuggested = Nothing+    , _popssLeftOffSetSuggested = Nothing+    }+++-- | Indicates if there was a suggested change to top_offset.+popssTopOffSetSuggested :: Lens' PositionedObjectPositioningSuggestionState (Maybe Bool)+popssTopOffSetSuggested+  = lens _popssTopOffSetSuggested+      (\ s a -> s{_popssTopOffSetSuggested = a})++-- | Indicates if there was a suggested change to layout.+popssLayoutSuggested :: Lens' PositionedObjectPositioningSuggestionState (Maybe Bool)+popssLayoutSuggested+  = lens _popssLayoutSuggested+      (\ s a -> s{_popssLayoutSuggested = a})++-- | Indicates if there was a suggested change to left_offset.+popssLeftOffSetSuggested :: Lens' PositionedObjectPositioningSuggestionState (Maybe Bool)+popssLeftOffSetSuggested+  = lens _popssLeftOffSetSuggested+      (\ s a -> s{_popssLeftOffSetSuggested = a})++instance FromJSON+           PositionedObjectPositioningSuggestionState+         where+        parseJSON+          = withObject+              "PositionedObjectPositioningSuggestionState"+              (\ o ->+                 PositionedObjectPositioningSuggestionState' <$>+                   (o .:? "topOffsetSuggested") <*>+                     (o .:? "layoutSuggested")+                     <*> (o .:? "leftOffsetSuggested"))++instance ToJSON+           PositionedObjectPositioningSuggestionState+         where+        toJSON+          PositionedObjectPositioningSuggestionState'{..}+          = object+              (catMaybes+                 [("topOffsetSuggested" .=) <$>+                    _popssTopOffSetSuggested,+                  ("layoutSuggested" .=) <$> _popssLayoutSuggested,+                  ("leftOffsetSuggested" .=) <$>+                    _popssLeftOffSetSuggested])++-- | A suggestion state of a NamedStyle message.+--+-- /See:/ 'namedStyleSuggestionState' smart constructor.+data NamedStyleSuggestionState =+  NamedStyleSuggestionState'+    { _nsssParagraphStyleSuggestionState :: !(Maybe ParagraphStyleSuggestionState)+    , _nsssNamedStyleType                :: !(Maybe NamedStyleSuggestionStateNamedStyleType)+    , _nsssTextStyleSuggestionState      :: !(Maybe TextStyleSuggestionState)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NamedStyleSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nsssParagraphStyleSuggestionState'+--+-- * 'nsssNamedStyleType'+--+-- * 'nsssTextStyleSuggestionState'+namedStyleSuggestionState+    :: NamedStyleSuggestionState+namedStyleSuggestionState =+  NamedStyleSuggestionState'+    { _nsssParagraphStyleSuggestionState = Nothing+    , _nsssNamedStyleType = Nothing+    , _nsssTextStyleSuggestionState = Nothing+    }+++-- | A mask that indicates which of the fields in paragraph style have been+-- changed in this suggestion.+nsssParagraphStyleSuggestionState :: Lens' NamedStyleSuggestionState (Maybe ParagraphStyleSuggestionState)+nsssParagraphStyleSuggestionState+  = lens _nsssParagraphStyleSuggestionState+      (\ s a -> s{_nsssParagraphStyleSuggestionState = a})++-- | The named style type that this suggestion state corresponds to. This+-- field is provided as a convenience for matching the+-- NamedStyleSuggestionState with its corresponding NamedStyle.+nsssNamedStyleType :: Lens' NamedStyleSuggestionState (Maybe NamedStyleSuggestionStateNamedStyleType)+nsssNamedStyleType+  = lens _nsssNamedStyleType+      (\ s a -> s{_nsssNamedStyleType = a})++-- | A mask that indicates which of the fields in text style have been+-- changed in this suggestion.+nsssTextStyleSuggestionState :: Lens' NamedStyleSuggestionState (Maybe TextStyleSuggestionState)+nsssTextStyleSuggestionState+  = lens _nsssTextStyleSuggestionState+      (\ s a -> s{_nsssTextStyleSuggestionState = a})++instance FromJSON NamedStyleSuggestionState where+        parseJSON+          = withObject "NamedStyleSuggestionState"+              (\ o ->+                 NamedStyleSuggestionState' <$>+                   (o .:? "paragraphStyleSuggestionState") <*>+                     (o .:? "namedStyleType")+                     <*> (o .:? "textStyleSuggestionState"))++instance ToJSON NamedStyleSuggestionState where+        toJSON NamedStyleSuggestionState'{..}+          = object+              (catMaybes+                 [("paragraphStyleSuggestionState" .=) <$>+                    _nsssParagraphStyleSuggestionState,+                  ("namedStyleType" .=) <$> _nsssNamedStyleType,+                  ("textStyleSuggestionState" .=) <$>+                    _nsssTextStyleSuggestionState])++-- | The crop properties of an image. The crop rectangle is represented using+-- fractional offsets from the original content\'s four edges. - If the+-- offset is in the interval (0, 1), the corresponding edge of crop+-- rectangle is positioned inside of the image\'s original bounding+-- rectangle. - If the offset is negative or greater than 1, the+-- corresponding edge of crop rectangle is positioned outside of the+-- image\'s original bounding rectangle. - If all offsets and rotation+-- angle are 0, the image is not cropped.+--+-- /See:/ 'cropProperties' smart constructor.+data CropProperties =+  CropProperties'+    { _cpOffSetBottom :: !(Maybe (Textual Double))+    , _cpOffSetRight  :: !(Maybe (Textual Double))+    , _cpAngle        :: !(Maybe (Textual Double))+    , _cpOffSetTop    :: !(Maybe (Textual Double))+    , _cpOffSetLeft   :: !(Maybe (Textual Double))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CropProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpOffSetBottom'+--+-- * 'cpOffSetRight'+--+-- * 'cpAngle'+--+-- * 'cpOffSetTop'+--+-- * 'cpOffSetLeft'+cropProperties+    :: CropProperties+cropProperties =+  CropProperties'+    { _cpOffSetBottom = Nothing+    , _cpOffSetRight = Nothing+    , _cpAngle = Nothing+    , _cpOffSetTop = Nothing+    , _cpOffSetLeft = Nothing+    }+++-- | The offset specifies how far inwards the bottom edge of the crop+-- rectangle is from the bottom edge of the original content as a fraction+-- of the original content\'s height.+cpOffSetBottom :: Lens' CropProperties (Maybe Double)+cpOffSetBottom+  = lens _cpOffSetBottom+      (\ s a -> s{_cpOffSetBottom = a})+      . mapping _Coerce++-- | The offset specifies how far inwards the right edge of the crop+-- rectangle is from the right edge of the original content as a fraction+-- of the original content\'s width.+cpOffSetRight :: Lens' CropProperties (Maybe Double)+cpOffSetRight+  = lens _cpOffSetRight+      (\ s a -> s{_cpOffSetRight = a})+      . mapping _Coerce++-- | The clockwise rotation angle of the crop rectangle around its center, in+-- radians. Rotation is applied after the offsets.+cpAngle :: Lens' CropProperties (Maybe Double)+cpAngle+  = lens _cpAngle (\ s a -> s{_cpAngle = a}) .+      mapping _Coerce++-- | The offset specifies how far inwards the top edge of the crop rectangle+-- is from the top edge of the original content as a fraction of the+-- original content\'s height.+cpOffSetTop :: Lens' CropProperties (Maybe Double)+cpOffSetTop+  = lens _cpOffSetTop (\ s a -> s{_cpOffSetTop = a}) .+      mapping _Coerce++-- | The offset specifies how far inwards the left edge of the crop rectangle+-- is from the left edge of the original content as a fraction of the+-- original content\'s width.+cpOffSetLeft :: Lens' CropProperties (Maybe Double)+cpOffSetLeft+  = lens _cpOffSetLeft (\ s a -> s{_cpOffSetLeft = a})+      . mapping _Coerce++instance FromJSON CropProperties where+        parseJSON+          = withObject "CropProperties"+              (\ o ->+                 CropProperties' <$>+                   (o .:? "offsetBottom") <*> (o .:? "offsetRight") <*>+                     (o .:? "angle")+                     <*> (o .:? "offsetTop")+                     <*> (o .:? "offsetLeft"))++instance ToJSON CropProperties where+        toJSON CropProperties'{..}+          = object+              (catMaybes+                 [("offsetBottom" .=) <$> _cpOffSetBottom,+                  ("offsetRight" .=) <$> _cpOffSetRight,+                  ("angle" .=) <$> _cpAngle,+                  ("offsetTop" .=) <$> _cpOffSetTop,+                  ("offsetLeft" .=) <$> _cpOffSetLeft])++-- | A mask that indicates which of the fields on the base ParagraphStyle+-- have been changed in this suggestion. For any field set to true, there+-- is a new suggested value.+--+-- /See:/ 'paragraphStyleSuggestionState' smart constructor.+data ParagraphStyleSuggestionState =+  ParagraphStyleSuggestionState'+    { _psssSpacingModeSuggested         :: !(Maybe Bool)+    , _psssBOrderTopSuggested           :: !(Maybe Bool)+    , _psssLineSpacingSuggested         :: !(Maybe Bool)+    , _psssDirectionSuggested           :: !(Maybe Bool)+    , _psssAvoidWidowAndOrphanSuggested :: !(Maybe Bool)+    , _psssBOrderBottomSuggested        :: !(Maybe Bool)+    , _psssSpaceAboveSuggested          :: !(Maybe Bool)+    , _psssNamedStyleTypeSuggested      :: !(Maybe Bool)+    , _psssIndentStartSuggested         :: !(Maybe Bool)+    , _psssAlignmentSuggested           :: !(Maybe Bool)+    , _psssBOrderLeftSuggested          :: !(Maybe Bool)+    , _psssSpaceBelowSuggested          :: !(Maybe Bool)+    , _psssIndentFirstLineSuggested     :: !(Maybe Bool)+    , _psssShadingSuggestionState       :: !(Maybe ShadingSuggestionState)+    , _psssHeadingIdSuggested           :: !(Maybe Bool)+    , _psssBOrderBetweenSuggested       :: !(Maybe Bool)+    , _psssKeepWithNextSuggested        :: !(Maybe Bool)+    , _psssIndentEndSuggested           :: !(Maybe Bool)+    , _psssBOrderRightSuggested         :: !(Maybe Bool)+    , _psssKeepLinesTogetherSuggested   :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ParagraphStyleSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'psssSpacingModeSuggested'+--+-- * 'psssBOrderTopSuggested'+--+-- * 'psssLineSpacingSuggested'+--+-- * 'psssDirectionSuggested'+--+-- * 'psssAvoidWidowAndOrphanSuggested'+--+-- * 'psssBOrderBottomSuggested'+--+-- * 'psssSpaceAboveSuggested'+--+-- * 'psssNamedStyleTypeSuggested'+--+-- * 'psssIndentStartSuggested'+--+-- * 'psssAlignmentSuggested'+--+-- * 'psssBOrderLeftSuggested'+--+-- * 'psssSpaceBelowSuggested'+--+-- * 'psssIndentFirstLineSuggested'+--+-- * 'psssShadingSuggestionState'+--+-- * 'psssHeadingIdSuggested'+--+-- * 'psssBOrderBetweenSuggested'+--+-- * 'psssKeepWithNextSuggested'+--+-- * 'psssIndentEndSuggested'+--+-- * 'psssBOrderRightSuggested'+--+-- * 'psssKeepLinesTogetherSuggested'+paragraphStyleSuggestionState+    :: ParagraphStyleSuggestionState+paragraphStyleSuggestionState =+  ParagraphStyleSuggestionState'+    { _psssSpacingModeSuggested = Nothing+    , _psssBOrderTopSuggested = Nothing+    , _psssLineSpacingSuggested = Nothing+    , _psssDirectionSuggested = Nothing+    , _psssAvoidWidowAndOrphanSuggested = Nothing+    , _psssBOrderBottomSuggested = Nothing+    , _psssSpaceAboveSuggested = Nothing+    , _psssNamedStyleTypeSuggested = Nothing+    , _psssIndentStartSuggested = Nothing+    , _psssAlignmentSuggested = Nothing+    , _psssBOrderLeftSuggested = Nothing+    , _psssSpaceBelowSuggested = Nothing+    , _psssIndentFirstLineSuggested = Nothing+    , _psssShadingSuggestionState = Nothing+    , _psssHeadingIdSuggested = Nothing+    , _psssBOrderBetweenSuggested = Nothing+    , _psssKeepWithNextSuggested = Nothing+    , _psssIndentEndSuggested = Nothing+    , _psssBOrderRightSuggested = Nothing+    , _psssKeepLinesTogetherSuggested = Nothing+    }+++-- | Indicates if there was a suggested change to spacing_mode.+psssSpacingModeSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssSpacingModeSuggested+  = lens _psssSpacingModeSuggested+      (\ s a -> s{_psssSpacingModeSuggested = a})++-- | Indicates if there was a suggested change to border_top.+psssBOrderTopSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssBOrderTopSuggested+  = lens _psssBOrderTopSuggested+      (\ s a -> s{_psssBOrderTopSuggested = a})++-- | Indicates if there was a suggested change to line_spacing.+psssLineSpacingSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssLineSpacingSuggested+  = lens _psssLineSpacingSuggested+      (\ s a -> s{_psssLineSpacingSuggested = a})++-- | Indicates if there was a suggested change to direction.+psssDirectionSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssDirectionSuggested+  = lens _psssDirectionSuggested+      (\ s a -> s{_psssDirectionSuggested = a})++-- | Indicates if there was a suggested change to avoid_widow_and_orphan.+psssAvoidWidowAndOrphanSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssAvoidWidowAndOrphanSuggested+  = lens _psssAvoidWidowAndOrphanSuggested+      (\ s a -> s{_psssAvoidWidowAndOrphanSuggested = a})++-- | Indicates if there was a suggested change to border_bottom.+psssBOrderBottomSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssBOrderBottomSuggested+  = lens _psssBOrderBottomSuggested+      (\ s a -> s{_psssBOrderBottomSuggested = a})++-- | Indicates if there was a suggested change to space_above.+psssSpaceAboveSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssSpaceAboveSuggested+  = lens _psssSpaceAboveSuggested+      (\ s a -> s{_psssSpaceAboveSuggested = a})++-- | Indicates if there was a suggested change to named_style_type.+psssNamedStyleTypeSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssNamedStyleTypeSuggested+  = lens _psssNamedStyleTypeSuggested+      (\ s a -> s{_psssNamedStyleTypeSuggested = a})++-- | Indicates if there was a suggested change to indent_start.+psssIndentStartSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssIndentStartSuggested+  = lens _psssIndentStartSuggested+      (\ s a -> s{_psssIndentStartSuggested = a})++-- | Indicates if there was a suggested change to alignment.+psssAlignmentSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssAlignmentSuggested+  = lens _psssAlignmentSuggested+      (\ s a -> s{_psssAlignmentSuggested = a})++-- | Indicates if there was a suggested change to border_left.+psssBOrderLeftSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssBOrderLeftSuggested+  = lens _psssBOrderLeftSuggested+      (\ s a -> s{_psssBOrderLeftSuggested = a})++-- | Indicates if there was a suggested change to space_below.+psssSpaceBelowSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssSpaceBelowSuggested+  = lens _psssSpaceBelowSuggested+      (\ s a -> s{_psssSpaceBelowSuggested = a})++-- | Indicates if there was a suggested change to indent_first_line.+psssIndentFirstLineSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssIndentFirstLineSuggested+  = lens _psssIndentFirstLineSuggested+      (\ s a -> s{_psssIndentFirstLineSuggested = a})++-- | A mask that indicates which of the fields in shading have been changed+-- in this suggestion.+psssShadingSuggestionState :: Lens' ParagraphStyleSuggestionState (Maybe ShadingSuggestionState)+psssShadingSuggestionState+  = lens _psssShadingSuggestionState+      (\ s a -> s{_psssShadingSuggestionState = a})++-- | Indicates if there was a suggested change to heading_id.+psssHeadingIdSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssHeadingIdSuggested+  = lens _psssHeadingIdSuggested+      (\ s a -> s{_psssHeadingIdSuggested = a})++-- | Indicates if there was a suggested change to border_between.+psssBOrderBetweenSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssBOrderBetweenSuggested+  = lens _psssBOrderBetweenSuggested+      (\ s a -> s{_psssBOrderBetweenSuggested = a})++-- | Indicates if there was a suggested change to keep_with_next.+psssKeepWithNextSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssKeepWithNextSuggested+  = lens _psssKeepWithNextSuggested+      (\ s a -> s{_psssKeepWithNextSuggested = a})++-- | Indicates if there was a suggested change to indent_end.+psssIndentEndSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssIndentEndSuggested+  = lens _psssIndentEndSuggested+      (\ s a -> s{_psssIndentEndSuggested = a})++-- | Indicates if there was a suggested change to border_right.+psssBOrderRightSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssBOrderRightSuggested+  = lens _psssBOrderRightSuggested+      (\ s a -> s{_psssBOrderRightSuggested = a})++-- | Indicates if there was a suggested change to keep_lines_together.+psssKeepLinesTogetherSuggested :: Lens' ParagraphStyleSuggestionState (Maybe Bool)+psssKeepLinesTogetherSuggested+  = lens _psssKeepLinesTogetherSuggested+      (\ s a -> s{_psssKeepLinesTogetherSuggested = a})++instance FromJSON ParagraphStyleSuggestionState where+        parseJSON+          = withObject "ParagraphStyleSuggestionState"+              (\ o ->+                 ParagraphStyleSuggestionState' <$>+                   (o .:? "spacingModeSuggested") <*>+                     (o .:? "borderTopSuggested")+                     <*> (o .:? "lineSpacingSuggested")+                     <*> (o .:? "directionSuggested")+                     <*> (o .:? "avoidWidowAndOrphanSuggested")+                     <*> (o .:? "borderBottomSuggested")+                     <*> (o .:? "spaceAboveSuggested")+                     <*> (o .:? "namedStyleTypeSuggested")+                     <*> (o .:? "indentStartSuggested")+                     <*> (o .:? "alignmentSuggested")+                     <*> (o .:? "borderLeftSuggested")+                     <*> (o .:? "spaceBelowSuggested")+                     <*> (o .:? "indentFirstLineSuggested")+                     <*> (o .:? "shadingSuggestionState")+                     <*> (o .:? "headingIdSuggested")+                     <*> (o .:? "borderBetweenSuggested")+                     <*> (o .:? "keepWithNextSuggested")+                     <*> (o .:? "indentEndSuggested")+                     <*> (o .:? "borderRightSuggested")+                     <*> (o .:? "keepLinesTogetherSuggested"))++instance ToJSON ParagraphStyleSuggestionState where+        toJSON ParagraphStyleSuggestionState'{..}+          = object+              (catMaybes+                 [("spacingModeSuggested" .=) <$>+                    _psssSpacingModeSuggested,+                  ("borderTopSuggested" .=) <$>+                    _psssBOrderTopSuggested,+                  ("lineSpacingSuggested" .=) <$>+                    _psssLineSpacingSuggested,+                  ("directionSuggested" .=) <$>+                    _psssDirectionSuggested,+                  ("avoidWidowAndOrphanSuggested" .=) <$>+                    _psssAvoidWidowAndOrphanSuggested,+                  ("borderBottomSuggested" .=) <$>+                    _psssBOrderBottomSuggested,+                  ("spaceAboveSuggested" .=) <$>+                    _psssSpaceAboveSuggested,+                  ("namedStyleTypeSuggested" .=) <$>+                    _psssNamedStyleTypeSuggested,+                  ("indentStartSuggested" .=) <$>+                    _psssIndentStartSuggested,+                  ("alignmentSuggested" .=) <$>+                    _psssAlignmentSuggested,+                  ("borderLeftSuggested" .=) <$>+                    _psssBOrderLeftSuggested,+                  ("spaceBelowSuggested" .=) <$>+                    _psssSpaceBelowSuggested,+                  ("indentFirstLineSuggested" .=) <$>+                    _psssIndentFirstLineSuggested,+                  ("shadingSuggestionState" .=) <$>+                    _psssShadingSuggestionState,+                  ("headingIdSuggested" .=) <$>+                    _psssHeadingIdSuggested,+                  ("borderBetweenSuggested" .=) <$>+                    _psssBOrderBetweenSuggested,+                  ("keepWithNextSuggested" .=) <$>+                    _psssKeepWithNextSuggested,+                  ("indentEndSuggested" .=) <$>+                    _psssIndentEndSuggested,+                  ("borderRightSuggested" .=) <$>+                    _psssBOrderRightSuggested,+                  ("keepLinesTogetherSuggested" .=) <$>+                    _psssKeepLinesTogetherSuggested])++-- | A document footnote.+--+-- /See:/ 'footNote' smart constructor.+data FootNote =+  FootNote'+    { _fnContent    :: !(Maybe [StructuralElement])+    , _fnFootNoteId :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FootNote' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fnContent'+--+-- * 'fnFootNoteId'+footNote+    :: FootNote+footNote = FootNote' {_fnContent = Nothing, _fnFootNoteId = Nothing}+++-- | The contents of the footnote. The indexes for a footnote\'s content+-- begin at zero.+fnContent :: Lens' FootNote [StructuralElement]+fnContent+  = lens _fnContent (\ s a -> s{_fnContent = a}) .+      _Default+      . _Coerce++-- | The ID of the footnote.+fnFootNoteId :: Lens' FootNote (Maybe Text)+fnFootNoteId+  = lens _fnFootNoteId (\ s a -> s{_fnFootNoteId = a})++instance FromJSON FootNote where+        parseJSON+          = withObject "FootNote"+              (\ o ->+                 FootNote' <$>+                   (o .:? "content" .!= mempty) <*>+                     (o .:? "footnoteId"))++instance ToJSON FootNote where+        toJSON FootNote'{..}+          = object+              (catMaybes+                 [("content" .=) <$> _fnContent,+                  ("footnoteId" .=) <$> _fnFootNoteId])++-- | A ParagraphElement representing a spot in the text that is dynamically+-- replaced with content that can change over time, like a page number.+--+-- /See:/ 'autoText' smart constructor.+data AutoText =+  AutoText'+    { _atSuggestedInsertionIds     :: !(Maybe [Text])+    , _atSuggestedTextStyleChanges :: !(Maybe AutoTextSuggestedTextStyleChanges)+    , _atSuggestedDeletionIds      :: !(Maybe [Text])+    , _atTextStyle                 :: !(Maybe TextStyle)+    , _atType                      :: !(Maybe AutoTextType)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AutoText' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'atSuggestedInsertionIds'+--+-- * 'atSuggestedTextStyleChanges'+--+-- * 'atSuggestedDeletionIds'+--+-- * 'atTextStyle'+--+-- * 'atType'+autoText+    :: AutoText+autoText =+  AutoText'+    { _atSuggestedInsertionIds = Nothing+    , _atSuggestedTextStyleChanges = Nothing+    , _atSuggestedDeletionIds = Nothing+    , _atTextStyle = Nothing+    , _atType = Nothing+    }+++-- | The suggested insertion IDs. An AutoText may have multiple insertion IDs+-- if it is a nested suggested change. If empty, then this is not a+-- suggested insertion.+atSuggestedInsertionIds :: Lens' AutoText [Text]+atSuggestedInsertionIds+  = lens _atSuggestedInsertionIds+      (\ s a -> s{_atSuggestedInsertionIds = a})+      . _Default+      . _Coerce++-- | The suggested text style changes to this AutoText, keyed by suggestion+-- ID.+atSuggestedTextStyleChanges :: Lens' AutoText (Maybe AutoTextSuggestedTextStyleChanges)+atSuggestedTextStyleChanges+  = lens _atSuggestedTextStyleChanges+      (\ s a -> s{_atSuggestedTextStyleChanges = a})++-- | The suggested deletion IDs. If empty, then there are no suggested+-- deletions of this content.+atSuggestedDeletionIds :: Lens' AutoText [Text]+atSuggestedDeletionIds+  = lens _atSuggestedDeletionIds+      (\ s a -> s{_atSuggestedDeletionIds = a})+      . _Default+      . _Coerce++-- | The text style of this AutoText.+atTextStyle :: Lens' AutoText (Maybe TextStyle)+atTextStyle+  = lens _atTextStyle (\ s a -> s{_atTextStyle = a})++-- | The type of this auto text.+atType :: Lens' AutoText (Maybe AutoTextType)+atType = lens _atType (\ s a -> s{_atType = a})++instance FromJSON AutoText where+        parseJSON+          = withObject "AutoText"+              (\ o ->+                 AutoText' <$>+                   (o .:? "suggestedInsertionIds" .!= mempty) <*>+                     (o .:? "suggestedTextStyleChanges")+                     <*> (o .:? "suggestedDeletionIds" .!= mempty)+                     <*> (o .:? "textStyle")+                     <*> (o .:? "type"))++instance ToJSON AutoText where+        toJSON AutoText'{..}+          = object+              (catMaybes+                 [("suggestedInsertionIds" .=) <$>+                    _atSuggestedInsertionIds,+                  ("suggestedTextStyleChanges" .=) <$>+                    _atSuggestedTextStyleChanges,+                  ("suggestedDeletionIds" .=) <$>+                    _atSuggestedDeletionIds,+                  ("textStyle" .=) <$> _atTextStyle,+                  ("type" .=) <$> _atType])++-- | A List represents the list attributes for a group of paragraphs that all+-- belong to the same list. A paragraph that is part of a list has a+-- reference to the list\'s ID in its bullet.+--+-- /See:/ 'list' smart constructor.+data List =+  List'+    { _lSuggestedInsertionId           :: !(Maybe Text)+    , _lSuggestedListPropertiesChanges :: !(Maybe ListSuggestedListPropertiesChanges)+    , _lSuggestedDeletionIds           :: !(Maybe [Text])+    , _lListProperties                 :: !(Maybe ListProperties)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'List' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lSuggestedInsertionId'+--+-- * 'lSuggestedListPropertiesChanges'+--+-- * 'lSuggestedDeletionIds'+--+-- * 'lListProperties'+list+    :: List+list =+  List'+    { _lSuggestedInsertionId = Nothing+    , _lSuggestedListPropertiesChanges = Nothing+    , _lSuggestedDeletionIds = Nothing+    , _lListProperties = Nothing+    }+++-- | The suggested insertion ID. If empty, then this is not a suggested+-- insertion.+lSuggestedInsertionId :: Lens' List (Maybe Text)+lSuggestedInsertionId+  = lens _lSuggestedInsertionId+      (\ s a -> s{_lSuggestedInsertionId = a})++-- | The suggested changes to the list properties, keyed by suggestion ID.+lSuggestedListPropertiesChanges :: Lens' List (Maybe ListSuggestedListPropertiesChanges)+lSuggestedListPropertiesChanges+  = lens _lSuggestedListPropertiesChanges+      (\ s a -> s{_lSuggestedListPropertiesChanges = a})++-- | The suggested deletion IDs. If empty, then there are no suggested+-- deletions of this list.+lSuggestedDeletionIds :: Lens' List [Text]+lSuggestedDeletionIds+  = lens _lSuggestedDeletionIds+      (\ s a -> s{_lSuggestedDeletionIds = a})+      . _Default+      . _Coerce++-- | The properties of the list.+lListProperties :: Lens' List (Maybe ListProperties)+lListProperties+  = lens _lListProperties+      (\ s a -> s{_lListProperties = a})++instance FromJSON List where+        parseJSON+          = withObject "List"+              (\ o ->+                 List' <$>+                   (o .:? "suggestedInsertionId") <*>+                     (o .:? "suggestedListPropertiesChanges")+                     <*> (o .:? "suggestedDeletionIds" .!= mempty)+                     <*> (o .:? "listProperties"))++instance ToJSON List where+        toJSON List'{..}+          = object+              (catMaybes+                 [("suggestedInsertionId" .=) <$>+                    _lSuggestedInsertionId,+                  ("suggestedListPropertiesChanges" .=) <$>+                    _lSuggestedListPropertiesChanges,+                  ("suggestedDeletionIds" .=) <$>+                    _lSuggestedDeletionIds,+                  ("listProperties" .=) <$> _lListProperties])++-- | A border around a paragraph.+--+-- /See:/ 'paragraphBOrder' smart constructor.+data ParagraphBOrder =+  ParagraphBOrder'+    { _pboColor     :: !(Maybe OptionalColor)+    , _pboWidth     :: !(Maybe Dimension)+    , _pboDashStyle :: !(Maybe ParagraphBOrderDashStyle)+    , _pboPadding   :: !(Maybe Dimension)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ParagraphBOrder' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pboColor'+--+-- * 'pboWidth'+--+-- * 'pboDashStyle'+--+-- * 'pboPadding'+paragraphBOrder+    :: ParagraphBOrder+paragraphBOrder =+  ParagraphBOrder'+    { _pboColor = Nothing+    , _pboWidth = Nothing+    , _pboDashStyle = Nothing+    , _pboPadding = Nothing+    }+++-- | The color of the border.+pboColor :: Lens' ParagraphBOrder (Maybe OptionalColor)+pboColor = lens _pboColor (\ s a -> s{_pboColor = a})++-- | The width of the border.+pboWidth :: Lens' ParagraphBOrder (Maybe Dimension)+pboWidth = lens _pboWidth (\ s a -> s{_pboWidth = a})++-- | The dash style of the border.+pboDashStyle :: Lens' ParagraphBOrder (Maybe ParagraphBOrderDashStyle)+pboDashStyle+  = lens _pboDashStyle (\ s a -> s{_pboDashStyle = a})++-- | The padding of the border.+pboPadding :: Lens' ParagraphBOrder (Maybe Dimension)+pboPadding+  = lens _pboPadding (\ s a -> s{_pboPadding = a})++instance FromJSON ParagraphBOrder where+        parseJSON+          = withObject "ParagraphBOrder"+              (\ o ->+                 ParagraphBOrder' <$>+                   (o .:? "color") <*> (o .:? "width") <*>+                     (o .:? "dashStyle")+                     <*> (o .:? "padding"))++instance ToJSON ParagraphBOrder where+        toJSON ParagraphBOrder'{..}+          = object+              (catMaybes+                 [("color" .=) <$> _pboColor,+                  ("width" .=) <$> _pboWidth,+                  ("dashStyle" .=) <$> _pboDashStyle,+                  ("padding" .=) <$> _pboPadding])++-- | A suggested change to a TableCellStyle.+--+-- /See:/ 'suggestedTableCellStyle' smart constructor.+data SuggestedTableCellStyle =+  SuggestedTableCellStyle'+    { _stcsTableCellStyleSuggestionState :: !(Maybe TableCellStyleSuggestionState)+    , _stcsTableCellStyle                :: !(Maybe TableCellStyle)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SuggestedTableCellStyle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'stcsTableCellStyleSuggestionState'+--+-- * 'stcsTableCellStyle'+suggestedTableCellStyle+    :: SuggestedTableCellStyle+suggestedTableCellStyle =+  SuggestedTableCellStyle'+    { _stcsTableCellStyleSuggestionState = Nothing+    , _stcsTableCellStyle = Nothing+    }+++-- | A mask that indicates which of the fields on the base TableCellStyle+-- have been changed in this suggestion.+stcsTableCellStyleSuggestionState :: Lens' SuggestedTableCellStyle (Maybe TableCellStyleSuggestionState)+stcsTableCellStyleSuggestionState+  = lens _stcsTableCellStyleSuggestionState+      (\ s a -> s{_stcsTableCellStyleSuggestionState = a})++-- | A TableCellStyle that only includes the changes made in this suggestion.+-- This can be used along with the table_cell_style_suggestion_state to see+-- which fields have changed and their new values.+stcsTableCellStyle :: Lens' SuggestedTableCellStyle (Maybe TableCellStyle)+stcsTableCellStyle+  = lens _stcsTableCellStyle+      (\ s a -> s{_stcsTableCellStyle = a})++instance FromJSON SuggestedTableCellStyle where+        parseJSON+          = withObject "SuggestedTableCellStyle"+              (\ o ->+                 SuggestedTableCellStyle' <$>+                   (o .:? "tableCellStyleSuggestionState") <*>+                     (o .:? "tableCellStyle"))++instance ToJSON SuggestedTableCellStyle where+        toJSON SuggestedTableCellStyle'{..}+          = object+              (catMaybes+                 [("tableCellStyleSuggestionState" .=) <$>+                    _stcsTableCellStyleSuggestionState,+                  ("tableCellStyle" .=) <$> _stcsTableCellStyle])++-- | The result of inserting an inline image.+--+-- /See:/ 'insertInlineImageResponse' smart constructor.+newtype InsertInlineImageResponse =+  InsertInlineImageResponse'+    { _iiirObjectId :: Maybe Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InsertInlineImageResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iiirObjectId'+insertInlineImageResponse+    :: InsertInlineImageResponse+insertInlineImageResponse = InsertInlineImageResponse' {_iiirObjectId = Nothing}+++-- | The ID of the created InlineObject.+iiirObjectId :: Lens' InsertInlineImageResponse (Maybe Text)+iiirObjectId+  = lens _iiirObjectId (\ s a -> s{_iiirObjectId = a})++instance FromJSON InsertInlineImageResponse where+        parseJSON+          = withObject "InsertInlineImageResponse"+              (\ o ->+                 InsertInlineImageResponse' <$> (o .:? "objectId"))++instance ToJSON InsertInlineImageResponse where+        toJSON InsertInlineImageResponse'{..}+          = object+              (catMaybes [("objectId" .=) <$> _iiirObjectId])++-- | An RGB color.+--+-- /See:/ 'rgbColor' smart constructor.+data RgbColor =+  RgbColor'+    { _rcRed   :: !(Maybe (Textual Double))+    , _rcGreen :: !(Maybe (Textual Double))+    , _rcBlue  :: !(Maybe (Textual Double))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RgbColor' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rcRed'+--+-- * 'rcGreen'+--+-- * 'rcBlue'+rgbColor+    :: RgbColor+rgbColor = RgbColor' {_rcRed = Nothing, _rcGreen = Nothing, _rcBlue = Nothing}+++-- | The red component of the color, from 0.0 to 1.0.+rcRed :: Lens' RgbColor (Maybe Double)+rcRed+  = lens _rcRed (\ s a -> s{_rcRed = a}) .+      mapping _Coerce++-- | The green component of the color, from 0.0 to 1.0.+rcGreen :: Lens' RgbColor (Maybe Double)+rcGreen+  = lens _rcGreen (\ s a -> s{_rcGreen = a}) .+      mapping _Coerce++-- | The blue component of the color, from 0.0 to 1.0.+rcBlue :: Lens' RgbColor (Maybe Double)+rcBlue+  = lens _rcBlue (\ s a -> s{_rcBlue = a}) .+      mapping _Coerce++instance FromJSON RgbColor where+        parseJSON+          = withObject "RgbColor"+              (\ o ->+                 RgbColor' <$>+                   (o .:? "red") <*> (o .:? "green") <*> (o .:? "blue"))++instance ToJSON RgbColor where+        toJSON RgbColor'{..}+          = object+              (catMaybes+                 [("red" .=) <$> _rcRed, ("green" .=) <$> _rcGreen,+                  ("blue" .=) <$> _rcBlue])++-- | Inserts a page break followed by a newline at the specified location.+--+-- /See:/ 'insertPageBreakRequest' smart constructor.+data InsertPageBreakRequest =+  InsertPageBreakRequest'+    { _ipbrLocation             :: !(Maybe Location)+    , _ipbrEndOfSegmentLocation :: !(Maybe EndOfSegmentLocation)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InsertPageBreakRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ipbrLocation'+--+-- * 'ipbrEndOfSegmentLocation'+insertPageBreakRequest+    :: InsertPageBreakRequest+insertPageBreakRequest =+  InsertPageBreakRequest'+    {_ipbrLocation = Nothing, _ipbrEndOfSegmentLocation = Nothing}+++-- | Inserts the page break at a specific index in the document. The page+-- break must be inserted inside the bounds of an existing Paragraph. For+-- instance, it cannot be inserted at a table\'s start index (i.e. between+-- the table and its preceding paragraph). Page breaks cannot be inserted+-- inside a table, equation, footnote, header or footer. Since page breaks+-- can only be inserted inside the body, the segment ID field must be+-- empty.+ipbrLocation :: Lens' InsertPageBreakRequest (Maybe Location)+ipbrLocation+  = lens _ipbrLocation (\ s a -> s{_ipbrLocation = a})++-- | Inserts the page break at the end of the document body. Page breaks+-- cannot be inserted inside a footnote, header or footer. Since page+-- breaks can only be inserted inside the body, the segment ID field must+-- be empty.+ipbrEndOfSegmentLocation :: Lens' InsertPageBreakRequest (Maybe EndOfSegmentLocation)+ipbrEndOfSegmentLocation+  = lens _ipbrEndOfSegmentLocation+      (\ s a -> s{_ipbrEndOfSegmentLocation = a})++instance FromJSON InsertPageBreakRequest where+        parseJSON+          = withObject "InsertPageBreakRequest"+              (\ o ->+                 InsertPageBreakRequest' <$>+                   (o .:? "location") <*>+                     (o .:? "endOfSegmentLocation"))++instance ToJSON InsertPageBreakRequest where+        toJSON InsertPageBreakRequest'{..}+          = object+              (catMaybes+                 [("location" .=) <$> _ipbrLocation,+                  ("endOfSegmentLocation" .=) <$>+                    _ipbrEndOfSegmentLocation])++-- | A mask that indicates which of the fields on the base Background have+-- been changed in this suggestion. For any field set to true, the+-- Backgound has a new suggested value.+--+-- /See:/ 'backgRoundSuggestionState' smart constructor.+newtype BackgRoundSuggestionState =+  BackgRoundSuggestionState'+    { _brssBackgRoundColorSuggested :: Maybe Bool+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BackgRoundSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'brssBackgRoundColorSuggested'+backgRoundSuggestionState+    :: BackgRoundSuggestionState+backgRoundSuggestionState =+  BackgRoundSuggestionState' {_brssBackgRoundColorSuggested = Nothing}+++-- | Indicates whether the current background color has been modified in this+-- suggestion.+brssBackgRoundColorSuggested :: Lens' BackgRoundSuggestionState (Maybe Bool)+brssBackgRoundColorSuggested+  = lens _brssBackgRoundColorSuggested+      (\ s a -> s{_brssBackgRoundColorSuggested = a})++instance FromJSON BackgRoundSuggestionState where+        parseJSON+          = withObject "BackgRoundSuggestionState"+              (\ o ->+                 BackgRoundSuggestionState' <$>+                   (o .:? "backgroundColorSuggested"))++instance ToJSON BackgRoundSuggestionState where+        toJSON BackgRoundSuggestionState'{..}+          = object+              (catMaybes+                 [("backgroundColorSuggested" .=) <$>+                    _brssBackgRoundColorSuggested])++-- | Properties of an InlineObject.+--+-- /See:/ 'inlineObjectProperties' smart constructor.+newtype InlineObjectProperties =+  InlineObjectProperties'+    { _iopEmbeddedObject :: Maybe EmbeddedObject+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InlineObjectProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iopEmbeddedObject'+inlineObjectProperties+    :: InlineObjectProperties+inlineObjectProperties = InlineObjectProperties' {_iopEmbeddedObject = Nothing}+++-- | The embedded object of this inline object.+iopEmbeddedObject :: Lens' InlineObjectProperties (Maybe EmbeddedObject)+iopEmbeddedObject+  = lens _iopEmbeddedObject+      (\ s a -> s{_iopEmbeddedObject = a})++instance FromJSON InlineObjectProperties where+        parseJSON+          = withObject "InlineObjectProperties"+              (\ o ->+                 InlineObjectProperties' <$> (o .:? "embeddedObject"))++instance ToJSON InlineObjectProperties where+        toJSON InlineObjectProperties'{..}+          = object+              (catMaybes+                 [("embeddedObject" .=) <$> _iopEmbeddedObject])++-- | A suggested change to the DocumentStyle.+--+-- /See:/ 'suggestedDocumentStyle' smart constructor.+data SuggestedDocumentStyle =+  SuggestedDocumentStyle'+    { _sdsDocumentStyle                :: !(Maybe DocumentStyle)+    , _sdsDocumentStyleSuggestionState :: !(Maybe DocumentStyleSuggestionState)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SuggestedDocumentStyle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdsDocumentStyle'+--+-- * 'sdsDocumentStyleSuggestionState'+suggestedDocumentStyle+    :: SuggestedDocumentStyle+suggestedDocumentStyle =+  SuggestedDocumentStyle'+    {_sdsDocumentStyle = Nothing, _sdsDocumentStyleSuggestionState = Nothing}+++-- | A DocumentStyle that only includes the changes made in this suggestion.+-- This can be used along with the document_style_suggestion_state to see+-- which fields have changed and their new values.+sdsDocumentStyle :: Lens' SuggestedDocumentStyle (Maybe DocumentStyle)+sdsDocumentStyle+  = lens _sdsDocumentStyle+      (\ s a -> s{_sdsDocumentStyle = a})++-- | A mask that indicates which of the fields on the base DocumentStyle have+-- been changed in this suggestion.+sdsDocumentStyleSuggestionState :: Lens' SuggestedDocumentStyle (Maybe DocumentStyleSuggestionState)+sdsDocumentStyleSuggestionState+  = lens _sdsDocumentStyleSuggestionState+      (\ s a -> s{_sdsDocumentStyleSuggestionState = a})++instance FromJSON SuggestedDocumentStyle where+        parseJSON+          = withObject "SuggestedDocumentStyle"+              (\ o ->+                 SuggestedDocumentStyle' <$>+                   (o .:? "documentStyle") <*>+                     (o .:? "documentStyleSuggestionState"))++instance ToJSON SuggestedDocumentStyle where+        toJSON SuggestedDocumentStyle'{..}+          = object+              (catMaybes+                 [("documentStyle" .=) <$> _sdsDocumentStyle,+                  ("documentStyleSuggestionState" .=) <$>+                    _sdsDocumentStyleSuggestionState])++-- | A particular location in the document.+--+-- /See:/ 'location' smart constructor.+data Location =+  Location'+    { _lIndex     :: !(Maybe (Textual Int32))+    , _lSegmentId :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Location' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lIndex'+--+-- * 'lSegmentId'+location+    :: Location+location = Location' {_lIndex = Nothing, _lSegmentId = Nothing}+++-- | The zero-based index, in UTF-16 code units. The index is relative to the+-- beginning of the segment specified by segment_id.+lIndex :: Lens' Location (Maybe Int32)+lIndex+  = lens _lIndex (\ s a -> s{_lIndex = a}) .+      mapping _Coerce++-- | The ID of the header, footer or footnote the location is in. An empty+-- segment ID signifies the document\'s body.+lSegmentId :: Lens' Location (Maybe Text)+lSegmentId+  = lens _lSegmentId (\ s a -> s{_lSegmentId = a})++instance FromJSON Location where+        parseJSON+          = withObject "Location"+              (\ o ->+                 Location' <$>+                   (o .:? "index") <*> (o .:? "segmentId"))++instance ToJSON Location where+        toJSON Location'{..}+          = object+              (catMaybes+                 [("index" .=) <$> _lIndex,+                  ("segmentId" .=) <$> _lSegmentId])++-- | A StructuralElement representing a table of contents.+--+-- /See:/ 'tableOfContents' smart constructor.+data TableOfContents =+  TableOfContents'+    { _tocSuggestedInsertionIds :: !(Maybe [Text])+    , _tocContent               :: !(Maybe [StructuralElement])+    , _tocSuggestedDeletionIds  :: !(Maybe [Text])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TableOfContents' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tocSuggestedInsertionIds'+--+-- * 'tocContent'+--+-- * 'tocSuggestedDeletionIds'+tableOfContents+    :: TableOfContents+tableOfContents =+  TableOfContents'+    { _tocSuggestedInsertionIds = Nothing+    , _tocContent = Nothing+    , _tocSuggestedDeletionIds = Nothing+    }+++-- | The suggested insertion IDs. A TableOfContents may have multiple+-- insertion IDs if it is a nested suggested change. If empty, then this is+-- not a suggested insertion.+tocSuggestedInsertionIds :: Lens' TableOfContents [Text]+tocSuggestedInsertionIds+  = lens _tocSuggestedInsertionIds+      (\ s a -> s{_tocSuggestedInsertionIds = a})+      . _Default+      . _Coerce++-- | The content of the table of contents.+tocContent :: Lens' TableOfContents [StructuralElement]+tocContent+  = lens _tocContent (\ s a -> s{_tocContent = a}) .+      _Default+      . _Coerce++-- | The suggested deletion IDs. If empty, then there are no suggested+-- deletions of this content.+tocSuggestedDeletionIds :: Lens' TableOfContents [Text]+tocSuggestedDeletionIds+  = lens _tocSuggestedDeletionIds+      (\ s a -> s{_tocSuggestedDeletionIds = a})+      . _Default+      . _Coerce++instance FromJSON TableOfContents where+        parseJSON+          = withObject "TableOfContents"+              (\ o ->+                 TableOfContents' <$>+                   (o .:? "suggestedInsertionIds" .!= mempty) <*>+                     (o .:? "content" .!= mempty)+                     <*> (o .:? "suggestedDeletionIds" .!= mempty))++instance ToJSON TableOfContents where+        toJSON TableOfContents'{..}+          = object+              (catMaybes+                 [("suggestedInsertionIds" .=) <$>+                    _tocSuggestedInsertionIds,+                  ("content" .=) <$> _tocContent,+                  ("suggestedDeletionIds" .=) <$>+                    _tocSuggestedDeletionIds])++-- | A solid color.+--+-- /See:/ 'color' smart constructor.+newtype Color =+  Color'+    { _cRgbColor :: Maybe RgbColor+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Color' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cRgbColor'+color+    :: Color+color = Color' {_cRgbColor = Nothing}+++-- | The RGB color value.+cRgbColor :: Lens' Color (Maybe RgbColor)+cRgbColor+  = lens _cRgbColor (\ s a -> s{_cRgbColor = a})++instance FromJSON Color where+        parseJSON+          = withObject "Color"+              (\ o -> Color' <$> (o .:? "rgbColor"))++instance ToJSON Color where+        toJSON Color'{..}+          = object (catMaybes [("rgbColor" .=) <$> _cRgbColor])++-- | A width and height.+--+-- /See:/ 'size' smart constructor.+data Size =+  Size'+    { _sHeight :: !(Maybe Dimension)+    , _sWidth  :: !(Maybe Dimension)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Size' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sHeight'+--+-- * 'sWidth'+size+    :: Size+size = Size' {_sHeight = Nothing, _sWidth = Nothing}+++-- | The height of the object.+sHeight :: Lens' Size (Maybe Dimension)+sHeight = lens _sHeight (\ s a -> s{_sHeight = a})++-- | The width of the object.+sWidth :: Lens' Size (Maybe Dimension)+sWidth = lens _sWidth (\ s a -> s{_sWidth = a})++instance FromJSON Size where+        parseJSON+          = withObject "Size"+              (\ o ->+                 Size' <$> (o .:? "height") <*> (o .:? "width"))++instance ToJSON Size where+        toJSON Size'{..}+          = object+              (catMaybes+                 [("height" .=) <$> _sHeight,+                  ("width" .=) <$> _sWidth])++-- | The result of inserting an embedded Google Sheets chart.+--+-- /See:/ 'insertInlineSheetsChartResponse' smart constructor.+newtype InsertInlineSheetsChartResponse =+  InsertInlineSheetsChartResponse'+    { _iiscrObjectId :: Maybe Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InsertInlineSheetsChartResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iiscrObjectId'+insertInlineSheetsChartResponse+    :: InsertInlineSheetsChartResponse+insertInlineSheetsChartResponse =+  InsertInlineSheetsChartResponse' {_iiscrObjectId = Nothing}+++-- | The object ID of the inserted chart.+iiscrObjectId :: Lens' InsertInlineSheetsChartResponse (Maybe Text)+iiscrObjectId+  = lens _iiscrObjectId+      (\ s a -> s{_iiscrObjectId = a})++instance FromJSON InsertInlineSheetsChartResponse+         where+        parseJSON+          = withObject "InsertInlineSheetsChartResponse"+              (\ o ->+                 InsertInlineSheetsChartResponse' <$>+                   (o .:? "objectId"))++instance ToJSON InsertInlineSheetsChartResponse where+        toJSON InsertInlineSheetsChartResponse'{..}+          = object+              (catMaybes [("objectId" .=) <$> _iiscrObjectId])++-- | A mask that indicates which of the fields on the base TableRowStyle have+-- been changed in this suggestion. For any field set to true, there is a+-- new suggested value.+--+-- /See:/ 'tableRowStyleSuggestionState' smart constructor.+newtype TableRowStyleSuggestionState =+  TableRowStyleSuggestionState'+    { _trsssMinRowHeightSuggested :: Maybe Bool+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TableRowStyleSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'trsssMinRowHeightSuggested'+tableRowStyleSuggestionState+    :: TableRowStyleSuggestionState+tableRowStyleSuggestionState =+  TableRowStyleSuggestionState' {_trsssMinRowHeightSuggested = Nothing}+++-- | Indicates if there was a suggested change to min_row_height.+trsssMinRowHeightSuggested :: Lens' TableRowStyleSuggestionState (Maybe Bool)+trsssMinRowHeightSuggested+  = lens _trsssMinRowHeightSuggested+      (\ s a -> s{_trsssMinRowHeightSuggested = a})++instance FromJSON TableRowStyleSuggestionState where+        parseJSON+          = withObject "TableRowStyleSuggestionState"+              (\ o ->+                 TableRowStyleSuggestionState' <$>+                   (o .:? "minRowHeightSuggested"))++instance ToJSON TableRowStyleSuggestionState where+        toJSON TableRowStyleSuggestionState'{..}+          = object+              (catMaybes+                 [("minRowHeightSuggested" .=) <$>+                    _trsssMinRowHeightSuggested])++-- | Deletes a column from a table.+--+-- /See:/ 'deleteTableColumnRequest' smart constructor.+newtype DeleteTableColumnRequest =+  DeleteTableColumnRequest'+    { _dtcrTableCellLocation :: Maybe TableCellLocation+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteTableColumnRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtcrTableCellLocation'+deleteTableColumnRequest+    :: DeleteTableColumnRequest+deleteTableColumnRequest =+  DeleteTableColumnRequest' {_dtcrTableCellLocation = Nothing}+++-- | The reference table cell location from which the column will be deleted.+-- The column this cell spans will be deleted. If this is a merged cell+-- that spans multiple columns, all columns that the cell spans will be+-- deleted. If no columns remain in the table after this deletion, the+-- whole table is deleted.+dtcrTableCellLocation :: Lens' DeleteTableColumnRequest (Maybe TableCellLocation)+dtcrTableCellLocation+  = lens _dtcrTableCellLocation+      (\ s a -> s{_dtcrTableCellLocation = a})++instance FromJSON DeleteTableColumnRequest where+        parseJSON+          = withObject "DeleteTableColumnRequest"+              (\ o ->+                 DeleteTableColumnRequest' <$>+                   (o .:? "tableCellLocation"))++instance ToJSON DeleteTableColumnRequest where+        toJSON DeleteTableColumnRequest'{..}+          = object+              (catMaybes+                 [("tableCellLocation" .=) <$>+                    _dtcrTableCellLocation])++-- | The named ranges in the document, keyed by name.+--+-- /See:/ 'documentNamedRanges' smart constructor.+newtype DocumentNamedRanges =+  DocumentNamedRanges'+    { _dnrAddtional :: HashMap Text NamedRanges+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DocumentNamedRanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dnrAddtional'+documentNamedRanges+    :: HashMap Text NamedRanges -- ^ 'dnrAddtional'+    -> DocumentNamedRanges+documentNamedRanges pDnrAddtional_ =+  DocumentNamedRanges' {_dnrAddtional = _Coerce # pDnrAddtional_}+++dnrAddtional :: Lens' DocumentNamedRanges (HashMap Text NamedRanges)+dnrAddtional+  = lens _dnrAddtional (\ s a -> s{_dnrAddtional = a})+      . _Coerce++instance FromJSON DocumentNamedRanges where+        parseJSON+          = withObject "DocumentNamedRanges"+              (\ o -> DocumentNamedRanges' <$> (parseJSONObject o))++instance ToJSON DocumentNamedRanges where+        toJSON = toJSON . _dnrAddtional++-- | Location at the end of a body, header, footer or footnote. The location+-- is immediately before the last newline in the document segment.+--+-- /See:/ 'endOfSegmentLocation' smart constructor.+newtype EndOfSegmentLocation =+  EndOfSegmentLocation'+    { _eoslSegmentId :: Maybe Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EndOfSegmentLocation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eoslSegmentId'+endOfSegmentLocation+    :: EndOfSegmentLocation+endOfSegmentLocation = EndOfSegmentLocation' {_eoslSegmentId = Nothing}+++-- | The ID of the header, footer or footnote the location is in. An empty+-- segment ID signifies the document\'s body.+eoslSegmentId :: Lens' EndOfSegmentLocation (Maybe Text)+eoslSegmentId+  = lens _eoslSegmentId+      (\ s a -> s{_eoslSegmentId = a})++instance FromJSON EndOfSegmentLocation where+        parseJSON+          = withObject "EndOfSegmentLocation"+              (\ o ->+                 EndOfSegmentLocation' <$> (o .:? "segmentId"))++instance ToJSON EndOfSegmentLocation where+        toJSON EndOfSegmentLocation'{..}+          = object+              (catMaybes [("segmentId" .=) <$> _eoslSegmentId])++-- | The inline objects in the document, keyed by object ID.+--+-- /See:/ 'documentInlineObjects' smart constructor.+newtype DocumentInlineObjects =+  DocumentInlineObjects'+    { _dioAddtional :: HashMap Text InlineObject+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DocumentInlineObjects' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dioAddtional'+documentInlineObjects+    :: HashMap Text InlineObject -- ^ 'dioAddtional'+    -> DocumentInlineObjects+documentInlineObjects pDioAddtional_ =+  DocumentInlineObjects' {_dioAddtional = _Coerce # pDioAddtional_}+++dioAddtional :: Lens' DocumentInlineObjects (HashMap Text InlineObject)+dioAddtional+  = lens _dioAddtional (\ s a -> s{_dioAddtional = a})+      . _Coerce++instance FromJSON DocumentInlineObjects where+        parseJSON+          = withObject "DocumentInlineObjects"+              (\ o ->+                 DocumentInlineObjects' <$> (parseJSONObject o))++instance ToJSON DocumentInlineObjects where+        toJSON = toJSON . _dioAddtional++-- | The IDs of the positioned objects that are suggested to be attached to+-- this paragraph, keyed by suggestion ID.+--+-- /See:/ 'paragraphSuggestedPositionedObjectIds' smart constructor.+newtype ParagraphSuggestedPositionedObjectIds =+  ParagraphSuggestedPositionedObjectIds'+    { _pspoiAddtional :: HashMap Text ObjectReferences+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ParagraphSuggestedPositionedObjectIds' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pspoiAddtional'+paragraphSuggestedPositionedObjectIds+    :: HashMap Text ObjectReferences -- ^ 'pspoiAddtional'+    -> ParagraphSuggestedPositionedObjectIds+paragraphSuggestedPositionedObjectIds pPspoiAddtional_ =+  ParagraphSuggestedPositionedObjectIds'+    {_pspoiAddtional = _Coerce # pPspoiAddtional_}+++pspoiAddtional :: Lens' ParagraphSuggestedPositionedObjectIds (HashMap Text ObjectReferences)+pspoiAddtional+  = lens _pspoiAddtional+      (\ s a -> s{_pspoiAddtional = a})+      . _Coerce++instance FromJSON+           ParagraphSuggestedPositionedObjectIds+         where+        parseJSON+          = withObject "ParagraphSuggestedPositionedObjectIds"+              (\ o ->+                 ParagraphSuggestedPositionedObjectIds' <$>+                   (parseJSONObject o))++instance ToJSON ParagraphSuggestedPositionedObjectIds+         where+        toJSON = toJSON . _pspoiAddtional++-- | A reference to another portion of a document or an external URL+-- resource.+--+-- /See:/ 'link' smart constructor.+data Link =+  Link'+    { _lURL        :: !(Maybe Text)+    , _lHeadingId  :: !(Maybe Text)+    , _lBookmarkId :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Link' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lURL'+--+-- * 'lHeadingId'+--+-- * 'lBookmarkId'+link+    :: Link+link = Link' {_lURL = Nothing, _lHeadingId = Nothing, _lBookmarkId = Nothing}+++-- | An external URL.+lURL :: Lens' Link (Maybe Text)+lURL = lens _lURL (\ s a -> s{_lURL = a})++-- | The ID of a heading in this document.+lHeadingId :: Lens' Link (Maybe Text)+lHeadingId+  = lens _lHeadingId (\ s a -> s{_lHeadingId = a})++-- | The ID of a bookmark in this document.+lBookmarkId :: Lens' Link (Maybe Text)+lBookmarkId+  = lens _lBookmarkId (\ s a -> s{_lBookmarkId = a})++instance FromJSON Link where+        parseJSON+          = withObject "Link"+              (\ o ->+                 Link' <$>+                   (o .:? "url") <*> (o .:? "headingId") <*>+                     (o .:? "bookmarkId"))++instance ToJSON Link where+        toJSON Link'{..}+          = object+              (catMaybes+                 [("url" .=) <$> _lURL,+                  ("headingId" .=) <$> _lHeadingId,+                  ("bookmarkId" .=) <$> _lBookmarkId])++-- | The suggested text style changes to this AutoText, keyed by suggestion+-- ID.+--+-- /See:/ 'autoTextSuggestedTextStyleChanges' smart constructor.+newtype AutoTextSuggestedTextStyleChanges =+  AutoTextSuggestedTextStyleChanges'+    { _atstscAddtional :: HashMap Text SuggestedTextStyle+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AutoTextSuggestedTextStyleChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'atstscAddtional'+autoTextSuggestedTextStyleChanges+    :: HashMap Text SuggestedTextStyle -- ^ 'atstscAddtional'+    -> AutoTextSuggestedTextStyleChanges+autoTextSuggestedTextStyleChanges pAtstscAddtional_ =+  AutoTextSuggestedTextStyleChanges'+    {_atstscAddtional = _Coerce # pAtstscAddtional_}+++atstscAddtional :: Lens' AutoTextSuggestedTextStyleChanges (HashMap Text SuggestedTextStyle)+atstscAddtional+  = lens _atstscAddtional+      (\ s a -> s{_atstscAddtional = a})+      . _Coerce++instance FromJSON AutoTextSuggestedTextStyleChanges+         where+        parseJSON+          = withObject "AutoTextSuggestedTextStyleChanges"+              (\ o ->+                 AutoTextSuggestedTextStyleChanges' <$>+                   (parseJSONObject o))++instance ToJSON AutoTextSuggestedTextStyleChanges+         where+        toJSON = toJSON . _atstscAddtional++-- | Inserts an InlineObject containing an image at the given location.+--+-- /See:/ 'insertInlineImageRequest' smart constructor.+data InsertInlineImageRequest =+  InsertInlineImageRequest'+    { _iiirLocation             :: !(Maybe Location)+    , _iiirEndOfSegmentLocation :: !(Maybe EndOfSegmentLocation)+    , _iiirURI                  :: !(Maybe Text)+    , _iiirObjectSize           :: !(Maybe Size)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InsertInlineImageRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iiirLocation'+--+-- * 'iiirEndOfSegmentLocation'+--+-- * 'iiirURI'+--+-- * 'iiirObjectSize'+insertInlineImageRequest+    :: InsertInlineImageRequest+insertInlineImageRequest =+  InsertInlineImageRequest'+    { _iiirLocation = Nothing+    , _iiirEndOfSegmentLocation = Nothing+    , _iiirURI = Nothing+    , _iiirObjectSize = Nothing+    }+++-- | Inserts the image at a specific index in the document. The image must be+-- inserted inside the bounds of an existing Paragraph. For instance, it+-- cannot be inserted at a table\'s start index (i.e. between the table and+-- its preceding paragraph). Inline images cannot be inserted inside a+-- footnote or equation.+iiirLocation :: Lens' InsertInlineImageRequest (Maybe Location)+iiirLocation+  = lens _iiirLocation (\ s a -> s{_iiirLocation = a})++-- | Inserts the text at the end of a header, footer or the document body.+-- Inline images cannot be inserted inside a footnote.+iiirEndOfSegmentLocation :: Lens' InsertInlineImageRequest (Maybe EndOfSegmentLocation)+iiirEndOfSegmentLocation+  = lens _iiirEndOfSegmentLocation+      (\ s a -> s{_iiirEndOfSegmentLocation = a})++-- | The image URI. The image is fetched once at insertion time and a copy is+-- stored for display inside the document. Images must be less than 50MB in+-- size, cannot exceed 25 megapixels, and must be in one of PNG, JPEG, or+-- GIF format. The provided URI can be at most 2 kB in length. The URI+-- itself is saved with the image, and exposed via the+-- ImageProperties.content_uri field.+iiirURI :: Lens' InsertInlineImageRequest (Maybe Text)+iiirURI = lens _iiirURI (\ s a -> s{_iiirURI = a})++-- | The size that the image should appear as in the document. This property+-- is optional and the final size of the image in the document is+-- determined by the following rules: * If neither width nor height is+-- specified, then a default size of the image is calculated based on its+-- resolution. * If one dimension is specified then the other dimension is+-- calculated to preserve the aspect ratio of the image. * If both width+-- and height are specified, the image is scaled to fit within the provided+-- dimensions while maintaining its aspect ratio.+iiirObjectSize :: Lens' InsertInlineImageRequest (Maybe Size)+iiirObjectSize+  = lens _iiirObjectSize+      (\ s a -> s{_iiirObjectSize = a})++instance FromJSON InsertInlineImageRequest where+        parseJSON+          = withObject "InsertInlineImageRequest"+              (\ o ->+                 InsertInlineImageRequest' <$>+                   (o .:? "location") <*> (o .:? "endOfSegmentLocation")+                     <*> (o .:? "uri")+                     <*> (o .:? "objectSize"))++instance ToJSON InsertInlineImageRequest where+        toJSON InsertInlineImageRequest'{..}+          = object+              (catMaybes+                 [("location" .=) <$> _iiirLocation,+                  ("endOfSegmentLocation" .=) <$>+                    _iiirEndOfSegmentLocation,+                  ("uri" .=) <$> _iiirURI,+                  ("objectSize" .=) <$> _iiirObjectSize])++-- | A magnitude in a single direction in the specified units.+--+-- /See:/ 'dimension' smart constructor.+data Dimension =+  Dimension'+    { _dMagnitude :: !(Maybe (Textual Double))+    , _dUnit      :: !(Maybe DimensionUnit)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Dimension' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dMagnitude'+--+-- * 'dUnit'+dimension+    :: Dimension+dimension = Dimension' {_dMagnitude = Nothing, _dUnit = Nothing}+++-- | The magnitude.+dMagnitude :: Lens' Dimension (Maybe Double)+dMagnitude+  = lens _dMagnitude (\ s a -> s{_dMagnitude = a}) .+      mapping _Coerce++-- | The units for magnitude.+dUnit :: Lens' Dimension (Maybe DimensionUnit)+dUnit = lens _dUnit (\ s a -> s{_dUnit = a})++instance FromJSON Dimension where+        parseJSON+          = withObject "Dimension"+              (\ o ->+                 Dimension' <$>+                   (o .:? "magnitude") <*> (o .:? "unit"))++instance ToJSON Dimension where+        toJSON Dimension'{..}+          = object+              (catMaybes+                 [("magnitude" .=) <$> _dMagnitude,+                  ("unit" .=) <$> _dUnit])++-- | The style of the document.+--+-- /See:/ 'documentStyle' smart constructor.+data DocumentStyle =+  DocumentStyle'+    { _dsMarginTop                :: !(Maybe Dimension)+    , _dsDefaultFooterId          :: !(Maybe Text)+    , _dsFirstPageHeaderId        :: !(Maybe Text)+    , _dsFirstPageFooterId        :: !(Maybe Text)+    , _dsDefaultHeaderId          :: !(Maybe Text)+    , _dsUseEvenPageHeaderFooter  :: !(Maybe Bool)+    , _dsMarginLeft               :: !(Maybe Dimension)+    , _dsPageNumberStart          :: !(Maybe (Textual Int32))+    , _dsUseFirstPageHeaderFooter :: !(Maybe Bool)+    , _dsEvenPageFooterId         :: !(Maybe Text)+    , _dsPageSize                 :: !(Maybe Size)+    , _dsBackgRound               :: !(Maybe BackgRound)+    , _dsMarginRight              :: !(Maybe Dimension)+    , _dsMarginBottom             :: !(Maybe Dimension)+    , _dsEvenPageHeaderId         :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DocumentStyle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsMarginTop'+--+-- * 'dsDefaultFooterId'+--+-- * 'dsFirstPageHeaderId'+--+-- * 'dsFirstPageFooterId'+--+-- * 'dsDefaultHeaderId'+--+-- * 'dsUseEvenPageHeaderFooter'+--+-- * 'dsMarginLeft'+--+-- * 'dsPageNumberStart'+--+-- * 'dsUseFirstPageHeaderFooter'+--+-- * 'dsEvenPageFooterId'+--+-- * 'dsPageSize'+--+-- * 'dsBackgRound'+--+-- * 'dsMarginRight'+--+-- * 'dsMarginBottom'+--+-- * 'dsEvenPageHeaderId'+documentStyle+    :: DocumentStyle+documentStyle =+  DocumentStyle'+    { _dsMarginTop = Nothing+    , _dsDefaultFooterId = Nothing+    , _dsFirstPageHeaderId = Nothing+    , _dsFirstPageFooterId = Nothing+    , _dsDefaultHeaderId = Nothing+    , _dsUseEvenPageHeaderFooter = Nothing+    , _dsMarginLeft = Nothing+    , _dsPageNumberStart = Nothing+    , _dsUseFirstPageHeaderFooter = Nothing+    , _dsEvenPageFooterId = Nothing+    , _dsPageSize = Nothing+    , _dsBackgRound = Nothing+    , _dsMarginRight = Nothing+    , _dsMarginBottom = Nothing+    , _dsEvenPageHeaderId = Nothing+    }+++-- | The top page margin.+dsMarginTop :: Lens' DocumentStyle (Maybe Dimension)+dsMarginTop+  = lens _dsMarginTop (\ s a -> s{_dsMarginTop = a})++-- | The ID of the default footer. If not set, there is no default footer.+dsDefaultFooterId :: Lens' DocumentStyle (Maybe Text)+dsDefaultFooterId+  = lens _dsDefaultFooterId+      (\ s a -> s{_dsDefaultFooterId = a})++-- | The ID of the header used only for the first page. If not set then a+-- unique header for the first page does not exist. The value of+-- use_first_page_header_footer determines whether to use the+-- default_header_id or this value for the header on the first page. If not+-- set, there is no first page header.+dsFirstPageHeaderId :: Lens' DocumentStyle (Maybe Text)+dsFirstPageHeaderId+  = lens _dsFirstPageHeaderId+      (\ s a -> s{_dsFirstPageHeaderId = a})++-- | The ID of the footer used only for the first page. If not set then a+-- unique footer for the first page does not exist. The value of+-- use_first_page_header_footer determines whether to use the+-- default_footer_id or this value for the footer on the first page. If not+-- set, there is no first page footer.+dsFirstPageFooterId :: Lens' DocumentStyle (Maybe Text)+dsFirstPageFooterId+  = lens _dsFirstPageFooterId+      (\ s a -> s{_dsFirstPageFooterId = a})++-- | The ID of the default header. If not set, there is no default header.+dsDefaultHeaderId :: Lens' DocumentStyle (Maybe Text)+dsDefaultHeaderId+  = lens _dsDefaultHeaderId+      (\ s a -> s{_dsDefaultHeaderId = a})++-- | Indicates whether to use the even page header \/ footer IDs for the even+-- pages.+dsUseEvenPageHeaderFooter :: Lens' DocumentStyle (Maybe Bool)+dsUseEvenPageHeaderFooter+  = lens _dsUseEvenPageHeaderFooter+      (\ s a -> s{_dsUseEvenPageHeaderFooter = a})++-- | The left page margin.+dsMarginLeft :: Lens' DocumentStyle (Maybe Dimension)+dsMarginLeft+  = lens _dsMarginLeft (\ s a -> s{_dsMarginLeft = a})++-- | The page number from which to start counting the number of pages.+dsPageNumberStart :: Lens' DocumentStyle (Maybe Int32)+dsPageNumberStart+  = lens _dsPageNumberStart+      (\ s a -> s{_dsPageNumberStart = a})+      . mapping _Coerce++-- | Indicates whether to use the first page header \/ footer IDs for the+-- first page.+dsUseFirstPageHeaderFooter :: Lens' DocumentStyle (Maybe Bool)+dsUseFirstPageHeaderFooter+  = lens _dsUseFirstPageHeaderFooter+      (\ s a -> s{_dsUseFirstPageHeaderFooter = a})++-- | The ID of the footer used only for even pages. The value of+-- use_even_page_header_footer determines whether to use the+-- default_footer_id or this value for the footer on even pages. If not+-- set, there is no even page footer.+dsEvenPageFooterId :: Lens' DocumentStyle (Maybe Text)+dsEvenPageFooterId+  = lens _dsEvenPageFooterId+      (\ s a -> s{_dsEvenPageFooterId = a})++-- | The size of a page in the document.+dsPageSize :: Lens' DocumentStyle (Maybe Size)+dsPageSize+  = lens _dsPageSize (\ s a -> s{_dsPageSize = a})++-- | The background of the document.+dsBackgRound :: Lens' DocumentStyle (Maybe BackgRound)+dsBackgRound+  = lens _dsBackgRound (\ s a -> s{_dsBackgRound = a})++-- | The right page margin.+dsMarginRight :: Lens' DocumentStyle (Maybe Dimension)+dsMarginRight+  = lens _dsMarginRight+      (\ s a -> s{_dsMarginRight = a})++-- | The bottom page margin.+dsMarginBottom :: Lens' DocumentStyle (Maybe Dimension)+dsMarginBottom+  = lens _dsMarginBottom+      (\ s a -> s{_dsMarginBottom = a})++-- | The ID of the header used only for even pages. The value of+-- use_even_page_header_footer determines whether to use the+-- default_header_id or this value for the header on even pages. If not+-- set, there is no even page header.+dsEvenPageHeaderId :: Lens' DocumentStyle (Maybe Text)+dsEvenPageHeaderId+  = lens _dsEvenPageHeaderId+      (\ s a -> s{_dsEvenPageHeaderId = a})++instance FromJSON DocumentStyle where+        parseJSON+          = withObject "DocumentStyle"+              (\ o ->+                 DocumentStyle' <$>+                   (o .:? "marginTop") <*> (o .:? "defaultFooterId") <*>+                     (o .:? "firstPageHeaderId")+                     <*> (o .:? "firstPageFooterId")+                     <*> (o .:? "defaultHeaderId")+                     <*> (o .:? "useEvenPageHeaderFooter")+                     <*> (o .:? "marginLeft")+                     <*> (o .:? "pageNumberStart")+                     <*> (o .:? "useFirstPageHeaderFooter")+                     <*> (o .:? "evenPageFooterId")+                     <*> (o .:? "pageSize")+                     <*> (o .:? "background")+                     <*> (o .:? "marginRight")+                     <*> (o .:? "marginBottom")+                     <*> (o .:? "evenPageHeaderId"))++instance ToJSON DocumentStyle where+        toJSON DocumentStyle'{..}+          = object+              (catMaybes+                 [("marginTop" .=) <$> _dsMarginTop,+                  ("defaultFooterId" .=) <$> _dsDefaultFooterId,+                  ("firstPageHeaderId" .=) <$> _dsFirstPageHeaderId,+                  ("firstPageFooterId" .=) <$> _dsFirstPageFooterId,+                  ("defaultHeaderId" .=) <$> _dsDefaultHeaderId,+                  ("useEvenPageHeaderFooter" .=) <$>+                    _dsUseEvenPageHeaderFooter,+                  ("marginLeft" .=) <$> _dsMarginLeft,+                  ("pageNumberStart" .=) <$> _dsPageNumberStart,+                  ("useFirstPageHeaderFooter" .=) <$>+                    _dsUseFirstPageHeaderFooter,+                  ("evenPageFooterId" .=) <$> _dsEvenPageFooterId,+                  ("pageSize" .=) <$> _dsPageSize,+                  ("background" .=) <$> _dsBackgRound,+                  ("marginRight" .=) <$> _dsMarginRight,+                  ("marginBottom" .=) <$> _dsMarginBottom,+                  ("evenPageHeaderId" .=) <$> _dsEvenPageHeaderId])++-- | The document body. The body typically contains the full document+-- contents except for headers, footers and footnotes.+--+-- /See:/ 'body' smart constructor.+newtype Body =+  Body'+    { _bContent :: Maybe [StructuralElement]+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Body' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bContent'+body+    :: Body+body = Body' {_bContent = Nothing}+++-- | The contents of the body. The indexes for the body\'s content begin at+-- zero.+bContent :: Lens' Body [StructuralElement]+bContent+  = lens _bContent (\ s a -> s{_bContent = a}) .+      _Default+      . _Coerce++instance FromJSON Body where+        parseJSON+          = withObject "Body"+              (\ o -> Body' <$> (o .:? "content" .!= mempty))++instance ToJSON Body where+        toJSON Body'{..}+          = object (catMaybes [("content" .=) <$> _bContent])++-- | A mask that indicates which of the fields on the base ListProperties+-- have been changed in this suggestion. For any field set to true, there+-- is a new suggested value.+--+-- /See:/ 'listPropertiesSuggestionState' smart constructor.+newtype ListPropertiesSuggestionState =+  ListPropertiesSuggestionState'+    { _lpssNestingLevelsSuggestionStates :: Maybe [NestingLevelSuggestionState]+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListPropertiesSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lpssNestingLevelsSuggestionStates'+listPropertiesSuggestionState+    :: ListPropertiesSuggestionState+listPropertiesSuggestionState =+  ListPropertiesSuggestionState' {_lpssNestingLevelsSuggestionStates = Nothing}+++-- | A mask that indicates which of the fields on the corresponding+-- NestingLevel in nesting_levels have been changed in this suggestion. The+-- nesting level suggestion states are returned in ascending order of the+-- nesting level with the least nested returned first.+lpssNestingLevelsSuggestionStates :: Lens' ListPropertiesSuggestionState [NestingLevelSuggestionState]+lpssNestingLevelsSuggestionStates+  = lens _lpssNestingLevelsSuggestionStates+      (\ s a -> s{_lpssNestingLevelsSuggestionStates = a})+      . _Default+      . _Coerce++instance FromJSON ListPropertiesSuggestionState where+        parseJSON+          = withObject "ListPropertiesSuggestionState"+              (\ o ->+                 ListPropertiesSuggestionState' <$>+                   (o .:? "nestingLevelsSuggestionStates" .!= mempty))++instance ToJSON ListPropertiesSuggestionState where+        toJSON ListPropertiesSuggestionState'{..}+          = object+              (catMaybes+                 [("nestingLevelsSuggestionStates" .=) <$>+                    _lpssNestingLevelsSuggestionStates])++-- | The suggested changes to this paragraph\'s bullet.+--+-- /See:/ 'paragraphSuggestedBulletChanges' smart constructor.+newtype ParagraphSuggestedBulletChanges =+  ParagraphSuggestedBulletChanges'+    { _psbcAddtional :: HashMap Text SuggestedBullet+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ParagraphSuggestedBulletChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'psbcAddtional'+paragraphSuggestedBulletChanges+    :: HashMap Text SuggestedBullet -- ^ 'psbcAddtional'+    -> ParagraphSuggestedBulletChanges+paragraphSuggestedBulletChanges pPsbcAddtional_ =+  ParagraphSuggestedBulletChanges' {_psbcAddtional = _Coerce # pPsbcAddtional_}+++psbcAddtional :: Lens' ParagraphSuggestedBulletChanges (HashMap Text SuggestedBullet)+psbcAddtional+  = lens _psbcAddtional+      (\ s a -> s{_psbcAddtional = a})+      . _Coerce++instance FromJSON ParagraphSuggestedBulletChanges+         where+        parseJSON+          = withObject "ParagraphSuggestedBulletChanges"+              (\ o ->+                 ParagraphSuggestedBulletChanges' <$>+                   (parseJSONObject o))++instance ToJSON ParagraphSuggestedBulletChanges where+        toJSON = toJSON . _psbcAddtional++-- | A single response from an update.+--+-- /See:/ 'response' smart constructor.+data Response =+  Response'+    { _rReplaceAllText          :: !(Maybe ReplaceAllTextResponse)+    , _rCreateNamedRange        :: !(Maybe CreateNamedRangeResponse)+    , _rInsertInlineImage       :: !(Maybe InsertInlineImageResponse)+    , _rInsertInlineSheetsChart :: !(Maybe InsertInlineSheetsChartResponse)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Response' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rReplaceAllText'+--+-- * 'rCreateNamedRange'+--+-- * 'rInsertInlineImage'+--+-- * 'rInsertInlineSheetsChart'+response+    :: Response+response =+  Response'+    { _rReplaceAllText = Nothing+    , _rCreateNamedRange = Nothing+    , _rInsertInlineImage = Nothing+    , _rInsertInlineSheetsChart = Nothing+    }+++-- | The result of replacing text.+rReplaceAllText :: Lens' Response (Maybe ReplaceAllTextResponse)+rReplaceAllText+  = lens _rReplaceAllText+      (\ s a -> s{_rReplaceAllText = a})++-- | The result of creating a named range.+rCreateNamedRange :: Lens' Response (Maybe CreateNamedRangeResponse)+rCreateNamedRange+  = lens _rCreateNamedRange+      (\ s a -> s{_rCreateNamedRange = a})++-- | The result of inserting an inline image.+rInsertInlineImage :: Lens' Response (Maybe InsertInlineImageResponse)+rInsertInlineImage+  = lens _rInsertInlineImage+      (\ s a -> s{_rInsertInlineImage = a})++-- | The result of inserting an inline Google Sheets chart.+rInsertInlineSheetsChart :: Lens' Response (Maybe InsertInlineSheetsChartResponse)+rInsertInlineSheetsChart+  = lens _rInsertInlineSheetsChart+      (\ s a -> s{_rInsertInlineSheetsChart = a})++instance FromJSON Response where+        parseJSON+          = withObject "Response"+              (\ o ->+                 Response' <$>+                   (o .:? "replaceAllText") <*>+                     (o .:? "createNamedRange")+                     <*> (o .:? "insertInlineImage")+                     <*> (o .:? "insertInlineSheetsChart"))++instance ToJSON Response where+        toJSON Response'{..}+          = object+              (catMaybes+                 [("replaceAllText" .=) <$> _rReplaceAllText,+                  ("createNamedRange" .=) <$> _rCreateNamedRange,+                  ("insertInlineImage" .=) <$> _rInsertInlineImage,+                  ("insertInlineSheetsChart" .=) <$>+                    _rInsertInlineSheetsChart])++-- | A reference to a linked chart embedded from Google Sheets.+--+-- /See:/ 'sheetsChartReference' smart constructor.+data SheetsChartReference =+  SheetsChartReference'+    { _scrSpreadsheetId :: !(Maybe Text)+    , _scrChartId       :: !(Maybe (Textual Int32))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SheetsChartReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scrSpreadsheetId'+--+-- * 'scrChartId'+sheetsChartReference+    :: SheetsChartReference+sheetsChartReference =+  SheetsChartReference' {_scrSpreadsheetId = Nothing, _scrChartId = Nothing}+++-- | The ID of the Google Sheets spreadsheet that contains the source chart.+scrSpreadsheetId :: Lens' SheetsChartReference (Maybe Text)+scrSpreadsheetId+  = lens _scrSpreadsheetId+      (\ s a -> s{_scrSpreadsheetId = a})++-- | The ID of the specific chart in the Google Sheets spreadsheet that is+-- embedded.+scrChartId :: Lens' SheetsChartReference (Maybe Int32)+scrChartId+  = lens _scrChartId (\ s a -> s{_scrChartId = a}) .+      mapping _Coerce++instance FromJSON SheetsChartReference where+        parseJSON+          = withObject "SheetsChartReference"+              (\ o ->+                 SheetsChartReference' <$>+                   (o .:? "spreadsheetId") <*> (o .:? "chartId"))++instance ToJSON SheetsChartReference where+        toJSON SheetsChartReference'{..}+          = object+              (catMaybes+                 [("spreadsheetId" .=) <$> _scrSpreadsheetId,+                  ("chartId" .=) <$> _scrChartId])++-- | A color that can either be fully opaque or fully transparent.+--+-- /See:/ 'optionalColor' smart constructor.+newtype OptionalColor =+  OptionalColor'+    { _ocColor :: Maybe Color+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'OptionalColor' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ocColor'+optionalColor+    :: OptionalColor+optionalColor = OptionalColor' {_ocColor = Nothing}+++-- | If set, this will be used as an opaque color. If unset, this represents+-- a transparent color.+ocColor :: Lens' OptionalColor (Maybe Color)+ocColor = lens _ocColor (\ s a -> s{_ocColor = a})++instance FromJSON OptionalColor where+        parseJSON+          = withObject "OptionalColor"+              (\ o -> OptionalColor' <$> (o .:? "color"))++instance ToJSON OptionalColor where+        toJSON OptionalColor'{..}+          = object (catMaybes [("color" .=) <$> _ocColor])++-- | The result of creating a named range.+--+-- /See:/ 'createNamedRangeResponse' smart constructor.+newtype CreateNamedRangeResponse =+  CreateNamedRangeResponse'+    { _cnrrNamedRangeId :: Maybe Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateNamedRangeResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cnrrNamedRangeId'+createNamedRangeResponse+    :: CreateNamedRangeResponse+createNamedRangeResponse =+  CreateNamedRangeResponse' {_cnrrNamedRangeId = Nothing}+++-- | The ID of the created named range.+cnrrNamedRangeId :: Lens' CreateNamedRangeResponse (Maybe Text)+cnrrNamedRangeId+  = lens _cnrrNamedRangeId+      (\ s a -> s{_cnrrNamedRangeId = a})++instance FromJSON CreateNamedRangeResponse where+        parseJSON+          = withObject "CreateNamedRangeResponse"+              (\ o ->+                 CreateNamedRangeResponse' <$> (o .:? "namedRangeId"))++instance ToJSON CreateNamedRangeResponse where+        toJSON CreateNamedRangeResponse'{..}+          = object+              (catMaybes+                 [("namedRangeId" .=) <$> _cnrrNamedRangeId])++-- | A suggested change to a Bullet.+--+-- /See:/ 'suggestedBullet' smart constructor.+data SuggestedBullet =+  SuggestedBullet'+    { _sbBullet                :: !(Maybe Bullet)+    , _sbBulletSuggestionState :: !(Maybe BulletSuggestionState)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SuggestedBullet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sbBullet'+--+-- * 'sbBulletSuggestionState'+suggestedBullet+    :: SuggestedBullet+suggestedBullet =+  SuggestedBullet' {_sbBullet = Nothing, _sbBulletSuggestionState = Nothing}+++-- | A Bullet that only includes the changes made in this suggestion. This+-- can be used along with the bullet_suggestion_state to see which fields+-- have changed and their new values.+sbBullet :: Lens' SuggestedBullet (Maybe Bullet)+sbBullet = lens _sbBullet (\ s a -> s{_sbBullet = a})++-- | A mask that indicates which of the fields on the base Bullet have been+-- changed in this suggestion.+sbBulletSuggestionState :: Lens' SuggestedBullet (Maybe BulletSuggestionState)+sbBulletSuggestionState+  = lens _sbBulletSuggestionState+      (\ s a -> s{_sbBulletSuggestionState = a})++instance FromJSON SuggestedBullet where+        parseJSON+          = withObject "SuggestedBullet"+              (\ o ->+                 SuggestedBullet' <$>+                   (o .:? "bullet") <*> (o .:? "bulletSuggestionState"))++instance ToJSON SuggestedBullet where+        toJSON SuggestedBullet'{..}+          = object+              (catMaybes+                 [("bullet" .=) <$> _sbBullet,+                  ("bulletSuggestionState" .=) <$>+                    _sbBulletSuggestionState])++-- | An embedded object in the document.+--+-- /See:/ 'embeddedObject' smart constructor.+data EmbeddedObject =+  EmbeddedObject'+    { _eoMarginTop                 :: !(Maybe Dimension)+    , _eoSize                      :: !(Maybe Size)+    , _eoLinkedContentReference    :: !(Maybe LinkedContentReference)+    , _eoImageProperties           :: !(Maybe ImageProperties)+    , _eoEmbeddedObjectBOrder      :: !(Maybe EmbeddedObjectBOrder)+    , _eoEmbeddedDrawingProperties :: !(Maybe EmbeddedDrawingProperties)+    , _eoMarginLeft                :: !(Maybe Dimension)+    , _eoTitle                     :: !(Maybe Text)+    , _eoMarginRight               :: !(Maybe Dimension)+    , _eoDescription               :: !(Maybe Text)+    , _eoMarginBottom              :: !(Maybe Dimension)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EmbeddedObject' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eoMarginTop'+--+-- * 'eoSize'+--+-- * 'eoLinkedContentReference'+--+-- * 'eoImageProperties'+--+-- * 'eoEmbeddedObjectBOrder'+--+-- * 'eoEmbeddedDrawingProperties'+--+-- * 'eoMarginLeft'+--+-- * 'eoTitle'+--+-- * 'eoMarginRight'+--+-- * 'eoDescription'+--+-- * 'eoMarginBottom'+embeddedObject+    :: EmbeddedObject+embeddedObject =+  EmbeddedObject'+    { _eoMarginTop = Nothing+    , _eoSize = Nothing+    , _eoLinkedContentReference = Nothing+    , _eoImageProperties = Nothing+    , _eoEmbeddedObjectBOrder = Nothing+    , _eoEmbeddedDrawingProperties = Nothing+    , _eoMarginLeft = Nothing+    , _eoTitle = Nothing+    , _eoMarginRight = Nothing+    , _eoDescription = Nothing+    , _eoMarginBottom = Nothing+    }+++-- | The top margin of the embedded object.+eoMarginTop :: Lens' EmbeddedObject (Maybe Dimension)+eoMarginTop+  = lens _eoMarginTop (\ s a -> s{_eoMarginTop = a})++-- | The size of the embedded object.+eoSize :: Lens' EmbeddedObject (Maybe Size)+eoSize = lens _eoSize (\ s a -> s{_eoSize = a})++-- | A reference to the external linked source content. For example, it+-- contains a reference to the source Sheets chart when the embedded object+-- is a linked chart. If unset, then the embedded object is not linked.+eoLinkedContentReference :: Lens' EmbeddedObject (Maybe LinkedContentReference)+eoLinkedContentReference+  = lens _eoLinkedContentReference+      (\ s a -> s{_eoLinkedContentReference = a})++-- | The properties of an image.+eoImageProperties :: Lens' EmbeddedObject (Maybe ImageProperties)+eoImageProperties+  = lens _eoImageProperties+      (\ s a -> s{_eoImageProperties = a})++-- | The border of the embedded object.+eoEmbeddedObjectBOrder :: Lens' EmbeddedObject (Maybe EmbeddedObjectBOrder)+eoEmbeddedObjectBOrder+  = lens _eoEmbeddedObjectBOrder+      (\ s a -> s{_eoEmbeddedObjectBOrder = a})++-- | The properties of an embedded drawing.+eoEmbeddedDrawingProperties :: Lens' EmbeddedObject (Maybe EmbeddedDrawingProperties)+eoEmbeddedDrawingProperties+  = lens _eoEmbeddedDrawingProperties+      (\ s a -> s{_eoEmbeddedDrawingProperties = a})++-- | The left margin of the embedded object.+eoMarginLeft :: Lens' EmbeddedObject (Maybe Dimension)+eoMarginLeft+  = lens _eoMarginLeft (\ s a -> s{_eoMarginLeft = a})++-- | The title of the embedded object. The \`title\` and \`description\` are+-- both combined to display alt text.+eoTitle :: Lens' EmbeddedObject (Maybe Text)+eoTitle = lens _eoTitle (\ s a -> s{_eoTitle = a})++-- | The right margin of the embedded object.+eoMarginRight :: Lens' EmbeddedObject (Maybe Dimension)+eoMarginRight+  = lens _eoMarginRight+      (\ s a -> s{_eoMarginRight = a})++-- | The description of the embedded object. The \`title\` and+-- \`description\` are both combined to display alt text.+eoDescription :: Lens' EmbeddedObject (Maybe Text)+eoDescription+  = lens _eoDescription+      (\ s a -> s{_eoDescription = a})++-- | The bottom margin of the embedded object.+eoMarginBottom :: Lens' EmbeddedObject (Maybe Dimension)+eoMarginBottom+  = lens _eoMarginBottom+      (\ s a -> s{_eoMarginBottom = a})++instance FromJSON EmbeddedObject where+        parseJSON+          = withObject "EmbeddedObject"+              (\ o ->+                 EmbeddedObject' <$>+                   (o .:? "marginTop") <*> (o .:? "size") <*>+                     (o .:? "linkedContentReference")+                     <*> (o .:? "imageProperties")+                     <*> (o .:? "embeddedObjectBorder")+                     <*> (o .:? "embeddedDrawingProperties")+                     <*> (o .:? "marginLeft")+                     <*> (o .:? "title")+                     <*> (o .:? "marginRight")+                     <*> (o .:? "description")+                     <*> (o .:? "marginBottom"))++instance ToJSON EmbeddedObject where+        toJSON EmbeddedObject'{..}+          = object+              (catMaybes+                 [("marginTop" .=) <$> _eoMarginTop,+                  ("size" .=) <$> _eoSize,+                  ("linkedContentReference" .=) <$>+                    _eoLinkedContentReference,+                  ("imageProperties" .=) <$> _eoImageProperties,+                  ("embeddedObjectBorder" .=) <$>+                    _eoEmbeddedObjectBOrder,+                  ("embeddedDrawingProperties" .=) <$>+                    _eoEmbeddedDrawingProperties,+                  ("marginLeft" .=) <$> _eoMarginLeft,+                  ("title" .=) <$> _eoTitle,+                  ("marginRight" .=) <$> _eoMarginRight,+                  ("description" .=) <$> _eoDescription,+                  ("marginBottom" .=) <$> _eoMarginBottom])++-- | The result of replacing text.+--+-- /See:/ 'replaceAllTextResponse' smart constructor.+newtype ReplaceAllTextResponse =+  ReplaceAllTextResponse'+    { _ratrOccurrencesChanged :: Maybe (Textual Int32)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReplaceAllTextResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ratrOccurrencesChanged'+replaceAllTextResponse+    :: ReplaceAllTextResponse+replaceAllTextResponse =+  ReplaceAllTextResponse' {_ratrOccurrencesChanged = Nothing}+++-- | The number of occurrences changed by replacing all text.+ratrOccurrencesChanged :: Lens' ReplaceAllTextResponse (Maybe Int32)+ratrOccurrencesChanged+  = lens _ratrOccurrencesChanged+      (\ s a -> s{_ratrOccurrencesChanged = a})+      . mapping _Coerce++instance FromJSON ReplaceAllTextResponse where+        parseJSON+          = withObject "ReplaceAllTextResponse"+              (\ o ->+                 ReplaceAllTextResponse' <$>+                   (o .:? "occurrencesChanged"))++instance ToJSON ReplaceAllTextResponse where+        toJSON ReplaceAllTextResponse'{..}+          = object+              (catMaybes+                 [("occurrencesChanged" .=) <$>+                    _ratrOccurrencesChanged])++-- | A mask that indicates which of the fields on the base DocumentStyle have+-- been changed in this suggestion. For any field set to true, there is a+-- new suggested value.+--+-- /See:/ 'documentStyleSuggestionState' smart constructor.+data DocumentStyleSuggestionState =+  DocumentStyleSuggestionState'+    { _dsssFirstPageFooterIdSuggested        :: !(Maybe Bool)+    , _dsssDefaultHeaderIdSuggested          :: !(Maybe Bool)+    , _dsssUseEvenPageHeaderFooterSuggested  :: !(Maybe Bool)+    , _dsssPageNumberStartSuggested          :: !(Maybe Bool)+    , _dsssBackgRoundSuggestionState         :: !(Maybe BackgRoundSuggestionState)+    , _dsssUseFirstPageHeaderFooterSuggested :: !(Maybe Bool)+    , _dsssPageSizeSuggestionState           :: !(Maybe SizeSuggestionState)+    , _dsssMarginTopSuggested                :: !(Maybe Bool)+    , _dsssEvenPageFooterIdSuggested         :: !(Maybe Bool)+    , _dsssMarginBottomSuggested             :: !(Maybe Bool)+    , _dsssEvenPageHeaderIdSuggested         :: !(Maybe Bool)+    , _dsssMarginLeftSuggested               :: !(Maybe Bool)+    , _dsssMarginRightSuggested              :: !(Maybe Bool)+    , _dsssFirstPageHeaderIdSuggested        :: !(Maybe Bool)+    , _dsssDefaultFooterIdSuggested          :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DocumentStyleSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsssFirstPageFooterIdSuggested'+--+-- * 'dsssDefaultHeaderIdSuggested'+--+-- * 'dsssUseEvenPageHeaderFooterSuggested'+--+-- * 'dsssPageNumberStartSuggested'+--+-- * 'dsssBackgRoundSuggestionState'+--+-- * 'dsssUseFirstPageHeaderFooterSuggested'+--+-- * 'dsssPageSizeSuggestionState'+--+-- * 'dsssMarginTopSuggested'+--+-- * 'dsssEvenPageFooterIdSuggested'+--+-- * 'dsssMarginBottomSuggested'+--+-- * 'dsssEvenPageHeaderIdSuggested'+--+-- * 'dsssMarginLeftSuggested'+--+-- * 'dsssMarginRightSuggested'+--+-- * 'dsssFirstPageHeaderIdSuggested'+--+-- * 'dsssDefaultFooterIdSuggested'+documentStyleSuggestionState+    :: DocumentStyleSuggestionState+documentStyleSuggestionState =+  DocumentStyleSuggestionState'+    { _dsssFirstPageFooterIdSuggested = Nothing+    , _dsssDefaultHeaderIdSuggested = Nothing+    , _dsssUseEvenPageHeaderFooterSuggested = Nothing+    , _dsssPageNumberStartSuggested = Nothing+    , _dsssBackgRoundSuggestionState = Nothing+    , _dsssUseFirstPageHeaderFooterSuggested = Nothing+    , _dsssPageSizeSuggestionState = Nothing+    , _dsssMarginTopSuggested = Nothing+    , _dsssEvenPageFooterIdSuggested = Nothing+    , _dsssMarginBottomSuggested = Nothing+    , _dsssEvenPageHeaderIdSuggested = Nothing+    , _dsssMarginLeftSuggested = Nothing+    , _dsssMarginRightSuggested = Nothing+    , _dsssFirstPageHeaderIdSuggested = Nothing+    , _dsssDefaultFooterIdSuggested = Nothing+    }+++-- | Indicates if there was a suggested change to first_page_footer_id.+dsssFirstPageFooterIdSuggested :: Lens' DocumentStyleSuggestionState (Maybe Bool)+dsssFirstPageFooterIdSuggested+  = lens _dsssFirstPageFooterIdSuggested+      (\ s a -> s{_dsssFirstPageFooterIdSuggested = a})++-- | Indicates if there was a suggested change to default_header_id.+dsssDefaultHeaderIdSuggested :: Lens' DocumentStyleSuggestionState (Maybe Bool)+dsssDefaultHeaderIdSuggested+  = lens _dsssDefaultHeaderIdSuggested+      (\ s a -> s{_dsssDefaultHeaderIdSuggested = a})++-- | Indicates if there was a suggested change to+-- use_even_page_header_footer.+dsssUseEvenPageHeaderFooterSuggested :: Lens' DocumentStyleSuggestionState (Maybe Bool)+dsssUseEvenPageHeaderFooterSuggested+  = lens _dsssUseEvenPageHeaderFooterSuggested+      (\ s a ->+         s{_dsssUseEvenPageHeaderFooterSuggested = a})++-- | Indicates if there was a suggested change to page_number_start.+dsssPageNumberStartSuggested :: Lens' DocumentStyleSuggestionState (Maybe Bool)+dsssPageNumberStartSuggested+  = lens _dsssPageNumberStartSuggested+      (\ s a -> s{_dsssPageNumberStartSuggested = a})++-- | A mask that indicates which of the fields in background have been+-- changed in this suggestion.+dsssBackgRoundSuggestionState :: Lens' DocumentStyleSuggestionState (Maybe BackgRoundSuggestionState)+dsssBackgRoundSuggestionState+  = lens _dsssBackgRoundSuggestionState+      (\ s a -> s{_dsssBackgRoundSuggestionState = a})++-- | Indicates if there was a suggested change to+-- use_first_page_header_footer.+dsssUseFirstPageHeaderFooterSuggested :: Lens' DocumentStyleSuggestionState (Maybe Bool)+dsssUseFirstPageHeaderFooterSuggested+  = lens _dsssUseFirstPageHeaderFooterSuggested+      (\ s a ->+         s{_dsssUseFirstPageHeaderFooterSuggested = a})++-- | A mask that indicates which of the fields in size have been changed in+-- this suggestion.+dsssPageSizeSuggestionState :: Lens' DocumentStyleSuggestionState (Maybe SizeSuggestionState)+dsssPageSizeSuggestionState+  = lens _dsssPageSizeSuggestionState+      (\ s a -> s{_dsssPageSizeSuggestionState = a})++-- | Indicates if there was a suggested change to margin_top.+dsssMarginTopSuggested :: Lens' DocumentStyleSuggestionState (Maybe Bool)+dsssMarginTopSuggested+  = lens _dsssMarginTopSuggested+      (\ s a -> s{_dsssMarginTopSuggested = a})++-- | Indicates if there was a suggested change to even_page_footer_id.+dsssEvenPageFooterIdSuggested :: Lens' DocumentStyleSuggestionState (Maybe Bool)+dsssEvenPageFooterIdSuggested+  = lens _dsssEvenPageFooterIdSuggested+      (\ s a -> s{_dsssEvenPageFooterIdSuggested = a})++-- | Indicates if there was a suggested change to margin_bottom.+dsssMarginBottomSuggested :: Lens' DocumentStyleSuggestionState (Maybe Bool)+dsssMarginBottomSuggested+  = lens _dsssMarginBottomSuggested+      (\ s a -> s{_dsssMarginBottomSuggested = a})++-- | Indicates if there was a suggested change to even_page_header_id.+dsssEvenPageHeaderIdSuggested :: Lens' DocumentStyleSuggestionState (Maybe Bool)+dsssEvenPageHeaderIdSuggested+  = lens _dsssEvenPageHeaderIdSuggested+      (\ s a -> s{_dsssEvenPageHeaderIdSuggested = a})++-- | Indicates if there was a suggested change to margin_left.+dsssMarginLeftSuggested :: Lens' DocumentStyleSuggestionState (Maybe Bool)+dsssMarginLeftSuggested+  = lens _dsssMarginLeftSuggested+      (\ s a -> s{_dsssMarginLeftSuggested = a})++-- | Indicates if there was a suggested change to margin_right.+dsssMarginRightSuggested :: Lens' DocumentStyleSuggestionState (Maybe Bool)+dsssMarginRightSuggested+  = lens _dsssMarginRightSuggested+      (\ s a -> s{_dsssMarginRightSuggested = a})++-- | Indicates if there was a suggested change to first_page_header_id.+dsssFirstPageHeaderIdSuggested :: Lens' DocumentStyleSuggestionState (Maybe Bool)+dsssFirstPageHeaderIdSuggested+  = lens _dsssFirstPageHeaderIdSuggested+      (\ s a -> s{_dsssFirstPageHeaderIdSuggested = a})++-- | Indicates if there was a suggested change to default_footer_id.+dsssDefaultFooterIdSuggested :: Lens' DocumentStyleSuggestionState (Maybe Bool)+dsssDefaultFooterIdSuggested+  = lens _dsssDefaultFooterIdSuggested+      (\ s a -> s{_dsssDefaultFooterIdSuggested = a})++instance FromJSON DocumentStyleSuggestionState where+        parseJSON+          = withObject "DocumentStyleSuggestionState"+              (\ o ->+                 DocumentStyleSuggestionState' <$>+                   (o .:? "firstPageFooterIdSuggested") <*>+                     (o .:? "defaultHeaderIdSuggested")+                     <*> (o .:? "useEvenPageHeaderFooterSuggested")+                     <*> (o .:? "pageNumberStartSuggested")+                     <*> (o .:? "backgroundSuggestionState")+                     <*> (o .:? "useFirstPageHeaderFooterSuggested")+                     <*> (o .:? "pageSizeSuggestionState")+                     <*> (o .:? "marginTopSuggested")+                     <*> (o .:? "evenPageFooterIdSuggested")+                     <*> (o .:? "marginBottomSuggested")+                     <*> (o .:? "evenPageHeaderIdSuggested")+                     <*> (o .:? "marginLeftSuggested")+                     <*> (o .:? "marginRightSuggested")+                     <*> (o .:? "firstPageHeaderIdSuggested")+                     <*> (o .:? "defaultFooterIdSuggested"))++instance ToJSON DocumentStyleSuggestionState where+        toJSON DocumentStyleSuggestionState'{..}+          = object+              (catMaybes+                 [("firstPageFooterIdSuggested" .=) <$>+                    _dsssFirstPageFooterIdSuggested,+                  ("defaultHeaderIdSuggested" .=) <$>+                    _dsssDefaultHeaderIdSuggested,+                  ("useEvenPageHeaderFooterSuggested" .=) <$>+                    _dsssUseEvenPageHeaderFooterSuggested,+                  ("pageNumberStartSuggested" .=) <$>+                    _dsssPageNumberStartSuggested,+                  ("backgroundSuggestionState" .=) <$>+                    _dsssBackgRoundSuggestionState,+                  ("useFirstPageHeaderFooterSuggested" .=) <$>+                    _dsssUseFirstPageHeaderFooterSuggested,+                  ("pageSizeSuggestionState" .=) <$>+                    _dsssPageSizeSuggestionState,+                  ("marginTopSuggested" .=) <$>+                    _dsssMarginTopSuggested,+                  ("evenPageFooterIdSuggested" .=) <$>+                    _dsssEvenPageFooterIdSuggested,+                  ("marginBottomSuggested" .=) <$>+                    _dsssMarginBottomSuggested,+                  ("evenPageHeaderIdSuggested" .=) <$>+                    _dsssEvenPageHeaderIdSuggested,+                  ("marginLeftSuggested" .=) <$>+                    _dsssMarginLeftSuggested,+                  ("marginRightSuggested" .=) <$>+                    _dsssMarginRightSuggested,+                  ("firstPageHeaderIdSuggested" .=) <$>+                    _dsssFirstPageHeaderIdSuggested,+                  ("defaultFooterIdSuggested" .=) <$>+                    _dsssDefaultFooterIdSuggested])++-- | A reference to the external linked source content.+--+-- /See:/ 'linkedContentReference' smart constructor.+newtype LinkedContentReference =+  LinkedContentReference'+    { _lcrSheetsChartReference :: Maybe SheetsChartReference+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'LinkedContentReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lcrSheetsChartReference'+linkedContentReference+    :: LinkedContentReference+linkedContentReference =+  LinkedContentReference' {_lcrSheetsChartReference = Nothing}+++-- | A reference to the linked chart.+lcrSheetsChartReference :: Lens' LinkedContentReference (Maybe SheetsChartReference)+lcrSheetsChartReference+  = lens _lcrSheetsChartReference+      (\ s a -> s{_lcrSheetsChartReference = a})++instance FromJSON LinkedContentReference where+        parseJSON+          = withObject "LinkedContentReference"+              (\ o ->+                 LinkedContentReference' <$>+                   (o .:? "sheetsChartReference"))++instance ToJSON LinkedContentReference where+        toJSON LinkedContentReference'{..}+          = object+              (catMaybes+                 [("sheetsChartReference" .=) <$>+                    _lcrSheetsChartReference])++-- | The shading of a paragraph.+--+-- /See:/ 'shading' smart constructor.+newtype Shading =+  Shading'+    { _sBackgRoundColor :: Maybe OptionalColor+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Shading' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sBackgRoundColor'+shading+    :: Shading+shading = Shading' {_sBackgRoundColor = Nothing}+++-- | The background color of this paragraph shading.+sBackgRoundColor :: Lens' Shading (Maybe OptionalColor)+sBackgRoundColor+  = lens _sBackgRoundColor+      (\ s a -> s{_sBackgRoundColor = a})++instance FromJSON Shading where+        parseJSON+          = withObject "Shading"+              (\ o -> Shading' <$> (o .:? "backgroundColor"))++instance ToJSON Shading where+        toJSON Shading'{..}+          = object+              (catMaybes+                 [("backgroundColor" .=) <$> _sBackgRoundColor])++-- | A mask that indicates which of the fields on the base+-- InlineObjectProperties have been changed in this suggestion. For any+-- field set to true, there is a new suggested value.+--+-- /See:/ 'inlineObjectPropertiesSuggestionState' smart constructor.+newtype InlineObjectPropertiesSuggestionState =+  InlineObjectPropertiesSuggestionState'+    { _iopssEmbeddedObjectSuggestionState :: Maybe EmbeddedObjectSuggestionState+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InlineObjectPropertiesSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iopssEmbeddedObjectSuggestionState'+inlineObjectPropertiesSuggestionState+    :: InlineObjectPropertiesSuggestionState+inlineObjectPropertiesSuggestionState =+  InlineObjectPropertiesSuggestionState'+    {_iopssEmbeddedObjectSuggestionState = Nothing}+++-- | A mask that indicates which of the fields in embedded_object have been+-- changed in this suggestion.+iopssEmbeddedObjectSuggestionState :: Lens' InlineObjectPropertiesSuggestionState (Maybe EmbeddedObjectSuggestionState)+iopssEmbeddedObjectSuggestionState+  = lens _iopssEmbeddedObjectSuggestionState+      (\ s a -> s{_iopssEmbeddedObjectSuggestionState = a})++instance FromJSON+           InlineObjectPropertiesSuggestionState+         where+        parseJSON+          = withObject "InlineObjectPropertiesSuggestionState"+              (\ o ->+                 InlineObjectPropertiesSuggestionState' <$>+                   (o .:? "embeddedObjectSuggestionState"))++instance ToJSON InlineObjectPropertiesSuggestionState+         where+        toJSON InlineObjectPropertiesSuggestionState'{..}+          = object+              (catMaybes+                 [("embeddedObjectSuggestionState" .=) <$>+                    _iopssEmbeddedObjectSuggestionState])++-- | The suggested text style changes to this PageBreak, keyed by suggestion+-- ID.+--+-- /See:/ 'pageBreakSuggestedTextStyleChanges' smart constructor.+newtype PageBreakSuggestedTextStyleChanges =+  PageBreakSuggestedTextStyleChanges'+    { _pbstscAddtional :: HashMap Text SuggestedTextStyle+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PageBreakSuggestedTextStyleChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pbstscAddtional'+pageBreakSuggestedTextStyleChanges+    :: HashMap Text SuggestedTextStyle -- ^ 'pbstscAddtional'+    -> PageBreakSuggestedTextStyleChanges+pageBreakSuggestedTextStyleChanges pPbstscAddtional_ =+  PageBreakSuggestedTextStyleChanges'+    {_pbstscAddtional = _Coerce # pPbstscAddtional_}+++pbstscAddtional :: Lens' PageBreakSuggestedTextStyleChanges (HashMap Text SuggestedTextStyle)+pbstscAddtional+  = lens _pbstscAddtional+      (\ s a -> s{_pbstscAddtional = a})+      . _Coerce++instance FromJSON PageBreakSuggestedTextStyleChanges+         where+        parseJSON+          = withObject "PageBreakSuggestedTextStyleChanges"+              (\ o ->+                 PageBreakSuggestedTextStyleChanges' <$>+                   (parseJSONObject o))++instance ToJSON PageBreakSuggestedTextStyleChanges+         where+        toJSON = toJSON . _pbstscAddtional++-- | The lists in the document, keyed by list ID.+--+-- /See:/ 'documentLists' smart constructor.+newtype DocumentLists =+  DocumentLists'+    { _dlAddtional :: HashMap Text List+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DocumentLists' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlAddtional'+documentLists+    :: HashMap Text List -- ^ 'dlAddtional'+    -> DocumentLists+documentLists pDlAddtional_ =+  DocumentLists' {_dlAddtional = _Coerce # pDlAddtional_}+++dlAddtional :: Lens' DocumentLists (HashMap Text List)+dlAddtional+  = lens _dlAddtional (\ s a -> s{_dlAddtional = a}) .+      _Coerce++instance FromJSON DocumentLists where+        parseJSON+          = withObject "DocumentLists"+              (\ o -> DocumentLists' <$> (parseJSONObject o))++instance ToJSON DocumentLists where+        toJSON = toJSON . _dlAddtional++-- | Deletes content from the document.+--+-- /See:/ 'deleteContentRangeRequest' smart constructor.+newtype DeleteContentRangeRequest =+  DeleteContentRangeRequest'+    { _dcrrRange :: Maybe Range+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteContentRangeRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcrrRange'+deleteContentRangeRequest+    :: DeleteContentRangeRequest+deleteContentRangeRequest = DeleteContentRangeRequest' {_dcrrRange = Nothing}+++-- | The range of content to delete. Deleting text that crosses a paragraph+-- boundary may result in changes to paragraph styles, lists, positioned+-- objects and bookmarks as the two paragraphs are merged. Attempting to+-- delete certain ranges can result in an invalid document structure in+-- which case a 400 bad request error is returned. Some examples of invalid+-- delete requests include: * Deleting one code unit of a surrogate pair. *+-- Deleting the last newline character of a Body, Header, Footer, Footnote,+-- TableCell or TableOfContents. * Deleting the start or end of a Table,+-- TableOfContents or Equation without deleting the entire element. *+-- Deleting the newline character before a Table, TableOfContents or+-- SectionBreak without deleting the element. * Deleting individual rows or+-- cells of a table. Deleting the content within a table cell is allowed.+dcrrRange :: Lens' DeleteContentRangeRequest (Maybe Range)+dcrrRange+  = lens _dcrrRange (\ s a -> s{_dcrrRange = a})++instance FromJSON DeleteContentRangeRequest where+        parseJSON+          = withObject "DeleteContentRangeRequest"+              (\ o ->+                 DeleteContentRangeRequest' <$> (o .:? "range"))++instance ToJSON DeleteContentRangeRequest where+        toJSON DeleteContentRangeRequest'{..}+          = object (catMaybes [("range" .=) <$> _dcrrRange])++-- | Describes the bullet of a paragraph.+--+-- /See:/ 'bullet' smart constructor.+data Bullet =+  Bullet'+    { _bListId       :: !(Maybe Text)+    , _bTextStyle    :: !(Maybe TextStyle)+    , _bNestingLevel :: !(Maybe (Textual Int32))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Bullet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bListId'+--+-- * 'bTextStyle'+--+-- * 'bNestingLevel'+bullet+    :: Bullet+bullet =+  Bullet' {_bListId = Nothing, _bTextStyle = Nothing, _bNestingLevel = Nothing}+++-- | The ID of the list this paragraph belongs to.+bListId :: Lens' Bullet (Maybe Text)+bListId = lens _bListId (\ s a -> s{_bListId = a})++-- | The paragraph specific text style applied to this bullet.+bTextStyle :: Lens' Bullet (Maybe TextStyle)+bTextStyle+  = lens _bTextStyle (\ s a -> s{_bTextStyle = a})++-- | The nesting level of this paragraph in the list.+bNestingLevel :: Lens' Bullet (Maybe Int32)+bNestingLevel+  = lens _bNestingLevel+      (\ s a -> s{_bNestingLevel = a})+      . mapping _Coerce++instance FromJSON Bullet where+        parseJSON+          = withObject "Bullet"+              (\ o ->+                 Bullet' <$>+                   (o .:? "listId") <*> (o .:? "textStyle") <*>+                     (o .:? "nestingLevel"))++instance ToJSON Bullet where+        toJSON Bullet'{..}+          = object+              (catMaybes+                 [("listId" .=) <$> _bListId,+                  ("textStyle" .=) <$> _bTextStyle,+                  ("nestingLevel" .=) <$> _bNestingLevel])++-- | A StructuralElement representing a paragraph. A paragraph is a range of+-- content that is terminated with a newline character.+--+-- /See:/ 'paragraph' smart constructor.+data Paragraph =+  Paragraph'+    { _pBullet                         :: !(Maybe Bullet)+    , _pSuggestedBulletChanges         :: !(Maybe ParagraphSuggestedBulletChanges)+    , _pSuggestedPositionedObjectIds   :: !(Maybe ParagraphSuggestedPositionedObjectIds)+    , _pSuggestedParagraphStyleChanges :: !(Maybe ParagraphSuggestedParagraphStyleChanges)+    , _pElements                       :: !(Maybe [ParagraphElement])+    , _pPositionedObjectIds            :: !(Maybe [Text])+    , _pParagraphStyle                 :: !(Maybe ParagraphStyle)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Paragraph' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pBullet'+--+-- * 'pSuggestedBulletChanges'+--+-- * 'pSuggestedPositionedObjectIds'+--+-- * 'pSuggestedParagraphStyleChanges'+--+-- * 'pElements'+--+-- * 'pPositionedObjectIds'+--+-- * 'pParagraphStyle'+paragraph+    :: Paragraph+paragraph =+  Paragraph'+    { _pBullet = Nothing+    , _pSuggestedBulletChanges = Nothing+    , _pSuggestedPositionedObjectIds = Nothing+    , _pSuggestedParagraphStyleChanges = Nothing+    , _pElements = Nothing+    , _pPositionedObjectIds = Nothing+    , _pParagraphStyle = Nothing+    }+++-- | The bullet for this paragraph. If not present, the paragraph does not+-- belong to a list.+pBullet :: Lens' Paragraph (Maybe Bullet)+pBullet = lens _pBullet (\ s a -> s{_pBullet = a})++-- | The suggested changes to this paragraph\'s bullet.+pSuggestedBulletChanges :: Lens' Paragraph (Maybe ParagraphSuggestedBulletChanges)+pSuggestedBulletChanges+  = lens _pSuggestedBulletChanges+      (\ s a -> s{_pSuggestedBulletChanges = a})++-- | The IDs of the positioned objects that are suggested to be attached to+-- this paragraph, keyed by suggestion ID.+pSuggestedPositionedObjectIds :: Lens' Paragraph (Maybe ParagraphSuggestedPositionedObjectIds)+pSuggestedPositionedObjectIds+  = lens _pSuggestedPositionedObjectIds+      (\ s a -> s{_pSuggestedPositionedObjectIds = a})++-- | The suggested paragraph style changes to this paragraph, keyed by+-- suggestion ID.+pSuggestedParagraphStyleChanges :: Lens' Paragraph (Maybe ParagraphSuggestedParagraphStyleChanges)+pSuggestedParagraphStyleChanges+  = lens _pSuggestedParagraphStyleChanges+      (\ s a -> s{_pSuggestedParagraphStyleChanges = a})++-- | The content of the paragraph broken down into its component parts.+pElements :: Lens' Paragraph [ParagraphElement]+pElements+  = lens _pElements (\ s a -> s{_pElements = a}) .+      _Default+      . _Coerce++-- | The IDs of the positioned objects tethered to this paragraph.+pPositionedObjectIds :: Lens' Paragraph [Text]+pPositionedObjectIds+  = lens _pPositionedObjectIds+      (\ s a -> s{_pPositionedObjectIds = a})+      . _Default+      . _Coerce++-- | The style of this paragraph.+pParagraphStyle :: Lens' Paragraph (Maybe ParagraphStyle)+pParagraphStyle+  = lens _pParagraphStyle+      (\ s a -> s{_pParagraphStyle = a})++instance FromJSON Paragraph where+        parseJSON+          = withObject "Paragraph"+              (\ o ->+                 Paragraph' <$>+                   (o .:? "bullet") <*> (o .:? "suggestedBulletChanges")+                     <*> (o .:? "suggestedPositionedObjectIds")+                     <*> (o .:? "suggestedParagraphStyleChanges")+                     <*> (o .:? "elements" .!= mempty)+                     <*> (o .:? "positionedObjectIds" .!= mempty)+                     <*> (o .:? "paragraphStyle"))++instance ToJSON Paragraph where+        toJSON Paragraph'{..}+          = object+              (catMaybes+                 [("bullet" .=) <$> _pBullet,+                  ("suggestedBulletChanges" .=) <$>+                    _pSuggestedBulletChanges,+                  ("suggestedPositionedObjectIds" .=) <$>+                    _pSuggestedPositionedObjectIds,+                  ("suggestedParagraphStyleChanges" .=) <$>+                    _pSuggestedParagraphStyleChanges,+                  ("elements" .=) <$> _pElements,+                  ("positionedObjectIds" .=) <$> _pPositionedObjectIds,+                  ("paragraphStyle" .=) <$> _pParagraphStyle])++-- | The suggested text style changes to this run, keyed by suggestion ID.+--+-- /See:/ 'textRunSuggestedTextStyleChanges' smart constructor.+newtype TextRunSuggestedTextStyleChanges =+  TextRunSuggestedTextStyleChanges'+    { _trstscAddtional :: HashMap Text SuggestedTextStyle+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TextRunSuggestedTextStyleChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'trstscAddtional'+textRunSuggestedTextStyleChanges+    :: HashMap Text SuggestedTextStyle -- ^ 'trstscAddtional'+    -> TextRunSuggestedTextStyleChanges+textRunSuggestedTextStyleChanges pTrstscAddtional_ =+  TextRunSuggestedTextStyleChanges'+    {_trstscAddtional = _Coerce # pTrstscAddtional_}+++trstscAddtional :: Lens' TextRunSuggestedTextStyleChanges (HashMap Text SuggestedTextStyle)+trstscAddtional+  = lens _trstscAddtional+      (\ s a -> s{_trstscAddtional = a})+      . _Coerce++instance FromJSON TextRunSuggestedTextStyleChanges+         where+        parseJSON+          = withObject "TextRunSuggestedTextStyleChanges"+              (\ o ->+                 TextRunSuggestedTextStyleChanges' <$>+                   (parseJSONObject o))++instance ToJSON TextRunSuggestedTextStyleChanges+         where+        toJSON = toJSON . _trstscAddtional++-- | A suggested change to a TableRowStyle.+--+-- /See:/ 'suggestedTableRowStyle' smart constructor.+data SuggestedTableRowStyle =+  SuggestedTableRowStyle'+    { _strsTableRowStyleSuggestionState :: !(Maybe TableRowStyleSuggestionState)+    , _strsTableRowStyle                :: !(Maybe TableRowStyle)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SuggestedTableRowStyle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'strsTableRowStyleSuggestionState'+--+-- * 'strsTableRowStyle'+suggestedTableRowStyle+    :: SuggestedTableRowStyle+suggestedTableRowStyle =+  SuggestedTableRowStyle'+    {_strsTableRowStyleSuggestionState = Nothing, _strsTableRowStyle = Nothing}+++-- | A mask that indicates which of the fields on the base TableRowStyle have+-- been changed in this suggestion.+strsTableRowStyleSuggestionState :: Lens' SuggestedTableRowStyle (Maybe TableRowStyleSuggestionState)+strsTableRowStyleSuggestionState+  = lens _strsTableRowStyleSuggestionState+      (\ s a -> s{_strsTableRowStyleSuggestionState = a})++-- | A TableRowStyle that only includes the changes made in this suggestion.+-- This can be used along with the table_row_style_suggestion_state to see+-- which fields have changed and their new values.+strsTableRowStyle :: Lens' SuggestedTableRowStyle (Maybe TableRowStyle)+strsTableRowStyle+  = lens _strsTableRowStyle+      (\ s a -> s{_strsTableRowStyle = a})++instance FromJSON SuggestedTableRowStyle where+        parseJSON+          = withObject "SuggestedTableRowStyle"+              (\ o ->+                 SuggestedTableRowStyle' <$>+                   (o .:? "tableRowStyleSuggestionState") <*>+                     (o .:? "tableRowStyle"))++instance ToJSON SuggestedTableRowStyle where+        toJSON SuggestedTableRowStyle'{..}+          = object+              (catMaybes+                 [("tableRowStyleSuggestionState" .=) <$>+                    _strsTableRowStyleSuggestionState,+                  ("tableRowStyle" .=) <$> _strsTableRowStyle])++-- | The footnotes in the document, keyed by footnote ID.+--+-- /See:/ 'documentFootNotes' smart constructor.+newtype DocumentFootNotes =+  DocumentFootNotes'+    { _dfnAddtional :: HashMap Text FootNote+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DocumentFootNotes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfnAddtional'+documentFootNotes+    :: HashMap Text FootNote -- ^ 'dfnAddtional'+    -> DocumentFootNotes+documentFootNotes pDfnAddtional_ =+  DocumentFootNotes' {_dfnAddtional = _Coerce # pDfnAddtional_}+++dfnAddtional :: Lens' DocumentFootNotes (HashMap Text FootNote)+dfnAddtional+  = lens _dfnAddtional (\ s a -> s{_dfnAddtional = a})+      . _Coerce++instance FromJSON DocumentFootNotes where+        parseJSON+          = withObject "DocumentFootNotes"+              (\ o -> DocumentFootNotes' <$> (parseJSONObject o))++instance ToJSON DocumentFootNotes where+        toJSON = toJSON . _dfnAddtional++-- | The properties of an image.+--+-- /See:/ 'imageProperties' smart constructor.+data ImageProperties =+  ImageProperties'+    { _ipCropProperties :: !(Maybe CropProperties)+    , _ipContentURI     :: !(Maybe Text)+    , _ipTransparency   :: !(Maybe (Textual Double))+    , _ipAngle          :: !(Maybe (Textual Double))+    , _ipContrast       :: !(Maybe (Textual Double))+    , _ipSourceURI      :: !(Maybe Text)+    , _ipBrightness     :: !(Maybe (Textual Double))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ImageProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ipCropProperties'+--+-- * 'ipContentURI'+--+-- * 'ipTransparency'+--+-- * 'ipAngle'+--+-- * 'ipContrast'+--+-- * 'ipSourceURI'+--+-- * 'ipBrightness'+imageProperties+    :: ImageProperties+imageProperties =+  ImageProperties'+    { _ipCropProperties = Nothing+    , _ipContentURI = Nothing+    , _ipTransparency = Nothing+    , _ipAngle = Nothing+    , _ipContrast = Nothing+    , _ipSourceURI = Nothing+    , _ipBrightness = Nothing+    }+++-- | The crop properties of the image. After cropping, the image will be+-- stretched to fit in its container.+ipCropProperties :: Lens' ImageProperties (Maybe CropProperties)+ipCropProperties+  = lens _ipCropProperties+      (\ s a -> s{_ipCropProperties = a})++-- | A URI to the image with a default lifetime of 30 minutes. This URI is+-- tagged with the account of the requester. Anyone with the URI+-- effectively accesses the image as the original requester. Access to the+-- image may be lost if the document\'s sharing settings change.+ipContentURI :: Lens' ImageProperties (Maybe Text)+ipContentURI+  = lens _ipContentURI (\ s a -> s{_ipContentURI = a})++-- | The transparency effect of the image. The value should be in the+-- interval [0.0, 1.0], where 0 means no effect and 1 means completely+-- transparent.+ipTransparency :: Lens' ImageProperties (Maybe Double)+ipTransparency+  = lens _ipTransparency+      (\ s a -> s{_ipTransparency = a})+      . mapping _Coerce++-- | The clockwise rotation angle of the image, in radians.+ipAngle :: Lens' ImageProperties (Maybe Double)+ipAngle+  = lens _ipAngle (\ s a -> s{_ipAngle = a}) .+      mapping _Coerce++-- | The contrast effect of the image. The value should be in the interval+-- [-1.0, 1.0], where 0 means no effect.+ipContrast :: Lens' ImageProperties (Maybe Double)+ipContrast+  = lens _ipContrast (\ s a -> s{_ipContrast = a}) .+      mapping _Coerce++-- | The source URI is the URI used to insert the image. The source URI can+-- be empty.+ipSourceURI :: Lens' ImageProperties (Maybe Text)+ipSourceURI+  = lens _ipSourceURI (\ s a -> s{_ipSourceURI = a})++-- | The brightness effect of the image. The value should be in the interval+-- [-1.0, 1.0], where 0 means no effect.+ipBrightness :: Lens' ImageProperties (Maybe Double)+ipBrightness+  = lens _ipBrightness (\ s a -> s{_ipBrightness = a})+      . mapping _Coerce++instance FromJSON ImageProperties where+        parseJSON+          = withObject "ImageProperties"+              (\ o ->+                 ImageProperties' <$>+                   (o .:? "cropProperties") <*> (o .:? "contentUri") <*>+                     (o .:? "transparency")+                     <*> (o .:? "angle")+                     <*> (o .:? "contrast")+                     <*> (o .:? "sourceUri")+                     <*> (o .:? "brightness"))++instance ToJSON ImageProperties where+        toJSON ImageProperties'{..}+          = object+              (catMaybes+                 [("cropProperties" .=) <$> _ipCropProperties,+                  ("contentUri" .=) <$> _ipContentURI,+                  ("transparency" .=) <$> _ipTransparency,+                  ("angle" .=) <$> _ipAngle,+                  ("contrast" .=) <$> _ipContrast,+                  ("sourceUri" .=) <$> _ipSourceURI,+                  ("brightness" .=) <$> _ipBrightness])++-- | A mask that indicates which of the fields on the base Size have been+-- changed in this suggestion. For any field set to true, the Size has a+-- new suggested value.+--+-- /See:/ 'sizeSuggestionState' smart constructor.+data SizeSuggestionState =+  SizeSuggestionState'+    { _sssHeightSuggested :: !(Maybe Bool)+    , _sssWidthSuggested  :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SizeSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sssHeightSuggested'+--+-- * 'sssWidthSuggested'+sizeSuggestionState+    :: SizeSuggestionState+sizeSuggestionState =+  SizeSuggestionState'+    {_sssHeightSuggested = Nothing, _sssWidthSuggested = Nothing}+++-- | Indicates if there was a suggested change to height.+sssHeightSuggested :: Lens' SizeSuggestionState (Maybe Bool)+sssHeightSuggested+  = lens _sssHeightSuggested+      (\ s a -> s{_sssHeightSuggested = a})++-- | Indicates if there was a suggested change to width.+sssWidthSuggested :: Lens' SizeSuggestionState (Maybe Bool)+sssWidthSuggested+  = lens _sssWidthSuggested+      (\ s a -> s{_sssWidthSuggested = a})++instance FromJSON SizeSuggestionState where+        parseJSON+          = withObject "SizeSuggestionState"+              (\ o ->+                 SizeSuggestionState' <$>+                   (o .:? "heightSuggested") <*>+                     (o .:? "widthSuggested"))++instance ToJSON SizeSuggestionState where+        toJSON SizeSuggestionState'{..}+          = object+              (catMaybes+                 [("heightSuggested" .=) <$> _sssHeightSuggested,+                  ("widthSuggested" .=) <$> _sssWidthSuggested])++-- | The suggested changes to the list properties, keyed by suggestion ID.+--+-- /See:/ 'listSuggestedListPropertiesChanges' smart constructor.+newtype ListSuggestedListPropertiesChanges =+  ListSuggestedListPropertiesChanges'+    { _lslpcAddtional :: HashMap Text SuggestedListProperties+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListSuggestedListPropertiesChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lslpcAddtional'+listSuggestedListPropertiesChanges+    :: HashMap Text SuggestedListProperties -- ^ 'lslpcAddtional'+    -> ListSuggestedListPropertiesChanges+listSuggestedListPropertiesChanges pLslpcAddtional_ =+  ListSuggestedListPropertiesChanges'+    {_lslpcAddtional = _Coerce # pLslpcAddtional_}+++lslpcAddtional :: Lens' ListSuggestedListPropertiesChanges (HashMap Text SuggestedListProperties)+lslpcAddtional+  = lens _lslpcAddtional+      (\ s a -> s{_lslpcAddtional = a})+      . _Coerce++instance FromJSON ListSuggestedListPropertiesChanges+         where+        parseJSON+          = withObject "ListSuggestedListPropertiesChanges"+              (\ o ->+                 ListSuggestedListPropertiesChanges' <$>+                   (parseJSONObject o))++instance ToJSON ListSuggestedListPropertiesChanges+         where+        toJSON = toJSON . _lslpcAddtional++-- | Response message from a BatchUpdateDocument request.+--+-- /See:/ 'batchUpdateDocumentResponse' smart constructor.+data BatchUpdateDocumentResponse =+  BatchUpdateDocumentResponse'+    { _budrDocumentId   :: !(Maybe Text)+    , _budrReplies      :: !(Maybe [Response])+    , _budrWriteControl :: !(Maybe WriteControl)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BatchUpdateDocumentResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'budrDocumentId'+--+-- * 'budrReplies'+--+-- * 'budrWriteControl'+batchUpdateDocumentResponse+    :: BatchUpdateDocumentResponse+batchUpdateDocumentResponse =+  BatchUpdateDocumentResponse'+    { _budrDocumentId = Nothing+    , _budrReplies = Nothing+    , _budrWriteControl = Nothing+    }+++-- | The ID of the document to which the updates were applied to.+budrDocumentId :: Lens' BatchUpdateDocumentResponse (Maybe Text)+budrDocumentId+  = lens _budrDocumentId+      (\ s a -> s{_budrDocumentId = a})++-- | The reply of the updates. This maps 1:1 with the updates, although+-- replies to some requests may be empty.+budrReplies :: Lens' BatchUpdateDocumentResponse [Response]+budrReplies+  = lens _budrReplies (\ s a -> s{_budrReplies = a}) .+      _Default+      . _Coerce++-- | The updated write control after applying the request.+budrWriteControl :: Lens' BatchUpdateDocumentResponse (Maybe WriteControl)+budrWriteControl+  = lens _budrWriteControl+      (\ s a -> s{_budrWriteControl = a})++instance FromJSON BatchUpdateDocumentResponse where+        parseJSON+          = withObject "BatchUpdateDocumentResponse"+              (\ o ->+                 BatchUpdateDocumentResponse' <$>+                   (o .:? "documentId") <*> (o .:? "replies" .!= mempty)+                     <*> (o .:? "writeControl"))++instance ToJSON BatchUpdateDocumentResponse where+        toJSON BatchUpdateDocumentResponse'{..}+          = object+              (catMaybes+                 [("documentId" .=) <$> _budrDocumentId,+                  ("replies" .=) <$> _budrReplies,+                  ("writeControl" .=) <$> _budrWriteControl])++-- | Styles that apply to a table.+--+-- /See:/ 'tableStyle' smart constructor.+newtype TableStyle =+  TableStyle'+    { _tsTableColumnProperties :: Maybe [TableColumnProperties]+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TableStyle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tsTableColumnProperties'+tableStyle+    :: TableStyle+tableStyle = TableStyle' {_tsTableColumnProperties = Nothing}+++-- | The properties of each column. Note that in Docs, tables contain rows+-- and rows contain cells, similar to HTML. So the properties for a row can+-- be found on the row\'s table_row_style.+tsTableColumnProperties :: Lens' TableStyle [TableColumnProperties]+tsTableColumnProperties+  = lens _tsTableColumnProperties+      (\ s a -> s{_tsTableColumnProperties = a})+      . _Default+      . _Coerce++instance FromJSON TableStyle where+        parseJSON+          = withObject "TableStyle"+              (\ o ->+                 TableStyle' <$>+                   (o .:? "tableColumnProperties" .!= mempty))++instance ToJSON TableStyle where+        toJSON TableStyle'{..}+          = object+              (catMaybes+                 [("tableColumnProperties" .=) <$>+                    _tsTableColumnProperties])++-- | A ParagraphElement representing a footnote reference. A footnote+-- reference is the inline content rendered with a number and is used to+-- identify the footnote.+--+-- /See:/ 'footNoteReference' smart constructor.+data FootNoteReference =+  FootNoteReference'+    { _fnrSuggestedInsertionIds     :: !(Maybe [Text])+    , _fnrSuggestedTextStyleChanges :: !(Maybe FootNoteReferenceSuggestedTextStyleChanges)+    , _fnrFootNoteId                :: !(Maybe Text)+    , _fnrSuggestedDeletionIds      :: !(Maybe [Text])+    , _fnrTextStyle                 :: !(Maybe TextStyle)+    , _fnrFootNoteNumber            :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FootNoteReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fnrSuggestedInsertionIds'+--+-- * 'fnrSuggestedTextStyleChanges'+--+-- * 'fnrFootNoteId'+--+-- * 'fnrSuggestedDeletionIds'+--+-- * 'fnrTextStyle'+--+-- * 'fnrFootNoteNumber'+footNoteReference+    :: FootNoteReference+footNoteReference =+  FootNoteReference'+    { _fnrSuggestedInsertionIds = Nothing+    , _fnrSuggestedTextStyleChanges = Nothing+    , _fnrFootNoteId = Nothing+    , _fnrSuggestedDeletionIds = Nothing+    , _fnrTextStyle = Nothing+    , _fnrFootNoteNumber = Nothing+    }+++-- | The suggested insertion IDs. A FootnoteReference may have multiple+-- insertion IDs if it is a nested suggested change. If empty, then this is+-- not a suggested insertion.+fnrSuggestedInsertionIds :: Lens' FootNoteReference [Text]+fnrSuggestedInsertionIds+  = lens _fnrSuggestedInsertionIds+      (\ s a -> s{_fnrSuggestedInsertionIds = a})+      . _Default+      . _Coerce++-- | The suggested text style changes to this FootnoteReference, keyed by+-- suggestion ID.+fnrSuggestedTextStyleChanges :: Lens' FootNoteReference (Maybe FootNoteReferenceSuggestedTextStyleChanges)+fnrSuggestedTextStyleChanges+  = lens _fnrSuggestedTextStyleChanges+      (\ s a -> s{_fnrSuggestedTextStyleChanges = a})++-- | The ID of the footnote that contains the content of this footnote+-- reference.+fnrFootNoteId :: Lens' FootNoteReference (Maybe Text)+fnrFootNoteId+  = lens _fnrFootNoteId+      (\ s a -> s{_fnrFootNoteId = a})++-- | The suggested deletion IDs. If empty, then there are no suggested+-- deletions of this content.+fnrSuggestedDeletionIds :: Lens' FootNoteReference [Text]+fnrSuggestedDeletionIds+  = lens _fnrSuggestedDeletionIds+      (\ s a -> s{_fnrSuggestedDeletionIds = a})+      . _Default+      . _Coerce++-- | The text style of this FootnoteReference.+fnrTextStyle :: Lens' FootNoteReference (Maybe TextStyle)+fnrTextStyle+  = lens _fnrTextStyle (\ s a -> s{_fnrTextStyle = a})++-- | The rendered number of this footnote.+fnrFootNoteNumber :: Lens' FootNoteReference (Maybe Text)+fnrFootNoteNumber+  = lens _fnrFootNoteNumber+      (\ s a -> s{_fnrFootNoteNumber = a})++instance FromJSON FootNoteReference where+        parseJSON+          = withObject "FootNoteReference"+              (\ o ->+                 FootNoteReference' <$>+                   (o .:? "suggestedInsertionIds" .!= mempty) <*>+                     (o .:? "suggestedTextStyleChanges")+                     <*> (o .:? "footnoteId")+                     <*> (o .:? "suggestedDeletionIds" .!= mempty)+                     <*> (o .:? "textStyle")+                     <*> (o .:? "footnoteNumber"))++instance ToJSON FootNoteReference where+        toJSON FootNoteReference'{..}+          = object+              (catMaybes+                 [("suggestedInsertionIds" .=) <$>+                    _fnrSuggestedInsertionIds,+                  ("suggestedTextStyleChanges" .=) <$>+                    _fnrSuggestedTextStyleChanges,+                  ("footnoteId" .=) <$> _fnrFootNoteId,+                  ("suggestedDeletionIds" .=) <$>+                    _fnrSuggestedDeletionIds,+                  ("textStyle" .=) <$> _fnrTextStyle,+                  ("footnoteNumber" .=) <$> _fnrFootNoteNumber])++-- | A ParagraphElement representing a column break. A column break makes the+-- subsequent text start at the top of the next column.+--+-- /See:/ 'columnBreak' smart constructor.+data ColumnBreak =+  ColumnBreak'+    { _cbSuggestedInsertionIds     :: !(Maybe [Text])+    , _cbSuggestedTextStyleChanges :: !(Maybe ColumnBreakSuggestedTextStyleChanges)+    , _cbSuggestedDeletionIds      :: !(Maybe [Text])+    , _cbTextStyle                 :: !(Maybe TextStyle)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ColumnBreak' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cbSuggestedInsertionIds'+--+-- * 'cbSuggestedTextStyleChanges'+--+-- * 'cbSuggestedDeletionIds'+--+-- * 'cbTextStyle'+columnBreak+    :: ColumnBreak+columnBreak =+  ColumnBreak'+    { _cbSuggestedInsertionIds = Nothing+    , _cbSuggestedTextStyleChanges = Nothing+    , _cbSuggestedDeletionIds = Nothing+    , _cbTextStyle = Nothing+    }+++-- | The suggested insertion IDs. A ColumnBreak may have multiple insertion+-- IDs if it is a nested suggested change. If empty, then this is not a+-- suggested insertion.+cbSuggestedInsertionIds :: Lens' ColumnBreak [Text]+cbSuggestedInsertionIds+  = lens _cbSuggestedInsertionIds+      (\ s a -> s{_cbSuggestedInsertionIds = a})+      . _Default+      . _Coerce++-- | The suggested text style changes to this ColumnBreak, keyed by+-- suggestion ID.+cbSuggestedTextStyleChanges :: Lens' ColumnBreak (Maybe ColumnBreakSuggestedTextStyleChanges)+cbSuggestedTextStyleChanges+  = lens _cbSuggestedTextStyleChanges+      (\ s a -> s{_cbSuggestedTextStyleChanges = a})++-- | The suggested deletion IDs. If empty, then there are no suggested+-- deletions of this content.+cbSuggestedDeletionIds :: Lens' ColumnBreak [Text]+cbSuggestedDeletionIds+  = lens _cbSuggestedDeletionIds+      (\ s a -> s{_cbSuggestedDeletionIds = a})+      . _Default+      . _Coerce++-- | The text style of this ColumnBreak. Similar to text content, like text+-- runs and footnote references, the text style of a column break can+-- affect content layout as well as the styling of text inserted adjacent+-- to it.+cbTextStyle :: Lens' ColumnBreak (Maybe TextStyle)+cbTextStyle+  = lens _cbTextStyle (\ s a -> s{_cbTextStyle = a})++instance FromJSON ColumnBreak where+        parseJSON+          = withObject "ColumnBreak"+              (\ o ->+                 ColumnBreak' <$>+                   (o .:? "suggestedInsertionIds" .!= mempty) <*>+                     (o .:? "suggestedTextStyleChanges")+                     <*> (o .:? "suggestedDeletionIds" .!= mempty)+                     <*> (o .:? "textStyle"))++instance ToJSON ColumnBreak where+        toJSON ColumnBreak'{..}+          = object+              (catMaybes+                 [("suggestedInsertionIds" .=) <$>+                    _cbSuggestedInsertionIds,+                  ("suggestedTextStyleChanges" .=) <$>+                    _cbSuggestedTextStyleChanges,+                  ("suggestedDeletionIds" .=) <$>+                    _cbSuggestedDeletionIds,+                  ("textStyle" .=) <$> _cbTextStyle])++-- | The suggested changes to the inline object properties, keyed by+-- suggestion ID.+--+-- /See:/ 'inlineObjectSuggestedInlineObjectPropertiesChanges' smart constructor.+newtype InlineObjectSuggestedInlineObjectPropertiesChanges =+  InlineObjectSuggestedInlineObjectPropertiesChanges'+    { _iosiopcAddtional :: HashMap Text SuggestedInlineObjectProperties+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InlineObjectSuggestedInlineObjectPropertiesChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iosiopcAddtional'+inlineObjectSuggestedInlineObjectPropertiesChanges+    :: HashMap Text SuggestedInlineObjectProperties -- ^ 'iosiopcAddtional'+    -> InlineObjectSuggestedInlineObjectPropertiesChanges+inlineObjectSuggestedInlineObjectPropertiesChanges pIosiopcAddtional_ =+  InlineObjectSuggestedInlineObjectPropertiesChanges'+    {_iosiopcAddtional = _Coerce # pIosiopcAddtional_}+++iosiopcAddtional :: Lens' InlineObjectSuggestedInlineObjectPropertiesChanges (HashMap Text SuggestedInlineObjectProperties)+iosiopcAddtional+  = lens _iosiopcAddtional+      (\ s a -> s{_iosiopcAddtional = a})+      . _Coerce++instance FromJSON+           InlineObjectSuggestedInlineObjectPropertiesChanges+         where+        parseJSON+          = withObject+              "InlineObjectSuggestedInlineObjectPropertiesChanges"+              (\ o ->+                 InlineObjectSuggestedInlineObjectPropertiesChanges'+                   <$> (parseJSONObject o))++instance ToJSON+           InlineObjectSuggestedInlineObjectPropertiesChanges+         where+        toJSON = toJSON . _iosiopcAddtional++-- | A ParagraphElement representing an equation.+--+-- /See:/ 'equation' smart constructor.+data Equation =+  Equation'+    { _eSuggestedInsertionIds :: !(Maybe [Text])+    , _eSuggestedDeletionIds  :: !(Maybe [Text])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Equation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eSuggestedInsertionIds'+--+-- * 'eSuggestedDeletionIds'+equation+    :: Equation+equation =+  Equation'+    {_eSuggestedInsertionIds = Nothing, _eSuggestedDeletionIds = Nothing}+++-- | The suggested insertion IDs. A Equation may have multiple insertion IDs+-- if it is a nested suggested change. If empty, then this is not a+-- suggested insertion.+eSuggestedInsertionIds :: Lens' Equation [Text]+eSuggestedInsertionIds+  = lens _eSuggestedInsertionIds+      (\ s a -> s{_eSuggestedInsertionIds = a})+      . _Default+      . _Coerce++-- | The suggested deletion IDs. If empty, then there are no suggested+-- deletions of this content.+eSuggestedDeletionIds :: Lens' Equation [Text]+eSuggestedDeletionIds+  = lens _eSuggestedDeletionIds+      (\ s a -> s{_eSuggestedDeletionIds = a})+      . _Default+      . _Coerce++instance FromJSON Equation where+        parseJSON+          = withObject "Equation"+              (\ o ->+                 Equation' <$>+                   (o .:? "suggestedInsertionIds" .!= mempty) <*>+                     (o .:? "suggestedDeletionIds" .!= mempty))++instance ToJSON Equation where+        toJSON Equation'{..}+          = object+              (catMaybes+                 [("suggestedInsertionIds" .=) <$>+                    _eSuggestedInsertionIds,+                  ("suggestedDeletionIds" .=) <$>+                    _eSuggestedDeletionIds])++-- | A collection of Ranges with the same named range ID. Named ranges allow+-- developers to associate parts of a document with an arbitrary+-- user-defined label so their contents can be programmatically read or+-- edited at a later time. A document can contain multiple named ranges+-- with the same name, but every named range has a unique ID. A named range+-- is created with a single Range, and content inserted inside a named+-- range generally expands that range. However, certain document changes+-- can cause the range to be split into multiple ranges. Named ranges are+-- not private. All applications and collaborators that have access to the+-- document can see its named ranges.+--+-- /See:/ 'namedRange' smart constructor.+data NamedRange =+  NamedRange'+    { _nNamedRangeId :: !(Maybe Text)+    , _nRanges       :: !(Maybe [Range])+    , _nName         :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NamedRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nNamedRangeId'+--+-- * 'nRanges'+--+-- * 'nName'+namedRange+    :: NamedRange+namedRange =+  NamedRange' {_nNamedRangeId = Nothing, _nRanges = Nothing, _nName = Nothing}+++-- | The ID of the named range.+nNamedRangeId :: Lens' NamedRange (Maybe Text)+nNamedRangeId+  = lens _nNamedRangeId+      (\ s a -> s{_nNamedRangeId = a})++-- | The ranges that belong to this named range.+nRanges :: Lens' NamedRange [Range]+nRanges+  = lens _nRanges (\ s a -> s{_nRanges = a}) . _Default+      . _Coerce++-- | The name of the named range.+nName :: Lens' NamedRange (Maybe Text)+nName = lens _nName (\ s a -> s{_nName = a})++instance FromJSON NamedRange where+        parseJSON+          = withObject "NamedRange"+              (\ o ->+                 NamedRange' <$>+                   (o .:? "namedRangeId") <*>+                     (o .:? "ranges" .!= mempty)+                     <*> (o .:? "name"))++instance ToJSON NamedRange where+        toJSON NamedRange'{..}+          = object+              (catMaybes+                 [("namedRangeId" .=) <$> _nNamedRangeId,+                  ("ranges" .=) <$> _nRanges, ("name" .=) <$> _nName])++-- | A mask that indicates which of the fields on the base CropProperties+-- have been changed in this suggestion. For any field set to true, there+-- is a new suggested value.+--+-- /See:/ 'cropPropertiesSuggestionState' smart constructor.+data CropPropertiesSuggestionState =+  CropPropertiesSuggestionState'+    { _cpssAngleSuggested        :: !(Maybe Bool)+    , _cpssOffSetRightSuggested  :: !(Maybe Bool)+    , _cpssOffSetBottomSuggested :: !(Maybe Bool)+    , _cpssOffSetTopSuggested    :: !(Maybe Bool)+    , _cpssOffSetLeftSuggested   :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CropPropertiesSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpssAngleSuggested'+--+-- * 'cpssOffSetRightSuggested'+--+-- * 'cpssOffSetBottomSuggested'+--+-- * 'cpssOffSetTopSuggested'+--+-- * 'cpssOffSetLeftSuggested'+cropPropertiesSuggestionState+    :: CropPropertiesSuggestionState+cropPropertiesSuggestionState =+  CropPropertiesSuggestionState'+    { _cpssAngleSuggested = Nothing+    , _cpssOffSetRightSuggested = Nothing+    , _cpssOffSetBottomSuggested = Nothing+    , _cpssOffSetTopSuggested = Nothing+    , _cpssOffSetLeftSuggested = Nothing+    }+++-- | Indicates if there was a suggested change to angle.+cpssAngleSuggested :: Lens' CropPropertiesSuggestionState (Maybe Bool)+cpssAngleSuggested+  = lens _cpssAngleSuggested+      (\ s a -> s{_cpssAngleSuggested = a})++-- | Indicates if there was a suggested change to offset_right.+cpssOffSetRightSuggested :: Lens' CropPropertiesSuggestionState (Maybe Bool)+cpssOffSetRightSuggested+  = lens _cpssOffSetRightSuggested+      (\ s a -> s{_cpssOffSetRightSuggested = a})++-- | Indicates if there was a suggested change to offset_bottom.+cpssOffSetBottomSuggested :: Lens' CropPropertiesSuggestionState (Maybe Bool)+cpssOffSetBottomSuggested+  = lens _cpssOffSetBottomSuggested+      (\ s a -> s{_cpssOffSetBottomSuggested = a})++-- | Indicates if there was a suggested change to offset_top.+cpssOffSetTopSuggested :: Lens' CropPropertiesSuggestionState (Maybe Bool)+cpssOffSetTopSuggested+  = lens _cpssOffSetTopSuggested+      (\ s a -> s{_cpssOffSetTopSuggested = a})++-- | Indicates if there was a suggested change to offset_left.+cpssOffSetLeftSuggested :: Lens' CropPropertiesSuggestionState (Maybe Bool)+cpssOffSetLeftSuggested+  = lens _cpssOffSetLeftSuggested+      (\ s a -> s{_cpssOffSetLeftSuggested = a})++instance FromJSON CropPropertiesSuggestionState where+        parseJSON+          = withObject "CropPropertiesSuggestionState"+              (\ o ->+                 CropPropertiesSuggestionState' <$>+                   (o .:? "angleSuggested") <*>+                     (o .:? "offsetRightSuggested")+                     <*> (o .:? "offsetBottomSuggested")+                     <*> (o .:? "offsetTopSuggested")+                     <*> (o .:? "offsetLeftSuggested"))++instance ToJSON CropPropertiesSuggestionState where+        toJSON CropPropertiesSuggestionState'{..}+          = object+              (catMaybes+                 [("angleSuggested" .=) <$> _cpssAngleSuggested,+                  ("offsetRightSuggested" .=) <$>+                    _cpssOffSetRightSuggested,+                  ("offsetBottomSuggested" .=) <$>+                    _cpssOffSetBottomSuggested,+                  ("offsetTopSuggested" .=) <$>+                    _cpssOffSetTopSuggested,+                  ("offsetLeftSuggested" .=) <$>+                    _cpssOffSetLeftSuggested])++-- | A ParagraphElement that represents a run of text that all has the same+-- styling.+--+-- /See:/ 'textRun' smart constructor.+data TextRun =+  TextRun'+    { _trSuggestedInsertionIds     :: !(Maybe [Text])+    , _trSuggestedTextStyleChanges :: !(Maybe TextRunSuggestedTextStyleChanges)+    , _trContent                   :: !(Maybe Text)+    , _trSuggestedDeletionIds      :: !(Maybe [Text])+    , _trTextStyle                 :: !(Maybe TextStyle)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TextRun' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'trSuggestedInsertionIds'+--+-- * 'trSuggestedTextStyleChanges'+--+-- * 'trContent'+--+-- * 'trSuggestedDeletionIds'+--+-- * 'trTextStyle'+textRun+    :: TextRun+textRun =+  TextRun'+    { _trSuggestedInsertionIds = Nothing+    , _trSuggestedTextStyleChanges = Nothing+    , _trContent = Nothing+    , _trSuggestedDeletionIds = Nothing+    , _trTextStyle = Nothing+    }+++-- | The suggested insertion IDs. A TextRun may have multiple insertion IDs+-- if it is a nested suggested change. If empty, then this is not a+-- suggested insertion.+trSuggestedInsertionIds :: Lens' TextRun [Text]+trSuggestedInsertionIds+  = lens _trSuggestedInsertionIds+      (\ s a -> s{_trSuggestedInsertionIds = a})+      . _Default+      . _Coerce++-- | The suggested text style changes to this run, keyed by suggestion ID.+trSuggestedTextStyleChanges :: Lens' TextRun (Maybe TextRunSuggestedTextStyleChanges)+trSuggestedTextStyleChanges+  = lens _trSuggestedTextStyleChanges+      (\ s a -> s{_trSuggestedTextStyleChanges = a})++-- | The text of this run. Any non-text elements in the run are replaced with+-- the Unicode character U+E907.+trContent :: Lens' TextRun (Maybe Text)+trContent+  = lens _trContent (\ s a -> s{_trContent = a})++-- | The suggested deletion IDs. If empty, then there are no suggested+-- deletions of this content.+trSuggestedDeletionIds :: Lens' TextRun [Text]+trSuggestedDeletionIds+  = lens _trSuggestedDeletionIds+      (\ s a -> s{_trSuggestedDeletionIds = a})+      . _Default+      . _Coerce++-- | The text style of this run.+trTextStyle :: Lens' TextRun (Maybe TextStyle)+trTextStyle+  = lens _trTextStyle (\ s a -> s{_trTextStyle = a})++instance FromJSON TextRun where+        parseJSON+          = withObject "TextRun"+              (\ o ->+                 TextRun' <$>+                   (o .:? "suggestedInsertionIds" .!= mempty) <*>+                     (o .:? "suggestedTextStyleChanges")+                     <*> (o .:? "content")+                     <*> (o .:? "suggestedDeletionIds" .!= mempty)+                     <*> (o .:? "textStyle"))++instance ToJSON TextRun where+        toJSON TextRun'{..}+          = object+              (catMaybes+                 [("suggestedInsertionIds" .=) <$>+                    _trSuggestedInsertionIds,+                  ("suggestedTextStyleChanges" .=) <$>+                    _trSuggestedTextStyleChanges,+                  ("content" .=) <$> _trContent,+                  ("suggestedDeletionIds" .=) <$>+                    _trSuggestedDeletionIds,+                  ("textStyle" .=) <$> _trTextStyle])++-- | The contents and style of a row in a Table.+--+-- /See:/ 'tableRow' smart constructor.+data TableRow =+  TableRow'+    { _tSuggestedInsertionIds         :: !(Maybe [Text])+    , _tTableCells                    :: !(Maybe [TableCell])+    , _tEndIndex                      :: !(Maybe (Textual Int32))+    , _tSuggestedDeletionIds          :: !(Maybe [Text])+    , _tSuggestedTableRowStyleChanges :: !(Maybe TableRowSuggestedTableRowStyleChanges)+    , _tTableRowStyle                 :: !(Maybe TableRowStyle)+    , _tStartIndex                    :: !(Maybe (Textual Int32))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TableRow' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tSuggestedInsertionIds'+--+-- * 'tTableCells'+--+-- * 'tEndIndex'+--+-- * 'tSuggestedDeletionIds'+--+-- * 'tSuggestedTableRowStyleChanges'+--+-- * 'tTableRowStyle'+--+-- * 'tStartIndex'+tableRow+    :: TableRow+tableRow =+  TableRow'+    { _tSuggestedInsertionIds = Nothing+    , _tTableCells = Nothing+    , _tEndIndex = Nothing+    , _tSuggestedDeletionIds = Nothing+    , _tSuggestedTableRowStyleChanges = Nothing+    , _tTableRowStyle = Nothing+    , _tStartIndex = Nothing+    }+++-- | The suggested insertion IDs. A TableRow may have multiple insertion IDs+-- if it is a nested suggested change. If empty, then this is not a+-- suggested insertion.+tSuggestedInsertionIds :: Lens' TableRow [Text]+tSuggestedInsertionIds+  = lens _tSuggestedInsertionIds+      (\ s a -> s{_tSuggestedInsertionIds = a})+      . _Default+      . _Coerce++-- | The contents and style of each cell in this row. It is possible for a+-- table to be non-rectangular, so some rows may have a different number of+-- cells than other rows in the same table.+tTableCells :: Lens' TableRow [TableCell]+tTableCells+  = lens _tTableCells (\ s a -> s{_tTableCells = a}) .+      _Default+      . _Coerce++-- | The zero-based end index of this row, exclusive, in UTF-16 code units.+tEndIndex :: Lens' TableRow (Maybe Int32)+tEndIndex+  = lens _tEndIndex (\ s a -> s{_tEndIndex = a}) .+      mapping _Coerce++-- | The suggested deletion IDs. If empty, then there are no suggested+-- deletions of this content.+tSuggestedDeletionIds :: Lens' TableRow [Text]+tSuggestedDeletionIds+  = lens _tSuggestedDeletionIds+      (\ s a -> s{_tSuggestedDeletionIds = a})+      . _Default+      . _Coerce++-- | The suggested style changes to this row, keyed by suggestion ID.+tSuggestedTableRowStyleChanges :: Lens' TableRow (Maybe TableRowSuggestedTableRowStyleChanges)+tSuggestedTableRowStyleChanges+  = lens _tSuggestedTableRowStyleChanges+      (\ s a -> s{_tSuggestedTableRowStyleChanges = a})++-- | The style of the table row.+tTableRowStyle :: Lens' TableRow (Maybe TableRowStyle)+tTableRowStyle+  = lens _tTableRowStyle+      (\ s a -> s{_tTableRowStyle = a})++-- | The zero-based start index of this row, in UTF-16 code units.+tStartIndex :: Lens' TableRow (Maybe Int32)+tStartIndex+  = lens _tStartIndex (\ s a -> s{_tStartIndex = a}) .+      mapping _Coerce++instance FromJSON TableRow where+        parseJSON+          = withObject "TableRow"+              (\ o ->+                 TableRow' <$>+                   (o .:? "suggestedInsertionIds" .!= mempty) <*>+                     (o .:? "tableCells" .!= mempty)+                     <*> (o .:? "endIndex")+                     <*> (o .:? "suggestedDeletionIds" .!= mempty)+                     <*> (o .:? "suggestedTableRowStyleChanges")+                     <*> (o .:? "tableRowStyle")+                     <*> (o .:? "startIndex"))++instance ToJSON TableRow where+        toJSON TableRow'{..}+          = object+              (catMaybes+                 [("suggestedInsertionIds" .=) <$>+                    _tSuggestedInsertionIds,+                  ("tableCells" .=) <$> _tTableCells,+                  ("endIndex" .=) <$> _tEndIndex,+                  ("suggestedDeletionIds" .=) <$>+                    _tSuggestedDeletionIds,+                  ("suggestedTableRowStyleChanges" .=) <$>+                    _tSuggestedTableRowStyleChanges,+                  ("tableRowStyle" .=) <$> _tTableRowStyle,+                  ("startIndex" .=) <$> _tStartIndex])++-- | Represents a font family and weight of text.+--+-- /See:/ 'weightedFontFamily' smart constructor.+data WeightedFontFamily =+  WeightedFontFamily'+    { _wffFontFamily :: !(Maybe Text)+    , _wffWeight     :: !(Maybe (Textual Int32))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'WeightedFontFamily' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wffFontFamily'+--+-- * 'wffWeight'+weightedFontFamily+    :: WeightedFontFamily+weightedFontFamily =+  WeightedFontFamily' {_wffFontFamily = Nothing, _wffWeight = Nothing}+++-- | The font family of the text. The font family can be any font from the+-- Font menu in Docs or from [Google Fonts] (https:\/\/fonts.google.com\/).+-- If the font name is unrecognized, the text is rendered in \`Arial\`.+wffFontFamily :: Lens' WeightedFontFamily (Maybe Text)+wffFontFamily+  = lens _wffFontFamily+      (\ s a -> s{_wffFontFamily = a})++-- | The weight of the font. This field can have any value that is a multiple+-- of \`100\` between \`100\` and \`900\`, inclusive. This range+-- corresponds to the numerical values described in the CSS 2.1+-- Specification, [section+-- 15.6](https:\/\/www.w3.org\/TR\/CSS21\/fonts.html#font-boldness), with+-- non-numerical values disallowed. The default value is \`400\`+-- (\"normal\"). The font weight makes up just one component of the+-- rendered font weight. The rendered weight is determined by a combination+-- of the \`weight\` and the text style\'s resolved \`bold\` value, after+-- accounting for inheritance: * If the text is bold and the weight is less+-- than \`400\`, the rendered weight is 400. * If the text is bold and the+-- weight is greater than or equal to \`400\` but is less than \`700\`, the+-- rendered weight is \`700\`. * If the weight is greater than or equal to+-- \`700\`, the rendered weight is equal to the weight. * If the text is+-- not bold, the rendered weight is equal to the weight.+wffWeight :: Lens' WeightedFontFamily (Maybe Int32)+wffWeight+  = lens _wffWeight (\ s a -> s{_wffWeight = a}) .+      mapping _Coerce++instance FromJSON WeightedFontFamily where+        parseJSON+          = withObject "WeightedFontFamily"+              (\ o ->+                 WeightedFontFamily' <$>+                   (o .:? "fontFamily") <*> (o .:? "weight"))++instance ToJSON WeightedFontFamily where+        toJSON WeightedFontFamily'{..}+          = object+              (catMaybes+                 [("fontFamily" .=) <$> _wffFontFamily,+                  ("weight" .=) <$> _wffWeight])++-- | A ParagraphElement representing a page break. A page break makes the+-- subsequent text start at the top of the next page.+--+-- /See:/ 'pageBreak' smart constructor.+data PageBreak =+  PageBreak'+    { _pbSuggestedInsertionIds     :: !(Maybe [Text])+    , _pbSuggestedTextStyleChanges :: !(Maybe PageBreakSuggestedTextStyleChanges)+    , _pbSuggestedDeletionIds      :: !(Maybe [Text])+    , _pbTextStyle                 :: !(Maybe TextStyle)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PageBreak' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pbSuggestedInsertionIds'+--+-- * 'pbSuggestedTextStyleChanges'+--+-- * 'pbSuggestedDeletionIds'+--+-- * 'pbTextStyle'+pageBreak+    :: PageBreak+pageBreak =+  PageBreak'+    { _pbSuggestedInsertionIds = Nothing+    , _pbSuggestedTextStyleChanges = Nothing+    , _pbSuggestedDeletionIds = Nothing+    , _pbTextStyle = Nothing+    }+++-- | The suggested insertion IDs. A PageBreak may have multiple insertion IDs+-- if it is a nested suggested change. If empty, then this is not a+-- suggested insertion.+pbSuggestedInsertionIds :: Lens' PageBreak [Text]+pbSuggestedInsertionIds+  = lens _pbSuggestedInsertionIds+      (\ s a -> s{_pbSuggestedInsertionIds = a})+      . _Default+      . _Coerce++-- | The suggested text style changes to this PageBreak, keyed by suggestion+-- ID.+pbSuggestedTextStyleChanges :: Lens' PageBreak (Maybe PageBreakSuggestedTextStyleChanges)+pbSuggestedTextStyleChanges+  = lens _pbSuggestedTextStyleChanges+      (\ s a -> s{_pbSuggestedTextStyleChanges = a})++-- | The suggested deletion IDs. If empty, then there are no suggested+-- deletions of this content.+pbSuggestedDeletionIds :: Lens' PageBreak [Text]+pbSuggestedDeletionIds+  = lens _pbSuggestedDeletionIds+      (\ s a -> s{_pbSuggestedDeletionIds = a})+      . _Default+      . _Coerce++-- | The text style of this PageBreak. Similar to text content, like text+-- runs and footnote references, the text style of a page break can affect+-- content layout as well as the styling of text inserted adjacent to it.+pbTextStyle :: Lens' PageBreak (Maybe TextStyle)+pbTextStyle+  = lens _pbTextStyle (\ s a -> s{_pbTextStyle = a})++instance FromJSON PageBreak where+        parseJSON+          = withObject "PageBreak"+              (\ o ->+                 PageBreak' <$>+                   (o .:? "suggestedInsertionIds" .!= mempty) <*>+                     (o .:? "suggestedTextStyleChanges")+                     <*> (o .:? "suggestedDeletionIds" .!= mempty)+                     <*> (o .:? "textStyle"))++instance ToJSON PageBreak where+        toJSON PageBreak'{..}+          = object+              (catMaybes+                 [("suggestedInsertionIds" .=) <$>+                    _pbSuggestedInsertionIds,+                  ("suggestedTextStyleChanges" .=) <$>+                    _pbSuggestedTextStyleChanges,+                  ("suggestedDeletionIds" .=) <$>+                    _pbSuggestedDeletionIds,+                  ("textStyle" .=) <$> _pbTextStyle])++-- | An object that appears inline with text. An InlineObject contains an+-- EmbeddedObject such as an image.+--+-- /See:/ 'inlineObject' smart constructor.+data InlineObject =+  InlineObject'+    { _ioSuggestedInsertionId                   :: !(Maybe Text)+    , _ioInlineObjectProperties                 :: !(Maybe InlineObjectProperties)+    , _ioObjectId                               :: !(Maybe Text)+    , _ioSuggestedDeletionIds                   :: !(Maybe [Text])+    , _ioSuggestedInlineObjectPropertiesChanges :: !(Maybe InlineObjectSuggestedInlineObjectPropertiesChanges)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InlineObject' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ioSuggestedInsertionId'+--+-- * 'ioInlineObjectProperties'+--+-- * 'ioObjectId'+--+-- * 'ioSuggestedDeletionIds'+--+-- * 'ioSuggestedInlineObjectPropertiesChanges'+inlineObject+    :: InlineObject+inlineObject =+  InlineObject'+    { _ioSuggestedInsertionId = Nothing+    , _ioInlineObjectProperties = Nothing+    , _ioObjectId = Nothing+    , _ioSuggestedDeletionIds = Nothing+    , _ioSuggestedInlineObjectPropertiesChanges = Nothing+    }+++-- | The suggested insertion ID. If empty, then this is not a suggested+-- insertion.+ioSuggestedInsertionId :: Lens' InlineObject (Maybe Text)+ioSuggestedInsertionId+  = lens _ioSuggestedInsertionId+      (\ s a -> s{_ioSuggestedInsertionId = a})++-- | The properties of this inline object.+ioInlineObjectProperties :: Lens' InlineObject (Maybe InlineObjectProperties)+ioInlineObjectProperties+  = lens _ioInlineObjectProperties+      (\ s a -> s{_ioInlineObjectProperties = a})++-- | The ID of this inline object.+ioObjectId :: Lens' InlineObject (Maybe Text)+ioObjectId+  = lens _ioObjectId (\ s a -> s{_ioObjectId = a})++-- | The suggested deletion IDs. If empty, then there are no suggested+-- deletions of this content.+ioSuggestedDeletionIds :: Lens' InlineObject [Text]+ioSuggestedDeletionIds+  = lens _ioSuggestedDeletionIds+      (\ s a -> s{_ioSuggestedDeletionIds = a})+      . _Default+      . _Coerce++-- | The suggested changes to the inline object properties, keyed by+-- suggestion ID.+ioSuggestedInlineObjectPropertiesChanges :: Lens' InlineObject (Maybe InlineObjectSuggestedInlineObjectPropertiesChanges)+ioSuggestedInlineObjectPropertiesChanges+  = lens _ioSuggestedInlineObjectPropertiesChanges+      (\ s a ->+         s{_ioSuggestedInlineObjectPropertiesChanges = a})++instance FromJSON InlineObject where+        parseJSON+          = withObject "InlineObject"+              (\ o ->+                 InlineObject' <$>+                   (o .:? "suggestedInsertionId") <*>+                     (o .:? "inlineObjectProperties")+                     <*> (o .:? "objectId")+                     <*> (o .:? "suggestedDeletionIds" .!= mempty)+                     <*> (o .:? "suggestedInlineObjectPropertiesChanges"))++instance ToJSON InlineObject where+        toJSON InlineObject'{..}+          = object+              (catMaybes+                 [("suggestedInsertionId" .=) <$>+                    _ioSuggestedInsertionId,+                  ("inlineObjectProperties" .=) <$>+                    _ioInlineObjectProperties,+                  ("objectId" .=) <$> _ioObjectId,+                  ("suggestedDeletionIds" .=) <$>+                    _ioSuggestedDeletionIds,+                  ("suggestedInlineObjectPropertiesChanges" .=) <$>+                    _ioSuggestedInlineObjectPropertiesChanges])++-- | A border around an EmbeddedObject.+--+-- /See:/ 'embeddedObjectBOrder' smart constructor.+data EmbeddedObjectBOrder =+  EmbeddedObjectBOrder'+    { _eoboColor         :: !(Maybe OptionalColor)+    , _eoboWidth         :: !(Maybe Dimension)+    , _eoboDashStyle     :: !(Maybe EmbeddedObjectBOrderDashStyle)+    , _eoboPropertyState :: !(Maybe EmbeddedObjectBOrderPropertyState)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EmbeddedObjectBOrder' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eoboColor'+--+-- * 'eoboWidth'+--+-- * 'eoboDashStyle'+--+-- * 'eoboPropertyState'+embeddedObjectBOrder+    :: EmbeddedObjectBOrder+embeddedObjectBOrder =+  EmbeddedObjectBOrder'+    { _eoboColor = Nothing+    , _eoboWidth = Nothing+    , _eoboDashStyle = Nothing+    , _eoboPropertyState = Nothing+    }+++-- | The color of the border.+eoboColor :: Lens' EmbeddedObjectBOrder (Maybe OptionalColor)+eoboColor+  = lens _eoboColor (\ s a -> s{_eoboColor = a})++-- | The width of the border.+eoboWidth :: Lens' EmbeddedObjectBOrder (Maybe Dimension)+eoboWidth+  = lens _eoboWidth (\ s a -> s{_eoboWidth = a})++-- | The dash style of the border.+eoboDashStyle :: Lens' EmbeddedObjectBOrder (Maybe EmbeddedObjectBOrderDashStyle)+eoboDashStyle+  = lens _eoboDashStyle+      (\ s a -> s{_eoboDashStyle = a})++-- | The property state of the border property.+eoboPropertyState :: Lens' EmbeddedObjectBOrder (Maybe EmbeddedObjectBOrderPropertyState)+eoboPropertyState+  = lens _eoboPropertyState+      (\ s a -> s{_eoboPropertyState = a})++instance FromJSON EmbeddedObjectBOrder where+        parseJSON+          = withObject "EmbeddedObjectBOrder"+              (\ o ->+                 EmbeddedObjectBOrder' <$>+                   (o .:? "color") <*> (o .:? "width") <*>+                     (o .:? "dashStyle")+                     <*> (o .:? "propertyState"))++instance ToJSON EmbeddedObjectBOrder where+        toJSON EmbeddedObjectBOrder'{..}+          = object+              (catMaybes+                 [("color" .=) <$> _eoboColor,+                  ("width" .=) <$> _eoboWidth,+                  ("dashStyle" .=) <$> _eoboDashStyle,+                  ("propertyState" .=) <$> _eoboPropertyState])++-- | The suggested changes to the table cell style, keyed by suggestion ID.+--+-- /See:/ 'tableCellSuggestedTableCellStyleChanges' smart constructor.+newtype TableCellSuggestedTableCellStyleChanges =+  TableCellSuggestedTableCellStyleChanges'+    { _tcstcscAddtional :: HashMap Text SuggestedTableCellStyle+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TableCellSuggestedTableCellStyleChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tcstcscAddtional'+tableCellSuggestedTableCellStyleChanges+    :: HashMap Text SuggestedTableCellStyle -- ^ 'tcstcscAddtional'+    -> TableCellSuggestedTableCellStyleChanges+tableCellSuggestedTableCellStyleChanges pTcstcscAddtional_ =+  TableCellSuggestedTableCellStyleChanges'+    {_tcstcscAddtional = _Coerce # pTcstcscAddtional_}+++tcstcscAddtional :: Lens' TableCellSuggestedTableCellStyleChanges (HashMap Text SuggestedTableCellStyle)+tcstcscAddtional+  = lens _tcstcscAddtional+      (\ s a -> s{_tcstcscAddtional = a})+      . _Coerce++instance FromJSON+           TableCellSuggestedTableCellStyleChanges+         where+        parseJSON+          = withObject+              "TableCellSuggestedTableCellStyleChanges"+              (\ o ->+                 TableCellSuggestedTableCellStyleChanges' <$>+                   (parseJSONObject o))++instance ToJSON+           TableCellSuggestedTableCellStyleChanges+         where+        toJSON = toJSON . _tcstcscAddtional++-- | The style of a TableCell. Inherited table cell styles are represented as+-- unset fields in this message. A table cell style can inherit from the+-- table\'s style.+--+-- /See:/ 'tableCellStyle' smart constructor.+data TableCellStyle =+  TableCellStyle'+    { _tcsBOrderRight      :: !(Maybe TableCellBOrder)+    , _tcsBOrderTop        :: !(Maybe TableCellBOrder)+    , _tcsColumnSpan       :: !(Maybe (Textual Int32))+    , _tcsBackgRoundColor  :: !(Maybe OptionalColor)+    , _tcsPaddingBottom    :: !(Maybe Dimension)+    , _tcsRowSpan          :: !(Maybe (Textual Int32))+    , _tcsBOrderLeft       :: !(Maybe TableCellBOrder)+    , _tcsPaddingLeft      :: !(Maybe Dimension)+    , _tcsPaddingTop       :: !(Maybe Dimension)+    , _tcsBOrderBottom     :: !(Maybe TableCellBOrder)+    , _tcsContentAlignment :: !(Maybe TableCellStyleContentAlignment)+    , _tcsPaddingRight     :: !(Maybe Dimension)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TableCellStyle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tcsBOrderRight'+--+-- * 'tcsBOrderTop'+--+-- * 'tcsColumnSpan'+--+-- * 'tcsBackgRoundColor'+--+-- * 'tcsPaddingBottom'+--+-- * 'tcsRowSpan'+--+-- * 'tcsBOrderLeft'+--+-- * 'tcsPaddingLeft'+--+-- * 'tcsPaddingTop'+--+-- * 'tcsBOrderBottom'+--+-- * 'tcsContentAlignment'+--+-- * 'tcsPaddingRight'+tableCellStyle+    :: TableCellStyle+tableCellStyle =+  TableCellStyle'+    { _tcsBOrderRight = Nothing+    , _tcsBOrderTop = Nothing+    , _tcsColumnSpan = Nothing+    , _tcsBackgRoundColor = Nothing+    , _tcsPaddingBottom = Nothing+    , _tcsRowSpan = Nothing+    , _tcsBOrderLeft = Nothing+    , _tcsPaddingLeft = Nothing+    , _tcsPaddingTop = Nothing+    , _tcsBOrderBottom = Nothing+    , _tcsContentAlignment = Nothing+    , _tcsPaddingRight = Nothing+    }+++-- | The right border of the cell.+tcsBOrderRight :: Lens' TableCellStyle (Maybe TableCellBOrder)+tcsBOrderRight+  = lens _tcsBOrderRight+      (\ s a -> s{_tcsBOrderRight = a})++-- | The top border of the cell.+tcsBOrderTop :: Lens' TableCellStyle (Maybe TableCellBOrder)+tcsBOrderTop+  = lens _tcsBOrderTop (\ s a -> s{_tcsBOrderTop = a})++-- | The column span of the cell. This property is read-only.+tcsColumnSpan :: Lens' TableCellStyle (Maybe Int32)+tcsColumnSpan+  = lens _tcsColumnSpan+      (\ s a -> s{_tcsColumnSpan = a})+      . mapping _Coerce++-- | The background color of the cell.+tcsBackgRoundColor :: Lens' TableCellStyle (Maybe OptionalColor)+tcsBackgRoundColor+  = lens _tcsBackgRoundColor+      (\ s a -> s{_tcsBackgRoundColor = a})++-- | The bottom padding of the cell.+tcsPaddingBottom :: Lens' TableCellStyle (Maybe Dimension)+tcsPaddingBottom+  = lens _tcsPaddingBottom+      (\ s a -> s{_tcsPaddingBottom = a})++-- | The row span of the cell. This property is read-only.+tcsRowSpan :: Lens' TableCellStyle (Maybe Int32)+tcsRowSpan+  = lens _tcsRowSpan (\ s a -> s{_tcsRowSpan = a}) .+      mapping _Coerce++-- | The left border of the cell.+tcsBOrderLeft :: Lens' TableCellStyle (Maybe TableCellBOrder)+tcsBOrderLeft+  = lens _tcsBOrderLeft+      (\ s a -> s{_tcsBOrderLeft = a})++-- | The left padding of the cell.+tcsPaddingLeft :: Lens' TableCellStyle (Maybe Dimension)+tcsPaddingLeft+  = lens _tcsPaddingLeft+      (\ s a -> s{_tcsPaddingLeft = a})++-- | The top padding of the cell.+tcsPaddingTop :: Lens' TableCellStyle (Maybe Dimension)+tcsPaddingTop+  = lens _tcsPaddingTop+      (\ s a -> s{_tcsPaddingTop = a})++-- | The bottom border of the cell.+tcsBOrderBottom :: Lens' TableCellStyle (Maybe TableCellBOrder)+tcsBOrderBottom+  = lens _tcsBOrderBottom+      (\ s a -> s{_tcsBOrderBottom = a})++-- | The alignment of the content in the table cell. The default alignment+-- matches the alignment for newly created table cells in the Docs editor.+tcsContentAlignment :: Lens' TableCellStyle (Maybe TableCellStyleContentAlignment)+tcsContentAlignment+  = lens _tcsContentAlignment+      (\ s a -> s{_tcsContentAlignment = a})++-- | The right padding of the cell.+tcsPaddingRight :: Lens' TableCellStyle (Maybe Dimension)+tcsPaddingRight+  = lens _tcsPaddingRight+      (\ s a -> s{_tcsPaddingRight = a})++instance FromJSON TableCellStyle where+        parseJSON+          = withObject "TableCellStyle"+              (\ o ->+                 TableCellStyle' <$>+                   (o .:? "borderRight") <*> (o .:? "borderTop") <*>+                     (o .:? "columnSpan")+                     <*> (o .:? "backgroundColor")+                     <*> (o .:? "paddingBottom")+                     <*> (o .:? "rowSpan")+                     <*> (o .:? "borderLeft")+                     <*> (o .:? "paddingLeft")+                     <*> (o .:? "paddingTop")+                     <*> (o .:? "borderBottom")+                     <*> (o .:? "contentAlignment")+                     <*> (o .:? "paddingRight"))++instance ToJSON TableCellStyle where+        toJSON TableCellStyle'{..}+          = object+              (catMaybes+                 [("borderRight" .=) <$> _tcsBOrderRight,+                  ("borderTop" .=) <$> _tcsBOrderTop,+                  ("columnSpan" .=) <$> _tcsColumnSpan,+                  ("backgroundColor" .=) <$> _tcsBackgRoundColor,+                  ("paddingBottom" .=) <$> _tcsPaddingBottom,+                  ("rowSpan" .=) <$> _tcsRowSpan,+                  ("borderLeft" .=) <$> _tcsBOrderLeft,+                  ("paddingLeft" .=) <$> _tcsPaddingLeft,+                  ("paddingTop" .=) <$> _tcsPaddingTop,+                  ("borderBottom" .=) <$> _tcsBOrderBottom,+                  ("contentAlignment" .=) <$> _tcsContentAlignment,+                  ("paddingRight" .=) <$> _tcsPaddingRight])++-- | A document header.+--+-- /See:/ 'header' smart constructor.+data Header =+  Header'+    { _hHeaderId :: !(Maybe Text)+    , _hContent  :: !(Maybe [StructuralElement])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Header' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hHeaderId'+--+-- * 'hContent'+header+    :: Header+header = Header' {_hHeaderId = Nothing, _hContent = Nothing}+++-- | The ID of the header.+hHeaderId :: Lens' Header (Maybe Text)+hHeaderId+  = lens _hHeaderId (\ s a -> s{_hHeaderId = a})++-- | The contents of the header. The indexes for a header\'s content begin at+-- zero.+hContent :: Lens' Header [StructuralElement]+hContent+  = lens _hContent (\ s a -> s{_hContent = a}) .+      _Default+      . _Coerce++instance FromJSON Header where+        parseJSON+          = withObject "Header"+              (\ o ->+                 Header' <$>+                   (o .:? "headerId") <*> (o .:? "content" .!= mempty))++instance ToJSON Header where+        toJSON Header'{..}+          = object+              (catMaybes+                 [("headerId" .=) <$> _hHeaderId,+                  ("content" .=) <$> _hContent])++-- | Specifies a contiguous range of text.+--+-- /See:/ 'range' smart constructor.+data Range =+  Range'+    { _rEndIndex   :: !(Maybe (Textual Int32))+    , _rStartIndex :: !(Maybe (Textual Int32))+    , _rSegmentId  :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Range' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rEndIndex'+--+-- * 'rStartIndex'+--+-- * 'rSegmentId'+range+    :: Range+range =+  Range' {_rEndIndex = Nothing, _rStartIndex = Nothing, _rSegmentId = Nothing}+++-- | The zero-based end index of this range, exclusive, in UTF-16 code units.+-- In all current uses, an end index must be provided. This field is an+-- Int32Value in order to accommodate future use cases with open-ended+-- ranges.+rEndIndex :: Lens' Range (Maybe Int32)+rEndIndex+  = lens _rEndIndex (\ s a -> s{_rEndIndex = a}) .+      mapping _Coerce++-- | The zero-based start index of this range, in UTF-16 code units. In all+-- current uses, a start index must be provided. This field is an+-- Int32Value in order to accommodate future use cases with open-ended+-- ranges.+rStartIndex :: Lens' Range (Maybe Int32)+rStartIndex+  = lens _rStartIndex (\ s a -> s{_rStartIndex = a}) .+      mapping _Coerce++-- | The ID of the header, footer or footnote that this range is contained+-- in. An empty segment ID signifies the document\'s body.+rSegmentId :: Lens' Range (Maybe Text)+rSegmentId+  = lens _rSegmentId (\ s a -> s{_rSegmentId = a})++instance FromJSON Range where+        parseJSON+          = withObject "Range"+              (\ o ->+                 Range' <$>+                   (o .:? "endIndex") <*> (o .:? "startIndex") <*>+                     (o .:? "segmentId"))++instance ToJSON Range where+        toJSON Range'{..}+          = object+              (catMaybes+                 [("endIndex" .=) <$> _rEndIndex,+                  ("startIndex" .=) <$> _rStartIndex,+                  ("segmentId" .=) <$> _rSegmentId])++-- | A Google Docs document.+--+-- /See:/ 'document' smart constructor.+data Document =+  Document'+    { _dNamedRanges                   :: !(Maybe DocumentNamedRanges)+    , _dInlineObjects                 :: !(Maybe DocumentInlineObjects)+    , _dDocumentId                    :: !(Maybe Text)+    , _dBody                          :: !(Maybe Body)+    , _dDocumentStyle                 :: !(Maybe DocumentStyle)+    , _dFooters                       :: !(Maybe DocumentFooters)+    , _dPositionedObjects             :: !(Maybe DocumentPositionedObjects)+    , _dSuggestionsViewMode           :: !(Maybe DocumentSuggestionsViewMode)+    , _dHeaders                       :: !(Maybe DocumentHeaders)+    , _dNamedStyles                   :: !(Maybe NamedStyles)+    , _dSuggestedNamedStylesChanges   :: !(Maybe DocumentSuggestedNamedStylesChanges)+    , _dSuggestedDocumentStyleChanges :: !(Maybe DocumentSuggestedDocumentStyleChanges)+    , _dTitle                         :: !(Maybe Text)+    , _dRevisionId                    :: !(Maybe Text)+    , _dFootNotes                     :: !(Maybe DocumentFootNotes)+    , _dLists                         :: !(Maybe DocumentLists)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Document' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dNamedRanges'+--+-- * 'dInlineObjects'+--+-- * 'dDocumentId'+--+-- * 'dBody'+--+-- * 'dDocumentStyle'+--+-- * 'dFooters'+--+-- * 'dPositionedObjects'+--+-- * 'dSuggestionsViewMode'+--+-- * 'dHeaders'+--+-- * 'dNamedStyles'+--+-- * 'dSuggestedNamedStylesChanges'+--+-- * 'dSuggestedDocumentStyleChanges'+--+-- * 'dTitle'+--+-- * 'dRevisionId'+--+-- * 'dFootNotes'+--+-- * 'dLists'+document+    :: Document+document =+  Document'+    { _dNamedRanges = Nothing+    , _dInlineObjects = Nothing+    , _dDocumentId = Nothing+    , _dBody = Nothing+    , _dDocumentStyle = Nothing+    , _dFooters = Nothing+    , _dPositionedObjects = Nothing+    , _dSuggestionsViewMode = Nothing+    , _dHeaders = Nothing+    , _dNamedStyles = Nothing+    , _dSuggestedNamedStylesChanges = Nothing+    , _dSuggestedDocumentStyleChanges = Nothing+    , _dTitle = Nothing+    , _dRevisionId = Nothing+    , _dFootNotes = Nothing+    , _dLists = Nothing+    }+++-- | The named ranges in the document, keyed by name.+dNamedRanges :: Lens' Document (Maybe DocumentNamedRanges)+dNamedRanges+  = lens _dNamedRanges (\ s a -> s{_dNamedRanges = a})++-- | The inline objects in the document, keyed by object ID.+dInlineObjects :: Lens' Document (Maybe DocumentInlineObjects)+dInlineObjects+  = lens _dInlineObjects+      (\ s a -> s{_dInlineObjects = a})++-- | The ID of the document.+dDocumentId :: Lens' Document (Maybe Text)+dDocumentId+  = lens _dDocumentId (\ s a -> s{_dDocumentId = a})++-- | The main body of the document.+dBody :: Lens' Document (Maybe Body)+dBody = lens _dBody (\ s a -> s{_dBody = a})++-- | The style of the document.+dDocumentStyle :: Lens' Document (Maybe DocumentStyle)+dDocumentStyle+  = lens _dDocumentStyle+      (\ s a -> s{_dDocumentStyle = a})++-- | The footers in the document, keyed by footer ID.+dFooters :: Lens' Document (Maybe DocumentFooters)+dFooters = lens _dFooters (\ s a -> s{_dFooters = a})++-- | The positioned objects in the document, keyed by object ID.+dPositionedObjects :: Lens' Document (Maybe DocumentPositionedObjects)+dPositionedObjects+  = lens _dPositionedObjects+      (\ s a -> s{_dPositionedObjects = a})++-- | The suggestions view mode applied to the document. Note: When editing a+-- document, changes must be based on a document with SUGGESTIONS_INLINE.+dSuggestionsViewMode :: Lens' Document (Maybe DocumentSuggestionsViewMode)+dSuggestionsViewMode+  = lens _dSuggestionsViewMode+      (\ s a -> s{_dSuggestionsViewMode = a})++-- | The headers in the document, keyed by header ID.+dHeaders :: Lens' Document (Maybe DocumentHeaders)+dHeaders = lens _dHeaders (\ s a -> s{_dHeaders = a})++-- | The named styles of the document.+dNamedStyles :: Lens' Document (Maybe NamedStyles)+dNamedStyles+  = lens _dNamedStyles (\ s a -> s{_dNamedStyles = a})++-- | The suggested changes to the named styles of the document, keyed by+-- suggestion ID.+dSuggestedNamedStylesChanges :: Lens' Document (Maybe DocumentSuggestedNamedStylesChanges)+dSuggestedNamedStylesChanges+  = lens _dSuggestedNamedStylesChanges+      (\ s a -> s{_dSuggestedNamedStylesChanges = a})++-- | The suggested changes to the style of the document, keyed by suggestion+-- ID.+dSuggestedDocumentStyleChanges :: Lens' Document (Maybe DocumentSuggestedDocumentStyleChanges)+dSuggestedDocumentStyleChanges+  = lens _dSuggestedDocumentStyleChanges+      (\ s a -> s{_dSuggestedDocumentStyleChanges = a})++-- | The title of the document.+dTitle :: Lens' Document (Maybe Text)+dTitle = lens _dTitle (\ s a -> s{_dTitle = a})++-- | The revision ID of the document. Can be used in update requests to+-- specify which revision of a document to apply updates to and how the+-- request should behave if the document has been edited since that+-- revision. Only populated if the user has edit access to the document.+-- The format of the revision ID may change over time, so it should be+-- treated opaquely. A returned revision ID is only guaranteed to be valid+-- for 24 hours after it has been returned and cannot be shared across+-- users. If the revision ID is unchanged between calls, then the document+-- has not changed. Conversely, a changed ID (for the same document and+-- user) usually means the document has been updated; however, a changed ID+-- can also be due to internal factors such as ID format changes.+dRevisionId :: Lens' Document (Maybe Text)+dRevisionId+  = lens _dRevisionId (\ s a -> s{_dRevisionId = a})++-- | The footnotes in the document, keyed by footnote ID.+dFootNotes :: Lens' Document (Maybe DocumentFootNotes)+dFootNotes+  = lens _dFootNotes (\ s a -> s{_dFootNotes = a})++-- | The lists in the document, keyed by list ID.+dLists :: Lens' Document (Maybe DocumentLists)+dLists = lens _dLists (\ s a -> s{_dLists = a})++instance FromJSON Document where+        parseJSON+          = withObject "Document"+              (\ o ->+                 Document' <$>+                   (o .:? "namedRanges") <*> (o .:? "inlineObjects") <*>+                     (o .:? "documentId")+                     <*> (o .:? "body")+                     <*> (o .:? "documentStyle")+                     <*> (o .:? "footers")+                     <*> (o .:? "positionedObjects")+                     <*> (o .:? "suggestionsViewMode")+                     <*> (o .:? "headers")+                     <*> (o .:? "namedStyles")+                     <*> (o .:? "suggestedNamedStylesChanges")+                     <*> (o .:? "suggestedDocumentStyleChanges")+                     <*> (o .:? "title")+                     <*> (o .:? "revisionId")+                     <*> (o .:? "footnotes")+                     <*> (o .:? "lists"))++instance ToJSON Document where+        toJSON Document'{..}+          = object+              (catMaybes+                 [("namedRanges" .=) <$> _dNamedRanges,+                  ("inlineObjects" .=) <$> _dInlineObjects,+                  ("documentId" .=) <$> _dDocumentId,+                  ("body" .=) <$> _dBody,+                  ("documentStyle" .=) <$> _dDocumentStyle,+                  ("footers" .=) <$> _dFooters,+                  ("positionedObjects" .=) <$> _dPositionedObjects,+                  ("suggestionsViewMode" .=) <$> _dSuggestionsViewMode,+                  ("headers" .=) <$> _dHeaders,+                  ("namedStyles" .=) <$> _dNamedStyles,+                  ("suggestedNamedStylesChanges" .=) <$>+                    _dSuggestedNamedStylesChanges,+                  ("suggestedDocumentStyleChanges" .=) <$>+                    _dSuggestedDocumentStyleChanges,+                  ("title" .=) <$> _dTitle,+                  ("revisionId" .=) <$> _dRevisionId,+                  ("footnotes" .=) <$> _dFootNotes,+                  ("lists" .=) <$> _dLists])++-- | The suggested changes to the style of the document, keyed by suggestion+-- ID.+--+-- /See:/ 'documentSuggestedDocumentStyleChanges' smart constructor.+newtype DocumentSuggestedDocumentStyleChanges =+  DocumentSuggestedDocumentStyleChanges'+    { _dsdscAddtional :: HashMap Text SuggestedDocumentStyle+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DocumentSuggestedDocumentStyleChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsdscAddtional'+documentSuggestedDocumentStyleChanges+    :: HashMap Text SuggestedDocumentStyle -- ^ 'dsdscAddtional'+    -> DocumentSuggestedDocumentStyleChanges+documentSuggestedDocumentStyleChanges pDsdscAddtional_ =+  DocumentSuggestedDocumentStyleChanges'+    {_dsdscAddtional = _Coerce # pDsdscAddtional_}+++dsdscAddtional :: Lens' DocumentSuggestedDocumentStyleChanges (HashMap Text SuggestedDocumentStyle)+dsdscAddtional+  = lens _dsdscAddtional+      (\ s a -> s{_dsdscAddtional = a})+      . _Coerce++instance FromJSON+           DocumentSuggestedDocumentStyleChanges+         where+        parseJSON+          = withObject "DocumentSuggestedDocumentStyleChanges"+              (\ o ->+                 DocumentSuggestedDocumentStyleChanges' <$>+                   (parseJSONObject o))++instance ToJSON DocumentSuggestedDocumentStyleChanges+         where+        toJSON = toJSON . _dsdscAddtional++-- | The named styles. Paragraphs in the document can inherit their TextStyle+-- and ParagraphStyle from these named styles.+--+-- /See:/ 'namedStyles' smart constructor.+newtype NamedStyles =+  NamedStyles'+    { _nsStyles :: Maybe [NamedStyle]+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NamedStyles' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nsStyles'+namedStyles+    :: NamedStyles+namedStyles = NamedStyles' {_nsStyles = Nothing}+++-- | The named styles. There is an entry for each of the possible named style+-- types.+nsStyles :: Lens' NamedStyles [NamedStyle]+nsStyles+  = lens _nsStyles (\ s a -> s{_nsStyles = a}) .+      _Default+      . _Coerce++instance FromJSON NamedStyles where+        parseJSON+          = withObject "NamedStyles"+              (\ o -> NamedStyles' <$> (o .:? "styles" .!= mempty))++instance ToJSON NamedStyles where+        toJSON NamedStyles'{..}+          = object (catMaybes [("styles" .=) <$> _nsStyles])++-- | The suggested paragraph style changes to this paragraph, keyed by+-- suggestion ID.+--+-- /See:/ 'paragraphSuggestedParagraphStyleChanges' smart constructor.+newtype ParagraphSuggestedParagraphStyleChanges =+  ParagraphSuggestedParagraphStyleChanges'+    { _pspscAddtional :: HashMap Text SuggestedParagraphStyle+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ParagraphSuggestedParagraphStyleChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pspscAddtional'+paragraphSuggestedParagraphStyleChanges+    :: HashMap Text SuggestedParagraphStyle -- ^ 'pspscAddtional'+    -> ParagraphSuggestedParagraphStyleChanges+paragraphSuggestedParagraphStyleChanges pPspscAddtional_ =+  ParagraphSuggestedParagraphStyleChanges'+    {_pspscAddtional = _Coerce # pPspscAddtional_}+++pspscAddtional :: Lens' ParagraphSuggestedParagraphStyleChanges (HashMap Text SuggestedParagraphStyle)+pspscAddtional+  = lens _pspscAddtional+      (\ s a -> s{_pspscAddtional = a})+      . _Coerce++instance FromJSON+           ParagraphSuggestedParagraphStyleChanges+         where+        parseJSON+          = withObject+              "ParagraphSuggestedParagraphStyleChanges"+              (\ o ->+                 ParagraphSuggestedParagraphStyleChanges' <$>+                   (parseJSONObject o))++instance ToJSON+           ParagraphSuggestedParagraphStyleChanges+         where+        toJSON = toJSON . _pspscAddtional++-- | The properties of an embedded drawing.+--+-- /See:/ 'embeddedDrawingProperties' smart constructor.+data EmbeddedDrawingProperties =+  EmbeddedDrawingProperties'+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EmbeddedDrawingProperties' with the minimum fields required to make a request.+--+embeddedDrawingProperties+    :: EmbeddedDrawingProperties+embeddedDrawingProperties = EmbeddedDrawingProperties'+++instance FromJSON EmbeddedDrawingProperties where+        parseJSON+          = withObject "EmbeddedDrawingProperties"+              (\ o -> pure EmbeddedDrawingProperties')++instance ToJSON EmbeddedDrawingProperties where+        toJSON = const emptyObject++-- | A suggested change to a TextStyle.+--+-- /See:/ 'suggestedTextStyle' smart constructor.+data SuggestedTextStyle =+  SuggestedTextStyle'+    { _stsTextStyle                :: !(Maybe TextStyle)+    , _stsTextStyleSuggestionState :: !(Maybe TextStyleSuggestionState)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SuggestedTextStyle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'stsTextStyle'+--+-- * 'stsTextStyleSuggestionState'+suggestedTextStyle+    :: SuggestedTextStyle+suggestedTextStyle =+  SuggestedTextStyle'+    {_stsTextStyle = Nothing, _stsTextStyleSuggestionState = Nothing}+++-- | A TextStyle that only includes the changes made in this suggestion. This+-- can be used along with the text_style_suggestion_state to see which+-- fields have changed and their new values.+stsTextStyle :: Lens' SuggestedTextStyle (Maybe TextStyle)+stsTextStyle+  = lens _stsTextStyle (\ s a -> s{_stsTextStyle = a})++-- | A mask that indicates which of the fields on the base TextStyle have+-- been changed in this suggestion.+stsTextStyleSuggestionState :: Lens' SuggestedTextStyle (Maybe TextStyleSuggestionState)+stsTextStyleSuggestionState+  = lens _stsTextStyleSuggestionState+      (\ s a -> s{_stsTextStyleSuggestionState = a})++instance FromJSON SuggestedTextStyle where+        parseJSON+          = withObject "SuggestedTextStyle"+              (\ o ->+                 SuggestedTextStyle' <$>+                   (o .:? "textStyle") <*>+                     (o .:? "textStyleSuggestionState"))++instance ToJSON SuggestedTextStyle where+        toJSON SuggestedTextStyle'{..}+          = object+              (catMaybes+                 [("textStyle" .=) <$> _stsTextStyle,+                  ("textStyleSuggestionState" .=) <$>+                    _stsTextStyleSuggestionState])++-- | Inserts an empty row into a table.+--+-- /See:/ 'insertTableRowRequest' smart constructor.+data InsertTableRowRequest =+  InsertTableRowRequest'+    { _itrrInsertBelow       :: !(Maybe Bool)+    , _itrrTableCellLocation :: !(Maybe TableCellLocation)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InsertTableRowRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'itrrInsertBelow'+--+-- * 'itrrTableCellLocation'+insertTableRowRequest+    :: InsertTableRowRequest+insertTableRowRequest =+  InsertTableRowRequest'+    {_itrrInsertBelow = Nothing, _itrrTableCellLocation = Nothing}+++-- | Whether to insert new row below the reference cell location. - \`True\`:+-- insert below the cell. - \`False\`: insert above the cell.+itrrInsertBelow :: Lens' InsertTableRowRequest (Maybe Bool)+itrrInsertBelow+  = lens _itrrInsertBelow+      (\ s a -> s{_itrrInsertBelow = a})++-- | The reference table cell location from which rows will be inserted. A+-- new row will be inserted above (or below) the row where the reference+-- cell is. If the reference cell is a merged cell, a new row will be+-- inserted above (or below) the merged cell.+itrrTableCellLocation :: Lens' InsertTableRowRequest (Maybe TableCellLocation)+itrrTableCellLocation+  = lens _itrrTableCellLocation+      (\ s a -> s{_itrrTableCellLocation = a})++instance FromJSON InsertTableRowRequest where+        parseJSON+          = withObject "InsertTableRowRequest"+              (\ o ->+                 InsertTableRowRequest' <$>+                   (o .:? "insertBelow") <*>+                     (o .:? "tableCellLocation"))++instance ToJSON InsertTableRowRequest where+        toJSON InsertTableRowRequest'{..}+          = object+              (catMaybes+                 [("insertBelow" .=) <$> _itrrInsertBelow,+                  ("tableCellLocation" .=) <$> _itrrTableCellLocation])++-- | A suggested change to the NamedStyles.+--+-- /See:/ 'suggestedNamedStyles' smart constructor.+data SuggestedNamedStyles =+  SuggestedNamedStyles'+    { _snsNamedStylesSuggestionState :: !(Maybe NamedStylesSuggestionState)+    , _snsNamedStyles                :: !(Maybe NamedStyles)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SuggestedNamedStyles' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'snsNamedStylesSuggestionState'+--+-- * 'snsNamedStyles'+suggestedNamedStyles+    :: SuggestedNamedStyles+suggestedNamedStyles =+  SuggestedNamedStyles'+    {_snsNamedStylesSuggestionState = Nothing, _snsNamedStyles = Nothing}+++-- | A mask that indicates which of the fields on the base NamedStyles have+-- been changed in this suggestion.+snsNamedStylesSuggestionState :: Lens' SuggestedNamedStyles (Maybe NamedStylesSuggestionState)+snsNamedStylesSuggestionState+  = lens _snsNamedStylesSuggestionState+      (\ s a -> s{_snsNamedStylesSuggestionState = a})++-- | A NamedStyles that only includes the changes made in this suggestion.+-- This can be used along with the named_styles_suggestion_state to see+-- which fields have changed and their new values.+snsNamedStyles :: Lens' SuggestedNamedStyles (Maybe NamedStyles)+snsNamedStyles+  = lens _snsNamedStyles+      (\ s a -> s{_snsNamedStyles = a})++instance FromJSON SuggestedNamedStyles where+        parseJSON+          = withObject "SuggestedNamedStyles"+              (\ o ->+                 SuggestedNamedStyles' <$>+                   (o .:? "namedStylesSuggestionState") <*>+                     (o .:? "namedStyles"))++instance ToJSON SuggestedNamedStyles where+        toJSON SuggestedNamedStyles'{..}+          = object+              (catMaybes+                 [("namedStylesSuggestionState" .=) <$>+                    _snsNamedStylesSuggestionState,+                  ("namedStyles" .=) <$> _snsNamedStyles])++-- | Provides control over how write requests are executed.+--+-- /See:/ 'writeControl' smart constructor.+data WriteControl =+  WriteControl'+    { _wcRequiredRevisionId :: !(Maybe Text)+    , _wcTargetRevisionId   :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'WriteControl' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wcRequiredRevisionId'+--+-- * 'wcTargetRevisionId'+writeControl+    :: WriteControl+writeControl =+  WriteControl' {_wcRequiredRevisionId = Nothing, _wcTargetRevisionId = Nothing}+++-- | The revision ID of the document that the write request will be applied+-- to. If this is not the latest revision of the document, the request will+-- not be processed and will return a 400 bad request error. When a+-- required revision ID is returned in a response, it indicates the+-- revision ID of the document after the request was applied.+wcRequiredRevisionId :: Lens' WriteControl (Maybe Text)+wcRequiredRevisionId+  = lens _wcRequiredRevisionId+      (\ s a -> s{_wcRequiredRevisionId = a})++-- | The target revision ID of the document that the write request will be+-- applied to. If collaborator changes have occurred after the document was+-- read using the API, the changes produced by this write request will be+-- transformed against the collaborator changes. This results in a new+-- revision of the document which incorporates both the changes in the+-- request and the collaborator changes, and the Docs server will resolve+-- conflicting changes. When using \`target_revision_id\`, the API client+-- can be thought of as another collaborator of the document. The target+-- revision ID may only be used to write to recent versions of a document.+-- If the target revision is too far behind the latest revision, the+-- request will not be processed and will return a 400 bad request error+-- and the request should be retried after reading the latest version of+-- the document. In most cases a \`revision_id\` will remain valid for use+-- as a target revision for several minutes after it is read, but for+-- frequently-edited documents this window may be shorter.+wcTargetRevisionId :: Lens' WriteControl (Maybe Text)+wcTargetRevisionId+  = lens _wcTargetRevisionId+      (\ s a -> s{_wcTargetRevisionId = a})++instance FromJSON WriteControl where+        parseJSON+          = withObject "WriteControl"+              (\ o ->+                 WriteControl' <$>+                   (o .:? "requiredRevisionId") <*>+                     (o .:? "targetRevisionId"))++instance ToJSON WriteControl where+        toJSON WriteControl'{..}+          = object+              (catMaybes+                 [("requiredRevisionId" .=) <$> _wcRequiredRevisionId,+                  ("targetRevisionId" .=) <$> _wcTargetRevisionId])++-- | Represents the styling that can be applied to text. Inherited text+-- styles are represented as unset fields in this message. A text style\'s+-- parent depends on where the text style is defined: * The TextStyle of+-- text in a Paragraph inherits from the paragraph\'s corresponding named+-- style type. * The TextStyle on a named style inherits from the normal+-- text named style. * The TextStyle of the normal text named style+-- inherits from the default text style in the Docs editor. * The TextStyle+-- on a Paragraph element that is contained in a table may inherit its text+-- style from the table style. If the text style does not inherit from a+-- parent, unsetting fields will revert the style to a value matching the+-- defaults in the Docs editor.+--+-- /See:/ 'textStyle' smart constructor.+data TextStyle =+  TextStyle'+    { _tsLink               :: !(Maybe Link)+    , _tsBackgRoundColor    :: !(Maybe OptionalColor)+    , _tsBaselineOffSet     :: !(Maybe TextStyleBaselineOffSet)+    , _tsForegRoundColor    :: !(Maybe OptionalColor)+    , _tsFontSize           :: !(Maybe Dimension)+    , _tsSmallCaps          :: !(Maybe Bool)+    , _tsUnderline          :: !(Maybe Bool)+    , _tsWeightedFontFamily :: !(Maybe WeightedFontFamily)+    , _tsItalic             :: !(Maybe Bool)+    , _tsBold               :: !(Maybe Bool)+    , _tsStrikethrough      :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TextStyle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tsLink'+--+-- * 'tsBackgRoundColor'+--+-- * 'tsBaselineOffSet'+--+-- * 'tsForegRoundColor'+--+-- * 'tsFontSize'+--+-- * 'tsSmallCaps'+--+-- * 'tsUnderline'+--+-- * 'tsWeightedFontFamily'+--+-- * 'tsItalic'+--+-- * 'tsBold'+--+-- * 'tsStrikethrough'+textStyle+    :: TextStyle+textStyle =+  TextStyle'+    { _tsLink = Nothing+    , _tsBackgRoundColor = Nothing+    , _tsBaselineOffSet = Nothing+    , _tsForegRoundColor = Nothing+    , _tsFontSize = Nothing+    , _tsSmallCaps = Nothing+    , _tsUnderline = Nothing+    , _tsWeightedFontFamily = Nothing+    , _tsItalic = Nothing+    , _tsBold = Nothing+    , _tsStrikethrough = Nothing+    }+++-- | The hyperlink destination of the text. If unset, there is no link. Links+-- are not inherited from parent text. Changing the link in an update+-- request causes some other changes to the text style of the range: * When+-- setting a link, the text foreground color will be updated to the default+-- link color and the text will be underlined. If these fields are modified+-- in the same request, those values will be used instead of the link+-- defaults. * Setting a link on a text range that overlaps with an+-- existing link will also update the existing link to point to the new+-- URL. * Links are not settable on newline characters. As a result,+-- setting a link on a text range that crosses a paragraph boundary, such+-- as \`\"ABC\\n123\"\`, will separate the newline character(s) into their+-- own text runs. The link will be applied separately to the runs before+-- and after the newline. * Removing a link will update the text style of+-- the range to match the style of the preceding text (or the default text+-- styles if the preceding text is another link) unless different styles+-- are being set in the same request.+tsLink :: Lens' TextStyle (Maybe Link)+tsLink = lens _tsLink (\ s a -> s{_tsLink = a})++-- | The background color of the text. If set, the color is either an RGB+-- color or transparent, depending on the \`color\` field.+tsBackgRoundColor :: Lens' TextStyle (Maybe OptionalColor)+tsBackgRoundColor+  = lens _tsBackgRoundColor+      (\ s a -> s{_tsBackgRoundColor = a})++-- | The text\'s vertical offset from its normal position. Text with+-- \`SUPERSCRIPT\` or \`SUBSCRIPT\` baseline offsets is automatically+-- rendered in a smaller font size, computed based on the \`font_size\`+-- field. The \`font_size\` itself is not affected by changes in this+-- field.+tsBaselineOffSet :: Lens' TextStyle (Maybe TextStyleBaselineOffSet)+tsBaselineOffSet+  = lens _tsBaselineOffSet+      (\ s a -> s{_tsBaselineOffSet = a})++-- | The foreground color of the text. If set, the color is either an RGB+-- color or transparent, depending on the \`color\` field.+tsForegRoundColor :: Lens' TextStyle (Maybe OptionalColor)+tsForegRoundColor+  = lens _tsForegRoundColor+      (\ s a -> s{_tsForegRoundColor = a})++-- | The size of the text\'s font.+tsFontSize :: Lens' TextStyle (Maybe Dimension)+tsFontSize+  = lens _tsFontSize (\ s a -> s{_tsFontSize = a})++-- | Whether or not the text is in small capital letters.+tsSmallCaps :: Lens' TextStyle (Maybe Bool)+tsSmallCaps+  = lens _tsSmallCaps (\ s a -> s{_tsSmallCaps = a})++-- | Whether or not the text is underlined.+tsUnderline :: Lens' TextStyle (Maybe Bool)+tsUnderline+  = lens _tsUnderline (\ s a -> s{_tsUnderline = a})++-- | The font family and rendered weight of the text. If an update request+-- specifies values for both \`weighted_font_family\` and \`bold\`, the+-- \`weighted_font_family\` is applied first, then \`bold\`. If+-- \`weighted_font_family#weight\` is not set, it defaults to \`400\`. If+-- \`weighted_font_family\` is set, then+-- \`weighted_font_family#font_family\` must also be set with a non-empty+-- value. Otherwise, a 400 bad request error is returned.+tsWeightedFontFamily :: Lens' TextStyle (Maybe WeightedFontFamily)+tsWeightedFontFamily+  = lens _tsWeightedFontFamily+      (\ s a -> s{_tsWeightedFontFamily = a})++-- | Whether or not the text is italicized.+tsItalic :: Lens' TextStyle (Maybe Bool)+tsItalic = lens _tsItalic (\ s a -> s{_tsItalic = a})++-- | Whether or not the text is rendered as bold.+tsBold :: Lens' TextStyle (Maybe Bool)+tsBold = lens _tsBold (\ s a -> s{_tsBold = a})++-- | Whether or not the text is struck through.+tsStrikethrough :: Lens' TextStyle (Maybe Bool)+tsStrikethrough+  = lens _tsStrikethrough+      (\ s a -> s{_tsStrikethrough = a})++instance FromJSON TextStyle where+        parseJSON+          = withObject "TextStyle"+              (\ o ->+                 TextStyle' <$>+                   (o .:? "link") <*> (o .:? "backgroundColor") <*>+                     (o .:? "baselineOffset")+                     <*> (o .:? "foregroundColor")+                     <*> (o .:? "fontSize")+                     <*> (o .:? "smallCaps")+                     <*> (o .:? "underline")+                     <*> (o .:? "weightedFontFamily")+                     <*> (o .:? "italic")+                     <*> (o .:? "bold")+                     <*> (o .:? "strikethrough"))++instance ToJSON TextStyle where+        toJSON TextStyle'{..}+          = object+              (catMaybes+                 [("link" .=) <$> _tsLink,+                  ("backgroundColor" .=) <$> _tsBackgRoundColor,+                  ("baselineOffset" .=) <$> _tsBaselineOffSet,+                  ("foregroundColor" .=) <$> _tsForegRoundColor,+                  ("fontSize" .=) <$> _tsFontSize,+                  ("smallCaps" .=) <$> _tsSmallCaps,+                  ("underline" .=) <$> _tsUnderline,+                  ("weightedFontFamily" .=) <$> _tsWeightedFontFamily,+                  ("italic" .=) <$> _tsItalic, ("bold" .=) <$> _tsBold,+                  ("strikethrough" .=) <$> _tsStrikethrough])++-- | The suggested text style changes to this HorizontalRule, keyed by+-- suggestion ID.+--+-- /See:/ 'horizontalRuleSuggestedTextStyleChanges' smart constructor.+newtype HorizontalRuleSuggestedTextStyleChanges =+  HorizontalRuleSuggestedTextStyleChanges'+    { _hrstscAddtional :: HashMap Text SuggestedTextStyle+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HorizontalRuleSuggestedTextStyleChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hrstscAddtional'+horizontalRuleSuggestedTextStyleChanges+    :: HashMap Text SuggestedTextStyle -- ^ 'hrstscAddtional'+    -> HorizontalRuleSuggestedTextStyleChanges+horizontalRuleSuggestedTextStyleChanges pHrstscAddtional_ =+  HorizontalRuleSuggestedTextStyleChanges'+    {_hrstscAddtional = _Coerce # pHrstscAddtional_}+++hrstscAddtional :: Lens' HorizontalRuleSuggestedTextStyleChanges (HashMap Text SuggestedTextStyle)+hrstscAddtional+  = lens _hrstscAddtional+      (\ s a -> s{_hrstscAddtional = a})+      . _Coerce++instance FromJSON+           HorizontalRuleSuggestedTextStyleChanges+         where+        parseJSON+          = withObject+              "HorizontalRuleSuggestedTextStyleChanges"+              (\ o ->+                 HorizontalRuleSuggestedTextStyleChanges' <$>+                   (parseJSONObject o))++instance ToJSON+           HorizontalRuleSuggestedTextStyleChanges+         where+        toJSON = toJSON . _hrstscAddtional++-- | Update the styling of text.+--+-- /See:/ 'updateTextStyleRequest' smart constructor.+data UpdateTextStyleRequest =+  UpdateTextStyleRequest'+    { _utsrRange     :: !(Maybe Range)+    , _utsrTextStyle :: !(Maybe TextStyle)+    , _utsrFields    :: !(Maybe GFieldMask)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateTextStyleRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'utsrRange'+--+-- * 'utsrTextStyle'+--+-- * 'utsrFields'+updateTextStyleRequest+    :: UpdateTextStyleRequest+updateTextStyleRequest =+  UpdateTextStyleRequest'+    {_utsrRange = Nothing, _utsrTextStyle = Nothing, _utsrFields = Nothing}+++-- | The range of text to style. The range may be extended to include+-- adjacent newlines. If the range fully contains a paragraph belonging to+-- a list, the paragraph\'s bullet is also updated with the matching text+-- style.+utsrRange :: Lens' UpdateTextStyleRequest (Maybe Range)+utsrRange+  = lens _utsrRange (\ s a -> s{_utsrRange = a})++-- | The styles to set on the text. If the value for a particular style+-- matches that of the parent, that style will be set to inherit. Certain+-- text style changes may cause other changes in order to to mirror the+-- behavior of the Docs editor. See the documentation of TextStyle for more+-- information.+utsrTextStyle :: Lens' UpdateTextStyleRequest (Maybe TextStyle)+utsrTextStyle+  = lens _utsrTextStyle+      (\ s a -> s{_utsrTextStyle = a})++-- | The fields that should be updated. At least one field must be specified.+-- The root \`text_style\` is implied and should not be specified. A single+-- \`\"*\"\` can be used as short-hand for listing every field. For+-- example, to update the text style to bold, set \`fields\` to+-- \`\"bold\"\`. To reset a property to its default value, include its+-- field name in the field mask but leave the field itself unset.+utsrFields :: Lens' UpdateTextStyleRequest (Maybe GFieldMask)+utsrFields+  = lens _utsrFields (\ s a -> s{_utsrFields = a})++instance FromJSON UpdateTextStyleRequest where+        parseJSON+          = withObject "UpdateTextStyleRequest"+              (\ o ->+                 UpdateTextStyleRequest' <$>+                   (o .:? "range") <*> (o .:? "textStyle") <*>+                     (o .:? "fields"))++instance ToJSON UpdateTextStyleRequest where+        toJSON UpdateTextStyleRequest'{..}+          = object+              (catMaybes+                 [("range" .=) <$> _utsrRange,+                  ("textStyle" .=) <$> _utsrTextStyle,+                  ("fields" .=) <$> _utsrFields])++-- | A ParagraphElement that contains an InlineObject.+--+-- /See:/ 'inlineObjectElement' smart constructor.+data InlineObjectElement =+  InlineObjectElement'+    { _ioeSuggestedInsertionIds     :: !(Maybe [Text])+    , _ioeSuggestedTextStyleChanges :: !(Maybe InlineObjectElementSuggestedTextStyleChanges)+    , _ioeInlineObjectId            :: !(Maybe Text)+    , _ioeSuggestedDeletionIds      :: !(Maybe [Text])+    , _ioeTextStyle                 :: !(Maybe TextStyle)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InlineObjectElement' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ioeSuggestedInsertionIds'+--+-- * 'ioeSuggestedTextStyleChanges'+--+-- * 'ioeInlineObjectId'+--+-- * 'ioeSuggestedDeletionIds'+--+-- * 'ioeTextStyle'+inlineObjectElement+    :: InlineObjectElement+inlineObjectElement =+  InlineObjectElement'+    { _ioeSuggestedInsertionIds = Nothing+    , _ioeSuggestedTextStyleChanges = Nothing+    , _ioeInlineObjectId = Nothing+    , _ioeSuggestedDeletionIds = Nothing+    , _ioeTextStyle = Nothing+    }+++-- | The suggested insertion IDs. An InlineObjectElement may have multiple+-- insertion IDs if it is a nested suggested change. If empty, then this is+-- not a suggested insertion.+ioeSuggestedInsertionIds :: Lens' InlineObjectElement [Text]+ioeSuggestedInsertionIds+  = lens _ioeSuggestedInsertionIds+      (\ s a -> s{_ioeSuggestedInsertionIds = a})+      . _Default+      . _Coerce++-- | The suggested text style changes to this InlineObject, keyed by+-- suggestion ID.+ioeSuggestedTextStyleChanges :: Lens' InlineObjectElement (Maybe InlineObjectElementSuggestedTextStyleChanges)+ioeSuggestedTextStyleChanges+  = lens _ioeSuggestedTextStyleChanges+      (\ s a -> s{_ioeSuggestedTextStyleChanges = a})++-- | The ID of the InlineObject this element contains.+ioeInlineObjectId :: Lens' InlineObjectElement (Maybe Text)+ioeInlineObjectId+  = lens _ioeInlineObjectId+      (\ s a -> s{_ioeInlineObjectId = a})++-- | The suggested deletion IDs. If empty, then there are no suggested+-- deletions of this content.+ioeSuggestedDeletionIds :: Lens' InlineObjectElement [Text]+ioeSuggestedDeletionIds+  = lens _ioeSuggestedDeletionIds+      (\ s a -> s{_ioeSuggestedDeletionIds = a})+      . _Default+      . _Coerce++-- | The text style of this InlineObjectElement. Similar to text content,+-- like text runs and footnote references, the text style of an inline+-- object element can affect content layout as well as the styling of text+-- inserted adjacent to it.+ioeTextStyle :: Lens' InlineObjectElement (Maybe TextStyle)+ioeTextStyle+  = lens _ioeTextStyle (\ s a -> s{_ioeTextStyle = a})++instance FromJSON InlineObjectElement where+        parseJSON+          = withObject "InlineObjectElement"+              (\ o ->+                 InlineObjectElement' <$>+                   (o .:? "suggestedInsertionIds" .!= mempty) <*>+                     (o .:? "suggestedTextStyleChanges")+                     <*> (o .:? "inlineObjectId")+                     <*> (o .:? "suggestedDeletionIds" .!= mempty)+                     <*> (o .:? "textStyle"))++instance ToJSON InlineObjectElement where+        toJSON InlineObjectElement'{..}+          = object+              (catMaybes+                 [("suggestedInsertionIds" .=) <$>+                    _ioeSuggestedInsertionIds,+                  ("suggestedTextStyleChanges" .=) <$>+                    _ioeSuggestedTextStyleChanges,+                  ("inlineObjectId" .=) <$> _ioeInlineObjectId,+                  ("suggestedDeletionIds" .=) <$>+                    _ioeSuggestedDeletionIds,+                  ("textStyle" .=) <$> _ioeTextStyle])++-- | Contains properties describing the look and feel of a list bullet at a+-- given level of nesting.+--+-- /See:/ 'nestingLevel' smart constructor.+data NestingLevel =+  NestingLevel'+    { _nlIndentFirstLine :: !(Maybe Dimension)+    , _nlGlyphFormat     :: !(Maybe Text)+    , _nlBulletAlignment :: !(Maybe NestingLevelBulletAlignment)+    , _nlIndentStart     :: !(Maybe Dimension)+    , _nlGlyphSymbol     :: !(Maybe Text)+    , _nlTextStyle       :: !(Maybe TextStyle)+    , _nlGlyphType       :: !(Maybe NestingLevelGlyphType)+    , _nlStartNumber     :: !(Maybe (Textual Int32))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NestingLevel' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nlIndentFirstLine'+--+-- * 'nlGlyphFormat'+--+-- * 'nlBulletAlignment'+--+-- * 'nlIndentStart'+--+-- * 'nlGlyphSymbol'+--+-- * 'nlTextStyle'+--+-- * 'nlGlyphType'+--+-- * 'nlStartNumber'+nestingLevel+    :: NestingLevel+nestingLevel =+  NestingLevel'+    { _nlIndentFirstLine = Nothing+    , _nlGlyphFormat = Nothing+    , _nlBulletAlignment = Nothing+    , _nlIndentStart = Nothing+    , _nlGlyphSymbol = Nothing+    , _nlTextStyle = Nothing+    , _nlGlyphType = Nothing+    , _nlStartNumber = Nothing+    }+++-- | The amount of indentation for the first line of paragraphs at this level+-- of nesting.+nlIndentFirstLine :: Lens' NestingLevel (Maybe Dimension)+nlIndentFirstLine+  = lens _nlIndentFirstLine+      (\ s a -> s{_nlIndentFirstLine = a})++-- | The format string used by bullets at this level of nesting. The glyph+-- format contains one or more placeholders, and these placeholder are+-- replaced with the appropriate values depending on the glyph_type or+-- glyph_symbol. The placeholders follow the pattern \`%[nesting_level]\`.+-- Furthermore, placeholders can have prefixes and suffixes. Thus, the+-- glyph format follows the pattern \`%[nesting_level]\`. Note that the+-- prefix and suffix are optional and can be arbitrary strings. For+-- example, the glyph format \`%0.\` indicates that the rendered glyph will+-- replace the placeholder with the corresponding glyph for nesting level 0+-- followed by a period as the suffix. So a list with a glyph type of+-- UPPER_ALPHA and glyph format \`%0.\` at nesting level 0 will result in a+-- list with rendered glyphs+--+-- \`A.\`+--+-- \`B.\`+--+-- \`C.\` The glyph format can contain placeholders for the current nesting+-- level as well as placeholders for parent nesting levels. For example, a+-- list can have a glyph format of \`%0.\` at nesting level 0 and a glyph+-- format of \`%0.%1.\` at nesting level 1. Assuming both nesting levels+-- have DECIMAL glyph types, this would result in a list with rendered+-- glyphs+--+-- \`1.\`+--+-- \`2.\`+--+-- \` 2.1.\`+--+-- \` 2.2.\`+--+-- \`3.\` For nesting levels that are ordered, the string that replaces a+-- placeholder in the glyph format for a particular paragraph depends on+-- the paragraph\'s order within the list.+nlGlyphFormat :: Lens' NestingLevel (Maybe Text)+nlGlyphFormat+  = lens _nlGlyphFormat+      (\ s a -> s{_nlGlyphFormat = a})++-- | The alignment of the bullet within the space allotted for rendering the+-- bullet.+nlBulletAlignment :: Lens' NestingLevel (Maybe NestingLevelBulletAlignment)+nlBulletAlignment+  = lens _nlBulletAlignment+      (\ s a -> s{_nlBulletAlignment = a})++-- | The amount of indentation for paragraphs at this level of nesting.+-- Applied to the side that corresponds to the start of the text, based on+-- the paragraph\'s content direction.+nlIndentStart :: Lens' NestingLevel (Maybe Dimension)+nlIndentStart+  = lens _nlIndentStart+      (\ s a -> s{_nlIndentStart = a})++-- | A custom glyph symbol used by bullets when paragraphs at this level of+-- nesting are unordered. The glyph symbol replaces placeholders within the+-- glyph_format. For example, if the glyph_symbol is the solid circle+-- corresponding to Unicode U+25cf code point and the glyph_format is+-- \`%0\`, the rendered glyph would be the solid circle.+nlGlyphSymbol :: Lens' NestingLevel (Maybe Text)+nlGlyphSymbol+  = lens _nlGlyphSymbol+      (\ s a -> s{_nlGlyphSymbol = a})++-- | The text style of bullets at this level of nesting.+nlTextStyle :: Lens' NestingLevel (Maybe TextStyle)+nlTextStyle+  = lens _nlTextStyle (\ s a -> s{_nlTextStyle = a})++-- | The type of glyph used by bullets when paragraphs at this level of+-- nesting are ordered. The glyph type determines the type of glyph used to+-- replace placeholders within the glyph_format when paragraphs at this+-- level of nesting are ordered. For example, if the nesting level is 0,+-- the glyph_format is \`%0.\` and the glyph type is DECIMAL, then the+-- rendered glyph would replace the placeholder \`%0\` in the glyph format+-- with a number corresponding to list item\'s order within the list.+nlGlyphType :: Lens' NestingLevel (Maybe NestingLevelGlyphType)+nlGlyphType+  = lens _nlGlyphType (\ s a -> s{_nlGlyphType = a})++-- | The number of the first list item at this nesting level. A value of 0 is+-- treated as a value of 1 for lettered lists and roman numeraled lists,+-- i.e. for values of both 0 and 1, lettered and roman numeraled lists will+-- begin at \`a\` and \`i\` respectively. This value is ignored for nesting+-- levels with unordered glyphs.+nlStartNumber :: Lens' NestingLevel (Maybe Int32)+nlStartNumber+  = lens _nlStartNumber+      (\ s a -> s{_nlStartNumber = a})+      . mapping _Coerce++instance FromJSON NestingLevel where+        parseJSON+          = withObject "NestingLevel"+              (\ o ->+                 NestingLevel' <$>+                   (o .:? "indentFirstLine") <*> (o .:? "glyphFormat")+                     <*> (o .:? "bulletAlignment")+                     <*> (o .:? "indentStart")+                     <*> (o .:? "glyphSymbol")+                     <*> (o .:? "textStyle")+                     <*> (o .:? "glyphType")+                     <*> (o .:? "startNumber"))++instance ToJSON NestingLevel where+        toJSON NestingLevel'{..}+          = object+              (catMaybes+                 [("indentFirstLine" .=) <$> _nlIndentFirstLine,+                  ("glyphFormat" .=) <$> _nlGlyphFormat,+                  ("bulletAlignment" .=) <$> _nlBulletAlignment,+                  ("indentStart" .=) <$> _nlIndentStart,+                  ("glyphSymbol" .=) <$> _nlGlyphSymbol,+                  ("textStyle" .=) <$> _nlTextStyle,+                  ("glyphType" .=) <$> _nlGlyphType,+                  ("startNumber" .=) <$> _nlStartNumber])++-- | Location of a single cell within a table.+--+-- /See:/ 'tableCellLocation' smart constructor.+data TableCellLocation =+  TableCellLocation'+    { _tclColumnIndex        :: !(Maybe (Textual Int32))+    , _tclTableStartLocation :: !(Maybe Location)+    , _tclRowIndex           :: !(Maybe (Textual Int32))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TableCellLocation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tclColumnIndex'+--+-- * 'tclTableStartLocation'+--+-- * 'tclRowIndex'+tableCellLocation+    :: TableCellLocation+tableCellLocation =+  TableCellLocation'+    { _tclColumnIndex = Nothing+    , _tclTableStartLocation = Nothing+    , _tclRowIndex = Nothing+    }+++-- | The zero-based column index. For example, the second column in the table+-- has a column index of 1.+tclColumnIndex :: Lens' TableCellLocation (Maybe Int32)+tclColumnIndex+  = lens _tclColumnIndex+      (\ s a -> s{_tclColumnIndex = a})+      . mapping _Coerce++-- | The location where the table starts in the document.+tclTableStartLocation :: Lens' TableCellLocation (Maybe Location)+tclTableStartLocation+  = lens _tclTableStartLocation+      (\ s a -> s{_tclTableStartLocation = a})++-- | The zero-based row index. For example, the second row in the table has a+-- row index of 1.+tclRowIndex :: Lens' TableCellLocation (Maybe Int32)+tclRowIndex+  = lens _tclRowIndex (\ s a -> s{_tclRowIndex = a}) .+      mapping _Coerce++instance FromJSON TableCellLocation where+        parseJSON+          = withObject "TableCellLocation"+              (\ o ->+                 TableCellLocation' <$>+                   (o .:? "columnIndex") <*>+                     (o .:? "tableStartLocation")+                     <*> (o .:? "rowIndex"))++instance ToJSON TableCellLocation where+        toJSON TableCellLocation'{..}+          = object+              (catMaybes+                 [("columnIndex" .=) <$> _tclColumnIndex,+                  ("tableStartLocation" .=) <$> _tclTableStartLocation,+                  ("rowIndex" .=) <$> _tclRowIndex])++-- | Deletes a PositionedObject from the document.+--+-- /See:/ 'deletePositionedObjectRequest' smart constructor.+newtype DeletePositionedObjectRequest =+  DeletePositionedObjectRequest'+    { _dporObjectId :: Maybe Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeletePositionedObjectRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dporObjectId'+deletePositionedObjectRequest+    :: DeletePositionedObjectRequest+deletePositionedObjectRequest =+  DeletePositionedObjectRequest' {_dporObjectId = Nothing}+++-- | The ID of the positioned object to delete.+dporObjectId :: Lens' DeletePositionedObjectRequest (Maybe Text)+dporObjectId+  = lens _dporObjectId (\ s a -> s{_dporObjectId = a})++instance FromJSON DeletePositionedObjectRequest where+        parseJSON+          = withObject "DeletePositionedObjectRequest"+              (\ o ->+                 DeletePositionedObjectRequest' <$>+                   (o .:? "objectId"))++instance ToJSON DeletePositionedObjectRequest where+        toJSON DeletePositionedObjectRequest'{..}+          = object+              (catMaybes [("objectId" .=) <$> _dporObjectId])++-- | A document footer.+--+-- /See:/ 'footer' smart constructor.+data Footer =+  Footer'+    { _fFooterId :: !(Maybe Text)+    , _fContent  :: !(Maybe [StructuralElement])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Footer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fFooterId'+--+-- * 'fContent'+footer+    :: Footer+footer = Footer' {_fFooterId = Nothing, _fContent = Nothing}+++-- | The ID of the footer.+fFooterId :: Lens' Footer (Maybe Text)+fFooterId+  = lens _fFooterId (\ s a -> s{_fFooterId = a})++-- | The contents of the footer. The indexes for a footer\'s content begin at+-- zero.+fContent :: Lens' Footer [StructuralElement]+fContent+  = lens _fContent (\ s a -> s{_fContent = a}) .+      _Default+      . _Coerce++instance FromJSON Footer where+        parseJSON+          = withObject "Footer"+              (\ o ->+                 Footer' <$>+                   (o .:? "footerId") <*> (o .:? "content" .!= mempty))++instance ToJSON Footer where+        toJSON Footer'{..}+          = object+              (catMaybes+                 [("footerId" .=) <$> _fFooterId,+                  ("content" .=) <$> _fContent])++-- | An object that is tethered to a Paragraph and positioned relative to the+-- beginning of the paragraph. A PositionedObject contains an+-- EmbeddedObject such as an image.+--+-- /See:/ 'positionedObject' smart constructor.+data PositionedObject =+  PositionedObject'+    { _poSuggestedPositionedObjectPropertiesChanges :: !(Maybe PositionedObjectSuggestedPositionedObjectPropertiesChanges)+    , _poPositionedObjectProperties                 :: !(Maybe PositionedObjectProperties)+    , _poSuggestedInsertionId                       :: !(Maybe Text)+    , _poObjectId                                   :: !(Maybe Text)+    , _poSuggestedDeletionIds                       :: !(Maybe [Text])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PositionedObject' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'poSuggestedPositionedObjectPropertiesChanges'+--+-- * 'poPositionedObjectProperties'+--+-- * 'poSuggestedInsertionId'+--+-- * 'poObjectId'+--+-- * 'poSuggestedDeletionIds'+positionedObject+    :: PositionedObject+positionedObject =+  PositionedObject'+    { _poSuggestedPositionedObjectPropertiesChanges = Nothing+    , _poPositionedObjectProperties = Nothing+    , _poSuggestedInsertionId = Nothing+    , _poObjectId = Nothing+    , _poSuggestedDeletionIds = Nothing+    }+++-- | The suggested changes to the positioned object properties, keyed by+-- suggestion ID.+poSuggestedPositionedObjectPropertiesChanges :: Lens' PositionedObject (Maybe PositionedObjectSuggestedPositionedObjectPropertiesChanges)+poSuggestedPositionedObjectPropertiesChanges+  = lens _poSuggestedPositionedObjectPropertiesChanges+      (\ s a ->+         s{_poSuggestedPositionedObjectPropertiesChanges = a})++-- | The properties of this positioned object.+poPositionedObjectProperties :: Lens' PositionedObject (Maybe PositionedObjectProperties)+poPositionedObjectProperties+  = lens _poPositionedObjectProperties+      (\ s a -> s{_poPositionedObjectProperties = a})++-- | The suggested insertion ID. If empty, then this is not a suggested+-- insertion.+poSuggestedInsertionId :: Lens' PositionedObject (Maybe Text)+poSuggestedInsertionId+  = lens _poSuggestedInsertionId+      (\ s a -> s{_poSuggestedInsertionId = a})++-- | The ID of this positioned object.+poObjectId :: Lens' PositionedObject (Maybe Text)+poObjectId+  = lens _poObjectId (\ s a -> s{_poObjectId = a})++-- | The suggested deletion IDs. If empty, then there are no suggested+-- deletions of this content.+poSuggestedDeletionIds :: Lens' PositionedObject [Text]+poSuggestedDeletionIds+  = lens _poSuggestedDeletionIds+      (\ s a -> s{_poSuggestedDeletionIds = a})+      . _Default+      . _Coerce++instance FromJSON PositionedObject where+        parseJSON+          = withObject "PositionedObject"+              (\ o ->+                 PositionedObject' <$>+                   (o .:? "suggestedPositionedObjectPropertiesChanges")+                     <*> (o .:? "positionedObjectProperties")+                     <*> (o .:? "suggestedInsertionId")+                     <*> (o .:? "objectId")+                     <*> (o .:? "suggestedDeletionIds" .!= mempty))++instance ToJSON PositionedObject where+        toJSON PositionedObject'{..}+          = object+              (catMaybes+                 [("suggestedPositionedObjectPropertiesChanges" .=)+                    <$> _poSuggestedPositionedObjectPropertiesChanges,+                  ("positionedObjectProperties" .=) <$>+                    _poPositionedObjectProperties,+                  ("suggestedInsertionId" .=) <$>+                    _poSuggestedInsertionId,+                  ("objectId" .=) <$> _poObjectId,+                  ("suggestedDeletionIds" .=) <$>+                    _poSuggestedDeletionIds])++-- | A collection of object IDs.+--+-- /See:/ 'objectReferences' smart constructor.+newtype ObjectReferences =+  ObjectReferences'+    { _orObjectIds :: Maybe [Text]+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ObjectReferences' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'orObjectIds'+objectReferences+    :: ObjectReferences+objectReferences = ObjectReferences' {_orObjectIds = Nothing}+++-- | The object IDs.+orObjectIds :: Lens' ObjectReferences [Text]+orObjectIds+  = lens _orObjectIds (\ s a -> s{_orObjectIds = a}) .+      _Default+      . _Coerce++instance FromJSON ObjectReferences where+        parseJSON+          = withObject "ObjectReferences"+              (\ o ->+                 ObjectReferences' <$> (o .:? "objectIds" .!= mempty))++instance ToJSON ObjectReferences where+        toJSON ObjectReferences'{..}+          = object+              (catMaybes [("objectIds" .=) <$> _orObjectIds])++-- | A mask that indicates which of the fields on the base Bullet have been+-- changed in this suggestion. For any field set to true, there is a new+-- suggested value.+--+-- /See:/ 'bulletSuggestionState' smart constructor.+data BulletSuggestionState =+  BulletSuggestionState'+    { _bssNestingLevelSuggested    :: !(Maybe Bool)+    , _bssListIdSuggested          :: !(Maybe Bool)+    , _bssTextStyleSuggestionState :: !(Maybe TextStyleSuggestionState)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BulletSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bssNestingLevelSuggested'+--+-- * 'bssListIdSuggested'+--+-- * 'bssTextStyleSuggestionState'+bulletSuggestionState+    :: BulletSuggestionState+bulletSuggestionState =+  BulletSuggestionState'+    { _bssNestingLevelSuggested = Nothing+    , _bssListIdSuggested = Nothing+    , _bssTextStyleSuggestionState = Nothing+    }+++-- | Indicates if there was a suggested change to the nesting_level.+bssNestingLevelSuggested :: Lens' BulletSuggestionState (Maybe Bool)+bssNestingLevelSuggested+  = lens _bssNestingLevelSuggested+      (\ s a -> s{_bssNestingLevelSuggested = a})++-- | Indicates if there was a suggested change to the list_id.+bssListIdSuggested :: Lens' BulletSuggestionState (Maybe Bool)+bssListIdSuggested+  = lens _bssListIdSuggested+      (\ s a -> s{_bssListIdSuggested = a})++-- | A mask that indicates which of the fields in text style have been+-- changed in this suggestion.+bssTextStyleSuggestionState :: Lens' BulletSuggestionState (Maybe TextStyleSuggestionState)+bssTextStyleSuggestionState+  = lens _bssTextStyleSuggestionState+      (\ s a -> s{_bssTextStyleSuggestionState = a})++instance FromJSON BulletSuggestionState where+        parseJSON+          = withObject "BulletSuggestionState"+              (\ o ->+                 BulletSuggestionState' <$>+                   (o .:? "nestingLevelSuggested") <*>+                     (o .:? "listIdSuggested")+                     <*> (o .:? "textStyleSuggestionState"))++instance ToJSON BulletSuggestionState where+        toJSON BulletSuggestionState'{..}+          = object+              (catMaybes+                 [("nestingLevelSuggested" .=) <$>+                    _bssNestingLevelSuggested,+                  ("listIdSuggested" .=) <$> _bssListIdSuggested,+                  ("textStyleSuggestionState" .=) <$>+                    _bssTextStyleSuggestionState])++-- | A mask that indicates which of the fields on the base ImageProperties+-- have been changed in this suggestion. For any field set to true, there+-- is a new suggested value.+--+-- /See:/ 'imagePropertiesSuggestionState' smart constructor.+data ImagePropertiesSuggestionState =+  ImagePropertiesSuggestionState'+    { _ipssAngleSuggested                :: !(Maybe Bool)+    , _ipssContrastSuggested             :: !(Maybe Bool)+    , _ipssContentURISuggested           :: !(Maybe Bool)+    , _ipssSourceURISuggested            :: !(Maybe Bool)+    , _ipssCropPropertiesSuggestionState :: !(Maybe CropPropertiesSuggestionState)+    , _ipssBrightnessSuggested           :: !(Maybe Bool)+    , _ipssTransparencySuggested         :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ImagePropertiesSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ipssAngleSuggested'+--+-- * 'ipssContrastSuggested'+--+-- * 'ipssContentURISuggested'+--+-- * 'ipssSourceURISuggested'+--+-- * 'ipssCropPropertiesSuggestionState'+--+-- * 'ipssBrightnessSuggested'+--+-- * 'ipssTransparencySuggested'+imagePropertiesSuggestionState+    :: ImagePropertiesSuggestionState+imagePropertiesSuggestionState =+  ImagePropertiesSuggestionState'+    { _ipssAngleSuggested = Nothing+    , _ipssContrastSuggested = Nothing+    , _ipssContentURISuggested = Nothing+    , _ipssSourceURISuggested = Nothing+    , _ipssCropPropertiesSuggestionState = Nothing+    , _ipssBrightnessSuggested = Nothing+    , _ipssTransparencySuggested = Nothing+    }+++-- | Indicates if there was a suggested change to angle.+ipssAngleSuggested :: Lens' ImagePropertiesSuggestionState (Maybe Bool)+ipssAngleSuggested+  = lens _ipssAngleSuggested+      (\ s a -> s{_ipssAngleSuggested = a})++-- | Indicates if there was a suggested change to contrast.+ipssContrastSuggested :: Lens' ImagePropertiesSuggestionState (Maybe Bool)+ipssContrastSuggested+  = lens _ipssContrastSuggested+      (\ s a -> s{_ipssContrastSuggested = a})++-- | Indicates if there was a suggested change to content_uri.+ipssContentURISuggested :: Lens' ImagePropertiesSuggestionState (Maybe Bool)+ipssContentURISuggested+  = lens _ipssContentURISuggested+      (\ s a -> s{_ipssContentURISuggested = a})++-- | Indicates if there was a suggested change to source_uri.+ipssSourceURISuggested :: Lens' ImagePropertiesSuggestionState (Maybe Bool)+ipssSourceURISuggested+  = lens _ipssSourceURISuggested+      (\ s a -> s{_ipssSourceURISuggested = a})++-- | A mask that indicates which of the fields in crop_properties have been+-- changed in this suggestion.+ipssCropPropertiesSuggestionState :: Lens' ImagePropertiesSuggestionState (Maybe CropPropertiesSuggestionState)+ipssCropPropertiesSuggestionState+  = lens _ipssCropPropertiesSuggestionState+      (\ s a -> s{_ipssCropPropertiesSuggestionState = a})++-- | Indicates if there was a suggested change to brightness.+ipssBrightnessSuggested :: Lens' ImagePropertiesSuggestionState (Maybe Bool)+ipssBrightnessSuggested+  = lens _ipssBrightnessSuggested+      (\ s a -> s{_ipssBrightnessSuggested = a})++-- | Indicates if there was a suggested change to transparency.+ipssTransparencySuggested :: Lens' ImagePropertiesSuggestionState (Maybe Bool)+ipssTransparencySuggested+  = lens _ipssTransparencySuggested+      (\ s a -> s{_ipssTransparencySuggested = a})++instance FromJSON ImagePropertiesSuggestionState+         where+        parseJSON+          = withObject "ImagePropertiesSuggestionState"+              (\ o ->+                 ImagePropertiesSuggestionState' <$>+                   (o .:? "angleSuggested") <*>+                     (o .:? "contrastSuggested")+                     <*> (o .:? "contentUriSuggested")+                     <*> (o .:? "sourceUriSuggested")+                     <*> (o .:? "cropPropertiesSuggestionState")+                     <*> (o .:? "brightnessSuggested")+                     <*> (o .:? "transparencySuggested"))++instance ToJSON ImagePropertiesSuggestionState where+        toJSON ImagePropertiesSuggestionState'{..}+          = object+              (catMaybes+                 [("angleSuggested" .=) <$> _ipssAngleSuggested,+                  ("contrastSuggested" .=) <$> _ipssContrastSuggested,+                  ("contentUriSuggested" .=) <$>+                    _ipssContentURISuggested,+                  ("sourceUriSuggested" .=) <$>+                    _ipssSourceURISuggested,+                  ("cropPropertiesSuggestionState" .=) <$>+                    _ipssCropPropertiesSuggestionState,+                  ("brightnessSuggested" .=) <$>+                    _ipssBrightnessSuggested,+                  ("transparencySuggested" .=) <$>+                    _ipssTransparencySuggested])++-- | A mask that indicates which of the fields on the base Shading have been+-- changed in this suggested change. For any field set to true, there is a+-- new suggested value.+--+-- /See:/ 'shadingSuggestionState' smart constructor.+newtype ShadingSuggestionState =+  ShadingSuggestionState'+    { _sssBackgRoundColorSuggested :: Maybe Bool+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ShadingSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sssBackgRoundColorSuggested'+shadingSuggestionState+    :: ShadingSuggestionState+shadingSuggestionState =+  ShadingSuggestionState' {_sssBackgRoundColorSuggested = Nothing}+++-- | Indicates if there was a suggested change to the Shading.+sssBackgRoundColorSuggested :: Lens' ShadingSuggestionState (Maybe Bool)+sssBackgRoundColorSuggested+  = lens _sssBackgRoundColorSuggested+      (\ s a -> s{_sssBackgRoundColorSuggested = a})++instance FromJSON ShadingSuggestionState where+        parseJSON+          = withObject "ShadingSuggestionState"+              (\ o ->+                 ShadingSuggestionState' <$>+                   (o .:? "backgroundColorSuggested"))++instance ToJSON ShadingSuggestionState where+        toJSON ShadingSuggestionState'{..}+          = object+              (catMaybes+                 [("backgroundColorSuggested" .=) <$>+                    _sssBackgRoundColorSuggested])++-- | The suggested changes to the named styles of the document, keyed by+-- suggestion ID.+--+-- /See:/ 'documentSuggestedNamedStylesChanges' smart constructor.+newtype DocumentSuggestedNamedStylesChanges =+  DocumentSuggestedNamedStylesChanges'+    { _dsnscAddtional :: HashMap Text SuggestedNamedStyles+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DocumentSuggestedNamedStylesChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsnscAddtional'+documentSuggestedNamedStylesChanges+    :: HashMap Text SuggestedNamedStyles -- ^ 'dsnscAddtional'+    -> DocumentSuggestedNamedStylesChanges+documentSuggestedNamedStylesChanges pDsnscAddtional_ =+  DocumentSuggestedNamedStylesChanges'+    {_dsnscAddtional = _Coerce # pDsnscAddtional_}+++dsnscAddtional :: Lens' DocumentSuggestedNamedStylesChanges (HashMap Text SuggestedNamedStyles)+dsnscAddtional+  = lens _dsnscAddtional+      (\ s a -> s{_dsnscAddtional = a})+      . _Coerce++instance FromJSON DocumentSuggestedNamedStylesChanges+         where+        parseJSON+          = withObject "DocumentSuggestedNamedStylesChanges"+              (\ o ->+                 DocumentSuggestedNamedStylesChanges' <$>+                   (parseJSONObject o))++instance ToJSON DocumentSuggestedNamedStylesChanges+         where+        toJSON = toJSON . _dsnscAddtional++-- | The contents and style of a cell in a Table.+--+-- /See:/ 'tableCell' smart constructor.+data TableCell =+  TableCell'+    { _tcSuggestedInsertionIds          :: !(Maybe [Text])+    , _tcSuggestedTableCellStyleChanges :: !(Maybe TableCellSuggestedTableCellStyleChanges)+    , _tcEndIndex                       :: !(Maybe (Textual Int32))+    , _tcContent                        :: !(Maybe [StructuralElement])+    , _tcTableCellStyle                 :: !(Maybe TableCellStyle)+    , _tcSuggestedDeletionIds           :: !(Maybe [Text])+    , _tcStartIndex                     :: !(Maybe (Textual Int32))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TableCell' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tcSuggestedInsertionIds'+--+-- * 'tcSuggestedTableCellStyleChanges'+--+-- * 'tcEndIndex'+--+-- * 'tcContent'+--+-- * 'tcTableCellStyle'+--+-- * 'tcSuggestedDeletionIds'+--+-- * 'tcStartIndex'+tableCell+    :: TableCell+tableCell =+  TableCell'+    { _tcSuggestedInsertionIds = Nothing+    , _tcSuggestedTableCellStyleChanges = Nothing+    , _tcEndIndex = Nothing+    , _tcContent = Nothing+    , _tcTableCellStyle = Nothing+    , _tcSuggestedDeletionIds = Nothing+    , _tcStartIndex = Nothing+    }+++-- | The suggested insertion IDs. A TableCell may have multiple insertion IDs+-- if it is a nested suggested change. If empty, then this is not a+-- suggested insertion.+tcSuggestedInsertionIds :: Lens' TableCell [Text]+tcSuggestedInsertionIds+  = lens _tcSuggestedInsertionIds+      (\ s a -> s{_tcSuggestedInsertionIds = a})+      . _Default+      . _Coerce++-- | The suggested changes to the table cell style, keyed by suggestion ID.+tcSuggestedTableCellStyleChanges :: Lens' TableCell (Maybe TableCellSuggestedTableCellStyleChanges)+tcSuggestedTableCellStyleChanges+  = lens _tcSuggestedTableCellStyleChanges+      (\ s a -> s{_tcSuggestedTableCellStyleChanges = a})++-- | The zero-based end index of this cell, exclusive, in UTF-16 code units.+tcEndIndex :: Lens' TableCell (Maybe Int32)+tcEndIndex+  = lens _tcEndIndex (\ s a -> s{_tcEndIndex = a}) .+      mapping _Coerce++-- | The content of the cell.+tcContent :: Lens' TableCell [StructuralElement]+tcContent+  = lens _tcContent (\ s a -> s{_tcContent = a}) .+      _Default+      . _Coerce++-- | The style of the cell.+tcTableCellStyle :: Lens' TableCell (Maybe TableCellStyle)+tcTableCellStyle+  = lens _tcTableCellStyle+      (\ s a -> s{_tcTableCellStyle = a})++-- | The suggested deletion IDs. If empty, then there are no suggested+-- deletions of this content.+tcSuggestedDeletionIds :: Lens' TableCell [Text]+tcSuggestedDeletionIds+  = lens _tcSuggestedDeletionIds+      (\ s a -> s{_tcSuggestedDeletionIds = a})+      . _Default+      . _Coerce++-- | The zero-based start index of this cell, in UTF-16 code units.+tcStartIndex :: Lens' TableCell (Maybe Int32)+tcStartIndex+  = lens _tcStartIndex (\ s a -> s{_tcStartIndex = a})+      . mapping _Coerce++instance FromJSON TableCell where+        parseJSON+          = withObject "TableCell"+              (\ o ->+                 TableCell' <$>+                   (o .:? "suggestedInsertionIds" .!= mempty) <*>+                     (o .:? "suggestedTableCellStyleChanges")+                     <*> (o .:? "endIndex")+                     <*> (o .:? "content" .!= mempty)+                     <*> (o .:? "tableCellStyle")+                     <*> (o .:? "suggestedDeletionIds" .!= mempty)+                     <*> (o .:? "startIndex"))++instance ToJSON TableCell where+        toJSON TableCell'{..}+          = object+              (catMaybes+                 [("suggestedInsertionIds" .=) <$>+                    _tcSuggestedInsertionIds,+                  ("suggestedTableCellStyleChanges" .=) <$>+                    _tcSuggestedTableCellStyleChanges,+                  ("endIndex" .=) <$> _tcEndIndex,+                  ("content" .=) <$> _tcContent,+                  ("tableCellStyle" .=) <$> _tcTableCellStyle,+                  ("suggestedDeletionIds" .=) <$>+                    _tcSuggestedDeletionIds,+                  ("startIndex" .=) <$> _tcStartIndex])++-- | A mask that indicates which of the fields on the base+-- SheetsChartReference have been changed in this suggestion. For any field+-- set to true, there is a new suggested value.+--+-- /See:/ 'sheetsChartReferenceSuggestionState' smart constructor.+data SheetsChartReferenceSuggestionState =+  SheetsChartReferenceSuggestionState'+    { _scrssChartIdSuggested       :: !(Maybe Bool)+    , _scrssSpreadsheetIdSuggested :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SheetsChartReferenceSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scrssChartIdSuggested'+--+-- * 'scrssSpreadsheetIdSuggested'+sheetsChartReferenceSuggestionState+    :: SheetsChartReferenceSuggestionState+sheetsChartReferenceSuggestionState =+  SheetsChartReferenceSuggestionState'+    {_scrssChartIdSuggested = Nothing, _scrssSpreadsheetIdSuggested = Nothing}+++-- | Indicates if there was a suggested change to chart_id.+scrssChartIdSuggested :: Lens' SheetsChartReferenceSuggestionState (Maybe Bool)+scrssChartIdSuggested+  = lens _scrssChartIdSuggested+      (\ s a -> s{_scrssChartIdSuggested = a})++-- | Indicates if there was a suggested change to spreadsheet_id.+scrssSpreadsheetIdSuggested :: Lens' SheetsChartReferenceSuggestionState (Maybe Bool)+scrssSpreadsheetIdSuggested+  = lens _scrssSpreadsheetIdSuggested+      (\ s a -> s{_scrssSpreadsheetIdSuggested = a})++instance FromJSON SheetsChartReferenceSuggestionState+         where+        parseJSON+          = withObject "SheetsChartReferenceSuggestionState"+              (\ o ->+                 SheetsChartReferenceSuggestionState' <$>+                   (o .:? "chartIdSuggested") <*>+                     (o .:? "spreadsheetIdSuggested"))++instance ToJSON SheetsChartReferenceSuggestionState+         where+        toJSON SheetsChartReferenceSuggestionState'{..}+          = object+              (catMaybes+                 [("chartIdSuggested" .=) <$> _scrssChartIdSuggested,+                  ("spreadsheetIdSuggested" .=) <$>+                    _scrssSpreadsheetIdSuggested])++-- | A ParagraphElement describes content within a Paragraph.+--+-- /See:/ 'paragraphElement' smart constructor.+data ParagraphElement =+  ParagraphElement'+    { _peAutoText            :: !(Maybe AutoText)+    , _peEndIndex            :: !(Maybe (Textual Int32))+    , _peFootNoteReference   :: !(Maybe FootNoteReference)+    , _peColumnBreak         :: !(Maybe ColumnBreak)+    , _peTextRun             :: !(Maybe TextRun)+    , _peEquation            :: !(Maybe Equation)+    , _pePageBreak           :: !(Maybe PageBreak)+    , _peInlineObjectElement :: !(Maybe InlineObjectElement)+    , _peHorizontalRule      :: !(Maybe HorizontalRule)+    , _peStartIndex          :: !(Maybe (Textual Int32))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ParagraphElement' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'peAutoText'+--+-- * 'peEndIndex'+--+-- * 'peFootNoteReference'+--+-- * 'peColumnBreak'+--+-- * 'peTextRun'+--+-- * 'peEquation'+--+-- * 'pePageBreak'+--+-- * 'peInlineObjectElement'+--+-- * 'peHorizontalRule'+--+-- * 'peStartIndex'+paragraphElement+    :: ParagraphElement+paragraphElement =+  ParagraphElement'+    { _peAutoText = Nothing+    , _peEndIndex = Nothing+    , _peFootNoteReference = Nothing+    , _peColumnBreak = Nothing+    , _peTextRun = Nothing+    , _peEquation = Nothing+    , _pePageBreak = Nothing+    , _peInlineObjectElement = Nothing+    , _peHorizontalRule = Nothing+    , _peStartIndex = Nothing+    }+++-- | An auto text paragraph element.+peAutoText :: Lens' ParagraphElement (Maybe AutoText)+peAutoText+  = lens _peAutoText (\ s a -> s{_peAutoText = a})++-- | The zero-base end index of this paragraph element, exclusive, in UTF-16+-- code units.+peEndIndex :: Lens' ParagraphElement (Maybe Int32)+peEndIndex+  = lens _peEndIndex (\ s a -> s{_peEndIndex = a}) .+      mapping _Coerce++-- | A footnote reference paragraph element.+peFootNoteReference :: Lens' ParagraphElement (Maybe FootNoteReference)+peFootNoteReference+  = lens _peFootNoteReference+      (\ s a -> s{_peFootNoteReference = a})++-- | A column break paragraph element.+peColumnBreak :: Lens' ParagraphElement (Maybe ColumnBreak)+peColumnBreak+  = lens _peColumnBreak+      (\ s a -> s{_peColumnBreak = a})++-- | A text run paragraph element.+peTextRun :: Lens' ParagraphElement (Maybe TextRun)+peTextRun+  = lens _peTextRun (\ s a -> s{_peTextRun = a})++-- | An equation paragraph element.+peEquation :: Lens' ParagraphElement (Maybe Equation)+peEquation+  = lens _peEquation (\ s a -> s{_peEquation = a})++-- | A page break paragraph element.+pePageBreak :: Lens' ParagraphElement (Maybe PageBreak)+pePageBreak+  = lens _pePageBreak (\ s a -> s{_pePageBreak = a})++-- | An inline object paragraph element.+peInlineObjectElement :: Lens' ParagraphElement (Maybe InlineObjectElement)+peInlineObjectElement+  = lens _peInlineObjectElement+      (\ s a -> s{_peInlineObjectElement = a})++-- | A horizontal rule paragraph element.+peHorizontalRule :: Lens' ParagraphElement (Maybe HorizontalRule)+peHorizontalRule+  = lens _peHorizontalRule+      (\ s a -> s{_peHorizontalRule = a})++-- | The zero-based start index of this paragraph element, in UTF-16 code+-- units.+peStartIndex :: Lens' ParagraphElement (Maybe Int32)+peStartIndex+  = lens _peStartIndex (\ s a -> s{_peStartIndex = a})+      . mapping _Coerce++instance FromJSON ParagraphElement where+        parseJSON+          = withObject "ParagraphElement"+              (\ o ->+                 ParagraphElement' <$>+                   (o .:? "autoText") <*> (o .:? "endIndex") <*>+                     (o .:? "footnoteReference")+                     <*> (o .:? "columnBreak")+                     <*> (o .:? "textRun")+                     <*> (o .:? "equation")+                     <*> (o .:? "pageBreak")+                     <*> (o .:? "inlineObjectElement")+                     <*> (o .:? "horizontalRule")+                     <*> (o .:? "startIndex"))++instance ToJSON ParagraphElement where+        toJSON ParagraphElement'{..}+          = object+              (catMaybes+                 [("autoText" .=) <$> _peAutoText,+                  ("endIndex" .=) <$> _peEndIndex,+                  ("footnoteReference" .=) <$> _peFootNoteReference,+                  ("columnBreak" .=) <$> _peColumnBreak,+                  ("textRun" .=) <$> _peTextRun,+                  ("equation" .=) <$> _peEquation,+                  ("pageBreak" .=) <$> _pePageBreak,+                  ("inlineObjectElement" .=) <$>+                    _peInlineObjectElement,+                  ("horizontalRule" .=) <$> _peHorizontalRule,+                  ("startIndex" .=) <$> _peStartIndex])++-- | A ParagraphElement representing a horizontal line.+--+-- /See:/ 'horizontalRule' smart constructor.+data HorizontalRule =+  HorizontalRule'+    { _hrSuggestedInsertionIds     :: !(Maybe [Text])+    , _hrSuggestedTextStyleChanges :: !(Maybe HorizontalRuleSuggestedTextStyleChanges)+    , _hrSuggestedDeletionIds      :: !(Maybe [Text])+    , _hrTextStyle                 :: !(Maybe TextStyle)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HorizontalRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hrSuggestedInsertionIds'+--+-- * 'hrSuggestedTextStyleChanges'+--+-- * 'hrSuggestedDeletionIds'+--+-- * 'hrTextStyle'+horizontalRule+    :: HorizontalRule+horizontalRule =+  HorizontalRule'+    { _hrSuggestedInsertionIds = Nothing+    , _hrSuggestedTextStyleChanges = Nothing+    , _hrSuggestedDeletionIds = Nothing+    , _hrTextStyle = Nothing+    }+++-- | The suggested insertion IDs. A HorizontalRule may have multiple+-- insertion IDs if it is a nested suggested change. If empty, then this is+-- not a suggested insertion.+hrSuggestedInsertionIds :: Lens' HorizontalRule [Text]+hrSuggestedInsertionIds+  = lens _hrSuggestedInsertionIds+      (\ s a -> s{_hrSuggestedInsertionIds = a})+      . _Default+      . _Coerce++-- | The suggested text style changes to this HorizontalRule, keyed by+-- suggestion ID.+hrSuggestedTextStyleChanges :: Lens' HorizontalRule (Maybe HorizontalRuleSuggestedTextStyleChanges)+hrSuggestedTextStyleChanges+  = lens _hrSuggestedTextStyleChanges+      (\ s a -> s{_hrSuggestedTextStyleChanges = a})++-- | The suggested deletion IDs. If empty, then there are no suggested+-- deletions of this content.+hrSuggestedDeletionIds :: Lens' HorizontalRule [Text]+hrSuggestedDeletionIds+  = lens _hrSuggestedDeletionIds+      (\ s a -> s{_hrSuggestedDeletionIds = a})+      . _Default+      . _Coerce++-- | The text style of this HorizontalRule. Similar to text content, like+-- text runs and footnote references, the text style of a horizontal rule+-- can affect content layout as well as the styling of text inserted+-- adjacent to it.+hrTextStyle :: Lens' HorizontalRule (Maybe TextStyle)+hrTextStyle+  = lens _hrTextStyle (\ s a -> s{_hrTextStyle = a})++instance FromJSON HorizontalRule where+        parseJSON+          = withObject "HorizontalRule"+              (\ o ->+                 HorizontalRule' <$>+                   (o .:? "suggestedInsertionIds" .!= mempty) <*>+                     (o .:? "suggestedTextStyleChanges")+                     <*> (o .:? "suggestedDeletionIds" .!= mempty)+                     <*> (o .:? "textStyle"))++instance ToJSON HorizontalRule where+        toJSON HorizontalRule'{..}+          = object+              (catMaybes+                 [("suggestedInsertionIds" .=) <$>+                    _hrSuggestedInsertionIds,+                  ("suggestedTextStyleChanges" .=) <$>+                    _hrSuggestedTextStyleChanges,+                  ("suggestedDeletionIds" .=) <$>+                    _hrSuggestedDeletionIds,+                  ("textStyle" .=) <$> _hrTextStyle])++-- | A mask that indicates which of the fields on the base EmbeddedObject+-- have been changed in this suggestion. For any field set to true, there+-- is a new suggested value.+--+-- /See:/ 'embeddedObjectSuggestionState' smart constructor.+data EmbeddedObjectSuggestionState =+  EmbeddedObjectSuggestionState'+    { _eossEmbeddedObjectBOrderSuggestionState      :: !(Maybe EmbeddedObjectBOrderSuggestionState)+    , _eossEmbeddedDrawingPropertiesSuggestionState :: !(Maybe EmbeddedDrawingPropertiesSuggestionState)+    , _eossTitleSuggested                           :: !(Maybe Bool)+    , _eossMarginTopSuggested                       :: !(Maybe Bool)+    , _eossSizeSuggestionState                      :: !(Maybe SizeSuggestionState)+    , _eossMarginBottomSuggested                    :: !(Maybe Bool)+    , _eossImagePropertiesSuggestionState           :: !(Maybe ImagePropertiesSuggestionState)+    , _eossMarginLeftSuggested                      :: !(Maybe Bool)+    , _eossLinkedContentReferenceSuggestionState    :: !(Maybe LinkedContentReferenceSuggestionState)+    , _eossDescriptionSuggested                     :: !(Maybe Bool)+    , _eossMarginRightSuggested                     :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EmbeddedObjectSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eossEmbeddedObjectBOrderSuggestionState'+--+-- * 'eossEmbeddedDrawingPropertiesSuggestionState'+--+-- * 'eossTitleSuggested'+--+-- * 'eossMarginTopSuggested'+--+-- * 'eossSizeSuggestionState'+--+-- * 'eossMarginBottomSuggested'+--+-- * 'eossImagePropertiesSuggestionState'+--+-- * 'eossMarginLeftSuggested'+--+-- * 'eossLinkedContentReferenceSuggestionState'+--+-- * 'eossDescriptionSuggested'+--+-- * 'eossMarginRightSuggested'+embeddedObjectSuggestionState+    :: EmbeddedObjectSuggestionState+embeddedObjectSuggestionState =+  EmbeddedObjectSuggestionState'+    { _eossEmbeddedObjectBOrderSuggestionState = Nothing+    , _eossEmbeddedDrawingPropertiesSuggestionState = Nothing+    , _eossTitleSuggested = Nothing+    , _eossMarginTopSuggested = Nothing+    , _eossSizeSuggestionState = Nothing+    , _eossMarginBottomSuggested = Nothing+    , _eossImagePropertiesSuggestionState = Nothing+    , _eossMarginLeftSuggested = Nothing+    , _eossLinkedContentReferenceSuggestionState = Nothing+    , _eossDescriptionSuggested = Nothing+    , _eossMarginRightSuggested = Nothing+    }+++-- | A mask that indicates which of the fields in embedded_object_border have+-- been changed in this suggestion.+eossEmbeddedObjectBOrderSuggestionState :: Lens' EmbeddedObjectSuggestionState (Maybe EmbeddedObjectBOrderSuggestionState)+eossEmbeddedObjectBOrderSuggestionState+  = lens _eossEmbeddedObjectBOrderSuggestionState+      (\ s a ->+         s{_eossEmbeddedObjectBOrderSuggestionState = a})++-- | A mask that indicates which of the fields in embedded_drawing_properties+-- have been changed in this suggestion.+eossEmbeddedDrawingPropertiesSuggestionState :: Lens' EmbeddedObjectSuggestionState (Maybe EmbeddedDrawingPropertiesSuggestionState)+eossEmbeddedDrawingPropertiesSuggestionState+  = lens _eossEmbeddedDrawingPropertiesSuggestionState+      (\ s a ->+         s{_eossEmbeddedDrawingPropertiesSuggestionState = a})++-- | Indicates if there was a suggested change to title.+eossTitleSuggested :: Lens' EmbeddedObjectSuggestionState (Maybe Bool)+eossTitleSuggested+  = lens _eossTitleSuggested+      (\ s a -> s{_eossTitleSuggested = a})++-- | Indicates if there was a suggested change to margin_top.+eossMarginTopSuggested :: Lens' EmbeddedObjectSuggestionState (Maybe Bool)+eossMarginTopSuggested+  = lens _eossMarginTopSuggested+      (\ s a -> s{_eossMarginTopSuggested = a})++-- | A mask that indicates which of the fields in size have been changed in+-- this suggestion.+eossSizeSuggestionState :: Lens' EmbeddedObjectSuggestionState (Maybe SizeSuggestionState)+eossSizeSuggestionState+  = lens _eossSizeSuggestionState+      (\ s a -> s{_eossSizeSuggestionState = a})++-- | Indicates if there was a suggested change to margin_bottom.+eossMarginBottomSuggested :: Lens' EmbeddedObjectSuggestionState (Maybe Bool)+eossMarginBottomSuggested+  = lens _eossMarginBottomSuggested+      (\ s a -> s{_eossMarginBottomSuggested = a})++-- | A mask that indicates which of the fields in image_properties have been+-- changed in this suggestion.+eossImagePropertiesSuggestionState :: Lens' EmbeddedObjectSuggestionState (Maybe ImagePropertiesSuggestionState)+eossImagePropertiesSuggestionState+  = lens _eossImagePropertiesSuggestionState+      (\ s a -> s{_eossImagePropertiesSuggestionState = a})++-- | Indicates if there was a suggested change to margin_left.+eossMarginLeftSuggested :: Lens' EmbeddedObjectSuggestionState (Maybe Bool)+eossMarginLeftSuggested+  = lens _eossMarginLeftSuggested+      (\ s a -> s{_eossMarginLeftSuggested = a})++-- | A mask that indicates which of the fields in linked_content_reference+-- have been changed in this suggestion.+eossLinkedContentReferenceSuggestionState :: Lens' EmbeddedObjectSuggestionState (Maybe LinkedContentReferenceSuggestionState)+eossLinkedContentReferenceSuggestionState+  = lens _eossLinkedContentReferenceSuggestionState+      (\ s a ->+         s{_eossLinkedContentReferenceSuggestionState = a})++-- | Indicates if there was a suggested change to description.+eossDescriptionSuggested :: Lens' EmbeddedObjectSuggestionState (Maybe Bool)+eossDescriptionSuggested+  = lens _eossDescriptionSuggested+      (\ s a -> s{_eossDescriptionSuggested = a})++-- | Indicates if there was a suggested change to margin_right.+eossMarginRightSuggested :: Lens' EmbeddedObjectSuggestionState (Maybe Bool)+eossMarginRightSuggested+  = lens _eossMarginRightSuggested+      (\ s a -> s{_eossMarginRightSuggested = a})++instance FromJSON EmbeddedObjectSuggestionState where+        parseJSON+          = withObject "EmbeddedObjectSuggestionState"+              (\ o ->+                 EmbeddedObjectSuggestionState' <$>+                   (o .:? "embeddedObjectBorderSuggestionState") <*>+                     (o .:? "embeddedDrawingPropertiesSuggestionState")+                     <*> (o .:? "titleSuggested")+                     <*> (o .:? "marginTopSuggested")+                     <*> (o .:? "sizeSuggestionState")+                     <*> (o .:? "marginBottomSuggested")+                     <*> (o .:? "imagePropertiesSuggestionState")+                     <*> (o .:? "marginLeftSuggested")+                     <*> (o .:? "linkedContentReferenceSuggestionState")+                     <*> (o .:? "descriptionSuggested")+                     <*> (o .:? "marginRightSuggested"))++instance ToJSON EmbeddedObjectSuggestionState where+        toJSON EmbeddedObjectSuggestionState'{..}+          = object+              (catMaybes+                 [("embeddedObjectBorderSuggestionState" .=) <$>+                    _eossEmbeddedObjectBOrderSuggestionState,+                  ("embeddedDrawingPropertiesSuggestionState" .=) <$>+                    _eossEmbeddedDrawingPropertiesSuggestionState,+                  ("titleSuggested" .=) <$> _eossTitleSuggested,+                  ("marginTopSuggested" .=) <$>+                    _eossMarginTopSuggested,+                  ("sizeSuggestionState" .=) <$>+                    _eossSizeSuggestionState,+                  ("marginBottomSuggested" .=) <$>+                    _eossMarginBottomSuggested,+                  ("imagePropertiesSuggestionState" .=) <$>+                    _eossImagePropertiesSuggestionState,+                  ("marginLeftSuggested" .=) <$>+                    _eossMarginLeftSuggested,+                  ("linkedContentReferenceSuggestionState" .=) <$>+                    _eossLinkedContentReferenceSuggestionState,+                  ("descriptionSuggested" .=) <$>+                    _eossDescriptionSuggested,+                  ("marginRightSuggested" .=) <$>+                    _eossMarginRightSuggested])++-- | Inserts a table at the specified location. A newline character will be+-- inserted before the inserted table.+--+-- /See:/ 'insertTableRequest' smart constructor.+data InsertTableRequest =+  InsertTableRequest'+    { _itrLocation             :: !(Maybe Location)+    , _itrEndOfSegmentLocation :: !(Maybe EndOfSegmentLocation)+    , _itrRows                 :: !(Maybe (Textual Int32))+    , _itrColumns              :: !(Maybe (Textual Int32))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InsertTableRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'itrLocation'+--+-- * 'itrEndOfSegmentLocation'+--+-- * 'itrRows'+--+-- * 'itrColumns'+insertTableRequest+    :: InsertTableRequest+insertTableRequest =+  InsertTableRequest'+    { _itrLocation = Nothing+    , _itrEndOfSegmentLocation = Nothing+    , _itrRows = Nothing+    , _itrColumns = Nothing+    }+++-- | Inserts the table at a specific model index. A newline character will be+-- inserted before the inserted table, therefore the table start index will+-- be at the specified location index + 1. The table must be inserted+-- inside the bounds of an existing Paragraph. For instance, it cannot be+-- inserted at a table\'s start index (i.e. between an existing table and+-- its preceding paragraph). Tables cannot be inserted inside a footnote or+-- equation.+itrLocation :: Lens' InsertTableRequest (Maybe Location)+itrLocation+  = lens _itrLocation (\ s a -> s{_itrLocation = a})++-- | Inserts the table at the end of the given header, footer or document+-- body. A newline character will be inserted before the inserted table.+-- Tables cannot be inserted inside a footnote.+itrEndOfSegmentLocation :: Lens' InsertTableRequest (Maybe EndOfSegmentLocation)+itrEndOfSegmentLocation+  = lens _itrEndOfSegmentLocation+      (\ s a -> s{_itrEndOfSegmentLocation = a})++-- | The number of rows in the table.+itrRows :: Lens' InsertTableRequest (Maybe Int32)+itrRows+  = lens _itrRows (\ s a -> s{_itrRows = a}) .+      mapping _Coerce++-- | The number of columns in the table.+itrColumns :: Lens' InsertTableRequest (Maybe Int32)+itrColumns+  = lens _itrColumns (\ s a -> s{_itrColumns = a}) .+      mapping _Coerce++instance FromJSON InsertTableRequest where+        parseJSON+          = withObject "InsertTableRequest"+              (\ o ->+                 InsertTableRequest' <$>+                   (o .:? "location") <*> (o .:? "endOfSegmentLocation")+                     <*> (o .:? "rows")+                     <*> (o .:? "columns"))++instance ToJSON InsertTableRequest where+        toJSON InsertTableRequest'{..}+          = object+              (catMaybes+                 [("location" .=) <$> _itrLocation,+                  ("endOfSegmentLocation" .=) <$>+                    _itrEndOfSegmentLocation,+                  ("rows" .=) <$> _itrRows,+                  ("columns" .=) <$> _itrColumns])++-- | A suggested change to InlineObjectProperties.+--+-- /See:/ 'suggestedInlineObjectProperties' smart constructor.+data SuggestedInlineObjectProperties =+  SuggestedInlineObjectProperties'+    { _siopInlineObjectProperties                :: !(Maybe InlineObjectProperties)+    , _siopInlineObjectPropertiesSuggestionState :: !(Maybe InlineObjectPropertiesSuggestionState)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SuggestedInlineObjectProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siopInlineObjectProperties'+--+-- * 'siopInlineObjectPropertiesSuggestionState'+suggestedInlineObjectProperties+    :: SuggestedInlineObjectProperties+suggestedInlineObjectProperties =+  SuggestedInlineObjectProperties'+    { _siopInlineObjectProperties = Nothing+    , _siopInlineObjectPropertiesSuggestionState = Nothing+    }+++-- | An InlineObjectProperties that only includes the changes made in this+-- suggestion. This can be used along with the+-- inline_object_properties_suggestion_state to see which fields have+-- changed and their new values.+siopInlineObjectProperties :: Lens' SuggestedInlineObjectProperties (Maybe InlineObjectProperties)+siopInlineObjectProperties+  = lens _siopInlineObjectProperties+      (\ s a -> s{_siopInlineObjectProperties = a})++-- | A mask that indicates which of the fields on the base+-- InlineObjectProperties have been changed in this suggestion.+siopInlineObjectPropertiesSuggestionState :: Lens' SuggestedInlineObjectProperties (Maybe InlineObjectPropertiesSuggestionState)+siopInlineObjectPropertiesSuggestionState+  = lens _siopInlineObjectPropertiesSuggestionState+      (\ s a ->+         s{_siopInlineObjectPropertiesSuggestionState = a})++instance FromJSON SuggestedInlineObjectProperties+         where+        parseJSON+          = withObject "SuggestedInlineObjectProperties"+              (\ o ->+                 SuggestedInlineObjectProperties' <$>+                   (o .:? "inlineObjectProperties") <*>+                     (o .:? "inlineObjectPropertiesSuggestionState"))++instance ToJSON SuggestedInlineObjectProperties where+        toJSON SuggestedInlineObjectProperties'{..}+          = object+              (catMaybes+                 [("inlineObjectProperties" .=) <$>+                    _siopInlineObjectProperties,+                  ("inlineObjectPropertiesSuggestionState" .=) <$>+                    _siopInlineObjectPropertiesSuggestionState])++-- | A mask that indicates which of the fields on the base+-- LinkedContentReference have been changed in this suggestion. For any+-- field set to true, there is a new suggested value.+--+-- /See:/ 'linkedContentReferenceSuggestionState' smart constructor.+newtype LinkedContentReferenceSuggestionState =+  LinkedContentReferenceSuggestionState'+    { _lcrssSheetsChartReferenceSuggestionState :: Maybe SheetsChartReferenceSuggestionState+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'LinkedContentReferenceSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lcrssSheetsChartReferenceSuggestionState'+linkedContentReferenceSuggestionState+    :: LinkedContentReferenceSuggestionState+linkedContentReferenceSuggestionState =+  LinkedContentReferenceSuggestionState'+    {_lcrssSheetsChartReferenceSuggestionState = Nothing}+++-- | A mask that indicates which of the fields in sheets_chart_reference have+-- been changed in this suggestion.+lcrssSheetsChartReferenceSuggestionState :: Lens' LinkedContentReferenceSuggestionState (Maybe SheetsChartReferenceSuggestionState)+lcrssSheetsChartReferenceSuggestionState+  = lens _lcrssSheetsChartReferenceSuggestionState+      (\ s a ->+         s{_lcrssSheetsChartReferenceSuggestionState = a})++instance FromJSON+           LinkedContentReferenceSuggestionState+         where+        parseJSON+          = withObject "LinkedContentReferenceSuggestionState"+              (\ o ->+                 LinkedContentReferenceSuggestionState' <$>+                   (o .:? "sheetsChartReferenceSuggestionState"))++instance ToJSON LinkedContentReferenceSuggestionState+         where+        toJSON LinkedContentReferenceSuggestionState'{..}+          = object+              (catMaybes+                 [("sheetsChartReferenceSuggestionState" .=) <$>+                    _lcrssSheetsChartReferenceSuggestionState])++-- | The suggested text style changes to this InlineObject, keyed by+-- suggestion ID.+--+-- /See:/ 'inlineObjectElementSuggestedTextStyleChanges' smart constructor.+newtype InlineObjectElementSuggestedTextStyleChanges =+  InlineObjectElementSuggestedTextStyleChanges'+    { _ioestscAddtional :: HashMap Text SuggestedTextStyle+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InlineObjectElementSuggestedTextStyleChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ioestscAddtional'+inlineObjectElementSuggestedTextStyleChanges+    :: HashMap Text SuggestedTextStyle -- ^ 'ioestscAddtional'+    -> InlineObjectElementSuggestedTextStyleChanges+inlineObjectElementSuggestedTextStyleChanges pIoestscAddtional_ =+  InlineObjectElementSuggestedTextStyleChanges'+    {_ioestscAddtional = _Coerce # pIoestscAddtional_}+++ioestscAddtional :: Lens' InlineObjectElementSuggestedTextStyleChanges (HashMap Text SuggestedTextStyle)+ioestscAddtional+  = lens _ioestscAddtional+      (\ s a -> s{_ioestscAddtional = a})+      . _Coerce++instance FromJSON+           InlineObjectElementSuggestedTextStyleChanges+         where+        parseJSON+          = withObject+              "InlineObjectElementSuggestedTextStyleChanges"+              (\ o ->+                 InlineObjectElementSuggestedTextStyleChanges' <$>+                   (parseJSONObject o))++instance ToJSON+           InlineObjectElementSuggestedTextStyleChanges+         where+        toJSON = toJSON . _ioestscAddtional++-- | A StructuralElement describes content that provides structure to the+-- document.+--+-- /See:/ 'structuralElement' smart constructor.+data StructuralElement =+  StructuralElement'+    { _seTableOfContents :: !(Maybe TableOfContents)+    , _seParagraph       :: !(Maybe Paragraph)+    , _seEndIndex        :: !(Maybe (Textual Int32))+    , _seTable           :: !(Maybe Table)+    , _seStartIndex      :: !(Maybe (Textual Int32))+    , _seSectionBreak    :: !(Maybe SectionBreak)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'StructuralElement' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'seTableOfContents'+--+-- * 'seParagraph'+--+-- * 'seEndIndex'+--+-- * 'seTable'+--+-- * 'seStartIndex'+--+-- * 'seSectionBreak'+structuralElement+    :: StructuralElement+structuralElement =+  StructuralElement'+    { _seTableOfContents = Nothing+    , _seParagraph = Nothing+    , _seEndIndex = Nothing+    , _seTable = Nothing+    , _seStartIndex = Nothing+    , _seSectionBreak = Nothing+    }+++-- | A table of contents type of structural element.+seTableOfContents :: Lens' StructuralElement (Maybe TableOfContents)+seTableOfContents+  = lens _seTableOfContents+      (\ s a -> s{_seTableOfContents = a})++-- | A paragraph type of structural element.+seParagraph :: Lens' StructuralElement (Maybe Paragraph)+seParagraph+  = lens _seParagraph (\ s a -> s{_seParagraph = a})++-- | The zero-based end index of this structural element, exclusive, in+-- UTF-16 code units.+seEndIndex :: Lens' StructuralElement (Maybe Int32)+seEndIndex+  = lens _seEndIndex (\ s a -> s{_seEndIndex = a}) .+      mapping _Coerce++-- | A table type of structural element.+seTable :: Lens' StructuralElement (Maybe Table)+seTable = lens _seTable (\ s a -> s{_seTable = a})++-- | The zero-based start index of this structural element, in UTF-16 code+-- units.+seStartIndex :: Lens' StructuralElement (Maybe Int32)+seStartIndex+  = lens _seStartIndex (\ s a -> s{_seStartIndex = a})+      . mapping _Coerce++-- | A section break type of structural element.+seSectionBreak :: Lens' StructuralElement (Maybe SectionBreak)+seSectionBreak+  = lens _seSectionBreak+      (\ s a -> s{_seSectionBreak = a})++instance FromJSON StructuralElement where+        parseJSON+          = withObject "StructuralElement"+              (\ o ->+                 StructuralElement' <$>+                   (o .:? "tableOfContents") <*> (o .:? "paragraph") <*>+                     (o .:? "endIndex")+                     <*> (o .:? "table")+                     <*> (o .:? "startIndex")+                     <*> (o .:? "sectionBreak"))++instance ToJSON StructuralElement where+        toJSON StructuralElement'{..}+          = object+              (catMaybes+                 [("tableOfContents" .=) <$> _seTableOfContents,+                  ("paragraph" .=) <$> _seParagraph,+                  ("endIndex" .=) <$> _seEndIndex,+                  ("table" .=) <$> _seTable,+                  ("startIndex" .=) <$> _seStartIndex,+                  ("sectionBreak" .=) <$> _seSectionBreak])++-- | Deletes bullets from all of the paragraphs that overlap with the given+-- range. The nesting level of each paragraph will be visually preserved by+-- adding indent to the start of the corresponding paragraph.+--+-- /See:/ 'deleteParagraphBulletsRequest' smart constructor.+newtype DeleteParagraphBulletsRequest =+  DeleteParagraphBulletsRequest'+    { _dpbrRange :: Maybe Range+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteParagraphBulletsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dpbrRange'+deleteParagraphBulletsRequest+    :: DeleteParagraphBulletsRequest+deleteParagraphBulletsRequest =+  DeleteParagraphBulletsRequest' {_dpbrRange = Nothing}+++-- | The range to delete bullets from.+dpbrRange :: Lens' DeleteParagraphBulletsRequest (Maybe Range)+dpbrRange+  = lens _dpbrRange (\ s a -> s{_dpbrRange = a})++instance FromJSON DeleteParagraphBulletsRequest where+        parseJSON+          = withObject "DeleteParagraphBulletsRequest"+              (\ o ->+                 DeleteParagraphBulletsRequest' <$> (o .:? "range"))++instance ToJSON DeleteParagraphBulletsRequest where+        toJSON DeleteParagraphBulletsRequest'{..}+          = object (catMaybes [("range" .=) <$> _dpbrRange])++-- | Request message for BatchUpdateDocument.+--+-- /See:/ 'batchUpdateDocumentRequest' smart constructor.+data BatchUpdateDocumentRequest =+  BatchUpdateDocumentRequest'+    { _bRequests     :: !(Maybe [Request'])+    , _bWriteControl :: !(Maybe WriteControl)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BatchUpdateDocumentRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bRequests'+--+-- * 'bWriteControl'+batchUpdateDocumentRequest+    :: BatchUpdateDocumentRequest+batchUpdateDocumentRequest =+  BatchUpdateDocumentRequest' {_bRequests = Nothing, _bWriteControl = Nothing}+++-- | A list of updates to apply to the document.+bRequests :: Lens' BatchUpdateDocumentRequest [Request']+bRequests+  = lens _bRequests (\ s a -> s{_bRequests = a}) .+      _Default+      . _Coerce++-- | Provides control over how write requests are executed.+bWriteControl :: Lens' BatchUpdateDocumentRequest (Maybe WriteControl)+bWriteControl+  = lens _bWriteControl+      (\ s a -> s{_bWriteControl = a})++instance FromJSON BatchUpdateDocumentRequest where+        parseJSON+          = withObject "BatchUpdateDocumentRequest"+              (\ o ->+                 BatchUpdateDocumentRequest' <$>+                   (o .:? "requests" .!= mempty) <*>+                     (o .:? "writeControl"))++instance ToJSON BatchUpdateDocumentRequest where+        toJSON BatchUpdateDocumentRequest'{..}+          = object+              (catMaybes+                 [("requests" .=) <$> _bRequests,+                  ("writeControl" .=) <$> _bWriteControl])++-- | The properties of a list which describe the look and feel of bullets+-- belonging to paragraphs associated with a list.+--+-- /See:/ 'listProperties' smart constructor.+newtype ListProperties =+  ListProperties'+    { _lpNestingLevels :: Maybe [NestingLevel]+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lpNestingLevels'+listProperties+    :: ListProperties+listProperties = ListProperties' {_lpNestingLevels = Nothing}+++-- | Describes the properties of the bullets at the associated level. A list+-- has at most nine levels of nesting with nesting level 0 corresponding to+-- the top-most level and nesting level 8 corresponding to the most nested+-- level. The nesting levels are returned in ascending order with the least+-- nested returned first.+lpNestingLevels :: Lens' ListProperties [NestingLevel]+lpNestingLevels+  = lens _lpNestingLevels+      (\ s a -> s{_lpNestingLevels = a})+      . _Default+      . _Coerce++instance FromJSON ListProperties where+        parseJSON+          = withObject "ListProperties"+              (\ o ->+                 ListProperties' <$>+                   (o .:? "nestingLevels" .!= mempty))++instance ToJSON ListProperties where+        toJSON ListProperties'{..}+          = object+              (catMaybes+                 [("nestingLevels" .=) <$> _lpNestingLevels])++-- | Inserts text at the specified location.+--+-- /See:/ 'insertTextRequest' smart constructor.+data InsertTextRequest =+  InsertTextRequest'+    { _iLocation             :: !(Maybe Location)+    , _iText                 :: !(Maybe Text)+    , _iEndOfSegmentLocation :: !(Maybe EndOfSegmentLocation)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InsertTextRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iLocation'+--+-- * 'iText'+--+-- * 'iEndOfSegmentLocation'+insertTextRequest+    :: InsertTextRequest+insertTextRequest =+  InsertTextRequest'+    {_iLocation = Nothing, _iText = Nothing, _iEndOfSegmentLocation = Nothing}+++-- | Inserts the text at a specific index in the document. Text must be+-- inserted inside the bounds of an existing Paragraph. For instance, text+-- cannot be inserted at a table\'s start index (i.e. between the table and+-- its preceding paragraph). The text must be inserted in the preceding+-- paragraph.+iLocation :: Lens' InsertTextRequest (Maybe Location)+iLocation+  = lens _iLocation (\ s a -> s{_iLocation = a})++-- | The text to be inserted. Inserting a newline character will implicitly+-- create a new Paragraph at that index. The paragraph style of the new+-- paragraph will be copied from the paragraph at the current insertion+-- index, including lists and bullets. Text styles for inserted text will+-- be determined automatically, generally preserving the styling of+-- neighboring text. In most cases, the text style for the inserted text+-- will match the text immediately before the insertion index. Some control+-- characters (U+0000-U+0008, U+000C-U+001F) and characters from the+-- Unicode Basic Multilingual Plane Private Use Area (U+E000-U+F8FF) will+-- be stripped out of the inserted text.+iText :: Lens' InsertTextRequest (Maybe Text)+iText = lens _iText (\ s a -> s{_iText = a})++-- | Inserts the text at the end of a header, footer, footnote or the+-- document body.+iEndOfSegmentLocation :: Lens' InsertTextRequest (Maybe EndOfSegmentLocation)+iEndOfSegmentLocation+  = lens _iEndOfSegmentLocation+      (\ s a -> s{_iEndOfSegmentLocation = a})++instance FromJSON InsertTextRequest where+        parseJSON+          = withObject "InsertTextRequest"+              (\ o ->+                 InsertTextRequest' <$>+                   (o .:? "location") <*> (o .:? "text") <*>+                     (o .:? "endOfSegmentLocation"))++instance ToJSON InsertTextRequest where+        toJSON InsertTextRequest'{..}+          = object+              (catMaybes+                 [("location" .=) <$> _iLocation,+                  ("text" .=) <$> _iText,+                  ("endOfSegmentLocation" .=) <$>+                    _iEndOfSegmentLocation])++-- | The suggested text style changes to this ColumnBreak, keyed by+-- suggestion ID.+--+-- /See:/ 'columnBreakSuggestedTextStyleChanges' smart constructor.+newtype ColumnBreakSuggestedTextStyleChanges =+  ColumnBreakSuggestedTextStyleChanges'+    { _cbstscAddtional :: HashMap Text SuggestedTextStyle+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ColumnBreakSuggestedTextStyleChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cbstscAddtional'+columnBreakSuggestedTextStyleChanges+    :: HashMap Text SuggestedTextStyle -- ^ 'cbstscAddtional'+    -> ColumnBreakSuggestedTextStyleChanges+columnBreakSuggestedTextStyleChanges pCbstscAddtional_ =+  ColumnBreakSuggestedTextStyleChanges'+    {_cbstscAddtional = _Coerce # pCbstscAddtional_}+++cbstscAddtional :: Lens' ColumnBreakSuggestedTextStyleChanges (HashMap Text SuggestedTextStyle)+cbstscAddtional+  = lens _cbstscAddtional+      (\ s a -> s{_cbstscAddtional = a})+      . _Coerce++instance FromJSON+           ColumnBreakSuggestedTextStyleChanges+         where+        parseJSON+          = withObject "ColumnBreakSuggestedTextStyleChanges"+              (\ o ->+                 ColumnBreakSuggestedTextStyleChanges' <$>+                   (parseJSONObject o))++instance ToJSON ColumnBreakSuggestedTextStyleChanges+         where+        toJSON = toJSON . _cbstscAddtional++-- | The suggested text style changes to this FootnoteReference, keyed by+-- suggestion ID.+--+-- /See:/ 'footNoteReferenceSuggestedTextStyleChanges' smart constructor.+newtype FootNoteReferenceSuggestedTextStyleChanges =+  FootNoteReferenceSuggestedTextStyleChanges'+    { _fnrstscAddtional :: HashMap Text SuggestedTextStyle+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FootNoteReferenceSuggestedTextStyleChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fnrstscAddtional'+footNoteReferenceSuggestedTextStyleChanges+    :: HashMap Text SuggestedTextStyle -- ^ 'fnrstscAddtional'+    -> FootNoteReferenceSuggestedTextStyleChanges+footNoteReferenceSuggestedTextStyleChanges pFnrstscAddtional_ =+  FootNoteReferenceSuggestedTextStyleChanges'+    {_fnrstscAddtional = _Coerce # pFnrstscAddtional_}+++fnrstscAddtional :: Lens' FootNoteReferenceSuggestedTextStyleChanges (HashMap Text SuggestedTextStyle)+fnrstscAddtional+  = lens _fnrstscAddtional+      (\ s a -> s{_fnrstscAddtional = a})+      . _Coerce++instance FromJSON+           FootNoteReferenceSuggestedTextStyleChanges+         where+        parseJSON+          = withObject+              "FootNoteReferenceSuggestedTextStyleChanges"+              (\ o ->+                 FootNoteReferenceSuggestedTextStyleChanges' <$>+                   (parseJSONObject o))++instance ToJSON+           FootNoteReferenceSuggestedTextStyleChanges+         where+        toJSON = toJSON . _fnrstscAddtional++-- | The headers in the document, keyed by header ID.+--+-- /See:/ 'documentHeaders' smart constructor.+newtype DocumentHeaders =+  DocumentHeaders'+    { _dhAddtional :: HashMap Text Header+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DocumentHeaders' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dhAddtional'+documentHeaders+    :: HashMap Text Header -- ^ 'dhAddtional'+    -> DocumentHeaders+documentHeaders pDhAddtional_ =+  DocumentHeaders' {_dhAddtional = _Coerce # pDhAddtional_}+++dhAddtional :: Lens' DocumentHeaders (HashMap Text Header)+dhAddtional+  = lens _dhAddtional (\ s a -> s{_dhAddtional = a}) .+      _Coerce++instance FromJSON DocumentHeaders where+        parseJSON+          = withObject "DocumentHeaders"+              (\ o -> DocumentHeaders' <$> (parseJSONObject o))++instance ToJSON DocumentHeaders where+        toJSON = toJSON . _dhAddtional++-- | Styles that apply to a table row.+--+-- /See:/ 'tableRowStyle' smart constructor.+newtype TableRowStyle =+  TableRowStyle'+    { _trsMinRowHeight :: Maybe Dimension+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TableRowStyle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'trsMinRowHeight'+tableRowStyle+    :: TableRowStyle+tableRowStyle = TableRowStyle' {_trsMinRowHeight = Nothing}+++-- | The minimum height of the row. The row will be rendered in the Docs+-- editor at a height equal to or greater than this value in order to show+-- all the content in the row\'s cells.+trsMinRowHeight :: Lens' TableRowStyle (Maybe Dimension)+trsMinRowHeight+  = lens _trsMinRowHeight+      (\ s a -> s{_trsMinRowHeight = a})++instance FromJSON TableRowStyle where+        parseJSON+          = withObject "TableRowStyle"+              (\ o -> TableRowStyle' <$> (o .:? "minRowHeight"))++instance ToJSON TableRowStyle where+        toJSON TableRowStyle'{..}+          = object+              (catMaybes+                 [("minRowHeight" .=) <$> _trsMinRowHeight])++-- | A StructuralElement representing a section break. A section is a range+-- of content which has the same SectionStyle. A section break represents+-- the start of a new section, and the section style applies to the section+-- after the section break. The document body always begins with a section+-- break.+--+-- /See:/ 'sectionBreak' smart constructor.+data SectionBreak =+  SectionBreak'+    { _sbSuggestedInsertionIds :: !(Maybe [Text])+    , _sbSuggestedDeletionIds  :: !(Maybe [Text])+    , _sbSectionStyle          :: !(Maybe SectionStyle)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SectionBreak' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sbSuggestedInsertionIds'+--+-- * 'sbSuggestedDeletionIds'+--+-- * 'sbSectionStyle'+sectionBreak+    :: SectionBreak+sectionBreak =+  SectionBreak'+    { _sbSuggestedInsertionIds = Nothing+    , _sbSuggestedDeletionIds = Nothing+    , _sbSectionStyle = Nothing+    }+++-- | The suggested insertion IDs. A SectionBreak may have multiple insertion+-- IDs if it is a nested suggested change. If empty, then this is not a+-- suggested insertion.+sbSuggestedInsertionIds :: Lens' SectionBreak [Text]+sbSuggestedInsertionIds+  = lens _sbSuggestedInsertionIds+      (\ s a -> s{_sbSuggestedInsertionIds = a})+      . _Default+      . _Coerce++-- | The suggested deletion IDs. If empty, then there are no suggested+-- deletions of this content.+sbSuggestedDeletionIds :: Lens' SectionBreak [Text]+sbSuggestedDeletionIds+  = lens _sbSuggestedDeletionIds+      (\ s a -> s{_sbSuggestedDeletionIds = a})+      . _Default+      . _Coerce++-- | The style of the section after this section break.+sbSectionStyle :: Lens' SectionBreak (Maybe SectionStyle)+sbSectionStyle+  = lens _sbSectionStyle+      (\ s a -> s{_sbSectionStyle = a})++instance FromJSON SectionBreak where+        parseJSON+          = withObject "SectionBreak"+              (\ o ->+                 SectionBreak' <$>+                   (o .:? "suggestedInsertionIds" .!= mempty) <*>+                     (o .:? "suggestedDeletionIds" .!= mempty)+                     <*> (o .:? "sectionStyle"))++instance ToJSON SectionBreak where+        toJSON SectionBreak'{..}+          = object+              (catMaybes+                 [("suggestedInsertionIds" .=) <$>+                    _sbSuggestedInsertionIds,+                  ("suggestedDeletionIds" .=) <$>+                    _sbSuggestedDeletionIds,+                  ("sectionStyle" .=) <$> _sbSectionStyle])++-- | A StructuralElement representing a table.+--+-- /See:/ 'table' smart constructor.+data Table =+  Table'+    { _tabSuggestedInsertionIds :: !(Maybe [Text])+    , _tabTableRows             :: !(Maybe [TableRow])+    , _tabRows                  :: !(Maybe (Textual Int32))+    , _tabTableStyle            :: !(Maybe TableStyle)+    , _tabSuggestedDeletionIds  :: !(Maybe [Text])+    , _tabColumns               :: !(Maybe (Textual Int32))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Table' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tabSuggestedInsertionIds'+--+-- * 'tabTableRows'+--+-- * 'tabRows'+--+-- * 'tabTableStyle'+--+-- * 'tabSuggestedDeletionIds'+--+-- * 'tabColumns'+table+    :: Table+table =+  Table'+    { _tabSuggestedInsertionIds = Nothing+    , _tabTableRows = Nothing+    , _tabRows = Nothing+    , _tabTableStyle = Nothing+    , _tabSuggestedDeletionIds = Nothing+    , _tabColumns = Nothing+    }+++-- | The suggested insertion IDs. A Table may have multiple insertion IDs if+-- it is a nested suggested change. If empty, then this is not a suggested+-- insertion.+tabSuggestedInsertionIds :: Lens' Table [Text]+tabSuggestedInsertionIds+  = lens _tabSuggestedInsertionIds+      (\ s a -> s{_tabSuggestedInsertionIds = a})+      . _Default+      . _Coerce++-- | The contents and style of each row.+tabTableRows :: Lens' Table [TableRow]+tabTableRows+  = lens _tabTableRows (\ s a -> s{_tabTableRows = a})+      . _Default+      . _Coerce++-- | Number of rows in the table.+tabRows :: Lens' Table (Maybe Int32)+tabRows+  = lens _tabRows (\ s a -> s{_tabRows = a}) .+      mapping _Coerce++-- | The style of the table.+tabTableStyle :: Lens' Table (Maybe TableStyle)+tabTableStyle+  = lens _tabTableStyle+      (\ s a -> s{_tabTableStyle = a})++-- | The suggested deletion IDs. If empty, then there are no suggested+-- deletions of this content.+tabSuggestedDeletionIds :: Lens' Table [Text]+tabSuggestedDeletionIds+  = lens _tabSuggestedDeletionIds+      (\ s a -> s{_tabSuggestedDeletionIds = a})+      . _Default+      . _Coerce++-- | Number of columns in the table. It is possible for a table to be+-- non-rectangular, so some rows may have a different number of cells.+tabColumns :: Lens' Table (Maybe Int32)+tabColumns+  = lens _tabColumns (\ s a -> s{_tabColumns = a}) .+      mapping _Coerce++instance FromJSON Table where+        parseJSON+          = withObject "Table"+              (\ o ->+                 Table' <$>+                   (o .:? "suggestedInsertionIds" .!= mempty) <*>+                     (o .:? "tableRows" .!= mempty)+                     <*> (o .:? "rows")+                     <*> (o .:? "tableStyle")+                     <*> (o .:? "suggestedDeletionIds" .!= mempty)+                     <*> (o .:? "columns"))++instance ToJSON Table where+        toJSON Table'{..}+          = object+              (catMaybes+                 [("suggestedInsertionIds" .=) <$>+                    _tabSuggestedInsertionIds,+                  ("tableRows" .=) <$> _tabTableRows,+                  ("rows" .=) <$> _tabRows,+                  ("tableStyle" .=) <$> _tabTableStyle,+                  ("suggestedDeletionIds" .=) <$>+                    _tabSuggestedDeletionIds,+                  ("columns" .=) <$> _tabColumns])++-- | The styling that applies to a section.+--+-- /See:/ 'sectionStyle' smart constructor.+data SectionStyle =+  SectionStyle'+    { _ssColumnSeparatorStyle :: !(Maybe SectionStyleColumnSeparatorStyle)+    , _ssContentDirection     :: !(Maybe SectionStyleContentDirection)+    , _ssColumnProperties     :: !(Maybe [SectionColumnProperties])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SectionStyle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ssColumnSeparatorStyle'+--+-- * 'ssContentDirection'+--+-- * 'ssColumnProperties'+sectionStyle+    :: SectionStyle+sectionStyle =+  SectionStyle'+    { _ssColumnSeparatorStyle = Nothing+    , _ssContentDirection = Nothing+    , _ssColumnProperties = Nothing+    }+++-- | The style of column separators. This style can be set even when there is+-- one column in the section.+ssColumnSeparatorStyle :: Lens' SectionStyle (Maybe SectionStyleColumnSeparatorStyle)+ssColumnSeparatorStyle+  = lens _ssColumnSeparatorStyle+      (\ s a -> s{_ssColumnSeparatorStyle = a})++-- | The content direction of this section. If unset, the value defaults to+-- LEFT_TO_RIGHT.+ssContentDirection :: Lens' SectionStyle (Maybe SectionStyleContentDirection)+ssContentDirection+  = lens _ssContentDirection+      (\ s a -> s{_ssContentDirection = a})++-- | The section\'s columns properties. If empty, the section contains one+-- column with the default properties in the Docs editor.+ssColumnProperties :: Lens' SectionStyle [SectionColumnProperties]+ssColumnProperties+  = lens _ssColumnProperties+      (\ s a -> s{_ssColumnProperties = a})+      . _Default+      . _Coerce++instance FromJSON SectionStyle where+        parseJSON+          = withObject "SectionStyle"+              (\ o ->+                 SectionStyle' <$>+                   (o .:? "columnSeparatorStyle") <*>+                     (o .:? "contentDirection")+                     <*> (o .:? "columnProperties" .!= mempty))++instance ToJSON SectionStyle where+        toJSON SectionStyle'{..}+          = object+              (catMaybes+                 [("columnSeparatorStyle" .=) <$>+                    _ssColumnSeparatorStyle,+                  ("contentDirection" .=) <$> _ssContentDirection,+                  ("columnProperties" .=) <$> _ssColumnProperties])++-- | Represents the background of a document.+--+-- /See:/ 'backgRound' smart constructor.+newtype BackgRound =+  BackgRound'+    { _brColor :: Maybe OptionalColor+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BackgRound' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'brColor'+backgRound+    :: BackgRound+backgRound = BackgRound' {_brColor = Nothing}+++-- | The background color.+brColor :: Lens' BackgRound (Maybe OptionalColor)+brColor = lens _brColor (\ s a -> s{_brColor = a})++instance FromJSON BackgRound where+        parseJSON+          = withObject "BackgRound"+              (\ o -> BackgRound' <$> (o .:? "color"))++instance ToJSON BackgRound where+        toJSON BackgRound'{..}+          = object (catMaybes [("color" .=) <$> _brColor])++-- | A suggested change to ListProperties.+--+-- /See:/ 'suggestedListProperties' smart constructor.+data SuggestedListProperties =+  SuggestedListProperties'+    { _slpListPropertiesSuggestionState :: !(Maybe ListPropertiesSuggestionState)+    , _slpListProperties                :: !(Maybe ListProperties)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SuggestedListProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'slpListPropertiesSuggestionState'+--+-- * 'slpListProperties'+suggestedListProperties+    :: SuggestedListProperties+suggestedListProperties =+  SuggestedListProperties'+    {_slpListPropertiesSuggestionState = Nothing, _slpListProperties = Nothing}+++-- | A mask that indicates which of the fields on the base ListProperties+-- have been changed in this suggestion.+slpListPropertiesSuggestionState :: Lens' SuggestedListProperties (Maybe ListPropertiesSuggestionState)+slpListPropertiesSuggestionState+  = lens _slpListPropertiesSuggestionState+      (\ s a -> s{_slpListPropertiesSuggestionState = a})++-- | A ListProperties that only includes the changes made in this suggestion.+-- This can be used along with the list_properties_suggestion_state to see+-- which fields have changed and their new values.+slpListProperties :: Lens' SuggestedListProperties (Maybe ListProperties)+slpListProperties+  = lens _slpListProperties+      (\ s a -> s{_slpListProperties = a})++instance FromJSON SuggestedListProperties where+        parseJSON+          = withObject "SuggestedListProperties"+              (\ o ->+                 SuggestedListProperties' <$>+                   (o .:? "listPropertiesSuggestionState") <*>+                     (o .:? "listProperties"))++instance ToJSON SuggestedListProperties where+        toJSON SuggestedListProperties'{..}+          = object+              (catMaybes+                 [("listPropertiesSuggestionState" .=) <$>+                    _slpListPropertiesSuggestionState,+                  ("listProperties" .=) <$> _slpListProperties])++-- | Properties that apply to a section\'s column.+--+-- /See:/ 'sectionColumnProperties' smart constructor.+data SectionColumnProperties =+  SectionColumnProperties'+    { _scpWidth      :: !(Maybe Dimension)+    , _scpPaddingEnd :: !(Maybe Dimension)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SectionColumnProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scpWidth'+--+-- * 'scpPaddingEnd'+sectionColumnProperties+    :: SectionColumnProperties+sectionColumnProperties =+  SectionColumnProperties' {_scpWidth = Nothing, _scpPaddingEnd = Nothing}+++-- | The width of the column.+scpWidth :: Lens' SectionColumnProperties (Maybe Dimension)+scpWidth = lens _scpWidth (\ s a -> s{_scpWidth = a})++-- | The padding at the end of the column.+scpPaddingEnd :: Lens' SectionColumnProperties (Maybe Dimension)+scpPaddingEnd+  = lens _scpPaddingEnd+      (\ s a -> s{_scpPaddingEnd = a})++instance FromJSON SectionColumnProperties where+        parseJSON+          = withObject "SectionColumnProperties"+              (\ o ->+                 SectionColumnProperties' <$>+                   (o .:? "width") <*> (o .:? "paddingEnd"))++instance ToJSON SectionColumnProperties where+        toJSON SectionColumnProperties'{..}+          = object+              (catMaybes+                 [("width" .=) <$> _scpWidth,+                  ("paddingEnd" .=) <$> _scpPaddingEnd])++-- | Creates bullets for all of the paragraphs that overlap with the given+-- range. The nesting level of each paragraph will be determined by+-- counting leading tabs in front of each paragraph. To avoid excess space+-- between the bullet and the corresponding paragraph, these leading tabs+-- are removed by this request. This may change the indices of parts of the+-- text. If the paragraph immediately before paragraphs being updated is in+-- a list with a matching preset, the paragraphs being updated are added to+-- that preceding list.+--+-- /See:/ 'createParagraphBulletsRequest' smart constructor.+data CreateParagraphBulletsRequest =+  CreateParagraphBulletsRequest'+    { _cpbrBulletPreset :: !(Maybe CreateParagraphBulletsRequestBulletPreset)+    , _cpbrRange        :: !(Maybe Range)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateParagraphBulletsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpbrBulletPreset'+--+-- * 'cpbrRange'+createParagraphBulletsRequest+    :: CreateParagraphBulletsRequest+createParagraphBulletsRequest =+  CreateParagraphBulletsRequest'+    {_cpbrBulletPreset = Nothing, _cpbrRange = Nothing}+++-- | The kinds of bullet glyphs to be used.+cpbrBulletPreset :: Lens' CreateParagraphBulletsRequest (Maybe CreateParagraphBulletsRequestBulletPreset)+cpbrBulletPreset+  = lens _cpbrBulletPreset+      (\ s a -> s{_cpbrBulletPreset = a})++-- | The range to apply the bullet preset to.+cpbrRange :: Lens' CreateParagraphBulletsRequest (Maybe Range)+cpbrRange+  = lens _cpbrRange (\ s a -> s{_cpbrRange = a})++instance FromJSON CreateParagraphBulletsRequest where+        parseJSON+          = withObject "CreateParagraphBulletsRequest"+              (\ o ->+                 CreateParagraphBulletsRequest' <$>+                   (o .:? "bulletPreset") <*> (o .:? "range"))++instance ToJSON CreateParagraphBulletsRequest where+        toJSON CreateParagraphBulletsRequest'{..}+          = object+              (catMaybes+                 [("bulletPreset" .=) <$> _cpbrBulletPreset,+                  ("range" .=) <$> _cpbrRange])++-- | The footers in the document, keyed by footer ID.+--+-- /See:/ 'documentFooters' smart constructor.+newtype DocumentFooters =+  DocumentFooters'+    { _dfAddtional :: HashMap Text Footer+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DocumentFooters' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfAddtional'+documentFooters+    :: HashMap Text Footer -- ^ 'dfAddtional'+    -> DocumentFooters+documentFooters pDfAddtional_ =+  DocumentFooters' {_dfAddtional = _Coerce # pDfAddtional_}+++dfAddtional :: Lens' DocumentFooters (HashMap Text Footer)+dfAddtional+  = lens _dfAddtional (\ s a -> s{_dfAddtional = a}) .+      _Coerce++instance FromJSON DocumentFooters where+        parseJSON+          = withObject "DocumentFooters"+              (\ o -> DocumentFooters' <$> (parseJSONObject o))++instance ToJSON DocumentFooters where+        toJSON = toJSON . _dfAddtional++-- | Creates a NamedRange referencing the given range.+--+-- /See:/ 'createNamedRangeRequest' smart constructor.+data CreateNamedRangeRequest =+  CreateNamedRangeRequest'+    { _cnrrName  :: !(Maybe Text)+    , _cnrrRange :: !(Maybe Range)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateNamedRangeRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cnrrName'+--+-- * 'cnrrRange'+createNamedRangeRequest+    :: CreateNamedRangeRequest+createNamedRangeRequest =+  CreateNamedRangeRequest' {_cnrrName = Nothing, _cnrrRange = Nothing}+++-- | The name of the NamedRange. Names do not need to be unique. Names must+-- be at least 1 character and no more than 256 characters, measured in+-- UTF-16 code units.+cnrrName :: Lens' CreateNamedRangeRequest (Maybe Text)+cnrrName = lens _cnrrName (\ s a -> s{_cnrrName = a})++-- | The range to apply the name to.+cnrrRange :: Lens' CreateNamedRangeRequest (Maybe Range)+cnrrRange+  = lens _cnrrRange (\ s a -> s{_cnrrRange = a})++instance FromJSON CreateNamedRangeRequest where+        parseJSON+          = withObject "CreateNamedRangeRequest"+              (\ o ->+                 CreateNamedRangeRequest' <$>+                   (o .:? "name") <*> (o .:? "range"))++instance ToJSON CreateNamedRangeRequest where+        toJSON CreateNamedRangeRequest'{..}+          = object+              (catMaybes+                 [("name" .=) <$> _cnrrName,+                  ("range" .=) <$> _cnrrRange])++-- | A mask that indicates which of the fields on the base TextStyle have+-- been changed in this suggestion. For any field set to true, there is a+-- new suggested value.+--+-- /See:/ 'textStyleSuggestionState' smart constructor.+data TextStyleSuggestionState =+  TextStyleSuggestionState'+    { _tsssItalicSuggested             :: !(Maybe Bool)+    , _tsssUnderlineSuggested          :: !(Maybe Bool)+    , _tsssFontSizeSuggested           :: !(Maybe Bool)+    , _tsssSmallCapsSuggested          :: !(Maybe Bool)+    , _tsssForegRoundColorSuggested    :: !(Maybe Bool)+    , _tsssBaselineOffSetSuggested     :: !(Maybe Bool)+    , _tsssWeightedFontFamilySuggested :: !(Maybe Bool)+    , _tsssStrikethroughSuggested      :: !(Maybe Bool)+    , _tsssLinkSuggested               :: !(Maybe Bool)+    , _tsssBoldSuggested               :: !(Maybe Bool)+    , _tsssBackgRoundColorSuggested    :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TextStyleSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tsssItalicSuggested'+--+-- * 'tsssUnderlineSuggested'+--+-- * 'tsssFontSizeSuggested'+--+-- * 'tsssSmallCapsSuggested'+--+-- * 'tsssForegRoundColorSuggested'+--+-- * 'tsssBaselineOffSetSuggested'+--+-- * 'tsssWeightedFontFamilySuggested'+--+-- * 'tsssStrikethroughSuggested'+--+-- * 'tsssLinkSuggested'+--+-- * 'tsssBoldSuggested'+--+-- * 'tsssBackgRoundColorSuggested'+textStyleSuggestionState+    :: TextStyleSuggestionState+textStyleSuggestionState =+  TextStyleSuggestionState'+    { _tsssItalicSuggested = Nothing+    , _tsssUnderlineSuggested = Nothing+    , _tsssFontSizeSuggested = Nothing+    , _tsssSmallCapsSuggested = Nothing+    , _tsssForegRoundColorSuggested = Nothing+    , _tsssBaselineOffSetSuggested = Nothing+    , _tsssWeightedFontFamilySuggested = Nothing+    , _tsssStrikethroughSuggested = Nothing+    , _tsssLinkSuggested = Nothing+    , _tsssBoldSuggested = Nothing+    , _tsssBackgRoundColorSuggested = Nothing+    }+++-- | Indicates if there was a suggested change to italic.+tsssItalicSuggested :: Lens' TextStyleSuggestionState (Maybe Bool)+tsssItalicSuggested+  = lens _tsssItalicSuggested+      (\ s a -> s{_tsssItalicSuggested = a})++-- | Indicates if there was a suggested change to underline.+tsssUnderlineSuggested :: Lens' TextStyleSuggestionState (Maybe Bool)+tsssUnderlineSuggested+  = lens _tsssUnderlineSuggested+      (\ s a -> s{_tsssUnderlineSuggested = a})++-- | Indicates if there was a suggested change to font_size.+tsssFontSizeSuggested :: Lens' TextStyleSuggestionState (Maybe Bool)+tsssFontSizeSuggested+  = lens _tsssFontSizeSuggested+      (\ s a -> s{_tsssFontSizeSuggested = a})++-- | Indicates if there was a suggested change to small_caps.+tsssSmallCapsSuggested :: Lens' TextStyleSuggestionState (Maybe Bool)+tsssSmallCapsSuggested+  = lens _tsssSmallCapsSuggested+      (\ s a -> s{_tsssSmallCapsSuggested = a})++-- | Indicates if there was a suggested change to foreground_color.+tsssForegRoundColorSuggested :: Lens' TextStyleSuggestionState (Maybe Bool)+tsssForegRoundColorSuggested+  = lens _tsssForegRoundColorSuggested+      (\ s a -> s{_tsssForegRoundColorSuggested = a})++-- | Indicates if there was a suggested change to baseline_offset.+tsssBaselineOffSetSuggested :: Lens' TextStyleSuggestionState (Maybe Bool)+tsssBaselineOffSetSuggested+  = lens _tsssBaselineOffSetSuggested+      (\ s a -> s{_tsssBaselineOffSetSuggested = a})++-- | Indicates if there was a suggested change to weighted_font_family.+tsssWeightedFontFamilySuggested :: Lens' TextStyleSuggestionState (Maybe Bool)+tsssWeightedFontFamilySuggested+  = lens _tsssWeightedFontFamilySuggested+      (\ s a -> s{_tsssWeightedFontFamilySuggested = a})++-- | Indicates if there was a suggested change to strikethrough.+tsssStrikethroughSuggested :: Lens' TextStyleSuggestionState (Maybe Bool)+tsssStrikethroughSuggested+  = lens _tsssStrikethroughSuggested+      (\ s a -> s{_tsssStrikethroughSuggested = a})++-- | Indicates if there was a suggested change to link.+tsssLinkSuggested :: Lens' TextStyleSuggestionState (Maybe Bool)+tsssLinkSuggested+  = lens _tsssLinkSuggested+      (\ s a -> s{_tsssLinkSuggested = a})++-- | Indicates if there was a suggested change to bold.+tsssBoldSuggested :: Lens' TextStyleSuggestionState (Maybe Bool)+tsssBoldSuggested+  = lens _tsssBoldSuggested+      (\ s a -> s{_tsssBoldSuggested = a})++-- | Indicates if there was a suggested change to background_color.+tsssBackgRoundColorSuggested :: Lens' TextStyleSuggestionState (Maybe Bool)+tsssBackgRoundColorSuggested+  = lens _tsssBackgRoundColorSuggested+      (\ s a -> s{_tsssBackgRoundColorSuggested = a})++instance FromJSON TextStyleSuggestionState where+        parseJSON+          = withObject "TextStyleSuggestionState"+              (\ o ->+                 TextStyleSuggestionState' <$>+                   (o .:? "italicSuggested") <*>+                     (o .:? "underlineSuggested")+                     <*> (o .:? "fontSizeSuggested")+                     <*> (o .:? "smallCapsSuggested")+                     <*> (o .:? "foregroundColorSuggested")+                     <*> (o .:? "baselineOffsetSuggested")+                     <*> (o .:? "weightedFontFamilySuggested")+                     <*> (o .:? "strikethroughSuggested")+                     <*> (o .:? "linkSuggested")+                     <*> (o .:? "boldSuggested")+                     <*> (o .:? "backgroundColorSuggested"))++instance ToJSON TextStyleSuggestionState where+        toJSON TextStyleSuggestionState'{..}+          = object+              (catMaybes+                 [("italicSuggested" .=) <$> _tsssItalicSuggested,+                  ("underlineSuggested" .=) <$>+                    _tsssUnderlineSuggested,+                  ("fontSizeSuggested" .=) <$> _tsssFontSizeSuggested,+                  ("smallCapsSuggested" .=) <$>+                    _tsssSmallCapsSuggested,+                  ("foregroundColorSuggested" .=) <$>+                    _tsssForegRoundColorSuggested,+                  ("baselineOffsetSuggested" .=) <$>+                    _tsssBaselineOffSetSuggested,+                  ("weightedFontFamilySuggested" .=) <$>+                    _tsssWeightedFontFamilySuggested,+                  ("strikethroughSuggested" .=) <$>+                    _tsssStrikethroughSuggested,+                  ("linkSuggested" .=) <$> _tsssLinkSuggested,+                  ("boldSuggested" .=) <$> _tsssBoldSuggested,+                  ("backgroundColorSuggested" .=) <$>+                    _tsssBackgRoundColorSuggested])++-- | A mask that indicates which of the fields on the base NestingLevel have+-- been changed in this suggestion. For any field set to true, there is a+-- new suggested value.+--+-- /See:/ 'nestingLevelSuggestionState' smart constructor.+data NestingLevelSuggestionState =+  NestingLevelSuggestionState'+    { _nlssGlyphFormatSuggested     :: !(Maybe Bool)+    , _nlssBulletAlignmentSuggested :: !(Maybe Bool)+    , _nlssGlyphTypeSuggested       :: !(Maybe Bool)+    , _nlssStartNumberSuggested     :: !(Maybe Bool)+    , _nlssIndentStartSuggested     :: !(Maybe Bool)+    , _nlssGlyphSymbolSuggested     :: !(Maybe Bool)+    , _nlssIndentFirstLineSuggested :: !(Maybe Bool)+    , _nlssTextStyleSuggestionState :: !(Maybe TextStyleSuggestionState)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NestingLevelSuggestionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nlssGlyphFormatSuggested'+--+-- * 'nlssBulletAlignmentSuggested'+--+-- * 'nlssGlyphTypeSuggested'+--+-- * 'nlssStartNumberSuggested'+--+-- * 'nlssIndentStartSuggested'+--+-- * 'nlssGlyphSymbolSuggested'+--+-- * 'nlssIndentFirstLineSuggested'+--+-- * 'nlssTextStyleSuggestionState'+nestingLevelSuggestionState+    :: NestingLevelSuggestionState+nestingLevelSuggestionState =+  NestingLevelSuggestionState'+    { _nlssGlyphFormatSuggested = Nothing+    , _nlssBulletAlignmentSuggested = Nothing+    , _nlssGlyphTypeSuggested = Nothing+    , _nlssStartNumberSuggested = Nothing+    , _nlssIndentStartSuggested = Nothing+    , _nlssGlyphSymbolSuggested = Nothing+    , _nlssIndentFirstLineSuggested = Nothing+    , _nlssTextStyleSuggestionState = Nothing+    }+++-- | Indicates if there was a suggested change to glyph_format.+nlssGlyphFormatSuggested :: Lens' NestingLevelSuggestionState (Maybe Bool)+nlssGlyphFormatSuggested+  = lens _nlssGlyphFormatSuggested+      (\ s a -> s{_nlssGlyphFormatSuggested = a})++-- | Indicates if there was a suggested change to bullet_alignment.+nlssBulletAlignmentSuggested :: Lens' NestingLevelSuggestionState (Maybe Bool)+nlssBulletAlignmentSuggested+  = lens _nlssBulletAlignmentSuggested+      (\ s a -> s{_nlssBulletAlignmentSuggested = a})++-- | Indicates if there was a suggested change to glyph_type.+nlssGlyphTypeSuggested :: Lens' NestingLevelSuggestionState (Maybe Bool)+nlssGlyphTypeSuggested+  = lens _nlssGlyphTypeSuggested+      (\ s a -> s{_nlssGlyphTypeSuggested = a})++-- | Indicates if there was a suggested change to start_number.+nlssStartNumberSuggested :: Lens' NestingLevelSuggestionState (Maybe Bool)+nlssStartNumberSuggested+  = lens _nlssStartNumberSuggested+      (\ s a -> s{_nlssStartNumberSuggested = a})++-- | Indicates if there was a suggested change to indent_start.+nlssIndentStartSuggested :: Lens' NestingLevelSuggestionState (Maybe Bool)+nlssIndentStartSuggested+  = lens _nlssIndentStartSuggested+      (\ s a -> s{_nlssIndentStartSuggested = a})++-- | Indicates if there was a suggested change to glyph_symbol.+nlssGlyphSymbolSuggested :: Lens' NestingLevelSuggestionState (Maybe Bool)+nlssGlyphSymbolSuggested+  = lens _nlssGlyphSymbolSuggested+      (\ s a -> s{_nlssGlyphSymbolSuggested = a})++-- | Indicates if there was a suggested change to indent_first_line.+nlssIndentFirstLineSuggested :: Lens' NestingLevelSuggestionState (Maybe Bool)+nlssIndentFirstLineSuggested+  = lens _nlssIndentFirstLineSuggested+      (\ s a -> s{_nlssIndentFirstLineSuggested = a})++-- | A mask that indicates which of the fields in text style have been+-- changed in this suggestion.+nlssTextStyleSuggestionState :: Lens' NestingLevelSuggestionState (Maybe TextStyleSuggestionState)+nlssTextStyleSuggestionState+  = lens _nlssTextStyleSuggestionState+      (\ s a -> s{_nlssTextStyleSuggestionState = a})++instance FromJSON NestingLevelSuggestionState where+        parseJSON+          = withObject "NestingLevelSuggestionState"+              (\ o ->+                 NestingLevelSuggestionState' <$>+                   (o .:? "glyphFormatSuggested") <*>+                     (o .:? "bulletAlignmentSuggested")+                     <*> (o .:? "glyphTypeSuggested")+                     <*> (o .:? "startNumberSuggested")+                     <*> (o .:? "indentStartSuggested")+                     <*> (o .:? "glyphSymbolSuggested")+                     <*> (o .:? "indentFirstLineSuggested")+                     <*> (o .:? "textStyleSuggestionState"))++instance ToJSON NestingLevelSuggestionState where+        toJSON NestingLevelSuggestionState'{..}+          = object+              (catMaybes+                 [("glyphFormatSuggested" .=) <$>+                    _nlssGlyphFormatSuggested,+                  ("bulletAlignmentSuggested" .=) <$>+                    _nlssBulletAlignmentSuggested,+                  ("glyphTypeSuggested" .=) <$>+                    _nlssGlyphTypeSuggested,+                  ("startNumberSuggested" .=) <$>+                    _nlssStartNumberSuggested,+                  ("indentStartSuggested" .=) <$>+                    _nlssIndentStartSuggested,+                  ("glyphSymbolSuggested" .=) <$>+                    _nlssGlyphSymbolSuggested,+                  ("indentFirstLineSuggested" .=) <$>+                    _nlssIndentFirstLineSuggested,+                  ("textStyleSuggestionState" .=) <$>+                    _nlssTextStyleSuggestionState])++-- | Styles that apply to a whole paragraph. Inherited paragraph styles are+-- represented as unset fields in this message. A paragraph style\'s parent+-- depends on where the paragraph style is defined: * The ParagraphStyle on+-- a Paragraph inherits from the paragraph\'s corresponding named style+-- type. * The ParagraphStyle on a named style inherits from the normal+-- text named style. * The ParagraphStyle of the normal text named style+-- inherits from the default paragraph style in the Docs editor. * The+-- ParagraphStyle on a Paragraph element that is contained in a table may+-- inherit its paragraph style from the table style. If the paragraph style+-- does not inherit from a parent, unsetting fields will revert the style+-- to a value matching the defaults in the Docs editor.+--+-- /See:/ 'paragraphStyle' smart constructor.+data ParagraphStyle =+  ParagraphStyle'+    { _psBOrderRight         :: !(Maybe ParagraphBOrder)+    , _psKeepLinesTogether   :: !(Maybe Bool)+    , _psTabStops            :: !(Maybe [TabStop])+    , _psBOrderTop           :: !(Maybe ParagraphBOrder)+    , _psLineSpacing         :: !(Maybe (Textual Double))+    , _psDirection           :: !(Maybe ParagraphStyleDirection)+    , _psIndentFirstLine     :: !(Maybe Dimension)+    , _psIndentEnd           :: !(Maybe Dimension)+    , _psShading             :: !(Maybe Shading)+    , _psAvoidWidowAndOrphan :: !(Maybe Bool)+    , _psNamedStyleType      :: !(Maybe ParagraphStyleNamedStyleType)+    , _psIndentStart         :: !(Maybe Dimension)+    , _psAlignment           :: !(Maybe ParagraphStyleAlignment)+    , _psBOrderLeft          :: !(Maybe ParagraphBOrder)+    , _psSpaceBelow          :: !(Maybe Dimension)+    , _psSpacingMode         :: !(Maybe ParagraphStyleSpacingMode)+    , _psHeadingId           :: !(Maybe Text)+    , _psSpaceAbove          :: !(Maybe Dimension)+    , _psBOrderBottom        :: !(Maybe ParagraphBOrder)+    , _psKeepWithNext        :: !(Maybe Bool)+    , _psBOrderBetween       :: !(Maybe ParagraphBOrder)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ParagraphStyle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'psBOrderRight'+--+-- * 'psKeepLinesTogether'+--+-- * 'psTabStops'+--+-- * 'psBOrderTop'+--+-- * 'psLineSpacing'+--+-- * 'psDirection'+--+-- * 'psIndentFirstLine'+--+-- * 'psIndentEnd'+--+-- * 'psShading'+--+-- * 'psAvoidWidowAndOrphan'+--+-- * 'psNamedStyleType'+--+-- * 'psIndentStart'+--+-- * 'psAlignment'+--+-- * 'psBOrderLeft'+--+-- * 'psSpaceBelow'+--+-- * 'psSpacingMode'+--+-- * 'psHeadingId'+--+-- * 'psSpaceAbove'+--+-- * 'psBOrderBottom'+--+-- * 'psKeepWithNext'+--+-- * 'psBOrderBetween'+paragraphStyle+    :: ParagraphStyle+paragraphStyle =+  ParagraphStyle'+    { _psBOrderRight = Nothing+    , _psKeepLinesTogether = Nothing+    , _psTabStops = Nothing+    , _psBOrderTop = Nothing+    , _psLineSpacing = Nothing+    , _psDirection = Nothing+    , _psIndentFirstLine = Nothing+    , _psIndentEnd = Nothing+    , _psShading = Nothing+    , _psAvoidWidowAndOrphan = Nothing+    , _psNamedStyleType = Nothing+    , _psIndentStart = Nothing+    , _psAlignment = Nothing+    , _psBOrderLeft = Nothing+    , _psSpaceBelow = Nothing+    , _psSpacingMode = Nothing+    , _psHeadingId = Nothing+    , _psSpaceAbove = Nothing+    , _psBOrderBottom = Nothing+    , _psKeepWithNext = Nothing+    , _psBOrderBetween = Nothing+    }+++-- | The border to the right of this paragraph. If unset, the value is+-- inherited from the parent. Paragraph borders cannot be partially+-- updated. When making changes to a paragraph border the new border must+-- be specified in its entirety.+psBOrderRight :: Lens' ParagraphStyle (Maybe ParagraphBOrder)+psBOrderRight+  = lens _psBOrderRight+      (\ s a -> s{_psBOrderRight = a})++-- | Whether all lines of the paragraph should be laid out on the same page+-- or column if possible. If unset, the value is inherited from the parent.+psKeepLinesTogether :: Lens' ParagraphStyle (Maybe Bool)+psKeepLinesTogether+  = lens _psKeepLinesTogether+      (\ s a -> s{_psKeepLinesTogether = a})++-- | A list of the tab stops for this paragraph. The list of tab stops is not+-- inherited. This property is read-only.+psTabStops :: Lens' ParagraphStyle [TabStop]+psTabStops+  = lens _psTabStops (\ s a -> s{_psTabStops = a}) .+      _Default+      . _Coerce++-- | The border at the top of this paragraph. If unset, the value is+-- inherited from the parent. The top border is rendered when the paragraph+-- above has different border and indent properties. Paragraph borders+-- cannot be partially updated. When making changes to a paragraph border+-- the new border must be specified in its entirety.+psBOrderTop :: Lens' ParagraphStyle (Maybe ParagraphBOrder)+psBOrderTop+  = lens _psBOrderTop (\ s a -> s{_psBOrderTop = a})++-- | The amount of space between lines, as a percentage of normal, where+-- normal is represented as 100.0. If unset, the value is inherited from+-- the parent.+psLineSpacing :: Lens' ParagraphStyle (Maybe Double)+psLineSpacing+  = lens _psLineSpacing+      (\ s a -> s{_psLineSpacing = a})+      . mapping _Coerce++-- | The text direction of this paragraph. If unset, the value defaults to+-- LEFT_TO_RIGHT since paragraph direction is not inherited.+psDirection :: Lens' ParagraphStyle (Maybe ParagraphStyleDirection)+psDirection+  = lens _psDirection (\ s a -> s{_psDirection = a})++-- | The amount of indentation for the first line of the paragraph. If unset,+-- the value is inherited from the parent.+psIndentFirstLine :: Lens' ParagraphStyle (Maybe Dimension)+psIndentFirstLine+  = lens _psIndentFirstLine+      (\ s a -> s{_psIndentFirstLine = a})++-- | The amount of indentation for the paragraph on the side that corresponds+-- to the end of the text, based on the current paragraph direction. If+-- unset, the value is inherited from the parent.+psIndentEnd :: Lens' ParagraphStyle (Maybe Dimension)+psIndentEnd+  = lens _psIndentEnd (\ s a -> s{_psIndentEnd = a})++-- | The shading of the paragraph. If unset, the value is inherited from the+-- parent.+psShading :: Lens' ParagraphStyle (Maybe Shading)+psShading+  = lens _psShading (\ s a -> s{_psShading = a})++-- | Whether to avoid widows and orphans for the paragraph. If unset, the+-- value is inherited from the parent.+psAvoidWidowAndOrphan :: Lens' ParagraphStyle (Maybe Bool)+psAvoidWidowAndOrphan+  = lens _psAvoidWidowAndOrphan+      (\ s a -> s{_psAvoidWidowAndOrphan = a})++-- | The named style type of the paragraph. Since updating the named style+-- type affects other properties within ParagraphStyle, the named style+-- type is applied before the other properties are updated.+psNamedStyleType :: Lens' ParagraphStyle (Maybe ParagraphStyleNamedStyleType)+psNamedStyleType+  = lens _psNamedStyleType+      (\ s a -> s{_psNamedStyleType = a})++-- | The amount of indentation for the paragraph on the side that corresponds+-- to the start of the text, based on the current paragraph direction. If+-- unset, the value is inherited from the parent.+psIndentStart :: Lens' ParagraphStyle (Maybe Dimension)+psIndentStart+  = lens _psIndentStart+      (\ s a -> s{_psIndentStart = a})++-- | The text alignment for this paragraph.+psAlignment :: Lens' ParagraphStyle (Maybe ParagraphStyleAlignment)+psAlignment+  = lens _psAlignment (\ s a -> s{_psAlignment = a})++-- | The border to the left of this paragraph. If unset, the value is+-- inherited from the parent. Paragraph borders cannot be partially+-- updated. When making changes to a paragraph border the new border must+-- be specified in its entirety.+psBOrderLeft :: Lens' ParagraphStyle (Maybe ParagraphBOrder)+psBOrderLeft+  = lens _psBOrderLeft (\ s a -> s{_psBOrderLeft = a})++-- | The amount of extra space below the paragraph. If unset, the value is+-- inherited from the parent.+psSpaceBelow :: Lens' ParagraphStyle (Maybe Dimension)+psSpaceBelow+  = lens _psSpaceBelow (\ s a -> s{_psSpaceBelow = a})++-- | The spacing mode for the paragraph.+psSpacingMode :: Lens' ParagraphStyle (Maybe ParagraphStyleSpacingMode)+psSpacingMode+  = lens _psSpacingMode+      (\ s a -> s{_psSpacingMode = a})++-- | The heading ID of the paragraph. If empty, then this paragraph is not a+-- heading. This property is read-only.+psHeadingId :: Lens' ParagraphStyle (Maybe Text)+psHeadingId+  = lens _psHeadingId (\ s a -> s{_psHeadingId = a})++-- | The amount of extra space above the paragraph. If unset, the value is+-- inherited from the parent.+psSpaceAbove :: Lens' ParagraphStyle (Maybe Dimension)+psSpaceAbove+  = lens _psSpaceAbove (\ s a -> s{_psSpaceAbove = a})++-- | The border at the bottom of this paragraph. If unset, the value is+-- inherited from the parent. The bottom border is rendered when the+-- paragraph below has different border and indent properties. Paragraph+-- borders cannot be partially updated. When making changes to a paragraph+-- border the new border must be specified in its entirety.+psBOrderBottom :: Lens' ParagraphStyle (Maybe ParagraphBOrder)+psBOrderBottom+  = lens _psBOrderBottom+      (\ s a -> s{_psBOrderBottom = a})++-- | Whether at least a part of this paragraph should be laid out on the same+-- page or column as the next paragraph if possible. If unset, the value is+-- inherited from the parent.+psKeepWithNext :: Lens' ParagraphStyle (Maybe Bool)+psKeepWithNext+  = lens _psKeepWithNext+      (\ s a -> s{_psKeepWithNext = a})++-- | The border between this paragraph and the next and previous paragraphs.+-- If unset, the value is inherited from the parent. The between border is+-- rendered when the adjacent paragraph has the same border and indent+-- properties. Paragraph borders cannot be partially updated. When making+-- changes to a paragraph border the new border must be specified in its+-- entirety.+psBOrderBetween :: Lens' ParagraphStyle (Maybe ParagraphBOrder)+psBOrderBetween+  = lens _psBOrderBetween+      (\ s a -> s{_psBOrderBetween = a})++instance FromJSON ParagraphStyle where+        parseJSON+          = withObject "ParagraphStyle"+              (\ o ->+                 ParagraphStyle' <$>+                   (o .:? "borderRight") <*> (o .:? "keepLinesTogether")+                     <*> (o .:? "tabStops" .!= mempty)+                     <*> (o .:? "borderTop")+                     <*> (o .:? "lineSpacing")+                     <*> (o .:? "direction")+                     <*> (o .:? "indentFirstLine")+                     <*> (o .:? "indentEnd")+                     <*> (o .:? "shading")+                     <*> (o .:? "avoidWidowAndOrphan")+                     <*> (o .:? "namedStyleType")+                     <*> (o .:? "indentStart")+                     <*> (o .:? "alignment")+                     <*> (o .:? "borderLeft")+                     <*> (o .:? "spaceBelow")+                     <*> (o .:? "spacingMode")+                     <*> (o .:? "headingId")+                     <*> (o .:? "spaceAbove")+                     <*> (o .:? "borderBottom")+                     <*> (o .:? "keepWithNext")+                     <*> (o .:? "borderBetween"))++instance ToJSON ParagraphStyle where+        toJSON ParagraphStyle'{..}+          = object+              (catMaybes+                 [("borderRight" .=) <$> _psBOrderRight,+                  ("keepLinesTogether" .=) <$> _psKeepLinesTogether,+                  ("tabStops" .=) <$> _psTabStops,+                  ("borderTop" .=) <$> _psBOrderTop,+                  ("lineSpacing" .=) <$> _psLineSpacing,+                  ("direction" .=) <$> _psDirection,+                  ("indentFirstLine" .=) <$> _psIndentFirstLine,+                  ("indentEnd" .=) <$> _psIndentEnd,+                  ("shading" .=) <$> _psShading,+                  ("avoidWidowAndOrphan" .=) <$>+                    _psAvoidWidowAndOrphan,+                  ("namedStyleType" .=) <$> _psNamedStyleType,+                  ("indentStart" .=) <$> _psIndentStart,+                  ("alignment" .=) <$> _psAlignment,+                  ("borderLeft" .=) <$> _psBOrderLeft,+                  ("spaceBelow" .=) <$> _psSpaceBelow,+                  ("spacingMode" .=) <$> _psSpacingMode,+                  ("headingId" .=) <$> _psHeadingId,+                  ("spaceAbove" .=) <$> _psSpaceAbove,+                  ("borderBottom" .=) <$> _psBOrderBottom,+                  ("keepWithNext" .=) <$> _psKeepWithNext,+                  ("borderBetween" .=) <$> _psBOrderBetween])++-- | A suggested change to PositionedObjectProperties.+--+-- /See:/ 'suggestedPositionedObjectProperties' smart constructor.+data SuggestedPositionedObjectProperties =+  SuggestedPositionedObjectProperties'+    { _spopPositionedObjectProperties                :: !(Maybe PositionedObjectProperties)+    , _spopPositionedObjectPropertiesSuggestionState :: !(Maybe PositionedObjectPropertiesSuggestionState)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SuggestedPositionedObjectProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'spopPositionedObjectProperties'+--+-- * 'spopPositionedObjectPropertiesSuggestionState'+suggestedPositionedObjectProperties+    :: SuggestedPositionedObjectProperties+suggestedPositionedObjectProperties =+  SuggestedPositionedObjectProperties'+    { _spopPositionedObjectProperties = Nothing+    , _spopPositionedObjectPropertiesSuggestionState = Nothing+    }+++-- | A PositionedObjectProperties that only includes the changes made in this+-- suggestion. This can be used along with the+-- positioned_object_properties_suggestion_state to see which fields have+-- changed and their new values.+spopPositionedObjectProperties :: Lens' SuggestedPositionedObjectProperties (Maybe PositionedObjectProperties)+spopPositionedObjectProperties+  = lens _spopPositionedObjectProperties+      (\ s a -> s{_spopPositionedObjectProperties = a})++-- | A mask that indicates which of the fields on the base+-- PositionedObjectProperties have been changed in this suggestion.+spopPositionedObjectPropertiesSuggestionState :: Lens' SuggestedPositionedObjectProperties (Maybe PositionedObjectPropertiesSuggestionState)+spopPositionedObjectPropertiesSuggestionState+  = lens _spopPositionedObjectPropertiesSuggestionState+      (\ s a ->+         s{_spopPositionedObjectPropertiesSuggestionState =+             a})++instance FromJSON SuggestedPositionedObjectProperties+         where+        parseJSON+          = withObject "SuggestedPositionedObjectProperties"+              (\ o ->+                 SuggestedPositionedObjectProperties' <$>+                   (o .:? "positionedObjectProperties") <*>+                     (o .:? "positionedObjectPropertiesSuggestionState"))++instance ToJSON SuggestedPositionedObjectProperties+         where+        toJSON SuggestedPositionedObjectProperties'{..}+          = object+              (catMaybes+                 [("positionedObjectProperties" .=) <$>+                    _spopPositionedObjectProperties,+                  ("positionedObjectPropertiesSuggestionState" .=) <$>+                    _spopPositionedObjectPropertiesSuggestionState])++-- | The properties of a column in a table.+--+-- /See:/ 'tableColumnProperties' smart constructor.+data TableColumnProperties =+  TableColumnProperties'+    { _tcpWidth     :: !(Maybe Dimension)+    , _tcpWidthType :: !(Maybe TableColumnPropertiesWidthType)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TableColumnProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tcpWidth'+--+-- * 'tcpWidthType'+tableColumnProperties+    :: TableColumnProperties+tableColumnProperties =+  TableColumnProperties' {_tcpWidth = Nothing, _tcpWidthType = Nothing}+++-- | The width of the column. Set when the column\'s \`width_type\` is+-- FIXED_WIDTH.+tcpWidth :: Lens' TableColumnProperties (Maybe Dimension)+tcpWidth = lens _tcpWidth (\ s a -> s{_tcpWidth = a})++-- | The width type of the column.+tcpWidthType :: Lens' TableColumnProperties (Maybe TableColumnPropertiesWidthType)+tcpWidthType+  = lens _tcpWidthType (\ s a -> s{_tcpWidthType = a})++instance FromJSON TableColumnProperties where+        parseJSON+          = withObject "TableColumnProperties"+              (\ o ->+                 TableColumnProperties' <$>+                   (o .:? "width") <*> (o .:? "widthType"))++instance ToJSON TableColumnProperties where+        toJSON TableColumnProperties'{..}+          = object+              (catMaybes+                 [("width" .=) <$> _tcpWidth,+                  ("widthType" .=) <$> _tcpWidthType])++-- | Update the styling of all paragraphs that overlap with the given range.+--+-- /See:/ 'updateParagraphStyleRequest' smart constructor.+data UpdateParagraphStyleRequest =+  UpdateParagraphStyleRequest'+    { _upsrRange          :: !(Maybe Range)+    , _upsrFields         :: !(Maybe GFieldMask)+    , _upsrParagraphStyle :: !(Maybe ParagraphStyle)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateParagraphStyleRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'upsrRange'+--+-- * 'upsrFields'+--+-- * 'upsrParagraphStyle'+updateParagraphStyleRequest+    :: UpdateParagraphStyleRequest+updateParagraphStyleRequest =+  UpdateParagraphStyleRequest'+    {_upsrRange = Nothing, _upsrFields = Nothing, _upsrParagraphStyle = Nothing}+++-- | The range overlapping the paragraphs to style.+upsrRange :: Lens' UpdateParagraphStyleRequest (Maybe Range)+upsrRange+  = lens _upsrRange (\ s a -> s{_upsrRange = a})++-- | The fields that should be updated. At least one field must be specified.+-- The root \`paragraph_style\` is implied and should not be specified. For+-- example, to update the paragraph style\'s alignment property, set+-- \`fields\` to \`\"alignment\"\`. To reset a property to its default+-- value, include its field name in the field mask but leave the field+-- itself unset.+upsrFields :: Lens' UpdateParagraphStyleRequest (Maybe GFieldMask)+upsrFields+  = lens _upsrFields (\ s a -> s{_upsrFields = a})++-- | The styles to set on the paragraphs. Certain paragraph style changes may+-- cause other changes in order to mirror the behavior of the Docs editor.+-- See the documentation of ParagraphStyle for more information.+upsrParagraphStyle :: Lens' UpdateParagraphStyleRequest (Maybe ParagraphStyle)+upsrParagraphStyle+  = lens _upsrParagraphStyle+      (\ s a -> s{_upsrParagraphStyle = a})++instance FromJSON UpdateParagraphStyleRequest where+        parseJSON+          = withObject "UpdateParagraphStyleRequest"+              (\ o ->+                 UpdateParagraphStyleRequest' <$>+                   (o .:? "range") <*> (o .:? "fields") <*>+                     (o .:? "paragraphStyle"))++instance ToJSON UpdateParagraphStyleRequest where+        toJSON UpdateParagraphStyleRequest'{..}+          = object+              (catMaybes+                 [("range" .=) <$> _upsrRange,+                  ("fields" .=) <$> _upsrFields,+                  ("paragraphStyle" .=) <$> _upsrParagraphStyle])++-- | Replaces all instances of text matching a criteria with replace text.+--+-- /See:/ 'replaceAllTextRequest' smart constructor.+data ReplaceAllTextRequest =+  ReplaceAllTextRequest'+    { _ratrContainsText :: !(Maybe SubstringMatchCriteria)+    , _ratrReplaceText  :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReplaceAllTextRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ratrContainsText'+--+-- * 'ratrReplaceText'+replaceAllTextRequest+    :: ReplaceAllTextRequest+replaceAllTextRequest =+  ReplaceAllTextRequest'+    {_ratrContainsText = Nothing, _ratrReplaceText = Nothing}+++-- | Finds text in the document matching this substring.+ratrContainsText :: Lens' ReplaceAllTextRequest (Maybe SubstringMatchCriteria)+ratrContainsText+  = lens _ratrContainsText+      (\ s a -> s{_ratrContainsText = a})++-- | The text that will replace the matched text.+ratrReplaceText :: Lens' ReplaceAllTextRequest (Maybe Text)+ratrReplaceText+  = lens _ratrReplaceText+      (\ s a -> s{_ratrReplaceText = a})++instance FromJSON ReplaceAllTextRequest where+        parseJSON+          = withObject "ReplaceAllTextRequest"+              (\ o ->+                 ReplaceAllTextRequest' <$>+                   (o .:? "containsText") <*> (o .:? "replaceText"))++instance ToJSON ReplaceAllTextRequest where+        toJSON ReplaceAllTextRequest'{..}+          = object+              (catMaybes+                 [("containsText" .=) <$> _ratrContainsText,+                  ("replaceText" .=) <$> _ratrReplaceText])++-- | The positioned objects in the document, keyed by object ID.+--+-- /See:/ 'documentPositionedObjects' smart constructor.+newtype DocumentPositionedObjects =+  DocumentPositionedObjects'+    { _dpoAddtional :: HashMap Text PositionedObject+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DocumentPositionedObjects' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dpoAddtional'+documentPositionedObjects+    :: HashMap Text PositionedObject -- ^ 'dpoAddtional'+    -> DocumentPositionedObjects+documentPositionedObjects pDpoAddtional_ =+  DocumentPositionedObjects' {_dpoAddtional = _Coerce # pDpoAddtional_}+++dpoAddtional :: Lens' DocumentPositionedObjects (HashMap Text PositionedObject)+dpoAddtional+  = lens _dpoAddtional (\ s a -> s{_dpoAddtional = a})+      . _Coerce++instance FromJSON DocumentPositionedObjects where+        parseJSON+          = withObject "DocumentPositionedObjects"+              (\ o ->+                 DocumentPositionedObjects' <$> (parseJSONObject o))++instance ToJSON DocumentPositionedObjects where+        toJSON = toJSON . _dpoAddtional++-- | A single update to apply to a document.+--+-- /See:/ 'request'' smart constructor.+data Request' =+  Request''+    { _reqDeletePositionedObject :: !(Maybe DeletePositionedObjectRequest)+    , _reqCreateParagraphBullets :: !(Maybe CreateParagraphBulletsRequest)+    , _reqInsertText             :: !(Maybe InsertTextRequest)+    , _reqDeleteParagraphBullets :: !(Maybe DeleteParagraphBulletsRequest)+    , _reqDeleteTableRow         :: !(Maybe DeleteTableRowRequest)+    , _reqDeleteNamedRange       :: !(Maybe DeleteNamedRangeRequest)+    , _reqReplaceAllText         :: !(Maybe ReplaceAllTextRequest)+    , _reqUpdateParagraphStyle   :: !(Maybe UpdateParagraphStyleRequest)+    , _reqCreateNamedRange       :: !(Maybe CreateNamedRangeRequest)+    , _reqInsertPageBreak        :: !(Maybe InsertPageBreakRequest)+    , _reqDeleteTableColumn      :: !(Maybe DeleteTableColumnRequest)+    , _reqInsertInlineImage      :: !(Maybe InsertInlineImageRequest)+    , _reqDeleteContentRange     :: !(Maybe DeleteContentRangeRequest)+    , _reqInsertTableRow         :: !(Maybe InsertTableRowRequest)+    , _reqUpdateTextStyle        :: !(Maybe UpdateTextStyleRequest)+    , _reqInsertTable            :: !(Maybe InsertTableRequest)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Request' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'reqDeletePositionedObject'+--+-- * 'reqCreateParagraphBullets'+--+-- * 'reqInsertText'+--+-- * 'reqDeleteParagraphBullets'+--+-- * 'reqDeleteTableRow'+--+-- * 'reqDeleteNamedRange'+--+-- * 'reqReplaceAllText'+--+-- * 'reqUpdateParagraphStyle'+--+-- * 'reqCreateNamedRange'+--+-- * 'reqInsertPageBreak'+--+-- * 'reqDeleteTableColumn'+--+-- * 'reqInsertInlineImage'+--+-- * 'reqDeleteContentRange'+--+-- * 'reqInsertTableRow'+--+-- * 'reqUpdateTextStyle'+--+-- * 'reqInsertTable'+request'+    :: Request'+request' =+  Request''+    { _reqDeletePositionedObject = Nothing+    , _reqCreateParagraphBullets = Nothing+    , _reqInsertText = Nothing+    , _reqDeleteParagraphBullets = Nothing+    , _reqDeleteTableRow = Nothing+    , _reqDeleteNamedRange = Nothing+    , _reqReplaceAllText = Nothing+    , _reqUpdateParagraphStyle = Nothing+    , _reqCreateNamedRange = Nothing+    , _reqInsertPageBreak = Nothing+    , _reqDeleteTableColumn = Nothing+    , _reqInsertInlineImage = Nothing+    , _reqDeleteContentRange = Nothing+    , _reqInsertTableRow = Nothing+    , _reqUpdateTextStyle = Nothing+    , _reqInsertTable = Nothing+    }+++-- | Deletes a positioned object from the document.+reqDeletePositionedObject :: Lens' Request' (Maybe DeletePositionedObjectRequest)+reqDeletePositionedObject+  = lens _reqDeletePositionedObject+      (\ s a -> s{_reqDeletePositionedObject = a})++-- | Creates bullets for paragraphs.+reqCreateParagraphBullets :: Lens' Request' (Maybe CreateParagraphBulletsRequest)+reqCreateParagraphBullets+  = lens _reqCreateParagraphBullets+      (\ s a -> s{_reqCreateParagraphBullets = a})++-- | Inserts text at the specified location.+reqInsertText :: Lens' Request' (Maybe InsertTextRequest)+reqInsertText+  = lens _reqInsertText+      (\ s a -> s{_reqInsertText = a})++-- | Deletes bullets from paragraphs.+reqDeleteParagraphBullets :: Lens' Request' (Maybe DeleteParagraphBulletsRequest)+reqDeleteParagraphBullets+  = lens _reqDeleteParagraphBullets+      (\ s a -> s{_reqDeleteParagraphBullets = a})++-- | Deletes a row from a table.+reqDeleteTableRow :: Lens' Request' (Maybe DeleteTableRowRequest)+reqDeleteTableRow+  = lens _reqDeleteTableRow+      (\ s a -> s{_reqDeleteTableRow = a})++-- | Deletes a named range.+reqDeleteNamedRange :: Lens' Request' (Maybe DeleteNamedRangeRequest)+reqDeleteNamedRange+  = lens _reqDeleteNamedRange+      (\ s a -> s{_reqDeleteNamedRange = a})++-- | Replaces all instances of the specified text.+reqReplaceAllText :: Lens' Request' (Maybe ReplaceAllTextRequest)+reqReplaceAllText+  = lens _reqReplaceAllText+      (\ s a -> s{_reqReplaceAllText = a})++-- | Updates the paragraph style at the specified range.+reqUpdateParagraphStyle :: Lens' Request' (Maybe UpdateParagraphStyleRequest)+reqUpdateParagraphStyle+  = lens _reqUpdateParagraphStyle+      (\ s a -> s{_reqUpdateParagraphStyle = a})++-- | Creates a named range.+reqCreateNamedRange :: Lens' Request' (Maybe CreateNamedRangeRequest)+reqCreateNamedRange+  = lens _reqCreateNamedRange+      (\ s a -> s{_reqCreateNamedRange = a})++-- | Inserts a page break at the specified location.+reqInsertPageBreak :: Lens' Request' (Maybe InsertPageBreakRequest)+reqInsertPageBreak+  = lens _reqInsertPageBreak+      (\ s a -> s{_reqInsertPageBreak = a})++-- | Deletes a column from a table.+reqDeleteTableColumn :: Lens' Request' (Maybe DeleteTableColumnRequest)+reqDeleteTableColumn+  = lens _reqDeleteTableColumn+      (\ s a -> s{_reqDeleteTableColumn = a})++-- | Inserts an inline image at the specified location.+reqInsertInlineImage :: Lens' Request' (Maybe InsertInlineImageRequest)+reqInsertInlineImage+  = lens _reqInsertInlineImage+      (\ s a -> s{_reqInsertInlineImage = a})++-- | Deletes content from the document.+reqDeleteContentRange :: Lens' Request' (Maybe DeleteContentRangeRequest)+reqDeleteContentRange+  = lens _reqDeleteContentRange+      (\ s a -> s{_reqDeleteContentRange = a})++-- | Inserts an empty row into a table.+reqInsertTableRow :: Lens' Request' (Maybe InsertTableRowRequest)+reqInsertTableRow+  = lens _reqInsertTableRow+      (\ s a -> s{_reqInsertTableRow = a})++-- | Updates the text style at the specified range.+reqUpdateTextStyle :: Lens' Request' (Maybe UpdateTextStyleRequest)+reqUpdateTextStyle+  = lens _reqUpdateTextStyle+      (\ s a -> s{_reqUpdateTextStyle = a})++-- | Inserts a table at the specified location.+reqInsertTable :: Lens' Request' (Maybe InsertTableRequest)+reqInsertTable+  = lens _reqInsertTable+      (\ s a -> s{_reqInsertTable = a})++instance FromJSON Request' where+        parseJSON+          = withObject "Request"+              (\ o ->+                 Request'' <$>+                   (o .:? "deletePositionedObject") <*>+                     (o .:? "createParagraphBullets")+                     <*> (o .:? "insertText")+                     <*> (o .:? "deleteParagraphBullets")+                     <*> (o .:? "deleteTableRow")+                     <*> (o .:? "deleteNamedRange")+                     <*> (o .:? "replaceAllText")+                     <*> (o .:? "updateParagraphStyle")+                     <*> (o .:? "createNamedRange")+                     <*> (o .:? "insertPageBreak")+                     <*> (o .:? "deleteTableColumn")+                     <*> (o .:? "insertInlineImage")+                     <*> (o .:? "deleteContentRange")+                     <*> (o .:? "insertTableRow")+                     <*> (o .:? "updateTextStyle")+                     <*> (o .:? "insertTable"))++instance ToJSON Request' where+        toJSON Request''{..}+          = object+              (catMaybes+                 [("deletePositionedObject" .=) <$>+                    _reqDeletePositionedObject,+                  ("createParagraphBullets" .=) <$>+                    _reqCreateParagraphBullets,+                  ("insertText" .=) <$> _reqInsertText,+                  ("deleteParagraphBullets" .=) <$>+                    _reqDeleteParagraphBullets,+                  ("deleteTableRow" .=) <$> _reqDeleteTableRow,+                  ("deleteNamedRange" .=) <$> _reqDeleteNamedRange,+                  ("replaceAllText" .=) <$> _reqReplaceAllText,+                  ("updateParagraphStyle" .=) <$>+                    _reqUpdateParagraphStyle,+                  ("createNamedRange" .=) <$> _reqCreateNamedRange,+                  ("insertPageBreak" .=) <$> _reqInsertPageBreak,+                  ("deleteTableColumn" .=) <$> _reqDeleteTableColumn,+                  ("insertInlineImage" .=) <$> _reqInsertInlineImage,+                  ("deleteContentRange" .=) <$> _reqDeleteContentRange,+                  ("insertTableRow" .=) <$> _reqInsertTableRow,+                  ("updateTextStyle" .=) <$> _reqUpdateTextStyle,+                  ("insertTable" .=) <$> _reqInsertTable])++-- | The suggested changes to the positioned object properties, keyed by+-- suggestion ID.+--+-- /See:/ 'positionedObjectSuggestedPositionedObjectPropertiesChanges' smart constructor.+newtype PositionedObjectSuggestedPositionedObjectPropertiesChanges =+  PositionedObjectSuggestedPositionedObjectPropertiesChanges'+    { _pospopcAddtional :: HashMap Text SuggestedPositionedObjectProperties+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PositionedObjectSuggestedPositionedObjectPropertiesChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pospopcAddtional'+positionedObjectSuggestedPositionedObjectPropertiesChanges+    :: HashMap Text SuggestedPositionedObjectProperties -- ^ 'pospopcAddtional'+    -> PositionedObjectSuggestedPositionedObjectPropertiesChanges+positionedObjectSuggestedPositionedObjectPropertiesChanges pPospopcAddtional_ =+  PositionedObjectSuggestedPositionedObjectPropertiesChanges'+    {_pospopcAddtional = _Coerce # pPospopcAddtional_}+++pospopcAddtional :: Lens' PositionedObjectSuggestedPositionedObjectPropertiesChanges (HashMap Text SuggestedPositionedObjectProperties)+pospopcAddtional+  = lens _pospopcAddtional+      (\ s a -> s{_pospopcAddtional = a})+      . _Coerce++instance FromJSON+           PositionedObjectSuggestedPositionedObjectPropertiesChanges+         where+        parseJSON+          = withObject+              "PositionedObjectSuggestedPositionedObjectPropertiesChanges"+              (\ o ->+                 PositionedObjectSuggestedPositionedObjectPropertiesChanges'+                   <$> (parseJSONObject o))++instance ToJSON+           PositionedObjectSuggestedPositionedObjectPropertiesChanges+         where+        toJSON = toJSON . _pospopcAddtional++-- | A criteria that matches a specific string of text in the document.+--+-- /See:/ 'substringMatchCriteria' smart constructor.+data SubstringMatchCriteria =+  SubstringMatchCriteria'+    { _smcMatchCase :: !(Maybe Bool)+    , _smcText      :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SubstringMatchCriteria' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'smcMatchCase'+--+-- * 'smcText'+substringMatchCriteria+    :: SubstringMatchCriteria+substringMatchCriteria =+  SubstringMatchCriteria' {_smcMatchCase = Nothing, _smcText = Nothing}+++-- | Indicates whether the search should respect case: - \`True\`: the search+-- is case sensitive. - \`False\`: the search is case insensitive.+smcMatchCase :: Lens' SubstringMatchCriteria (Maybe Bool)+smcMatchCase+  = lens _smcMatchCase (\ s a -> s{_smcMatchCase = a})++-- | The text to search for in the document.+smcText :: Lens' SubstringMatchCriteria (Maybe Text)+smcText = lens _smcText (\ s a -> s{_smcText = a})++instance FromJSON SubstringMatchCriteria where+        parseJSON+          = withObject "SubstringMatchCriteria"+              (\ o ->+                 SubstringMatchCriteria' <$>+                   (o .:? "matchCase") <*> (o .:? "text"))++instance ToJSON SubstringMatchCriteria where+        toJSON SubstringMatchCriteria'{..}+          = object+              (catMaybes+                 [("matchCase" .=) <$> _smcMatchCase,+                  ("text" .=) <$> _smcText])
+ gen/Network/Google/Docs/Types/Sum.hs view
@@ -0,0 +1,1157 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Docs.Types.Sum+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Docs.Types.Sum where++import           Network.Google.Prelude hiding (Bytes)++-- | The text direction of this paragraph. If unset, the value defaults to+-- LEFT_TO_RIGHT since paragraph direction is not inherited.+data ParagraphStyleDirection+    = ContentDirectionUnspecified+      -- ^ @CONTENT_DIRECTION_UNSPECIFIED@+      -- The content direction is unspecified.+    | LeftToRight+      -- ^ @LEFT_TO_RIGHT@+      -- The content goes from left to right.+    | RightToLeft+      -- ^ @RIGHT_TO_LEFT@+      -- The content goes from right to left.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ParagraphStyleDirection++instance FromHttpApiData ParagraphStyleDirection where+    parseQueryParam = \case+        "CONTENT_DIRECTION_UNSPECIFIED" -> Right ContentDirectionUnspecified+        "LEFT_TO_RIGHT" -> Right LeftToRight+        "RIGHT_TO_LEFT" -> Right RightToLeft+        x -> Left ("Unable to parse ParagraphStyleDirection from: " <> x)++instance ToHttpApiData ParagraphStyleDirection where+    toQueryParam = \case+        ContentDirectionUnspecified -> "CONTENT_DIRECTION_UNSPECIFIED"+        LeftToRight -> "LEFT_TO_RIGHT"+        RightToLeft -> "RIGHT_TO_LEFT"++instance FromJSON ParagraphStyleDirection where+    parseJSON = parseJSONText "ParagraphStyleDirection"++instance ToJSON ParagraphStyleDirection where+    toJSON = toJSONText++-- | The text\'s vertical offset from its normal position. Text with+-- \`SUPERSCRIPT\` or \`SUBSCRIPT\` baseline offsets is automatically+-- rendered in a smaller font size, computed based on the \`font_size\`+-- field. The \`font_size\` itself is not affected by changes in this+-- field.+data TextStyleBaselineOffSet+    = BaselineOffSetUnspecified+      -- ^ @BASELINE_OFFSET_UNSPECIFIED@+      -- The text\'s baseline offset is inherited from the parent.+    | None+      -- ^ @NONE@+      -- The text is not vertically offset.+    | Superscript+      -- ^ @SUPERSCRIPT@+      -- The text is vertically offset upwards (superscript).+    | Subscript+      -- ^ @SUBSCRIPT@+      -- The text is vertically offset downwards (subscript).+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable TextStyleBaselineOffSet++instance FromHttpApiData TextStyleBaselineOffSet where+    parseQueryParam = \case+        "BASELINE_OFFSET_UNSPECIFIED" -> Right BaselineOffSetUnspecified+        "NONE" -> Right None+        "SUPERSCRIPT" -> Right Superscript+        "SUBSCRIPT" -> Right Subscript+        x -> Left ("Unable to parse TextStyleBaselineOffSet from: " <> x)++instance ToHttpApiData TextStyleBaselineOffSet where+    toQueryParam = \case+        BaselineOffSetUnspecified -> "BASELINE_OFFSET_UNSPECIFIED"+        None -> "NONE"+        Superscript -> "SUPERSCRIPT"+        Subscript -> "SUBSCRIPT"++instance FromJSON TextStyleBaselineOffSet where+    parseJSON = parseJSONText "TextStyleBaselineOffSet"++instance ToJSON TextStyleBaselineOffSet where+    toJSON = toJSONText++-- | The width type of the column.+data TableColumnPropertiesWidthType+    = WidthTypeUnspecified+      -- ^ @WIDTH_TYPE_UNSPECIFIED@+      -- The column width type is unspecified.+    | EvenlyDistributed+      -- ^ @EVENLY_DISTRIBUTED@+      -- The column width is evenly distributed among the other evenly distrubted+      -- columns. The width of the column is automatically determined and will+      -- have an equal portion of the width remaining for the table after+      -- accounting for all columns with specified widths.+    | FixedWidth+      -- ^ @FIXED_WIDTH@+      -- A fixed column width. The width property contains the column\'s width.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable TableColumnPropertiesWidthType++instance FromHttpApiData TableColumnPropertiesWidthType where+    parseQueryParam = \case+        "WIDTH_TYPE_UNSPECIFIED" -> Right WidthTypeUnspecified+        "EVENLY_DISTRIBUTED" -> Right EvenlyDistributed+        "FIXED_WIDTH" -> Right FixedWidth+        x -> Left ("Unable to parse TableColumnPropertiesWidthType from: " <> x)++instance ToHttpApiData TableColumnPropertiesWidthType where+    toQueryParam = \case+        WidthTypeUnspecified -> "WIDTH_TYPE_UNSPECIFIED"+        EvenlyDistributed -> "EVENLY_DISTRIBUTED"+        FixedWidth -> "FIXED_WIDTH"++instance FromJSON TableColumnPropertiesWidthType where+    parseJSON = parseJSONText "TableColumnPropertiesWidthType"++instance ToJSON TableColumnPropertiesWidthType where+    toJSON = toJSONText++-- | The kinds of bullet glyphs to be used.+data CreateParagraphBulletsRequestBulletPreset+    = BulletGlyphPresetUnspecified+      -- ^ @BULLET_GLYPH_PRESET_UNSPECIFIED@+      -- The bullet glyph preset is unspecified.+    | BulletDiscCircleSquare+      -- ^ @BULLET_DISC_CIRCLE_SQUARE@+      -- A bulleted list with a \`DISC\`, \`CIRCLE\` and \`SQUARE\` bullet glyph+      -- for the first 3 list nesting levels.+    | BulletDiamondxARROW3DSquare+      -- ^ @BULLET_DIAMONDX_ARROW3D_SQUARE@+      -- A bulleted list with a \`DIAMONDX\`, \`ARROW3D\` and \`SQUARE\` bullet+      -- glyph for the first 3 list nesting levels.+    | BulletCheckbox+      -- ^ @BULLET_CHECKBOX@+      -- A bulleted list with \`CHECKBOX\` bullet glyphs for all list nesting+      -- levels.+    | BulletArrowDiamondDisc+      -- ^ @BULLET_ARROW_DIAMOND_DISC@+      -- A bulleted list with a \`ARROW\`, \`DIAMOND\` and \`DISC\` bullet glyph+      -- for the first 3 list nesting levels.+    | BulletStarCircleSquare+      -- ^ @BULLET_STAR_CIRCLE_SQUARE@+      -- A bulleted list with a \`STAR\`, \`CIRCLE\` and \`SQUARE\` bullet glyph+      -- for the first 3 list nesting levels.+    | BulletARROW3DCircleSquare+      -- ^ @BULLET_ARROW3D_CIRCLE_SQUARE@+      -- A bulleted list with a \`ARROW3D\`, \`CIRCLE\` and \`SQUARE\` bullet+      -- glyph for the first 3 list nesting levels.+    | BulletLefttriangleDiamondDisc+      -- ^ @BULLET_LEFTTRIANGLE_DIAMOND_DISC@+      -- A bulleted list with a \`LEFTTRIANGLE\`, \`DIAMOND\` and \`DISC\` bullet+      -- glyph for the first 3 list nesting levels.+    | BulletDiamondxHollowdiamondSquare+      -- ^ @BULLET_DIAMONDX_HOLLOWDIAMOND_SQUARE@+      -- A bulleted list with a \`DIAMONDX\`, \`HOLLOWDIAMOND\` and \`SQUARE\`+      -- bullet glyph for the first 3 list nesting levels.+    | BulletDiamondCircleSquare+      -- ^ @BULLET_DIAMOND_CIRCLE_SQUARE@+      -- A bulleted list with a \`DIAMOND\`, \`CIRCLE\` and \`SQUARE\` bullet+      -- glyph for the first 3 list nesting levels.+    | NumberedDecimalAlphaRoman+      -- ^ @NUMBERED_DECIMAL_ALPHA_ROMAN@+      -- A numbered list with \`DECIMAL\`, \`ALPHA\` and \`ROMAN\` numeric glyphs+      -- for the first 3 list nesting levels, followed by periods.+    | NumberedDecimalAlphaRomanParens+      -- ^ @NUMBERED_DECIMAL_ALPHA_ROMAN_PARENS@+      -- A numbered list with \`DECIMAL\`, \`ALPHA\` and \`ROMAN\` numeric glyphs+      -- for the first 3 list nesting levels, followed by parenthesis.+    | NumberedDecimalNested+      -- ^ @NUMBERED_DECIMAL_NESTED@+      -- A numbered list with \`DECIMAL\` numeric glyphs separated by periods,+      -- where each nesting level uses the previous nesting level\'s glyph as a+      -- prefix. For example: \'1.\', \'1.1.\', \'2.\', \'2.2.\'.+    | NumberedUpperalphaAlphaRoman+      -- ^ @NUMBERED_UPPERALPHA_ALPHA_ROMAN@+      -- A numbered list with \`UPPERALPHA\`, \`ALPHA\` and \`ROMAN\` numeric+      -- glyphs for the first 3 list nesting levels, followed by periods.+    | NumberedUpperromanUpperalphaDecimal+      -- ^ @NUMBERED_UPPERROMAN_UPPERALPHA_DECIMAL@+      -- A numbered list with \`UPPERROMAN\`, \`UPPERALPHA\` and \`DECIMAL\`+      -- numeric glyphs for the first 3 list nesting levels, followed by periods.+    | NumberedZerodecimalAlphaRoman+      -- ^ @NUMBERED_ZERODECIMAL_ALPHA_ROMAN@+      -- A numbered list with \`ZERODECIMAL\`, \`ALPHA\` and \`ROMAN\` numeric+      -- glyphs for the first 3 list nesting levels, followed by periods.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable CreateParagraphBulletsRequestBulletPreset++instance FromHttpApiData CreateParagraphBulletsRequestBulletPreset where+    parseQueryParam = \case+        "BULLET_GLYPH_PRESET_UNSPECIFIED" -> Right BulletGlyphPresetUnspecified+        "BULLET_DISC_CIRCLE_SQUARE" -> Right BulletDiscCircleSquare+        "BULLET_DIAMONDX_ARROW3D_SQUARE" -> Right BulletDiamondxARROW3DSquare+        "BULLET_CHECKBOX" -> Right BulletCheckbox+        "BULLET_ARROW_DIAMOND_DISC" -> Right BulletArrowDiamondDisc+        "BULLET_STAR_CIRCLE_SQUARE" -> Right BulletStarCircleSquare+        "BULLET_ARROW3D_CIRCLE_SQUARE" -> Right BulletARROW3DCircleSquare+        "BULLET_LEFTTRIANGLE_DIAMOND_DISC" -> Right BulletLefttriangleDiamondDisc+        "BULLET_DIAMONDX_HOLLOWDIAMOND_SQUARE" -> Right BulletDiamondxHollowdiamondSquare+        "BULLET_DIAMOND_CIRCLE_SQUARE" -> Right BulletDiamondCircleSquare+        "NUMBERED_DECIMAL_ALPHA_ROMAN" -> Right NumberedDecimalAlphaRoman+        "NUMBERED_DECIMAL_ALPHA_ROMAN_PARENS" -> Right NumberedDecimalAlphaRomanParens+        "NUMBERED_DECIMAL_NESTED" -> Right NumberedDecimalNested+        "NUMBERED_UPPERALPHA_ALPHA_ROMAN" -> Right NumberedUpperalphaAlphaRoman+        "NUMBERED_UPPERROMAN_UPPERALPHA_DECIMAL" -> Right NumberedUpperromanUpperalphaDecimal+        "NUMBERED_ZERODECIMAL_ALPHA_ROMAN" -> Right NumberedZerodecimalAlphaRoman+        x -> Left ("Unable to parse CreateParagraphBulletsRequestBulletPreset from: " <> x)++instance ToHttpApiData CreateParagraphBulletsRequestBulletPreset where+    toQueryParam = \case+        BulletGlyphPresetUnspecified -> "BULLET_GLYPH_PRESET_UNSPECIFIED"+        BulletDiscCircleSquare -> "BULLET_DISC_CIRCLE_SQUARE"+        BulletDiamondxARROW3DSquare -> "BULLET_DIAMONDX_ARROW3D_SQUARE"+        BulletCheckbox -> "BULLET_CHECKBOX"+        BulletArrowDiamondDisc -> "BULLET_ARROW_DIAMOND_DISC"+        BulletStarCircleSquare -> "BULLET_STAR_CIRCLE_SQUARE"+        BulletARROW3DCircleSquare -> "BULLET_ARROW3D_CIRCLE_SQUARE"+        BulletLefttriangleDiamondDisc -> "BULLET_LEFTTRIANGLE_DIAMOND_DISC"+        BulletDiamondxHollowdiamondSquare -> "BULLET_DIAMONDX_HOLLOWDIAMOND_SQUARE"+        BulletDiamondCircleSquare -> "BULLET_DIAMOND_CIRCLE_SQUARE"+        NumberedDecimalAlphaRoman -> "NUMBERED_DECIMAL_ALPHA_ROMAN"+        NumberedDecimalAlphaRomanParens -> "NUMBERED_DECIMAL_ALPHA_ROMAN_PARENS"+        NumberedDecimalNested -> "NUMBERED_DECIMAL_NESTED"+        NumberedUpperalphaAlphaRoman -> "NUMBERED_UPPERALPHA_ALPHA_ROMAN"+        NumberedUpperromanUpperalphaDecimal -> "NUMBERED_UPPERROMAN_UPPERALPHA_DECIMAL"+        NumberedZerodecimalAlphaRoman -> "NUMBERED_ZERODECIMAL_ALPHA_ROMAN"++instance FromJSON CreateParagraphBulletsRequestBulletPreset where+    parseJSON = parseJSONText "CreateParagraphBulletsRequestBulletPreset"++instance ToJSON CreateParagraphBulletsRequestBulletPreset where+    toJSON = toJSONText++-- | The dash style of the border.+data TableCellBOrderDashStyle+    = DashStyleUnspecified+      -- ^ @DASH_STYLE_UNSPECIFIED@+      -- Unspecified dash style.+    | Solid+      -- ^ @SOLID@+      -- Solid line. Corresponds to ECMA-376 ST_PresetLineDashVal value+      -- \'solid\'. This is the default dash style.+    | Dot+      -- ^ @DOT@+      -- Dotted line. Corresponds to ECMA-376 ST_PresetLineDashVal value \'dot\'.+    | Dash+      -- ^ @DASH@+      -- Dashed line. Corresponds to ECMA-376 ST_PresetLineDashVal value+      -- \'dash\'.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable TableCellBOrderDashStyle++instance FromHttpApiData TableCellBOrderDashStyle where+    parseQueryParam = \case+        "DASH_STYLE_UNSPECIFIED" -> Right DashStyleUnspecified+        "SOLID" -> Right Solid+        "DOT" -> Right Dot+        "DASH" -> Right Dash+        x -> Left ("Unable to parse TableCellBOrderDashStyle from: " <> x)++instance ToHttpApiData TableCellBOrderDashStyle where+    toQueryParam = \case+        DashStyleUnspecified -> "DASH_STYLE_UNSPECIFIED"+        Solid -> "SOLID"+        Dot -> "DOT"+        Dash -> "DASH"++instance FromJSON TableCellBOrderDashStyle where+    parseJSON = parseJSONText "TableCellBOrderDashStyle"++instance ToJSON TableCellBOrderDashStyle where+    toJSON = toJSONText++-- | The named style type of the paragraph. Since updating the named style+-- type affects other properties within ParagraphStyle, the named style+-- type is applied before the other properties are updated.+data ParagraphStyleNamedStyleType+    = NamedStyleTypeUnspecified+      -- ^ @NAMED_STYLE_TYPE_UNSPECIFIED@+      -- The type of named style is unspecified.+    | NormalText+      -- ^ @NORMAL_TEXT@+      -- Normal text.+    | Title+      -- ^ @TITLE@+      -- Title.+    | Subtitle+      -- ^ @SUBTITLE@+      -- Subtitle.+    | Heading1+      -- ^ @HEADING_1@+      -- Heading 1.+    | Heading2+      -- ^ @HEADING_2@+      -- Heading 2.+    | Heading3+      -- ^ @HEADING_3@+      -- Heading 3.+    | Heading4+      -- ^ @HEADING_4@+      -- Heading 4.+    | Heading5+      -- ^ @HEADING_5@+      -- Heading 5.+    | Heading6+      -- ^ @HEADING_6@+      -- Heading 6.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ParagraphStyleNamedStyleType++instance FromHttpApiData ParagraphStyleNamedStyleType where+    parseQueryParam = \case+        "NAMED_STYLE_TYPE_UNSPECIFIED" -> Right NamedStyleTypeUnspecified+        "NORMAL_TEXT" -> Right NormalText+        "TITLE" -> Right Title+        "SUBTITLE" -> Right Subtitle+        "HEADING_1" -> Right Heading1+        "HEADING_2" -> Right Heading2+        "HEADING_3" -> Right Heading3+        "HEADING_4" -> Right Heading4+        "HEADING_5" -> Right Heading5+        "HEADING_6" -> Right Heading6+        x -> Left ("Unable to parse ParagraphStyleNamedStyleType from: " <> x)++instance ToHttpApiData ParagraphStyleNamedStyleType where+    toQueryParam = \case+        NamedStyleTypeUnspecified -> "NAMED_STYLE_TYPE_UNSPECIFIED"+        NormalText -> "NORMAL_TEXT"+        Title -> "TITLE"+        Subtitle -> "SUBTITLE"+        Heading1 -> "HEADING_1"+        Heading2 -> "HEADING_2"+        Heading3 -> "HEADING_3"+        Heading4 -> "HEADING_4"+        Heading5 -> "HEADING_5"+        Heading6 -> "HEADING_6"++instance FromJSON ParagraphStyleNamedStyleType where+    parseJSON = parseJSONText "ParagraphStyleNamedStyleType"++instance ToJSON ParagraphStyleNamedStyleType where+    toJSON = toJSONText++-- | The alignment of this tab stop. If unset, the value defaults to START.+data TabStopAlignment+    = TabStopAlignmentUnspecified+      -- ^ @TAB_STOP_ALIGNMENT_UNSPECIFIED@+      -- The tab stop alignment is unspecified.+    | Start+      -- ^ @START@+      -- The tab stop is aligned to the start of the line. This is the default.+    | Center+      -- ^ @CENTER@+      -- The tab stop is aligned to the center of the line.+    | End+      -- ^ @END@+      -- The tab stop is aligned to the end of the line.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable TabStopAlignment++instance FromHttpApiData TabStopAlignment where+    parseQueryParam = \case+        "TAB_STOP_ALIGNMENT_UNSPECIFIED" -> Right TabStopAlignmentUnspecified+        "START" -> Right Start+        "CENTER" -> Right Center+        "END" -> Right End+        x -> Left ("Unable to parse TabStopAlignment from: " <> x)++instance ToHttpApiData TabStopAlignment where+    toQueryParam = \case+        TabStopAlignmentUnspecified -> "TAB_STOP_ALIGNMENT_UNSPECIFIED"+        Start -> "START"+        Center -> "CENTER"+        End -> "END"++instance FromJSON TabStopAlignment where+    parseJSON = parseJSONText "TabStopAlignment"++instance ToJSON TabStopAlignment where+    toJSON = toJSONText++-- | The type of glyph used by bullets when paragraphs at this level of+-- nesting are ordered. The glyph type determines the type of glyph used to+-- replace placeholders within the glyph_format when paragraphs at this+-- level of nesting are ordered. For example, if the nesting level is 0,+-- the glyph_format is \`%0.\` and the glyph type is DECIMAL, then the+-- rendered glyph would replace the placeholder \`%0\` in the glyph format+-- with a number corresponding to list item\'s order within the list.+data NestingLevelGlyphType+    = NLGTGlyphTypeUnspecified+      -- ^ @GLYPH_TYPE_UNSPECIFIED@+      -- The glyph type is unspecified or unsupported.+    | NLGTNone+      -- ^ @NONE@+      -- An empty string.+    | NLGTDecimal+      -- ^ @DECIMAL@+      -- A number, like \`1\`, \`2\`, or \`3\`.+    | NLGTZeroDecimal+      -- ^ @ZERO_DECIMAL@+      -- A number where single digit numbers are prefixed with a zero, like+      -- \`01\`, \`02\`, or \`03\`. Numbers with more than one digit are not+      -- prefixed with a zero.+    | NLGTUpperAlpha+      -- ^ @UPPER_ALPHA@+      -- An uppercase letter, like \`A\`, \`B\`, or \`C\`.+    | NLGTAlpha+      -- ^ @ALPHA@+      -- A lowercase letter, like \`a\`, \`b\`, or \`c\`.+    | NLGTUpperRoman+      -- ^ @UPPER_ROMAN@+      -- An uppercase Roman numeral, like \`I\`, \`II\`, or \`III\`.+    | NLGTRoman+      -- ^ @ROMAN@+      -- A lowercase Roman numeral, like \`i\`, \`ii\`, or \`iii\`.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable NestingLevelGlyphType++instance FromHttpApiData NestingLevelGlyphType where+    parseQueryParam = \case+        "GLYPH_TYPE_UNSPECIFIED" -> Right NLGTGlyphTypeUnspecified+        "NONE" -> Right NLGTNone+        "DECIMAL" -> Right NLGTDecimal+        "ZERO_DECIMAL" -> Right NLGTZeroDecimal+        "UPPER_ALPHA" -> Right NLGTUpperAlpha+        "ALPHA" -> Right NLGTAlpha+        "UPPER_ROMAN" -> Right NLGTUpperRoman+        "ROMAN" -> Right NLGTRoman+        x -> Left ("Unable to parse NestingLevelGlyphType from: " <> x)++instance ToHttpApiData NestingLevelGlyphType where+    toQueryParam = \case+        NLGTGlyphTypeUnspecified -> "GLYPH_TYPE_UNSPECIFIED"+        NLGTNone -> "NONE"+        NLGTDecimal -> "DECIMAL"+        NLGTZeroDecimal -> "ZERO_DECIMAL"+        NLGTUpperAlpha -> "UPPER_ALPHA"+        NLGTAlpha -> "ALPHA"+        NLGTUpperRoman -> "UPPER_ROMAN"+        NLGTRoman -> "ROMAN"++instance FromJSON NestingLevelGlyphType where+    parseJSON = parseJSONText "NestingLevelGlyphType"++instance ToJSON NestingLevelGlyphType where+    toJSON = toJSONText++-- | The dash style of the border.+data ParagraphBOrderDashStyle+    = PBODSDashStyleUnspecified+      -- ^ @DASH_STYLE_UNSPECIFIED@+      -- Unspecified dash style.+    | PBODSSolid+      -- ^ @SOLID@+      -- Solid line. Corresponds to ECMA-376 ST_PresetLineDashVal value+      -- \'solid\'. This is the default dash style.+    | PBODSDot+      -- ^ @DOT@+      -- Dotted line. Corresponds to ECMA-376 ST_PresetLineDashVal value \'dot\'.+    | PBODSDash+      -- ^ @DASH@+      -- Dashed line. Corresponds to ECMA-376 ST_PresetLineDashVal value+      -- \'dash\'.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ParagraphBOrderDashStyle++instance FromHttpApiData ParagraphBOrderDashStyle where+    parseQueryParam = \case+        "DASH_STYLE_UNSPECIFIED" -> Right PBODSDashStyleUnspecified+        "SOLID" -> Right PBODSSolid+        "DOT" -> Right PBODSDot+        "DASH" -> Right PBODSDash+        x -> Left ("Unable to parse ParagraphBOrderDashStyle from: " <> x)++instance ToHttpApiData ParagraphBOrderDashStyle where+    toQueryParam = \case+        PBODSDashStyleUnspecified -> "DASH_STYLE_UNSPECIFIED"+        PBODSSolid -> "SOLID"+        PBODSDot -> "DOT"+        PBODSDash -> "DASH"++instance FromJSON ParagraphBOrderDashStyle where+    parseJSON = parseJSONText "ParagraphBOrderDashStyle"++instance ToJSON ParagraphBOrderDashStyle where+    toJSON = toJSONText++-- | The text alignment for this paragraph.+data ParagraphStyleAlignment+    = PSAAlignmentUnspecified+      -- ^ @ALIGNMENT_UNSPECIFIED@+      -- The paragraph alignment is inherited from the parent.+    | PSAStart+      -- ^ @START@+      -- The paragraph is aligned to the start of the line. Left-aligned for LTR+      -- text, right-aligned otherwise.+    | PSACenter+      -- ^ @CENTER@+      -- The paragraph is centered.+    | PSAEnd+      -- ^ @END@+      -- The paragraph is aligned to the end of the line. Right-aligned for LTR+      -- text, left-aligned otherwise.+    | PSAJustified+      -- ^ @JUSTIFIED@+      -- The paragraph is justified.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ParagraphStyleAlignment++instance FromHttpApiData ParagraphStyleAlignment where+    parseQueryParam = \case+        "ALIGNMENT_UNSPECIFIED" -> Right PSAAlignmentUnspecified+        "START" -> Right PSAStart+        "CENTER" -> Right PSACenter+        "END" -> Right PSAEnd+        "JUSTIFIED" -> Right PSAJustified+        x -> Left ("Unable to parse ParagraphStyleAlignment from: " <> x)++instance ToHttpApiData ParagraphStyleAlignment where+    toQueryParam = \case+        PSAAlignmentUnspecified -> "ALIGNMENT_UNSPECIFIED"+        PSAStart -> "START"+        PSACenter -> "CENTER"+        PSAEnd -> "END"+        PSAJustified -> "JUSTIFIED"++instance FromJSON ParagraphStyleAlignment where+    parseJSON = parseJSONText "ParagraphStyleAlignment"++instance ToJSON ParagraphStyleAlignment where+    toJSON = toJSONText++-- | The property state of the border property.+data EmbeddedObjectBOrderPropertyState+    = Rendered+      -- ^ @RENDERED@+      -- If a property\'s state is RENDERED, then the element has the+      -- corresponding property when rendered in the document. This is the+      -- default value.+    | NotRendered+      -- ^ @NOT_RENDERED@+      -- If a property\'s state is NOT_RENDERED, then the element does not have+      -- the corresponding property when rendered in the document.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable EmbeddedObjectBOrderPropertyState++instance FromHttpApiData EmbeddedObjectBOrderPropertyState where+    parseQueryParam = \case+        "RENDERED" -> Right Rendered+        "NOT_RENDERED" -> Right NotRendered+        x -> Left ("Unable to parse EmbeddedObjectBOrderPropertyState from: " <> x)++instance ToHttpApiData EmbeddedObjectBOrderPropertyState where+    toQueryParam = \case+        Rendered -> "RENDERED"+        NotRendered -> "NOT_RENDERED"++instance FromJSON EmbeddedObjectBOrderPropertyState where+    parseJSON = parseJSONText "EmbeddedObjectBOrderPropertyState"++instance ToJSON EmbeddedObjectBOrderPropertyState where+    toJSON = toJSONText++-- | The style of column separators. This style can be set even when there is+-- one column in the section.+data SectionStyleColumnSeparatorStyle+    = SSCSSColumnSeparatorStyleUnspecified+      -- ^ @COLUMN_SEPARATOR_STYLE_UNSPECIFIED@+      -- An unspecified column separator style.+    | SSCSSNone+      -- ^ @NONE@+      -- No column separator lines between columns.+    | SSCSSBetweenEachColumn+      -- ^ @BETWEEN_EACH_COLUMN@+      -- Renders a column separator line between each column.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable SectionStyleColumnSeparatorStyle++instance FromHttpApiData SectionStyleColumnSeparatorStyle where+    parseQueryParam = \case+        "COLUMN_SEPARATOR_STYLE_UNSPECIFIED" -> Right SSCSSColumnSeparatorStyleUnspecified+        "NONE" -> Right SSCSSNone+        "BETWEEN_EACH_COLUMN" -> Right SSCSSBetweenEachColumn+        x -> Left ("Unable to parse SectionStyleColumnSeparatorStyle from: " <> x)++instance ToHttpApiData SectionStyleColumnSeparatorStyle where+    toQueryParam = \case+        SSCSSColumnSeparatorStyleUnspecified -> "COLUMN_SEPARATOR_STYLE_UNSPECIFIED"+        SSCSSNone -> "NONE"+        SSCSSBetweenEachColumn -> "BETWEEN_EACH_COLUMN"++instance FromJSON SectionStyleColumnSeparatorStyle where+    parseJSON = parseJSONText "SectionStyleColumnSeparatorStyle"++instance ToJSON SectionStyleColumnSeparatorStyle where+    toJSON = toJSONText++-- | V1 error format.+data Xgafv+    = X1+      -- ^ @1@+      -- v1 error format+    | X2+      -- ^ @2@+      -- v2 error format+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable Xgafv++instance FromHttpApiData Xgafv where+    parseQueryParam = \case+        "1" -> Right X1+        "2" -> Right X2+        x -> Left ("Unable to parse Xgafv from: " <> x)++instance ToHttpApiData Xgafv where+    toQueryParam = \case+        X1 -> "1"+        X2 -> "2"++instance FromJSON Xgafv where+    parseJSON = parseJSONText "Xgafv"++instance ToJSON Xgafv where+    toJSON = toJSONText++-- | The type of this auto text.+data AutoTextType+    = TypeUnspecified+      -- ^ @TYPE_UNSPECIFIED@+      -- An unspecified auto text type.+    | PageNumber+      -- ^ @PAGE_NUMBER@+      -- Type for auto text that represents the current page number.+    | PageCount+      -- ^ @PAGE_COUNT@+      -- Type for auto text that represents the total number of pages in the+      -- document.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable AutoTextType++instance FromHttpApiData AutoTextType where+    parseQueryParam = \case+        "TYPE_UNSPECIFIED" -> Right TypeUnspecified+        "PAGE_NUMBER" -> Right PageNumber+        "PAGE_COUNT" -> Right PageCount+        x -> Left ("Unable to parse AutoTextType from: " <> x)++instance ToHttpApiData AutoTextType where+    toQueryParam = \case+        TypeUnspecified -> "TYPE_UNSPECIFIED"+        PageNumber -> "PAGE_NUMBER"+        PageCount -> "PAGE_COUNT"++instance FromJSON AutoTextType where+    parseJSON = parseJSONText "AutoTextType"++instance ToJSON AutoTextType where+    toJSON = toJSONText++-- | The content direction of this section. If unset, the value defaults to+-- LEFT_TO_RIGHT.+data SectionStyleContentDirection+    = SSCDContentDirectionUnspecified+      -- ^ @CONTENT_DIRECTION_UNSPECIFIED@+      -- The content direction is unspecified.+    | SSCDLeftToRight+      -- ^ @LEFT_TO_RIGHT@+      -- The content goes from left to right.+    | SSCDRightToLeft+      -- ^ @RIGHT_TO_LEFT@+      -- The content goes from right to left.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable SectionStyleContentDirection++instance FromHttpApiData SectionStyleContentDirection where+    parseQueryParam = \case+        "CONTENT_DIRECTION_UNSPECIFIED" -> Right SSCDContentDirectionUnspecified+        "LEFT_TO_RIGHT" -> Right SSCDLeftToRight+        "RIGHT_TO_LEFT" -> Right SSCDRightToLeft+        x -> Left ("Unable to parse SectionStyleContentDirection from: " <> x)++instance ToHttpApiData SectionStyleContentDirection where+    toQueryParam = \case+        SSCDContentDirectionUnspecified -> "CONTENT_DIRECTION_UNSPECIFIED"+        SSCDLeftToRight -> "LEFT_TO_RIGHT"+        SSCDRightToLeft -> "RIGHT_TO_LEFT"++instance FromJSON SectionStyleContentDirection where+    parseJSON = parseJSONText "SectionStyleContentDirection"++instance ToJSON SectionStyleContentDirection where+    toJSON = toJSONText++-- | The type of this named style.+data NamedStyleNamedStyleType+    = NSNSTNamedStyleTypeUnspecified+      -- ^ @NAMED_STYLE_TYPE_UNSPECIFIED@+      -- The type of named style is unspecified.+    | NSNSTNormalText+      -- ^ @NORMAL_TEXT@+      -- Normal text.+    | NSNSTTitle+      -- ^ @TITLE@+      -- Title.+    | NSNSTSubtitle+      -- ^ @SUBTITLE@+      -- Subtitle.+    | NSNSTHeading1+      -- ^ @HEADING_1@+      -- Heading 1.+    | NSNSTHeading2+      -- ^ @HEADING_2@+      -- Heading 2.+    | NSNSTHeading3+      -- ^ @HEADING_3@+      -- Heading 3.+    | NSNSTHeading4+      -- ^ @HEADING_4@+      -- Heading 4.+    | NSNSTHeading5+      -- ^ @HEADING_5@+      -- Heading 5.+    | NSNSTHeading6+      -- ^ @HEADING_6@+      -- Heading 6.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable NamedStyleNamedStyleType++instance FromHttpApiData NamedStyleNamedStyleType where+    parseQueryParam = \case+        "NAMED_STYLE_TYPE_UNSPECIFIED" -> Right NSNSTNamedStyleTypeUnspecified+        "NORMAL_TEXT" -> Right NSNSTNormalText+        "TITLE" -> Right NSNSTTitle+        "SUBTITLE" -> Right NSNSTSubtitle+        "HEADING_1" -> Right NSNSTHeading1+        "HEADING_2" -> Right NSNSTHeading2+        "HEADING_3" -> Right NSNSTHeading3+        "HEADING_4" -> Right NSNSTHeading4+        "HEADING_5" -> Right NSNSTHeading5+        "HEADING_6" -> Right NSNSTHeading6+        x -> Left ("Unable to parse NamedStyleNamedStyleType from: " <> x)++instance ToHttpApiData NamedStyleNamedStyleType where+    toQueryParam = \case+        NSNSTNamedStyleTypeUnspecified -> "NAMED_STYLE_TYPE_UNSPECIFIED"+        NSNSTNormalText -> "NORMAL_TEXT"+        NSNSTTitle -> "TITLE"+        NSNSTSubtitle -> "SUBTITLE"+        NSNSTHeading1 -> "HEADING_1"+        NSNSTHeading2 -> "HEADING_2"+        NSNSTHeading3 -> "HEADING_3"+        NSNSTHeading4 -> "HEADING_4"+        NSNSTHeading5 -> "HEADING_5"+        NSNSTHeading6 -> "HEADING_6"++instance FromJSON NamedStyleNamedStyleType where+    parseJSON = parseJSONText "NamedStyleNamedStyleType"++instance ToJSON NamedStyleNamedStyleType where+    toJSON = toJSONText++-- | The spacing mode for the paragraph.+data ParagraphStyleSpacingMode+    = SpacingModeUnspecified+      -- ^ @SPACING_MODE_UNSPECIFIED@+      -- The spacing mode is inherited from the parent.+    | NeverCollapse+      -- ^ @NEVER_COLLAPSE@+      -- Paragraph spacing is always rendered.+    | CollapseLists+      -- ^ @COLLAPSE_LISTS@+      -- Paragraph spacing is skipped between list elements.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ParagraphStyleSpacingMode++instance FromHttpApiData ParagraphStyleSpacingMode where+    parseQueryParam = \case+        "SPACING_MODE_UNSPECIFIED" -> Right SpacingModeUnspecified+        "NEVER_COLLAPSE" -> Right NeverCollapse+        "COLLAPSE_LISTS" -> Right CollapseLists+        x -> Left ("Unable to parse ParagraphStyleSpacingMode from: " <> x)++instance ToHttpApiData ParagraphStyleSpacingMode where+    toQueryParam = \case+        SpacingModeUnspecified -> "SPACING_MODE_UNSPECIFIED"+        NeverCollapse -> "NEVER_COLLAPSE"+        CollapseLists -> "COLLAPSE_LISTS"++instance FromJSON ParagraphStyleSpacingMode where+    parseJSON = parseJSONText "ParagraphStyleSpacingMode"++instance ToJSON ParagraphStyleSpacingMode where+    toJSON = toJSONText++-- | The alignment of the bullet within the space allotted for rendering the+-- bullet.+data NestingLevelBulletAlignment+    = NLBABulletAlignmentUnspecified+      -- ^ @BULLET_ALIGNMENT_UNSPECIFIED@+      -- The bullet alignment is unspecified.+    | NLBAStart+      -- ^ @START@+      -- The bullet is aligned to the start of the space allotted for rendering+      -- the bullet. Left-aligned for LTR text, right-aligned otherwise.+    | NLBACenter+      -- ^ @CENTER@+      -- The bullet is aligned to the center of the space allotted for rendering+      -- the bullet.+    | NLBAEnd+      -- ^ @END@+      -- The bullet is aligned to the end of the space allotted for rendering the+      -- bullet. Right-aligned for LTR text, left-aligned otherwise.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable NestingLevelBulletAlignment++instance FromHttpApiData NestingLevelBulletAlignment where+    parseQueryParam = \case+        "BULLET_ALIGNMENT_UNSPECIFIED" -> Right NLBABulletAlignmentUnspecified+        "START" -> Right NLBAStart+        "CENTER" -> Right NLBACenter+        "END" -> Right NLBAEnd+        x -> Left ("Unable to parse NestingLevelBulletAlignment from: " <> x)++instance ToHttpApiData NestingLevelBulletAlignment where+    toQueryParam = \case+        NLBABulletAlignmentUnspecified -> "BULLET_ALIGNMENT_UNSPECIFIED"+        NLBAStart -> "START"+        NLBACenter -> "CENTER"+        NLBAEnd -> "END"++instance FromJSON NestingLevelBulletAlignment where+    parseJSON = parseJSONText "NestingLevelBulletAlignment"++instance ToJSON NestingLevelBulletAlignment where+    toJSON = toJSONText++-- | The named style type that this suggestion state corresponds to. This+-- field is provided as a convenience for matching the+-- NamedStyleSuggestionState with its corresponding NamedStyle.+data NamedStyleSuggestionStateNamedStyleType+    = NSSSNSTNamedStyleTypeUnspecified+      -- ^ @NAMED_STYLE_TYPE_UNSPECIFIED@+      -- The type of named style is unspecified.+    | NSSSNSTNormalText+      -- ^ @NORMAL_TEXT@+      -- Normal text.+    | NSSSNSTTitle+      -- ^ @TITLE@+      -- Title.+    | NSSSNSTSubtitle+      -- ^ @SUBTITLE@+      -- Subtitle.+    | NSSSNSTHeading1+      -- ^ @HEADING_1@+      -- Heading 1.+    | NSSSNSTHeading2+      -- ^ @HEADING_2@+      -- Heading 2.+    | NSSSNSTHeading3+      -- ^ @HEADING_3@+      -- Heading 3.+    | NSSSNSTHeading4+      -- ^ @HEADING_4@+      -- Heading 4.+    | NSSSNSTHeading5+      -- ^ @HEADING_5@+      -- Heading 5.+    | NSSSNSTHeading6+      -- ^ @HEADING_6@+      -- Heading 6.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable NamedStyleSuggestionStateNamedStyleType++instance FromHttpApiData NamedStyleSuggestionStateNamedStyleType where+    parseQueryParam = \case+        "NAMED_STYLE_TYPE_UNSPECIFIED" -> Right NSSSNSTNamedStyleTypeUnspecified+        "NORMAL_TEXT" -> Right NSSSNSTNormalText+        "TITLE" -> Right NSSSNSTTitle+        "SUBTITLE" -> Right NSSSNSTSubtitle+        "HEADING_1" -> Right NSSSNSTHeading1+        "HEADING_2" -> Right NSSSNSTHeading2+        "HEADING_3" -> Right NSSSNSTHeading3+        "HEADING_4" -> Right NSSSNSTHeading4+        "HEADING_5" -> Right NSSSNSTHeading5+        "HEADING_6" -> Right NSSSNSTHeading6+        x -> Left ("Unable to parse NamedStyleSuggestionStateNamedStyleType from: " <> x)++instance ToHttpApiData NamedStyleSuggestionStateNamedStyleType where+    toQueryParam = \case+        NSSSNSTNamedStyleTypeUnspecified -> "NAMED_STYLE_TYPE_UNSPECIFIED"+        NSSSNSTNormalText -> "NORMAL_TEXT"+        NSSSNSTTitle -> "TITLE"+        NSSSNSTSubtitle -> "SUBTITLE"+        NSSSNSTHeading1 -> "HEADING_1"+        NSSSNSTHeading2 -> "HEADING_2"+        NSSSNSTHeading3 -> "HEADING_3"+        NSSSNSTHeading4 -> "HEADING_4"+        NSSSNSTHeading5 -> "HEADING_5"+        NSSSNSTHeading6 -> "HEADING_6"++instance FromJSON NamedStyleSuggestionStateNamedStyleType where+    parseJSON = parseJSONText "NamedStyleSuggestionStateNamedStyleType"++instance ToJSON NamedStyleSuggestionStateNamedStyleType where+    toJSON = toJSONText++-- | The dash style of the border.+data EmbeddedObjectBOrderDashStyle+    = EOBODSDashStyleUnspecified+      -- ^ @DASH_STYLE_UNSPECIFIED@+      -- Unspecified dash style.+    | EOBODSSolid+      -- ^ @SOLID@+      -- Solid line. Corresponds to ECMA-376 ST_PresetLineDashVal value+      -- \'solid\'. This is the default dash style.+    | EOBODSDot+      -- ^ @DOT@+      -- Dotted line. Corresponds to ECMA-376 ST_PresetLineDashVal value \'dot\'.+    | EOBODSDash+      -- ^ @DASH@+      -- Dashed line. Corresponds to ECMA-376 ST_PresetLineDashVal value+      -- \'dash\'.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable EmbeddedObjectBOrderDashStyle++instance FromHttpApiData EmbeddedObjectBOrderDashStyle where+    parseQueryParam = \case+        "DASH_STYLE_UNSPECIFIED" -> Right EOBODSDashStyleUnspecified+        "SOLID" -> Right EOBODSSolid+        "DOT" -> Right EOBODSDot+        "DASH" -> Right EOBODSDash+        x -> Left ("Unable to parse EmbeddedObjectBOrderDashStyle from: " <> x)++instance ToHttpApiData EmbeddedObjectBOrderDashStyle where+    toQueryParam = \case+        EOBODSDashStyleUnspecified -> "DASH_STYLE_UNSPECIFIED"+        EOBODSSolid -> "SOLID"+        EOBODSDot -> "DOT"+        EOBODSDash -> "DASH"++instance FromJSON EmbeddedObjectBOrderDashStyle where+    parseJSON = parseJSONText "EmbeddedObjectBOrderDashStyle"++instance ToJSON EmbeddedObjectBOrderDashStyle where+    toJSON = toJSONText++-- | The suggestions view mode applied to the document. Note: When editing a+-- document, changes must be based on a document with SUGGESTIONS_INLINE.+data DocumentSuggestionsViewMode+    = DefaultForCurrentAccess+      -- ^ @DEFAULT_FOR_CURRENT_ACCESS@+      -- The SuggestionsViewMode applied to the returned document depends on the+      -- user\'s current access level. If the user only has view access,+      -- PREVIEW_WITHOUT_SUGGESTIONS is applied. Otherwise, SUGGESTIONS_INLINE is+      -- applied. This is the default suggestions view mode.+    | SuggestionsInline+      -- ^ @SUGGESTIONS_INLINE@+      -- The returned document has suggestions inline. Suggested changes will be+      -- differentiated from base content within the document. Requests to+      -- retrieve a document using this mode will return a 403 error if the user+      -- does not have permission to view suggested changes.+    | PreviewSuggestionsAccepted+      -- ^ @PREVIEW_SUGGESTIONS_ACCEPTED@+      -- The returned document is a preview with all suggested changes accepted.+      -- Requests to retrieve a document using this mode will return a 403 error+      -- if the user does not have permission to view suggested changes.+    | PreviewWithoutSuggestions+      -- ^ @PREVIEW_WITHOUT_SUGGESTIONS@+      -- The returned document is a preview with all suggested changes rejected+      -- if there are any suggestions in the document.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DocumentSuggestionsViewMode++instance FromHttpApiData DocumentSuggestionsViewMode where+    parseQueryParam = \case+        "DEFAULT_FOR_CURRENT_ACCESS" -> Right DefaultForCurrentAccess+        "SUGGESTIONS_INLINE" -> Right SuggestionsInline+        "PREVIEW_SUGGESTIONS_ACCEPTED" -> Right PreviewSuggestionsAccepted+        "PREVIEW_WITHOUT_SUGGESTIONS" -> Right PreviewWithoutSuggestions+        x -> Left ("Unable to parse DocumentSuggestionsViewMode from: " <> x)++instance ToHttpApiData DocumentSuggestionsViewMode where+    toQueryParam = \case+        DefaultForCurrentAccess -> "DEFAULT_FOR_CURRENT_ACCESS"+        SuggestionsInline -> "SUGGESTIONS_INLINE"+        PreviewSuggestionsAccepted -> "PREVIEW_SUGGESTIONS_ACCEPTED"+        PreviewWithoutSuggestions -> "PREVIEW_WITHOUT_SUGGESTIONS"++instance FromJSON DocumentSuggestionsViewMode where+    parseJSON = parseJSONText "DocumentSuggestionsViewMode"++instance ToJSON DocumentSuggestionsViewMode where+    toJSON = toJSONText++-- | The layout of this positioned object.+data PositionedObjectPositioningLayout+    = PositionedObjectLayoutUnspecified+      -- ^ @POSITIONED_OBJECT_LAYOUT_UNSPECIFIED@+      -- The layout is unspecified.+    | WrapText+      -- ^ @WRAP_TEXT@+      -- The text wraps around the positioned object.+    | BreakLeft+      -- ^ @BREAK_LEFT@+      -- Breaks text such that the positioned object is on the left and text is+      -- on the right.+    | BreakRight+      -- ^ @BREAK_RIGHT@+      -- Breaks text such that the positioned object is on the right and text is+      -- on the left.+    | BreakLeftRight+      -- ^ @BREAK_LEFT_RIGHT@+      -- Breaks text such that there is no text on the left or right of the+      -- positioned object.+    | InFrontOfText+      -- ^ @IN_FRONT_OF_TEXT@+      -- The positioned object is in front of the text.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PositionedObjectPositioningLayout++instance FromHttpApiData PositionedObjectPositioningLayout where+    parseQueryParam = \case+        "POSITIONED_OBJECT_LAYOUT_UNSPECIFIED" -> Right PositionedObjectLayoutUnspecified+        "WRAP_TEXT" -> Right WrapText+        "BREAK_LEFT" -> Right BreakLeft+        "BREAK_RIGHT" -> Right BreakRight+        "BREAK_LEFT_RIGHT" -> Right BreakLeftRight+        "IN_FRONT_OF_TEXT" -> Right InFrontOfText+        x -> Left ("Unable to parse PositionedObjectPositioningLayout from: " <> x)++instance ToHttpApiData PositionedObjectPositioningLayout where+    toQueryParam = \case+        PositionedObjectLayoutUnspecified -> "POSITIONED_OBJECT_LAYOUT_UNSPECIFIED"+        WrapText -> "WRAP_TEXT"+        BreakLeft -> "BREAK_LEFT"+        BreakRight -> "BREAK_RIGHT"+        BreakLeftRight -> "BREAK_LEFT_RIGHT"+        InFrontOfText -> "IN_FRONT_OF_TEXT"++instance FromJSON PositionedObjectPositioningLayout where+    parseJSON = parseJSONText "PositionedObjectPositioningLayout"++instance ToJSON PositionedObjectPositioningLayout where+    toJSON = toJSONText++-- | The units for magnitude.+data DimensionUnit+    = UnitUnspecified+      -- ^ @UNIT_UNSPECIFIED@+      -- The units are unknown.+    | PT+      -- ^ @PT@+      -- A point, 1\/72 of an inch.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DimensionUnit++instance FromHttpApiData DimensionUnit where+    parseQueryParam = \case+        "UNIT_UNSPECIFIED" -> Right UnitUnspecified+        "PT" -> Right PT+        x -> Left ("Unable to parse DimensionUnit from: " <> x)++instance ToHttpApiData DimensionUnit where+    toQueryParam = \case+        UnitUnspecified -> "UNIT_UNSPECIFIED"+        PT -> "PT"++instance FromJSON DimensionUnit where+    parseJSON = parseJSONText "DimensionUnit"++instance ToJSON DimensionUnit where+    toJSON = toJSONText++-- | The alignment of the content in the table cell. The default alignment+-- matches the alignment for newly created table cells in the Docs editor.+data TableCellStyleContentAlignment+    = ContentAlignmentUnspecified+      -- ^ @CONTENT_ALIGNMENT_UNSPECIFIED@+      -- An unspecified content alignment. The content alignment is inherited+      -- from the parent if one exists.+    | ContentAlignmentUnsupported+      -- ^ @CONTENT_ALIGNMENT_UNSUPPORTED@+      -- An unsupported content alignment.+    | Top+      -- ^ @TOP@+      -- An alignment that aligns the content to the top of the content holder.+      -- Corresponds to ECMA-376 ST_TextAnchoringType \'t\'.+    | Middle+      -- ^ @MIDDLE@+      -- An alignment that aligns the content to the middle of the content+      -- holder. Corresponds to ECMA-376 ST_TextAnchoringType \'ctr\'.+    | Bottom+      -- ^ @BOTTOM@+      -- An alignment that aligns the content to the bottom of the content+      -- holder. Corresponds to ECMA-376 ST_TextAnchoringType \'b\'.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable TableCellStyleContentAlignment++instance FromHttpApiData TableCellStyleContentAlignment where+    parseQueryParam = \case+        "CONTENT_ALIGNMENT_UNSPECIFIED" -> Right ContentAlignmentUnspecified+        "CONTENT_ALIGNMENT_UNSUPPORTED" -> Right ContentAlignmentUnsupported+        "TOP" -> Right Top+        "MIDDLE" -> Right Middle+        "BOTTOM" -> Right Bottom+        x -> Left ("Unable to parse TableCellStyleContentAlignment from: " <> x)++instance ToHttpApiData TableCellStyleContentAlignment where+    toQueryParam = \case+        ContentAlignmentUnspecified -> "CONTENT_ALIGNMENT_UNSPECIFIED"+        ContentAlignmentUnsupported -> "CONTENT_ALIGNMENT_UNSUPPORTED"+        Top -> "TOP"+        Middle -> "MIDDLE"+        Bottom -> "BOTTOM"++instance FromJSON TableCellStyleContentAlignment where+    parseJSON = parseJSONText "TableCellStyleContentAlignment"++instance ToJSON TableCellStyleContentAlignment where+    toJSON = toJSONText
+ gen/Network/Google/Resource/Docs/Documents/BatchUpdate.hs view
@@ -0,0 +1,194 @@+{-# 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.Docs.Documents.BatchUpdate+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Applies one or more updates to the document. Each request is validated+-- before being applied. If any request is not valid, then the entire+-- request will fail and nothing will be applied. Some requests have+-- replies to give you some information about how they are applied. Other+-- requests do not need to return information; these each return an empty+-- reply. The order of replies matches that of the requests. For example,+-- suppose you call batchUpdate with four updates, and only the third one+-- returns information. The response would have two empty replies, the+-- reply to the third request, and another empty reply, in that order.+-- Because other users may be editing the document, the document might not+-- exactly reflect your changes: your changes may be altered with respect+-- to collaborator changes. If there are no collaborators, the document+-- should reflect your changes. In any case, the updates in your request+-- are guaranteed to be applied together atomically.+--+-- /See:/ <https://developers.google.com/docs/ Google Docs API Reference> for @docs.documents.batchUpdate@.+module Network.Google.Resource.Docs.Documents.BatchUpdate+    (+    -- * REST Resource+      DocumentsBatchUpdateResource++    -- * Creating a Request+    , documentsBatchUpdate+    , DocumentsBatchUpdate++    -- * Request Lenses+    , dbuXgafv+    , dbuDocumentId+    , dbuUploadProtocol+    , dbuAccessToken+    , dbuUploadType+    , dbuPayload+    , dbuCallback+    ) where++import           Network.Google.Docs.Types+import           Network.Google.Prelude++-- | A resource alias for @docs.documents.batchUpdate@ method which the+-- 'DocumentsBatchUpdate' request conforms to.+type DocumentsBatchUpdateResource =+     "v1" :>+       "documents" :>+         CaptureMode "documentId" "batchUpdate" Text :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] BatchUpdateDocumentRequest :>+                         Post '[JSON] BatchUpdateDocumentResponse++-- | Applies one or more updates to the document. Each request is validated+-- before being applied. If any request is not valid, then the entire+-- request will fail and nothing will be applied. Some requests have+-- replies to give you some information about how they are applied. Other+-- requests do not need to return information; these each return an empty+-- reply. The order of replies matches that of the requests. For example,+-- suppose you call batchUpdate with four updates, and only the third one+-- returns information. The response would have two empty replies, the+-- reply to the third request, and another empty reply, in that order.+-- Because other users may be editing the document, the document might not+-- exactly reflect your changes: your changes may be altered with respect+-- to collaborator changes. If there are no collaborators, the document+-- should reflect your changes. In any case, the updates in your request+-- are guaranteed to be applied together atomically.+--+-- /See:/ 'documentsBatchUpdate' smart constructor.+data DocumentsBatchUpdate =+  DocumentsBatchUpdate'+    { _dbuXgafv          :: !(Maybe Xgafv)+    , _dbuDocumentId     :: !Text+    , _dbuUploadProtocol :: !(Maybe Text)+    , _dbuAccessToken    :: !(Maybe Text)+    , _dbuUploadType     :: !(Maybe Text)+    , _dbuPayload        :: !BatchUpdateDocumentRequest+    , _dbuCallback       :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DocumentsBatchUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dbuXgafv'+--+-- * 'dbuDocumentId'+--+-- * 'dbuUploadProtocol'+--+-- * 'dbuAccessToken'+--+-- * 'dbuUploadType'+--+-- * 'dbuPayload'+--+-- * 'dbuCallback'+documentsBatchUpdate+    :: Text -- ^ 'dbuDocumentId'+    -> BatchUpdateDocumentRequest -- ^ 'dbuPayload'+    -> DocumentsBatchUpdate+documentsBatchUpdate pDbuDocumentId_ pDbuPayload_ =+  DocumentsBatchUpdate'+    { _dbuXgafv = Nothing+    , _dbuDocumentId = pDbuDocumentId_+    , _dbuUploadProtocol = Nothing+    , _dbuAccessToken = Nothing+    , _dbuUploadType = Nothing+    , _dbuPayload = pDbuPayload_+    , _dbuCallback = Nothing+    }+++-- | V1 error format.+dbuXgafv :: Lens' DocumentsBatchUpdate (Maybe Xgafv)+dbuXgafv = lens _dbuXgafv (\ s a -> s{_dbuXgafv = a})++-- | The ID of the document to update.+dbuDocumentId :: Lens' DocumentsBatchUpdate Text+dbuDocumentId+  = lens _dbuDocumentId+      (\ s a -> s{_dbuDocumentId = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+dbuUploadProtocol :: Lens' DocumentsBatchUpdate (Maybe Text)+dbuUploadProtocol+  = lens _dbuUploadProtocol+      (\ s a -> s{_dbuUploadProtocol = a})++-- | OAuth access token.+dbuAccessToken :: Lens' DocumentsBatchUpdate (Maybe Text)+dbuAccessToken+  = lens _dbuAccessToken+      (\ s a -> s{_dbuAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+dbuUploadType :: Lens' DocumentsBatchUpdate (Maybe Text)+dbuUploadType+  = lens _dbuUploadType+      (\ s a -> s{_dbuUploadType = a})++-- | Multipart request metadata.+dbuPayload :: Lens' DocumentsBatchUpdate BatchUpdateDocumentRequest+dbuPayload+  = lens _dbuPayload (\ s a -> s{_dbuPayload = a})++-- | JSONP+dbuCallback :: Lens' DocumentsBatchUpdate (Maybe Text)+dbuCallback+  = lens _dbuCallback (\ s a -> s{_dbuCallback = a})++instance GoogleRequest DocumentsBatchUpdate where+        type Rs DocumentsBatchUpdate =+             BatchUpdateDocumentResponse+        type Scopes DocumentsBatchUpdate =+             '["https://www.googleapis.com/auth/documents",+               "https://www.googleapis.com/auth/drive",+               "https://www.googleapis.com/auth/drive.file"]+        requestClient DocumentsBatchUpdate'{..}+          = go _dbuDocumentId _dbuXgafv _dbuUploadProtocol+              _dbuAccessToken+              _dbuUploadType+              _dbuCallback+              (Just AltJSON)+              _dbuPayload+              docsService+          where go+                  = buildClient+                      (Proxy :: Proxy DocumentsBatchUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Docs/Documents/Create.hs view
@@ -0,0 +1,155 @@+{-# 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.Docs.Documents.Create+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a blank document using the title given in the request. Other+-- fields in the request, including any provided content, are ignored.+-- Returns the created document.+--+-- /See:/ <https://developers.google.com/docs/ Google Docs API Reference> for @docs.documents.create@.+module Network.Google.Resource.Docs.Documents.Create+    (+    -- * REST Resource+      DocumentsCreateResource++    -- * Creating a Request+    , documentsCreate+    , DocumentsCreate++    -- * Request Lenses+    , dcXgafv+    , dcUploadProtocol+    , dcAccessToken+    , dcUploadType+    , dcPayload+    , dcCallback+    ) where++import           Network.Google.Docs.Types+import           Network.Google.Prelude++-- | A resource alias for @docs.documents.create@ method which the+-- 'DocumentsCreate' request conforms to.+type DocumentsCreateResource =+     "v1" :>+       "documents" :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Document :> Post '[JSON] Document++-- | Creates a blank document using the title given in the request. Other+-- fields in the request, including any provided content, are ignored.+-- Returns the created document.+--+-- /See:/ 'documentsCreate' smart constructor.+data DocumentsCreate =+  DocumentsCreate'+    { _dcXgafv          :: !(Maybe Xgafv)+    , _dcUploadProtocol :: !(Maybe Text)+    , _dcAccessToken    :: !(Maybe Text)+    , _dcUploadType     :: !(Maybe Text)+    , _dcPayload        :: !Document+    , _dcCallback       :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DocumentsCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcXgafv'+--+-- * 'dcUploadProtocol'+--+-- * 'dcAccessToken'+--+-- * 'dcUploadType'+--+-- * 'dcPayload'+--+-- * 'dcCallback'+documentsCreate+    :: Document -- ^ 'dcPayload'+    -> DocumentsCreate+documentsCreate pDcPayload_ =+  DocumentsCreate'+    { _dcXgafv = Nothing+    , _dcUploadProtocol = Nothing+    , _dcAccessToken = Nothing+    , _dcUploadType = Nothing+    , _dcPayload = pDcPayload_+    , _dcCallback = Nothing+    }+++-- | V1 error format.+dcXgafv :: Lens' DocumentsCreate (Maybe Xgafv)+dcXgafv = lens _dcXgafv (\ s a -> s{_dcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+dcUploadProtocol :: Lens' DocumentsCreate (Maybe Text)+dcUploadProtocol+  = lens _dcUploadProtocol+      (\ s a -> s{_dcUploadProtocol = a})++-- | OAuth access token.+dcAccessToken :: Lens' DocumentsCreate (Maybe Text)+dcAccessToken+  = lens _dcAccessToken+      (\ s a -> s{_dcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+dcUploadType :: Lens' DocumentsCreate (Maybe Text)+dcUploadType+  = lens _dcUploadType (\ s a -> s{_dcUploadType = a})++-- | Multipart request metadata.+dcPayload :: Lens' DocumentsCreate Document+dcPayload+  = lens _dcPayload (\ s a -> s{_dcPayload = a})++-- | JSONP+dcCallback :: Lens' DocumentsCreate (Maybe Text)+dcCallback+  = lens _dcCallback (\ s a -> s{_dcCallback = a})++instance GoogleRequest DocumentsCreate where+        type Rs DocumentsCreate = Document+        type Scopes DocumentsCreate =+             '["https://www.googleapis.com/auth/documents",+               "https://www.googleapis.com/auth/drive",+               "https://www.googleapis.com/auth/drive.file"]+        requestClient DocumentsCreate'{..}+          = go _dcXgafv _dcUploadProtocol _dcAccessToken+              _dcUploadType+              _dcCallback+              (Just AltJSON)+              _dcPayload+              docsService+          where go+                  = buildClient+                      (Proxy :: Proxy DocumentsCreateResource)+                      mempty
+ gen/Network/Google/Resource/Docs/Documents/Get.hs view
@@ -0,0 +1,167 @@+{-# 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.Docs.Documents.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the latest version of the specified document.+--+-- /See:/ <https://developers.google.com/docs/ Google Docs API Reference> for @docs.documents.get@.+module Network.Google.Resource.Docs.Documents.Get+    (+    -- * REST Resource+      DocumentsGetResource++    -- * Creating a Request+    , documentsGet+    , DocumentsGet++    -- * Request Lenses+    , dgXgafv+    , dgDocumentId+    , dgUploadProtocol+    , dgAccessToken+    , dgUploadType+    , dgSuggestionsViewMode+    , dgCallback+    ) where++import           Network.Google.Docs.Types+import           Network.Google.Prelude++-- | A resource alias for @docs.documents.get@ method which the+-- 'DocumentsGet' request conforms to.+type DocumentsGetResource =+     "v1" :>+       "documents" :>+         Capture "documentId" Text :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "suggestionsViewMode" Text :>+                     QueryParam "callback" Text :>+                       QueryParam "alt" AltJSON :> Get '[JSON] Document++-- | Gets the latest version of the specified document.+--+-- /See:/ 'documentsGet' smart constructor.+data DocumentsGet =+  DocumentsGet'+    { _dgXgafv               :: !(Maybe Xgafv)+    , _dgDocumentId          :: !Text+    , _dgUploadProtocol      :: !(Maybe Text)+    , _dgAccessToken         :: !(Maybe Text)+    , _dgUploadType          :: !(Maybe Text)+    , _dgSuggestionsViewMode :: !(Maybe Text)+    , _dgCallback            :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DocumentsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dgXgafv'+--+-- * 'dgDocumentId'+--+-- * 'dgUploadProtocol'+--+-- * 'dgAccessToken'+--+-- * 'dgUploadType'+--+-- * 'dgSuggestionsViewMode'+--+-- * 'dgCallback'+documentsGet+    :: Text -- ^ 'dgDocumentId'+    -> DocumentsGet+documentsGet pDgDocumentId_ =+  DocumentsGet'+    { _dgXgafv = Nothing+    , _dgDocumentId = pDgDocumentId_+    , _dgUploadProtocol = Nothing+    , _dgAccessToken = Nothing+    , _dgUploadType = Nothing+    , _dgSuggestionsViewMode = Nothing+    , _dgCallback = Nothing+    }+++-- | V1 error format.+dgXgafv :: Lens' DocumentsGet (Maybe Xgafv)+dgXgafv = lens _dgXgafv (\ s a -> s{_dgXgafv = a})++-- | The ID of the document to retrieve.+dgDocumentId :: Lens' DocumentsGet Text+dgDocumentId+  = lens _dgDocumentId (\ s a -> s{_dgDocumentId = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+dgUploadProtocol :: Lens' DocumentsGet (Maybe Text)+dgUploadProtocol+  = lens _dgUploadProtocol+      (\ s a -> s{_dgUploadProtocol = a})++-- | OAuth access token.+dgAccessToken :: Lens' DocumentsGet (Maybe Text)+dgAccessToken+  = lens _dgAccessToken+      (\ s a -> s{_dgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+dgUploadType :: Lens' DocumentsGet (Maybe Text)+dgUploadType+  = lens _dgUploadType (\ s a -> s{_dgUploadType = a})++-- | The suggestions view mode to apply to the document. This allows viewing+-- the document with all suggestions inline, accepted or rejected. If one+-- is not specified, DEFAULT_FOR_CURRENT_ACCESS is used.+dgSuggestionsViewMode :: Lens' DocumentsGet (Maybe Text)+dgSuggestionsViewMode+  = lens _dgSuggestionsViewMode+      (\ s a -> s{_dgSuggestionsViewMode = a})++-- | JSONP+dgCallback :: Lens' DocumentsGet (Maybe Text)+dgCallback+  = lens _dgCallback (\ s a -> s{_dgCallback = a})++instance GoogleRequest DocumentsGet where+        type Rs DocumentsGet = Document+        type Scopes DocumentsGet =+             '["https://www.googleapis.com/auth/documents",+               "https://www.googleapis.com/auth/documents.readonly",+               "https://www.googleapis.com/auth/drive",+               "https://www.googleapis.com/auth/drive.file",+               "https://www.googleapis.com/auth/drive.readonly"]+        requestClient DocumentsGet'{..}+          = go _dgDocumentId _dgXgafv _dgUploadProtocol+              _dgAccessToken+              _dgUploadType+              _dgSuggestionsViewMode+              _dgCallback+              (Just AltJSON)+              docsService+          where go+                  = buildClient (Proxy :: Proxy DocumentsGetResource)+                      mempty
+ gogol-docs.cabal view
@@ -0,0 +1,48 @@+name:                  gogol-docs+version:               0.5.0+synopsis:              Google Docs SDK.+homepage:              https://github.com/brendanhay/gogol+bug-reports:           https://github.com/brendanhay/gogol/issues+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2015-2016 Brendan Hay+category:              Network, Google, Cloud+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md src/.gitkeep++description:+    Reads and writes Google Docs documents.+    .+    /Warning:/ This is an experimental prototype/preview release which is still+    under exploratory development and not intended for public use, caveat emptor!+    .+    This library is compatible with version @v1@+    of the API.++source-repository head+    type:     git+    location: git://github.com/brendanhay/gogol.git++library+    default-language:  Haskell2010+    hs-source-dirs:    src gen++    ghc-options:       -Wall++    exposed-modules:+          Network.Google.Docs+        , Network.Google.Docs.Types+        , Network.Google.Resource.Docs.Documents.BatchUpdate+        , Network.Google.Resource.Docs.Documents.Create+        , Network.Google.Resource.Docs.Documents.Get++    other-modules:+          Network.Google.Docs.Types.Product+        , Network.Google.Docs.Types.Sum++    build-depends:+          gogol-core == 0.5.0.*+        , base       >= 4.7 && < 5
+ src/.gitkeep view