gogol-sheets (empty) → 0.1.0
raw patch · 16 files changed
+14339/−0 lines, 16 filesdep +basedep +gogol-coresetup-changed
Dependencies added: base, gogol-core
Files
- LICENSE +367/−0
- README.md +28/−0
- Setup.hs +2/−0
- gen/Network/Google/Resource/Sheets/Spreadsheets/BatchUpdate.hs +211/−0
- gen/Network/Google/Resource/Sheets/Spreadsheets/Create.hs +171/−0
- gen/Network/Google/Resource/Sheets/Spreadsheets/Get.hs +221/−0
- gen/Network/Google/Resource/Sheets/Spreadsheets/Sheets/CopyTo.hs +205/−0
- gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchGet.hs +240/−0
- gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchUpdate.hs +196/−0
- gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Get.hs +234/−0
- gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Update.hs +215/−0
- gen/Network/Google/Sheets.hs +1091/−0
- gen/Network/Google/Sheets/Types.hs +1058/−0
- gen/Network/Google/Sheets/Types/Product.hs +8212/−0
- gen/Network/Google/Sheets/Types/Sum.hs +1835/−0
- gogol-sheets.cabal +53/−0
+ 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-sheets++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.1.0`+++## Description++A client library for the Google Sheets.+++## 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-sheets` 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/Resource/Sheets/Spreadsheets/BatchUpdate.hs view
@@ -0,0 +1,211 @@+{-# 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.Sheets.Spreadsheets.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 spreadsheet. 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. The+-- replies will mirror the requests. For example, if you applied 4 updates+-- and the 3rd one had a reply, then the response will have 2 empty+-- replies, the actual reply, and another empty reply, in that order. Due+-- to the collaborative nature of spreadsheets, it is not guaranteed that+-- the spreadsheet will reflect exactly your changes after this completes,+-- however it is guaranteed that the updates in the request will be applied+-- together atomically. Your changes may be altered with respect to+-- collaborator changes. If there are no collaborators, the spreadsheet+-- should reflect your changes.+--+-- /See:/ <https://developers.google.com/sheets/ Google Sheets API Reference> for @sheets.spreadsheets.batchUpdate@.+module Network.Google.Resource.Sheets.Spreadsheets.BatchUpdate+ (+ -- * REST Resource+ SpreadsheetsBatchUpdateResource++ -- * Creating a Request+ , spreadsheetsBatchUpdate+ , SpreadsheetsBatchUpdate++ -- * Request Lenses+ , sbuXgafv+ , sbuUploadProtocol+ , sbuPp+ , sbuAccessToken+ , sbuSpreadsheetId+ , sbuUploadType+ , sbuPayload+ , sbuBearerToken+ , sbuCallback+ ) where++import Network.Google.Prelude+import Network.Google.Sheets.Types++-- | A resource alias for @sheets.spreadsheets.batchUpdate@ method which the+-- 'SpreadsheetsBatchUpdate' request conforms to.+type SpreadsheetsBatchUpdateResource =+ "v4" :>+ "spreadsheets" :>+ CaptureMode "spreadsheetId" "batchUpdate" Text :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ ReqBody '[JSON] BatchUpdateSpreadsheetRequest :>+ Post '[JSON] BatchUpdateSpreadsheetResponse++-- | Applies one or more updates to the spreadsheet. 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. The+-- replies will mirror the requests. For example, if you applied 4 updates+-- and the 3rd one had a reply, then the response will have 2 empty+-- replies, the actual reply, and another empty reply, in that order. Due+-- to the collaborative nature of spreadsheets, it is not guaranteed that+-- the spreadsheet will reflect exactly your changes after this completes,+-- however it is guaranteed that the updates in the request will be applied+-- together atomically. Your changes may be altered with respect to+-- collaborator changes. If there are no collaborators, the spreadsheet+-- should reflect your changes.+--+-- /See:/ 'spreadsheetsBatchUpdate' smart constructor.+data SpreadsheetsBatchUpdate = SpreadsheetsBatchUpdate'+ { _sbuXgafv :: !(Maybe Xgafv)+ , _sbuUploadProtocol :: !(Maybe Text)+ , _sbuPp :: !Bool+ , _sbuAccessToken :: !(Maybe Text)+ , _sbuSpreadsheetId :: !Text+ , _sbuUploadType :: !(Maybe Text)+ , _sbuPayload :: !BatchUpdateSpreadsheetRequest+ , _sbuBearerToken :: !(Maybe Text)+ , _sbuCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpreadsheetsBatchUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sbuXgafv'+--+-- * 'sbuUploadProtocol'+--+-- * 'sbuPp'+--+-- * 'sbuAccessToken'+--+-- * 'sbuSpreadsheetId'+--+-- * 'sbuUploadType'+--+-- * 'sbuPayload'+--+-- * 'sbuBearerToken'+--+-- * 'sbuCallback'+spreadsheetsBatchUpdate+ :: Text -- ^ 'sbuSpreadsheetId'+ -> BatchUpdateSpreadsheetRequest -- ^ 'sbuPayload'+ -> SpreadsheetsBatchUpdate+spreadsheetsBatchUpdate pSbuSpreadsheetId_ pSbuPayload_ =+ SpreadsheetsBatchUpdate'+ { _sbuXgafv = Nothing+ , _sbuUploadProtocol = Nothing+ , _sbuPp = True+ , _sbuAccessToken = Nothing+ , _sbuSpreadsheetId = pSbuSpreadsheetId_+ , _sbuUploadType = Nothing+ , _sbuPayload = pSbuPayload_+ , _sbuBearerToken = Nothing+ , _sbuCallback = Nothing+ }++-- | V1 error format.+sbuXgafv :: Lens' SpreadsheetsBatchUpdate (Maybe Xgafv)+sbuXgafv = lens _sbuXgafv (\ s a -> s{_sbuXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+sbuUploadProtocol :: Lens' SpreadsheetsBatchUpdate (Maybe Text)+sbuUploadProtocol+ = lens _sbuUploadProtocol+ (\ s a -> s{_sbuUploadProtocol = a})++-- | Pretty-print response.+sbuPp :: Lens' SpreadsheetsBatchUpdate Bool+sbuPp = lens _sbuPp (\ s a -> s{_sbuPp = a})++-- | OAuth access token.+sbuAccessToken :: Lens' SpreadsheetsBatchUpdate (Maybe Text)+sbuAccessToken+ = lens _sbuAccessToken+ (\ s a -> s{_sbuAccessToken = a})++-- | The spreadsheet to apply the updates to.+sbuSpreadsheetId :: Lens' SpreadsheetsBatchUpdate Text+sbuSpreadsheetId+ = lens _sbuSpreadsheetId+ (\ s a -> s{_sbuSpreadsheetId = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+sbuUploadType :: Lens' SpreadsheetsBatchUpdate (Maybe Text)+sbuUploadType+ = lens _sbuUploadType+ (\ s a -> s{_sbuUploadType = a})++-- | Multipart request metadata.+sbuPayload :: Lens' SpreadsheetsBatchUpdate BatchUpdateSpreadsheetRequest+sbuPayload+ = lens _sbuPayload (\ s a -> s{_sbuPayload = a})++-- | OAuth bearer token.+sbuBearerToken :: Lens' SpreadsheetsBatchUpdate (Maybe Text)+sbuBearerToken+ = lens _sbuBearerToken+ (\ s a -> s{_sbuBearerToken = a})++-- | JSONP+sbuCallback :: Lens' SpreadsheetsBatchUpdate (Maybe Text)+sbuCallback+ = lens _sbuCallback (\ s a -> s{_sbuCallback = a})++instance GoogleRequest SpreadsheetsBatchUpdate where+ type Rs SpreadsheetsBatchUpdate =+ BatchUpdateSpreadsheetResponse+ type Scopes SpreadsheetsBatchUpdate =+ '["https://www.googleapis.com/auth/drive",+ "https://www.googleapis.com/auth/spreadsheets"]+ requestClient SpreadsheetsBatchUpdate'{..}+ = go _sbuSpreadsheetId _sbuXgafv _sbuUploadProtocol+ (Just _sbuPp)+ _sbuAccessToken+ _sbuUploadType+ _sbuBearerToken+ _sbuCallback+ (Just AltJSON)+ _sbuPayload+ sheetsService+ where go+ = buildClient+ (Proxy :: Proxy SpreadsheetsBatchUpdateResource)+ mempty
+ gen/Network/Google/Resource/Sheets/Spreadsheets/Create.hs view
@@ -0,0 +1,171 @@+{-# 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.Sheets.Spreadsheets.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 spreadsheet, returning the newly created spreadsheet.+--+-- /See:/ <https://developers.google.com/sheets/ Google Sheets API Reference> for @sheets.spreadsheets.create@.+module Network.Google.Resource.Sheets.Spreadsheets.Create+ (+ -- * REST Resource+ SpreadsheetsCreateResource++ -- * Creating a Request+ , spreadsheetsCreate+ , SpreadsheetsCreate++ -- * Request Lenses+ , scXgafv+ , scUploadProtocol+ , scPp+ , scAccessToken+ , scUploadType+ , scPayload+ , scBearerToken+ , scCallback+ ) where++import Network.Google.Prelude+import Network.Google.Sheets.Types++-- | A resource alias for @sheets.spreadsheets.create@ method which the+-- 'SpreadsheetsCreate' request conforms to.+type SpreadsheetsCreateResource =+ "v4" :>+ "spreadsheets" :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ ReqBody '[JSON] Spreadsheet :>+ Post '[JSON] Spreadsheet++-- | Creates a spreadsheet, returning the newly created spreadsheet.+--+-- /See:/ 'spreadsheetsCreate' smart constructor.+data SpreadsheetsCreate = SpreadsheetsCreate'+ { _scXgafv :: !(Maybe Xgafv)+ , _scUploadProtocol :: !(Maybe Text)+ , _scPp :: !Bool+ , _scAccessToken :: !(Maybe Text)+ , _scUploadType :: !(Maybe Text)+ , _scPayload :: !Spreadsheet+ , _scBearerToken :: !(Maybe Text)+ , _scCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpreadsheetsCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scXgafv'+--+-- * 'scUploadProtocol'+--+-- * 'scPp'+--+-- * 'scAccessToken'+--+-- * 'scUploadType'+--+-- * 'scPayload'+--+-- * 'scBearerToken'+--+-- * 'scCallback'+spreadsheetsCreate+ :: Spreadsheet -- ^ 'scPayload'+ -> SpreadsheetsCreate+spreadsheetsCreate pScPayload_ =+ SpreadsheetsCreate'+ { _scXgafv = Nothing+ , _scUploadProtocol = Nothing+ , _scPp = True+ , _scAccessToken = Nothing+ , _scUploadType = Nothing+ , _scPayload = pScPayload_+ , _scBearerToken = Nothing+ , _scCallback = Nothing+ }++-- | V1 error format.+scXgafv :: Lens' SpreadsheetsCreate (Maybe Xgafv)+scXgafv = lens _scXgafv (\ s a -> s{_scXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+scUploadProtocol :: Lens' SpreadsheetsCreate (Maybe Text)+scUploadProtocol+ = lens _scUploadProtocol+ (\ s a -> s{_scUploadProtocol = a})++-- | Pretty-print response.+scPp :: Lens' SpreadsheetsCreate Bool+scPp = lens _scPp (\ s a -> s{_scPp = a})++-- | OAuth access token.+scAccessToken :: Lens' SpreadsheetsCreate (Maybe Text)+scAccessToken+ = lens _scAccessToken+ (\ s a -> s{_scAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+scUploadType :: Lens' SpreadsheetsCreate (Maybe Text)+scUploadType+ = lens _scUploadType (\ s a -> s{_scUploadType = a})++-- | Multipart request metadata.+scPayload :: Lens' SpreadsheetsCreate Spreadsheet+scPayload+ = lens _scPayload (\ s a -> s{_scPayload = a})++-- | OAuth bearer token.+scBearerToken :: Lens' SpreadsheetsCreate (Maybe Text)+scBearerToken+ = lens _scBearerToken+ (\ s a -> s{_scBearerToken = a})++-- | JSONP+scCallback :: Lens' SpreadsheetsCreate (Maybe Text)+scCallback+ = lens _scCallback (\ s a -> s{_scCallback = a})++instance GoogleRequest SpreadsheetsCreate where+ type Rs SpreadsheetsCreate = Spreadsheet+ type Scopes SpreadsheetsCreate =+ '["https://www.googleapis.com/auth/drive",+ "https://www.googleapis.com/auth/spreadsheets"]+ requestClient SpreadsheetsCreate'{..}+ = go _scXgafv _scUploadProtocol (Just _scPp)+ _scAccessToken+ _scUploadType+ _scBearerToken+ _scCallback+ (Just AltJSON)+ _scPayload+ sheetsService+ where go+ = buildClient+ (Proxy :: Proxy SpreadsheetsCreateResource)+ mempty
+ gen/Network/Google/Resource/Sheets/Spreadsheets/Get.hs view
@@ -0,0 +1,221 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.Sheets.Spreadsheets.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)+--+-- Returns the spreadsheet at the given ID. The caller must specify the+-- spreadsheet ID. By default, data within grids will not be returned. You+-- can include grid data one of two ways: * Specify a field mask listing+-- your desired fields using the \`fields\` URL parameter in HTTP * Set the+-- includeGridData URL parameter to true. If a field mask is set, the+-- \`includeGridData\` parameter is ignored For large spreadsheets, it is+-- recommended to retrieve only the specific fields of the spreadsheet that+-- you want. To retrieve only subsets of the spreadsheet, use the ranges+-- URL parameter. Multiple ranges can be specified. Limiting the range will+-- return only the portions of the spreadsheet that intersect the requested+-- ranges. Ranges are specified using A1 notation.+--+-- /See:/ <https://developers.google.com/sheets/ Google Sheets API Reference> for @sheets.spreadsheets.get@.+module Network.Google.Resource.Sheets.Spreadsheets.Get+ (+ -- * REST Resource+ SpreadsheetsGetResource++ -- * Creating a Request+ , spreadsheetsGet+ , SpreadsheetsGet++ -- * Request Lenses+ , sgXgafv+ , sgUploadProtocol+ , sgPp+ , sgAccessToken+ , sgSpreadsheetId+ , sgUploadType+ , sgRanges+ , sgIncludeGridData+ , sgBearerToken+ , sgCallback+ ) where++import Network.Google.Prelude+import Network.Google.Sheets.Types++-- | A resource alias for @sheets.spreadsheets.get@ method which the+-- 'SpreadsheetsGet' request conforms to.+type SpreadsheetsGetResource =+ "v4" :>+ "spreadsheets" :>+ Capture "spreadsheetId" Text :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParams "ranges" Text :>+ QueryParam "includeGridData" Bool :>+ QueryParam "bearer_token" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :> Get '[JSON] Spreadsheet++-- | Returns the spreadsheet at the given ID. The caller must specify the+-- spreadsheet ID. By default, data within grids will not be returned. You+-- can include grid data one of two ways: * Specify a field mask listing+-- your desired fields using the \`fields\` URL parameter in HTTP * Set the+-- includeGridData URL parameter to true. If a field mask is set, the+-- \`includeGridData\` parameter is ignored For large spreadsheets, it is+-- recommended to retrieve only the specific fields of the spreadsheet that+-- you want. To retrieve only subsets of the spreadsheet, use the ranges+-- URL parameter. Multiple ranges can be specified. Limiting the range will+-- return only the portions of the spreadsheet that intersect the requested+-- ranges. Ranges are specified using A1 notation.+--+-- /See:/ 'spreadsheetsGet' smart constructor.+data SpreadsheetsGet = SpreadsheetsGet'+ { _sgXgafv :: !(Maybe Xgafv)+ , _sgUploadProtocol :: !(Maybe Text)+ , _sgPp :: !Bool+ , _sgAccessToken :: !(Maybe Text)+ , _sgSpreadsheetId :: !Text+ , _sgUploadType :: !(Maybe Text)+ , _sgRanges :: !(Maybe [Text])+ , _sgIncludeGridData :: !(Maybe Bool)+ , _sgBearerToken :: !(Maybe Text)+ , _sgCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpreadsheetsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sgXgafv'+--+-- * 'sgUploadProtocol'+--+-- * 'sgPp'+--+-- * 'sgAccessToken'+--+-- * 'sgSpreadsheetId'+--+-- * 'sgUploadType'+--+-- * 'sgRanges'+--+-- * 'sgIncludeGridData'+--+-- * 'sgBearerToken'+--+-- * 'sgCallback'+spreadsheetsGet+ :: Text -- ^ 'sgSpreadsheetId'+ -> SpreadsheetsGet+spreadsheetsGet pSgSpreadsheetId_ =+ SpreadsheetsGet'+ { _sgXgafv = Nothing+ , _sgUploadProtocol = Nothing+ , _sgPp = True+ , _sgAccessToken = Nothing+ , _sgSpreadsheetId = pSgSpreadsheetId_+ , _sgUploadType = Nothing+ , _sgRanges = Nothing+ , _sgIncludeGridData = Nothing+ , _sgBearerToken = Nothing+ , _sgCallback = Nothing+ }++-- | V1 error format.+sgXgafv :: Lens' SpreadsheetsGet (Maybe Xgafv)+sgXgafv = lens _sgXgafv (\ s a -> s{_sgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+sgUploadProtocol :: Lens' SpreadsheetsGet (Maybe Text)+sgUploadProtocol+ = lens _sgUploadProtocol+ (\ s a -> s{_sgUploadProtocol = a})++-- | Pretty-print response.+sgPp :: Lens' SpreadsheetsGet Bool+sgPp = lens _sgPp (\ s a -> s{_sgPp = a})++-- | OAuth access token.+sgAccessToken :: Lens' SpreadsheetsGet (Maybe Text)+sgAccessToken+ = lens _sgAccessToken+ (\ s a -> s{_sgAccessToken = a})++-- | The spreadsheet to request.+sgSpreadsheetId :: Lens' SpreadsheetsGet Text+sgSpreadsheetId+ = lens _sgSpreadsheetId+ (\ s a -> s{_sgSpreadsheetId = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+sgUploadType :: Lens' SpreadsheetsGet (Maybe Text)+sgUploadType+ = lens _sgUploadType (\ s a -> s{_sgUploadType = a})++-- | The ranges to retrieve from the spreadsheet.+sgRanges :: Lens' SpreadsheetsGet [Text]+sgRanges+ = lens _sgRanges (\ s a -> s{_sgRanges = a}) .+ _Default+ . _Coerce++-- | True if grid data should be returned. This parameter is ignored if a+-- field mask was set in the request.+sgIncludeGridData :: Lens' SpreadsheetsGet (Maybe Bool)+sgIncludeGridData+ = lens _sgIncludeGridData+ (\ s a -> s{_sgIncludeGridData = a})++-- | OAuth bearer token.+sgBearerToken :: Lens' SpreadsheetsGet (Maybe Text)+sgBearerToken+ = lens _sgBearerToken+ (\ s a -> s{_sgBearerToken = a})++-- | JSONP+sgCallback :: Lens' SpreadsheetsGet (Maybe Text)+sgCallback+ = lens _sgCallback (\ s a -> s{_sgCallback = a})++instance GoogleRequest SpreadsheetsGet where+ type Rs SpreadsheetsGet = Spreadsheet+ type Scopes SpreadsheetsGet =+ '["https://www.googleapis.com/auth/drive",+ "https://www.googleapis.com/auth/drive.readonly",+ "https://www.googleapis.com/auth/spreadsheets",+ "https://www.googleapis.com/auth/spreadsheets.readonly"]+ requestClient SpreadsheetsGet'{..}+ = go _sgSpreadsheetId _sgXgafv _sgUploadProtocol+ (Just _sgPp)+ _sgAccessToken+ _sgUploadType+ (_sgRanges ^. _Default)+ _sgIncludeGridData+ _sgBearerToken+ _sgCallback+ (Just AltJSON)+ sheetsService+ where go+ = buildClient+ (Proxy :: Proxy SpreadsheetsGetResource)+ mempty
+ gen/Network/Google/Resource/Sheets/Spreadsheets/Sheets/CopyTo.hs view
@@ -0,0 +1,205 @@+{-# 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.Sheets.Spreadsheets.Sheets.CopyTo+-- 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)+--+-- Copies a single sheet from a spreadsheet to another spreadsheet. Returns+-- the properties of the newly created sheet.+--+-- /See:/ <https://developers.google.com/sheets/ Google Sheets API Reference> for @sheets.spreadsheets.sheets.copyTo@.+module Network.Google.Resource.Sheets.Spreadsheets.Sheets.CopyTo+ (+ -- * REST Resource+ SpreadsheetsSheetsCopyToResource++ -- * Creating a Request+ , spreadsheetsSheetsCopyTo+ , SpreadsheetsSheetsCopyTo++ -- * Request Lenses+ , ssctXgafv+ , ssctUploadProtocol+ , ssctPp+ , ssctAccessToken+ , ssctSpreadsheetId+ , ssctUploadType+ , ssctPayload+ , ssctBearerToken+ , ssctSheetId+ , ssctCallback+ ) where++import Network.Google.Prelude+import Network.Google.Sheets.Types++-- | A resource alias for @sheets.spreadsheets.sheets.copyTo@ method which the+-- 'SpreadsheetsSheetsCopyTo' request conforms to.+type SpreadsheetsSheetsCopyToResource =+ "v4" :>+ "spreadsheets" :>+ Capture "spreadsheetId" Text :>+ "sheets" :>+ CaptureMode "sheetId" "copyTo" (Textual Int32) :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ ReqBody '[JSON]+ CopySheetToAnotherSpreadsheetRequest+ :> Post '[JSON] SheetProperties++-- | Copies a single sheet from a spreadsheet to another spreadsheet. Returns+-- the properties of the newly created sheet.+--+-- /See:/ 'spreadsheetsSheetsCopyTo' smart constructor.+data SpreadsheetsSheetsCopyTo = SpreadsheetsSheetsCopyTo'+ { _ssctXgafv :: !(Maybe Xgafv)+ , _ssctUploadProtocol :: !(Maybe Text)+ , _ssctPp :: !Bool+ , _ssctAccessToken :: !(Maybe Text)+ , _ssctSpreadsheetId :: !Text+ , _ssctUploadType :: !(Maybe Text)+ , _ssctPayload :: !CopySheetToAnotherSpreadsheetRequest+ , _ssctBearerToken :: !(Maybe Text)+ , _ssctSheetId :: !(Textual Int32)+ , _ssctCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpreadsheetsSheetsCopyTo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ssctXgafv'+--+-- * 'ssctUploadProtocol'+--+-- * 'ssctPp'+--+-- * 'ssctAccessToken'+--+-- * 'ssctSpreadsheetId'+--+-- * 'ssctUploadType'+--+-- * 'ssctPayload'+--+-- * 'ssctBearerToken'+--+-- * 'ssctSheetId'+--+-- * 'ssctCallback'+spreadsheetsSheetsCopyTo+ :: Text -- ^ 'ssctSpreadsheetId'+ -> CopySheetToAnotherSpreadsheetRequest -- ^ 'ssctPayload'+ -> Int32 -- ^ 'ssctSheetId'+ -> SpreadsheetsSheetsCopyTo+spreadsheetsSheetsCopyTo pSsctSpreadsheetId_ pSsctPayload_ pSsctSheetId_ =+ SpreadsheetsSheetsCopyTo'+ { _ssctXgafv = Nothing+ , _ssctUploadProtocol = Nothing+ , _ssctPp = True+ , _ssctAccessToken = Nothing+ , _ssctSpreadsheetId = pSsctSpreadsheetId_+ , _ssctUploadType = Nothing+ , _ssctPayload = pSsctPayload_+ , _ssctBearerToken = Nothing+ , _ssctSheetId = _Coerce # pSsctSheetId_+ , _ssctCallback = Nothing+ }++-- | V1 error format.+ssctXgafv :: Lens' SpreadsheetsSheetsCopyTo (Maybe Xgafv)+ssctXgafv+ = lens _ssctXgafv (\ s a -> s{_ssctXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ssctUploadProtocol :: Lens' SpreadsheetsSheetsCopyTo (Maybe Text)+ssctUploadProtocol+ = lens _ssctUploadProtocol+ (\ s a -> s{_ssctUploadProtocol = a})++-- | Pretty-print response.+ssctPp :: Lens' SpreadsheetsSheetsCopyTo Bool+ssctPp = lens _ssctPp (\ s a -> s{_ssctPp = a})++-- | OAuth access token.+ssctAccessToken :: Lens' SpreadsheetsSheetsCopyTo (Maybe Text)+ssctAccessToken+ = lens _ssctAccessToken+ (\ s a -> s{_ssctAccessToken = a})++-- | The ID of the spreadsheet containing the sheet to copy.+ssctSpreadsheetId :: Lens' SpreadsheetsSheetsCopyTo Text+ssctSpreadsheetId+ = lens _ssctSpreadsheetId+ (\ s a -> s{_ssctSpreadsheetId = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ssctUploadType :: Lens' SpreadsheetsSheetsCopyTo (Maybe Text)+ssctUploadType+ = lens _ssctUploadType+ (\ s a -> s{_ssctUploadType = a})++-- | Multipart request metadata.+ssctPayload :: Lens' SpreadsheetsSheetsCopyTo CopySheetToAnotherSpreadsheetRequest+ssctPayload+ = lens _ssctPayload (\ s a -> s{_ssctPayload = a})++-- | OAuth bearer token.+ssctBearerToken :: Lens' SpreadsheetsSheetsCopyTo (Maybe Text)+ssctBearerToken+ = lens _ssctBearerToken+ (\ s a -> s{_ssctBearerToken = a})++-- | The ID of the sheet to copy.+ssctSheetId :: Lens' SpreadsheetsSheetsCopyTo Int32+ssctSheetId+ = lens _ssctSheetId (\ s a -> s{_ssctSheetId = a}) .+ _Coerce++-- | JSONP+ssctCallback :: Lens' SpreadsheetsSheetsCopyTo (Maybe Text)+ssctCallback+ = lens _ssctCallback (\ s a -> s{_ssctCallback = a})++instance GoogleRequest SpreadsheetsSheetsCopyTo where+ type Rs SpreadsheetsSheetsCopyTo = SheetProperties+ type Scopes SpreadsheetsSheetsCopyTo =+ '["https://www.googleapis.com/auth/drive",+ "https://www.googleapis.com/auth/spreadsheets"]+ requestClient SpreadsheetsSheetsCopyTo'{..}+ = go _ssctSpreadsheetId _ssctSheetId _ssctXgafv+ _ssctUploadProtocol+ (Just _ssctPp)+ _ssctAccessToken+ _ssctUploadType+ _ssctBearerToken+ _ssctCallback+ (Just AltJSON)+ _ssctPayload+ sheetsService+ where go+ = buildClient+ (Proxy :: Proxy SpreadsheetsSheetsCopyToResource)+ mempty
+ gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchGet.hs view
@@ -0,0 +1,240 @@+{-# 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.Sheets.Spreadsheets.Values.BatchGet+-- 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)+--+-- Returns one or more ranges of values from a spreadsheet. The caller must+-- specify the spreadsheet ID and one or more ranges.+--+-- /See:/ <https://developers.google.com/sheets/ Google Sheets API Reference> for @sheets.spreadsheets.values.batchGet@.+module Network.Google.Resource.Sheets.Spreadsheets.Values.BatchGet+ (+ -- * REST Resource+ SpreadsheetsValuesBatchGetResource++ -- * Creating a Request+ , spreadsheetsValuesBatchGet+ , SpreadsheetsValuesBatchGet++ -- * Request Lenses+ , svbgXgafv+ , svbgValueRenderOption+ , svbgUploadProtocol+ , svbgPp+ , svbgAccessToken+ , svbgSpreadsheetId+ , svbgUploadType+ , svbgRanges+ , svbgBearerToken+ , svbgDateTimeRenderOption+ , svbgMajorDimension+ , svbgCallback+ ) where++import Network.Google.Prelude+import Network.Google.Sheets.Types++-- | A resource alias for @sheets.spreadsheets.values.batchGet@ method which the+-- 'SpreadsheetsValuesBatchGet' request conforms to.+type SpreadsheetsValuesBatchGetResource =+ "v4" :>+ "spreadsheets" :>+ Capture "spreadsheetId" Text :>+ "values:batchGet" :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "valueRenderOption" Text :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParams "ranges" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "dateTimeRenderOption" Text :>+ QueryParam "majorDimension" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ Get '[JSON] BatchGetValuesResponse++-- | Returns one or more ranges of values from a spreadsheet. The caller must+-- specify the spreadsheet ID and one or more ranges.+--+-- /See:/ 'spreadsheetsValuesBatchGet' smart constructor.+data SpreadsheetsValuesBatchGet = SpreadsheetsValuesBatchGet'+ { _svbgXgafv :: !(Maybe Xgafv)+ , _svbgValueRenderOption :: !(Maybe Text)+ , _svbgUploadProtocol :: !(Maybe Text)+ , _svbgPp :: !Bool+ , _svbgAccessToken :: !(Maybe Text)+ , _svbgSpreadsheetId :: !Text+ , _svbgUploadType :: !(Maybe Text)+ , _svbgRanges :: !(Maybe [Text])+ , _svbgBearerToken :: !(Maybe Text)+ , _svbgDateTimeRenderOption :: !(Maybe Text)+ , _svbgMajorDimension :: !(Maybe Text)+ , _svbgCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpreadsheetsValuesBatchGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'svbgXgafv'+--+-- * 'svbgValueRenderOption'+--+-- * 'svbgUploadProtocol'+--+-- * 'svbgPp'+--+-- * 'svbgAccessToken'+--+-- * 'svbgSpreadsheetId'+--+-- * 'svbgUploadType'+--+-- * 'svbgRanges'+--+-- * 'svbgBearerToken'+--+-- * 'svbgDateTimeRenderOption'+--+-- * 'svbgMajorDimension'+--+-- * 'svbgCallback'+spreadsheetsValuesBatchGet+ :: Text -- ^ 'svbgSpreadsheetId'+ -> SpreadsheetsValuesBatchGet+spreadsheetsValuesBatchGet pSvbgSpreadsheetId_ =+ SpreadsheetsValuesBatchGet'+ { _svbgXgafv = Nothing+ , _svbgValueRenderOption = Nothing+ , _svbgUploadProtocol = Nothing+ , _svbgPp = True+ , _svbgAccessToken = Nothing+ , _svbgSpreadsheetId = pSvbgSpreadsheetId_+ , _svbgUploadType = Nothing+ , _svbgRanges = Nothing+ , _svbgBearerToken = Nothing+ , _svbgDateTimeRenderOption = Nothing+ , _svbgMajorDimension = Nothing+ , _svbgCallback = Nothing+ }++-- | V1 error format.+svbgXgafv :: Lens' SpreadsheetsValuesBatchGet (Maybe Xgafv)+svbgXgafv+ = lens _svbgXgafv (\ s a -> s{_svbgXgafv = a})++-- | How values should be represented in the output.+svbgValueRenderOption :: Lens' SpreadsheetsValuesBatchGet (Maybe Text)+svbgValueRenderOption+ = lens _svbgValueRenderOption+ (\ s a -> s{_svbgValueRenderOption = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+svbgUploadProtocol :: Lens' SpreadsheetsValuesBatchGet (Maybe Text)+svbgUploadProtocol+ = lens _svbgUploadProtocol+ (\ s a -> s{_svbgUploadProtocol = a})++-- | Pretty-print response.+svbgPp :: Lens' SpreadsheetsValuesBatchGet Bool+svbgPp = lens _svbgPp (\ s a -> s{_svbgPp = a})++-- | OAuth access token.+svbgAccessToken :: Lens' SpreadsheetsValuesBatchGet (Maybe Text)+svbgAccessToken+ = lens _svbgAccessToken+ (\ s a -> s{_svbgAccessToken = a})++-- | The ID of the spreadsheet to retrieve data from.+svbgSpreadsheetId :: Lens' SpreadsheetsValuesBatchGet Text+svbgSpreadsheetId+ = lens _svbgSpreadsheetId+ (\ s a -> s{_svbgSpreadsheetId = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+svbgUploadType :: Lens' SpreadsheetsValuesBatchGet (Maybe Text)+svbgUploadType+ = lens _svbgUploadType+ (\ s a -> s{_svbgUploadType = a})++-- | The A1 notation of the values to retrieve.+svbgRanges :: Lens' SpreadsheetsValuesBatchGet [Text]+svbgRanges+ = lens _svbgRanges (\ s a -> s{_svbgRanges = a}) .+ _Default+ . _Coerce++-- | OAuth bearer token.+svbgBearerToken :: Lens' SpreadsheetsValuesBatchGet (Maybe Text)+svbgBearerToken+ = lens _svbgBearerToken+ (\ s a -> s{_svbgBearerToken = a})++-- | How dates, times, and durations should be represented in the output.+-- This is ignored if value_render_option is FORMATTED_VALUE.+svbgDateTimeRenderOption :: Lens' SpreadsheetsValuesBatchGet (Maybe Text)+svbgDateTimeRenderOption+ = lens _svbgDateTimeRenderOption+ (\ s a -> s{_svbgDateTimeRenderOption = a})++-- | The major dimension that results should use. For example, if the+-- spreadsheet data is: \`A1=1,B1=2,A2=3,B2=4\`, then requesting+-- \`range=A1:B2,majorDimension=ROWS\` will return \`[[1,2],[3,4]]\`,+-- whereas requesting \`range=A1:B2,majorDimension=COLUMNS\` will return+-- \`[[1,3],[2,4]]\`.+svbgMajorDimension :: Lens' SpreadsheetsValuesBatchGet (Maybe Text)+svbgMajorDimension+ = lens _svbgMajorDimension+ (\ s a -> s{_svbgMajorDimension = a})++-- | JSONP+svbgCallback :: Lens' SpreadsheetsValuesBatchGet (Maybe Text)+svbgCallback+ = lens _svbgCallback (\ s a -> s{_svbgCallback = a})++instance GoogleRequest SpreadsheetsValuesBatchGet+ where+ type Rs SpreadsheetsValuesBatchGet =+ BatchGetValuesResponse+ type Scopes SpreadsheetsValuesBatchGet =+ '["https://www.googleapis.com/auth/drive",+ "https://www.googleapis.com/auth/drive.readonly",+ "https://www.googleapis.com/auth/spreadsheets",+ "https://www.googleapis.com/auth/spreadsheets.readonly"]+ requestClient SpreadsheetsValuesBatchGet'{..}+ = go _svbgSpreadsheetId _svbgXgafv+ _svbgValueRenderOption+ _svbgUploadProtocol+ (Just _svbgPp)+ _svbgAccessToken+ _svbgUploadType+ (_svbgRanges ^. _Default)+ _svbgBearerToken+ _svbgDateTimeRenderOption+ _svbgMajorDimension+ _svbgCallback+ (Just AltJSON)+ sheetsService+ where go+ = buildClient+ (Proxy :: Proxy SpreadsheetsValuesBatchGetResource)+ mempty
+ gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchUpdate.hs view
@@ -0,0 +1,196 @@+{-# 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.Sheets.Spreadsheets.Values.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)+--+-- Sets values in one or more ranges of a spreadsheet. The caller must+-- specify the spreadsheet ID, a valueInputOption, and one or more+-- ValueRanges.+--+-- /See:/ <https://developers.google.com/sheets/ Google Sheets API Reference> for @sheets.spreadsheets.values.batchUpdate@.+module Network.Google.Resource.Sheets.Spreadsheets.Values.BatchUpdate+ (+ -- * REST Resource+ SpreadsheetsValuesBatchUpdateResource++ -- * Creating a Request+ , spreadsheetsValuesBatchUpdate+ , SpreadsheetsValuesBatchUpdate++ -- * Request Lenses+ , svbuXgafv+ , svbuUploadProtocol+ , svbuPp+ , svbuAccessToken+ , svbuSpreadsheetId+ , svbuUploadType+ , svbuPayload+ , svbuBearerToken+ , svbuCallback+ ) where++import Network.Google.Prelude+import Network.Google.Sheets.Types++-- | A resource alias for @sheets.spreadsheets.values.batchUpdate@ method which the+-- 'SpreadsheetsValuesBatchUpdate' request conforms to.+type SpreadsheetsValuesBatchUpdateResource =+ "v4" :>+ "spreadsheets" :>+ Capture "spreadsheetId" Text :>+ "values:batchUpdate" :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ ReqBody '[JSON] BatchUpdateValuesRequest :>+ Post '[JSON] BatchUpdateValuesResponse++-- | Sets values in one or more ranges of a spreadsheet. The caller must+-- specify the spreadsheet ID, a valueInputOption, and one or more+-- ValueRanges.+--+-- /See:/ 'spreadsheetsValuesBatchUpdate' smart constructor.+data SpreadsheetsValuesBatchUpdate = SpreadsheetsValuesBatchUpdate'+ { _svbuXgafv :: !(Maybe Xgafv)+ , _svbuUploadProtocol :: !(Maybe Text)+ , _svbuPp :: !Bool+ , _svbuAccessToken :: !(Maybe Text)+ , _svbuSpreadsheetId :: !Text+ , _svbuUploadType :: !(Maybe Text)+ , _svbuPayload :: !BatchUpdateValuesRequest+ , _svbuBearerToken :: !(Maybe Text)+ , _svbuCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpreadsheetsValuesBatchUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'svbuXgafv'+--+-- * 'svbuUploadProtocol'+--+-- * 'svbuPp'+--+-- * 'svbuAccessToken'+--+-- * 'svbuSpreadsheetId'+--+-- * 'svbuUploadType'+--+-- * 'svbuPayload'+--+-- * 'svbuBearerToken'+--+-- * 'svbuCallback'+spreadsheetsValuesBatchUpdate+ :: Text -- ^ 'svbuSpreadsheetId'+ -> BatchUpdateValuesRequest -- ^ 'svbuPayload'+ -> SpreadsheetsValuesBatchUpdate+spreadsheetsValuesBatchUpdate pSvbuSpreadsheetId_ pSvbuPayload_ =+ SpreadsheetsValuesBatchUpdate'+ { _svbuXgafv = Nothing+ , _svbuUploadProtocol = Nothing+ , _svbuPp = True+ , _svbuAccessToken = Nothing+ , _svbuSpreadsheetId = pSvbuSpreadsheetId_+ , _svbuUploadType = Nothing+ , _svbuPayload = pSvbuPayload_+ , _svbuBearerToken = Nothing+ , _svbuCallback = Nothing+ }++-- | V1 error format.+svbuXgafv :: Lens' SpreadsheetsValuesBatchUpdate (Maybe Xgafv)+svbuXgafv+ = lens _svbuXgafv (\ s a -> s{_svbuXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+svbuUploadProtocol :: Lens' SpreadsheetsValuesBatchUpdate (Maybe Text)+svbuUploadProtocol+ = lens _svbuUploadProtocol+ (\ s a -> s{_svbuUploadProtocol = a})++-- | Pretty-print response.+svbuPp :: Lens' SpreadsheetsValuesBatchUpdate Bool+svbuPp = lens _svbuPp (\ s a -> s{_svbuPp = a})++-- | OAuth access token.+svbuAccessToken :: Lens' SpreadsheetsValuesBatchUpdate (Maybe Text)+svbuAccessToken+ = lens _svbuAccessToken+ (\ s a -> s{_svbuAccessToken = a})++-- | The ID of the spreadsheet to update.+svbuSpreadsheetId :: Lens' SpreadsheetsValuesBatchUpdate Text+svbuSpreadsheetId+ = lens _svbuSpreadsheetId+ (\ s a -> s{_svbuSpreadsheetId = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+svbuUploadType :: Lens' SpreadsheetsValuesBatchUpdate (Maybe Text)+svbuUploadType+ = lens _svbuUploadType+ (\ s a -> s{_svbuUploadType = a})++-- | Multipart request metadata.+svbuPayload :: Lens' SpreadsheetsValuesBatchUpdate BatchUpdateValuesRequest+svbuPayload+ = lens _svbuPayload (\ s a -> s{_svbuPayload = a})++-- | OAuth bearer token.+svbuBearerToken :: Lens' SpreadsheetsValuesBatchUpdate (Maybe Text)+svbuBearerToken+ = lens _svbuBearerToken+ (\ s a -> s{_svbuBearerToken = a})++-- | JSONP+svbuCallback :: Lens' SpreadsheetsValuesBatchUpdate (Maybe Text)+svbuCallback+ = lens _svbuCallback (\ s a -> s{_svbuCallback = a})++instance GoogleRequest SpreadsheetsValuesBatchUpdate+ where+ type Rs SpreadsheetsValuesBatchUpdate =+ BatchUpdateValuesResponse+ type Scopes SpreadsheetsValuesBatchUpdate =+ '["https://www.googleapis.com/auth/drive",+ "https://www.googleapis.com/auth/spreadsheets"]+ requestClient SpreadsheetsValuesBatchUpdate'{..}+ = go _svbuSpreadsheetId _svbuXgafv+ _svbuUploadProtocol+ (Just _svbuPp)+ _svbuAccessToken+ _svbuUploadType+ _svbuBearerToken+ _svbuCallback+ (Just AltJSON)+ _svbuPayload+ sheetsService+ where go+ = buildClient+ (Proxy ::+ Proxy SpreadsheetsValuesBatchUpdateResource)+ mempty
+ gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Get.hs view
@@ -0,0 +1,234 @@+{-# 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.Sheets.Spreadsheets.Values.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)+--+-- Returns a range of values from a spreadsheet. The caller must specify+-- the spreadsheet ID and a range.+--+-- /See:/ <https://developers.google.com/sheets/ Google Sheets API Reference> for @sheets.spreadsheets.values.get@.+module Network.Google.Resource.Sheets.Spreadsheets.Values.Get+ (+ -- * REST Resource+ SpreadsheetsValuesGetResource++ -- * Creating a Request+ , spreadsheetsValuesGet+ , SpreadsheetsValuesGet++ -- * Request Lenses+ , svgXgafv+ , svgValueRenderOption+ , svgUploadProtocol+ , svgPp+ , svgAccessToken+ , svgSpreadsheetId+ , svgUploadType+ , svgBearerToken+ , svgRange+ , svgDateTimeRenderOption+ , svgMajorDimension+ , svgCallback+ ) where++import Network.Google.Prelude+import Network.Google.Sheets.Types++-- | A resource alias for @sheets.spreadsheets.values.get@ method which the+-- 'SpreadsheetsValuesGet' request conforms to.+type SpreadsheetsValuesGetResource =+ "v4" :>+ "spreadsheets" :>+ Capture "spreadsheetId" Text :>+ "values" :>+ Capture "range" Text :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "valueRenderOption" Text :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "dateTimeRenderOption" Text :>+ QueryParam "majorDimension" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ Get '[JSON] ValueRange++-- | Returns a range of values from a spreadsheet. The caller must specify+-- the spreadsheet ID and a range.+--+-- /See:/ 'spreadsheetsValuesGet' smart constructor.+data SpreadsheetsValuesGet = SpreadsheetsValuesGet'+ { _svgXgafv :: !(Maybe Xgafv)+ , _svgValueRenderOption :: !(Maybe Text)+ , _svgUploadProtocol :: !(Maybe Text)+ , _svgPp :: !Bool+ , _svgAccessToken :: !(Maybe Text)+ , _svgSpreadsheetId :: !Text+ , _svgUploadType :: !(Maybe Text)+ , _svgBearerToken :: !(Maybe Text)+ , _svgRange :: !Text+ , _svgDateTimeRenderOption :: !(Maybe Text)+ , _svgMajorDimension :: !(Maybe Text)+ , _svgCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpreadsheetsValuesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'svgXgafv'+--+-- * 'svgValueRenderOption'+--+-- * 'svgUploadProtocol'+--+-- * 'svgPp'+--+-- * 'svgAccessToken'+--+-- * 'svgSpreadsheetId'+--+-- * 'svgUploadType'+--+-- * 'svgBearerToken'+--+-- * 'svgRange'+--+-- * 'svgDateTimeRenderOption'+--+-- * 'svgMajorDimension'+--+-- * 'svgCallback'+spreadsheetsValuesGet+ :: Text -- ^ 'svgSpreadsheetId'+ -> Text -- ^ 'svgRange'+ -> SpreadsheetsValuesGet+spreadsheetsValuesGet pSvgSpreadsheetId_ pSvgRange_ =+ SpreadsheetsValuesGet'+ { _svgXgafv = Nothing+ , _svgValueRenderOption = Nothing+ , _svgUploadProtocol = Nothing+ , _svgPp = True+ , _svgAccessToken = Nothing+ , _svgSpreadsheetId = pSvgSpreadsheetId_+ , _svgUploadType = Nothing+ , _svgBearerToken = Nothing+ , _svgRange = pSvgRange_+ , _svgDateTimeRenderOption = Nothing+ , _svgMajorDimension = Nothing+ , _svgCallback = Nothing+ }++-- | V1 error format.+svgXgafv :: Lens' SpreadsheetsValuesGet (Maybe Xgafv)+svgXgafv = lens _svgXgafv (\ s a -> s{_svgXgafv = a})++-- | How values should be represented in the output.+svgValueRenderOption :: Lens' SpreadsheetsValuesGet (Maybe Text)+svgValueRenderOption+ = lens _svgValueRenderOption+ (\ s a -> s{_svgValueRenderOption = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+svgUploadProtocol :: Lens' SpreadsheetsValuesGet (Maybe Text)+svgUploadProtocol+ = lens _svgUploadProtocol+ (\ s a -> s{_svgUploadProtocol = a})++-- | Pretty-print response.+svgPp :: Lens' SpreadsheetsValuesGet Bool+svgPp = lens _svgPp (\ s a -> s{_svgPp = a})++-- | OAuth access token.+svgAccessToken :: Lens' SpreadsheetsValuesGet (Maybe Text)+svgAccessToken+ = lens _svgAccessToken+ (\ s a -> s{_svgAccessToken = a})++-- | The ID of the spreadsheet to retrieve data from.+svgSpreadsheetId :: Lens' SpreadsheetsValuesGet Text+svgSpreadsheetId+ = lens _svgSpreadsheetId+ (\ s a -> s{_svgSpreadsheetId = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+svgUploadType :: Lens' SpreadsheetsValuesGet (Maybe Text)+svgUploadType+ = lens _svgUploadType+ (\ s a -> s{_svgUploadType = a})++-- | OAuth bearer token.+svgBearerToken :: Lens' SpreadsheetsValuesGet (Maybe Text)+svgBearerToken+ = lens _svgBearerToken+ (\ s a -> s{_svgBearerToken = a})++-- | The A1 notation of the values to retrieve.+svgRange :: Lens' SpreadsheetsValuesGet Text+svgRange = lens _svgRange (\ s a -> s{_svgRange = a})++-- | How dates, times, and durations should be represented in the output.+-- This is ignored if value_render_option is FORMATTED_VALUE.+svgDateTimeRenderOption :: Lens' SpreadsheetsValuesGet (Maybe Text)+svgDateTimeRenderOption+ = lens _svgDateTimeRenderOption+ (\ s a -> s{_svgDateTimeRenderOption = a})++-- | The major dimension that results should use. For example, if the+-- spreadsheet data is: \`A1=1,B1=2,A2=3,B2=4\`, then requesting+-- \`range=A1:B2,majorDimension=ROWS\` will return \`[[1,2],[3,4]]\`,+-- whereas requesting \`range=A1:B2,majorDimension=COLUMNS\` will return+-- \`[[1,3],[2,4]]\`.+svgMajorDimension :: Lens' SpreadsheetsValuesGet (Maybe Text)+svgMajorDimension+ = lens _svgMajorDimension+ (\ s a -> s{_svgMajorDimension = a})++-- | JSONP+svgCallback :: Lens' SpreadsheetsValuesGet (Maybe Text)+svgCallback+ = lens _svgCallback (\ s a -> s{_svgCallback = a})++instance GoogleRequest SpreadsheetsValuesGet where+ type Rs SpreadsheetsValuesGet = ValueRange+ type Scopes SpreadsheetsValuesGet =+ '["https://www.googleapis.com/auth/drive",+ "https://www.googleapis.com/auth/drive.readonly",+ "https://www.googleapis.com/auth/spreadsheets",+ "https://www.googleapis.com/auth/spreadsheets.readonly"]+ requestClient SpreadsheetsValuesGet'{..}+ = go _svgSpreadsheetId _svgRange _svgXgafv+ _svgValueRenderOption+ _svgUploadProtocol+ (Just _svgPp)+ _svgAccessToken+ _svgUploadType+ _svgBearerToken+ _svgDateTimeRenderOption+ _svgMajorDimension+ _svgCallback+ (Just AltJSON)+ sheetsService+ where go+ = buildClient+ (Proxy :: Proxy SpreadsheetsValuesGetResource)+ mempty
+ gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Update.hs view
@@ -0,0 +1,215 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.Sheets.Spreadsheets.Values.Update+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets values in a range of a spreadsheet. The caller must specify the+-- spreadsheet ID, range, and a valueInputOption.+--+-- /See:/ <https://developers.google.com/sheets/ Google Sheets API Reference> for @sheets.spreadsheets.values.update@.+module Network.Google.Resource.Sheets.Spreadsheets.Values.Update+ (+ -- * REST Resource+ SpreadsheetsValuesUpdateResource++ -- * Creating a Request+ , spreadsheetsValuesUpdate+ , SpreadsheetsValuesUpdate++ -- * Request Lenses+ , svuXgafv+ , svuUploadProtocol+ , svuPp+ , svuAccessToken+ , svuSpreadsheetId+ , svuUploadType+ , svuValueInputOption+ , svuPayload+ , svuBearerToken+ , svuRange+ , svuCallback+ ) where++import Network.Google.Prelude+import Network.Google.Sheets.Types++-- | A resource alias for @sheets.spreadsheets.values.update@ method which the+-- 'SpreadsheetsValuesUpdate' request conforms to.+type SpreadsheetsValuesUpdateResource =+ "v4" :>+ "spreadsheets" :>+ Capture "spreadsheetId" Text :>+ "values" :>+ Capture "range" Text :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "valueInputOption" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ ReqBody '[JSON] ValueRange :>+ Put '[JSON] UpdateValuesResponse++-- | Sets values in a range of a spreadsheet. The caller must specify the+-- spreadsheet ID, range, and a valueInputOption.+--+-- /See:/ 'spreadsheetsValuesUpdate' smart constructor.+data SpreadsheetsValuesUpdate = SpreadsheetsValuesUpdate'+ { _svuXgafv :: !(Maybe Xgafv)+ , _svuUploadProtocol :: !(Maybe Text)+ , _svuPp :: !Bool+ , _svuAccessToken :: !(Maybe Text)+ , _svuSpreadsheetId :: !Text+ , _svuUploadType :: !(Maybe Text)+ , _svuValueInputOption :: !(Maybe Text)+ , _svuPayload :: !ValueRange+ , _svuBearerToken :: !(Maybe Text)+ , _svuRange :: !Text+ , _svuCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpreadsheetsValuesUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'svuXgafv'+--+-- * 'svuUploadProtocol'+--+-- * 'svuPp'+--+-- * 'svuAccessToken'+--+-- * 'svuSpreadsheetId'+--+-- * 'svuUploadType'+--+-- * 'svuValueInputOption'+--+-- * 'svuPayload'+--+-- * 'svuBearerToken'+--+-- * 'svuRange'+--+-- * 'svuCallback'+spreadsheetsValuesUpdate+ :: Text -- ^ 'svuSpreadsheetId'+ -> ValueRange -- ^ 'svuPayload'+ -> Text -- ^ 'svuRange'+ -> SpreadsheetsValuesUpdate+spreadsheetsValuesUpdate pSvuSpreadsheetId_ pSvuPayload_ pSvuRange_ =+ SpreadsheetsValuesUpdate'+ { _svuXgafv = Nothing+ , _svuUploadProtocol = Nothing+ , _svuPp = True+ , _svuAccessToken = Nothing+ , _svuSpreadsheetId = pSvuSpreadsheetId_+ , _svuUploadType = Nothing+ , _svuValueInputOption = Nothing+ , _svuPayload = pSvuPayload_+ , _svuBearerToken = Nothing+ , _svuRange = pSvuRange_+ , _svuCallback = Nothing+ }++-- | V1 error format.+svuXgafv :: Lens' SpreadsheetsValuesUpdate (Maybe Xgafv)+svuXgafv = lens _svuXgafv (\ s a -> s{_svuXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+svuUploadProtocol :: Lens' SpreadsheetsValuesUpdate (Maybe Text)+svuUploadProtocol+ = lens _svuUploadProtocol+ (\ s a -> s{_svuUploadProtocol = a})++-- | Pretty-print response.+svuPp :: Lens' SpreadsheetsValuesUpdate Bool+svuPp = lens _svuPp (\ s a -> s{_svuPp = a})++-- | OAuth access token.+svuAccessToken :: Lens' SpreadsheetsValuesUpdate (Maybe Text)+svuAccessToken+ = lens _svuAccessToken+ (\ s a -> s{_svuAccessToken = a})++-- | The ID of the spreadsheet to update.+svuSpreadsheetId :: Lens' SpreadsheetsValuesUpdate Text+svuSpreadsheetId+ = lens _svuSpreadsheetId+ (\ s a -> s{_svuSpreadsheetId = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+svuUploadType :: Lens' SpreadsheetsValuesUpdate (Maybe Text)+svuUploadType+ = lens _svuUploadType+ (\ s a -> s{_svuUploadType = a})++-- | How the input data should be interpreted.+svuValueInputOption :: Lens' SpreadsheetsValuesUpdate (Maybe Text)+svuValueInputOption+ = lens _svuValueInputOption+ (\ s a -> s{_svuValueInputOption = a})++-- | Multipart request metadata.+svuPayload :: Lens' SpreadsheetsValuesUpdate ValueRange+svuPayload+ = lens _svuPayload (\ s a -> s{_svuPayload = a})++-- | OAuth bearer token.+svuBearerToken :: Lens' SpreadsheetsValuesUpdate (Maybe Text)+svuBearerToken+ = lens _svuBearerToken+ (\ s a -> s{_svuBearerToken = a})++-- | The A1 notation of the values to update.+svuRange :: Lens' SpreadsheetsValuesUpdate Text+svuRange = lens _svuRange (\ s a -> s{_svuRange = a})++-- | JSONP+svuCallback :: Lens' SpreadsheetsValuesUpdate (Maybe Text)+svuCallback+ = lens _svuCallback (\ s a -> s{_svuCallback = a})++instance GoogleRequest SpreadsheetsValuesUpdate where+ type Rs SpreadsheetsValuesUpdate =+ UpdateValuesResponse+ type Scopes SpreadsheetsValuesUpdate =+ '["https://www.googleapis.com/auth/drive",+ "https://www.googleapis.com/auth/spreadsheets"]+ requestClient SpreadsheetsValuesUpdate'{..}+ = go _svuSpreadsheetId _svuRange _svuXgafv+ _svuUploadProtocol+ (Just _svuPp)+ _svuAccessToken+ _svuUploadType+ _svuValueInputOption+ _svuBearerToken+ _svuCallback+ (Just AltJSON)+ _svuPayload+ sheetsService+ where go+ = buildClient+ (Proxy :: Proxy SpreadsheetsValuesUpdateResource)+ mempty
+ gen/Network/Google/Sheets.hs view
@@ -0,0 +1,1091 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module : Network.Google.Sheets+-- 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 Sheets.+--+-- /See:/ <https://developers.google.com/sheets/ Google Sheets API Reference>+module Network.Google.Sheets+ (+ -- * Service Configuration+ sheetsService++ -- * OAuth Scopes+ , spreadsheetsReadOnlyScope+ , driveReadOnlyScope+ , driveScope+ , spreadsheetsScope++ -- * API Declaration+ , SheetsAPI++ -- * Resources++ -- ** sheets.spreadsheets.batchUpdate+ , module Network.Google.Resource.Sheets.Spreadsheets.BatchUpdate++ -- ** sheets.spreadsheets.create+ , module Network.Google.Resource.Sheets.Spreadsheets.Create++ -- ** sheets.spreadsheets.get+ , module Network.Google.Resource.Sheets.Spreadsheets.Get++ -- ** sheets.spreadsheets.sheets.copyTo+ , module Network.Google.Resource.Sheets.Spreadsheets.Sheets.CopyTo++ -- ** sheets.spreadsheets.values.batchGet+ , module Network.Google.Resource.Sheets.Spreadsheets.Values.BatchGet++ -- ** sheets.spreadsheets.values.batchUpdate+ , module Network.Google.Resource.Sheets.Spreadsheets.Values.BatchUpdate++ -- ** sheets.spreadsheets.values.get+ , module Network.Google.Resource.Sheets.Spreadsheets.Values.Get++ -- ** sheets.spreadsheets.values.update+ , module Network.Google.Resource.Sheets.Spreadsheets.Values.Update++ -- * Types++ -- ** PivotGroupSortValueBucket+ , PivotGroupSortValueBucket+ , pivotGroupSortValueBucket+ , pgsvbBuckets+ , pgsvbValuesIndex++ -- ** ValueRange+ , ValueRange+ , valueRange+ , vrValues+ , vrRange+ , vrMajorDimension++ -- ** SortRangeRequest+ , SortRangeRequest+ , sortRangeRequest+ , srrSortSpecs+ , srrRange++ -- ** CopyPasteRequestPasteType+ , CopyPasteRequestPasteType (..)++ -- ** DeleteNamedRangeRequest+ , DeleteNamedRangeRequest+ , deleteNamedRangeRequest+ , dnrrNamedRangeId++ -- ** UpdateNamedRangeRequest+ , UpdateNamedRangeRequest+ , updateNamedRangeRequest+ , unrrNamedRange+ , unrrFields++ -- ** BasicChartAxisPosition+ , BasicChartAxisPosition (..)++ -- ** ChartData+ , ChartData+ , chartData+ , cdSourceRange++ -- ** BasicChartSeriesTargetAxis+ , BasicChartSeriesTargetAxis (..)++ -- ** SpreadsheetProperties+ , SpreadsheetProperties+ , spreadsheetProperties+ , spDefaultFormat+ , spLocale+ , spAutoRecalc+ , spTitle+ , spTimeZone++ -- ** BOrders+ , BOrders+ , bOrders+ , boBottom+ , boLeft+ , boRight+ , boTop++ -- ** TextFormatRun+ , TextFormatRun+ , textFormatRun+ , tfrFormat+ , tfrStartIndex++ -- ** AddSheetRequest+ , AddSheetRequest+ , addSheetRequest+ , asrProperties++ -- ** SortSpec+ , SortSpec+ , sortSpec+ , ssSortOrder+ , ssDimensionIndex++ -- ** CopyPasteRequest+ , CopyPasteRequest+ , copyPasteRequest+ , cprDestination+ , cprSource+ , cprPasteOrientation+ , cprPasteType++ -- ** GridRange+ , GridRange+ , gridRange+ , grEndColumnIndex+ , grStartColumnIndex+ , grEndRowIndex+ , grStartRowIndex+ , grSheetId++ -- ** AppendDimensionRequestDimension+ , AppendDimensionRequestDimension (..)++ -- ** AddFilterViewResponse+ , AddFilterViewResponse+ , addFilterViewResponse+ , afvrFilter++ -- ** DimensionRangeDimension+ , DimensionRangeDimension (..)++ -- ** BooleanCondition+ , BooleanCondition+ , booleanCondition+ , bcValues+ , bcType++ -- ** AutoResizeDimensionsRequest+ , AutoResizeDimensionsRequest+ , autoResizeDimensionsRequest+ , ardrDimensions++ -- ** Sheet+ , Sheet+ , sheet+ , sData+ , sMerges+ , sProtectedRanges+ , sCharts+ , sBasicFilter+ , sConditionalFormats+ , sFilterViews+ , sProperties++ -- ** GridCoordinate+ , GridCoordinate+ , gridCoordinate+ , gcColumnIndex+ , gcRowIndex+ , gcSheetId++ -- ** ClearBasicFilterRequest+ , ClearBasicFilterRequest+ , clearBasicFilterRequest+ , cbfrSheetId++ -- ** UpdateEmbeddedObjectPositionRequest+ , UpdateEmbeddedObjectPositionRequest+ , updateEmbeddedObjectPositionRequest+ , ueoprNewPosition+ , ueoprObjectId+ , ueoprFields++ -- ** SourceAndDestinationDimension+ , SourceAndDestinationDimension (..)++ -- ** BooleanRule+ , BooleanRule+ , booleanRule+ , brFormat+ , brCondition++ -- ** CellFormatWrapStrategy+ , CellFormatWrapStrategy (..)++ -- ** SourceAndDestination+ , SourceAndDestination+ , sourceAndDestination+ , sadDimension+ , sadSource+ , sadFillLength++ -- ** PasteDataRequest+ , PasteDataRequest+ , pasteDataRequest+ , pdrData+ , pdrCoordinate+ , pdrHTML+ , pdrType+ , pdrDelimiter++ -- ** BatchUpdateValuesRequestValueInputOption+ , BatchUpdateValuesRequestValueInputOption (..)++ -- ** AppendCellsRequest+ , AppendCellsRequest+ , appendCellsRequest+ , acrRows+ , acrSheetId+ , acrFields++ -- ** FindReplaceResponse+ , FindReplaceResponse+ , findReplaceResponse+ , frrValuesChanged+ , frrFormulasChanged+ , frrRowsChanged+ , frrSheetsChanged+ , frrOccurrencesChanged++ -- ** PieChartSpec+ , PieChartSpec+ , pieChartSpec+ , pcsPieHole+ , pcsLegendPosition+ , pcsDomain+ , pcsSeries+ , pcsThreeDimensional++ -- ** DataValidationRule+ , DataValidationRule+ , dataValidationRule+ , dvrShowCustomUi+ , dvrInputMessage+ , dvrStrict+ , dvrCondition++ -- ** FilterView+ , FilterView+ , filterView+ , fvSortSpecs+ , fvNamedRangeId+ , fvRange+ , fvFilterViewId+ , fvTitle+ , fvCriteria++ -- ** Color+ , Color+ , color+ , cRed+ , cAlpha+ , cGreen+ , cBlue++ -- ** DeleteFilterViewRequest+ , DeleteFilterViewRequest+ , deleteFilterViewRequest+ , dfvrFilterId++ -- ** UpdateFilterViewRequest+ , UpdateFilterViewRequest+ , updateFilterViewRequest+ , ufvrFilter+ , ufvrFields++ -- ** BasicChartSeries+ , BasicChartSeries+ , basicChartSeries+ , bcsTargetAxis+ , bcsSeries+ , bcsType++ -- ** AddProtectedRangeRequest+ , AddProtectedRangeRequest+ , addProtectedRangeRequest+ , aprrProtectedRange++ -- ** PieChartSpecLegendPosition+ , PieChartSpecLegendPosition (..)++ -- ** RepeatCellRequest+ , RepeatCellRequest+ , repeatCellRequest+ , rcrCell+ , rcrRange+ , rcrFields++ -- ** ConditionValue+ , ConditionValue+ , conditionValue+ , cvRelativeDate+ , cvUserEnteredValue++ -- ** DeleteDimensionRequest+ , DeleteDimensionRequest+ , deleteDimensionRequest+ , ddrRange++ -- ** FindReplaceRequest+ , FindReplaceRequest+ , findReplaceRequest+ , frrMatchCase+ , frrAllSheets+ , frrIncludeFormulas+ , frrMatchEntireCell+ , frrRange+ , frrSheetId+ , frrFind+ , frrSearchByRegex+ , frrReplacement++ -- ** MoveDimensionRequest+ , MoveDimensionRequest+ , moveDimensionRequest+ , mdrDestinationIndex+ , mdrSource++ -- ** CellFormatVerticalAlignment+ , CellFormatVerticalAlignment (..)++ -- ** NumberFormatType+ , NumberFormatType (..)++ -- ** GradientRule+ , GradientRule+ , gradientRule+ , grMidpoint+ , grMaxpoint+ , grMinpoint++ -- ** CutPasteRequest+ , CutPasteRequest+ , cutPasteRequest+ , cDestination+ , cSource+ , cPasteType++ -- ** UpdateEmbeddedObjectPositionResponse+ , UpdateEmbeddedObjectPositionResponse+ , updateEmbeddedObjectPositionResponse+ , ueoprPosition++ -- ** ConditionValueRelativeDate+ , ConditionValueRelativeDate (..)++ -- ** Response+ , Response+ , response+ , rAddFilterView+ , rDuplicateFilterView+ , rUpdateEmbeddedObjectPosition+ , rAddSheet+ , rFindReplace+ , rAddProtectedRange+ , rDeleteConditionalFormatRule+ , rUpdateConditionalFormatRule+ , rAddNamedRange+ , rAddChart+ , rDuplicateSheet++ -- ** FilterCriteria+ , FilterCriteria+ , filterCriteria+ , fcHiddenValues+ , fcCondition++ -- ** ErrorValue+ , ErrorValue+ , errorValue+ , evType+ , evMessage++ -- ** UpdateConditionalFormatRuleRequest+ , UpdateConditionalFormatRuleRequest+ , updateConditionalFormatRuleRequest+ , ucfrrRule+ , ucfrrNewIndex+ , ucfrrSheetId+ , ucfrrIndex++ -- ** DeleteConditionalFormatRuleRequest+ , DeleteConditionalFormatRuleRequest+ , deleteConditionalFormatRuleRequest+ , dcfrrSheetId+ , dcfrrIndex++ -- ** SortSpecSortOrder+ , SortSpecSortOrder (..)++ -- ** OverlayPosition+ , OverlayPosition+ , overlayPosition+ , opHeightPixels+ , opOffSetYPixels+ , opAnchorCell+ , opWidthPixels+ , opOffSetXPixels++ -- ** DeleteEmbeddedObjectRequest+ , DeleteEmbeddedObjectRequest+ , deleteEmbeddedObjectRequest+ , deorObjectId++ -- ** SheetProperties+ , SheetProperties+ , sheetProperties+ , sTabColor+ , sGridProperties+ , sSheetType+ , sHidden+ , sSheetId+ , sTitle+ , sRightToLeft+ , sIndex++ -- ** FilterViewCriteria+ , FilterViewCriteria+ , filterViewCriteria+ , fvcAddtional++ -- ** BatchUpdateValuesResponse+ , BatchUpdateValuesResponse+ , batchUpdateValuesResponse+ , buvrTotalUpdatedColumns+ , buvrResponses+ , buvrSpreadsheetId+ , buvrTotalUpdatedSheets+ , buvrTotalUpdatedCells+ , buvrTotalUpdatedRows++ -- ** UpdateSheetPropertiesRequest+ , UpdateSheetPropertiesRequest+ , updateSheetPropertiesRequest+ , usprFields+ , usprProperties++ -- ** Spreadsheet+ , Spreadsheet+ , spreadsheet+ , sprSheets+ , sprNamedRanges+ , sprSpreadsheetId+ , sprProperties++ -- ** InsertDimensionRequest+ , InsertDimensionRequest+ , insertDimensionRequest+ , idrRange+ , idrInheritFromBefore++ -- ** PivotValueSummarizeFunction+ , PivotValueSummarizeFunction (..)++ -- ** InterpolationPoint+ , InterpolationPoint+ , interpolationPoint+ , ipColor+ , ipValue+ , ipType++ -- ** CellData+ , CellData+ , cellData+ , cdTextFormatRuns+ , cdNote+ , cdUserEnteredValue+ , cdUserEnteredFormat+ , cdEffectiveFormat+ , cdPivotTable+ , cdFormattedValue+ , cdDataValidation+ , cdHyperlink+ , cdEffectiveValue++ -- ** ChartSourceRange+ , ChartSourceRange+ , chartSourceRange+ , csrSources++ -- ** AddNamedRangeResponse+ , AddNamedRangeResponse+ , addNamedRangeResponse+ , anrrNamedRange++ -- ** AddChartResponse+ , AddChartResponse+ , addChartResponse+ , acrChart++ -- ** UpdateChartSpecRequest+ , UpdateChartSpecRequest+ , updateChartSpecRequest+ , ucsrSpec+ , ucsrChartId++ -- ** SetBasicFilterRequest+ , SetBasicFilterRequest+ , setBasicFilterRequest+ , sbfrFilter++ -- ** GridProperties+ , GridProperties+ , gridProperties+ , gpFrozenColumnCount+ , gpColumnCount+ , gpHideGridlines+ , gpFrozenRowCount+ , gpRowCount++ -- ** CellFormatHyperlinkDisplayType+ , CellFormatHyperlinkDisplayType (..)++ -- ** BasicFilterCriteria+ , BasicFilterCriteria+ , basicFilterCriteria+ , bfcAddtional++ -- ** UpdateDimensionPropertiesRequest+ , UpdateDimensionPropertiesRequest+ , updateDimensionPropertiesRequest+ , udprRange+ , udprFields+ , udprProperties++ -- ** PivotTableCriteria+ , PivotTableCriteria+ , pivotTableCriteria+ , ptcAddtional++ -- ** AutoFillRequest+ , AutoFillRequest+ , autoFillRequest+ , afrSourceAndDestination+ , afrUseAlternateSeries+ , afrRange++ -- ** DuplicateSheetRequest+ , DuplicateSheetRequest+ , duplicateSheetRequest+ , dsrNewSheetName+ , dsrInsertSheetIndex+ , dsrSourceSheetId+ , dsrNewSheetId++ -- ** DuplicateFilterViewResponse+ , DuplicateFilterViewResponse+ , duplicateFilterViewResponse+ , dfvrFilter++ -- ** SheetPropertiesSheetType+ , SheetPropertiesSheetType (..)++ -- ** BatchUpdateValuesRequest+ , BatchUpdateValuesRequest+ , batchUpdateValuesRequest+ , buvrData+ , buvrValueInputOption++ -- ** AddChartRequest+ , AddChartRequest+ , addChartRequest+ , aChart++ -- ** NamedRange+ , NamedRange+ , namedRange+ , nrNamedRangeId+ , nrName+ , nrRange++ -- ** MergeCellsRequest+ , MergeCellsRequest+ , mergeCellsRequest+ , mcrMergeType+ , mcrRange++ -- ** MergeCellsRequestMergeType+ , MergeCellsRequestMergeType (..)++ -- ** CellFormatHorizontalAlignment+ , CellFormatHorizontalAlignment (..)++ -- ** BOrder+ , BOrder+ , bOrder+ , boStyle+ , boColor+ , boWidth++ -- ** ExtendedValue+ , ExtendedValue+ , extendedValue+ , evBoolValue+ , evNumberValue+ , evErrorValue+ , evStringValue+ , evFormulaValue++ -- ** AddNamedRangeRequest+ , AddNamedRangeRequest+ , addNamedRangeRequest+ , aNamedRange++ -- ** PivotFilterCriteria+ , PivotFilterCriteria+ , pivotFilterCriteria+ , pfcVisibleValues++ -- ** DimensionRange+ , DimensionRange+ , dimensionRange+ , drDimension+ , drEndIndex+ , drSheetId+ , drStartIndex++ -- ** UpdateSpreadsheetPropertiesRequest+ , UpdateSpreadsheetPropertiesRequest+ , updateSpreadsheetPropertiesRequest+ , uFields+ , uProperties++ -- ** AddProtectedRangeResponse+ , AddProtectedRangeResponse+ , addProtectedRangeResponse+ , aProtectedRange++ -- ** AppendDimensionRequest+ , AppendDimensionRequest+ , appendDimensionRequest+ , adrLength+ , adrDimension+ , adrSheetId++ -- ** PivotValue+ , PivotValue+ , pivotValue+ , pvSourceColumnOffSet+ , pvFormula+ , pvName+ , pvSummarizeFunction++ -- ** UnmergeCellsRequest+ , UnmergeCellsRequest+ , unmergeCellsRequest+ , ucrRange++ -- ** DeleteSheetRequest+ , DeleteSheetRequest+ , deleteSheetRequest+ , dsrSheetId++ -- ** BooleanConditionType+ , BooleanConditionType (..)++ -- ** UpdateBOrdersRequest+ , UpdateBOrdersRequest+ , updateBOrdersRequest+ , uborBottom+ , uborInnerHorizontal+ , uborLeft+ , uborInnerVertical+ , uborRange+ , uborRight+ , uborTop++ -- ** ValueRangeMajorDimension+ , ValueRangeMajorDimension (..)++ -- ** PivotGroupSortOrder+ , PivotGroupSortOrder (..)++ -- ** BasicChartSpecChartType+ , BasicChartSpecChartType (..)++ -- ** EmbeddedChart+ , EmbeddedChart+ , embeddedChart+ , ecSpec+ , ecPosition+ , ecChartId++ -- ** RowData+ , RowData+ , rowData+ , rdValues++ -- ** Editors+ , Editors+ , editors+ , eGroups+ , eUsers+ , eDomainUsersCanEdit++ -- ** Xgafv+ , Xgafv (..)++ -- ** PivotTable+ , PivotTable+ , pivotTable+ , ptValues+ , ptValueLayout+ , ptRows+ , ptSource+ , ptColumns+ , ptCriteria++ -- ** EmbeddedObjectPosition+ , EmbeddedObjectPosition+ , embeddedObjectPosition+ , eopOverlayPosition+ , eopSheetId+ , eopNewSheet++ -- ** BasicFilter+ , BasicFilter+ , basicFilter+ , bfSortSpecs+ , bfRange+ , bfCriteria++ -- ** TextToColumnsRequest+ , TextToColumnsRequest+ , textToColumnsRequest+ , ttcrDelimiterType+ , ttcrSource+ , ttcrDelimiter++ -- ** SpreadsheetPropertiesAutoRecalc+ , SpreadsheetPropertiesAutoRecalc (..)++ -- ** CopyPasteRequestPasteOrientation+ , CopyPasteRequestPasteOrientation (..)++ -- ** BatchUpdateSpreadsheetRequest+ , BatchUpdateSpreadsheetRequest+ , batchUpdateSpreadsheetRequest+ , busrRequests++ -- ** PasteDataRequestType+ , PasteDataRequestType (..)++ -- ** UpdateValuesResponse+ , UpdateValuesResponse+ , updateValuesResponse+ , uvrUpdatedCells+ , uvrSpreadsheetId+ , uvrUpdatedRows+ , uvrUpdatedRange+ , uvrUpdatedColumns++ -- ** CopySheetToAnotherSpreadsheetRequest+ , CopySheetToAnotherSpreadsheetRequest+ , copySheetToAnotherSpreadsheetRequest+ , cstasrDestinationSpreadsheetId++ -- ** AddFilterViewRequest+ , AddFilterViewRequest+ , addFilterViewRequest+ , aFilter++ -- ** PivotGroupValueMetadata+ , PivotGroupValueMetadata+ , pivotGroupValueMetadata+ , pgvmValue+ , pgvmCollapsed++ -- ** CellFormatTextDirection+ , CellFormatTextDirection (..)++ -- ** BasicChartSeriesType+ , BasicChartSeriesType (..)++ -- ** UpdateCellsRequest+ , UpdateCellsRequest+ , updateCellsRequest+ , updStart+ , updRows+ , updRange+ , updFields++ -- ** CellFormat+ , CellFormat+ , cellFormat+ , cfBOrders+ , cfVerticalAlignment+ , cfBackgRoundColor+ , cfHyperlinkDisplayType+ , cfWrapStrategy+ , cfNumberFormat+ , cfTextDirection+ , cfTextFormat+ , cfHorizontalAlignment+ , cfPadding++ -- ** DeleteProtectedRangeRequest+ , DeleteProtectedRangeRequest+ , deleteProtectedRangeRequest+ , dprrProtectedRangeId++ -- ** UpdateProtectedRangeRequest+ , UpdateProtectedRangeRequest+ , updateProtectedRangeRequest+ , uprrProtectedRange+ , uprrFields++ -- ** AddSheetResponse+ , AddSheetResponse+ , addSheetResponse+ , aProperties++ -- ** ProtectedRange+ , ProtectedRange+ , protectedRange+ , prProtectedRangeId+ , prWarningOnly+ , prNamedRangeId+ , prRange+ , prEditors+ , prUnprotectedRanges+ , prRequestingUserCanEdit+ , prDescription++ -- ** BasicChartAxis+ , BasicChartAxis+ , basicChartAxis+ , bcaFormat+ , bcaTitle+ , bcaPosition++ -- ** GridData+ , GridData+ , gridData+ , gdRowMetadata+ , gdStartRow+ , gdRowData+ , gdColumnMetadata+ , gdStartColumn++ -- ** NumberFormat+ , NumberFormat+ , numberFormat+ , nfPattern+ , nfType++ -- ** BatchUpdateSpreadsheetResponse+ , BatchUpdateSpreadsheetResponse+ , batchUpdateSpreadsheetResponse+ , busrSpreadsheetId+ , busrReplies++ -- ** SetDataValidationRequest+ , SetDataValidationRequest+ , setDataValidationRequest+ , sdvrRule+ , sdvrRange++ -- ** ChartSpecHiddenDimensionStrategy+ , ChartSpecHiddenDimensionStrategy (..)++ -- ** DuplicateFilterViewRequest+ , DuplicateFilterViewRequest+ , duplicateFilterViewRequest+ , dFilterId++ -- ** BOrderStyle+ , BOrderStyle (..)++ -- ** PivotGroup+ , PivotGroup+ , pivotGroup+ , pgValueMetadata+ , pgSourceColumnOffSet+ , pgSortOrder+ , pgShowTotals+ , pgValueBucket++ -- ** CutPasteRequestPasteType+ , CutPasteRequestPasteType (..)++ -- ** BasicChartSpecLegendPosition+ , BasicChartSpecLegendPosition (..)++ -- ** ErrorValueType+ , ErrorValueType (..)++ -- ** ConditionalFormatRule+ , ConditionalFormatRule+ , conditionalFormatRule+ , cfrBooleanRule+ , cfrGradientRule+ , cfrRanges++ -- ** BasicChartSpec+ , BasicChartSpec+ , basicChartSpec+ , bHeaderCount+ , bLegendPosition+ , bSeries+ , bChartType+ , bDomains+ , bAxis++ -- ** AddConditionalFormatRuleRequest+ , AddConditionalFormatRuleRequest+ , addConditionalFormatRuleRequest+ , acfrrRule+ , acfrrIndex++ -- ** PivotTableValueLayout+ , PivotTableValueLayout (..)++ -- ** DuplicateSheetResponse+ , DuplicateSheetResponse+ , duplicateSheetResponse+ , dsrProperties++ -- ** TextFormat+ , TextFormat+ , textFormat+ , tfFontFamily+ , tfForegRoundColor+ , tfFontSize+ , tfUnderline+ , tfItalic+ , tfBold+ , tfStrikethrough++ -- ** BasicChartDomain+ , BasicChartDomain+ , basicChartDomain+ , bcdDomain++ -- ** InterpolationPointType+ , InterpolationPointType (..)++ -- ** TextToColumnsRequestDelimiterType+ , TextToColumnsRequestDelimiterType (..)++ -- ** Padding+ , Padding+ , padding+ , pBottom+ , pLeft+ , pRight+ , pTop++ -- ** ChartSpec+ , ChartSpec+ , chartSpec+ , csTitle+ , csPieChart+ , csBasicChart+ , csHiddenDimensionStrategy++ -- ** DimensionProperties+ , DimensionProperties+ , dimensionProperties+ , dpHiddenByFilter+ , dpPixelSize+ , dpHiddenByUser++ -- ** BatchGetValuesResponse+ , BatchGetValuesResponse+ , batchGetValuesResponse+ , bgvrSpreadsheetId+ , bgvrValueRanges++ -- ** Request'+ , Request'+ , request'+ , reqAddFilterView+ , reqDeleteProtectedRange+ , reqUpdateProtectedRange+ , reqUpdateCells+ , reqDuplicateFilterView+ , reqAddConditionalFormatRule+ , reqSortRange+ , reqUpdateNamedRange+ , reqDeleteNamedRange+ , reqClearBasicFilter+ , reqAppendCells+ , reqPasteData+ , reqUpdateEmbeddedObjectPosition+ , reqCopyPaste+ , reqAutoResizeDimensions+ , reqAddSheet+ , reqFindReplace+ , reqDeleteDimension+ , reqCutPaste+ , reqMoveDimension+ , reqRepeatCell+ , reqAddProtectedRange+ , reqUpdateFilterView+ , reqDeleteFilterView+ , reqInsertDimension+ , reqUpdateSheetProperties+ , reqDeleteConditionalFormatRule+ , reqUpdateConditionalFormatRule+ , reqDeleteEmbeddedObject+ , reqMergeCells+ , reqAddNamedRange+ , reqAddChart+ , reqDuplicateSheet+ , reqAutoFill+ , reqUpdateDimensionProperties+ , reqUpdateChartSpec+ , reqSetBasicFilter+ , reqTextToColumns+ , reqUpdateSpreadsheetProperties+ , reqDeleteSheet+ , reqUnmergeCells+ , reqUpdateBOrders+ , reqAppendDimension+ , reqSetDataValidation++ -- ** DeleteConditionalFormatRuleResponse+ , DeleteConditionalFormatRuleResponse+ , deleteConditionalFormatRuleResponse+ , dcfrrRule++ -- ** UpdateConditionalFormatRuleResponse+ , UpdateConditionalFormatRuleResponse+ , updateConditionalFormatRuleResponse+ , uNewRule+ , uNewIndex+ , uOldIndex+ , uOldRule+ ) where++import Network.Google.Prelude+import Network.Google.Resource.Sheets.Spreadsheets.BatchUpdate+import Network.Google.Resource.Sheets.Spreadsheets.Create+import Network.Google.Resource.Sheets.Spreadsheets.Get+import Network.Google.Resource.Sheets.Spreadsheets.Sheets.CopyTo+import Network.Google.Resource.Sheets.Spreadsheets.Values.BatchGet+import Network.Google.Resource.Sheets.Spreadsheets.Values.BatchUpdate+import Network.Google.Resource.Sheets.Spreadsheets.Values.Get+import Network.Google.Resource.Sheets.Spreadsheets.Values.Update+import Network.Google.Sheets.Types++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Google Sheets API service.+type SheetsAPI =+ SpreadsheetsSheetsCopyToResource :<|>+ SpreadsheetsValuesGetResource+ :<|> SpreadsheetsValuesBatchGetResource+ :<|> SpreadsheetsValuesBatchUpdateResource+ :<|> SpreadsheetsValuesUpdateResource+ :<|> SpreadsheetsGetResource+ :<|> SpreadsheetsCreateResource+ :<|> SpreadsheetsBatchUpdateResource
+ gen/Network/Google/Sheets/Types.hs view
@@ -0,0 +1,1058 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Sheets.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.Sheets.Types+ (+ -- * Service Configuration+ sheetsService++ -- * OAuth Scopes+ , spreadsheetsReadOnlyScope+ , driveReadOnlyScope+ , driveScope+ , spreadsheetsScope++ -- * PivotGroupSortValueBucket+ , PivotGroupSortValueBucket+ , pivotGroupSortValueBucket+ , pgsvbBuckets+ , pgsvbValuesIndex++ -- * ValueRange+ , ValueRange+ , valueRange+ , vrValues+ , vrRange+ , vrMajorDimension++ -- * SortRangeRequest+ , SortRangeRequest+ , sortRangeRequest+ , srrSortSpecs+ , srrRange++ -- * CopyPasteRequestPasteType+ , CopyPasteRequestPasteType (..)++ -- * DeleteNamedRangeRequest+ , DeleteNamedRangeRequest+ , deleteNamedRangeRequest+ , dnrrNamedRangeId++ -- * UpdateNamedRangeRequest+ , UpdateNamedRangeRequest+ , updateNamedRangeRequest+ , unrrNamedRange+ , unrrFields++ -- * BasicChartAxisPosition+ , BasicChartAxisPosition (..)++ -- * ChartData+ , ChartData+ , chartData+ , cdSourceRange++ -- * BasicChartSeriesTargetAxis+ , BasicChartSeriesTargetAxis (..)++ -- * SpreadsheetProperties+ , SpreadsheetProperties+ , spreadsheetProperties+ , spDefaultFormat+ , spLocale+ , spAutoRecalc+ , spTitle+ , spTimeZone++ -- * BOrders+ , BOrders+ , bOrders+ , boBottom+ , boLeft+ , boRight+ , boTop++ -- * TextFormatRun+ , TextFormatRun+ , textFormatRun+ , tfrFormat+ , tfrStartIndex++ -- * AddSheetRequest+ , AddSheetRequest+ , addSheetRequest+ , asrProperties++ -- * SortSpec+ , SortSpec+ , sortSpec+ , ssSortOrder+ , ssDimensionIndex++ -- * CopyPasteRequest+ , CopyPasteRequest+ , copyPasteRequest+ , cprDestination+ , cprSource+ , cprPasteOrientation+ , cprPasteType++ -- * GridRange+ , GridRange+ , gridRange+ , grEndColumnIndex+ , grStartColumnIndex+ , grEndRowIndex+ , grStartRowIndex+ , grSheetId++ -- * AppendDimensionRequestDimension+ , AppendDimensionRequestDimension (..)++ -- * AddFilterViewResponse+ , AddFilterViewResponse+ , addFilterViewResponse+ , afvrFilter++ -- * DimensionRangeDimension+ , DimensionRangeDimension (..)++ -- * BooleanCondition+ , BooleanCondition+ , booleanCondition+ , bcValues+ , bcType++ -- * AutoResizeDimensionsRequest+ , AutoResizeDimensionsRequest+ , autoResizeDimensionsRequest+ , ardrDimensions++ -- * Sheet+ , Sheet+ , sheet+ , sData+ , sMerges+ , sProtectedRanges+ , sCharts+ , sBasicFilter+ , sConditionalFormats+ , sFilterViews+ , sProperties++ -- * GridCoordinate+ , GridCoordinate+ , gridCoordinate+ , gcColumnIndex+ , gcRowIndex+ , gcSheetId++ -- * ClearBasicFilterRequest+ , ClearBasicFilterRequest+ , clearBasicFilterRequest+ , cbfrSheetId++ -- * UpdateEmbeddedObjectPositionRequest+ , UpdateEmbeddedObjectPositionRequest+ , updateEmbeddedObjectPositionRequest+ , ueoprNewPosition+ , ueoprObjectId+ , ueoprFields++ -- * SourceAndDestinationDimension+ , SourceAndDestinationDimension (..)++ -- * BooleanRule+ , BooleanRule+ , booleanRule+ , brFormat+ , brCondition++ -- * CellFormatWrapStrategy+ , CellFormatWrapStrategy (..)++ -- * SourceAndDestination+ , SourceAndDestination+ , sourceAndDestination+ , sadDimension+ , sadSource+ , sadFillLength++ -- * PasteDataRequest+ , PasteDataRequest+ , pasteDataRequest+ , pdrData+ , pdrCoordinate+ , pdrHTML+ , pdrType+ , pdrDelimiter++ -- * BatchUpdateValuesRequestValueInputOption+ , BatchUpdateValuesRequestValueInputOption (..)++ -- * AppendCellsRequest+ , AppendCellsRequest+ , appendCellsRequest+ , acrRows+ , acrSheetId+ , acrFields++ -- * FindReplaceResponse+ , FindReplaceResponse+ , findReplaceResponse+ , frrValuesChanged+ , frrFormulasChanged+ , frrRowsChanged+ , frrSheetsChanged+ , frrOccurrencesChanged++ -- * PieChartSpec+ , PieChartSpec+ , pieChartSpec+ , pcsPieHole+ , pcsLegendPosition+ , pcsDomain+ , pcsSeries+ , pcsThreeDimensional++ -- * DataValidationRule+ , DataValidationRule+ , dataValidationRule+ , dvrShowCustomUi+ , dvrInputMessage+ , dvrStrict+ , dvrCondition++ -- * FilterView+ , FilterView+ , filterView+ , fvSortSpecs+ , fvNamedRangeId+ , fvRange+ , fvFilterViewId+ , fvTitle+ , fvCriteria++ -- * Color+ , Color+ , color+ , cRed+ , cAlpha+ , cGreen+ , cBlue++ -- * DeleteFilterViewRequest+ , DeleteFilterViewRequest+ , deleteFilterViewRequest+ , dfvrFilterId++ -- * UpdateFilterViewRequest+ , UpdateFilterViewRequest+ , updateFilterViewRequest+ , ufvrFilter+ , ufvrFields++ -- * BasicChartSeries+ , BasicChartSeries+ , basicChartSeries+ , bcsTargetAxis+ , bcsSeries+ , bcsType++ -- * AddProtectedRangeRequest+ , AddProtectedRangeRequest+ , addProtectedRangeRequest+ , aprrProtectedRange++ -- * PieChartSpecLegendPosition+ , PieChartSpecLegendPosition (..)++ -- * RepeatCellRequest+ , RepeatCellRequest+ , repeatCellRequest+ , rcrCell+ , rcrRange+ , rcrFields++ -- * ConditionValue+ , ConditionValue+ , conditionValue+ , cvRelativeDate+ , cvUserEnteredValue++ -- * DeleteDimensionRequest+ , DeleteDimensionRequest+ , deleteDimensionRequest+ , ddrRange++ -- * FindReplaceRequest+ , FindReplaceRequest+ , findReplaceRequest+ , frrMatchCase+ , frrAllSheets+ , frrIncludeFormulas+ , frrMatchEntireCell+ , frrRange+ , frrSheetId+ , frrFind+ , frrSearchByRegex+ , frrReplacement++ -- * MoveDimensionRequest+ , MoveDimensionRequest+ , moveDimensionRequest+ , mdrDestinationIndex+ , mdrSource++ -- * CellFormatVerticalAlignment+ , CellFormatVerticalAlignment (..)++ -- * NumberFormatType+ , NumberFormatType (..)++ -- * GradientRule+ , GradientRule+ , gradientRule+ , grMidpoint+ , grMaxpoint+ , grMinpoint++ -- * CutPasteRequest+ , CutPasteRequest+ , cutPasteRequest+ , cDestination+ , cSource+ , cPasteType++ -- * UpdateEmbeddedObjectPositionResponse+ , UpdateEmbeddedObjectPositionResponse+ , updateEmbeddedObjectPositionResponse+ , ueoprPosition++ -- * ConditionValueRelativeDate+ , ConditionValueRelativeDate (..)++ -- * Response+ , Response+ , response+ , rAddFilterView+ , rDuplicateFilterView+ , rUpdateEmbeddedObjectPosition+ , rAddSheet+ , rFindReplace+ , rAddProtectedRange+ , rDeleteConditionalFormatRule+ , rUpdateConditionalFormatRule+ , rAddNamedRange+ , rAddChart+ , rDuplicateSheet++ -- * FilterCriteria+ , FilterCriteria+ , filterCriteria+ , fcHiddenValues+ , fcCondition++ -- * ErrorValue+ , ErrorValue+ , errorValue+ , evType+ , evMessage++ -- * UpdateConditionalFormatRuleRequest+ , UpdateConditionalFormatRuleRequest+ , updateConditionalFormatRuleRequest+ , ucfrrRule+ , ucfrrNewIndex+ , ucfrrSheetId+ , ucfrrIndex++ -- * DeleteConditionalFormatRuleRequest+ , DeleteConditionalFormatRuleRequest+ , deleteConditionalFormatRuleRequest+ , dcfrrSheetId+ , dcfrrIndex++ -- * SortSpecSortOrder+ , SortSpecSortOrder (..)++ -- * OverlayPosition+ , OverlayPosition+ , overlayPosition+ , opHeightPixels+ , opOffSetYPixels+ , opAnchorCell+ , opWidthPixels+ , opOffSetXPixels++ -- * DeleteEmbeddedObjectRequest+ , DeleteEmbeddedObjectRequest+ , deleteEmbeddedObjectRequest+ , deorObjectId++ -- * SheetProperties+ , SheetProperties+ , sheetProperties+ , sTabColor+ , sGridProperties+ , sSheetType+ , sHidden+ , sSheetId+ , sTitle+ , sRightToLeft+ , sIndex++ -- * FilterViewCriteria+ , FilterViewCriteria+ , filterViewCriteria+ , fvcAddtional++ -- * BatchUpdateValuesResponse+ , BatchUpdateValuesResponse+ , batchUpdateValuesResponse+ , buvrTotalUpdatedColumns+ , buvrResponses+ , buvrSpreadsheetId+ , buvrTotalUpdatedSheets+ , buvrTotalUpdatedCells+ , buvrTotalUpdatedRows++ -- * UpdateSheetPropertiesRequest+ , UpdateSheetPropertiesRequest+ , updateSheetPropertiesRequest+ , usprFields+ , usprProperties++ -- * Spreadsheet+ , Spreadsheet+ , spreadsheet+ , sprSheets+ , sprNamedRanges+ , sprSpreadsheetId+ , sprProperties++ -- * InsertDimensionRequest+ , InsertDimensionRequest+ , insertDimensionRequest+ , idrRange+ , idrInheritFromBefore++ -- * PivotValueSummarizeFunction+ , PivotValueSummarizeFunction (..)++ -- * InterpolationPoint+ , InterpolationPoint+ , interpolationPoint+ , ipColor+ , ipValue+ , ipType++ -- * CellData+ , CellData+ , cellData+ , cdTextFormatRuns+ , cdNote+ , cdUserEnteredValue+ , cdUserEnteredFormat+ , cdEffectiveFormat+ , cdPivotTable+ , cdFormattedValue+ , cdDataValidation+ , cdHyperlink+ , cdEffectiveValue++ -- * ChartSourceRange+ , ChartSourceRange+ , chartSourceRange+ , csrSources++ -- * AddNamedRangeResponse+ , AddNamedRangeResponse+ , addNamedRangeResponse+ , anrrNamedRange++ -- * AddChartResponse+ , AddChartResponse+ , addChartResponse+ , acrChart++ -- * UpdateChartSpecRequest+ , UpdateChartSpecRequest+ , updateChartSpecRequest+ , ucsrSpec+ , ucsrChartId++ -- * SetBasicFilterRequest+ , SetBasicFilterRequest+ , setBasicFilterRequest+ , sbfrFilter++ -- * GridProperties+ , GridProperties+ , gridProperties+ , gpFrozenColumnCount+ , gpColumnCount+ , gpHideGridlines+ , gpFrozenRowCount+ , gpRowCount++ -- * CellFormatHyperlinkDisplayType+ , CellFormatHyperlinkDisplayType (..)++ -- * BasicFilterCriteria+ , BasicFilterCriteria+ , basicFilterCriteria+ , bfcAddtional++ -- * UpdateDimensionPropertiesRequest+ , UpdateDimensionPropertiesRequest+ , updateDimensionPropertiesRequest+ , udprRange+ , udprFields+ , udprProperties++ -- * PivotTableCriteria+ , PivotTableCriteria+ , pivotTableCriteria+ , ptcAddtional++ -- * AutoFillRequest+ , AutoFillRequest+ , autoFillRequest+ , afrSourceAndDestination+ , afrUseAlternateSeries+ , afrRange++ -- * DuplicateSheetRequest+ , DuplicateSheetRequest+ , duplicateSheetRequest+ , dsrNewSheetName+ , dsrInsertSheetIndex+ , dsrSourceSheetId+ , dsrNewSheetId++ -- * DuplicateFilterViewResponse+ , DuplicateFilterViewResponse+ , duplicateFilterViewResponse+ , dfvrFilter++ -- * SheetPropertiesSheetType+ , SheetPropertiesSheetType (..)++ -- * BatchUpdateValuesRequest+ , BatchUpdateValuesRequest+ , batchUpdateValuesRequest+ , buvrData+ , buvrValueInputOption++ -- * AddChartRequest+ , AddChartRequest+ , addChartRequest+ , aChart++ -- * NamedRange+ , NamedRange+ , namedRange+ , nrNamedRangeId+ , nrName+ , nrRange++ -- * MergeCellsRequest+ , MergeCellsRequest+ , mergeCellsRequest+ , mcrMergeType+ , mcrRange++ -- * MergeCellsRequestMergeType+ , MergeCellsRequestMergeType (..)++ -- * CellFormatHorizontalAlignment+ , CellFormatHorizontalAlignment (..)++ -- * BOrder+ , BOrder+ , bOrder+ , boStyle+ , boColor+ , boWidth++ -- * ExtendedValue+ , ExtendedValue+ , extendedValue+ , evBoolValue+ , evNumberValue+ , evErrorValue+ , evStringValue+ , evFormulaValue++ -- * AddNamedRangeRequest+ , AddNamedRangeRequest+ , addNamedRangeRequest+ , aNamedRange++ -- * PivotFilterCriteria+ , PivotFilterCriteria+ , pivotFilterCriteria+ , pfcVisibleValues++ -- * DimensionRange+ , DimensionRange+ , dimensionRange+ , drDimension+ , drEndIndex+ , drSheetId+ , drStartIndex++ -- * UpdateSpreadsheetPropertiesRequest+ , UpdateSpreadsheetPropertiesRequest+ , updateSpreadsheetPropertiesRequest+ , uFields+ , uProperties++ -- * AddProtectedRangeResponse+ , AddProtectedRangeResponse+ , addProtectedRangeResponse+ , aProtectedRange++ -- * AppendDimensionRequest+ , AppendDimensionRequest+ , appendDimensionRequest+ , adrLength+ , adrDimension+ , adrSheetId++ -- * PivotValue+ , PivotValue+ , pivotValue+ , pvSourceColumnOffSet+ , pvFormula+ , pvName+ , pvSummarizeFunction++ -- * UnmergeCellsRequest+ , UnmergeCellsRequest+ , unmergeCellsRequest+ , ucrRange++ -- * DeleteSheetRequest+ , DeleteSheetRequest+ , deleteSheetRequest+ , dsrSheetId++ -- * BooleanConditionType+ , BooleanConditionType (..)++ -- * UpdateBOrdersRequest+ , UpdateBOrdersRequest+ , updateBOrdersRequest+ , uborBottom+ , uborInnerHorizontal+ , uborLeft+ , uborInnerVertical+ , uborRange+ , uborRight+ , uborTop++ -- * ValueRangeMajorDimension+ , ValueRangeMajorDimension (..)++ -- * PivotGroupSortOrder+ , PivotGroupSortOrder (..)++ -- * BasicChartSpecChartType+ , BasicChartSpecChartType (..)++ -- * EmbeddedChart+ , EmbeddedChart+ , embeddedChart+ , ecSpec+ , ecPosition+ , ecChartId++ -- * RowData+ , RowData+ , rowData+ , rdValues++ -- * Editors+ , Editors+ , editors+ , eGroups+ , eUsers+ , eDomainUsersCanEdit++ -- * Xgafv+ , Xgafv (..)++ -- * PivotTable+ , PivotTable+ , pivotTable+ , ptValues+ , ptValueLayout+ , ptRows+ , ptSource+ , ptColumns+ , ptCriteria++ -- * EmbeddedObjectPosition+ , EmbeddedObjectPosition+ , embeddedObjectPosition+ , eopOverlayPosition+ , eopSheetId+ , eopNewSheet++ -- * BasicFilter+ , BasicFilter+ , basicFilter+ , bfSortSpecs+ , bfRange+ , bfCriteria++ -- * TextToColumnsRequest+ , TextToColumnsRequest+ , textToColumnsRequest+ , ttcrDelimiterType+ , ttcrSource+ , ttcrDelimiter++ -- * SpreadsheetPropertiesAutoRecalc+ , SpreadsheetPropertiesAutoRecalc (..)++ -- * CopyPasteRequestPasteOrientation+ , CopyPasteRequestPasteOrientation (..)++ -- * BatchUpdateSpreadsheetRequest+ , BatchUpdateSpreadsheetRequest+ , batchUpdateSpreadsheetRequest+ , busrRequests++ -- * PasteDataRequestType+ , PasteDataRequestType (..)++ -- * UpdateValuesResponse+ , UpdateValuesResponse+ , updateValuesResponse+ , uvrUpdatedCells+ , uvrSpreadsheetId+ , uvrUpdatedRows+ , uvrUpdatedRange+ , uvrUpdatedColumns++ -- * CopySheetToAnotherSpreadsheetRequest+ , CopySheetToAnotherSpreadsheetRequest+ , copySheetToAnotherSpreadsheetRequest+ , cstasrDestinationSpreadsheetId++ -- * AddFilterViewRequest+ , AddFilterViewRequest+ , addFilterViewRequest+ , aFilter++ -- * PivotGroupValueMetadata+ , PivotGroupValueMetadata+ , pivotGroupValueMetadata+ , pgvmValue+ , pgvmCollapsed++ -- * CellFormatTextDirection+ , CellFormatTextDirection (..)++ -- * BasicChartSeriesType+ , BasicChartSeriesType (..)++ -- * UpdateCellsRequest+ , UpdateCellsRequest+ , updateCellsRequest+ , updStart+ , updRows+ , updRange+ , updFields++ -- * CellFormat+ , CellFormat+ , cellFormat+ , cfBOrders+ , cfVerticalAlignment+ , cfBackgRoundColor+ , cfHyperlinkDisplayType+ , cfWrapStrategy+ , cfNumberFormat+ , cfTextDirection+ , cfTextFormat+ , cfHorizontalAlignment+ , cfPadding++ -- * DeleteProtectedRangeRequest+ , DeleteProtectedRangeRequest+ , deleteProtectedRangeRequest+ , dprrProtectedRangeId++ -- * UpdateProtectedRangeRequest+ , UpdateProtectedRangeRequest+ , updateProtectedRangeRequest+ , uprrProtectedRange+ , uprrFields++ -- * AddSheetResponse+ , AddSheetResponse+ , addSheetResponse+ , aProperties++ -- * ProtectedRange+ , ProtectedRange+ , protectedRange+ , prProtectedRangeId+ , prWarningOnly+ , prNamedRangeId+ , prRange+ , prEditors+ , prUnprotectedRanges+ , prRequestingUserCanEdit+ , prDescription++ -- * BasicChartAxis+ , BasicChartAxis+ , basicChartAxis+ , bcaFormat+ , bcaTitle+ , bcaPosition++ -- * GridData+ , GridData+ , gridData+ , gdRowMetadata+ , gdStartRow+ , gdRowData+ , gdColumnMetadata+ , gdStartColumn++ -- * NumberFormat+ , NumberFormat+ , numberFormat+ , nfPattern+ , nfType++ -- * BatchUpdateSpreadsheetResponse+ , BatchUpdateSpreadsheetResponse+ , batchUpdateSpreadsheetResponse+ , busrSpreadsheetId+ , busrReplies++ -- * SetDataValidationRequest+ , SetDataValidationRequest+ , setDataValidationRequest+ , sdvrRule+ , sdvrRange++ -- * ChartSpecHiddenDimensionStrategy+ , ChartSpecHiddenDimensionStrategy (..)++ -- * DuplicateFilterViewRequest+ , DuplicateFilterViewRequest+ , duplicateFilterViewRequest+ , dFilterId++ -- * BOrderStyle+ , BOrderStyle (..)++ -- * PivotGroup+ , PivotGroup+ , pivotGroup+ , pgValueMetadata+ , pgSourceColumnOffSet+ , pgSortOrder+ , pgShowTotals+ , pgValueBucket++ -- * CutPasteRequestPasteType+ , CutPasteRequestPasteType (..)++ -- * BasicChartSpecLegendPosition+ , BasicChartSpecLegendPosition (..)++ -- * ErrorValueType+ , ErrorValueType (..)++ -- * ConditionalFormatRule+ , ConditionalFormatRule+ , conditionalFormatRule+ , cfrBooleanRule+ , cfrGradientRule+ , cfrRanges++ -- * BasicChartSpec+ , BasicChartSpec+ , basicChartSpec+ , bHeaderCount+ , bLegendPosition+ , bSeries+ , bChartType+ , bDomains+ , bAxis++ -- * AddConditionalFormatRuleRequest+ , AddConditionalFormatRuleRequest+ , addConditionalFormatRuleRequest+ , acfrrRule+ , acfrrIndex++ -- * PivotTableValueLayout+ , PivotTableValueLayout (..)++ -- * DuplicateSheetResponse+ , DuplicateSheetResponse+ , duplicateSheetResponse+ , dsrProperties++ -- * TextFormat+ , TextFormat+ , textFormat+ , tfFontFamily+ , tfForegRoundColor+ , tfFontSize+ , tfUnderline+ , tfItalic+ , tfBold+ , tfStrikethrough++ -- * BasicChartDomain+ , BasicChartDomain+ , basicChartDomain+ , bcdDomain++ -- * InterpolationPointType+ , InterpolationPointType (..)++ -- * TextToColumnsRequestDelimiterType+ , TextToColumnsRequestDelimiterType (..)++ -- * Padding+ , Padding+ , padding+ , pBottom+ , pLeft+ , pRight+ , pTop++ -- * ChartSpec+ , ChartSpec+ , chartSpec+ , csTitle+ , csPieChart+ , csBasicChart+ , csHiddenDimensionStrategy++ -- * DimensionProperties+ , DimensionProperties+ , dimensionProperties+ , dpHiddenByFilter+ , dpPixelSize+ , dpHiddenByUser++ -- * BatchGetValuesResponse+ , BatchGetValuesResponse+ , batchGetValuesResponse+ , bgvrSpreadsheetId+ , bgvrValueRanges++ -- * Request'+ , Request'+ , request'+ , reqAddFilterView+ , reqDeleteProtectedRange+ , reqUpdateProtectedRange+ , reqUpdateCells+ , reqDuplicateFilterView+ , reqAddConditionalFormatRule+ , reqSortRange+ , reqUpdateNamedRange+ , reqDeleteNamedRange+ , reqClearBasicFilter+ , reqAppendCells+ , reqPasteData+ , reqUpdateEmbeddedObjectPosition+ , reqCopyPaste+ , reqAutoResizeDimensions+ , reqAddSheet+ , reqFindReplace+ , reqDeleteDimension+ , reqCutPaste+ , reqMoveDimension+ , reqRepeatCell+ , reqAddProtectedRange+ , reqUpdateFilterView+ , reqDeleteFilterView+ , reqInsertDimension+ , reqUpdateSheetProperties+ , reqDeleteConditionalFormatRule+ , reqUpdateConditionalFormatRule+ , reqDeleteEmbeddedObject+ , reqMergeCells+ , reqAddNamedRange+ , reqAddChart+ , reqDuplicateSheet+ , reqAutoFill+ , reqUpdateDimensionProperties+ , reqUpdateChartSpec+ , reqSetBasicFilter+ , reqTextToColumns+ , reqUpdateSpreadsheetProperties+ , reqDeleteSheet+ , reqUnmergeCells+ , reqUpdateBOrders+ , reqAppendDimension+ , reqSetDataValidation++ -- * DeleteConditionalFormatRuleResponse+ , DeleteConditionalFormatRuleResponse+ , deleteConditionalFormatRuleResponse+ , dcfrrRule++ -- * UpdateConditionalFormatRuleResponse+ , UpdateConditionalFormatRuleResponse+ , updateConditionalFormatRuleResponse+ , uNewRule+ , uNewIndex+ , uOldIndex+ , uOldRule+ ) where++import Network.Google.Prelude+import Network.Google.Sheets.Types.Product+import Network.Google.Sheets.Types.Sum++-- | Default request referring to version 'v4' of the Google Sheets API. This contains the host and root path used as a starting point for constructing service requests.+sheetsService :: ServiceConfig+sheetsService+ = defaultService (ServiceId "sheets:v4")+ "sheets.googleapis.com"++-- | View your Google Spreadsheets+spreadsheetsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/spreadsheets.readonly"]+spreadsheetsReadOnlyScope = Proxy;++-- | View the files in your Google Drive+driveReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/drive.readonly"]+driveReadOnlyScope = Proxy;++-- | View and manage the files in your Google Drive+driveScope :: Proxy '["https://www.googleapis.com/auth/drive"]+driveScope = Proxy;++-- | View and manage your spreadsheets in Google Drive+spreadsheetsScope :: Proxy '["https://www.googleapis.com/auth/spreadsheets"]+spreadsheetsScope = Proxy;
+ gen/Network/Google/Sheets/Types/Product.hs view
@@ -0,0 +1,8212 @@+{-# 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.Sheets.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.Sheets.Types.Product where++import Network.Google.Prelude+import Network.Google.Sheets.Types.Sum++-- | Information about which values in a pivot group should be used for+-- sorting.+--+-- /See:/ 'pivotGroupSortValueBucket' smart constructor.+data PivotGroupSortValueBucket = PivotGroupSortValueBucket'+ { _pgsvbBuckets :: !(Maybe [ExtendedValue])+ , _pgsvbValuesIndex :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PivotGroupSortValueBucket' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pgsvbBuckets'+--+-- * 'pgsvbValuesIndex'+pivotGroupSortValueBucket+ :: PivotGroupSortValueBucket+pivotGroupSortValueBucket =+ PivotGroupSortValueBucket'+ { _pgsvbBuckets = Nothing+ , _pgsvbValuesIndex = Nothing+ }++-- | Determines the bucket from which values are chosen to sort. For example,+-- in a pivot table with one row group & two column groups, the row group+-- can list up to two values. The first value corresponds to a value within+-- the first column group, and the second value corresponds to a value in+-- the second column group. If no values are listed, this would indicate+-- that the row should be sorted according to the \"Grand Total\" over the+-- column groups. If a single value is listed, this would correspond to+-- using the \"Total\" of that bucket.+pgsvbBuckets :: Lens' PivotGroupSortValueBucket [ExtendedValue]+pgsvbBuckets+ = lens _pgsvbBuckets (\ s a -> s{_pgsvbBuckets = a})+ . _Default+ . _Coerce++-- | The offset in the PivotTable.values list which the values in this+-- grouping should be sorted by.+pgsvbValuesIndex :: Lens' PivotGroupSortValueBucket (Maybe Int32)+pgsvbValuesIndex+ = lens _pgsvbValuesIndex+ (\ s a -> s{_pgsvbValuesIndex = a})+ . mapping _Coerce++instance FromJSON PivotGroupSortValueBucket where+ parseJSON+ = withObject "PivotGroupSortValueBucket"+ (\ o ->+ PivotGroupSortValueBucket' <$>+ (o .:? "buckets" .!= mempty) <*>+ (o .:? "valuesIndex"))++instance ToJSON PivotGroupSortValueBucket where+ toJSON PivotGroupSortValueBucket'{..}+ = object+ (catMaybes+ [("buckets" .=) <$> _pgsvbBuckets,+ ("valuesIndex" .=) <$> _pgsvbValuesIndex])++-- | Data within a range of the spreadsheet.+--+-- /See:/ 'valueRange' smart constructor.+data ValueRange = ValueRange'+ { _vrValues :: !(Maybe [[JSONValue]])+ , _vrRange :: !(Maybe Text)+ , _vrMajorDimension :: !(Maybe ValueRangeMajorDimension)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ValueRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vrValues'+--+-- * 'vrRange'+--+-- * 'vrMajorDimension'+valueRange+ :: ValueRange+valueRange =+ ValueRange'+ { _vrValues = Nothing+ , _vrRange = Nothing+ , _vrMajorDimension = Nothing+ }++-- | The data that was read or to be written. This is an array of arrays, the+-- outer array representing all the data and each inner array representing+-- a major dimension. Each item in the inner array corresponds with one+-- cell. For output, empty trailing rows and columns will not be included.+-- For input, supported value types are: bool, string, and double. Null+-- values will be skipped. To set a cell to an empty value, set the string+-- value to an empty string.+vrValues :: Lens' ValueRange [[JSONValue]]+vrValues+ = lens _vrValues (\ s a -> s{_vrValues = a}) .+ _Default+ . _Coerce++-- | The range the values cover, in A1 notation. For output, this range+-- indicates the entire requested range, even though the values will+-- exclude trailing rows and columns.+vrRange :: Lens' ValueRange (Maybe Text)+vrRange = lens _vrRange (\ s a -> s{_vrRange = a})++-- | The major dimension of the values. For output, if the spreadsheet data+-- is: \`A1=1,B1=2,A2=3,B2=4\`, then requesting+-- \`range=A1:B2,majorDimension=ROWS\` will return \`[[1,2],[3,4]]\`,+-- whereas requesting \`range=A1:B2,majorDimension=COLUMNS\` will return+-- \`[[1,3],[2,4]]\`. For input, with \`range=A1:B2,majorDimension=ROWS\`+-- then \`[[1,2],[3,4]]\` will set \`A1=1,B1=2,A2=3,B2=4\`. With+-- \`range=A1:B2,majorDimension=COLUMNS\` then \`[[1,2],[3,4]]\` will set+-- \`A1=1,B1=3,A2=2,B2=4\`. When writing, if this field is not set, it+-- defaults to ROWS.+vrMajorDimension :: Lens' ValueRange (Maybe ValueRangeMajorDimension)+vrMajorDimension+ = lens _vrMajorDimension+ (\ s a -> s{_vrMajorDimension = a})++instance FromJSON ValueRange where+ parseJSON+ = withObject "ValueRange"+ (\ o ->+ ValueRange' <$>+ (o .:? "values" .!= mempty) <*> (o .:? "range") <*>+ (o .:? "majorDimension"))++instance ToJSON ValueRange where+ toJSON ValueRange'{..}+ = object+ (catMaybes+ [("values" .=) <$> _vrValues,+ ("range" .=) <$> _vrRange,+ ("majorDimension" .=) <$> _vrMajorDimension])++-- | Sorts data in rows based on a sort order per column.+--+-- /See:/ 'sortRangeRequest' smart constructor.+data SortRangeRequest = SortRangeRequest'+ { _srrSortSpecs :: !(Maybe [SortSpec])+ , _srrRange :: !(Maybe GridRange)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SortRangeRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srrSortSpecs'+--+-- * 'srrRange'+sortRangeRequest+ :: SortRangeRequest+sortRangeRequest =+ SortRangeRequest'+ { _srrSortSpecs = Nothing+ , _srrRange = Nothing+ }++-- | The sort order per column. Later specifications are used when values are+-- equal in the earlier specifications.+srrSortSpecs :: Lens' SortRangeRequest [SortSpec]+srrSortSpecs+ = lens _srrSortSpecs (\ s a -> s{_srrSortSpecs = a})+ . _Default+ . _Coerce++-- | The range to sort.+srrRange :: Lens' SortRangeRequest (Maybe GridRange)+srrRange = lens _srrRange (\ s a -> s{_srrRange = a})++instance FromJSON SortRangeRequest where+ parseJSON+ = withObject "SortRangeRequest"+ (\ o ->+ SortRangeRequest' <$>+ (o .:? "sortSpecs" .!= mempty) <*> (o .:? "range"))++instance ToJSON SortRangeRequest where+ toJSON SortRangeRequest'{..}+ = object+ (catMaybes+ [("sortSpecs" .=) <$> _srrSortSpecs,+ ("range" .=) <$> _srrRange])++-- | Removes the named range with the given ID from the spreadsheet.+--+-- /See:/ 'deleteNamedRangeRequest' smart constructor.+newtype DeleteNamedRangeRequest = DeleteNamedRangeRequest'+ { _dnrrNamedRangeId :: 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'+deleteNamedRangeRequest+ :: DeleteNamedRangeRequest+deleteNamedRangeRequest =+ DeleteNamedRangeRequest'+ { _dnrrNamedRangeId = Nothing+ }++-- | The ID of the named range to delete.+dnrrNamedRangeId :: Lens' DeleteNamedRangeRequest (Maybe Text)+dnrrNamedRangeId+ = lens _dnrrNamedRangeId+ (\ s a -> s{_dnrrNamedRangeId = a})++instance FromJSON DeleteNamedRangeRequest where+ parseJSON+ = withObject "DeleteNamedRangeRequest"+ (\ o ->+ DeleteNamedRangeRequest' <$> (o .:? "namedRangeId"))++instance ToJSON DeleteNamedRangeRequest where+ toJSON DeleteNamedRangeRequest'{..}+ = object+ (catMaybes+ [("namedRangeId" .=) <$> _dnrrNamedRangeId])++-- | Updates properties of the named range with the specified namedRangeId.+--+-- /See:/ 'updateNamedRangeRequest' smart constructor.+data UpdateNamedRangeRequest = UpdateNamedRangeRequest'+ { _unrrNamedRange :: !(Maybe NamedRange)+ , _unrrFields :: !(Maybe FieldMask)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateNamedRangeRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'unrrNamedRange'+--+-- * 'unrrFields'+updateNamedRangeRequest+ :: UpdateNamedRangeRequest+updateNamedRangeRequest =+ UpdateNamedRangeRequest'+ { _unrrNamedRange = Nothing+ , _unrrFields = Nothing+ }++-- | The named range to update with the new properties.+unrrNamedRange :: Lens' UpdateNamedRangeRequest (Maybe NamedRange)+unrrNamedRange+ = lens _unrrNamedRange+ (\ s a -> s{_unrrNamedRange = a})++-- | The fields that should be updated. At least one field must be specified.+-- The root \`namedRange\` is implied and should not be specified. A single+-- \`\"*\"\` can be used as short-hand for listing every field.+unrrFields :: Lens' UpdateNamedRangeRequest (Maybe FieldMask)+unrrFields+ = lens _unrrFields (\ s a -> s{_unrrFields = a})++instance FromJSON UpdateNamedRangeRequest where+ parseJSON+ = withObject "UpdateNamedRangeRequest"+ (\ o ->+ UpdateNamedRangeRequest' <$>+ (o .:? "namedRange") <*> (o .:? "fields"))++instance ToJSON UpdateNamedRangeRequest where+ toJSON UpdateNamedRangeRequest'{..}+ = object+ (catMaybes+ [("namedRange" .=) <$> _unrrNamedRange,+ ("fields" .=) <$> _unrrFields])++-- | The data included in a domain or series.+--+-- /See:/ 'chartData' smart constructor.+newtype ChartData = ChartData'+ { _cdSourceRange :: Maybe ChartSourceRange+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChartData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdSourceRange'+chartData+ :: ChartData+chartData =+ ChartData'+ { _cdSourceRange = Nothing+ }++-- | The source ranges of the data.+cdSourceRange :: Lens' ChartData (Maybe ChartSourceRange)+cdSourceRange+ = lens _cdSourceRange+ (\ s a -> s{_cdSourceRange = a})++instance FromJSON ChartData where+ parseJSON+ = withObject "ChartData"+ (\ o -> ChartData' <$> (o .:? "sourceRange"))++instance ToJSON ChartData where+ toJSON ChartData'{..}+ = object+ (catMaybes [("sourceRange" .=) <$> _cdSourceRange])++-- | Properties of a spreadsheet.+--+-- /See:/ 'spreadsheetProperties' smart constructor.+data SpreadsheetProperties = SpreadsheetProperties'+ { _spDefaultFormat :: !(Maybe CellFormat)+ , _spLocale :: !(Maybe Text)+ , _spAutoRecalc :: !(Maybe SpreadsheetPropertiesAutoRecalc)+ , _spTitle :: !(Maybe Text)+ , _spTimeZone :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpreadsheetProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'spDefaultFormat'+--+-- * 'spLocale'+--+-- * 'spAutoRecalc'+--+-- * 'spTitle'+--+-- * 'spTimeZone'+spreadsheetProperties+ :: SpreadsheetProperties+spreadsheetProperties =+ SpreadsheetProperties'+ { _spDefaultFormat = Nothing+ , _spLocale = Nothing+ , _spAutoRecalc = Nothing+ , _spTitle = Nothing+ , _spTimeZone = Nothing+ }++-- | The default format of all cells in the spreadsheet.+-- CellData.effectiveFormat will not be set if the cell\'s format is equal+-- to this default format. This field is read-only.+spDefaultFormat :: Lens' SpreadsheetProperties (Maybe CellFormat)+spDefaultFormat+ = lens _spDefaultFormat+ (\ s a -> s{_spDefaultFormat = a})++-- | The locale of the spreadsheet in one of the following formats: * an ISO+-- 639-1 language code such as \`en\` * an ISO 639-2 language code such as+-- \`fil\`, if no 639-1 code exists * a combination of the ISO language+-- code and country code, such as \`en_US\` Note: when updating this field,+-- not all locales\/languages are supported.+spLocale :: Lens' SpreadsheetProperties (Maybe Text)+spLocale = lens _spLocale (\ s a -> s{_spLocale = a})++-- | The amount of time to wait before volatile functions are recalculated.+spAutoRecalc :: Lens' SpreadsheetProperties (Maybe SpreadsheetPropertiesAutoRecalc)+spAutoRecalc+ = lens _spAutoRecalc (\ s a -> s{_spAutoRecalc = a})++-- | The title of the spreadsheet.+spTitle :: Lens' SpreadsheetProperties (Maybe Text)+spTitle = lens _spTitle (\ s a -> s{_spTitle = a})++-- | The time zone of the spreadsheet, in CLDR format such as+-- \`America\/New_York\`. If the time zone isn\'t recognized, this may be a+-- custom time zone such as \`GMT-07:00\`.+spTimeZone :: Lens' SpreadsheetProperties (Maybe Text)+spTimeZone+ = lens _spTimeZone (\ s a -> s{_spTimeZone = a})++instance FromJSON SpreadsheetProperties where+ parseJSON+ = withObject "SpreadsheetProperties"+ (\ o ->+ SpreadsheetProperties' <$>+ (o .:? "defaultFormat") <*> (o .:? "locale") <*>+ (o .:? "autoRecalc")+ <*> (o .:? "title")+ <*> (o .:? "timeZone"))++instance ToJSON SpreadsheetProperties where+ toJSON SpreadsheetProperties'{..}+ = object+ (catMaybes+ [("defaultFormat" .=) <$> _spDefaultFormat,+ ("locale" .=) <$> _spLocale,+ ("autoRecalc" .=) <$> _spAutoRecalc,+ ("title" .=) <$> _spTitle,+ ("timeZone" .=) <$> _spTimeZone])++-- | The borders of the cell.+--+-- /See:/ 'bOrders' smart constructor.+data BOrders = BOrders'+ { _boBottom :: !(Maybe BOrder)+ , _boLeft :: !(Maybe BOrder)+ , _boRight :: !(Maybe BOrder)+ , _boTop :: !(Maybe BOrder)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BOrders' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'boBottom'+--+-- * 'boLeft'+--+-- * 'boRight'+--+-- * 'boTop'+bOrders+ :: BOrders+bOrders =+ BOrders'+ { _boBottom = Nothing+ , _boLeft = Nothing+ , _boRight = Nothing+ , _boTop = Nothing+ }++-- | The bottom border of the cell.+boBottom :: Lens' BOrders (Maybe BOrder)+boBottom = lens _boBottom (\ s a -> s{_boBottom = a})++-- | The left border of the cell.+boLeft :: Lens' BOrders (Maybe BOrder)+boLeft = lens _boLeft (\ s a -> s{_boLeft = a})++-- | The right border of the cell.+boRight :: Lens' BOrders (Maybe BOrder)+boRight = lens _boRight (\ s a -> s{_boRight = a})++-- | The top border of the cell.+boTop :: Lens' BOrders (Maybe BOrder)+boTop = lens _boTop (\ s a -> s{_boTop = a})++instance FromJSON BOrders where+ parseJSON+ = withObject "BOrders"+ (\ o ->+ BOrders' <$>+ (o .:? "bottom") <*> (o .:? "left") <*>+ (o .:? "right")+ <*> (o .:? "top"))++instance ToJSON BOrders where+ toJSON BOrders'{..}+ = object+ (catMaybes+ [("bottom" .=) <$> _boBottom,+ ("left" .=) <$> _boLeft, ("right" .=) <$> _boRight,+ ("top" .=) <$> _boTop])++-- | A run of a text format. The format of this run continues until the start+-- index of the next run. When updating, all fields must be set.+--+-- /See:/ 'textFormatRun' smart constructor.+data TextFormatRun = TextFormatRun'+ { _tfrFormat :: !(Maybe TextFormat)+ , _tfrStartIndex :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TextFormatRun' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tfrFormat'+--+-- * 'tfrStartIndex'+textFormatRun+ :: TextFormatRun+textFormatRun =+ TextFormatRun'+ { _tfrFormat = Nothing+ , _tfrStartIndex = Nothing+ }++-- | The format of this run. Absent values inherit the cell\'s format.+tfrFormat :: Lens' TextFormatRun (Maybe TextFormat)+tfrFormat+ = lens _tfrFormat (\ s a -> s{_tfrFormat = a})++-- | The character index where this run starts.+tfrStartIndex :: Lens' TextFormatRun (Maybe Int32)+tfrStartIndex+ = lens _tfrStartIndex+ (\ s a -> s{_tfrStartIndex = a})+ . mapping _Coerce++instance FromJSON TextFormatRun where+ parseJSON+ = withObject "TextFormatRun"+ (\ o ->+ TextFormatRun' <$>+ (o .:? "format") <*> (o .:? "startIndex"))++instance ToJSON TextFormatRun where+ toJSON TextFormatRun'{..}+ = object+ (catMaybes+ [("format" .=) <$> _tfrFormat,+ ("startIndex" .=) <$> _tfrStartIndex])++-- | Adds a new sheet. When a sheet is added at a given index, all subsequent+-- sheets\' indexes are incremented. To add an object sheet, use+-- AddChartRequest instead and specify EmbeddedObjectPosition.sheetId or+-- EmbeddedObjectPosition.newSheet.+--+-- /See:/ 'addSheetRequest' smart constructor.+newtype AddSheetRequest = AddSheetRequest'+ { _asrProperties :: Maybe SheetProperties+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddSheetRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'asrProperties'+addSheetRequest+ :: AddSheetRequest+addSheetRequest =+ AddSheetRequest'+ { _asrProperties = Nothing+ }++-- | The properties the new sheet should have. All properties are optional.+-- If a sheetId is specified, the sheet will use that ID. (It is an error+-- to specify the ID of a sheet that already exists.)+asrProperties :: Lens' AddSheetRequest (Maybe SheetProperties)+asrProperties+ = lens _asrProperties+ (\ s a -> s{_asrProperties = a})++instance FromJSON AddSheetRequest where+ parseJSON+ = withObject "AddSheetRequest"+ (\ o -> AddSheetRequest' <$> (o .:? "properties"))++instance ToJSON AddSheetRequest where+ toJSON AddSheetRequest'{..}+ = object+ (catMaybes [("properties" .=) <$> _asrProperties])++-- | A sort order associated with a specific column or row.+--+-- /See:/ 'sortSpec' smart constructor.+data SortSpec = SortSpec'+ { _ssSortOrder :: !(Maybe SortSpecSortOrder)+ , _ssDimensionIndex :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SortSpec' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ssSortOrder'+--+-- * 'ssDimensionIndex'+sortSpec+ :: SortSpec+sortSpec =+ SortSpec'+ { _ssSortOrder = Nothing+ , _ssDimensionIndex = Nothing+ }++-- | The order data should be sorted.+ssSortOrder :: Lens' SortSpec (Maybe SortSpecSortOrder)+ssSortOrder+ = lens _ssSortOrder (\ s a -> s{_ssSortOrder = a})++-- | The dimension the sort should be applied to.+ssDimensionIndex :: Lens' SortSpec (Maybe Int32)+ssDimensionIndex+ = lens _ssDimensionIndex+ (\ s a -> s{_ssDimensionIndex = a})+ . mapping _Coerce++instance FromJSON SortSpec where+ parseJSON+ = withObject "SortSpec"+ (\ o ->+ SortSpec' <$>+ (o .:? "sortOrder") <*> (o .:? "dimensionIndex"))++instance ToJSON SortSpec where+ toJSON SortSpec'{..}+ = object+ (catMaybes+ [("sortOrder" .=) <$> _ssSortOrder,+ ("dimensionIndex" .=) <$> _ssDimensionIndex])++-- | Copies data from the source to the destination.+--+-- /See:/ 'copyPasteRequest' smart constructor.+data CopyPasteRequest = CopyPasteRequest'+ { _cprDestination :: !(Maybe GridRange)+ , _cprSource :: !(Maybe GridRange)+ , _cprPasteOrientation :: !(Maybe CopyPasteRequestPasteOrientation)+ , _cprPasteType :: !(Maybe CopyPasteRequestPasteType)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CopyPasteRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cprDestination'+--+-- * 'cprSource'+--+-- * 'cprPasteOrientation'+--+-- * 'cprPasteType'+copyPasteRequest+ :: CopyPasteRequest+copyPasteRequest =+ CopyPasteRequest'+ { _cprDestination = Nothing+ , _cprSource = Nothing+ , _cprPasteOrientation = Nothing+ , _cprPasteType = Nothing+ }++-- | The location to paste to. If the range covers a span that\'s a multiple+-- of the source\'s height or width, then the data will be repeated to fill+-- in the destination range. If the range is smaller than the source range,+-- the entire source data will still be copied (beyond the end of the+-- destination range).+cprDestination :: Lens' CopyPasteRequest (Maybe GridRange)+cprDestination+ = lens _cprDestination+ (\ s a -> s{_cprDestination = a})++-- | The source range to copy.+cprSource :: Lens' CopyPasteRequest (Maybe GridRange)+cprSource+ = lens _cprSource (\ s a -> s{_cprSource = a})++-- | How that data should be oriented when pasting.+cprPasteOrientation :: Lens' CopyPasteRequest (Maybe CopyPasteRequestPasteOrientation)+cprPasteOrientation+ = lens _cprPasteOrientation+ (\ s a -> s{_cprPasteOrientation = a})++-- | What kind of data to paste.+cprPasteType :: Lens' CopyPasteRequest (Maybe CopyPasteRequestPasteType)+cprPasteType+ = lens _cprPasteType (\ s a -> s{_cprPasteType = a})++instance FromJSON CopyPasteRequest where+ parseJSON+ = withObject "CopyPasteRequest"+ (\ o ->+ CopyPasteRequest' <$>+ (o .:? "destination") <*> (o .:? "source") <*>+ (o .:? "pasteOrientation")+ <*> (o .:? "pasteType"))++instance ToJSON CopyPasteRequest where+ toJSON CopyPasteRequest'{..}+ = object+ (catMaybes+ [("destination" .=) <$> _cprDestination,+ ("source" .=) <$> _cprSource,+ ("pasteOrientation" .=) <$> _cprPasteOrientation,+ ("pasteType" .=) <$> _cprPasteType])++-- | A range on a sheet. All indexes are zero-based. Indexes are half open,+-- e.g the start index is inclusive and the end index is exclusive --+-- [start_index, end_index). Missing indexes indicate the range is+-- unbounded on that side. For example, if \`\"Sheet1\"\` is sheet ID 0,+-- then: \`Sheet1!A1:A1 == sheet_id: 0, start_row_index: 0, end_row_index:+-- 1, start_column_index: 0, end_column_index: 1\` \`Sheet1!A3:B4 ==+-- sheet_id: 0, start_row_index: 2, end_row_index: 4, start_column_index:+-- 0, end_column_index: 2\` \`Sheet1!A:B == sheet_id: 0,+-- start_column_index: 0, end_column_index: 2\` \`Sheet1!A5:B == sheet_id:+-- 0, start_row_index: 4, start_column_index: 0, end_column_index: 2\`+-- \`Sheet1 == sheet_id:0\` The start index must always be less than or+-- equal to the end index. If the start index equals the end index, then+-- the range is empty. Empty ranges are typically not meaningful and are+-- usually rendered in the UI as \`#REF!\`.+--+-- /See:/ 'gridRange' smart constructor.+data GridRange = GridRange'+ { _grEndColumnIndex :: !(Maybe (Textual Int32))+ , _grStartColumnIndex :: !(Maybe (Textual Int32))+ , _grEndRowIndex :: !(Maybe (Textual Int32))+ , _grStartRowIndex :: !(Maybe (Textual Int32))+ , _grSheetId :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GridRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'grEndColumnIndex'+--+-- * 'grStartColumnIndex'+--+-- * 'grEndRowIndex'+--+-- * 'grStartRowIndex'+--+-- * 'grSheetId'+gridRange+ :: GridRange+gridRange =+ GridRange'+ { _grEndColumnIndex = Nothing+ , _grStartColumnIndex = Nothing+ , _grEndRowIndex = Nothing+ , _grStartRowIndex = Nothing+ , _grSheetId = Nothing+ }++-- | The end column (exclusive) of the range, or not set if unbounded.+grEndColumnIndex :: Lens' GridRange (Maybe Int32)+grEndColumnIndex+ = lens _grEndColumnIndex+ (\ s a -> s{_grEndColumnIndex = a})+ . mapping _Coerce++-- | The start column (inclusive) of the range, or not set if unbounded.+grStartColumnIndex :: Lens' GridRange (Maybe Int32)+grStartColumnIndex+ = lens _grStartColumnIndex+ (\ s a -> s{_grStartColumnIndex = a})+ . mapping _Coerce++-- | The end row (exclusive) of the range, or not set if unbounded.+grEndRowIndex :: Lens' GridRange (Maybe Int32)+grEndRowIndex+ = lens _grEndRowIndex+ (\ s a -> s{_grEndRowIndex = a})+ . mapping _Coerce++-- | The start row (inclusive) of the range, or not set if unbounded.+grStartRowIndex :: Lens' GridRange (Maybe Int32)+grStartRowIndex+ = lens _grStartRowIndex+ (\ s a -> s{_grStartRowIndex = a})+ . mapping _Coerce++-- | The sheet this range is on.+grSheetId :: Lens' GridRange (Maybe Int32)+grSheetId+ = lens _grSheetId (\ s a -> s{_grSheetId = a}) .+ mapping _Coerce++instance FromJSON GridRange where+ parseJSON+ = withObject "GridRange"+ (\ o ->+ GridRange' <$>+ (o .:? "endColumnIndex") <*>+ (o .:? "startColumnIndex")+ <*> (o .:? "endRowIndex")+ <*> (o .:? "startRowIndex")+ <*> (o .:? "sheetId"))++instance ToJSON GridRange where+ toJSON GridRange'{..}+ = object+ (catMaybes+ [("endColumnIndex" .=) <$> _grEndColumnIndex,+ ("startColumnIndex" .=) <$> _grStartColumnIndex,+ ("endRowIndex" .=) <$> _grEndRowIndex,+ ("startRowIndex" .=) <$> _grStartRowIndex,+ ("sheetId" .=) <$> _grSheetId])++-- | The result of adding a filter view.+--+-- /See:/ 'addFilterViewResponse' smart constructor.+newtype AddFilterViewResponse = AddFilterViewResponse'+ { _afvrFilter :: Maybe FilterView+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddFilterViewResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'afvrFilter'+addFilterViewResponse+ :: AddFilterViewResponse+addFilterViewResponse =+ AddFilterViewResponse'+ { _afvrFilter = Nothing+ }++-- | The newly added filter view.+afvrFilter :: Lens' AddFilterViewResponse (Maybe FilterView)+afvrFilter+ = lens _afvrFilter (\ s a -> s{_afvrFilter = a})++instance FromJSON AddFilterViewResponse where+ parseJSON+ = withObject "AddFilterViewResponse"+ (\ o -> AddFilterViewResponse' <$> (o .:? "filter"))++instance ToJSON AddFilterViewResponse where+ toJSON AddFilterViewResponse'{..}+ = object (catMaybes [("filter" .=) <$> _afvrFilter])++-- | A condition that can evaluate to true or false. BooleanConditions are+-- used by conditional formatting, data validation, and the criteria in+-- filters.+--+-- /See:/ 'booleanCondition' smart constructor.+data BooleanCondition = BooleanCondition'+ { _bcValues :: !(Maybe [ConditionValue])+ , _bcType :: !(Maybe BooleanConditionType)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BooleanCondition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcValues'+--+-- * 'bcType'+booleanCondition+ :: BooleanCondition+booleanCondition =+ BooleanCondition'+ { _bcValues = Nothing+ , _bcType = Nothing+ }++-- | The values of the condition. The number of supported values depends on+-- the condition type. Some support zero values, others one or two values,+-- and ConditionType.ONE_OF_LIST supports an arbitrary number of values.+bcValues :: Lens' BooleanCondition [ConditionValue]+bcValues+ = lens _bcValues (\ s a -> s{_bcValues = a}) .+ _Default+ . _Coerce++-- | The type of condition.+bcType :: Lens' BooleanCondition (Maybe BooleanConditionType)+bcType = lens _bcType (\ s a -> s{_bcType = a})++instance FromJSON BooleanCondition where+ parseJSON+ = withObject "BooleanCondition"+ (\ o ->+ BooleanCondition' <$>+ (o .:? "values" .!= mempty) <*> (o .:? "type"))++instance ToJSON BooleanCondition where+ toJSON BooleanCondition'{..}+ = object+ (catMaybes+ [("values" .=) <$> _bcValues,+ ("type" .=) <$> _bcType])++-- | Automatically resizes one or more dimensions based on the contents of+-- the cells in that dimension.+--+-- /See:/ 'autoResizeDimensionsRequest' smart constructor.+newtype AutoResizeDimensionsRequest = AutoResizeDimensionsRequest'+ { _ardrDimensions :: Maybe DimensionRange+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoResizeDimensionsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ardrDimensions'+autoResizeDimensionsRequest+ :: AutoResizeDimensionsRequest+autoResizeDimensionsRequest =+ AutoResizeDimensionsRequest'+ { _ardrDimensions = Nothing+ }++-- | The dimensions to automatically resize. Only COLUMNS are supported.+ardrDimensions :: Lens' AutoResizeDimensionsRequest (Maybe DimensionRange)+ardrDimensions+ = lens _ardrDimensions+ (\ s a -> s{_ardrDimensions = a})++instance FromJSON AutoResizeDimensionsRequest where+ parseJSON+ = withObject "AutoResizeDimensionsRequest"+ (\ o ->+ AutoResizeDimensionsRequest' <$>+ (o .:? "dimensions"))++instance ToJSON AutoResizeDimensionsRequest where+ toJSON AutoResizeDimensionsRequest'{..}+ = object+ (catMaybes [("dimensions" .=) <$> _ardrDimensions])++-- | A sheet in a spreadsheet.+--+-- /See:/ 'sheet' smart constructor.+data Sheet = Sheet'+ { _sData :: !(Maybe [GridData])+ , _sMerges :: !(Maybe [GridRange])+ , _sProtectedRanges :: !(Maybe [ProtectedRange])+ , _sCharts :: !(Maybe [EmbeddedChart])+ , _sBasicFilter :: !(Maybe BasicFilter)+ , _sConditionalFormats :: !(Maybe [ConditionalFormatRule])+ , _sFilterViews :: !(Maybe [FilterView])+ , _sProperties :: !(Maybe SheetProperties)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Sheet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sData'+--+-- * 'sMerges'+--+-- * 'sProtectedRanges'+--+-- * 'sCharts'+--+-- * 'sBasicFilter'+--+-- * 'sConditionalFormats'+--+-- * 'sFilterViews'+--+-- * 'sProperties'+sheet+ :: Sheet+sheet =+ Sheet'+ { _sData = Nothing+ , _sMerges = Nothing+ , _sProtectedRanges = Nothing+ , _sCharts = Nothing+ , _sBasicFilter = Nothing+ , _sConditionalFormats = Nothing+ , _sFilterViews = Nothing+ , _sProperties = Nothing+ }++-- | Data in the grid, if this is a grid sheet. The number of GridData+-- objects returned is dependent on the number of ranges requested on this+-- sheet. For example, if this is representing \`Sheet1\`, and the+-- spreadsheet was requested with ranges \`Sheet1!A1:C10\` and+-- \`Sheet1!D15:E20\`, then the first GridData will have a+-- startRow\/startColumn of \`0\`, while the second one will have+-- \`startRow 14\` (zero-based row 15), and \`startColumn 3\` (zero-based+-- column D).+sData :: Lens' Sheet [GridData]+sData+ = lens _sData (\ s a -> s{_sData = a}) . _Default .+ _Coerce++-- | The ranges that are merged together.+sMerges :: Lens' Sheet [GridRange]+sMerges+ = lens _sMerges (\ s a -> s{_sMerges = a}) . _Default+ . _Coerce++-- | The protected ranges in this sheet.+sProtectedRanges :: Lens' Sheet [ProtectedRange]+sProtectedRanges+ = lens _sProtectedRanges+ (\ s a -> s{_sProtectedRanges = a})+ . _Default+ . _Coerce++-- | The specifications of every chart on this sheet.+sCharts :: Lens' Sheet [EmbeddedChart]+sCharts+ = lens _sCharts (\ s a -> s{_sCharts = a}) . _Default+ . _Coerce++-- | The filter on this sheet, if any.+sBasicFilter :: Lens' Sheet (Maybe BasicFilter)+sBasicFilter+ = lens _sBasicFilter (\ s a -> s{_sBasicFilter = a})++-- | The conditional format rules in this sheet.+sConditionalFormats :: Lens' Sheet [ConditionalFormatRule]+sConditionalFormats+ = lens _sConditionalFormats+ (\ s a -> s{_sConditionalFormats = a})+ . _Default+ . _Coerce++-- | The filter views in this sheet.+sFilterViews :: Lens' Sheet [FilterView]+sFilterViews+ = lens _sFilterViews (\ s a -> s{_sFilterViews = a})+ . _Default+ . _Coerce++-- | The properties of the sheet.+sProperties :: Lens' Sheet (Maybe SheetProperties)+sProperties+ = lens _sProperties (\ s a -> s{_sProperties = a})++instance FromJSON Sheet where+ parseJSON+ = withObject "Sheet"+ (\ o ->+ Sheet' <$>+ (o .:? "data" .!= mempty) <*>+ (o .:? "merges" .!= mempty)+ <*> (o .:? "protectedRanges" .!= mempty)+ <*> (o .:? "charts" .!= mempty)+ <*> (o .:? "basicFilter")+ <*> (o .:? "conditionalFormats" .!= mempty)+ <*> (o .:? "filterViews" .!= mempty)+ <*> (o .:? "properties"))++instance ToJSON Sheet where+ toJSON Sheet'{..}+ = object+ (catMaybes+ [("data" .=) <$> _sData, ("merges" .=) <$> _sMerges,+ ("protectedRanges" .=) <$> _sProtectedRanges,+ ("charts" .=) <$> _sCharts,+ ("basicFilter" .=) <$> _sBasicFilter,+ ("conditionalFormats" .=) <$> _sConditionalFormats,+ ("filterViews" .=) <$> _sFilterViews,+ ("properties" .=) <$> _sProperties])++-- | A coordinate in a sheet. All indexes are zero-based.+--+-- /See:/ 'gridCoordinate' smart constructor.+data GridCoordinate = GridCoordinate'+ { _gcColumnIndex :: !(Maybe (Textual Int32))+ , _gcRowIndex :: !(Maybe (Textual Int32))+ , _gcSheetId :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GridCoordinate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gcColumnIndex'+--+-- * 'gcRowIndex'+--+-- * 'gcSheetId'+gridCoordinate+ :: GridCoordinate+gridCoordinate =+ GridCoordinate'+ { _gcColumnIndex = Nothing+ , _gcRowIndex = Nothing+ , _gcSheetId = Nothing+ }++-- | The column index of the coordinate.+gcColumnIndex :: Lens' GridCoordinate (Maybe Int32)+gcColumnIndex+ = lens _gcColumnIndex+ (\ s a -> s{_gcColumnIndex = a})+ . mapping _Coerce++-- | The row index of the coordinate.+gcRowIndex :: Lens' GridCoordinate (Maybe Int32)+gcRowIndex+ = lens _gcRowIndex (\ s a -> s{_gcRowIndex = a}) .+ mapping _Coerce++-- | The sheet this coordinate is on.+gcSheetId :: Lens' GridCoordinate (Maybe Int32)+gcSheetId+ = lens _gcSheetId (\ s a -> s{_gcSheetId = a}) .+ mapping _Coerce++instance FromJSON GridCoordinate where+ parseJSON+ = withObject "GridCoordinate"+ (\ o ->+ GridCoordinate' <$>+ (o .:? "columnIndex") <*> (o .:? "rowIndex") <*>+ (o .:? "sheetId"))++instance ToJSON GridCoordinate where+ toJSON GridCoordinate'{..}+ = object+ (catMaybes+ [("columnIndex" .=) <$> _gcColumnIndex,+ ("rowIndex" .=) <$> _gcRowIndex,+ ("sheetId" .=) <$> _gcSheetId])++-- | Clears the basic filter, if any exists on the sheet.+--+-- /See:/ 'clearBasicFilterRequest' smart constructor.+newtype ClearBasicFilterRequest = ClearBasicFilterRequest'+ { _cbfrSheetId :: Maybe (Textual Int32)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ClearBasicFilterRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cbfrSheetId'+clearBasicFilterRequest+ :: ClearBasicFilterRequest+clearBasicFilterRequest =+ ClearBasicFilterRequest'+ { _cbfrSheetId = Nothing+ }++-- | The sheet ID on which the basic filter should be cleared.+cbfrSheetId :: Lens' ClearBasicFilterRequest (Maybe Int32)+cbfrSheetId+ = lens _cbfrSheetId (\ s a -> s{_cbfrSheetId = a}) .+ mapping _Coerce++instance FromJSON ClearBasicFilterRequest where+ parseJSON+ = withObject "ClearBasicFilterRequest"+ (\ o ->+ ClearBasicFilterRequest' <$> (o .:? "sheetId"))++instance ToJSON ClearBasicFilterRequest where+ toJSON ClearBasicFilterRequest'{..}+ = object+ (catMaybes [("sheetId" .=) <$> _cbfrSheetId])++-- | Update an embedded object\'s position (such as a moving or resizing a+-- chart or image).+--+-- /See:/ 'updateEmbeddedObjectPositionRequest' smart constructor.+data UpdateEmbeddedObjectPositionRequest = UpdateEmbeddedObjectPositionRequest'+ { _ueoprNewPosition :: !(Maybe EmbeddedObjectPosition)+ , _ueoprObjectId :: !(Maybe (Textual Int32))+ , _ueoprFields :: !(Maybe FieldMask)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateEmbeddedObjectPositionRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ueoprNewPosition'+--+-- * 'ueoprObjectId'+--+-- * 'ueoprFields'+updateEmbeddedObjectPositionRequest+ :: UpdateEmbeddedObjectPositionRequest+updateEmbeddedObjectPositionRequest =+ UpdateEmbeddedObjectPositionRequest'+ { _ueoprNewPosition = Nothing+ , _ueoprObjectId = Nothing+ , _ueoprFields = Nothing+ }++-- | An explicit position to move the embedded object to. If+-- newPosition.sheetId is set, a new sheet with that ID will be created. If+-- newPosition.newSheet is set to true, a new sheet will be created with an+-- ID that will be chosen for you.+ueoprNewPosition :: Lens' UpdateEmbeddedObjectPositionRequest (Maybe EmbeddedObjectPosition)+ueoprNewPosition+ = lens _ueoprNewPosition+ (\ s a -> s{_ueoprNewPosition = a})++-- | The ID of the object to moved.+ueoprObjectId :: Lens' UpdateEmbeddedObjectPositionRequest (Maybe Int32)+ueoprObjectId+ = lens _ueoprObjectId+ (\ s a -> s{_ueoprObjectId = a})+ . mapping _Coerce++-- | The fields of OverlayPosition that should be updated when setting a new+-- position. Used only if newPosition.overlayPosition is set, in which case+-- at least one field must be specified. The root+-- \`newPosition.overlayPosition\` is implied and should not be specified.+-- A single \`\"*\"\` can be used as short-hand for listing every field.+ueoprFields :: Lens' UpdateEmbeddedObjectPositionRequest (Maybe FieldMask)+ueoprFields+ = lens _ueoprFields (\ s a -> s{_ueoprFields = a})++instance FromJSON UpdateEmbeddedObjectPositionRequest+ where+ parseJSON+ = withObject "UpdateEmbeddedObjectPositionRequest"+ (\ o ->+ UpdateEmbeddedObjectPositionRequest' <$>+ (o .:? "newPosition") <*> (o .:? "objectId") <*>+ (o .:? "fields"))++instance ToJSON UpdateEmbeddedObjectPositionRequest+ where+ toJSON UpdateEmbeddedObjectPositionRequest'{..}+ = object+ (catMaybes+ [("newPosition" .=) <$> _ueoprNewPosition,+ ("objectId" .=) <$> _ueoprObjectId,+ ("fields" .=) <$> _ueoprFields])++-- | A rule that may or may not match, depending on the condition.+--+-- /See:/ 'booleanRule' smart constructor.+data BooleanRule = BooleanRule'+ { _brFormat :: !(Maybe CellFormat)+ , _brCondition :: !(Maybe BooleanCondition)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BooleanRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'brFormat'+--+-- * 'brCondition'+booleanRule+ :: BooleanRule+booleanRule =+ BooleanRule'+ { _brFormat = Nothing+ , _brCondition = Nothing+ }++-- | The format to apply. Conditional formatting can only apply a subset of+-- formatting: bold, italic, strikethrough, foreground color & background+-- color.+brFormat :: Lens' BooleanRule (Maybe CellFormat)+brFormat = lens _brFormat (\ s a -> s{_brFormat = a})++-- | The condition of the rule. If the condition evaluates to true, the+-- format will be applied.+brCondition :: Lens' BooleanRule (Maybe BooleanCondition)+brCondition+ = lens _brCondition (\ s a -> s{_brCondition = a})++instance FromJSON BooleanRule where+ parseJSON+ = withObject "BooleanRule"+ (\ o ->+ BooleanRule' <$>+ (o .:? "format") <*> (o .:? "condition"))++instance ToJSON BooleanRule where+ toJSON BooleanRule'{..}+ = object+ (catMaybes+ [("format" .=) <$> _brFormat,+ ("condition" .=) <$> _brCondition])++-- | A combination of a source range and how to extend that source.+--+-- /See:/ 'sourceAndDestination' smart constructor.+data SourceAndDestination = SourceAndDestination'+ { _sadDimension :: !(Maybe SourceAndDestinationDimension)+ , _sadSource :: !(Maybe GridRange)+ , _sadFillLength :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SourceAndDestination' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sadDimension'+--+-- * 'sadSource'+--+-- * 'sadFillLength'+sourceAndDestination+ :: SourceAndDestination+sourceAndDestination =+ SourceAndDestination'+ { _sadDimension = Nothing+ , _sadSource = Nothing+ , _sadFillLength = Nothing+ }++-- | The dimension that data should be filled into.+sadDimension :: Lens' SourceAndDestination (Maybe SourceAndDestinationDimension)+sadDimension+ = lens _sadDimension (\ s a -> s{_sadDimension = a})++-- | The location of the data to use as the source of the autofill.+sadSource :: Lens' SourceAndDestination (Maybe GridRange)+sadSource+ = lens _sadSource (\ s a -> s{_sadSource = a})++-- | The number of rows or columns that data should be filled into. Positive+-- numbers expand beyond the last row or last column of the source.+-- Negative numbers expand before the first row or first column of the+-- source.+sadFillLength :: Lens' SourceAndDestination (Maybe Int32)+sadFillLength+ = lens _sadFillLength+ (\ s a -> s{_sadFillLength = a})+ . mapping _Coerce++instance FromJSON SourceAndDestination where+ parseJSON+ = withObject "SourceAndDestination"+ (\ o ->+ SourceAndDestination' <$>+ (o .:? "dimension") <*> (o .:? "source") <*>+ (o .:? "fillLength"))++instance ToJSON SourceAndDestination where+ toJSON SourceAndDestination'{..}+ = object+ (catMaybes+ [("dimension" .=) <$> _sadDimension,+ ("source" .=) <$> _sadSource,+ ("fillLength" .=) <$> _sadFillLength])++-- | Inserts data into the spreadsheet starting at the specified coordinate.+--+-- /See:/ 'pasteDataRequest' smart constructor.+data PasteDataRequest = PasteDataRequest'+ { _pdrData :: !(Maybe Text)+ , _pdrCoordinate :: !(Maybe GridCoordinate)+ , _pdrHTML :: !(Maybe Bool)+ , _pdrType :: !(Maybe PasteDataRequestType)+ , _pdrDelimiter :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PasteDataRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdrData'+--+-- * 'pdrCoordinate'+--+-- * 'pdrHTML'+--+-- * 'pdrType'+--+-- * 'pdrDelimiter'+pasteDataRequest+ :: PasteDataRequest+pasteDataRequest =+ PasteDataRequest'+ { _pdrData = Nothing+ , _pdrCoordinate = Nothing+ , _pdrHTML = Nothing+ , _pdrType = Nothing+ , _pdrDelimiter = Nothing+ }++-- | The data to insert.+pdrData :: Lens' PasteDataRequest (Maybe Text)+pdrData = lens _pdrData (\ s a -> s{_pdrData = a})++-- | The coordinate at which the data should start being inserted.+pdrCoordinate :: Lens' PasteDataRequest (Maybe GridCoordinate)+pdrCoordinate+ = lens _pdrCoordinate+ (\ s a -> s{_pdrCoordinate = a})++-- | True if the data is HTML.+pdrHTML :: Lens' PasteDataRequest (Maybe Bool)+pdrHTML = lens _pdrHTML (\ s a -> s{_pdrHTML = a})++-- | How the data should be pasted.+pdrType :: Lens' PasteDataRequest (Maybe PasteDataRequestType)+pdrType = lens _pdrType (\ s a -> s{_pdrType = a})++-- | The delimiter in the data.+pdrDelimiter :: Lens' PasteDataRequest (Maybe Text)+pdrDelimiter+ = lens _pdrDelimiter (\ s a -> s{_pdrDelimiter = a})++instance FromJSON PasteDataRequest where+ parseJSON+ = withObject "PasteDataRequest"+ (\ o ->+ PasteDataRequest' <$>+ (o .:? "data") <*> (o .:? "coordinate") <*>+ (o .:? "html")+ <*> (o .:? "type")+ <*> (o .:? "delimiter"))++instance ToJSON PasteDataRequest where+ toJSON PasteDataRequest'{..}+ = object+ (catMaybes+ [("data" .=) <$> _pdrData,+ ("coordinate" .=) <$> _pdrCoordinate,+ ("html" .=) <$> _pdrHTML, ("type" .=) <$> _pdrType,+ ("delimiter" .=) <$> _pdrDelimiter])++-- | Adds new cells after the last row with data in a sheet, inserting new+-- rows into the sheet if necessary.+--+-- /See:/ 'appendCellsRequest' smart constructor.+data AppendCellsRequest = AppendCellsRequest'+ { _acrRows :: !(Maybe [RowData])+ , _acrSheetId :: !(Maybe (Textual Int32))+ , _acrFields :: !(Maybe FieldMask)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AppendCellsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'acrRows'+--+-- * 'acrSheetId'+--+-- * 'acrFields'+appendCellsRequest+ :: AppendCellsRequest+appendCellsRequest =+ AppendCellsRequest'+ { _acrRows = Nothing+ , _acrSheetId = Nothing+ , _acrFields = Nothing+ }++-- | The data to append.+acrRows :: Lens' AppendCellsRequest [RowData]+acrRows+ = lens _acrRows (\ s a -> s{_acrRows = a}) . _Default+ . _Coerce++-- | The sheet ID to append the data to.+acrSheetId :: Lens' AppendCellsRequest (Maybe Int32)+acrSheetId+ = lens _acrSheetId (\ s a -> s{_acrSheetId = a}) .+ mapping _Coerce++-- | The fields of CellData that should be updated. At least one field must+-- be specified. The root is the CellData; \'row.values.\' should not be+-- specified. A single \`\"*\"\` can be used as short-hand for listing+-- every field.+acrFields :: Lens' AppendCellsRequest (Maybe FieldMask)+acrFields+ = lens _acrFields (\ s a -> s{_acrFields = a})++instance FromJSON AppendCellsRequest where+ parseJSON+ = withObject "AppendCellsRequest"+ (\ o ->+ AppendCellsRequest' <$>+ (o .:? "rows" .!= mempty) <*> (o .:? "sheetId") <*>+ (o .:? "fields"))++instance ToJSON AppendCellsRequest where+ toJSON AppendCellsRequest'{..}+ = object+ (catMaybes+ [("rows" .=) <$> _acrRows,+ ("sheetId" .=) <$> _acrSheetId,+ ("fields" .=) <$> _acrFields])++-- | The result of the find\/replace.+--+-- /See:/ 'findReplaceResponse' smart constructor.+data FindReplaceResponse = FindReplaceResponse'+ { _frrValuesChanged :: !(Maybe (Textual Int32))+ , _frrFormulasChanged :: !(Maybe (Textual Int32))+ , _frrRowsChanged :: !(Maybe (Textual Int32))+ , _frrSheetsChanged :: !(Maybe (Textual Int32))+ , _frrOccurrencesChanged :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FindReplaceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'frrValuesChanged'+--+-- * 'frrFormulasChanged'+--+-- * 'frrRowsChanged'+--+-- * 'frrSheetsChanged'+--+-- * 'frrOccurrencesChanged'+findReplaceResponse+ :: FindReplaceResponse+findReplaceResponse =+ FindReplaceResponse'+ { _frrValuesChanged = Nothing+ , _frrFormulasChanged = Nothing+ , _frrRowsChanged = Nothing+ , _frrSheetsChanged = Nothing+ , _frrOccurrencesChanged = Nothing+ }++-- | The number of non-formula cells changed.+frrValuesChanged :: Lens' FindReplaceResponse (Maybe Int32)+frrValuesChanged+ = lens _frrValuesChanged+ (\ s a -> s{_frrValuesChanged = a})+ . mapping _Coerce++-- | The number of formula cells changed.+frrFormulasChanged :: Lens' FindReplaceResponse (Maybe Int32)+frrFormulasChanged+ = lens _frrFormulasChanged+ (\ s a -> s{_frrFormulasChanged = a})+ . mapping _Coerce++-- | The number of rows changed.+frrRowsChanged :: Lens' FindReplaceResponse (Maybe Int32)+frrRowsChanged+ = lens _frrRowsChanged+ (\ s a -> s{_frrRowsChanged = a})+ . mapping _Coerce++-- | The number of sheets changed.+frrSheetsChanged :: Lens' FindReplaceResponse (Maybe Int32)+frrSheetsChanged+ = lens _frrSheetsChanged+ (\ s a -> s{_frrSheetsChanged = a})+ . mapping _Coerce++-- | The number of occurrences (possibly multiple within a cell) changed. For+-- example, if replacing \`\"e\"\` with \`\"o\"\` in \`\"Google Sheets\"\`,+-- this would be \`\"3\"\` because \`\"Google Sheets\"\` -> \`\"Googlo+-- Shoots\"\`.+frrOccurrencesChanged :: Lens' FindReplaceResponse (Maybe Int32)+frrOccurrencesChanged+ = lens _frrOccurrencesChanged+ (\ s a -> s{_frrOccurrencesChanged = a})+ . mapping _Coerce++instance FromJSON FindReplaceResponse where+ parseJSON+ = withObject "FindReplaceResponse"+ (\ o ->+ FindReplaceResponse' <$>+ (o .:? "valuesChanged") <*> (o .:? "formulasChanged")+ <*> (o .:? "rowsChanged")+ <*> (o .:? "sheetsChanged")+ <*> (o .:? "occurrencesChanged"))++instance ToJSON FindReplaceResponse where+ toJSON FindReplaceResponse'{..}+ = object+ (catMaybes+ [("valuesChanged" .=) <$> _frrValuesChanged,+ ("formulasChanged" .=) <$> _frrFormulasChanged,+ ("rowsChanged" .=) <$> _frrRowsChanged,+ ("sheetsChanged" .=) <$> _frrSheetsChanged,+ ("occurrencesChanged" .=) <$>+ _frrOccurrencesChanged])++-- | A </chart/interactive/docs/gallery/piechart pie chart>.+--+-- /See:/ 'pieChartSpec' smart constructor.+data PieChartSpec = PieChartSpec'+ { _pcsPieHole :: !(Maybe (Textual Double))+ , _pcsLegendPosition :: !(Maybe PieChartSpecLegendPosition)+ , _pcsDomain :: !(Maybe ChartData)+ , _pcsSeries :: !(Maybe ChartData)+ , _pcsThreeDimensional :: !(Maybe Bool)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PieChartSpec' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pcsPieHole'+--+-- * 'pcsLegendPosition'+--+-- * 'pcsDomain'+--+-- * 'pcsSeries'+--+-- * 'pcsThreeDimensional'+pieChartSpec+ :: PieChartSpec+pieChartSpec =+ PieChartSpec'+ { _pcsPieHole = Nothing+ , _pcsLegendPosition = Nothing+ , _pcsDomain = Nothing+ , _pcsSeries = Nothing+ , _pcsThreeDimensional = Nothing+ }++-- | The size of the hole in the pie chart.+pcsPieHole :: Lens' PieChartSpec (Maybe Double)+pcsPieHole+ = lens _pcsPieHole (\ s a -> s{_pcsPieHole = a}) .+ mapping _Coerce++-- | Where the legend of the pie chart should be drawn.+pcsLegendPosition :: Lens' PieChartSpec (Maybe PieChartSpecLegendPosition)+pcsLegendPosition+ = lens _pcsLegendPosition+ (\ s a -> s{_pcsLegendPosition = a})++-- | The data that covers the domain of the pie chart.+pcsDomain :: Lens' PieChartSpec (Maybe ChartData)+pcsDomain+ = lens _pcsDomain (\ s a -> s{_pcsDomain = a})++-- | The data that covers the one and only series of the pie chart.+pcsSeries :: Lens' PieChartSpec (Maybe ChartData)+pcsSeries+ = lens _pcsSeries (\ s a -> s{_pcsSeries = a})++-- | True if the pie is three dimensional.+pcsThreeDimensional :: Lens' PieChartSpec (Maybe Bool)+pcsThreeDimensional+ = lens _pcsThreeDimensional+ (\ s a -> s{_pcsThreeDimensional = a})++instance FromJSON PieChartSpec where+ parseJSON+ = withObject "PieChartSpec"+ (\ o ->+ PieChartSpec' <$>+ (o .:? "pieHole") <*> (o .:? "legendPosition") <*>+ (o .:? "domain")+ <*> (o .:? "series")+ <*> (o .:? "threeDimensional"))++instance ToJSON PieChartSpec where+ toJSON PieChartSpec'{..}+ = object+ (catMaybes+ [("pieHole" .=) <$> _pcsPieHole,+ ("legendPosition" .=) <$> _pcsLegendPosition,+ ("domain" .=) <$> _pcsDomain,+ ("series" .=) <$> _pcsSeries,+ ("threeDimensional" .=) <$> _pcsThreeDimensional])++-- | A data validation rule.+--+-- /See:/ 'dataValidationRule' smart constructor.+data DataValidationRule = DataValidationRule'+ { _dvrShowCustomUi :: !(Maybe Bool)+ , _dvrInputMessage :: !(Maybe Text)+ , _dvrStrict :: !(Maybe Bool)+ , _dvrCondition :: !(Maybe BooleanCondition)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataValidationRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dvrShowCustomUi'+--+-- * 'dvrInputMessage'+--+-- * 'dvrStrict'+--+-- * 'dvrCondition'+dataValidationRule+ :: DataValidationRule+dataValidationRule =+ DataValidationRule'+ { _dvrShowCustomUi = Nothing+ , _dvrInputMessage = Nothing+ , _dvrStrict = Nothing+ , _dvrCondition = Nothing+ }++-- | True if the UI should be customized based on the kind of condition. If+-- true, \"List\" conditions will show a dropdown.+dvrShowCustomUi :: Lens' DataValidationRule (Maybe Bool)+dvrShowCustomUi+ = lens _dvrShowCustomUi+ (\ s a -> s{_dvrShowCustomUi = a})++-- | A message to show the user when adding data to the cell.+dvrInputMessage :: Lens' DataValidationRule (Maybe Text)+dvrInputMessage+ = lens _dvrInputMessage+ (\ s a -> s{_dvrInputMessage = a})++-- | True if invalid data should be rejected.+dvrStrict :: Lens' DataValidationRule (Maybe Bool)+dvrStrict+ = lens _dvrStrict (\ s a -> s{_dvrStrict = a})++-- | The condition that data in the cell must match.+dvrCondition :: Lens' DataValidationRule (Maybe BooleanCondition)+dvrCondition+ = lens _dvrCondition (\ s a -> s{_dvrCondition = a})++instance FromJSON DataValidationRule where+ parseJSON+ = withObject "DataValidationRule"+ (\ o ->+ DataValidationRule' <$>+ (o .:? "showCustomUi") <*> (o .:? "inputMessage") <*>+ (o .:? "strict")+ <*> (o .:? "condition"))++instance ToJSON DataValidationRule where+ toJSON DataValidationRule'{..}+ = object+ (catMaybes+ [("showCustomUi" .=) <$> _dvrShowCustomUi,+ ("inputMessage" .=) <$> _dvrInputMessage,+ ("strict" .=) <$> _dvrStrict,+ ("condition" .=) <$> _dvrCondition])++-- | A filter view.+--+-- /See:/ 'filterView' smart constructor.+data FilterView = FilterView'+ { _fvSortSpecs :: !(Maybe [SortSpec])+ , _fvNamedRangeId :: !(Maybe Text)+ , _fvRange :: !(Maybe GridRange)+ , _fvFilterViewId :: !(Maybe (Textual Int32))+ , _fvTitle :: !(Maybe Text)+ , _fvCriteria :: !(Maybe FilterViewCriteria)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FilterView' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fvSortSpecs'+--+-- * 'fvNamedRangeId'+--+-- * 'fvRange'+--+-- * 'fvFilterViewId'+--+-- * 'fvTitle'+--+-- * 'fvCriteria'+filterView+ :: FilterView+filterView =+ FilterView'+ { _fvSortSpecs = Nothing+ , _fvNamedRangeId = Nothing+ , _fvRange = Nothing+ , _fvFilterViewId = Nothing+ , _fvTitle = Nothing+ , _fvCriteria = Nothing+ }++-- | The sort order per column. Later specifications are used when values are+-- equal in the earlier specifications.+fvSortSpecs :: Lens' FilterView [SortSpec]+fvSortSpecs+ = lens _fvSortSpecs (\ s a -> s{_fvSortSpecs = a}) .+ _Default+ . _Coerce++-- | The named range this filter view is backed by, if any. When writing,+-- only one of range or named_range_id may be set.+fvNamedRangeId :: Lens' FilterView (Maybe Text)+fvNamedRangeId+ = lens _fvNamedRangeId+ (\ s a -> s{_fvNamedRangeId = a})++-- | The range this filter view covers. When writing, only one of range or+-- named_range_id may be set.+fvRange :: Lens' FilterView (Maybe GridRange)+fvRange = lens _fvRange (\ s a -> s{_fvRange = a})++-- | The ID of the filter view.+fvFilterViewId :: Lens' FilterView (Maybe Int32)+fvFilterViewId+ = lens _fvFilterViewId+ (\ s a -> s{_fvFilterViewId = a})+ . mapping _Coerce++-- | The name of the filter view.+fvTitle :: Lens' FilterView (Maybe Text)+fvTitle = lens _fvTitle (\ s a -> s{_fvTitle = a})++-- | The criteria for showing\/hiding values per column. The map\'s key is+-- the column index, and the value is the criteria for that column.+fvCriteria :: Lens' FilterView (Maybe FilterViewCriteria)+fvCriteria+ = lens _fvCriteria (\ s a -> s{_fvCriteria = a})++instance FromJSON FilterView where+ parseJSON+ = withObject "FilterView"+ (\ o ->+ FilterView' <$>+ (o .:? "sortSpecs" .!= mempty) <*>+ (o .:? "namedRangeId")+ <*> (o .:? "range")+ <*> (o .:? "filterViewId")+ <*> (o .:? "title")+ <*> (o .:? "criteria"))++instance ToJSON FilterView where+ toJSON FilterView'{..}+ = object+ (catMaybes+ [("sortSpecs" .=) <$> _fvSortSpecs,+ ("namedRangeId" .=) <$> _fvNamedRangeId,+ ("range" .=) <$> _fvRange,+ ("filterViewId" .=) <$> _fvFilterViewId,+ ("title" .=) <$> _fvTitle,+ ("criteria" .=) <$> _fvCriteria])++-- | Represents a color in the RGBA color space. This representation is+-- designed for simplicity of conversion to\/from color representations in+-- various languages over compactness; for example, the fields of this+-- representation can be trivially provided to the constructor of+-- \"java.awt.Color\" in Java; it can also be trivially provided to+-- UIColor\'s \"+colorWithRed:green:blue:alpha\" method in iOS; and, with+-- just a little work, it can be easily formatted into a CSS \"rgba()\"+-- string in JavaScript, as well. Here are some examples: Example (Java):+-- import com.google.type.Color; \/\/ ... public static java.awt.Color+-- fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ?+-- protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color(+-- protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(),+-- alpha); } public static Color toProto(java.awt.Color color) { float red+-- = (float) color.getRed(); float green = (float) color.getGreen(); float+-- blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder+-- resultBuilder = Color .newBuilder() .setRed(red \/ denominator)+-- .setGreen(green \/ denominator) .setBlue(blue \/ denominator); int alpha+-- = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue+-- .newBuilder() .setValue(((float) alpha) \/ denominator) .build()); }+-- return resultBuilder.build(); } \/\/ ... Example (iOS \/ Obj-C): \/\/+-- ... static UIColor* fromProto(Color* protocolor) { float red =+-- [protocolor red]; float green = [protocolor green]; float blue =+-- [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float+-- alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value];+-- } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; }+-- static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha;+-- if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return+-- nil; } Color* result = [Color alloc] init]; [result setRed:red]; [result+-- setGreen:green]; [result setBlue:blue]; if (alpha \<= 0.9999) { [result+-- setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return+-- result; } \/\/ ... Example (JavaScript): \/\/ ... var protoToCssColor =+-- function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac+-- = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red+-- = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255);+-- var blue = Math.floor(blueFrac * 255); if (!(\'alpha\' in rgb_color)) {+-- return rgbToCssColor_(red, green, blue); } var alphaFrac =+-- rgb_color.alpha.value || 0.0; var rgbParams = [red, green,+-- blue].join(\',\'); return [\'rgba(\', rgbParams, \',\', alphaFrac,+-- \')\'].join(\'\'); }; var rgbToCssColor_ = function(red, green, blue) {+-- var rgbNumber = new Number((red \<\< 16) | (green \<\< 8) | blue); var+-- hexString = rgbNumber.toString(16); var missingZeros = 6 -+-- hexString.length; var resultBuilder = [\'#\']; for (var i = 0; i \<+-- missingZeros; i++) { resultBuilder.push(\'0\'); }+-- resultBuilder.push(hexString); return resultBuilder.join(\'\'); }; \/\/+-- ...+--+-- /See:/ 'color' smart constructor.+data Color = Color'+ { _cRed :: !(Maybe (Textual Double))+ , _cAlpha :: !(Maybe (Textual Double))+ , _cGreen :: !(Maybe (Textual Double))+ , _cBlue :: !(Maybe (Textual Double))+ } 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:+--+-- * 'cRed'+--+-- * 'cAlpha'+--+-- * 'cGreen'+--+-- * 'cBlue'+color+ :: Color+color =+ Color'+ { _cRed = Nothing+ , _cAlpha = Nothing+ , _cGreen = Nothing+ , _cBlue = Nothing+ }++-- | The amount of red in the color as a value in the interval [0, 1].+cRed :: Lens' Color (Maybe Double)+cRed+ = lens _cRed (\ s a -> s{_cRed = a}) .+ mapping _Coerce++-- | The fraction of this color that should be applied to the pixel. That is,+-- the final pixel color is defined by the equation: pixel color = alpha *+-- (this color) + (1.0 - alpha) * (background color) This means that a+-- value of 1.0 corresponds to a solid color, whereas a value of 0.0+-- corresponds to a completely transparent color. This uses a wrapper+-- message rather than a simple float scalar so that it is possible to+-- distinguish between a default value and the value being unset. If+-- omitted, this color object is to be rendered as a solid color (as if the+-- alpha value had been explicitly given with a value of 1.0).+cAlpha :: Lens' Color (Maybe Double)+cAlpha+ = lens _cAlpha (\ s a -> s{_cAlpha = a}) .+ mapping _Coerce++-- | The amount of green in the color as a value in the interval [0, 1].+cGreen :: Lens' Color (Maybe Double)+cGreen+ = lens _cGreen (\ s a -> s{_cGreen = a}) .+ mapping _Coerce++-- | The amount of blue in the color as a value in the interval [0, 1].+cBlue :: Lens' Color (Maybe Double)+cBlue+ = lens _cBlue (\ s a -> s{_cBlue = a}) .+ mapping _Coerce++instance FromJSON Color where+ parseJSON+ = withObject "Color"+ (\ o ->+ Color' <$>+ (o .:? "red") <*> (o .:? "alpha") <*> (o .:? "green")+ <*> (o .:? "blue"))++instance ToJSON Color where+ toJSON Color'{..}+ = object+ (catMaybes+ [("red" .=) <$> _cRed, ("alpha" .=) <$> _cAlpha,+ ("green" .=) <$> _cGreen, ("blue" .=) <$> _cBlue])++-- | Deletes a particular filter view.+--+-- /See:/ 'deleteFilterViewRequest' smart constructor.+newtype DeleteFilterViewRequest = DeleteFilterViewRequest'+ { _dfvrFilterId :: Maybe (Textual Int32)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteFilterViewRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfvrFilterId'+deleteFilterViewRequest+ :: DeleteFilterViewRequest+deleteFilterViewRequest =+ DeleteFilterViewRequest'+ { _dfvrFilterId = Nothing+ }++-- | The ID of the filter to delete.+dfvrFilterId :: Lens' DeleteFilterViewRequest (Maybe Int32)+dfvrFilterId+ = lens _dfvrFilterId (\ s a -> s{_dfvrFilterId = a})+ . mapping _Coerce++instance FromJSON DeleteFilterViewRequest where+ parseJSON+ = withObject "DeleteFilterViewRequest"+ (\ o ->+ DeleteFilterViewRequest' <$> (o .:? "filterId"))++instance ToJSON DeleteFilterViewRequest where+ toJSON DeleteFilterViewRequest'{..}+ = object+ (catMaybes [("filterId" .=) <$> _dfvrFilterId])++-- | Updates properties of the filter view.+--+-- /See:/ 'updateFilterViewRequest' smart constructor.+data UpdateFilterViewRequest = UpdateFilterViewRequest'+ { _ufvrFilter :: !(Maybe FilterView)+ , _ufvrFields :: !(Maybe FieldMask)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateFilterViewRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ufvrFilter'+--+-- * 'ufvrFields'+updateFilterViewRequest+ :: UpdateFilterViewRequest+updateFilterViewRequest =+ UpdateFilterViewRequest'+ { _ufvrFilter = Nothing+ , _ufvrFields = Nothing+ }++-- | The new properties of the filter view.+ufvrFilter :: Lens' UpdateFilterViewRequest (Maybe FilterView)+ufvrFilter+ = lens _ufvrFilter (\ s a -> s{_ufvrFilter = a})++-- | The fields that should be updated. At least one field must be specified.+-- The root \`filter\` is implied and should not be specified. A single+-- \`\"*\"\` can be used as short-hand for listing every field.+ufvrFields :: Lens' UpdateFilterViewRequest (Maybe FieldMask)+ufvrFields+ = lens _ufvrFields (\ s a -> s{_ufvrFields = a})++instance FromJSON UpdateFilterViewRequest where+ parseJSON+ = withObject "UpdateFilterViewRequest"+ (\ o ->+ UpdateFilterViewRequest' <$>+ (o .:? "filter") <*> (o .:? "fields"))++instance ToJSON UpdateFilterViewRequest where+ toJSON UpdateFilterViewRequest'{..}+ = object+ (catMaybes+ [("filter" .=) <$> _ufvrFilter,+ ("fields" .=) <$> _ufvrFields])++-- | A single series of data in a chart. For example, if charting stock+-- prices over time, multiple series may exist, one for the \"Open Price\",+-- \"High Price\", \"Low Price\" and \"Close Price\".+--+-- /See:/ 'basicChartSeries' smart constructor.+data BasicChartSeries = BasicChartSeries'+ { _bcsTargetAxis :: !(Maybe BasicChartSeriesTargetAxis)+ , _bcsSeries :: !(Maybe ChartData)+ , _bcsType :: !(Maybe BasicChartSeriesType)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BasicChartSeries' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcsTargetAxis'+--+-- * 'bcsSeries'+--+-- * 'bcsType'+basicChartSeries+ :: BasicChartSeries+basicChartSeries =+ BasicChartSeries'+ { _bcsTargetAxis = Nothing+ , _bcsSeries = Nothing+ , _bcsType = Nothing+ }++-- | The minor axis that will specify the range of values for this series.+-- For example, if charting stocks over time, the \"Volume\" series may+-- want to be pinned to the right with the prices pinned to the left,+-- because the scale of trading volume is different than the scale of+-- prices. It is an error to specify an axis that isn\'t a valid minor axis+-- for the chart\'s type.+bcsTargetAxis :: Lens' BasicChartSeries (Maybe BasicChartSeriesTargetAxis)+bcsTargetAxis+ = lens _bcsTargetAxis+ (\ s a -> s{_bcsTargetAxis = a})++-- | The data being visualized in this chart series.+bcsSeries :: Lens' BasicChartSeries (Maybe ChartData)+bcsSeries+ = lens _bcsSeries (\ s a -> s{_bcsSeries = a})++-- | The type of this series. Valid only if the chartType is COMBO. Different+-- types will change the way the series is visualized. Only LINE, AREA, and+-- COLUMN are supported.+bcsType :: Lens' BasicChartSeries (Maybe BasicChartSeriesType)+bcsType = lens _bcsType (\ s a -> s{_bcsType = a})++instance FromJSON BasicChartSeries where+ parseJSON+ = withObject "BasicChartSeries"+ (\ o ->+ BasicChartSeries' <$>+ (o .:? "targetAxis") <*> (o .:? "series") <*>+ (o .:? "type"))++instance ToJSON BasicChartSeries where+ toJSON BasicChartSeries'{..}+ = object+ (catMaybes+ [("targetAxis" .=) <$> _bcsTargetAxis,+ ("series" .=) <$> _bcsSeries,+ ("type" .=) <$> _bcsType])++-- | Adds a new protected range.+--+-- /See:/ 'addProtectedRangeRequest' smart constructor.+newtype AddProtectedRangeRequest = AddProtectedRangeRequest'+ { _aprrProtectedRange :: Maybe ProtectedRange+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddProtectedRangeRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aprrProtectedRange'+addProtectedRangeRequest+ :: AddProtectedRangeRequest+addProtectedRangeRequest =+ AddProtectedRangeRequest'+ { _aprrProtectedRange = Nothing+ }++-- | The protected range to be added.+aprrProtectedRange :: Lens' AddProtectedRangeRequest (Maybe ProtectedRange)+aprrProtectedRange+ = lens _aprrProtectedRange+ (\ s a -> s{_aprrProtectedRange = a})++instance FromJSON AddProtectedRangeRequest where+ parseJSON+ = withObject "AddProtectedRangeRequest"+ (\ o ->+ AddProtectedRangeRequest' <$>+ (o .:? "protectedRange"))++instance ToJSON AddProtectedRangeRequest where+ toJSON AddProtectedRangeRequest'{..}+ = object+ (catMaybes+ [("protectedRange" .=) <$> _aprrProtectedRange])++-- | Updates all cells in the range to the values in the given Cell object.+-- Only the fields listed in the fields field are updated; others are+-- unchanged. If writing a cell with a formula, the formula\'s ranges will+-- automatically increment for each field in the range. For example, if+-- writing a cell with formula \`=A1\` into range B2:C4, B2 would be+-- \`=A1\`, B3 would be \`=A2\`, B4 would be \`=A3\`, C2 would be \`=B1\`,+-- C3 would be \`=B2\`, C4 would be \`=B3\`. To keep the formula\'s ranges+-- static, use the \`$\` indicator. For example, use the formula \`=$A$1\`+-- to prevent both the row and the column from incrementing.+--+-- /See:/ 'repeatCellRequest' smart constructor.+data RepeatCellRequest = RepeatCellRequest'+ { _rcrCell :: !(Maybe CellData)+ , _rcrRange :: !(Maybe GridRange)+ , _rcrFields :: !(Maybe FieldMask)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RepeatCellRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rcrCell'+--+-- * 'rcrRange'+--+-- * 'rcrFields'+repeatCellRequest+ :: RepeatCellRequest+repeatCellRequest =+ RepeatCellRequest'+ { _rcrCell = Nothing+ , _rcrRange = Nothing+ , _rcrFields = Nothing+ }++-- | The data to write.+rcrCell :: Lens' RepeatCellRequest (Maybe CellData)+rcrCell = lens _rcrCell (\ s a -> s{_rcrCell = a})++-- | The range to repeat the cell in.+rcrRange :: Lens' RepeatCellRequest (Maybe GridRange)+rcrRange = lens _rcrRange (\ s a -> s{_rcrRange = a})++-- | The fields that should be updated. At least one field must be specified.+-- The root \`cell\` is implied and should not be specified. A single+-- \`\"*\"\` can be used as short-hand for listing every field.+rcrFields :: Lens' RepeatCellRequest (Maybe FieldMask)+rcrFields+ = lens _rcrFields (\ s a -> s{_rcrFields = a})++instance FromJSON RepeatCellRequest where+ parseJSON+ = withObject "RepeatCellRequest"+ (\ o ->+ RepeatCellRequest' <$>+ (o .:? "cell") <*> (o .:? "range") <*>+ (o .:? "fields"))++instance ToJSON RepeatCellRequest where+ toJSON RepeatCellRequest'{..}+ = object+ (catMaybes+ [("cell" .=) <$> _rcrCell,+ ("range" .=) <$> _rcrRange,+ ("fields" .=) <$> _rcrFields])++-- | The value of the condition.+--+-- /See:/ 'conditionValue' smart constructor.+data ConditionValue = ConditionValue'+ { _cvRelativeDate :: !(Maybe ConditionValueRelativeDate)+ , _cvUserEnteredValue :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ConditionValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cvRelativeDate'+--+-- * 'cvUserEnteredValue'+conditionValue+ :: ConditionValue+conditionValue =+ ConditionValue'+ { _cvRelativeDate = Nothing+ , _cvUserEnteredValue = Nothing+ }++-- | A relative date (based on the current date). Valid only if the type is+-- DATE_BEFORE, DATE_AFTER, DATE_ON_OR_BEFORE or DATE_ON_OR_AFTER. Relative+-- dates are not supported in data validation. They are supported only in+-- conditional formatting and conditional filters.+cvRelativeDate :: Lens' ConditionValue (Maybe ConditionValueRelativeDate)+cvRelativeDate+ = lens _cvRelativeDate+ (\ s a -> s{_cvRelativeDate = a})++-- | A value the condition is based on. The value will be parsed as if the+-- user typed into a cell. Formulas are supported (and must begin with an+-- \`=\`).+cvUserEnteredValue :: Lens' ConditionValue (Maybe Text)+cvUserEnteredValue+ = lens _cvUserEnteredValue+ (\ s a -> s{_cvUserEnteredValue = a})++instance FromJSON ConditionValue where+ parseJSON+ = withObject "ConditionValue"+ (\ o ->+ ConditionValue' <$>+ (o .:? "relativeDate") <*>+ (o .:? "userEnteredValue"))++instance ToJSON ConditionValue where+ toJSON ConditionValue'{..}+ = object+ (catMaybes+ [("relativeDate" .=) <$> _cvRelativeDate,+ ("userEnteredValue" .=) <$> _cvUserEnteredValue])++-- | Deletes the dimensions from the sheet.+--+-- /See:/ 'deleteDimensionRequest' smart constructor.+newtype DeleteDimensionRequest = DeleteDimensionRequest'+ { _ddrRange :: Maybe DimensionRange+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteDimensionRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddrRange'+deleteDimensionRequest+ :: DeleteDimensionRequest+deleteDimensionRequest =+ DeleteDimensionRequest'+ { _ddrRange = Nothing+ }++-- | The dimensions to delete from the sheet.+ddrRange :: Lens' DeleteDimensionRequest (Maybe DimensionRange)+ddrRange = lens _ddrRange (\ s a -> s{_ddrRange = a})++instance FromJSON DeleteDimensionRequest where+ parseJSON+ = withObject "DeleteDimensionRequest"+ (\ o -> DeleteDimensionRequest' <$> (o .:? "range"))++instance ToJSON DeleteDimensionRequest where+ toJSON DeleteDimensionRequest'{..}+ = object (catMaybes [("range" .=) <$> _ddrRange])++-- | Finds and replaces data in cells over a range, sheet, or all sheets.+--+-- /See:/ 'findReplaceRequest' smart constructor.+data FindReplaceRequest = FindReplaceRequest'+ { _frrMatchCase :: !(Maybe Bool)+ , _frrAllSheets :: !(Maybe Bool)+ , _frrIncludeFormulas :: !(Maybe Bool)+ , _frrMatchEntireCell :: !(Maybe Bool)+ , _frrRange :: !(Maybe GridRange)+ , _frrSheetId :: !(Maybe (Textual Int32))+ , _frrFind :: !(Maybe Text)+ , _frrSearchByRegex :: !(Maybe Bool)+ , _frrReplacement :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FindReplaceRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'frrMatchCase'+--+-- * 'frrAllSheets'+--+-- * 'frrIncludeFormulas'+--+-- * 'frrMatchEntireCell'+--+-- * 'frrRange'+--+-- * 'frrSheetId'+--+-- * 'frrFind'+--+-- * 'frrSearchByRegex'+--+-- * 'frrReplacement'+findReplaceRequest+ :: FindReplaceRequest+findReplaceRequest =+ FindReplaceRequest'+ { _frrMatchCase = Nothing+ , _frrAllSheets = Nothing+ , _frrIncludeFormulas = Nothing+ , _frrMatchEntireCell = Nothing+ , _frrRange = Nothing+ , _frrSheetId = Nothing+ , _frrFind = Nothing+ , _frrSearchByRegex = Nothing+ , _frrReplacement = Nothing+ }++-- | True if the search is case sensitive.+frrMatchCase :: Lens' FindReplaceRequest (Maybe Bool)+frrMatchCase+ = lens _frrMatchCase (\ s a -> s{_frrMatchCase = a})++-- | True to find\/replace over all sheets.+frrAllSheets :: Lens' FindReplaceRequest (Maybe Bool)+frrAllSheets+ = lens _frrAllSheets (\ s a -> s{_frrAllSheets = a})++-- | True if the search should include cells with formulas. False to skip+-- cells with formulas.+frrIncludeFormulas :: Lens' FindReplaceRequest (Maybe Bool)+frrIncludeFormulas+ = lens _frrIncludeFormulas+ (\ s a -> s{_frrIncludeFormulas = a})++-- | True if the find value should match the entire cell.+frrMatchEntireCell :: Lens' FindReplaceRequest (Maybe Bool)+frrMatchEntireCell+ = lens _frrMatchEntireCell+ (\ s a -> s{_frrMatchEntireCell = a})++-- | The range to find\/replace over.+frrRange :: Lens' FindReplaceRequest (Maybe GridRange)+frrRange = lens _frrRange (\ s a -> s{_frrRange = a})++-- | The sheet to find\/replace over.+frrSheetId :: Lens' FindReplaceRequest (Maybe Int32)+frrSheetId+ = lens _frrSheetId (\ s a -> s{_frrSheetId = a}) .+ mapping _Coerce++-- | The value to search.+frrFind :: Lens' FindReplaceRequest (Maybe Text)+frrFind = lens _frrFind (\ s a -> s{_frrFind = a})++-- | True if the find value is a regex. The regular expression and+-- replacement should follow Java regex rules at+-- https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/regex\/Pattern.html.+-- The replacement string is allowed to refer to capturing groups. For+-- example, if one cell has the contents \`\"Google Sheets\"\` and another+-- has \`\"Google Docs\"\`, then searching for \`\"o.* (.*)\"\` with a+-- replacement of \`\"$1 Rocks\"\` would change the contents of the cells+-- to \`\"GSheets Rocks\"\` and \`\"GDocs Rocks\"\` respectively.+frrSearchByRegex :: Lens' FindReplaceRequest (Maybe Bool)+frrSearchByRegex+ = lens _frrSearchByRegex+ (\ s a -> s{_frrSearchByRegex = a})++-- | The value to use as the replacement.+frrReplacement :: Lens' FindReplaceRequest (Maybe Text)+frrReplacement+ = lens _frrReplacement+ (\ s a -> s{_frrReplacement = a})++instance FromJSON FindReplaceRequest where+ parseJSON+ = withObject "FindReplaceRequest"+ (\ o ->+ FindReplaceRequest' <$>+ (o .:? "matchCase") <*> (o .:? "allSheets") <*>+ (o .:? "includeFormulas")+ <*> (o .:? "matchEntireCell")+ <*> (o .:? "range")+ <*> (o .:? "sheetId")+ <*> (o .:? "find")+ <*> (o .:? "searchByRegex")+ <*> (o .:? "replacement"))++instance ToJSON FindReplaceRequest where+ toJSON FindReplaceRequest'{..}+ = object+ (catMaybes+ [("matchCase" .=) <$> _frrMatchCase,+ ("allSheets" .=) <$> _frrAllSheets,+ ("includeFormulas" .=) <$> _frrIncludeFormulas,+ ("matchEntireCell" .=) <$> _frrMatchEntireCell,+ ("range" .=) <$> _frrRange,+ ("sheetId" .=) <$> _frrSheetId,+ ("find" .=) <$> _frrFind,+ ("searchByRegex" .=) <$> _frrSearchByRegex,+ ("replacement" .=) <$> _frrReplacement])++-- | Moves one or more rows or columns.+--+-- /See:/ 'moveDimensionRequest' smart constructor.+data MoveDimensionRequest = MoveDimensionRequest'+ { _mdrDestinationIndex :: !(Maybe (Textual Int32))+ , _mdrSource :: !(Maybe DimensionRange)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MoveDimensionRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdrDestinationIndex'+--+-- * 'mdrSource'+moveDimensionRequest+ :: MoveDimensionRequest+moveDimensionRequest =+ MoveDimensionRequest'+ { _mdrDestinationIndex = Nothing+ , _mdrSource = Nothing+ }++-- | The zero-based start index of where to move the source data to, based on+-- the coordinates *before* the source data is removed from the grid.+-- Existing data will be shifted down or right (depending on the dimension)+-- to make room for the moved dimensions. The source dimensions are removed+-- from the grid, so the the data may end up in a different index than+-- specified. For example, given \`A1..A5\` of \`0, 1, 2, 3, 4\` and+-- wanting to move \`\"1\"\` and \`\"2\"\` to between \`\"3\"\` and+-- \`\"4\"\`, the source would be \`ROWS [1..3)\`,and the destination index+-- would be \`\"4\"\` (the zero-based index of row 5). The end result would+-- be \`A1..A5\` of \`0, 3, 1, 2, 4\`.+mdrDestinationIndex :: Lens' MoveDimensionRequest (Maybe Int32)+mdrDestinationIndex+ = lens _mdrDestinationIndex+ (\ s a -> s{_mdrDestinationIndex = a})+ . mapping _Coerce++-- | The source dimensions to move.+mdrSource :: Lens' MoveDimensionRequest (Maybe DimensionRange)+mdrSource+ = lens _mdrSource (\ s a -> s{_mdrSource = a})++instance FromJSON MoveDimensionRequest where+ parseJSON+ = withObject "MoveDimensionRequest"+ (\ o ->+ MoveDimensionRequest' <$>+ (o .:? "destinationIndex") <*> (o .:? "source"))++instance ToJSON MoveDimensionRequest where+ toJSON MoveDimensionRequest'{..}+ = object+ (catMaybes+ [("destinationIndex" .=) <$> _mdrDestinationIndex,+ ("source" .=) <$> _mdrSource])++-- | A rule that applies a gradient color scale format, based on the+-- interpolation points listed. The format of a cell will vary based on its+-- contents as compared to the values of the interpolation points.+--+-- /See:/ 'gradientRule' smart constructor.+data GradientRule = GradientRule'+ { _grMidpoint :: !(Maybe InterpolationPoint)+ , _grMaxpoint :: !(Maybe InterpolationPoint)+ , _grMinpoint :: !(Maybe InterpolationPoint)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GradientRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'grMidpoint'+--+-- * 'grMaxpoint'+--+-- * 'grMinpoint'+gradientRule+ :: GradientRule+gradientRule =+ GradientRule'+ { _grMidpoint = Nothing+ , _grMaxpoint = Nothing+ , _grMinpoint = Nothing+ }++-- | An optional midway interpolation point.+grMidpoint :: Lens' GradientRule (Maybe InterpolationPoint)+grMidpoint+ = lens _grMidpoint (\ s a -> s{_grMidpoint = a})++-- | The final interpolation point.+grMaxpoint :: Lens' GradientRule (Maybe InterpolationPoint)+grMaxpoint+ = lens _grMaxpoint (\ s a -> s{_grMaxpoint = a})++-- | The starting interpolation point.+grMinpoint :: Lens' GradientRule (Maybe InterpolationPoint)+grMinpoint+ = lens _grMinpoint (\ s a -> s{_grMinpoint = a})++instance FromJSON GradientRule where+ parseJSON+ = withObject "GradientRule"+ (\ o ->+ GradientRule' <$>+ (o .:? "midpoint") <*> (o .:? "maxpoint") <*>+ (o .:? "minpoint"))++instance ToJSON GradientRule where+ toJSON GradientRule'{..}+ = object+ (catMaybes+ [("midpoint" .=) <$> _grMidpoint,+ ("maxpoint" .=) <$> _grMaxpoint,+ ("minpoint" .=) <$> _grMinpoint])++-- | Moves data from the source to the destination.+--+-- /See:/ 'cutPasteRequest' smart constructor.+data CutPasteRequest = CutPasteRequest'+ { _cDestination :: !(Maybe GridCoordinate)+ , _cSource :: !(Maybe GridRange)+ , _cPasteType :: !(Maybe CutPasteRequestPasteType)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CutPasteRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cDestination'+--+-- * 'cSource'+--+-- * 'cPasteType'+cutPasteRequest+ :: CutPasteRequest+cutPasteRequest =+ CutPasteRequest'+ { _cDestination = Nothing+ , _cSource = Nothing+ , _cPasteType = Nothing+ }++-- | The top-left coordinate where the data should be pasted.+cDestination :: Lens' CutPasteRequest (Maybe GridCoordinate)+cDestination+ = lens _cDestination (\ s a -> s{_cDestination = a})++-- | The source data to cut.+cSource :: Lens' CutPasteRequest (Maybe GridRange)+cSource = lens _cSource (\ s a -> s{_cSource = a})++-- | What kind of data to paste. All the source data will be cut, regardless+-- of what is pasted.+cPasteType :: Lens' CutPasteRequest (Maybe CutPasteRequestPasteType)+cPasteType+ = lens _cPasteType (\ s a -> s{_cPasteType = a})++instance FromJSON CutPasteRequest where+ parseJSON+ = withObject "CutPasteRequest"+ (\ o ->+ CutPasteRequest' <$>+ (o .:? "destination") <*> (o .:? "source") <*>+ (o .:? "pasteType"))++instance ToJSON CutPasteRequest where+ toJSON CutPasteRequest'{..}+ = object+ (catMaybes+ [("destination" .=) <$> _cDestination,+ ("source" .=) <$> _cSource,+ ("pasteType" .=) <$> _cPasteType])++-- | The result of updating an embedded object\'s position.+--+-- /See:/ 'updateEmbeddedObjectPositionResponse' smart constructor.+newtype UpdateEmbeddedObjectPositionResponse = UpdateEmbeddedObjectPositionResponse'+ { _ueoprPosition :: Maybe EmbeddedObjectPosition+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateEmbeddedObjectPositionResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ueoprPosition'+updateEmbeddedObjectPositionResponse+ :: UpdateEmbeddedObjectPositionResponse+updateEmbeddedObjectPositionResponse =+ UpdateEmbeddedObjectPositionResponse'+ { _ueoprPosition = Nothing+ }++-- | The new position of the embedded object.+ueoprPosition :: Lens' UpdateEmbeddedObjectPositionResponse (Maybe EmbeddedObjectPosition)+ueoprPosition+ = lens _ueoprPosition+ (\ s a -> s{_ueoprPosition = a})++instance FromJSON+ UpdateEmbeddedObjectPositionResponse where+ parseJSON+ = withObject "UpdateEmbeddedObjectPositionResponse"+ (\ o ->+ UpdateEmbeddedObjectPositionResponse' <$>+ (o .:? "position"))++instance ToJSON UpdateEmbeddedObjectPositionResponse+ where+ toJSON UpdateEmbeddedObjectPositionResponse'{..}+ = object+ (catMaybes [("position" .=) <$> _ueoprPosition])++-- | A single response from an update.+--+-- /See:/ 'response' smart constructor.+data Response = Response'+ { _rAddFilterView :: !(Maybe AddFilterViewResponse)+ , _rDuplicateFilterView :: !(Maybe DuplicateFilterViewResponse)+ , _rUpdateEmbeddedObjectPosition :: !(Maybe UpdateEmbeddedObjectPositionResponse)+ , _rAddSheet :: !(Maybe AddSheetResponse)+ , _rFindReplace :: !(Maybe FindReplaceResponse)+ , _rAddProtectedRange :: !(Maybe AddProtectedRangeResponse)+ , _rDeleteConditionalFormatRule :: !(Maybe DeleteConditionalFormatRuleResponse)+ , _rUpdateConditionalFormatRule :: !(Maybe UpdateConditionalFormatRuleResponse)+ , _rAddNamedRange :: !(Maybe AddNamedRangeResponse)+ , _rAddChart :: !(Maybe AddChartResponse)+ , _rDuplicateSheet :: !(Maybe DuplicateSheetResponse)+ } 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:+--+-- * 'rAddFilterView'+--+-- * 'rDuplicateFilterView'+--+-- * 'rUpdateEmbeddedObjectPosition'+--+-- * 'rAddSheet'+--+-- * 'rFindReplace'+--+-- * 'rAddProtectedRange'+--+-- * 'rDeleteConditionalFormatRule'+--+-- * 'rUpdateConditionalFormatRule'+--+-- * 'rAddNamedRange'+--+-- * 'rAddChart'+--+-- * 'rDuplicateSheet'+response+ :: Response+response =+ Response'+ { _rAddFilterView = Nothing+ , _rDuplicateFilterView = Nothing+ , _rUpdateEmbeddedObjectPosition = Nothing+ , _rAddSheet = Nothing+ , _rFindReplace = Nothing+ , _rAddProtectedRange = Nothing+ , _rDeleteConditionalFormatRule = Nothing+ , _rUpdateConditionalFormatRule = Nothing+ , _rAddNamedRange = Nothing+ , _rAddChart = Nothing+ , _rDuplicateSheet = Nothing+ }++-- | A reply from adding a filter view.+rAddFilterView :: Lens' Response (Maybe AddFilterViewResponse)+rAddFilterView+ = lens _rAddFilterView+ (\ s a -> s{_rAddFilterView = a})++-- | A reply from duplicating a filter view.+rDuplicateFilterView :: Lens' Response (Maybe DuplicateFilterViewResponse)+rDuplicateFilterView+ = lens _rDuplicateFilterView+ (\ s a -> s{_rDuplicateFilterView = a})++-- | A reply from updating an embedded object\'s position.+rUpdateEmbeddedObjectPosition :: Lens' Response (Maybe UpdateEmbeddedObjectPositionResponse)+rUpdateEmbeddedObjectPosition+ = lens _rUpdateEmbeddedObjectPosition+ (\ s a -> s{_rUpdateEmbeddedObjectPosition = a})++-- | A reply from adding a sheet.+rAddSheet :: Lens' Response (Maybe AddSheetResponse)+rAddSheet+ = lens _rAddSheet (\ s a -> s{_rAddSheet = a})++-- | A reply from doing a find\/replace.+rFindReplace :: Lens' Response (Maybe FindReplaceResponse)+rFindReplace+ = lens _rFindReplace (\ s a -> s{_rFindReplace = a})++-- | A reply from adding a protected range.+rAddProtectedRange :: Lens' Response (Maybe AddProtectedRangeResponse)+rAddProtectedRange+ = lens _rAddProtectedRange+ (\ s a -> s{_rAddProtectedRange = a})++-- | A reply from deleting a conditional format rule.+rDeleteConditionalFormatRule :: Lens' Response (Maybe DeleteConditionalFormatRuleResponse)+rDeleteConditionalFormatRule+ = lens _rDeleteConditionalFormatRule+ (\ s a -> s{_rDeleteConditionalFormatRule = a})++-- | A reply from updating a conditional format rule.+rUpdateConditionalFormatRule :: Lens' Response (Maybe UpdateConditionalFormatRuleResponse)+rUpdateConditionalFormatRule+ = lens _rUpdateConditionalFormatRule+ (\ s a -> s{_rUpdateConditionalFormatRule = a})++-- | A reply from adding a named range.+rAddNamedRange :: Lens' Response (Maybe AddNamedRangeResponse)+rAddNamedRange+ = lens _rAddNamedRange+ (\ s a -> s{_rAddNamedRange = a})++-- | A reply from adding a chart.+rAddChart :: Lens' Response (Maybe AddChartResponse)+rAddChart+ = lens _rAddChart (\ s a -> s{_rAddChart = a})++-- | A reply from duplicating a sheet.+rDuplicateSheet :: Lens' Response (Maybe DuplicateSheetResponse)+rDuplicateSheet+ = lens _rDuplicateSheet+ (\ s a -> s{_rDuplicateSheet = a})++instance FromJSON Response where+ parseJSON+ = withObject "Response"+ (\ o ->+ Response' <$>+ (o .:? "addFilterView") <*>+ (o .:? "duplicateFilterView")+ <*> (o .:? "updateEmbeddedObjectPosition")+ <*> (o .:? "addSheet")+ <*> (o .:? "findReplace")+ <*> (o .:? "addProtectedRange")+ <*> (o .:? "deleteConditionalFormatRule")+ <*> (o .:? "updateConditionalFormatRule")+ <*> (o .:? "addNamedRange")+ <*> (o .:? "addChart")+ <*> (o .:? "duplicateSheet"))++instance ToJSON Response where+ toJSON Response'{..}+ = object+ (catMaybes+ [("addFilterView" .=) <$> _rAddFilterView,+ ("duplicateFilterView" .=) <$> _rDuplicateFilterView,+ ("updateEmbeddedObjectPosition" .=) <$>+ _rUpdateEmbeddedObjectPosition,+ ("addSheet" .=) <$> _rAddSheet,+ ("findReplace" .=) <$> _rFindReplace,+ ("addProtectedRange" .=) <$> _rAddProtectedRange,+ ("deleteConditionalFormatRule" .=) <$>+ _rDeleteConditionalFormatRule,+ ("updateConditionalFormatRule" .=) <$>+ _rUpdateConditionalFormatRule,+ ("addNamedRange" .=) <$> _rAddNamedRange,+ ("addChart" .=) <$> _rAddChart,+ ("duplicateSheet" .=) <$> _rDuplicateSheet])++-- | Criteria for showing\/hiding rows in a filter or filter view.+--+-- /See:/ 'filterCriteria' smart constructor.+data FilterCriteria = FilterCriteria'+ { _fcHiddenValues :: !(Maybe [Text])+ , _fcCondition :: !(Maybe BooleanCondition)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FilterCriteria' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fcHiddenValues'+--+-- * 'fcCondition'+filterCriteria+ :: FilterCriteria+filterCriteria =+ FilterCriteria'+ { _fcHiddenValues = Nothing+ , _fcCondition = Nothing+ }++-- | Values that should be hidden.+fcHiddenValues :: Lens' FilterCriteria [Text]+fcHiddenValues+ = lens _fcHiddenValues+ (\ s a -> s{_fcHiddenValues = a})+ . _Default+ . _Coerce++-- | A condition that must be true for values to be shown. (This does not+-- override hiddenValues -- if a value is listed there, it will still be+-- hidden.)+fcCondition :: Lens' FilterCriteria (Maybe BooleanCondition)+fcCondition+ = lens _fcCondition (\ s a -> s{_fcCondition = a})++instance FromJSON FilterCriteria where+ parseJSON+ = withObject "FilterCriteria"+ (\ o ->+ FilterCriteria' <$>+ (o .:? "hiddenValues" .!= mempty) <*>+ (o .:? "condition"))++instance ToJSON FilterCriteria where+ toJSON FilterCriteria'{..}+ = object+ (catMaybes+ [("hiddenValues" .=) <$> _fcHiddenValues,+ ("condition" .=) <$> _fcCondition])++-- | An error in a cell.+--+-- /See:/ 'errorValue' smart constructor.+data ErrorValue = ErrorValue'+ { _evType :: !(Maybe ErrorValueType)+ , _evMessage :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ErrorValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'evType'+--+-- * 'evMessage'+errorValue+ :: ErrorValue+errorValue =+ ErrorValue'+ { _evType = Nothing+ , _evMessage = Nothing+ }++-- | The type of error.+evType :: Lens' ErrorValue (Maybe ErrorValueType)+evType = lens _evType (\ s a -> s{_evType = a})++-- | A message with more information about the error (in the spreadsheet\'s+-- locale).+evMessage :: Lens' ErrorValue (Maybe Text)+evMessage+ = lens _evMessage (\ s a -> s{_evMessage = a})++instance FromJSON ErrorValue where+ parseJSON+ = withObject "ErrorValue"+ (\ o ->+ ErrorValue' <$> (o .:? "type") <*> (o .:? "message"))++instance ToJSON ErrorValue where+ toJSON ErrorValue'{..}+ = object+ (catMaybes+ [("type" .=) <$> _evType,+ ("message" .=) <$> _evMessage])++-- | Updates a conditional format rule at the given index, or moves a+-- conditional format rule to another index.+--+-- /See:/ 'updateConditionalFormatRuleRequest' smart constructor.+data UpdateConditionalFormatRuleRequest = UpdateConditionalFormatRuleRequest'+ { _ucfrrRule :: !(Maybe ConditionalFormatRule)+ , _ucfrrNewIndex :: !(Maybe (Textual Int32))+ , _ucfrrSheetId :: !(Maybe (Textual Int32))+ , _ucfrrIndex :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateConditionalFormatRuleRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ucfrrRule'+--+-- * 'ucfrrNewIndex'+--+-- * 'ucfrrSheetId'+--+-- * 'ucfrrIndex'+updateConditionalFormatRuleRequest+ :: UpdateConditionalFormatRuleRequest+updateConditionalFormatRuleRequest =+ UpdateConditionalFormatRuleRequest'+ { _ucfrrRule = Nothing+ , _ucfrrNewIndex = Nothing+ , _ucfrrSheetId = Nothing+ , _ucfrrIndex = Nothing+ }++-- | The rule that should replace the rule at the given index.+ucfrrRule :: Lens' UpdateConditionalFormatRuleRequest (Maybe ConditionalFormatRule)+ucfrrRule+ = lens _ucfrrRule (\ s a -> s{_ucfrrRule = a})++-- | The zero-based new index the rule should end up at.+ucfrrNewIndex :: Lens' UpdateConditionalFormatRuleRequest (Maybe Int32)+ucfrrNewIndex+ = lens _ucfrrNewIndex+ (\ s a -> s{_ucfrrNewIndex = a})+ . mapping _Coerce++-- | The sheet of the rule to move. Required if new_index is set, unused+-- otherwise.+ucfrrSheetId :: Lens' UpdateConditionalFormatRuleRequest (Maybe Int32)+ucfrrSheetId+ = lens _ucfrrSheetId (\ s a -> s{_ucfrrSheetId = a})+ . mapping _Coerce++-- | The zero-based index of the rule that should be replaced or moved.+ucfrrIndex :: Lens' UpdateConditionalFormatRuleRequest (Maybe Int32)+ucfrrIndex+ = lens _ucfrrIndex (\ s a -> s{_ucfrrIndex = a}) .+ mapping _Coerce++instance FromJSON UpdateConditionalFormatRuleRequest+ where+ parseJSON+ = withObject "UpdateConditionalFormatRuleRequest"+ (\ o ->+ UpdateConditionalFormatRuleRequest' <$>+ (o .:? "rule") <*> (o .:? "newIndex") <*>+ (o .:? "sheetId")+ <*> (o .:? "index"))++instance ToJSON UpdateConditionalFormatRuleRequest+ where+ toJSON UpdateConditionalFormatRuleRequest'{..}+ = object+ (catMaybes+ [("rule" .=) <$> _ucfrrRule,+ ("newIndex" .=) <$> _ucfrrNewIndex,+ ("sheetId" .=) <$> _ucfrrSheetId,+ ("index" .=) <$> _ucfrrIndex])++-- | Deletes a conditional format rule at the given index. All subsequent+-- rules\' indexes are decremented.+--+-- /See:/ 'deleteConditionalFormatRuleRequest' smart constructor.+data DeleteConditionalFormatRuleRequest = DeleteConditionalFormatRuleRequest'+ { _dcfrrSheetId :: !(Maybe (Textual Int32))+ , _dcfrrIndex :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteConditionalFormatRuleRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcfrrSheetId'+--+-- * 'dcfrrIndex'+deleteConditionalFormatRuleRequest+ :: DeleteConditionalFormatRuleRequest+deleteConditionalFormatRuleRequest =+ DeleteConditionalFormatRuleRequest'+ { _dcfrrSheetId = Nothing+ , _dcfrrIndex = Nothing+ }++-- | The sheet the rule is being deleted from.+dcfrrSheetId :: Lens' DeleteConditionalFormatRuleRequest (Maybe Int32)+dcfrrSheetId+ = lens _dcfrrSheetId (\ s a -> s{_dcfrrSheetId = a})+ . mapping _Coerce++-- | The zero-based index of the rule to be deleted.+dcfrrIndex :: Lens' DeleteConditionalFormatRuleRequest (Maybe Int32)+dcfrrIndex+ = lens _dcfrrIndex (\ s a -> s{_dcfrrIndex = a}) .+ mapping _Coerce++instance FromJSON DeleteConditionalFormatRuleRequest+ where+ parseJSON+ = withObject "DeleteConditionalFormatRuleRequest"+ (\ o ->+ DeleteConditionalFormatRuleRequest' <$>+ (o .:? "sheetId") <*> (o .:? "index"))++instance ToJSON DeleteConditionalFormatRuleRequest+ where+ toJSON DeleteConditionalFormatRuleRequest'{..}+ = object+ (catMaybes+ [("sheetId" .=) <$> _dcfrrSheetId,+ ("index" .=) <$> _dcfrrIndex])++-- | The location an object is overlaid on top of a grid.+--+-- /See:/ 'overlayPosition' smart constructor.+data OverlayPosition = OverlayPosition'+ { _opHeightPixels :: !(Maybe (Textual Int32))+ , _opOffSetYPixels :: !(Maybe (Textual Int32))+ , _opAnchorCell :: !(Maybe GridCoordinate)+ , _opWidthPixels :: !(Maybe (Textual Int32))+ , _opOffSetXPixels :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OverlayPosition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'opHeightPixels'+--+-- * 'opOffSetYPixels'+--+-- * 'opAnchorCell'+--+-- * 'opWidthPixels'+--+-- * 'opOffSetXPixels'+overlayPosition+ :: OverlayPosition+overlayPosition =+ OverlayPosition'+ { _opHeightPixels = Nothing+ , _opOffSetYPixels = Nothing+ , _opAnchorCell = Nothing+ , _opWidthPixels = Nothing+ , _opOffSetXPixels = Nothing+ }++-- | The height of the object, in pixels. Defaults to 371.+opHeightPixels :: Lens' OverlayPosition (Maybe Int32)+opHeightPixels+ = lens _opHeightPixels+ (\ s a -> s{_opHeightPixels = a})+ . mapping _Coerce++-- | The vertical offset, in pixels, that the object is offset from the+-- anchor cell.+opOffSetYPixels :: Lens' OverlayPosition (Maybe Int32)+opOffSetYPixels+ = lens _opOffSetYPixels+ (\ s a -> s{_opOffSetYPixels = a})+ . mapping _Coerce++-- | The cell the object is anchored to.+opAnchorCell :: Lens' OverlayPosition (Maybe GridCoordinate)+opAnchorCell+ = lens _opAnchorCell (\ s a -> s{_opAnchorCell = a})++-- | The width of the object, in pixels. Defaults to 600.+opWidthPixels :: Lens' OverlayPosition (Maybe Int32)+opWidthPixels+ = lens _opWidthPixels+ (\ s a -> s{_opWidthPixels = a})+ . mapping _Coerce++-- | The horizontal offset, in pixels, that the object is offset from the+-- anchor cell.+opOffSetXPixels :: Lens' OverlayPosition (Maybe Int32)+opOffSetXPixels+ = lens _opOffSetXPixels+ (\ s a -> s{_opOffSetXPixels = a})+ . mapping _Coerce++instance FromJSON OverlayPosition where+ parseJSON+ = withObject "OverlayPosition"+ (\ o ->+ OverlayPosition' <$>+ (o .:? "heightPixels") <*> (o .:? "offsetYPixels")+ <*> (o .:? "anchorCell")+ <*> (o .:? "widthPixels")+ <*> (o .:? "offsetXPixels"))++instance ToJSON OverlayPosition where+ toJSON OverlayPosition'{..}+ = object+ (catMaybes+ [("heightPixels" .=) <$> _opHeightPixels,+ ("offsetYPixels" .=) <$> _opOffSetYPixels,+ ("anchorCell" .=) <$> _opAnchorCell,+ ("widthPixels" .=) <$> _opWidthPixels,+ ("offsetXPixels" .=) <$> _opOffSetXPixels])++-- | Deletes the embedded object with the given ID.+--+-- /See:/ 'deleteEmbeddedObjectRequest' smart constructor.+newtype DeleteEmbeddedObjectRequest = DeleteEmbeddedObjectRequest'+ { _deorObjectId :: Maybe (Textual Int32)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteEmbeddedObjectRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'deorObjectId'+deleteEmbeddedObjectRequest+ :: DeleteEmbeddedObjectRequest+deleteEmbeddedObjectRequest =+ DeleteEmbeddedObjectRequest'+ { _deorObjectId = Nothing+ }++-- | The ID of the embedded object to delete.+deorObjectId :: Lens' DeleteEmbeddedObjectRequest (Maybe Int32)+deorObjectId+ = lens _deorObjectId (\ s a -> s{_deorObjectId = a})+ . mapping _Coerce++instance FromJSON DeleteEmbeddedObjectRequest where+ parseJSON+ = withObject "DeleteEmbeddedObjectRequest"+ (\ o ->+ DeleteEmbeddedObjectRequest' <$> (o .:? "objectId"))++instance ToJSON DeleteEmbeddedObjectRequest where+ toJSON DeleteEmbeddedObjectRequest'{..}+ = object+ (catMaybes [("objectId" .=) <$> _deorObjectId])++-- | Properties of a sheet.+--+-- /See:/ 'sheetProperties' smart constructor.+data SheetProperties = SheetProperties'+ { _sTabColor :: !(Maybe Color)+ , _sGridProperties :: !(Maybe GridProperties)+ , _sSheetType :: !(Maybe SheetPropertiesSheetType)+ , _sHidden :: !(Maybe Bool)+ , _sSheetId :: !(Maybe (Textual Int32))+ , _sTitle :: !(Maybe Text)+ , _sRightToLeft :: !(Maybe Bool)+ , _sIndex :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SheetProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sTabColor'+--+-- * 'sGridProperties'+--+-- * 'sSheetType'+--+-- * 'sHidden'+--+-- * 'sSheetId'+--+-- * 'sTitle'+--+-- * 'sRightToLeft'+--+-- * 'sIndex'+sheetProperties+ :: SheetProperties+sheetProperties =+ SheetProperties'+ { _sTabColor = Nothing+ , _sGridProperties = Nothing+ , _sSheetType = Nothing+ , _sHidden = Nothing+ , _sSheetId = Nothing+ , _sTitle = Nothing+ , _sRightToLeft = Nothing+ , _sIndex = Nothing+ }++-- | The color of the tab in the UI.+sTabColor :: Lens' SheetProperties (Maybe Color)+sTabColor+ = lens _sTabColor (\ s a -> s{_sTabColor = a})++-- | Additional properties of the sheet if this sheet is a grid. (If the+-- sheet is an object sheet, containing a chart or image, then this field+-- will be absent.) When writing it is an error to set any grid properties+-- on non-grid sheets.+sGridProperties :: Lens' SheetProperties (Maybe GridProperties)+sGridProperties+ = lens _sGridProperties+ (\ s a -> s{_sGridProperties = a})++-- | The type of sheet. Defaults to GRID. This field cannot be changed once+-- set.+sSheetType :: Lens' SheetProperties (Maybe SheetPropertiesSheetType)+sSheetType+ = lens _sSheetType (\ s a -> s{_sSheetType = a})++-- | True if the sheet is hidden in the UI, false if it\'s visible.+sHidden :: Lens' SheetProperties (Maybe Bool)+sHidden = lens _sHidden (\ s a -> s{_sHidden = a})++-- | The ID of the sheet. Must be non-negative. This field cannot be changed+-- once set.+sSheetId :: Lens' SheetProperties (Maybe Int32)+sSheetId+ = lens _sSheetId (\ s a -> s{_sSheetId = a}) .+ mapping _Coerce++-- | The name of the sheet.+sTitle :: Lens' SheetProperties (Maybe Text)+sTitle = lens _sTitle (\ s a -> s{_sTitle = a})++-- | True if the sheet is an RTL sheet instead of an LTR sheet.+sRightToLeft :: Lens' SheetProperties (Maybe Bool)+sRightToLeft+ = lens _sRightToLeft (\ s a -> s{_sRightToLeft = a})++-- | The index of the sheet within the spreadsheet. When adding or updating+-- sheet properties, if this field is excluded then the sheet will be added+-- or moved to the end of the sheet list.+sIndex :: Lens' SheetProperties (Maybe Int32)+sIndex+ = lens _sIndex (\ s a -> s{_sIndex = a}) .+ mapping _Coerce++instance FromJSON SheetProperties where+ parseJSON+ = withObject "SheetProperties"+ (\ o ->+ SheetProperties' <$>+ (o .:? "tabColor") <*> (o .:? "gridProperties") <*>+ (o .:? "sheetType")+ <*> (o .:? "hidden")+ <*> (o .:? "sheetId")+ <*> (o .:? "title")+ <*> (o .:? "rightToLeft")+ <*> (o .:? "index"))++instance ToJSON SheetProperties where+ toJSON SheetProperties'{..}+ = object+ (catMaybes+ [("tabColor" .=) <$> _sTabColor,+ ("gridProperties" .=) <$> _sGridProperties,+ ("sheetType" .=) <$> _sSheetType,+ ("hidden" .=) <$> _sHidden,+ ("sheetId" .=) <$> _sSheetId,+ ("title" .=) <$> _sTitle,+ ("rightToLeft" .=) <$> _sRightToLeft,+ ("index" .=) <$> _sIndex])++-- | The criteria for showing\/hiding values per column. The map\'s key is+-- the column index, and the value is the criteria for that column.+--+-- /See:/ 'filterViewCriteria' smart constructor.+newtype FilterViewCriteria = FilterViewCriteria'+ { _fvcAddtional :: HashMap Text FilterCriteria+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FilterViewCriteria' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fvcAddtional'+filterViewCriteria+ :: HashMap Text FilterCriteria -- ^ 'fvcAddtional'+ -> FilterViewCriteria+filterViewCriteria pFvcAddtional_ =+ FilterViewCriteria'+ { _fvcAddtional = _Coerce # pFvcAddtional_+ }++fvcAddtional :: Lens' FilterViewCriteria (HashMap Text FilterCriteria)+fvcAddtional+ = lens _fvcAddtional (\ s a -> s{_fvcAddtional = a})+ . _Coerce++instance FromJSON FilterViewCriteria where+ parseJSON+ = withObject "FilterViewCriteria"+ (\ o -> FilterViewCriteria' <$> (parseJSONObject o))++instance ToJSON FilterViewCriteria where+ toJSON = toJSON . _fvcAddtional++-- | The response when updating a range of values in a spreadsheet.+--+-- /See:/ 'batchUpdateValuesResponse' smart constructor.+data BatchUpdateValuesResponse = BatchUpdateValuesResponse'+ { _buvrTotalUpdatedColumns :: !(Maybe (Textual Int32))+ , _buvrResponses :: !(Maybe [UpdateValuesResponse])+ , _buvrSpreadsheetId :: !(Maybe Text)+ , _buvrTotalUpdatedSheets :: !(Maybe (Textual Int32))+ , _buvrTotalUpdatedCells :: !(Maybe (Textual Int32))+ , _buvrTotalUpdatedRows :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchUpdateValuesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'buvrTotalUpdatedColumns'+--+-- * 'buvrResponses'+--+-- * 'buvrSpreadsheetId'+--+-- * 'buvrTotalUpdatedSheets'+--+-- * 'buvrTotalUpdatedCells'+--+-- * 'buvrTotalUpdatedRows'+batchUpdateValuesResponse+ :: BatchUpdateValuesResponse+batchUpdateValuesResponse =+ BatchUpdateValuesResponse'+ { _buvrTotalUpdatedColumns = Nothing+ , _buvrResponses = Nothing+ , _buvrSpreadsheetId = Nothing+ , _buvrTotalUpdatedSheets = Nothing+ , _buvrTotalUpdatedCells = Nothing+ , _buvrTotalUpdatedRows = Nothing+ }++-- | The total number of columns where at least one cell in the column was+-- updated.+buvrTotalUpdatedColumns :: Lens' BatchUpdateValuesResponse (Maybe Int32)+buvrTotalUpdatedColumns+ = lens _buvrTotalUpdatedColumns+ (\ s a -> s{_buvrTotalUpdatedColumns = a})+ . mapping _Coerce++-- | One UpdateValuesResponse per requested range, in the same order as the+-- requests appeared.+buvrResponses :: Lens' BatchUpdateValuesResponse [UpdateValuesResponse]+buvrResponses+ = lens _buvrResponses+ (\ s a -> s{_buvrResponses = a})+ . _Default+ . _Coerce++-- | The spreadsheet the updates were applied to.+buvrSpreadsheetId :: Lens' BatchUpdateValuesResponse (Maybe Text)+buvrSpreadsheetId+ = lens _buvrSpreadsheetId+ (\ s a -> s{_buvrSpreadsheetId = a})++-- | The total number of sheets where at least one cell in the sheet was+-- updated.+buvrTotalUpdatedSheets :: Lens' BatchUpdateValuesResponse (Maybe Int32)+buvrTotalUpdatedSheets+ = lens _buvrTotalUpdatedSheets+ (\ s a -> s{_buvrTotalUpdatedSheets = a})+ . mapping _Coerce++-- | The total number of cells updated.+buvrTotalUpdatedCells :: Lens' BatchUpdateValuesResponse (Maybe Int32)+buvrTotalUpdatedCells+ = lens _buvrTotalUpdatedCells+ (\ s a -> s{_buvrTotalUpdatedCells = a})+ . mapping _Coerce++-- | The total number of rows where at least one cell in the row was updated.+buvrTotalUpdatedRows :: Lens' BatchUpdateValuesResponse (Maybe Int32)+buvrTotalUpdatedRows+ = lens _buvrTotalUpdatedRows+ (\ s a -> s{_buvrTotalUpdatedRows = a})+ . mapping _Coerce++instance FromJSON BatchUpdateValuesResponse where+ parseJSON+ = withObject "BatchUpdateValuesResponse"+ (\ o ->+ BatchUpdateValuesResponse' <$>+ (o .:? "totalUpdatedColumns") <*>+ (o .:? "responses" .!= mempty)+ <*> (o .:? "spreadsheetId")+ <*> (o .:? "totalUpdatedSheets")+ <*> (o .:? "totalUpdatedCells")+ <*> (o .:? "totalUpdatedRows"))++instance ToJSON BatchUpdateValuesResponse where+ toJSON BatchUpdateValuesResponse'{..}+ = object+ (catMaybes+ [("totalUpdatedColumns" .=) <$>+ _buvrTotalUpdatedColumns,+ ("responses" .=) <$> _buvrResponses,+ ("spreadsheetId" .=) <$> _buvrSpreadsheetId,+ ("totalUpdatedSheets" .=) <$>+ _buvrTotalUpdatedSheets,+ ("totalUpdatedCells" .=) <$> _buvrTotalUpdatedCells,+ ("totalUpdatedRows" .=) <$> _buvrTotalUpdatedRows])++-- | Updates properties of the sheet with the specified sheetId.+--+-- /See:/ 'updateSheetPropertiesRequest' smart constructor.+data UpdateSheetPropertiesRequest = UpdateSheetPropertiesRequest'+ { _usprFields :: !(Maybe FieldMask)+ , _usprProperties :: !(Maybe SheetProperties)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateSheetPropertiesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usprFields'+--+-- * 'usprProperties'+updateSheetPropertiesRequest+ :: UpdateSheetPropertiesRequest+updateSheetPropertiesRequest =+ UpdateSheetPropertiesRequest'+ { _usprFields = Nothing+ , _usprProperties = Nothing+ }++-- | The fields that should be updated. At least one field must be specified.+-- The root \`properties\` is implied and should not be specified. A single+-- \`\"*\"\` can be used as short-hand for listing every field.+usprFields :: Lens' UpdateSheetPropertiesRequest (Maybe FieldMask)+usprFields+ = lens _usprFields (\ s a -> s{_usprFields = a})++-- | The properties to update.+usprProperties :: Lens' UpdateSheetPropertiesRequest (Maybe SheetProperties)+usprProperties+ = lens _usprProperties+ (\ s a -> s{_usprProperties = a})++instance FromJSON UpdateSheetPropertiesRequest where+ parseJSON+ = withObject "UpdateSheetPropertiesRequest"+ (\ o ->+ UpdateSheetPropertiesRequest' <$>+ (o .:? "fields") <*> (o .:? "properties"))++instance ToJSON UpdateSheetPropertiesRequest where+ toJSON UpdateSheetPropertiesRequest'{..}+ = object+ (catMaybes+ [("fields" .=) <$> _usprFields,+ ("properties" .=) <$> _usprProperties])++-- | Resource that represents a spreadsheet.+--+-- /See:/ 'spreadsheet' smart constructor.+data Spreadsheet = Spreadsheet'+ { _sprSheets :: !(Maybe [Sheet])+ , _sprNamedRanges :: !(Maybe [NamedRange])+ , _sprSpreadsheetId :: !(Maybe Text)+ , _sprProperties :: !(Maybe SpreadsheetProperties)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Spreadsheet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sprSheets'+--+-- * 'sprNamedRanges'+--+-- * 'sprSpreadsheetId'+--+-- * 'sprProperties'+spreadsheet+ :: Spreadsheet+spreadsheet =+ Spreadsheet'+ { _sprSheets = Nothing+ , _sprNamedRanges = Nothing+ , _sprSpreadsheetId = Nothing+ , _sprProperties = Nothing+ }++-- | The sheets that are part of a spreadsheet.+sprSheets :: Lens' Spreadsheet [Sheet]+sprSheets+ = lens _sprSheets (\ s a -> s{_sprSheets = a}) .+ _Default+ . _Coerce++-- | The named ranges defined in a spreadsheet.+sprNamedRanges :: Lens' Spreadsheet [NamedRange]+sprNamedRanges+ = lens _sprNamedRanges+ (\ s a -> s{_sprNamedRanges = a})+ . _Default+ . _Coerce++-- | The ID of the spreadsheet. This field is read-only.+sprSpreadsheetId :: Lens' Spreadsheet (Maybe Text)+sprSpreadsheetId+ = lens _sprSpreadsheetId+ (\ s a -> s{_sprSpreadsheetId = a})++-- | Overall properties of a spreadsheet.+sprProperties :: Lens' Spreadsheet (Maybe SpreadsheetProperties)+sprProperties+ = lens _sprProperties+ (\ s a -> s{_sprProperties = a})++instance FromJSON Spreadsheet where+ parseJSON+ = withObject "Spreadsheet"+ (\ o ->+ Spreadsheet' <$>+ (o .:? "sheets" .!= mempty) <*>+ (o .:? "namedRanges" .!= mempty)+ <*> (o .:? "spreadsheetId")+ <*> (o .:? "properties"))++instance ToJSON Spreadsheet where+ toJSON Spreadsheet'{..}+ = object+ (catMaybes+ [("sheets" .=) <$> _sprSheets,+ ("namedRanges" .=) <$> _sprNamedRanges,+ ("spreadsheetId" .=) <$> _sprSpreadsheetId,+ ("properties" .=) <$> _sprProperties])++-- | Inserts rows or columns in a sheet at a particular index.+--+-- /See:/ 'insertDimensionRequest' smart constructor.+data InsertDimensionRequest = InsertDimensionRequest'+ { _idrRange :: !(Maybe DimensionRange)+ , _idrInheritFromBefore :: !(Maybe Bool)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InsertDimensionRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'idrRange'+--+-- * 'idrInheritFromBefore'+insertDimensionRequest+ :: InsertDimensionRequest+insertDimensionRequest =+ InsertDimensionRequest'+ { _idrRange = Nothing+ , _idrInheritFromBefore = Nothing+ }++-- | The dimensions to insert. Both the start and end indexes must be+-- bounded.+idrRange :: Lens' InsertDimensionRequest (Maybe DimensionRange)+idrRange = lens _idrRange (\ s a -> s{_idrRange = a})++-- | Whether dimension properties should be extended from the dimensions+-- before or after the newly inserted dimensions. True to inherit from the+-- dimensions before (in which case the start index must be greater than+-- 0), and false to inherit from the dimensions after. For example, if row+-- index 0 has red background and row index 1 has a green background, then+-- inserting 2 rows at index 1 can inherit either the green or red+-- background. If \`inheritFromBefore\` is true, the two new rows will be+-- red (because the row before the insertion point was red), whereas if+-- \`inheritFromBefore\` is false, the two new rows will be green (because+-- the row after the insertion point was green).+idrInheritFromBefore :: Lens' InsertDimensionRequest (Maybe Bool)+idrInheritFromBefore+ = lens _idrInheritFromBefore+ (\ s a -> s{_idrInheritFromBefore = a})++instance FromJSON InsertDimensionRequest where+ parseJSON+ = withObject "InsertDimensionRequest"+ (\ o ->+ InsertDimensionRequest' <$>+ (o .:? "range") <*> (o .:? "inheritFromBefore"))++instance ToJSON InsertDimensionRequest where+ toJSON InsertDimensionRequest'{..}+ = object+ (catMaybes+ [("range" .=) <$> _idrRange,+ ("inheritFromBefore" .=) <$> _idrInheritFromBefore])++-- | A single interpolation point on a gradient conditional format. These pin+-- the gradient color scale according to the color, type and value chosen.+--+-- /See:/ 'interpolationPoint' smart constructor.+data InterpolationPoint = InterpolationPoint'+ { _ipColor :: !(Maybe Color)+ , _ipValue :: !(Maybe Text)+ , _ipType :: !(Maybe InterpolationPointType)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InterpolationPoint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ipColor'+--+-- * 'ipValue'+--+-- * 'ipType'+interpolationPoint+ :: InterpolationPoint+interpolationPoint =+ InterpolationPoint'+ { _ipColor = Nothing+ , _ipValue = Nothing+ , _ipType = Nothing+ }++-- | The color this interpolation point should use.+ipColor :: Lens' InterpolationPoint (Maybe Color)+ipColor = lens _ipColor (\ s a -> s{_ipColor = a})++-- | The value this interpolation point uses. May be a formula. Unused if+-- type is MIN or MAX.+ipValue :: Lens' InterpolationPoint (Maybe Text)+ipValue = lens _ipValue (\ s a -> s{_ipValue = a})++-- | How the value should be interpreted.+ipType :: Lens' InterpolationPoint (Maybe InterpolationPointType)+ipType = lens _ipType (\ s a -> s{_ipType = a})++instance FromJSON InterpolationPoint where+ parseJSON+ = withObject "InterpolationPoint"+ (\ o ->+ InterpolationPoint' <$>+ (o .:? "color") <*> (o .:? "value") <*>+ (o .:? "type"))++instance ToJSON InterpolationPoint where+ toJSON InterpolationPoint'{..}+ = object+ (catMaybes+ [("color" .=) <$> _ipColor,+ ("value" .=) <$> _ipValue, ("type" .=) <$> _ipType])++-- | Data about a specific cell.+--+-- /See:/ 'cellData' smart constructor.+data CellData = CellData'+ { _cdTextFormatRuns :: !(Maybe [TextFormatRun])+ , _cdNote :: !(Maybe Text)+ , _cdUserEnteredValue :: !(Maybe ExtendedValue)+ , _cdUserEnteredFormat :: !(Maybe CellFormat)+ , _cdEffectiveFormat :: !(Maybe CellFormat)+ , _cdPivotTable :: !(Maybe PivotTable)+ , _cdFormattedValue :: !(Maybe Text)+ , _cdDataValidation :: !(Maybe DataValidationRule)+ , _cdHyperlink :: !(Maybe Text)+ , _cdEffectiveValue :: !(Maybe ExtendedValue)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CellData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdTextFormatRuns'+--+-- * 'cdNote'+--+-- * 'cdUserEnteredValue'+--+-- * 'cdUserEnteredFormat'+--+-- * 'cdEffectiveFormat'+--+-- * 'cdPivotTable'+--+-- * 'cdFormattedValue'+--+-- * 'cdDataValidation'+--+-- * 'cdHyperlink'+--+-- * 'cdEffectiveValue'+cellData+ :: CellData+cellData =+ CellData'+ { _cdTextFormatRuns = Nothing+ , _cdNote = Nothing+ , _cdUserEnteredValue = Nothing+ , _cdUserEnteredFormat = Nothing+ , _cdEffectiveFormat = Nothing+ , _cdPivotTable = Nothing+ , _cdFormattedValue = Nothing+ , _cdDataValidation = Nothing+ , _cdHyperlink = Nothing+ , _cdEffectiveValue = Nothing+ }++-- | Runs of rich text applied to subsections of the cell. Runs are only+-- valid on user entered strings, not formulas, bools, or numbers. Runs+-- start at specific indexes in the text and continue until the next run.+-- Properties of a run will continue unless explicitly changed in a+-- subsequent run (and properties of the first run will continue the+-- properties of the cell unless explicitly changed). When writing, the new+-- runs will overwrite any prior runs. When writing a new+-- user_entered_value, previous runs will be erased.+cdTextFormatRuns :: Lens' CellData [TextFormatRun]+cdTextFormatRuns+ = lens _cdTextFormatRuns+ (\ s a -> s{_cdTextFormatRuns = a})+ . _Default+ . _Coerce++-- | Any note on the cell.+cdNote :: Lens' CellData (Maybe Text)+cdNote = lens _cdNote (\ s a -> s{_cdNote = a})++-- | The value the user entered in the cell. e.g, \`1234\`, \`\'Hello\'\`, or+-- \`=NOW()\` Note: Dates, Times and DateTimes are represented as doubles+-- in serial number format.+cdUserEnteredValue :: Lens' CellData (Maybe ExtendedValue)+cdUserEnteredValue+ = lens _cdUserEnteredValue+ (\ s a -> s{_cdUserEnteredValue = a})++-- | The format the user entered for the cell. When writing, the new format+-- will be merged with the existing format.+cdUserEnteredFormat :: Lens' CellData (Maybe CellFormat)+cdUserEnteredFormat+ = lens _cdUserEnteredFormat+ (\ s a -> s{_cdUserEnteredFormat = a})++-- | The effective format being used by the cell. This includes the results+-- of applying any conditional formatting and, if the cell contains a+-- formula, the computed number format. If the effective format is the+-- default format, effective format will not be written. This field is+-- read-only.+cdEffectiveFormat :: Lens' CellData (Maybe CellFormat)+cdEffectiveFormat+ = lens _cdEffectiveFormat+ (\ s a -> s{_cdEffectiveFormat = a})++-- | A pivot table anchored at this cell. The size of pivot table itself is+-- computed dynamically based on its data, grouping, filters, values, etc.+-- Only the top-left cell of the pivot table contains the pivot table+-- definition. The other cells will contain the calculated values of the+-- results of the pivot in their effective_value fields.+cdPivotTable :: Lens' CellData (Maybe PivotTable)+cdPivotTable+ = lens _cdPivotTable (\ s a -> s{_cdPivotTable = a})++-- | The formatted value of the cell. This is the value as it\'s shown to the+-- user. This field is read-only.+cdFormattedValue :: Lens' CellData (Maybe Text)+cdFormattedValue+ = lens _cdFormattedValue+ (\ s a -> s{_cdFormattedValue = a})++-- | A data validation rule on the cell, if any. When writing, the new data+-- validation rule will overwrite any prior rule.+cdDataValidation :: Lens' CellData (Maybe DataValidationRule)+cdDataValidation+ = lens _cdDataValidation+ (\ s a -> s{_cdDataValidation = a})++-- | A hyperlink this cell points to, if any. This field is read-only. (To+-- set it, use a \`=HYPERLINK\` formula.)+cdHyperlink :: Lens' CellData (Maybe Text)+cdHyperlink+ = lens _cdHyperlink (\ s a -> s{_cdHyperlink = a})++-- | The effective value of the cell. For cells with formulas, this will be+-- the calculated value. For cells with literals, this will be the same as+-- the user_entered_value. This field is read-only.+cdEffectiveValue :: Lens' CellData (Maybe ExtendedValue)+cdEffectiveValue+ = lens _cdEffectiveValue+ (\ s a -> s{_cdEffectiveValue = a})++instance FromJSON CellData where+ parseJSON+ = withObject "CellData"+ (\ o ->+ CellData' <$>+ (o .:? "textFormatRuns" .!= mempty) <*>+ (o .:? "note")+ <*> (o .:? "userEnteredValue")+ <*> (o .:? "userEnteredFormat")+ <*> (o .:? "effectiveFormat")+ <*> (o .:? "pivotTable")+ <*> (o .:? "formattedValue")+ <*> (o .:? "dataValidation")+ <*> (o .:? "hyperlink")+ <*> (o .:? "effectiveValue"))++instance ToJSON CellData where+ toJSON CellData'{..}+ = object+ (catMaybes+ [("textFormatRuns" .=) <$> _cdTextFormatRuns,+ ("note" .=) <$> _cdNote,+ ("userEnteredValue" .=) <$> _cdUserEnteredValue,+ ("userEnteredFormat" .=) <$> _cdUserEnteredFormat,+ ("effectiveFormat" .=) <$> _cdEffectiveFormat,+ ("pivotTable" .=) <$> _cdPivotTable,+ ("formattedValue" .=) <$> _cdFormattedValue,+ ("dataValidation" .=) <$> _cdDataValidation,+ ("hyperlink" .=) <$> _cdHyperlink,+ ("effectiveValue" .=) <$> _cdEffectiveValue])++-- | Source ranges for a chart.+--+-- /See:/ 'chartSourceRange' smart constructor.+newtype ChartSourceRange = ChartSourceRange'+ { _csrSources :: Maybe [GridRange]+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChartSourceRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csrSources'+chartSourceRange+ :: ChartSourceRange+chartSourceRange =+ ChartSourceRange'+ { _csrSources = Nothing+ }++-- | The ranges of data for a series or domain. Exactly one dimension must+-- have a length of 1, and all sources in the list must have the same+-- dimension with length 1. The domain (if it exists) & all series must+-- have the same number of source ranges. If using more than one source+-- range, then the source range at a given offset must be contiguous across+-- the domain and series. For example, these are valid configurations:+-- domain sources: A1:A5 series1 sources: B1:B5 series2 sources: D6:D10+-- domain sources: A1:A5, C10:C12 series1 sources: B1:B5, D10:D12 series2+-- sources: C1:C5, E10:E12+csrSources :: Lens' ChartSourceRange [GridRange]+csrSources+ = lens _csrSources (\ s a -> s{_csrSources = a}) .+ _Default+ . _Coerce++instance FromJSON ChartSourceRange where+ parseJSON+ = withObject "ChartSourceRange"+ (\ o ->+ ChartSourceRange' <$> (o .:? "sources" .!= mempty))++instance ToJSON ChartSourceRange where+ toJSON ChartSourceRange'{..}+ = object (catMaybes [("sources" .=) <$> _csrSources])++-- | The result of adding a named range.+--+-- /See:/ 'addNamedRangeResponse' smart constructor.+newtype AddNamedRangeResponse = AddNamedRangeResponse'+ { _anrrNamedRange :: Maybe NamedRange+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddNamedRangeResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'anrrNamedRange'+addNamedRangeResponse+ :: AddNamedRangeResponse+addNamedRangeResponse =+ AddNamedRangeResponse'+ { _anrrNamedRange = Nothing+ }++-- | The named range to add.+anrrNamedRange :: Lens' AddNamedRangeResponse (Maybe NamedRange)+anrrNamedRange+ = lens _anrrNamedRange+ (\ s a -> s{_anrrNamedRange = a})++instance FromJSON AddNamedRangeResponse where+ parseJSON+ = withObject "AddNamedRangeResponse"+ (\ o ->+ AddNamedRangeResponse' <$> (o .:? "namedRange"))++instance ToJSON AddNamedRangeResponse where+ toJSON AddNamedRangeResponse'{..}+ = object+ (catMaybes [("namedRange" .=) <$> _anrrNamedRange])++-- | The result of adding a chart to a spreadsheet.+--+-- /See:/ 'addChartResponse' smart constructor.+newtype AddChartResponse = AddChartResponse'+ { _acrChart :: Maybe EmbeddedChart+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddChartResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'acrChart'+addChartResponse+ :: AddChartResponse+addChartResponse =+ AddChartResponse'+ { _acrChart = Nothing+ }++-- | The newly added chart.+acrChart :: Lens' AddChartResponse (Maybe EmbeddedChart)+acrChart = lens _acrChart (\ s a -> s{_acrChart = a})++instance FromJSON AddChartResponse where+ parseJSON+ = withObject "AddChartResponse"+ (\ o -> AddChartResponse' <$> (o .:? "chart"))++instance ToJSON AddChartResponse where+ toJSON AddChartResponse'{..}+ = object (catMaybes [("chart" .=) <$> _acrChart])++-- | Updates a chart\'s specifications. (This does not move or resize a+-- chart. To move or resize a chart, use+-- UpdateEmbeddedObjectPositionRequest.)+--+-- /See:/ 'updateChartSpecRequest' smart constructor.+data UpdateChartSpecRequest = UpdateChartSpecRequest'+ { _ucsrSpec :: !(Maybe ChartSpec)+ , _ucsrChartId :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateChartSpecRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ucsrSpec'+--+-- * 'ucsrChartId'+updateChartSpecRequest+ :: UpdateChartSpecRequest+updateChartSpecRequest =+ UpdateChartSpecRequest'+ { _ucsrSpec = Nothing+ , _ucsrChartId = Nothing+ }++-- | The specification to apply to the chart.+ucsrSpec :: Lens' UpdateChartSpecRequest (Maybe ChartSpec)+ucsrSpec = lens _ucsrSpec (\ s a -> s{_ucsrSpec = a})++-- | The ID of the chart to update.+ucsrChartId :: Lens' UpdateChartSpecRequest (Maybe Int32)+ucsrChartId+ = lens _ucsrChartId (\ s a -> s{_ucsrChartId = a}) .+ mapping _Coerce++instance FromJSON UpdateChartSpecRequest where+ parseJSON+ = withObject "UpdateChartSpecRequest"+ (\ o ->+ UpdateChartSpecRequest' <$>+ (o .:? "spec") <*> (o .:? "chartId"))++instance ToJSON UpdateChartSpecRequest where+ toJSON UpdateChartSpecRequest'{..}+ = object+ (catMaybes+ [("spec" .=) <$> _ucsrSpec,+ ("chartId" .=) <$> _ucsrChartId])++-- | Sets the basic filter associated with a sheet.+--+-- /See:/ 'setBasicFilterRequest' smart constructor.+newtype SetBasicFilterRequest = SetBasicFilterRequest'+ { _sbfrFilter :: Maybe BasicFilter+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SetBasicFilterRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sbfrFilter'+setBasicFilterRequest+ :: SetBasicFilterRequest+setBasicFilterRequest =+ SetBasicFilterRequest'+ { _sbfrFilter = Nothing+ }++-- | The filter to set.+sbfrFilter :: Lens' SetBasicFilterRequest (Maybe BasicFilter)+sbfrFilter+ = lens _sbfrFilter (\ s a -> s{_sbfrFilter = a})++instance FromJSON SetBasicFilterRequest where+ parseJSON+ = withObject "SetBasicFilterRequest"+ (\ o -> SetBasicFilterRequest' <$> (o .:? "filter"))++instance ToJSON SetBasicFilterRequest where+ toJSON SetBasicFilterRequest'{..}+ = object (catMaybes [("filter" .=) <$> _sbfrFilter])++-- | Properties of a grid.+--+-- /See:/ 'gridProperties' smart constructor.+data GridProperties = GridProperties'+ { _gpFrozenColumnCount :: !(Maybe (Textual Int32))+ , _gpColumnCount :: !(Maybe (Textual Int32))+ , _gpHideGridlines :: !(Maybe Bool)+ , _gpFrozenRowCount :: !(Maybe (Textual Int32))+ , _gpRowCount :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GridProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gpFrozenColumnCount'+--+-- * 'gpColumnCount'+--+-- * 'gpHideGridlines'+--+-- * 'gpFrozenRowCount'+--+-- * 'gpRowCount'+gridProperties+ :: GridProperties+gridProperties =+ GridProperties'+ { _gpFrozenColumnCount = Nothing+ , _gpColumnCount = Nothing+ , _gpHideGridlines = Nothing+ , _gpFrozenRowCount = Nothing+ , _gpRowCount = Nothing+ }++-- | The number of columns that are frozen in the grid.+gpFrozenColumnCount :: Lens' GridProperties (Maybe Int32)+gpFrozenColumnCount+ = lens _gpFrozenColumnCount+ (\ s a -> s{_gpFrozenColumnCount = a})+ . mapping _Coerce++-- | The number of columns in the grid.+gpColumnCount :: Lens' GridProperties (Maybe Int32)+gpColumnCount+ = lens _gpColumnCount+ (\ s a -> s{_gpColumnCount = a})+ . mapping _Coerce++-- | True if the grid isn\'t showing gridlines in the UI.+gpHideGridlines :: Lens' GridProperties (Maybe Bool)+gpHideGridlines+ = lens _gpHideGridlines+ (\ s a -> s{_gpHideGridlines = a})++-- | The number of rows that are frozen in the grid.+gpFrozenRowCount :: Lens' GridProperties (Maybe Int32)+gpFrozenRowCount+ = lens _gpFrozenRowCount+ (\ s a -> s{_gpFrozenRowCount = a})+ . mapping _Coerce++-- | The number of rows in the grid.+gpRowCount :: Lens' GridProperties (Maybe Int32)+gpRowCount+ = lens _gpRowCount (\ s a -> s{_gpRowCount = a}) .+ mapping _Coerce++instance FromJSON GridProperties where+ parseJSON+ = withObject "GridProperties"+ (\ o ->+ GridProperties' <$>+ (o .:? "frozenColumnCount") <*> (o .:? "columnCount")+ <*> (o .:? "hideGridlines")+ <*> (o .:? "frozenRowCount")+ <*> (o .:? "rowCount"))++instance ToJSON GridProperties where+ toJSON GridProperties'{..}+ = object+ (catMaybes+ [("frozenColumnCount" .=) <$> _gpFrozenColumnCount,+ ("columnCount" .=) <$> _gpColumnCount,+ ("hideGridlines" .=) <$> _gpHideGridlines,+ ("frozenRowCount" .=) <$> _gpFrozenRowCount,+ ("rowCount" .=) <$> _gpRowCount])++-- | The criteria for showing\/hiding values per column. The map\'s key is+-- the column index, and the value is the criteria for that column.+--+-- /See:/ 'basicFilterCriteria' smart constructor.+newtype BasicFilterCriteria = BasicFilterCriteria'+ { _bfcAddtional :: HashMap Text FilterCriteria+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BasicFilterCriteria' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bfcAddtional'+basicFilterCriteria+ :: HashMap Text FilterCriteria -- ^ 'bfcAddtional'+ -> BasicFilterCriteria+basicFilterCriteria pBfcAddtional_ =+ BasicFilterCriteria'+ { _bfcAddtional = _Coerce # pBfcAddtional_+ }++bfcAddtional :: Lens' BasicFilterCriteria (HashMap Text FilterCriteria)+bfcAddtional+ = lens _bfcAddtional (\ s a -> s{_bfcAddtional = a})+ . _Coerce++instance FromJSON BasicFilterCriteria where+ parseJSON+ = withObject "BasicFilterCriteria"+ (\ o -> BasicFilterCriteria' <$> (parseJSONObject o))++instance ToJSON BasicFilterCriteria where+ toJSON = toJSON . _bfcAddtional++-- | Updates properties of dimensions within the specified range.+--+-- /See:/ 'updateDimensionPropertiesRequest' smart constructor.+data UpdateDimensionPropertiesRequest = UpdateDimensionPropertiesRequest'+ { _udprRange :: !(Maybe DimensionRange)+ , _udprFields :: !(Maybe FieldMask)+ , _udprProperties :: !(Maybe DimensionProperties)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateDimensionPropertiesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udprRange'+--+-- * 'udprFields'+--+-- * 'udprProperties'+updateDimensionPropertiesRequest+ :: UpdateDimensionPropertiesRequest+updateDimensionPropertiesRequest =+ UpdateDimensionPropertiesRequest'+ { _udprRange = Nothing+ , _udprFields = Nothing+ , _udprProperties = Nothing+ }++-- | The rows or columns to update.+udprRange :: Lens' UpdateDimensionPropertiesRequest (Maybe DimensionRange)+udprRange+ = lens _udprRange (\ s a -> s{_udprRange = a})++-- | The fields that should be updated. At least one field must be specified.+-- The root \`properties\` is implied and should not be specified. A single+-- \`\"*\"\` can be used as short-hand for listing every field.+udprFields :: Lens' UpdateDimensionPropertiesRequest (Maybe FieldMask)+udprFields+ = lens _udprFields (\ s a -> s{_udprFields = a})++-- | Properties to update.+udprProperties :: Lens' UpdateDimensionPropertiesRequest (Maybe DimensionProperties)+udprProperties+ = lens _udprProperties+ (\ s a -> s{_udprProperties = a})++instance FromJSON UpdateDimensionPropertiesRequest+ where+ parseJSON+ = withObject "UpdateDimensionPropertiesRequest"+ (\ o ->+ UpdateDimensionPropertiesRequest' <$>+ (o .:? "range") <*> (o .:? "fields") <*>+ (o .:? "properties"))++instance ToJSON UpdateDimensionPropertiesRequest+ where+ toJSON UpdateDimensionPropertiesRequest'{..}+ = object+ (catMaybes+ [("range" .=) <$> _udprRange,+ ("fields" .=) <$> _udprFields,+ ("properties" .=) <$> _udprProperties])++-- | An optional mapping of filters per source column offset. The filters+-- will be applied before aggregating data into the pivot table. The map\'s+-- key is the column offset of the source range that you want to filter,+-- and the value is the criteria for that column. For example, if the+-- source was \`C10:E15\`, a key of \`0\` will have the filter for column+-- \`C\`, whereas the key \`1\` is for column \`D\`.+--+-- /See:/ 'pivotTableCriteria' smart constructor.+newtype PivotTableCriteria = PivotTableCriteria'+ { _ptcAddtional :: HashMap Text PivotFilterCriteria+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PivotTableCriteria' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ptcAddtional'+pivotTableCriteria+ :: HashMap Text PivotFilterCriteria -- ^ 'ptcAddtional'+ -> PivotTableCriteria+pivotTableCriteria pPtcAddtional_ =+ PivotTableCriteria'+ { _ptcAddtional = _Coerce # pPtcAddtional_+ }++ptcAddtional :: Lens' PivotTableCriteria (HashMap Text PivotFilterCriteria)+ptcAddtional+ = lens _ptcAddtional (\ s a -> s{_ptcAddtional = a})+ . _Coerce++instance FromJSON PivotTableCriteria where+ parseJSON+ = withObject "PivotTableCriteria"+ (\ o -> PivotTableCriteria' <$> (parseJSONObject o))++instance ToJSON PivotTableCriteria where+ toJSON = toJSON . _ptcAddtional++-- | Fills in more data based on existing data.+--+-- /See:/ 'autoFillRequest' smart constructor.+data AutoFillRequest = AutoFillRequest'+ { _afrSourceAndDestination :: !(Maybe SourceAndDestination)+ , _afrUseAlternateSeries :: !(Maybe Bool)+ , _afrRange :: !(Maybe GridRange)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoFillRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'afrSourceAndDestination'+--+-- * 'afrUseAlternateSeries'+--+-- * 'afrRange'+autoFillRequest+ :: AutoFillRequest+autoFillRequest =+ AutoFillRequest'+ { _afrSourceAndDestination = Nothing+ , _afrUseAlternateSeries = Nothing+ , _afrRange = Nothing+ }++-- | The source and destination areas to autofill. This explicitly lists the+-- source of the autofill and where to extend that data.+afrSourceAndDestination :: Lens' AutoFillRequest (Maybe SourceAndDestination)+afrSourceAndDestination+ = lens _afrSourceAndDestination+ (\ s a -> s{_afrSourceAndDestination = a})++-- | True if we should generate data with the \"alternate\" series. This+-- differs based on the type and amount of source data.+afrUseAlternateSeries :: Lens' AutoFillRequest (Maybe Bool)+afrUseAlternateSeries+ = lens _afrUseAlternateSeries+ (\ s a -> s{_afrUseAlternateSeries = a})++-- | The range to autofill. This will examine the range and detect the+-- location that has data and automatically fill that data in to the rest+-- of the range.+afrRange :: Lens' AutoFillRequest (Maybe GridRange)+afrRange = lens _afrRange (\ s a -> s{_afrRange = a})++instance FromJSON AutoFillRequest where+ parseJSON+ = withObject "AutoFillRequest"+ (\ o ->+ AutoFillRequest' <$>+ (o .:? "sourceAndDestination") <*>+ (o .:? "useAlternateSeries")+ <*> (o .:? "range"))++instance ToJSON AutoFillRequest where+ toJSON AutoFillRequest'{..}+ = object+ (catMaybes+ [("sourceAndDestination" .=) <$>+ _afrSourceAndDestination,+ ("useAlternateSeries" .=) <$> _afrUseAlternateSeries,+ ("range" .=) <$> _afrRange])++-- | Duplicates the contents of a sheet.+--+-- /See:/ 'duplicateSheetRequest' smart constructor.+data DuplicateSheetRequest = DuplicateSheetRequest'+ { _dsrNewSheetName :: !(Maybe Text)+ , _dsrInsertSheetIndex :: !(Maybe (Textual Int32))+ , _dsrSourceSheetId :: !(Maybe (Textual Int32))+ , _dsrNewSheetId :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DuplicateSheetRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsrNewSheetName'+--+-- * 'dsrInsertSheetIndex'+--+-- * 'dsrSourceSheetId'+--+-- * 'dsrNewSheetId'+duplicateSheetRequest+ :: DuplicateSheetRequest+duplicateSheetRequest =+ DuplicateSheetRequest'+ { _dsrNewSheetName = Nothing+ , _dsrInsertSheetIndex = Nothing+ , _dsrSourceSheetId = Nothing+ , _dsrNewSheetId = Nothing+ }++-- | The name of the new sheet. If empty, a new name is chosen for you.+dsrNewSheetName :: Lens' DuplicateSheetRequest (Maybe Text)+dsrNewSheetName+ = lens _dsrNewSheetName+ (\ s a -> s{_dsrNewSheetName = a})++-- | The zero-based index where the new sheet should be inserted. The index+-- of all sheets after this are incremented.+dsrInsertSheetIndex :: Lens' DuplicateSheetRequest (Maybe Int32)+dsrInsertSheetIndex+ = lens _dsrInsertSheetIndex+ (\ s a -> s{_dsrInsertSheetIndex = a})+ . mapping _Coerce++-- | The sheet to duplicate.+dsrSourceSheetId :: Lens' DuplicateSheetRequest (Maybe Int32)+dsrSourceSheetId+ = lens _dsrSourceSheetId+ (\ s a -> s{_dsrSourceSheetId = a})+ . mapping _Coerce++-- | If set, the ID of the new sheet. If not set, an ID is chosen. If set,+-- the ID must not conflict with any existing sheet ID. If set, it must be+-- non-negative.+dsrNewSheetId :: Lens' DuplicateSheetRequest (Maybe Int32)+dsrNewSheetId+ = lens _dsrNewSheetId+ (\ s a -> s{_dsrNewSheetId = a})+ . mapping _Coerce++instance FromJSON DuplicateSheetRequest where+ parseJSON+ = withObject "DuplicateSheetRequest"+ (\ o ->+ DuplicateSheetRequest' <$>+ (o .:? "newSheetName") <*> (o .:? "insertSheetIndex")+ <*> (o .:? "sourceSheetId")+ <*> (o .:? "newSheetId"))++instance ToJSON DuplicateSheetRequest where+ toJSON DuplicateSheetRequest'{..}+ = object+ (catMaybes+ [("newSheetName" .=) <$> _dsrNewSheetName,+ ("insertSheetIndex" .=) <$> _dsrInsertSheetIndex,+ ("sourceSheetId" .=) <$> _dsrSourceSheetId,+ ("newSheetId" .=) <$> _dsrNewSheetId])++-- | The result of a filter view being duplicated.+--+-- /See:/ 'duplicateFilterViewResponse' smart constructor.+newtype DuplicateFilterViewResponse = DuplicateFilterViewResponse'+ { _dfvrFilter :: Maybe FilterView+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DuplicateFilterViewResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfvrFilter'+duplicateFilterViewResponse+ :: DuplicateFilterViewResponse+duplicateFilterViewResponse =+ DuplicateFilterViewResponse'+ { _dfvrFilter = Nothing+ }++-- | The newly created filter.+dfvrFilter :: Lens' DuplicateFilterViewResponse (Maybe FilterView)+dfvrFilter+ = lens _dfvrFilter (\ s a -> s{_dfvrFilter = a})++instance FromJSON DuplicateFilterViewResponse where+ parseJSON+ = withObject "DuplicateFilterViewResponse"+ (\ o ->+ DuplicateFilterViewResponse' <$> (o .:? "filter"))++instance ToJSON DuplicateFilterViewResponse where+ toJSON DuplicateFilterViewResponse'{..}+ = object (catMaybes [("filter" .=) <$> _dfvrFilter])++-- | The request for updating more than one range of values in a spreadsheet.+--+-- /See:/ 'batchUpdateValuesRequest' smart constructor.+data BatchUpdateValuesRequest = BatchUpdateValuesRequest'+ { _buvrData :: !(Maybe [ValueRange])+ , _buvrValueInputOption :: !(Maybe BatchUpdateValuesRequestValueInputOption)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchUpdateValuesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'buvrData'+--+-- * 'buvrValueInputOption'+batchUpdateValuesRequest+ :: BatchUpdateValuesRequest+batchUpdateValuesRequest =+ BatchUpdateValuesRequest'+ { _buvrData = Nothing+ , _buvrValueInputOption = Nothing+ }++-- | The new values to apply to the spreadsheet.+buvrData :: Lens' BatchUpdateValuesRequest [ValueRange]+buvrData+ = lens _buvrData (\ s a -> s{_buvrData = a}) .+ _Default+ . _Coerce++-- | How the input data should be interpreted.+buvrValueInputOption :: Lens' BatchUpdateValuesRequest (Maybe BatchUpdateValuesRequestValueInputOption)+buvrValueInputOption+ = lens _buvrValueInputOption+ (\ s a -> s{_buvrValueInputOption = a})++instance FromJSON BatchUpdateValuesRequest where+ parseJSON+ = withObject "BatchUpdateValuesRequest"+ (\ o ->+ BatchUpdateValuesRequest' <$>+ (o .:? "data" .!= mempty) <*>+ (o .:? "valueInputOption"))++instance ToJSON BatchUpdateValuesRequest where+ toJSON BatchUpdateValuesRequest'{..}+ = object+ (catMaybes+ [("data" .=) <$> _buvrData,+ ("valueInputOption" .=) <$> _buvrValueInputOption])++-- | Adds a chart to a sheet in the spreadsheet.+--+-- /See:/ 'addChartRequest' smart constructor.+newtype AddChartRequest = AddChartRequest'+ { _aChart :: Maybe EmbeddedChart+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddChartRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aChart'+addChartRequest+ :: AddChartRequest+addChartRequest =+ AddChartRequest'+ { _aChart = Nothing+ }++-- | The chart that should be added to the spreadsheet, including the+-- position where it should be placed.+aChart :: Lens' AddChartRequest (Maybe EmbeddedChart)+aChart = lens _aChart (\ s a -> s{_aChart = a})++instance FromJSON AddChartRequest where+ parseJSON+ = withObject "AddChartRequest"+ (\ o -> AddChartRequest' <$> (o .:? "chart"))++instance ToJSON AddChartRequest where+ toJSON AddChartRequest'{..}+ = object (catMaybes [("chart" .=) <$> _aChart])++-- | A named range.+--+-- /See:/ 'namedRange' smart constructor.+data NamedRange = NamedRange'+ { _nrNamedRangeId :: !(Maybe Text)+ , _nrName :: !(Maybe Text)+ , _nrRange :: !(Maybe GridRange)+ } 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:+--+-- * 'nrNamedRangeId'+--+-- * 'nrName'+--+-- * 'nrRange'+namedRange+ :: NamedRange+namedRange =+ NamedRange'+ { _nrNamedRangeId = Nothing+ , _nrName = Nothing+ , _nrRange = Nothing+ }++-- | The ID of the named range.+nrNamedRangeId :: Lens' NamedRange (Maybe Text)+nrNamedRangeId+ = lens _nrNamedRangeId+ (\ s a -> s{_nrNamedRangeId = a})++-- | The name of the named range.+nrName :: Lens' NamedRange (Maybe Text)+nrName = lens _nrName (\ s a -> s{_nrName = a})++-- | The range this represents.+nrRange :: Lens' NamedRange (Maybe GridRange)+nrRange = lens _nrRange (\ s a -> s{_nrRange = a})++instance FromJSON NamedRange where+ parseJSON+ = withObject "NamedRange"+ (\ o ->+ NamedRange' <$>+ (o .:? "namedRangeId") <*> (o .:? "name") <*>+ (o .:? "range"))++instance ToJSON NamedRange where+ toJSON NamedRange'{..}+ = object+ (catMaybes+ [("namedRangeId" .=) <$> _nrNamedRangeId,+ ("name" .=) <$> _nrName, ("range" .=) <$> _nrRange])++-- | Merges all cells in the range.+--+-- /See:/ 'mergeCellsRequest' smart constructor.+data MergeCellsRequest = MergeCellsRequest'+ { _mcrMergeType :: !(Maybe MergeCellsRequestMergeType)+ , _mcrRange :: !(Maybe GridRange)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MergeCellsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mcrMergeType'+--+-- * 'mcrRange'+mergeCellsRequest+ :: MergeCellsRequest+mergeCellsRequest =+ MergeCellsRequest'+ { _mcrMergeType = Nothing+ , _mcrRange = Nothing+ }++-- | How the cells should be merged.+mcrMergeType :: Lens' MergeCellsRequest (Maybe MergeCellsRequestMergeType)+mcrMergeType+ = lens _mcrMergeType (\ s a -> s{_mcrMergeType = a})++-- | The range of cells to merge.+mcrRange :: Lens' MergeCellsRequest (Maybe GridRange)+mcrRange = lens _mcrRange (\ s a -> s{_mcrRange = a})++instance FromJSON MergeCellsRequest where+ parseJSON+ = withObject "MergeCellsRequest"+ (\ o ->+ MergeCellsRequest' <$>+ (o .:? "mergeType") <*> (o .:? "range"))++instance ToJSON MergeCellsRequest where+ toJSON MergeCellsRequest'{..}+ = object+ (catMaybes+ [("mergeType" .=) <$> _mcrMergeType,+ ("range" .=) <$> _mcrRange])++-- | A border along a cell.+--+-- /See:/ 'bOrder' smart constructor.+data BOrder = BOrder'+ { _boStyle :: !(Maybe BOrderStyle)+ , _boColor :: !(Maybe Color)+ , _boWidth :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BOrder' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'boStyle'+--+-- * 'boColor'+--+-- * 'boWidth'+bOrder+ :: BOrder+bOrder =+ BOrder'+ { _boStyle = Nothing+ , _boColor = Nothing+ , _boWidth = Nothing+ }++-- | The style of the border.+boStyle :: Lens' BOrder (Maybe BOrderStyle)+boStyle = lens _boStyle (\ s a -> s{_boStyle = a})++-- | The color of the border.+boColor :: Lens' BOrder (Maybe Color)+boColor = lens _boColor (\ s a -> s{_boColor = a})++-- | The width of the border, in pixels. Border widths must be between 0 and+-- 3 pixels, inclusive.+boWidth :: Lens' BOrder (Maybe Int32)+boWidth+ = lens _boWidth (\ s a -> s{_boWidth = a}) .+ mapping _Coerce++instance FromJSON BOrder where+ parseJSON+ = withObject "BOrder"+ (\ o ->+ BOrder' <$>+ (o .:? "style") <*> (o .:? "color") <*>+ (o .:? "width"))++instance ToJSON BOrder where+ toJSON BOrder'{..}+ = object+ (catMaybes+ [("style" .=) <$> _boStyle,+ ("color" .=) <$> _boColor,+ ("width" .=) <$> _boWidth])++-- | The kinds of value that a cell in a spreadsheet can have.+--+-- /See:/ 'extendedValue' smart constructor.+data ExtendedValue = ExtendedValue'+ { _evBoolValue :: !(Maybe Bool)+ , _evNumberValue :: !(Maybe (Textual Double))+ , _evErrorValue :: !(Maybe ErrorValue)+ , _evStringValue :: !(Maybe Text)+ , _evFormulaValue :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ExtendedValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'evBoolValue'+--+-- * 'evNumberValue'+--+-- * 'evErrorValue'+--+-- * 'evStringValue'+--+-- * 'evFormulaValue'+extendedValue+ :: ExtendedValue+extendedValue =+ ExtendedValue'+ { _evBoolValue = Nothing+ , _evNumberValue = Nothing+ , _evErrorValue = Nothing+ , _evStringValue = Nothing+ , _evFormulaValue = Nothing+ }++-- | Represents a boolean value.+evBoolValue :: Lens' ExtendedValue (Maybe Bool)+evBoolValue+ = lens _evBoolValue (\ s a -> s{_evBoolValue = a})++-- | Represents a double value. Note: Dates, Times and DateTimes are+-- represented as doubles in \"serial number\" format.+evNumberValue :: Lens' ExtendedValue (Maybe Double)+evNumberValue+ = lens _evNumberValue+ (\ s a -> s{_evNumberValue = a})+ . mapping _Coerce++-- | Represents an error. This field is read-only.+evErrorValue :: Lens' ExtendedValue (Maybe ErrorValue)+evErrorValue+ = lens _evErrorValue (\ s a -> s{_evErrorValue = a})++-- | Represents a string value. Leading single quotes are not included. For+-- example, if the user typed \`\'123\` into the UI, this would be+-- represented as a \`stringValue\` of \`\"123\"\`.+evStringValue :: Lens' ExtendedValue (Maybe Text)+evStringValue+ = lens _evStringValue+ (\ s a -> s{_evStringValue = a})++-- | Represents a formula.+evFormulaValue :: Lens' ExtendedValue (Maybe Text)+evFormulaValue+ = lens _evFormulaValue+ (\ s a -> s{_evFormulaValue = a})++instance FromJSON ExtendedValue where+ parseJSON+ = withObject "ExtendedValue"+ (\ o ->+ ExtendedValue' <$>+ (o .:? "boolValue") <*> (o .:? "numberValue") <*>+ (o .:? "errorValue")+ <*> (o .:? "stringValue")+ <*> (o .:? "formulaValue"))++instance ToJSON ExtendedValue where+ toJSON ExtendedValue'{..}+ = object+ (catMaybes+ [("boolValue" .=) <$> _evBoolValue,+ ("numberValue" .=) <$> _evNumberValue,+ ("errorValue" .=) <$> _evErrorValue,+ ("stringValue" .=) <$> _evStringValue,+ ("formulaValue" .=) <$> _evFormulaValue])++-- | Adds a named range to the spreadsheet.+--+-- /See:/ 'addNamedRangeRequest' smart constructor.+newtype AddNamedRangeRequest = AddNamedRangeRequest'+ { _aNamedRange :: Maybe NamedRange+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddNamedRangeRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aNamedRange'+addNamedRangeRequest+ :: AddNamedRangeRequest+addNamedRangeRequest =+ AddNamedRangeRequest'+ { _aNamedRange = Nothing+ }++-- | The named range to add. If a non-empty namedRangeId is specified, the+-- named range will use that ID. (It is an error to specify the ID of a+-- named range that already exists.)+aNamedRange :: Lens' AddNamedRangeRequest (Maybe NamedRange)+aNamedRange+ = lens _aNamedRange (\ s a -> s{_aNamedRange = a})++instance FromJSON AddNamedRangeRequest where+ parseJSON+ = withObject "AddNamedRangeRequest"+ (\ o ->+ AddNamedRangeRequest' <$> (o .:? "namedRange"))++instance ToJSON AddNamedRangeRequest where+ toJSON AddNamedRangeRequest'{..}+ = object+ (catMaybes [("namedRange" .=) <$> _aNamedRange])++-- | Criteria for showing\/hiding rows in a pivot table.+--+-- /See:/ 'pivotFilterCriteria' smart constructor.+newtype PivotFilterCriteria = PivotFilterCriteria'+ { _pfcVisibleValues :: Maybe [Text]+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PivotFilterCriteria' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pfcVisibleValues'+pivotFilterCriteria+ :: PivotFilterCriteria+pivotFilterCriteria =+ PivotFilterCriteria'+ { _pfcVisibleValues = Nothing+ }++-- | Values that should be included. Values not listed here are excluded.+pfcVisibleValues :: Lens' PivotFilterCriteria [Text]+pfcVisibleValues+ = lens _pfcVisibleValues+ (\ s a -> s{_pfcVisibleValues = a})+ . _Default+ . _Coerce++instance FromJSON PivotFilterCriteria where+ parseJSON+ = withObject "PivotFilterCriteria"+ (\ o ->+ PivotFilterCriteria' <$>+ (o .:? "visibleValues" .!= mempty))++instance ToJSON PivotFilterCriteria where+ toJSON PivotFilterCriteria'{..}+ = object+ (catMaybes+ [("visibleValues" .=) <$> _pfcVisibleValues])++-- | A range along a single dimension on a sheet. All indexes are zero-based.+-- Indexes are half open: the start index is inclusive and the end index is+-- exclusive. Missing indexes indicate the range is unbounded on that side.+--+-- /See:/ 'dimensionRange' smart constructor.+data DimensionRange = DimensionRange'+ { _drDimension :: !(Maybe DimensionRangeDimension)+ , _drEndIndex :: !(Maybe (Textual Int32))+ , _drSheetId :: !(Maybe (Textual Int32))+ , _drStartIndex :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DimensionRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drDimension'+--+-- * 'drEndIndex'+--+-- * 'drSheetId'+--+-- * 'drStartIndex'+dimensionRange+ :: DimensionRange+dimensionRange =+ DimensionRange'+ { _drDimension = Nothing+ , _drEndIndex = Nothing+ , _drSheetId = Nothing+ , _drStartIndex = Nothing+ }++-- | The dimension of the span.+drDimension :: Lens' DimensionRange (Maybe DimensionRangeDimension)+drDimension+ = lens _drDimension (\ s a -> s{_drDimension = a})++-- | The end (exclusive) of the span, or not set if unbounded.+drEndIndex :: Lens' DimensionRange (Maybe Int32)+drEndIndex+ = lens _drEndIndex (\ s a -> s{_drEndIndex = a}) .+ mapping _Coerce++-- | The sheet this span is on.+drSheetId :: Lens' DimensionRange (Maybe Int32)+drSheetId+ = lens _drSheetId (\ s a -> s{_drSheetId = a}) .+ mapping _Coerce++-- | The start (inclusive) of the span, or not set if unbounded.+drStartIndex :: Lens' DimensionRange (Maybe Int32)+drStartIndex+ = lens _drStartIndex (\ s a -> s{_drStartIndex = a})+ . mapping _Coerce++instance FromJSON DimensionRange where+ parseJSON+ = withObject "DimensionRange"+ (\ o ->+ DimensionRange' <$>+ (o .:? "dimension") <*> (o .:? "endIndex") <*>+ (o .:? "sheetId")+ <*> (o .:? "startIndex"))++instance ToJSON DimensionRange where+ toJSON DimensionRange'{..}+ = object+ (catMaybes+ [("dimension" .=) <$> _drDimension,+ ("endIndex" .=) <$> _drEndIndex,+ ("sheetId" .=) <$> _drSheetId,+ ("startIndex" .=) <$> _drStartIndex])++-- | Updates properties of a spreadsheet.+--+-- /See:/ 'updateSpreadsheetPropertiesRequest' smart constructor.+data UpdateSpreadsheetPropertiesRequest = UpdateSpreadsheetPropertiesRequest'+ { _uFields :: !(Maybe FieldMask)+ , _uProperties :: !(Maybe SpreadsheetProperties)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateSpreadsheetPropertiesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uFields'+--+-- * 'uProperties'+updateSpreadsheetPropertiesRequest+ :: UpdateSpreadsheetPropertiesRequest+updateSpreadsheetPropertiesRequest =+ UpdateSpreadsheetPropertiesRequest'+ { _uFields = Nothing+ , _uProperties = Nothing+ }++-- | The fields that should be updated. At least one field must be specified.+-- The root \'properties\' is implied and should not be specified. A single+-- \`\"*\"\` can be used as short-hand for listing every field.+uFields :: Lens' UpdateSpreadsheetPropertiesRequest (Maybe FieldMask)+uFields = lens _uFields (\ s a -> s{_uFields = a})++-- | The properties to update.+uProperties :: Lens' UpdateSpreadsheetPropertiesRequest (Maybe SpreadsheetProperties)+uProperties+ = lens _uProperties (\ s a -> s{_uProperties = a})++instance FromJSON UpdateSpreadsheetPropertiesRequest+ where+ parseJSON+ = withObject "UpdateSpreadsheetPropertiesRequest"+ (\ o ->+ UpdateSpreadsheetPropertiesRequest' <$>+ (o .:? "fields") <*> (o .:? "properties"))++instance ToJSON UpdateSpreadsheetPropertiesRequest+ where+ toJSON UpdateSpreadsheetPropertiesRequest'{..}+ = object+ (catMaybes+ [("fields" .=) <$> _uFields,+ ("properties" .=) <$> _uProperties])++-- | The result of adding a new protected range.+--+-- /See:/ 'addProtectedRangeResponse' smart constructor.+newtype AddProtectedRangeResponse = AddProtectedRangeResponse'+ { _aProtectedRange :: Maybe ProtectedRange+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddProtectedRangeResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aProtectedRange'+addProtectedRangeResponse+ :: AddProtectedRangeResponse+addProtectedRangeResponse =+ AddProtectedRangeResponse'+ { _aProtectedRange = Nothing+ }++-- | The newly added protected range.+aProtectedRange :: Lens' AddProtectedRangeResponse (Maybe ProtectedRange)+aProtectedRange+ = lens _aProtectedRange+ (\ s a -> s{_aProtectedRange = a})++instance FromJSON AddProtectedRangeResponse where+ parseJSON+ = withObject "AddProtectedRangeResponse"+ (\ o ->+ AddProtectedRangeResponse' <$>+ (o .:? "protectedRange"))++instance ToJSON AddProtectedRangeResponse where+ toJSON AddProtectedRangeResponse'{..}+ = object+ (catMaybes+ [("protectedRange" .=) <$> _aProtectedRange])++-- | Appends rows or columns to the end of a sheet.+--+-- /See:/ 'appendDimensionRequest' smart constructor.+data AppendDimensionRequest = AppendDimensionRequest'+ { _adrLength :: !(Maybe (Textual Int32))+ , _adrDimension :: !(Maybe AppendDimensionRequestDimension)+ , _adrSheetId :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AppendDimensionRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'adrLength'+--+-- * 'adrDimension'+--+-- * 'adrSheetId'+appendDimensionRequest+ :: AppendDimensionRequest+appendDimensionRequest =+ AppendDimensionRequest'+ { _adrLength = Nothing+ , _adrDimension = Nothing+ , _adrSheetId = Nothing+ }++-- | The number of rows or columns to append.+adrLength :: Lens' AppendDimensionRequest (Maybe Int32)+adrLength+ = lens _adrLength (\ s a -> s{_adrLength = a}) .+ mapping _Coerce++-- | Whether rows or columns should be appended.+adrDimension :: Lens' AppendDimensionRequest (Maybe AppendDimensionRequestDimension)+adrDimension+ = lens _adrDimension (\ s a -> s{_adrDimension = a})++-- | The sheet to append rows or columns to.+adrSheetId :: Lens' AppendDimensionRequest (Maybe Int32)+adrSheetId+ = lens _adrSheetId (\ s a -> s{_adrSheetId = a}) .+ mapping _Coerce++instance FromJSON AppendDimensionRequest where+ parseJSON+ = withObject "AppendDimensionRequest"+ (\ o ->+ AppendDimensionRequest' <$>+ (o .:? "length") <*> (o .:? "dimension") <*>+ (o .:? "sheetId"))++instance ToJSON AppendDimensionRequest where+ toJSON AppendDimensionRequest'{..}+ = object+ (catMaybes+ [("length" .=) <$> _adrLength,+ ("dimension" .=) <$> _adrDimension,+ ("sheetId" .=) <$> _adrSheetId])++-- | The definition of how a value in a pivot table should be calculated.+--+-- /See:/ 'pivotValue' smart constructor.+data PivotValue = PivotValue'+ { _pvSourceColumnOffSet :: !(Maybe (Textual Int32))+ , _pvFormula :: !(Maybe Text)+ , _pvName :: !(Maybe Text)+ , _pvSummarizeFunction :: !(Maybe PivotValueSummarizeFunction)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PivotValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pvSourceColumnOffSet'+--+-- * 'pvFormula'+--+-- * 'pvName'+--+-- * 'pvSummarizeFunction'+pivotValue+ :: PivotValue+pivotValue =+ PivotValue'+ { _pvSourceColumnOffSet = Nothing+ , _pvFormula = Nothing+ , _pvName = Nothing+ , _pvSummarizeFunction = Nothing+ }++-- | The column offset of the source range that this value reads from. For+-- example, if the source was \`C10:E15\`, a \`sourceColumnOffset\` of+-- \`0\` means this value refers to column \`C\`, whereas the offset \`1\`+-- would refer to column \`D\`.+pvSourceColumnOffSet :: Lens' PivotValue (Maybe Int32)+pvSourceColumnOffSet+ = lens _pvSourceColumnOffSet+ (\ s a -> s{_pvSourceColumnOffSet = a})+ . mapping _Coerce++-- | A custom formula to calculate the value. The formula must start with an+-- \`=\` character.+pvFormula :: Lens' PivotValue (Maybe Text)+pvFormula+ = lens _pvFormula (\ s a -> s{_pvFormula = a})++-- | A name to use for the value. This is only used if formula was set.+-- Otherwise, the column name is used.+pvName :: Lens' PivotValue (Maybe Text)+pvName = lens _pvName (\ s a -> s{_pvName = a})++-- | A function to summarize the value. If formula is set, the only supported+-- values are SUM and CUSTOM. If sourceColumnOffset is set, then \`CUSTOM\`+-- is not supported.+pvSummarizeFunction :: Lens' PivotValue (Maybe PivotValueSummarizeFunction)+pvSummarizeFunction+ = lens _pvSummarizeFunction+ (\ s a -> s{_pvSummarizeFunction = a})++instance FromJSON PivotValue where+ parseJSON+ = withObject "PivotValue"+ (\ o ->+ PivotValue' <$>+ (o .:? "sourceColumnOffset") <*> (o .:? "formula")+ <*> (o .:? "name")+ <*> (o .:? "summarizeFunction"))++instance ToJSON PivotValue where+ toJSON PivotValue'{..}+ = object+ (catMaybes+ [("sourceColumnOffset" .=) <$> _pvSourceColumnOffSet,+ ("formula" .=) <$> _pvFormula,+ ("name" .=) <$> _pvName,+ ("summarizeFunction" .=) <$> _pvSummarizeFunction])++-- | Unmerges cells in the given range.+--+-- /See:/ 'unmergeCellsRequest' smart constructor.+newtype UnmergeCellsRequest = UnmergeCellsRequest'+ { _ucrRange :: Maybe GridRange+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UnmergeCellsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ucrRange'+unmergeCellsRequest+ :: UnmergeCellsRequest+unmergeCellsRequest =+ UnmergeCellsRequest'+ { _ucrRange = Nothing+ }++-- | The range within which all cells should be unmerged. If the range spans+-- multiple merges, all will be unmerged. The range must not partially span+-- any merge.+ucrRange :: Lens' UnmergeCellsRequest (Maybe GridRange)+ucrRange = lens _ucrRange (\ s a -> s{_ucrRange = a})++instance FromJSON UnmergeCellsRequest where+ parseJSON+ = withObject "UnmergeCellsRequest"+ (\ o -> UnmergeCellsRequest' <$> (o .:? "range"))++instance ToJSON UnmergeCellsRequest where+ toJSON UnmergeCellsRequest'{..}+ = object (catMaybes [("range" .=) <$> _ucrRange])++-- | Deletes the requested sheet.+--+-- /See:/ 'deleteSheetRequest' smart constructor.+newtype DeleteSheetRequest = DeleteSheetRequest'+ { _dsrSheetId :: Maybe (Textual Int32)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteSheetRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsrSheetId'+deleteSheetRequest+ :: DeleteSheetRequest+deleteSheetRequest =+ DeleteSheetRequest'+ { _dsrSheetId = Nothing+ }++-- | The ID of the sheet to delete.+dsrSheetId :: Lens' DeleteSheetRequest (Maybe Int32)+dsrSheetId+ = lens _dsrSheetId (\ s a -> s{_dsrSheetId = a}) .+ mapping _Coerce++instance FromJSON DeleteSheetRequest where+ parseJSON+ = withObject "DeleteSheetRequest"+ (\ o -> DeleteSheetRequest' <$> (o .:? "sheetId"))++instance ToJSON DeleteSheetRequest where+ toJSON DeleteSheetRequest'{..}+ = object (catMaybes [("sheetId" .=) <$> _dsrSheetId])++-- | Updates the borders of a range. If a field is not set in the request,+-- that means the border remains as-is. For example, with two subsequent+-- UpdateBordersRequest: 1. range: A1:A5 \`{ top: RED, bottom: WHITE }\` 2.+-- range: A1:A5 \`{ left: BLUE }\` That would result in A1:A5 having a+-- borders of \`{ top: RED, bottom: WHITE, left: BLUE }\`. If you want to+-- clear a border, explicitly set the style to NONE.+--+-- /See:/ 'updateBOrdersRequest' smart constructor.+data UpdateBOrdersRequest = UpdateBOrdersRequest'+ { _uborBottom :: !(Maybe BOrder)+ , _uborInnerHorizontal :: !(Maybe BOrder)+ , _uborLeft :: !(Maybe BOrder)+ , _uborInnerVertical :: !(Maybe BOrder)+ , _uborRange :: !(Maybe GridRange)+ , _uborRight :: !(Maybe BOrder)+ , _uborTop :: !(Maybe BOrder)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateBOrdersRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uborBottom'+--+-- * 'uborInnerHorizontal'+--+-- * 'uborLeft'+--+-- * 'uborInnerVertical'+--+-- * 'uborRange'+--+-- * 'uborRight'+--+-- * 'uborTop'+updateBOrdersRequest+ :: UpdateBOrdersRequest+updateBOrdersRequest =+ UpdateBOrdersRequest'+ { _uborBottom = Nothing+ , _uborInnerHorizontal = Nothing+ , _uborLeft = Nothing+ , _uborInnerVertical = Nothing+ , _uborRange = Nothing+ , _uborRight = Nothing+ , _uborTop = Nothing+ }++-- | The border to put at the bottom of the range.+uborBottom :: Lens' UpdateBOrdersRequest (Maybe BOrder)+uborBottom+ = lens _uborBottom (\ s a -> s{_uborBottom = a})++-- | The horizontal border to put within the range.+uborInnerHorizontal :: Lens' UpdateBOrdersRequest (Maybe BOrder)+uborInnerHorizontal+ = lens _uborInnerHorizontal+ (\ s a -> s{_uborInnerHorizontal = a})++-- | The border to put at the left of the range.+uborLeft :: Lens' UpdateBOrdersRequest (Maybe BOrder)+uborLeft = lens _uborLeft (\ s a -> s{_uborLeft = a})++-- | The vertical border to put within the range.+uborInnerVertical :: Lens' UpdateBOrdersRequest (Maybe BOrder)+uborInnerVertical+ = lens _uborInnerVertical+ (\ s a -> s{_uborInnerVertical = a})++-- | The range whose borders should be updated.+uborRange :: Lens' UpdateBOrdersRequest (Maybe GridRange)+uborRange+ = lens _uborRange (\ s a -> s{_uborRange = a})++-- | The border to put at the right of the range.+uborRight :: Lens' UpdateBOrdersRequest (Maybe BOrder)+uborRight+ = lens _uborRight (\ s a -> s{_uborRight = a})++-- | The border to put at the top of the range.+uborTop :: Lens' UpdateBOrdersRequest (Maybe BOrder)+uborTop = lens _uborTop (\ s a -> s{_uborTop = a})++instance FromJSON UpdateBOrdersRequest where+ parseJSON+ = withObject "UpdateBOrdersRequest"+ (\ o ->+ UpdateBOrdersRequest' <$>+ (o .:? "bottom") <*> (o .:? "innerHorizontal") <*>+ (o .:? "left")+ <*> (o .:? "innerVertical")+ <*> (o .:? "range")+ <*> (o .:? "right")+ <*> (o .:? "top"))++instance ToJSON UpdateBOrdersRequest where+ toJSON UpdateBOrdersRequest'{..}+ = object+ (catMaybes+ [("bottom" .=) <$> _uborBottom,+ ("innerHorizontal" .=) <$> _uborInnerHorizontal,+ ("left" .=) <$> _uborLeft,+ ("innerVertical" .=) <$> _uborInnerVertical,+ ("range" .=) <$> _uborRange,+ ("right" .=) <$> _uborRight,+ ("top" .=) <$> _uborTop])++-- | A chart embedded in a sheet.+--+-- /See:/ 'embeddedChart' smart constructor.+data EmbeddedChart = EmbeddedChart'+ { _ecSpec :: !(Maybe ChartSpec)+ , _ecPosition :: !(Maybe EmbeddedObjectPosition)+ , _ecChartId :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EmbeddedChart' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ecSpec'+--+-- * 'ecPosition'+--+-- * 'ecChartId'+embeddedChart+ :: EmbeddedChart+embeddedChart =+ EmbeddedChart'+ { _ecSpec = Nothing+ , _ecPosition = Nothing+ , _ecChartId = Nothing+ }++-- | The specification of the chart.+ecSpec :: Lens' EmbeddedChart (Maybe ChartSpec)+ecSpec = lens _ecSpec (\ s a -> s{_ecSpec = a})++-- | The position of the chart.+ecPosition :: Lens' EmbeddedChart (Maybe EmbeddedObjectPosition)+ecPosition+ = lens _ecPosition (\ s a -> s{_ecPosition = a})++-- | The ID of the chart.+ecChartId :: Lens' EmbeddedChart (Maybe Int32)+ecChartId+ = lens _ecChartId (\ s a -> s{_ecChartId = a}) .+ mapping _Coerce++instance FromJSON EmbeddedChart where+ parseJSON+ = withObject "EmbeddedChart"+ (\ o ->+ EmbeddedChart' <$>+ (o .:? "spec") <*> (o .:? "position") <*>+ (o .:? "chartId"))++instance ToJSON EmbeddedChart where+ toJSON EmbeddedChart'{..}+ = object+ (catMaybes+ [("spec" .=) <$> _ecSpec,+ ("position" .=) <$> _ecPosition,+ ("chartId" .=) <$> _ecChartId])++-- | Data about each cell in a row.+--+-- /See:/ 'rowData' smart constructor.+newtype RowData = RowData'+ { _rdValues :: Maybe [CellData]+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RowData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdValues'+rowData+ :: RowData+rowData =+ RowData'+ { _rdValues = Nothing+ }++-- | The values in the row, one per column.+rdValues :: Lens' RowData [CellData]+rdValues+ = lens _rdValues (\ s a -> s{_rdValues = a}) .+ _Default+ . _Coerce++instance FromJSON RowData where+ parseJSON+ = withObject "RowData"+ (\ o -> RowData' <$> (o .:? "values" .!= mempty))++instance ToJSON RowData where+ toJSON RowData'{..}+ = object (catMaybes [("values" .=) <$> _rdValues])++-- | The editors of a protected range.+--+-- /See:/ 'editors' smart constructor.+data Editors = Editors'+ { _eGroups :: !(Maybe [Text])+ , _eUsers :: !(Maybe [Text])+ , _eDomainUsersCanEdit :: !(Maybe Bool)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Editors' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eGroups'+--+-- * 'eUsers'+--+-- * 'eDomainUsersCanEdit'+editors+ :: Editors+editors =+ Editors'+ { _eGroups = Nothing+ , _eUsers = Nothing+ , _eDomainUsersCanEdit = Nothing+ }++-- | The email addresses of groups with edit access to the protected range.+eGroups :: Lens' Editors [Text]+eGroups+ = lens _eGroups (\ s a -> s{_eGroups = a}) . _Default+ . _Coerce++-- | The email addresses of users with edit access to the protected range.+eUsers :: Lens' Editors [Text]+eUsers+ = lens _eUsers (\ s a -> s{_eUsers = a}) . _Default .+ _Coerce++-- | True if anyone in the document\'s domain has edit access to the+-- protected range. Domain protection is only supported on documents within+-- a domain.+eDomainUsersCanEdit :: Lens' Editors (Maybe Bool)+eDomainUsersCanEdit+ = lens _eDomainUsersCanEdit+ (\ s a -> s{_eDomainUsersCanEdit = a})++instance FromJSON Editors where+ parseJSON+ = withObject "Editors"+ (\ o ->+ Editors' <$>+ (o .:? "groups" .!= mempty) <*>+ (o .:? "users" .!= mempty)+ <*> (o .:? "domainUsersCanEdit"))++instance ToJSON Editors where+ toJSON Editors'{..}+ = object+ (catMaybes+ [("groups" .=) <$> _eGroups,+ ("users" .=) <$> _eUsers,+ ("domainUsersCanEdit" .=) <$> _eDomainUsersCanEdit])++-- | A pivot table.+--+-- /See:/ 'pivotTable' smart constructor.+data PivotTable = PivotTable'+ { _ptValues :: !(Maybe [PivotValue])+ , _ptValueLayout :: !(Maybe PivotTableValueLayout)+ , _ptRows :: !(Maybe [PivotGroup])+ , _ptSource :: !(Maybe GridRange)+ , _ptColumns :: !(Maybe [PivotGroup])+ , _ptCriteria :: !(Maybe PivotTableCriteria)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PivotTable' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ptValues'+--+-- * 'ptValueLayout'+--+-- * 'ptRows'+--+-- * 'ptSource'+--+-- * 'ptColumns'+--+-- * 'ptCriteria'+pivotTable+ :: PivotTable+pivotTable =+ PivotTable'+ { _ptValues = Nothing+ , _ptValueLayout = Nothing+ , _ptRows = Nothing+ , _ptSource = Nothing+ , _ptColumns = Nothing+ , _ptCriteria = Nothing+ }++-- | A list of values to include in the pivot table.+ptValues :: Lens' PivotTable [PivotValue]+ptValues+ = lens _ptValues (\ s a -> s{_ptValues = a}) .+ _Default+ . _Coerce++-- | Whether values should be listed horizontally (as columns) or vertically+-- (as rows).+ptValueLayout :: Lens' PivotTable (Maybe PivotTableValueLayout)+ptValueLayout+ = lens _ptValueLayout+ (\ s a -> s{_ptValueLayout = a})++-- | Each row grouping in the pivot table.+ptRows :: Lens' PivotTable [PivotGroup]+ptRows+ = lens _ptRows (\ s a -> s{_ptRows = a}) . _Default .+ _Coerce++-- | The range the pivot table is reading data from.+ptSource :: Lens' PivotTable (Maybe GridRange)+ptSource = lens _ptSource (\ s a -> s{_ptSource = a})++-- | Each column grouping in the pivot table.+ptColumns :: Lens' PivotTable [PivotGroup]+ptColumns+ = lens _ptColumns (\ s a -> s{_ptColumns = a}) .+ _Default+ . _Coerce++-- | An optional mapping of filters per source column offset. The filters+-- will be applied before aggregating data into the pivot table. The map\'s+-- key is the column offset of the source range that you want to filter,+-- and the value is the criteria for that column. For example, if the+-- source was \`C10:E15\`, a key of \`0\` will have the filter for column+-- \`C\`, whereas the key \`1\` is for column \`D\`.+ptCriteria :: Lens' PivotTable (Maybe PivotTableCriteria)+ptCriteria+ = lens _ptCriteria (\ s a -> s{_ptCriteria = a})++instance FromJSON PivotTable where+ parseJSON+ = withObject "PivotTable"+ (\ o ->+ PivotTable' <$>+ (o .:? "values" .!= mempty) <*> (o .:? "valueLayout")+ <*> (o .:? "rows" .!= mempty)+ <*> (o .:? "source")+ <*> (o .:? "columns" .!= mempty)+ <*> (o .:? "criteria"))++instance ToJSON PivotTable where+ toJSON PivotTable'{..}+ = object+ (catMaybes+ [("values" .=) <$> _ptValues,+ ("valueLayout" .=) <$> _ptValueLayout,+ ("rows" .=) <$> _ptRows, ("source" .=) <$> _ptSource,+ ("columns" .=) <$> _ptColumns,+ ("criteria" .=) <$> _ptCriteria])++-- | The position of an embedded object such as a chart.+--+-- /See:/ 'embeddedObjectPosition' smart constructor.+data EmbeddedObjectPosition = EmbeddedObjectPosition'+ { _eopOverlayPosition :: !(Maybe OverlayPosition)+ , _eopSheetId :: !(Maybe (Textual Int32))+ , _eopNewSheet :: !(Maybe Bool)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EmbeddedObjectPosition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eopOverlayPosition'+--+-- * 'eopSheetId'+--+-- * 'eopNewSheet'+embeddedObjectPosition+ :: EmbeddedObjectPosition+embeddedObjectPosition =+ EmbeddedObjectPosition'+ { _eopOverlayPosition = Nothing+ , _eopSheetId = Nothing+ , _eopNewSheet = Nothing+ }++-- | The position at which the object is overlaid on top of a grid.+eopOverlayPosition :: Lens' EmbeddedObjectPosition (Maybe OverlayPosition)+eopOverlayPosition+ = lens _eopOverlayPosition+ (\ s a -> s{_eopOverlayPosition = a})++-- | The sheet this is on. Set only if the embedded object is on its own+-- sheet. Must be non-negative.+eopSheetId :: Lens' EmbeddedObjectPosition (Maybe Int32)+eopSheetId+ = lens _eopSheetId (\ s a -> s{_eopSheetId = a}) .+ mapping _Coerce++-- | If true, the embedded object will be put on a new sheet whose ID is+-- chosen for you. Used only when writing.+eopNewSheet :: Lens' EmbeddedObjectPosition (Maybe Bool)+eopNewSheet+ = lens _eopNewSheet (\ s a -> s{_eopNewSheet = a})++instance FromJSON EmbeddedObjectPosition where+ parseJSON+ = withObject "EmbeddedObjectPosition"+ (\ o ->+ EmbeddedObjectPosition' <$>+ (o .:? "overlayPosition") <*> (o .:? "sheetId") <*>+ (o .:? "newSheet"))++instance ToJSON EmbeddedObjectPosition where+ toJSON EmbeddedObjectPosition'{..}+ = object+ (catMaybes+ [("overlayPosition" .=) <$> _eopOverlayPosition,+ ("sheetId" .=) <$> _eopSheetId,+ ("newSheet" .=) <$> _eopNewSheet])++-- | The default filter associated with a sheet.+--+-- /See:/ 'basicFilter' smart constructor.+data BasicFilter = BasicFilter'+ { _bfSortSpecs :: !(Maybe [SortSpec])+ , _bfRange :: !(Maybe GridRange)+ , _bfCriteria :: !(Maybe BasicFilterCriteria)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BasicFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bfSortSpecs'+--+-- * 'bfRange'+--+-- * 'bfCriteria'+basicFilter+ :: BasicFilter+basicFilter =+ BasicFilter'+ { _bfSortSpecs = Nothing+ , _bfRange = Nothing+ , _bfCriteria = Nothing+ }++-- | The sort order per column. Later specifications are used when values are+-- equal in the earlier specifications.+bfSortSpecs :: Lens' BasicFilter [SortSpec]+bfSortSpecs+ = lens _bfSortSpecs (\ s a -> s{_bfSortSpecs = a}) .+ _Default+ . _Coerce++-- | The range the filter covers.+bfRange :: Lens' BasicFilter (Maybe GridRange)+bfRange = lens _bfRange (\ s a -> s{_bfRange = a})++-- | The criteria for showing\/hiding values per column. The map\'s key is+-- the column index, and the value is the criteria for that column.+bfCriteria :: Lens' BasicFilter (Maybe BasicFilterCriteria)+bfCriteria+ = lens _bfCriteria (\ s a -> s{_bfCriteria = a})++instance FromJSON BasicFilter where+ parseJSON+ = withObject "BasicFilter"+ (\ o ->+ BasicFilter' <$>+ (o .:? "sortSpecs" .!= mempty) <*> (o .:? "range")+ <*> (o .:? "criteria"))++instance ToJSON BasicFilter where+ toJSON BasicFilter'{..}+ = object+ (catMaybes+ [("sortSpecs" .=) <$> _bfSortSpecs,+ ("range" .=) <$> _bfRange,+ ("criteria" .=) <$> _bfCriteria])++-- | Splits a column of text into multiple columns, based on a delimiter in+-- each cell.+--+-- /See:/ 'textToColumnsRequest' smart constructor.+data TextToColumnsRequest = TextToColumnsRequest'+ { _ttcrDelimiterType :: !(Maybe TextToColumnsRequestDelimiterType)+ , _ttcrSource :: !(Maybe GridRange)+ , _ttcrDelimiter :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TextToColumnsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ttcrDelimiterType'+--+-- * 'ttcrSource'+--+-- * 'ttcrDelimiter'+textToColumnsRequest+ :: TextToColumnsRequest+textToColumnsRequest =+ TextToColumnsRequest'+ { _ttcrDelimiterType = Nothing+ , _ttcrSource = Nothing+ , _ttcrDelimiter = Nothing+ }++-- | The delimiter type to use.+ttcrDelimiterType :: Lens' TextToColumnsRequest (Maybe TextToColumnsRequestDelimiterType)+ttcrDelimiterType+ = lens _ttcrDelimiterType+ (\ s a -> s{_ttcrDelimiterType = a})++-- | The source data range. This must span exactly one column.+ttcrSource :: Lens' TextToColumnsRequest (Maybe GridRange)+ttcrSource+ = lens _ttcrSource (\ s a -> s{_ttcrSource = a})++-- | The delimiter to use. Used only if delimiterType is CUSTOM.+ttcrDelimiter :: Lens' TextToColumnsRequest (Maybe Text)+ttcrDelimiter+ = lens _ttcrDelimiter+ (\ s a -> s{_ttcrDelimiter = a})++instance FromJSON TextToColumnsRequest where+ parseJSON+ = withObject "TextToColumnsRequest"+ (\ o ->+ TextToColumnsRequest' <$>+ (o .:? "delimiterType") <*> (o .:? "source") <*>+ (o .:? "delimiter"))++instance ToJSON TextToColumnsRequest where+ toJSON TextToColumnsRequest'{..}+ = object+ (catMaybes+ [("delimiterType" .=) <$> _ttcrDelimiterType,+ ("source" .=) <$> _ttcrSource,+ ("delimiter" .=) <$> _ttcrDelimiter])++-- | The request for updating any aspect of a spreadsheet.+--+-- /See:/ 'batchUpdateSpreadsheetRequest' smart constructor.+newtype BatchUpdateSpreadsheetRequest = BatchUpdateSpreadsheetRequest'+ { _busrRequests :: Maybe [Request']+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchUpdateSpreadsheetRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'busrRequests'+batchUpdateSpreadsheetRequest+ :: BatchUpdateSpreadsheetRequest+batchUpdateSpreadsheetRequest =+ BatchUpdateSpreadsheetRequest'+ { _busrRequests = Nothing+ }++-- | A list of updates to apply to the spreadsheet.+busrRequests :: Lens' BatchUpdateSpreadsheetRequest [Request']+busrRequests+ = lens _busrRequests (\ s a -> s{_busrRequests = a})+ . _Default+ . _Coerce++instance FromJSON BatchUpdateSpreadsheetRequest where+ parseJSON+ = withObject "BatchUpdateSpreadsheetRequest"+ (\ o ->+ BatchUpdateSpreadsheetRequest' <$>+ (o .:? "requests" .!= mempty))++instance ToJSON BatchUpdateSpreadsheetRequest where+ toJSON BatchUpdateSpreadsheetRequest'{..}+ = object+ (catMaybes [("requests" .=) <$> _busrRequests])++-- | The response when updating a range of values in a spreadsheet.+--+-- /See:/ 'updateValuesResponse' smart constructor.+data UpdateValuesResponse = UpdateValuesResponse'+ { _uvrUpdatedCells :: !(Maybe (Textual Int32))+ , _uvrSpreadsheetId :: !(Maybe Text)+ , _uvrUpdatedRows :: !(Maybe (Textual Int32))+ , _uvrUpdatedRange :: !(Maybe Text)+ , _uvrUpdatedColumns :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateValuesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uvrUpdatedCells'+--+-- * 'uvrSpreadsheetId'+--+-- * 'uvrUpdatedRows'+--+-- * 'uvrUpdatedRange'+--+-- * 'uvrUpdatedColumns'+updateValuesResponse+ :: UpdateValuesResponse+updateValuesResponse =+ UpdateValuesResponse'+ { _uvrUpdatedCells = Nothing+ , _uvrSpreadsheetId = Nothing+ , _uvrUpdatedRows = Nothing+ , _uvrUpdatedRange = Nothing+ , _uvrUpdatedColumns = Nothing+ }++-- | The number of cells updated.+uvrUpdatedCells :: Lens' UpdateValuesResponse (Maybe Int32)+uvrUpdatedCells+ = lens _uvrUpdatedCells+ (\ s a -> s{_uvrUpdatedCells = a})+ . mapping _Coerce++-- | The spreadsheet the updates were applied to.+uvrSpreadsheetId :: Lens' UpdateValuesResponse (Maybe Text)+uvrSpreadsheetId+ = lens _uvrSpreadsheetId+ (\ s a -> s{_uvrSpreadsheetId = a})++-- | The number of rows where at least one cell in the row was updated.+uvrUpdatedRows :: Lens' UpdateValuesResponse (Maybe Int32)+uvrUpdatedRows+ = lens _uvrUpdatedRows+ (\ s a -> s{_uvrUpdatedRows = a})+ . mapping _Coerce++-- | The range (in A1 notation) that updates were applied to.+uvrUpdatedRange :: Lens' UpdateValuesResponse (Maybe Text)+uvrUpdatedRange+ = lens _uvrUpdatedRange+ (\ s a -> s{_uvrUpdatedRange = a})++-- | The number of columns where at least one cell in the column was updated.+uvrUpdatedColumns :: Lens' UpdateValuesResponse (Maybe Int32)+uvrUpdatedColumns+ = lens _uvrUpdatedColumns+ (\ s a -> s{_uvrUpdatedColumns = a})+ . mapping _Coerce++instance FromJSON UpdateValuesResponse where+ parseJSON+ = withObject "UpdateValuesResponse"+ (\ o ->+ UpdateValuesResponse' <$>+ (o .:? "updatedCells") <*> (o .:? "spreadsheetId")+ <*> (o .:? "updatedRows")+ <*> (o .:? "updatedRange")+ <*> (o .:? "updatedColumns"))++instance ToJSON UpdateValuesResponse where+ toJSON UpdateValuesResponse'{..}+ = object+ (catMaybes+ [("updatedCells" .=) <$> _uvrUpdatedCells,+ ("spreadsheetId" .=) <$> _uvrSpreadsheetId,+ ("updatedRows" .=) <$> _uvrUpdatedRows,+ ("updatedRange" .=) <$> _uvrUpdatedRange,+ ("updatedColumns" .=) <$> _uvrUpdatedColumns])++-- | The request to copy a sheet across spreadsheets.+--+-- /See:/ 'copySheetToAnotherSpreadsheetRequest' smart constructor.+newtype CopySheetToAnotherSpreadsheetRequest = CopySheetToAnotherSpreadsheetRequest'+ { _cstasrDestinationSpreadsheetId :: Maybe Text+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CopySheetToAnotherSpreadsheetRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cstasrDestinationSpreadsheetId'+copySheetToAnotherSpreadsheetRequest+ :: CopySheetToAnotherSpreadsheetRequest+copySheetToAnotherSpreadsheetRequest =+ CopySheetToAnotherSpreadsheetRequest'+ { _cstasrDestinationSpreadsheetId = Nothing+ }++-- | The ID of the spreadsheet to copy the sheet to.+cstasrDestinationSpreadsheetId :: Lens' CopySheetToAnotherSpreadsheetRequest (Maybe Text)+cstasrDestinationSpreadsheetId+ = lens _cstasrDestinationSpreadsheetId+ (\ s a -> s{_cstasrDestinationSpreadsheetId = a})++instance FromJSON+ CopySheetToAnotherSpreadsheetRequest where+ parseJSON+ = withObject "CopySheetToAnotherSpreadsheetRequest"+ (\ o ->+ CopySheetToAnotherSpreadsheetRequest' <$>+ (o .:? "destinationSpreadsheetId"))++instance ToJSON CopySheetToAnotherSpreadsheetRequest+ where+ toJSON CopySheetToAnotherSpreadsheetRequest'{..}+ = object+ (catMaybes+ [("destinationSpreadsheetId" .=) <$>+ _cstasrDestinationSpreadsheetId])++-- | Adds a filter view.+--+-- /See:/ 'addFilterViewRequest' smart constructor.+newtype AddFilterViewRequest = AddFilterViewRequest'+ { _aFilter :: Maybe FilterView+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddFilterViewRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aFilter'+addFilterViewRequest+ :: AddFilterViewRequest+addFilterViewRequest =+ AddFilterViewRequest'+ { _aFilter = Nothing+ }++-- | The filter to add.+aFilter :: Lens' AddFilterViewRequest (Maybe FilterView)+aFilter = lens _aFilter (\ s a -> s{_aFilter = a})++instance FromJSON AddFilterViewRequest where+ parseJSON+ = withObject "AddFilterViewRequest"+ (\ o -> AddFilterViewRequest' <$> (o .:? "filter"))++instance ToJSON AddFilterViewRequest where+ toJSON AddFilterViewRequest'{..}+ = object (catMaybes [("filter" .=) <$> _aFilter])++-- | Metadata about a value in a pivot grouping.+--+-- /See:/ 'pivotGroupValueMetadata' smart constructor.+data PivotGroupValueMetadata = PivotGroupValueMetadata'+ { _pgvmValue :: !(Maybe ExtendedValue)+ , _pgvmCollapsed :: !(Maybe Bool)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PivotGroupValueMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pgvmValue'+--+-- * 'pgvmCollapsed'+pivotGroupValueMetadata+ :: PivotGroupValueMetadata+pivotGroupValueMetadata =+ PivotGroupValueMetadata'+ { _pgvmValue = Nothing+ , _pgvmCollapsed = Nothing+ }++-- | The calculated value the metadata corresponds to. (Note that+-- formulaValue is not valid, because the values will be calculated.)+pgvmValue :: Lens' PivotGroupValueMetadata (Maybe ExtendedValue)+pgvmValue+ = lens _pgvmValue (\ s a -> s{_pgvmValue = a})++-- | True if the data corresponding to the value is collapsed.+pgvmCollapsed :: Lens' PivotGroupValueMetadata (Maybe Bool)+pgvmCollapsed+ = lens _pgvmCollapsed+ (\ s a -> s{_pgvmCollapsed = a})++instance FromJSON PivotGroupValueMetadata where+ parseJSON+ = withObject "PivotGroupValueMetadata"+ (\ o ->+ PivotGroupValueMetadata' <$>+ (o .:? "value") <*> (o .:? "collapsed"))++instance ToJSON PivotGroupValueMetadata where+ toJSON PivotGroupValueMetadata'{..}+ = object+ (catMaybes+ [("value" .=) <$> _pgvmValue,+ ("collapsed" .=) <$> _pgvmCollapsed])++-- | Updates all cells in a range with new data.+--+-- /See:/ 'updateCellsRequest' smart constructor.+data UpdateCellsRequest = UpdateCellsRequest'+ { _updStart :: !(Maybe GridCoordinate)+ , _updRows :: !(Maybe [RowData])+ , _updRange :: !(Maybe GridRange)+ , _updFields :: !(Maybe FieldMask)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateCellsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'updStart'+--+-- * 'updRows'+--+-- * 'updRange'+--+-- * 'updFields'+updateCellsRequest+ :: UpdateCellsRequest+updateCellsRequest =+ UpdateCellsRequest'+ { _updStart = Nothing+ , _updRows = Nothing+ , _updRange = Nothing+ , _updFields = Nothing+ }++-- | The coordinate to start writing data at. Any number of rows and columns+-- (including a different number of columns per row) may be written.+updStart :: Lens' UpdateCellsRequest (Maybe GridCoordinate)+updStart = lens _updStart (\ s a -> s{_updStart = a})++-- | The data to write.+updRows :: Lens' UpdateCellsRequest [RowData]+updRows+ = lens _updRows (\ s a -> s{_updRows = a}) . _Default+ . _Coerce++-- | The range to write data to. If the data in rows does not cover the+-- entire requested range, the fields matching those set in fields will be+-- cleared.+updRange :: Lens' UpdateCellsRequest (Maybe GridRange)+updRange = lens _updRange (\ s a -> s{_updRange = a})++-- | The fields of CellData that should be updated. At least one field must+-- be specified. The root is the CellData; \'row.values.\' should not be+-- specified. A single \`\"*\"\` can be used as short-hand for listing+-- every field.+updFields :: Lens' UpdateCellsRequest (Maybe FieldMask)+updFields+ = lens _updFields (\ s a -> s{_updFields = a})++instance FromJSON UpdateCellsRequest where+ parseJSON+ = withObject "UpdateCellsRequest"+ (\ o ->+ UpdateCellsRequest' <$>+ (o .:? "start") <*> (o .:? "rows" .!= mempty) <*>+ (o .:? "range")+ <*> (o .:? "fields"))++instance ToJSON UpdateCellsRequest where+ toJSON UpdateCellsRequest'{..}+ = object+ (catMaybes+ [("start" .=) <$> _updStart,+ ("rows" .=) <$> _updRows, ("range" .=) <$> _updRange,+ ("fields" .=) <$> _updFields])++-- | The format of a cell.+--+-- /See:/ 'cellFormat' smart constructor.+data CellFormat = CellFormat'+ { _cfBOrders :: !(Maybe BOrders)+ , _cfVerticalAlignment :: !(Maybe CellFormatVerticalAlignment)+ , _cfBackgRoundColor :: !(Maybe Color)+ , _cfHyperlinkDisplayType :: !(Maybe CellFormatHyperlinkDisplayType)+ , _cfWrapStrategy :: !(Maybe CellFormatWrapStrategy)+ , _cfNumberFormat :: !(Maybe NumberFormat)+ , _cfTextDirection :: !(Maybe CellFormatTextDirection)+ , _cfTextFormat :: !(Maybe TextFormat)+ , _cfHorizontalAlignment :: !(Maybe CellFormatHorizontalAlignment)+ , _cfPadding :: !(Maybe Padding)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CellFormat' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cfBOrders'+--+-- * 'cfVerticalAlignment'+--+-- * 'cfBackgRoundColor'+--+-- * 'cfHyperlinkDisplayType'+--+-- * 'cfWrapStrategy'+--+-- * 'cfNumberFormat'+--+-- * 'cfTextDirection'+--+-- * 'cfTextFormat'+--+-- * 'cfHorizontalAlignment'+--+-- * 'cfPadding'+cellFormat+ :: CellFormat+cellFormat =+ CellFormat'+ { _cfBOrders = Nothing+ , _cfVerticalAlignment = Nothing+ , _cfBackgRoundColor = Nothing+ , _cfHyperlinkDisplayType = Nothing+ , _cfWrapStrategy = Nothing+ , _cfNumberFormat = Nothing+ , _cfTextDirection = Nothing+ , _cfTextFormat = Nothing+ , _cfHorizontalAlignment = Nothing+ , _cfPadding = Nothing+ }++-- | The borders of the cell.+cfBOrders :: Lens' CellFormat (Maybe BOrders)+cfBOrders+ = lens _cfBOrders (\ s a -> s{_cfBOrders = a})++-- | The vertical alignment of the value in the cell.+cfVerticalAlignment :: Lens' CellFormat (Maybe CellFormatVerticalAlignment)+cfVerticalAlignment+ = lens _cfVerticalAlignment+ (\ s a -> s{_cfVerticalAlignment = a})++-- | The background color of the cell.+cfBackgRoundColor :: Lens' CellFormat (Maybe Color)+cfBackgRoundColor+ = lens _cfBackgRoundColor+ (\ s a -> s{_cfBackgRoundColor = a})++-- | How a hyperlink, if it exists, should be displayed in the cell.+cfHyperlinkDisplayType :: Lens' CellFormat (Maybe CellFormatHyperlinkDisplayType)+cfHyperlinkDisplayType+ = lens _cfHyperlinkDisplayType+ (\ s a -> s{_cfHyperlinkDisplayType = a})++-- | The wrap strategy for the value in the cell.+cfWrapStrategy :: Lens' CellFormat (Maybe CellFormatWrapStrategy)+cfWrapStrategy+ = lens _cfWrapStrategy+ (\ s a -> s{_cfWrapStrategy = a})++-- | A format describing how number values should be represented to the user.+cfNumberFormat :: Lens' CellFormat (Maybe NumberFormat)+cfNumberFormat+ = lens _cfNumberFormat+ (\ s a -> s{_cfNumberFormat = a})++-- | The direction of the text in the cell.+cfTextDirection :: Lens' CellFormat (Maybe CellFormatTextDirection)+cfTextDirection+ = lens _cfTextDirection+ (\ s a -> s{_cfTextDirection = a})++-- | The format of the text in the cell (unless overridden by a format run).+cfTextFormat :: Lens' CellFormat (Maybe TextFormat)+cfTextFormat+ = lens _cfTextFormat (\ s a -> s{_cfTextFormat = a})++-- | The horizontal alignment of the value in the cell.+cfHorizontalAlignment :: Lens' CellFormat (Maybe CellFormatHorizontalAlignment)+cfHorizontalAlignment+ = lens _cfHorizontalAlignment+ (\ s a -> s{_cfHorizontalAlignment = a})++-- | The padding of the cell.+cfPadding :: Lens' CellFormat (Maybe Padding)+cfPadding+ = lens _cfPadding (\ s a -> s{_cfPadding = a})++instance FromJSON CellFormat where+ parseJSON+ = withObject "CellFormat"+ (\ o ->+ CellFormat' <$>+ (o .:? "borders") <*> (o .:? "verticalAlignment") <*>+ (o .:? "backgroundColor")+ <*> (o .:? "hyperlinkDisplayType")+ <*> (o .:? "wrapStrategy")+ <*> (o .:? "numberFormat")+ <*> (o .:? "textDirection")+ <*> (o .:? "textFormat")+ <*> (o .:? "horizontalAlignment")+ <*> (o .:? "padding"))++instance ToJSON CellFormat where+ toJSON CellFormat'{..}+ = object+ (catMaybes+ [("borders" .=) <$> _cfBOrders,+ ("verticalAlignment" .=) <$> _cfVerticalAlignment,+ ("backgroundColor" .=) <$> _cfBackgRoundColor,+ ("hyperlinkDisplayType" .=) <$>+ _cfHyperlinkDisplayType,+ ("wrapStrategy" .=) <$> _cfWrapStrategy,+ ("numberFormat" .=) <$> _cfNumberFormat,+ ("textDirection" .=) <$> _cfTextDirection,+ ("textFormat" .=) <$> _cfTextFormat,+ ("horizontalAlignment" .=) <$>+ _cfHorizontalAlignment,+ ("padding" .=) <$> _cfPadding])++-- | Deletes the protected range with the given ID.+--+-- /See:/ 'deleteProtectedRangeRequest' smart constructor.+newtype DeleteProtectedRangeRequest = DeleteProtectedRangeRequest'+ { _dprrProtectedRangeId :: Maybe (Textual Int32)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteProtectedRangeRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dprrProtectedRangeId'+deleteProtectedRangeRequest+ :: DeleteProtectedRangeRequest+deleteProtectedRangeRequest =+ DeleteProtectedRangeRequest'+ { _dprrProtectedRangeId = Nothing+ }++-- | The ID of the protected range to delete.+dprrProtectedRangeId :: Lens' DeleteProtectedRangeRequest (Maybe Int32)+dprrProtectedRangeId+ = lens _dprrProtectedRangeId+ (\ s a -> s{_dprrProtectedRangeId = a})+ . mapping _Coerce++instance FromJSON DeleteProtectedRangeRequest where+ parseJSON+ = withObject "DeleteProtectedRangeRequest"+ (\ o ->+ DeleteProtectedRangeRequest' <$>+ (o .:? "protectedRangeId"))++instance ToJSON DeleteProtectedRangeRequest where+ toJSON DeleteProtectedRangeRequest'{..}+ = object+ (catMaybes+ [("protectedRangeId" .=) <$> _dprrProtectedRangeId])++-- | Updates an existing protected range with the specified protectedRangeId.+--+-- /See:/ 'updateProtectedRangeRequest' smart constructor.+data UpdateProtectedRangeRequest = UpdateProtectedRangeRequest'+ { _uprrProtectedRange :: !(Maybe ProtectedRange)+ , _uprrFields :: !(Maybe FieldMask)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateProtectedRangeRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uprrProtectedRange'+--+-- * 'uprrFields'+updateProtectedRangeRequest+ :: UpdateProtectedRangeRequest+updateProtectedRangeRequest =+ UpdateProtectedRangeRequest'+ { _uprrProtectedRange = Nothing+ , _uprrFields = Nothing+ }++-- | The protected range to update with the new properties. If a nonzero+-- protectedRangeId is specified, the protected range will use that ID. (It+-- is an error to specify the ID of a protected range that already exists.)+uprrProtectedRange :: Lens' UpdateProtectedRangeRequest (Maybe ProtectedRange)+uprrProtectedRange+ = lens _uprrProtectedRange+ (\ s a -> s{_uprrProtectedRange = a})++-- | The fields that should be updated. At least one field must be specified.+-- The root \`protectedRange\` is implied and should not be specified. A+-- single \`\"*\"\` can be used as short-hand for listing every field.+uprrFields :: Lens' UpdateProtectedRangeRequest (Maybe FieldMask)+uprrFields+ = lens _uprrFields (\ s a -> s{_uprrFields = a})++instance FromJSON UpdateProtectedRangeRequest where+ parseJSON+ = withObject "UpdateProtectedRangeRequest"+ (\ o ->+ UpdateProtectedRangeRequest' <$>+ (o .:? "protectedRange") <*> (o .:? "fields"))++instance ToJSON UpdateProtectedRangeRequest where+ toJSON UpdateProtectedRangeRequest'{..}+ = object+ (catMaybes+ [("protectedRange" .=) <$> _uprrProtectedRange,+ ("fields" .=) <$> _uprrFields])++-- | The result of adding a sheet.+--+-- /See:/ 'addSheetResponse' smart constructor.+newtype AddSheetResponse = AddSheetResponse'+ { _aProperties :: Maybe SheetProperties+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddSheetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aProperties'+addSheetResponse+ :: AddSheetResponse+addSheetResponse =+ AddSheetResponse'+ { _aProperties = Nothing+ }++-- | The properties of the newly added sheet.+aProperties :: Lens' AddSheetResponse (Maybe SheetProperties)+aProperties+ = lens _aProperties (\ s a -> s{_aProperties = a})++instance FromJSON AddSheetResponse where+ parseJSON+ = withObject "AddSheetResponse"+ (\ o -> AddSheetResponse' <$> (o .:? "properties"))++instance ToJSON AddSheetResponse where+ toJSON AddSheetResponse'{..}+ = object+ (catMaybes [("properties" .=) <$> _aProperties])++-- | A protected range.+--+-- /See:/ 'protectedRange' smart constructor.+data ProtectedRange = ProtectedRange'+ { _prProtectedRangeId :: !(Maybe (Textual Int32))+ , _prWarningOnly :: !(Maybe Bool)+ , _prNamedRangeId :: !(Maybe Text)+ , _prRange :: !(Maybe GridRange)+ , _prEditors :: !(Maybe Editors)+ , _prUnprotectedRanges :: !(Maybe [GridRange])+ , _prRequestingUserCanEdit :: !(Maybe Bool)+ , _prDescription :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProtectedRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'prProtectedRangeId'+--+-- * 'prWarningOnly'+--+-- * 'prNamedRangeId'+--+-- * 'prRange'+--+-- * 'prEditors'+--+-- * 'prUnprotectedRanges'+--+-- * 'prRequestingUserCanEdit'+--+-- * 'prDescription'+protectedRange+ :: ProtectedRange+protectedRange =+ ProtectedRange'+ { _prProtectedRangeId = Nothing+ , _prWarningOnly = Nothing+ , _prNamedRangeId = Nothing+ , _prRange = Nothing+ , _prEditors = Nothing+ , _prUnprotectedRanges = Nothing+ , _prRequestingUserCanEdit = Nothing+ , _prDescription = Nothing+ }++-- | The ID of the protected range. This field is read-only.+prProtectedRangeId :: Lens' ProtectedRange (Maybe Int32)+prProtectedRangeId+ = lens _prProtectedRangeId+ (\ s a -> s{_prProtectedRangeId = a})+ . mapping _Coerce++-- | True if this protected range will show a warning when editing.+-- Warning-based protection means that every user can edit data in the+-- protected range, except editing will prompt a warning asking the user to+-- confirm the edit. When writing: if this field is true, then editors is+-- ignored. Additionally, if this field is changed from true to false and+-- the \`editors\` field is not set (nor included in the field mask), then+-- the editors will be set to all the editors in the document.+prWarningOnly :: Lens' ProtectedRange (Maybe Bool)+prWarningOnly+ = lens _prWarningOnly+ (\ s a -> s{_prWarningOnly = a})++-- | The named range this protected range is backed by, if any. When writing,+-- only one of range or named_range_id may be set.+prNamedRangeId :: Lens' ProtectedRange (Maybe Text)+prNamedRangeId+ = lens _prNamedRangeId+ (\ s a -> s{_prNamedRangeId = a})++-- | The range that is being protected. The range may be fully unbounded, in+-- which case this is considered a protected sheet. When writing, only one+-- of range or named_range_id may be set.+prRange :: Lens' ProtectedRange (Maybe GridRange)+prRange = lens _prRange (\ s a -> s{_prRange = a})++-- | The users and groups with edit access to the protected range. This field+-- is only visible to users with edit access to the protected range and the+-- document. Editors are not supported with warning_only protection.+prEditors :: Lens' ProtectedRange (Maybe Editors)+prEditors+ = lens _prEditors (\ s a -> s{_prEditors = a})++-- | The list of unprotected ranges within a protected sheet. Unprotected+-- ranges are only supported on protected sheets.+prUnprotectedRanges :: Lens' ProtectedRange [GridRange]+prUnprotectedRanges+ = lens _prUnprotectedRanges+ (\ s a -> s{_prUnprotectedRanges = a})+ . _Default+ . _Coerce++-- | True if the user who requested this protected range can edit the+-- protected area. This field is read-only.+prRequestingUserCanEdit :: Lens' ProtectedRange (Maybe Bool)+prRequestingUserCanEdit+ = lens _prRequestingUserCanEdit+ (\ s a -> s{_prRequestingUserCanEdit = a})++-- | The description of this protected range.+prDescription :: Lens' ProtectedRange (Maybe Text)+prDescription+ = lens _prDescription+ (\ s a -> s{_prDescription = a})++instance FromJSON ProtectedRange where+ parseJSON+ = withObject "ProtectedRange"+ (\ o ->+ ProtectedRange' <$>+ (o .:? "protectedRangeId") <*> (o .:? "warningOnly")+ <*> (o .:? "namedRangeId")+ <*> (o .:? "range")+ <*> (o .:? "editors")+ <*> (o .:? "unprotectedRanges" .!= mempty)+ <*> (o .:? "requestingUserCanEdit")+ <*> (o .:? "description"))++instance ToJSON ProtectedRange where+ toJSON ProtectedRange'{..}+ = object+ (catMaybes+ [("protectedRangeId" .=) <$> _prProtectedRangeId,+ ("warningOnly" .=) <$> _prWarningOnly,+ ("namedRangeId" .=) <$> _prNamedRangeId,+ ("range" .=) <$> _prRange,+ ("editors" .=) <$> _prEditors,+ ("unprotectedRanges" .=) <$> _prUnprotectedRanges,+ ("requestingUserCanEdit" .=) <$>+ _prRequestingUserCanEdit,+ ("description" .=) <$> _prDescription])++-- | An axis of the chart. A chart may not have more than one axis per axis+-- position.+--+-- /See:/ 'basicChartAxis' smart constructor.+data BasicChartAxis = BasicChartAxis'+ { _bcaFormat :: !(Maybe TextFormat)+ , _bcaTitle :: !(Maybe Text)+ , _bcaPosition :: !(Maybe BasicChartAxisPosition)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BasicChartAxis' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcaFormat'+--+-- * 'bcaTitle'+--+-- * 'bcaPosition'+basicChartAxis+ :: BasicChartAxis+basicChartAxis =+ BasicChartAxis'+ { _bcaFormat = Nothing+ , _bcaTitle = Nothing+ , _bcaPosition = Nothing+ }++-- | The format of the title. Only valid if the axis is not associated with+-- the domain.+bcaFormat :: Lens' BasicChartAxis (Maybe TextFormat)+bcaFormat+ = lens _bcaFormat (\ s a -> s{_bcaFormat = a})++-- | The title of this axis. If set, this overrides any title inferred from+-- headers of the data.+bcaTitle :: Lens' BasicChartAxis (Maybe Text)+bcaTitle = lens _bcaTitle (\ s a -> s{_bcaTitle = a})++-- | The position of this axis.+bcaPosition :: Lens' BasicChartAxis (Maybe BasicChartAxisPosition)+bcaPosition+ = lens _bcaPosition (\ s a -> s{_bcaPosition = a})++instance FromJSON BasicChartAxis where+ parseJSON+ = withObject "BasicChartAxis"+ (\ o ->+ BasicChartAxis' <$>+ (o .:? "format") <*> (o .:? "title") <*>+ (o .:? "position"))++instance ToJSON BasicChartAxis where+ toJSON BasicChartAxis'{..}+ = object+ (catMaybes+ [("format" .=) <$> _bcaFormat,+ ("title" .=) <$> _bcaTitle,+ ("position" .=) <$> _bcaPosition])++-- | Data in the grid, as well as metadata about the dimensions.+--+-- /See:/ 'gridData' smart constructor.+data GridData = GridData'+ { _gdRowMetadata :: !(Maybe [DimensionProperties])+ , _gdStartRow :: !(Maybe (Textual Int32))+ , _gdRowData :: !(Maybe [RowData])+ , _gdColumnMetadata :: !(Maybe [DimensionProperties])+ , _gdStartColumn :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GridData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdRowMetadata'+--+-- * 'gdStartRow'+--+-- * 'gdRowData'+--+-- * 'gdColumnMetadata'+--+-- * 'gdStartColumn'+gridData+ :: GridData+gridData =+ GridData'+ { _gdRowMetadata = Nothing+ , _gdStartRow = Nothing+ , _gdRowData = Nothing+ , _gdColumnMetadata = Nothing+ , _gdStartColumn = Nothing+ }++-- | Metadata about the requested rows in the grid, starting with the row in+-- start_row.+gdRowMetadata :: Lens' GridData [DimensionProperties]+gdRowMetadata+ = lens _gdRowMetadata+ (\ s a -> s{_gdRowMetadata = a})+ . _Default+ . _Coerce++-- | The first row this GridData refers to, zero-based.+gdStartRow :: Lens' GridData (Maybe Int32)+gdStartRow+ = lens _gdStartRow (\ s a -> s{_gdStartRow = a}) .+ mapping _Coerce++-- | The data in the grid, one entry per row, starting with the row in+-- startRow. The values in RowData will correspond to columns starting at+-- start_column.+gdRowData :: Lens' GridData [RowData]+gdRowData+ = lens _gdRowData (\ s a -> s{_gdRowData = a}) .+ _Default+ . _Coerce++-- | Metadata about the requested columns in the grid, starting with the+-- column in start_column.+gdColumnMetadata :: Lens' GridData [DimensionProperties]+gdColumnMetadata+ = lens _gdColumnMetadata+ (\ s a -> s{_gdColumnMetadata = a})+ . _Default+ . _Coerce++-- | The first column this GridData refers to, zero-based.+gdStartColumn :: Lens' GridData (Maybe Int32)+gdStartColumn+ = lens _gdStartColumn+ (\ s a -> s{_gdStartColumn = a})+ . mapping _Coerce++instance FromJSON GridData where+ parseJSON+ = withObject "GridData"+ (\ o ->+ GridData' <$>+ (o .:? "rowMetadata" .!= mempty) <*>+ (o .:? "startRow")+ <*> (o .:? "rowData" .!= mempty)+ <*> (o .:? "columnMetadata" .!= mempty)+ <*> (o .:? "startColumn"))++instance ToJSON GridData where+ toJSON GridData'{..}+ = object+ (catMaybes+ [("rowMetadata" .=) <$> _gdRowMetadata,+ ("startRow" .=) <$> _gdStartRow,+ ("rowData" .=) <$> _gdRowData,+ ("columnMetadata" .=) <$> _gdColumnMetadata,+ ("startColumn" .=) <$> _gdStartColumn])++-- | The number format of a cell.+--+-- /See:/ 'numberFormat' smart constructor.+data NumberFormat = NumberFormat'+ { _nfPattern :: !(Maybe Text)+ , _nfType :: !(Maybe NumberFormatType)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NumberFormat' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nfPattern'+--+-- * 'nfType'+numberFormat+ :: NumberFormat+numberFormat =+ NumberFormat'+ { _nfPattern = Nothing+ , _nfType = Nothing+ }++-- | Pattern string used for formatting. If not set, a default pattern based+-- on the user\'s locale will be used if necessary for the given type.+nfPattern :: Lens' NumberFormat (Maybe Text)+nfPattern+ = lens _nfPattern (\ s a -> s{_nfPattern = a})++-- | The type of the number format. When writing, this field must be set.+nfType :: Lens' NumberFormat (Maybe NumberFormatType)+nfType = lens _nfType (\ s a -> s{_nfType = a})++instance FromJSON NumberFormat where+ parseJSON+ = withObject "NumberFormat"+ (\ o ->+ NumberFormat' <$>+ (o .:? "pattern") <*> (o .:? "type"))++instance ToJSON NumberFormat where+ toJSON NumberFormat'{..}+ = object+ (catMaybes+ [("pattern" .=) <$> _nfPattern,+ ("type" .=) <$> _nfType])++-- | The reply for batch updating a spreadsheet.+--+-- /See:/ 'batchUpdateSpreadsheetResponse' smart constructor.+data BatchUpdateSpreadsheetResponse = BatchUpdateSpreadsheetResponse'+ { _busrSpreadsheetId :: !(Maybe Text)+ , _busrReplies :: !(Maybe [Response])+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchUpdateSpreadsheetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'busrSpreadsheetId'+--+-- * 'busrReplies'+batchUpdateSpreadsheetResponse+ :: BatchUpdateSpreadsheetResponse+batchUpdateSpreadsheetResponse =+ BatchUpdateSpreadsheetResponse'+ { _busrSpreadsheetId = Nothing+ , _busrReplies = Nothing+ }++-- | The spreadsheet the updates were applied to.+busrSpreadsheetId :: Lens' BatchUpdateSpreadsheetResponse (Maybe Text)+busrSpreadsheetId+ = lens _busrSpreadsheetId+ (\ s a -> s{_busrSpreadsheetId = a})++-- | The reply of the updates. This maps 1:1 with the updates, although+-- replies to some requests may be empty.+busrReplies :: Lens' BatchUpdateSpreadsheetResponse [Response]+busrReplies+ = lens _busrReplies (\ s a -> s{_busrReplies = a}) .+ _Default+ . _Coerce++instance FromJSON BatchUpdateSpreadsheetResponse+ where+ parseJSON+ = withObject "BatchUpdateSpreadsheetResponse"+ (\ o ->+ BatchUpdateSpreadsheetResponse' <$>+ (o .:? "spreadsheetId") <*>+ (o .:? "replies" .!= mempty))++instance ToJSON BatchUpdateSpreadsheetResponse where+ toJSON BatchUpdateSpreadsheetResponse'{..}+ = object+ (catMaybes+ [("spreadsheetId" .=) <$> _busrSpreadsheetId,+ ("replies" .=) <$> _busrReplies])++-- | Sets a data validation rule to every cell in the range. To clear+-- validation in a range, call this with no rule specified.+--+-- /See:/ 'setDataValidationRequest' smart constructor.+data SetDataValidationRequest = SetDataValidationRequest'+ { _sdvrRule :: !(Maybe DataValidationRule)+ , _sdvrRange :: !(Maybe GridRange)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SetDataValidationRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdvrRule'+--+-- * 'sdvrRange'+setDataValidationRequest+ :: SetDataValidationRequest+setDataValidationRequest =+ SetDataValidationRequest'+ { _sdvrRule = Nothing+ , _sdvrRange = Nothing+ }++-- | The data validation rule to set on each cell in the range, or empty to+-- clear the data validation in the range.+sdvrRule :: Lens' SetDataValidationRequest (Maybe DataValidationRule)+sdvrRule = lens _sdvrRule (\ s a -> s{_sdvrRule = a})++-- | The range the data validation rule should apply to.+sdvrRange :: Lens' SetDataValidationRequest (Maybe GridRange)+sdvrRange+ = lens _sdvrRange (\ s a -> s{_sdvrRange = a})++instance FromJSON SetDataValidationRequest where+ parseJSON+ = withObject "SetDataValidationRequest"+ (\ o ->+ SetDataValidationRequest' <$>+ (o .:? "rule") <*> (o .:? "range"))++instance ToJSON SetDataValidationRequest where+ toJSON SetDataValidationRequest'{..}+ = object+ (catMaybes+ [("rule" .=) <$> _sdvrRule,+ ("range" .=) <$> _sdvrRange])++-- | Duplicates a particular filter view.+--+-- /See:/ 'duplicateFilterViewRequest' smart constructor.+newtype DuplicateFilterViewRequest = DuplicateFilterViewRequest'+ { _dFilterId :: Maybe (Textual Int32)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DuplicateFilterViewRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dFilterId'+duplicateFilterViewRequest+ :: DuplicateFilterViewRequest+duplicateFilterViewRequest =+ DuplicateFilterViewRequest'+ { _dFilterId = Nothing+ }++-- | The ID of the filter being duplicated.+dFilterId :: Lens' DuplicateFilterViewRequest (Maybe Int32)+dFilterId+ = lens _dFilterId (\ s a -> s{_dFilterId = a}) .+ mapping _Coerce++instance FromJSON DuplicateFilterViewRequest where+ parseJSON+ = withObject "DuplicateFilterViewRequest"+ (\ o ->+ DuplicateFilterViewRequest' <$> (o .:? "filterId"))++instance ToJSON DuplicateFilterViewRequest where+ toJSON DuplicateFilterViewRequest'{..}+ = object (catMaybes [("filterId" .=) <$> _dFilterId])++-- | A single grouping (either row or column) in a pivot table.+--+-- /See:/ 'pivotGroup' smart constructor.+data PivotGroup = PivotGroup'+ { _pgValueMetadata :: !(Maybe [PivotGroupValueMetadata])+ , _pgSourceColumnOffSet :: !(Maybe (Textual Int32))+ , _pgSortOrder :: !(Maybe PivotGroupSortOrder)+ , _pgShowTotals :: !(Maybe Bool)+ , _pgValueBucket :: !(Maybe PivotGroupSortValueBucket)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PivotGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pgValueMetadata'+--+-- * 'pgSourceColumnOffSet'+--+-- * 'pgSortOrder'+--+-- * 'pgShowTotals'+--+-- * 'pgValueBucket'+pivotGroup+ :: PivotGroup+pivotGroup =+ PivotGroup'+ { _pgValueMetadata = Nothing+ , _pgSourceColumnOffSet = Nothing+ , _pgSortOrder = Nothing+ , _pgShowTotals = Nothing+ , _pgValueBucket = Nothing+ }++-- | Metadata about values in the grouping.+pgValueMetadata :: Lens' PivotGroup [PivotGroupValueMetadata]+pgValueMetadata+ = lens _pgValueMetadata+ (\ s a -> s{_pgValueMetadata = a})+ . _Default+ . _Coerce++-- | The column offset of the source range that this grouping is based on.+-- For example, if the source was \`C10:E15\`, a \`sourceColumnOffset\` of+-- \`0\` means this group refers to column \`C\`, whereas the offset \`1\`+-- would refer to column \`D\`.+pgSourceColumnOffSet :: Lens' PivotGroup (Maybe Int32)+pgSourceColumnOffSet+ = lens _pgSourceColumnOffSet+ (\ s a -> s{_pgSourceColumnOffSet = a})+ . mapping _Coerce++-- | The order the values in this group should be sorted.+pgSortOrder :: Lens' PivotGroup (Maybe PivotGroupSortOrder)+pgSortOrder+ = lens _pgSortOrder (\ s a -> s{_pgSortOrder = a})++-- | True if the pivot table should include the totals for this grouping.+pgShowTotals :: Lens' PivotGroup (Maybe Bool)+pgShowTotals+ = lens _pgShowTotals (\ s a -> s{_pgShowTotals = a})++-- | The bucket of the opposite pivot group to sort by. If not specified,+-- sorting is alphabetical by this group\'s values.+pgValueBucket :: Lens' PivotGroup (Maybe PivotGroupSortValueBucket)+pgValueBucket+ = lens _pgValueBucket+ (\ s a -> s{_pgValueBucket = a})++instance FromJSON PivotGroup where+ parseJSON+ = withObject "PivotGroup"+ (\ o ->+ PivotGroup' <$>+ (o .:? "valueMetadata" .!= mempty) <*>+ (o .:? "sourceColumnOffset")+ <*> (o .:? "sortOrder")+ <*> (o .:? "showTotals")+ <*> (o .:? "valueBucket"))++instance ToJSON PivotGroup where+ toJSON PivotGroup'{..}+ = object+ (catMaybes+ [("valueMetadata" .=) <$> _pgValueMetadata,+ ("sourceColumnOffset" .=) <$> _pgSourceColumnOffSet,+ ("sortOrder" .=) <$> _pgSortOrder,+ ("showTotals" .=) <$> _pgShowTotals,+ ("valueBucket" .=) <$> _pgValueBucket])++-- | A rule describing a conditional format.+--+-- /See:/ 'conditionalFormatRule' smart constructor.+data ConditionalFormatRule = ConditionalFormatRule'+ { _cfrBooleanRule :: !(Maybe BooleanRule)+ , _cfrGradientRule :: !(Maybe GradientRule)+ , _cfrRanges :: !(Maybe [GridRange])+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ConditionalFormatRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cfrBooleanRule'+--+-- * 'cfrGradientRule'+--+-- * 'cfrRanges'+conditionalFormatRule+ :: ConditionalFormatRule+conditionalFormatRule =+ ConditionalFormatRule'+ { _cfrBooleanRule = Nothing+ , _cfrGradientRule = Nothing+ , _cfrRanges = Nothing+ }++-- | The formatting is either \"on\" or \"off\" according to the rule.+cfrBooleanRule :: Lens' ConditionalFormatRule (Maybe BooleanRule)+cfrBooleanRule+ = lens _cfrBooleanRule+ (\ s a -> s{_cfrBooleanRule = a})++-- | The formatting will vary based on the gradients in the rule.+cfrGradientRule :: Lens' ConditionalFormatRule (Maybe GradientRule)+cfrGradientRule+ = lens _cfrGradientRule+ (\ s a -> s{_cfrGradientRule = a})++-- | The ranges that will be formatted if the condition is true. All the+-- ranges must be on the same grid.+cfrRanges :: Lens' ConditionalFormatRule [GridRange]+cfrRanges+ = lens _cfrRanges (\ s a -> s{_cfrRanges = a}) .+ _Default+ . _Coerce++instance FromJSON ConditionalFormatRule where+ parseJSON+ = withObject "ConditionalFormatRule"+ (\ o ->+ ConditionalFormatRule' <$>+ (o .:? "booleanRule") <*> (o .:? "gradientRule") <*>+ (o .:? "ranges" .!= mempty))++instance ToJSON ConditionalFormatRule where+ toJSON ConditionalFormatRule'{..}+ = object+ (catMaybes+ [("booleanRule" .=) <$> _cfrBooleanRule,+ ("gradientRule" .=) <$> _cfrGradientRule,+ ("ranges" .=) <$> _cfrRanges])++-- | The specification for a basic chart. See BasicChartType for the list of+-- charts this supports.+--+-- /See:/ 'basicChartSpec' smart constructor.+data BasicChartSpec = BasicChartSpec'+ { _bHeaderCount :: !(Maybe (Textual Int32))+ , _bLegendPosition :: !(Maybe BasicChartSpecLegendPosition)+ , _bSeries :: !(Maybe [BasicChartSeries])+ , _bChartType :: !(Maybe BasicChartSpecChartType)+ , _bDomains :: !(Maybe [BasicChartDomain])+ , _bAxis :: !(Maybe [BasicChartAxis])+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BasicChartSpec' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bHeaderCount'+--+-- * 'bLegendPosition'+--+-- * 'bSeries'+--+-- * 'bChartType'+--+-- * 'bDomains'+--+-- * 'bAxis'+basicChartSpec+ :: BasicChartSpec+basicChartSpec =+ BasicChartSpec'+ { _bHeaderCount = Nothing+ , _bLegendPosition = Nothing+ , _bSeries = Nothing+ , _bChartType = Nothing+ , _bDomains = Nothing+ , _bAxis = Nothing+ }++-- | The number of rows or columns in the data that are \"headers\". If not+-- set, Google Sheets will guess how many rows are headers based on the+-- data. (Note that BasicChartAxis.title may override the axis title+-- inferred from the header values.)+bHeaderCount :: Lens' BasicChartSpec (Maybe Int32)+bHeaderCount+ = lens _bHeaderCount (\ s a -> s{_bHeaderCount = a})+ . mapping _Coerce++-- | The position of the chart legend.+bLegendPosition :: Lens' BasicChartSpec (Maybe BasicChartSpecLegendPosition)+bLegendPosition+ = lens _bLegendPosition+ (\ s a -> s{_bLegendPosition = a})++-- | The data this chart is visualizing.+bSeries :: Lens' BasicChartSpec [BasicChartSeries]+bSeries+ = lens _bSeries (\ s a -> s{_bSeries = a}) . _Default+ . _Coerce++-- | The type of the chart.+bChartType :: Lens' BasicChartSpec (Maybe BasicChartSpecChartType)+bChartType+ = lens _bChartType (\ s a -> s{_bChartType = a})++-- | The domain of data this is charting. Only a single domain is currently+-- supported.+bDomains :: Lens' BasicChartSpec [BasicChartDomain]+bDomains+ = lens _bDomains (\ s a -> s{_bDomains = a}) .+ _Default+ . _Coerce++-- | The axis on the chart.+bAxis :: Lens' BasicChartSpec [BasicChartAxis]+bAxis+ = lens _bAxis (\ s a -> s{_bAxis = a}) . _Default .+ _Coerce++instance FromJSON BasicChartSpec where+ parseJSON+ = withObject "BasicChartSpec"+ (\ o ->+ BasicChartSpec' <$>+ (o .:? "headerCount") <*> (o .:? "legendPosition")+ <*> (o .:? "series" .!= mempty)+ <*> (o .:? "chartType")+ <*> (o .:? "domains" .!= mempty)+ <*> (o .:? "axis" .!= mempty))++instance ToJSON BasicChartSpec where+ toJSON BasicChartSpec'{..}+ = object+ (catMaybes+ [("headerCount" .=) <$> _bHeaderCount,+ ("legendPosition" .=) <$> _bLegendPosition,+ ("series" .=) <$> _bSeries,+ ("chartType" .=) <$> _bChartType,+ ("domains" .=) <$> _bDomains,+ ("axis" .=) <$> _bAxis])++-- | Adds a new conditional format rule at the given index. All subsequent+-- rules\' indexes are incremented.+--+-- /See:/ 'addConditionalFormatRuleRequest' smart constructor.+data AddConditionalFormatRuleRequest = AddConditionalFormatRuleRequest'+ { _acfrrRule :: !(Maybe ConditionalFormatRule)+ , _acfrrIndex :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddConditionalFormatRuleRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'acfrrRule'+--+-- * 'acfrrIndex'+addConditionalFormatRuleRequest+ :: AddConditionalFormatRuleRequest+addConditionalFormatRuleRequest =+ AddConditionalFormatRuleRequest'+ { _acfrrRule = Nothing+ , _acfrrIndex = Nothing+ }++-- | The rule to add.+acfrrRule :: Lens' AddConditionalFormatRuleRequest (Maybe ConditionalFormatRule)+acfrrRule+ = lens _acfrrRule (\ s a -> s{_acfrrRule = a})++-- | The zero-based index where the rule should be inserted.+acfrrIndex :: Lens' AddConditionalFormatRuleRequest (Maybe Int32)+acfrrIndex+ = lens _acfrrIndex (\ s a -> s{_acfrrIndex = a}) .+ mapping _Coerce++instance FromJSON AddConditionalFormatRuleRequest+ where+ parseJSON+ = withObject "AddConditionalFormatRuleRequest"+ (\ o ->+ AddConditionalFormatRuleRequest' <$>+ (o .:? "rule") <*> (o .:? "index"))++instance ToJSON AddConditionalFormatRuleRequest where+ toJSON AddConditionalFormatRuleRequest'{..}+ = object+ (catMaybes+ [("rule" .=) <$> _acfrrRule,+ ("index" .=) <$> _acfrrIndex])++-- | The result of duplicating a sheet.+--+-- /See:/ 'duplicateSheetResponse' smart constructor.+newtype DuplicateSheetResponse = DuplicateSheetResponse'+ { _dsrProperties :: Maybe SheetProperties+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DuplicateSheetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsrProperties'+duplicateSheetResponse+ :: DuplicateSheetResponse+duplicateSheetResponse =+ DuplicateSheetResponse'+ { _dsrProperties = Nothing+ }++-- | The properties of the duplicate sheet.+dsrProperties :: Lens' DuplicateSheetResponse (Maybe SheetProperties)+dsrProperties+ = lens _dsrProperties+ (\ s a -> s{_dsrProperties = a})++instance FromJSON DuplicateSheetResponse where+ parseJSON+ = withObject "DuplicateSheetResponse"+ (\ o ->+ DuplicateSheetResponse' <$> (o .:? "properties"))++instance ToJSON DuplicateSheetResponse where+ toJSON DuplicateSheetResponse'{..}+ = object+ (catMaybes [("properties" .=) <$> _dsrProperties])++-- | The format of a run of text in a cell. Absent values indicate that the+-- field isn\'t specified.+--+-- /See:/ 'textFormat' smart constructor.+data TextFormat = TextFormat'+ { _tfFontFamily :: !(Maybe Text)+ , _tfForegRoundColor :: !(Maybe Color)+ , _tfFontSize :: !(Maybe (Textual Int32))+ , _tfUnderline :: !(Maybe Bool)+ , _tfItalic :: !(Maybe Bool)+ , _tfBold :: !(Maybe Bool)+ , _tfStrikethrough :: !(Maybe Bool)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TextFormat' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tfFontFamily'+--+-- * 'tfForegRoundColor'+--+-- * 'tfFontSize'+--+-- * 'tfUnderline'+--+-- * 'tfItalic'+--+-- * 'tfBold'+--+-- * 'tfStrikethrough'+textFormat+ :: TextFormat+textFormat =+ TextFormat'+ { _tfFontFamily = Nothing+ , _tfForegRoundColor = Nothing+ , _tfFontSize = Nothing+ , _tfUnderline = Nothing+ , _tfItalic = Nothing+ , _tfBold = Nothing+ , _tfStrikethrough = Nothing+ }++-- | The font family.+tfFontFamily :: Lens' TextFormat (Maybe Text)+tfFontFamily+ = lens _tfFontFamily (\ s a -> s{_tfFontFamily = a})++-- | The foreground color of the text.+tfForegRoundColor :: Lens' TextFormat (Maybe Color)+tfForegRoundColor+ = lens _tfForegRoundColor+ (\ s a -> s{_tfForegRoundColor = a})++-- | The size of the font.+tfFontSize :: Lens' TextFormat (Maybe Int32)+tfFontSize+ = lens _tfFontSize (\ s a -> s{_tfFontSize = a}) .+ mapping _Coerce++-- | True if the text is underlined.+tfUnderline :: Lens' TextFormat (Maybe Bool)+tfUnderline+ = lens _tfUnderline (\ s a -> s{_tfUnderline = a})++-- | True if the text is italicized.+tfItalic :: Lens' TextFormat (Maybe Bool)+tfItalic = lens _tfItalic (\ s a -> s{_tfItalic = a})++-- | True if the text is bold.+tfBold :: Lens' TextFormat (Maybe Bool)+tfBold = lens _tfBold (\ s a -> s{_tfBold = a})++-- | True if the text has a strikethrough.+tfStrikethrough :: Lens' TextFormat (Maybe Bool)+tfStrikethrough+ = lens _tfStrikethrough+ (\ s a -> s{_tfStrikethrough = a})++instance FromJSON TextFormat where+ parseJSON+ = withObject "TextFormat"+ (\ o ->+ TextFormat' <$>+ (o .:? "fontFamily") <*> (o .:? "foregroundColor")+ <*> (o .:? "fontSize")+ <*> (o .:? "underline")+ <*> (o .:? "italic")+ <*> (o .:? "bold")+ <*> (o .:? "strikethrough"))++instance ToJSON TextFormat where+ toJSON TextFormat'{..}+ = object+ (catMaybes+ [("fontFamily" .=) <$> _tfFontFamily,+ ("foregroundColor" .=) <$> _tfForegRoundColor,+ ("fontSize" .=) <$> _tfFontSize,+ ("underline" .=) <$> _tfUnderline,+ ("italic" .=) <$> _tfItalic, ("bold" .=) <$> _tfBold,+ ("strikethrough" .=) <$> _tfStrikethrough])++-- | The domain of a chart. For example, if charting stock prices over time,+-- this would be the date.+--+-- /See:/ 'basicChartDomain' smart constructor.+newtype BasicChartDomain = BasicChartDomain'+ { _bcdDomain :: Maybe ChartData+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BasicChartDomain' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcdDomain'+basicChartDomain+ :: BasicChartDomain+basicChartDomain =+ BasicChartDomain'+ { _bcdDomain = Nothing+ }++-- | The data of the domain. For example, if charting stock prices over time,+-- this is the data representing the dates.+bcdDomain :: Lens' BasicChartDomain (Maybe ChartData)+bcdDomain+ = lens _bcdDomain (\ s a -> s{_bcdDomain = a})++instance FromJSON BasicChartDomain where+ parseJSON+ = withObject "BasicChartDomain"+ (\ o -> BasicChartDomain' <$> (o .:? "domain"))++instance ToJSON BasicChartDomain where+ toJSON BasicChartDomain'{..}+ = object (catMaybes [("domain" .=) <$> _bcdDomain])++-- | The amount of padding around the cell, in pixels. When updating padding,+-- every field must be specified.+--+-- /See:/ 'padding' smart constructor.+data Padding = Padding'+ { _pBottom :: !(Maybe (Textual Int32))+ , _pLeft :: !(Maybe (Textual Int32))+ , _pRight :: !(Maybe (Textual Int32))+ , _pTop :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Padding' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pBottom'+--+-- * 'pLeft'+--+-- * 'pRight'+--+-- * 'pTop'+padding+ :: Padding+padding =+ Padding'+ { _pBottom = Nothing+ , _pLeft = Nothing+ , _pRight = Nothing+ , _pTop = Nothing+ }++-- | The bottom padding of the cell.+pBottom :: Lens' Padding (Maybe Int32)+pBottom+ = lens _pBottom (\ s a -> s{_pBottom = a}) .+ mapping _Coerce++-- | The left padding of the cell.+pLeft :: Lens' Padding (Maybe Int32)+pLeft+ = lens _pLeft (\ s a -> s{_pLeft = a}) .+ mapping _Coerce++-- | The right padding of the cell.+pRight :: Lens' Padding (Maybe Int32)+pRight+ = lens _pRight (\ s a -> s{_pRight = a}) .+ mapping _Coerce++-- | The top padding of the cell.+pTop :: Lens' Padding (Maybe Int32)+pTop+ = lens _pTop (\ s a -> s{_pTop = a}) .+ mapping _Coerce++instance FromJSON Padding where+ parseJSON+ = withObject "Padding"+ (\ o ->+ Padding' <$>+ (o .:? "bottom") <*> (o .:? "left") <*>+ (o .:? "right")+ <*> (o .:? "top"))++instance ToJSON Padding where+ toJSON Padding'{..}+ = object+ (catMaybes+ [("bottom" .=) <$> _pBottom, ("left" .=) <$> _pLeft,+ ("right" .=) <$> _pRight, ("top" .=) <$> _pTop])++-- | The specifications of a chart.+--+-- /See:/ 'chartSpec' smart constructor.+data ChartSpec = ChartSpec'+ { _csTitle :: !(Maybe Text)+ , _csPieChart :: !(Maybe PieChartSpec)+ , _csBasicChart :: !(Maybe BasicChartSpec)+ , _csHiddenDimensionStrategy :: !(Maybe ChartSpecHiddenDimensionStrategy)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChartSpec' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csTitle'+--+-- * 'csPieChart'+--+-- * 'csBasicChart'+--+-- * 'csHiddenDimensionStrategy'+chartSpec+ :: ChartSpec+chartSpec =+ ChartSpec'+ { _csTitle = Nothing+ , _csPieChart = Nothing+ , _csBasicChart = Nothing+ , _csHiddenDimensionStrategy = Nothing+ }++-- | The title of the chart.+csTitle :: Lens' ChartSpec (Maybe Text)+csTitle = lens _csTitle (\ s a -> s{_csTitle = a})++-- | A pie chart specification.+csPieChart :: Lens' ChartSpec (Maybe PieChartSpec)+csPieChart+ = lens _csPieChart (\ s a -> s{_csPieChart = a})++-- | A basic chart specification, can be one of many kinds of charts. See+-- BasicChartType for the list of all charts this supports.+csBasicChart :: Lens' ChartSpec (Maybe BasicChartSpec)+csBasicChart+ = lens _csBasicChart (\ s a -> s{_csBasicChart = a})++-- | Determines how the charts will use hidden rows or columns.+csHiddenDimensionStrategy :: Lens' ChartSpec (Maybe ChartSpecHiddenDimensionStrategy)+csHiddenDimensionStrategy+ = lens _csHiddenDimensionStrategy+ (\ s a -> s{_csHiddenDimensionStrategy = a})++instance FromJSON ChartSpec where+ parseJSON+ = withObject "ChartSpec"+ (\ o ->+ ChartSpec' <$>+ (o .:? "title") <*> (o .:? "pieChart") <*>+ (o .:? "basicChart")+ <*> (o .:? "hiddenDimensionStrategy"))++instance ToJSON ChartSpec where+ toJSON ChartSpec'{..}+ = object+ (catMaybes+ [("title" .=) <$> _csTitle,+ ("pieChart" .=) <$> _csPieChart,+ ("basicChart" .=) <$> _csBasicChart,+ ("hiddenDimensionStrategy" .=) <$>+ _csHiddenDimensionStrategy])++-- | Properties about a dimension.+--+-- /See:/ 'dimensionProperties' smart constructor.+data DimensionProperties = DimensionProperties'+ { _dpHiddenByFilter :: !(Maybe Bool)+ , _dpPixelSize :: !(Maybe (Textual Int32))+ , _dpHiddenByUser :: !(Maybe Bool)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DimensionProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dpHiddenByFilter'+--+-- * 'dpPixelSize'+--+-- * 'dpHiddenByUser'+dimensionProperties+ :: DimensionProperties+dimensionProperties =+ DimensionProperties'+ { _dpHiddenByFilter = Nothing+ , _dpPixelSize = Nothing+ , _dpHiddenByUser = Nothing+ }++-- | True if this dimension is being filtered. This field is read-only.+dpHiddenByFilter :: Lens' DimensionProperties (Maybe Bool)+dpHiddenByFilter+ = lens _dpHiddenByFilter+ (\ s a -> s{_dpHiddenByFilter = a})++-- | The height (if a row) or width (if a column) of the dimension in pixels.+dpPixelSize :: Lens' DimensionProperties (Maybe Int32)+dpPixelSize+ = lens _dpPixelSize (\ s a -> s{_dpPixelSize = a}) .+ mapping _Coerce++-- | True if this dimension is explicitly hidden.+dpHiddenByUser :: Lens' DimensionProperties (Maybe Bool)+dpHiddenByUser+ = lens _dpHiddenByUser+ (\ s a -> s{_dpHiddenByUser = a})++instance FromJSON DimensionProperties where+ parseJSON+ = withObject "DimensionProperties"+ (\ o ->+ DimensionProperties' <$>+ (o .:? "hiddenByFilter") <*> (o .:? "pixelSize") <*>+ (o .:? "hiddenByUser"))++instance ToJSON DimensionProperties where+ toJSON DimensionProperties'{..}+ = object+ (catMaybes+ [("hiddenByFilter" .=) <$> _dpHiddenByFilter,+ ("pixelSize" .=) <$> _dpPixelSize,+ ("hiddenByUser" .=) <$> _dpHiddenByUser])++-- | The response when retrieving more than one range of values in a+-- spreadsheet.+--+-- /See:/ 'batchGetValuesResponse' smart constructor.+data BatchGetValuesResponse = BatchGetValuesResponse'+ { _bgvrSpreadsheetId :: !(Maybe Text)+ , _bgvrValueRanges :: !(Maybe [ValueRange])+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchGetValuesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bgvrSpreadsheetId'+--+-- * 'bgvrValueRanges'+batchGetValuesResponse+ :: BatchGetValuesResponse+batchGetValuesResponse =+ BatchGetValuesResponse'+ { _bgvrSpreadsheetId = Nothing+ , _bgvrValueRanges = Nothing+ }++-- | The ID of the spreadsheet the data was retrieved from.+bgvrSpreadsheetId :: Lens' BatchGetValuesResponse (Maybe Text)+bgvrSpreadsheetId+ = lens _bgvrSpreadsheetId+ (\ s a -> s{_bgvrSpreadsheetId = a})++-- | The requested values. The order of the ValueRanges is the same as the+-- order of the requested ranges.+bgvrValueRanges :: Lens' BatchGetValuesResponse [ValueRange]+bgvrValueRanges+ = lens _bgvrValueRanges+ (\ s a -> s{_bgvrValueRanges = a})+ . _Default+ . _Coerce++instance FromJSON BatchGetValuesResponse where+ parseJSON+ = withObject "BatchGetValuesResponse"+ (\ o ->+ BatchGetValuesResponse' <$>+ (o .:? "spreadsheetId") <*>+ (o .:? "valueRanges" .!= mempty))++instance ToJSON BatchGetValuesResponse where+ toJSON BatchGetValuesResponse'{..}+ = object+ (catMaybes+ [("spreadsheetId" .=) <$> _bgvrSpreadsheetId,+ ("valueRanges" .=) <$> _bgvrValueRanges])++-- | A single kind of update to apply to a spreadsheet.+--+-- /See:/ 'request'' smart constructor.+data Request' = Request''+ { _reqAddFilterView :: !(Maybe AddFilterViewRequest)+ , _reqDeleteProtectedRange :: !(Maybe DeleteProtectedRangeRequest)+ , _reqUpdateProtectedRange :: !(Maybe UpdateProtectedRangeRequest)+ , _reqUpdateCells :: !(Maybe UpdateCellsRequest)+ , _reqDuplicateFilterView :: !(Maybe DuplicateFilterViewRequest)+ , _reqAddConditionalFormatRule :: !(Maybe AddConditionalFormatRuleRequest)+ , _reqSortRange :: !(Maybe SortRangeRequest)+ , _reqUpdateNamedRange :: !(Maybe UpdateNamedRangeRequest)+ , _reqDeleteNamedRange :: !(Maybe DeleteNamedRangeRequest)+ , _reqClearBasicFilter :: !(Maybe ClearBasicFilterRequest)+ , _reqAppendCells :: !(Maybe AppendCellsRequest)+ , _reqPasteData :: !(Maybe PasteDataRequest)+ , _reqUpdateEmbeddedObjectPosition :: !(Maybe UpdateEmbeddedObjectPositionRequest)+ , _reqCopyPaste :: !(Maybe CopyPasteRequest)+ , _reqAutoResizeDimensions :: !(Maybe AutoResizeDimensionsRequest)+ , _reqAddSheet :: !(Maybe AddSheetRequest)+ , _reqFindReplace :: !(Maybe FindReplaceRequest)+ , _reqDeleteDimension :: !(Maybe DeleteDimensionRequest)+ , _reqCutPaste :: !(Maybe CutPasteRequest)+ , _reqMoveDimension :: !(Maybe MoveDimensionRequest)+ , _reqRepeatCell :: !(Maybe RepeatCellRequest)+ , _reqAddProtectedRange :: !(Maybe AddProtectedRangeRequest)+ , _reqUpdateFilterView :: !(Maybe UpdateFilterViewRequest)+ , _reqDeleteFilterView :: !(Maybe DeleteFilterViewRequest)+ , _reqInsertDimension :: !(Maybe InsertDimensionRequest)+ , _reqUpdateSheetProperties :: !(Maybe UpdateSheetPropertiesRequest)+ , _reqDeleteConditionalFormatRule :: !(Maybe DeleteConditionalFormatRuleRequest)+ , _reqUpdateConditionalFormatRule :: !(Maybe UpdateConditionalFormatRuleRequest)+ , _reqDeleteEmbeddedObject :: !(Maybe DeleteEmbeddedObjectRequest)+ , _reqMergeCells :: !(Maybe MergeCellsRequest)+ , _reqAddNamedRange :: !(Maybe AddNamedRangeRequest)+ , _reqAddChart :: !(Maybe AddChartRequest)+ , _reqDuplicateSheet :: !(Maybe DuplicateSheetRequest)+ , _reqAutoFill :: !(Maybe AutoFillRequest)+ , _reqUpdateDimensionProperties :: !(Maybe UpdateDimensionPropertiesRequest)+ , _reqUpdateChartSpec :: !(Maybe UpdateChartSpecRequest)+ , _reqSetBasicFilter :: !(Maybe SetBasicFilterRequest)+ , _reqTextToColumns :: !(Maybe TextToColumnsRequest)+ , _reqUpdateSpreadsheetProperties :: !(Maybe UpdateSpreadsheetPropertiesRequest)+ , _reqDeleteSheet :: !(Maybe DeleteSheetRequest)+ , _reqUnmergeCells :: !(Maybe UnmergeCellsRequest)+ , _reqUpdateBOrders :: !(Maybe UpdateBOrdersRequest)+ , _reqAppendDimension :: !(Maybe AppendDimensionRequest)+ , _reqSetDataValidation :: !(Maybe SetDataValidationRequest)+ } 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:+--+-- * 'reqAddFilterView'+--+-- * 'reqDeleteProtectedRange'+--+-- * 'reqUpdateProtectedRange'+--+-- * 'reqUpdateCells'+--+-- * 'reqDuplicateFilterView'+--+-- * 'reqAddConditionalFormatRule'+--+-- * 'reqSortRange'+--+-- * 'reqUpdateNamedRange'+--+-- * 'reqDeleteNamedRange'+--+-- * 'reqClearBasicFilter'+--+-- * 'reqAppendCells'+--+-- * 'reqPasteData'+--+-- * 'reqUpdateEmbeddedObjectPosition'+--+-- * 'reqCopyPaste'+--+-- * 'reqAutoResizeDimensions'+--+-- * 'reqAddSheet'+--+-- * 'reqFindReplace'+--+-- * 'reqDeleteDimension'+--+-- * 'reqCutPaste'+--+-- * 'reqMoveDimension'+--+-- * 'reqRepeatCell'+--+-- * 'reqAddProtectedRange'+--+-- * 'reqUpdateFilterView'+--+-- * 'reqDeleteFilterView'+--+-- * 'reqInsertDimension'+--+-- * 'reqUpdateSheetProperties'+--+-- * 'reqDeleteConditionalFormatRule'+--+-- * 'reqUpdateConditionalFormatRule'+--+-- * 'reqDeleteEmbeddedObject'+--+-- * 'reqMergeCells'+--+-- * 'reqAddNamedRange'+--+-- * 'reqAddChart'+--+-- * 'reqDuplicateSheet'+--+-- * 'reqAutoFill'+--+-- * 'reqUpdateDimensionProperties'+--+-- * 'reqUpdateChartSpec'+--+-- * 'reqSetBasicFilter'+--+-- * 'reqTextToColumns'+--+-- * 'reqUpdateSpreadsheetProperties'+--+-- * 'reqDeleteSheet'+--+-- * 'reqUnmergeCells'+--+-- * 'reqUpdateBOrders'+--+-- * 'reqAppendDimension'+--+-- * 'reqSetDataValidation'+request'+ :: Request'+request' =+ Request''+ { _reqAddFilterView = Nothing+ , _reqDeleteProtectedRange = Nothing+ , _reqUpdateProtectedRange = Nothing+ , _reqUpdateCells = Nothing+ , _reqDuplicateFilterView = Nothing+ , _reqAddConditionalFormatRule = Nothing+ , _reqSortRange = Nothing+ , _reqUpdateNamedRange = Nothing+ , _reqDeleteNamedRange = Nothing+ , _reqClearBasicFilter = Nothing+ , _reqAppendCells = Nothing+ , _reqPasteData = Nothing+ , _reqUpdateEmbeddedObjectPosition = Nothing+ , _reqCopyPaste = Nothing+ , _reqAutoResizeDimensions = Nothing+ , _reqAddSheet = Nothing+ , _reqFindReplace = Nothing+ , _reqDeleteDimension = Nothing+ , _reqCutPaste = Nothing+ , _reqMoveDimension = Nothing+ , _reqRepeatCell = Nothing+ , _reqAddProtectedRange = Nothing+ , _reqUpdateFilterView = Nothing+ , _reqDeleteFilterView = Nothing+ , _reqInsertDimension = Nothing+ , _reqUpdateSheetProperties = Nothing+ , _reqDeleteConditionalFormatRule = Nothing+ , _reqUpdateConditionalFormatRule = Nothing+ , _reqDeleteEmbeddedObject = Nothing+ , _reqMergeCells = Nothing+ , _reqAddNamedRange = Nothing+ , _reqAddChart = Nothing+ , _reqDuplicateSheet = Nothing+ , _reqAutoFill = Nothing+ , _reqUpdateDimensionProperties = Nothing+ , _reqUpdateChartSpec = Nothing+ , _reqSetBasicFilter = Nothing+ , _reqTextToColumns = Nothing+ , _reqUpdateSpreadsheetProperties = Nothing+ , _reqDeleteSheet = Nothing+ , _reqUnmergeCells = Nothing+ , _reqUpdateBOrders = Nothing+ , _reqAppendDimension = Nothing+ , _reqSetDataValidation = Nothing+ }++-- | Adds a filter view.+reqAddFilterView :: Lens' Request' (Maybe AddFilterViewRequest)+reqAddFilterView+ = lens _reqAddFilterView+ (\ s a -> s{_reqAddFilterView = a})++-- | Deletes a protected range.+reqDeleteProtectedRange :: Lens' Request' (Maybe DeleteProtectedRangeRequest)+reqDeleteProtectedRange+ = lens _reqDeleteProtectedRange+ (\ s a -> s{_reqDeleteProtectedRange = a})++-- | Updates a protected range.+reqUpdateProtectedRange :: Lens' Request' (Maybe UpdateProtectedRangeRequest)+reqUpdateProtectedRange+ = lens _reqUpdateProtectedRange+ (\ s a -> s{_reqUpdateProtectedRange = a})++-- | Updates many cells at once.+reqUpdateCells :: Lens' Request' (Maybe UpdateCellsRequest)+reqUpdateCells+ = lens _reqUpdateCells+ (\ s a -> s{_reqUpdateCells = a})++-- | Duplicates a filter view.+reqDuplicateFilterView :: Lens' Request' (Maybe DuplicateFilterViewRequest)+reqDuplicateFilterView+ = lens _reqDuplicateFilterView+ (\ s a -> s{_reqDuplicateFilterView = a})++-- | Adds a new conditional format rule.+reqAddConditionalFormatRule :: Lens' Request' (Maybe AddConditionalFormatRuleRequest)+reqAddConditionalFormatRule+ = lens _reqAddConditionalFormatRule+ (\ s a -> s{_reqAddConditionalFormatRule = a})++-- | Sorts data in a range.+reqSortRange :: Lens' Request' (Maybe SortRangeRequest)+reqSortRange+ = lens _reqSortRange (\ s a -> s{_reqSortRange = a})++-- | Updates a named range.+reqUpdateNamedRange :: Lens' Request' (Maybe UpdateNamedRangeRequest)+reqUpdateNamedRange+ = lens _reqUpdateNamedRange+ (\ s a -> s{_reqUpdateNamedRange = a})++-- | Deletes a named range.+reqDeleteNamedRange :: Lens' Request' (Maybe DeleteNamedRangeRequest)+reqDeleteNamedRange+ = lens _reqDeleteNamedRange+ (\ s a -> s{_reqDeleteNamedRange = a})++-- | Clears the basic filter on a sheet.+reqClearBasicFilter :: Lens' Request' (Maybe ClearBasicFilterRequest)+reqClearBasicFilter+ = lens _reqClearBasicFilter+ (\ s a -> s{_reqClearBasicFilter = a})++-- | Appends cells after the last row with data in a sheet.+reqAppendCells :: Lens' Request' (Maybe AppendCellsRequest)+reqAppendCells+ = lens _reqAppendCells+ (\ s a -> s{_reqAppendCells = a})++-- | Pastes data (HTML or delimited) into a sheet.+reqPasteData :: Lens' Request' (Maybe PasteDataRequest)+reqPasteData+ = lens _reqPasteData (\ s a -> s{_reqPasteData = a})++-- | Updates an embedded object\'s (e.g. chart, image) position.+reqUpdateEmbeddedObjectPosition :: Lens' Request' (Maybe UpdateEmbeddedObjectPositionRequest)+reqUpdateEmbeddedObjectPosition+ = lens _reqUpdateEmbeddedObjectPosition+ (\ s a -> s{_reqUpdateEmbeddedObjectPosition = a})++-- | Copies data from one area and pastes it to another.+reqCopyPaste :: Lens' Request' (Maybe CopyPasteRequest)+reqCopyPaste+ = lens _reqCopyPaste (\ s a -> s{_reqCopyPaste = a})++-- | Automatically resizes one or more dimensions based on the contents of+-- the cells in that dimension.+reqAutoResizeDimensions :: Lens' Request' (Maybe AutoResizeDimensionsRequest)+reqAutoResizeDimensions+ = lens _reqAutoResizeDimensions+ (\ s a -> s{_reqAutoResizeDimensions = a})++-- | Adds a sheet.+reqAddSheet :: Lens' Request' (Maybe AddSheetRequest)+reqAddSheet+ = lens _reqAddSheet (\ s a -> s{_reqAddSheet = a})++-- | Finds and replaces occurrences of some text with other text.+reqFindReplace :: Lens' Request' (Maybe FindReplaceRequest)+reqFindReplace+ = lens _reqFindReplace+ (\ s a -> s{_reqFindReplace = a})++-- | Deletes rows or columns in a sheet.+reqDeleteDimension :: Lens' Request' (Maybe DeleteDimensionRequest)+reqDeleteDimension+ = lens _reqDeleteDimension+ (\ s a -> s{_reqDeleteDimension = a})++-- | Cuts data from one area and pastes it to another.+reqCutPaste :: Lens' Request' (Maybe CutPasteRequest)+reqCutPaste+ = lens _reqCutPaste (\ s a -> s{_reqCutPaste = a})++-- | Moves rows or columns to another location in a sheet.+reqMoveDimension :: Lens' Request' (Maybe MoveDimensionRequest)+reqMoveDimension+ = lens _reqMoveDimension+ (\ s a -> s{_reqMoveDimension = a})++-- | Repeats a single cell across a range.+reqRepeatCell :: Lens' Request' (Maybe RepeatCellRequest)+reqRepeatCell+ = lens _reqRepeatCell+ (\ s a -> s{_reqRepeatCell = a})++-- | Adds a protected range.+reqAddProtectedRange :: Lens' Request' (Maybe AddProtectedRangeRequest)+reqAddProtectedRange+ = lens _reqAddProtectedRange+ (\ s a -> s{_reqAddProtectedRange = a})++-- | Updates the properties of a filter view.+reqUpdateFilterView :: Lens' Request' (Maybe UpdateFilterViewRequest)+reqUpdateFilterView+ = lens _reqUpdateFilterView+ (\ s a -> s{_reqUpdateFilterView = a})++-- | Deletes a filter view from a sheet.+reqDeleteFilterView :: Lens' Request' (Maybe DeleteFilterViewRequest)+reqDeleteFilterView+ = lens _reqDeleteFilterView+ (\ s a -> s{_reqDeleteFilterView = a})++-- | Inserts new rows or columns in a sheet.+reqInsertDimension :: Lens' Request' (Maybe InsertDimensionRequest)+reqInsertDimension+ = lens _reqInsertDimension+ (\ s a -> s{_reqInsertDimension = a})++-- | Updates a sheet\'s properties.+reqUpdateSheetProperties :: Lens' Request' (Maybe UpdateSheetPropertiesRequest)+reqUpdateSheetProperties+ = lens _reqUpdateSheetProperties+ (\ s a -> s{_reqUpdateSheetProperties = a})++-- | Deletes an existing conditional format rule.+reqDeleteConditionalFormatRule :: Lens' Request' (Maybe DeleteConditionalFormatRuleRequest)+reqDeleteConditionalFormatRule+ = lens _reqDeleteConditionalFormatRule+ (\ s a -> s{_reqDeleteConditionalFormatRule = a})++-- | Updates an existing conditional format rule.+reqUpdateConditionalFormatRule :: Lens' Request' (Maybe UpdateConditionalFormatRuleRequest)+reqUpdateConditionalFormatRule+ = lens _reqUpdateConditionalFormatRule+ (\ s a -> s{_reqUpdateConditionalFormatRule = a})++-- | Deletes an embedded object (e.g, chart, image) in a sheet.+reqDeleteEmbeddedObject :: Lens' Request' (Maybe DeleteEmbeddedObjectRequest)+reqDeleteEmbeddedObject+ = lens _reqDeleteEmbeddedObject+ (\ s a -> s{_reqDeleteEmbeddedObject = a})++-- | Merges cells together.+reqMergeCells :: Lens' Request' (Maybe MergeCellsRequest)+reqMergeCells+ = lens _reqMergeCells+ (\ s a -> s{_reqMergeCells = a})++-- | Adds a named range.+reqAddNamedRange :: Lens' Request' (Maybe AddNamedRangeRequest)+reqAddNamedRange+ = lens _reqAddNamedRange+ (\ s a -> s{_reqAddNamedRange = a})++-- | Adds a chart.+reqAddChart :: Lens' Request' (Maybe AddChartRequest)+reqAddChart+ = lens _reqAddChart (\ s a -> s{_reqAddChart = a})++-- | Duplicates a sheet.+reqDuplicateSheet :: Lens' Request' (Maybe DuplicateSheetRequest)+reqDuplicateSheet+ = lens _reqDuplicateSheet+ (\ s a -> s{_reqDuplicateSheet = a})++-- | Automatically fills in more data based on existing data.+reqAutoFill :: Lens' Request' (Maybe AutoFillRequest)+reqAutoFill+ = lens _reqAutoFill (\ s a -> s{_reqAutoFill = a})++-- | Updates dimensions\' properties.+reqUpdateDimensionProperties :: Lens' Request' (Maybe UpdateDimensionPropertiesRequest)+reqUpdateDimensionProperties+ = lens _reqUpdateDimensionProperties+ (\ s a -> s{_reqUpdateDimensionProperties = a})++-- | Updates a chart\'s specifications.+reqUpdateChartSpec :: Lens' Request' (Maybe UpdateChartSpecRequest)+reqUpdateChartSpec+ = lens _reqUpdateChartSpec+ (\ s a -> s{_reqUpdateChartSpec = a})++-- | Sets the basic filter on a sheet.+reqSetBasicFilter :: Lens' Request' (Maybe SetBasicFilterRequest)+reqSetBasicFilter+ = lens _reqSetBasicFilter+ (\ s a -> s{_reqSetBasicFilter = a})++-- | Converts a column of text into many columns of text.+reqTextToColumns :: Lens' Request' (Maybe TextToColumnsRequest)+reqTextToColumns+ = lens _reqTextToColumns+ (\ s a -> s{_reqTextToColumns = a})++-- | Updates the spreadsheet\'s properties.+reqUpdateSpreadsheetProperties :: Lens' Request' (Maybe UpdateSpreadsheetPropertiesRequest)+reqUpdateSpreadsheetProperties+ = lens _reqUpdateSpreadsheetProperties+ (\ s a -> s{_reqUpdateSpreadsheetProperties = a})++-- | Deletes a sheet.+reqDeleteSheet :: Lens' Request' (Maybe DeleteSheetRequest)+reqDeleteSheet+ = lens _reqDeleteSheet+ (\ s a -> s{_reqDeleteSheet = a})++-- | Unmerges merged cells.+reqUnmergeCells :: Lens' Request' (Maybe UnmergeCellsRequest)+reqUnmergeCells+ = lens _reqUnmergeCells+ (\ s a -> s{_reqUnmergeCells = a})++-- | Updates the borders in a range of cells.+reqUpdateBOrders :: Lens' Request' (Maybe UpdateBOrdersRequest)+reqUpdateBOrders+ = lens _reqUpdateBOrders+ (\ s a -> s{_reqUpdateBOrders = a})++-- | Appends dimensions to the end of a sheet.+reqAppendDimension :: Lens' Request' (Maybe AppendDimensionRequest)+reqAppendDimension+ = lens _reqAppendDimension+ (\ s a -> s{_reqAppendDimension = a})++-- | Sets data validation for one or more cells.+reqSetDataValidation :: Lens' Request' (Maybe SetDataValidationRequest)+reqSetDataValidation+ = lens _reqSetDataValidation+ (\ s a -> s{_reqSetDataValidation = a})++instance FromJSON Request' where+ parseJSON+ = withObject "Request"+ (\ o ->+ Request'' <$>+ (o .:? "addFilterView") <*>+ (o .:? "deleteProtectedRange")+ <*> (o .:? "updateProtectedRange")+ <*> (o .:? "updateCells")+ <*> (o .:? "duplicateFilterView")+ <*> (o .:? "addConditionalFormatRule")+ <*> (o .:? "sortRange")+ <*> (o .:? "updateNamedRange")+ <*> (o .:? "deleteNamedRange")+ <*> (o .:? "clearBasicFilter")+ <*> (o .:? "appendCells")+ <*> (o .:? "pasteData")+ <*> (o .:? "updateEmbeddedObjectPosition")+ <*> (o .:? "copyPaste")+ <*> (o .:? "autoResizeDimensions")+ <*> (o .:? "addSheet")+ <*> (o .:? "findReplace")+ <*> (o .:? "deleteDimension")+ <*> (o .:? "cutPaste")+ <*> (o .:? "moveDimension")+ <*> (o .:? "repeatCell")+ <*> (o .:? "addProtectedRange")+ <*> (o .:? "updateFilterView")+ <*> (o .:? "deleteFilterView")+ <*> (o .:? "insertDimension")+ <*> (o .:? "updateSheetProperties")+ <*> (o .:? "deleteConditionalFormatRule")+ <*> (o .:? "updateConditionalFormatRule")+ <*> (o .:? "deleteEmbeddedObject")+ <*> (o .:? "mergeCells")+ <*> (o .:? "addNamedRange")+ <*> (o .:? "addChart")+ <*> (o .:? "duplicateSheet")+ <*> (o .:? "autoFill")+ <*> (o .:? "updateDimensionProperties")+ <*> (o .:? "updateChartSpec")+ <*> (o .:? "setBasicFilter")+ <*> (o .:? "textToColumns")+ <*> (o .:? "updateSpreadsheetProperties")+ <*> (o .:? "deleteSheet")+ <*> (o .:? "unmergeCells")+ <*> (o .:? "updateBorders")+ <*> (o .:? "appendDimension")+ <*> (o .:? "setDataValidation"))++instance ToJSON Request' where+ toJSON Request''{..}+ = object+ (catMaybes+ [("addFilterView" .=) <$> _reqAddFilterView,+ ("deleteProtectedRange" .=) <$>+ _reqDeleteProtectedRange,+ ("updateProtectedRange" .=) <$>+ _reqUpdateProtectedRange,+ ("updateCells" .=) <$> _reqUpdateCells,+ ("duplicateFilterView" .=) <$>+ _reqDuplicateFilterView,+ ("addConditionalFormatRule" .=) <$>+ _reqAddConditionalFormatRule,+ ("sortRange" .=) <$> _reqSortRange,+ ("updateNamedRange" .=) <$> _reqUpdateNamedRange,+ ("deleteNamedRange" .=) <$> _reqDeleteNamedRange,+ ("clearBasicFilter" .=) <$> _reqClearBasicFilter,+ ("appendCells" .=) <$> _reqAppendCells,+ ("pasteData" .=) <$> _reqPasteData,+ ("updateEmbeddedObjectPosition" .=) <$>+ _reqUpdateEmbeddedObjectPosition,+ ("copyPaste" .=) <$> _reqCopyPaste,+ ("autoResizeDimensions" .=) <$>+ _reqAutoResizeDimensions,+ ("addSheet" .=) <$> _reqAddSheet,+ ("findReplace" .=) <$> _reqFindReplace,+ ("deleteDimension" .=) <$> _reqDeleteDimension,+ ("cutPaste" .=) <$> _reqCutPaste,+ ("moveDimension" .=) <$> _reqMoveDimension,+ ("repeatCell" .=) <$> _reqRepeatCell,+ ("addProtectedRange" .=) <$> _reqAddProtectedRange,+ ("updateFilterView" .=) <$> _reqUpdateFilterView,+ ("deleteFilterView" .=) <$> _reqDeleteFilterView,+ ("insertDimension" .=) <$> _reqInsertDimension,+ ("updateSheetProperties" .=) <$>+ _reqUpdateSheetProperties,+ ("deleteConditionalFormatRule" .=) <$>+ _reqDeleteConditionalFormatRule,+ ("updateConditionalFormatRule" .=) <$>+ _reqUpdateConditionalFormatRule,+ ("deleteEmbeddedObject" .=) <$>+ _reqDeleteEmbeddedObject,+ ("mergeCells" .=) <$> _reqMergeCells,+ ("addNamedRange" .=) <$> _reqAddNamedRange,+ ("addChart" .=) <$> _reqAddChart,+ ("duplicateSheet" .=) <$> _reqDuplicateSheet,+ ("autoFill" .=) <$> _reqAutoFill,+ ("updateDimensionProperties" .=) <$>+ _reqUpdateDimensionProperties,+ ("updateChartSpec" .=) <$> _reqUpdateChartSpec,+ ("setBasicFilter" .=) <$> _reqSetBasicFilter,+ ("textToColumns" .=) <$> _reqTextToColumns,+ ("updateSpreadsheetProperties" .=) <$>+ _reqUpdateSpreadsheetProperties,+ ("deleteSheet" .=) <$> _reqDeleteSheet,+ ("unmergeCells" .=) <$> _reqUnmergeCells,+ ("updateBorders" .=) <$> _reqUpdateBOrders,+ ("appendDimension" .=) <$> _reqAppendDimension,+ ("setDataValidation" .=) <$> _reqSetDataValidation])++-- | The result of deleting a conditional format rule.+--+-- /See:/ 'deleteConditionalFormatRuleResponse' smart constructor.+newtype DeleteConditionalFormatRuleResponse = DeleteConditionalFormatRuleResponse'+ { _dcfrrRule :: Maybe ConditionalFormatRule+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteConditionalFormatRuleResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcfrrRule'+deleteConditionalFormatRuleResponse+ :: DeleteConditionalFormatRuleResponse+deleteConditionalFormatRuleResponse =+ DeleteConditionalFormatRuleResponse'+ { _dcfrrRule = Nothing+ }++-- | The rule that was deleted.+dcfrrRule :: Lens' DeleteConditionalFormatRuleResponse (Maybe ConditionalFormatRule)+dcfrrRule+ = lens _dcfrrRule (\ s a -> s{_dcfrrRule = a})++instance FromJSON DeleteConditionalFormatRuleResponse+ where+ parseJSON+ = withObject "DeleteConditionalFormatRuleResponse"+ (\ o ->+ DeleteConditionalFormatRuleResponse' <$>+ (o .:? "rule"))++instance ToJSON DeleteConditionalFormatRuleResponse+ where+ toJSON DeleteConditionalFormatRuleResponse'{..}+ = object (catMaybes [("rule" .=) <$> _dcfrrRule])++-- | The result of updating a conditional format rule.+--+-- /See:/ 'updateConditionalFormatRuleResponse' smart constructor.+data UpdateConditionalFormatRuleResponse = UpdateConditionalFormatRuleResponse'+ { _uNewRule :: !(Maybe ConditionalFormatRule)+ , _uNewIndex :: !(Maybe (Textual Int32))+ , _uOldIndex :: !(Maybe (Textual Int32))+ , _uOldRule :: !(Maybe ConditionalFormatRule)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateConditionalFormatRuleResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uNewRule'+--+-- * 'uNewIndex'+--+-- * 'uOldIndex'+--+-- * 'uOldRule'+updateConditionalFormatRuleResponse+ :: UpdateConditionalFormatRuleResponse+updateConditionalFormatRuleResponse =+ UpdateConditionalFormatRuleResponse'+ { _uNewRule = Nothing+ , _uNewIndex = Nothing+ , _uOldIndex = Nothing+ , _uOldRule = Nothing+ }++-- | The new rule that replaced the old rule (if replacing), or the rule that+-- was moved (if moved)+uNewRule :: Lens' UpdateConditionalFormatRuleResponse (Maybe ConditionalFormatRule)+uNewRule = lens _uNewRule (\ s a -> s{_uNewRule = a})++-- | The index of the new rule.+uNewIndex :: Lens' UpdateConditionalFormatRuleResponse (Maybe Int32)+uNewIndex+ = lens _uNewIndex (\ s a -> s{_uNewIndex = a}) .+ mapping _Coerce++-- | The old index of the rule. Not set if a rule was replaced (because it is+-- the same as new_index).+uOldIndex :: Lens' UpdateConditionalFormatRuleResponse (Maybe Int32)+uOldIndex+ = lens _uOldIndex (\ s a -> s{_uOldIndex = a}) .+ mapping _Coerce++-- | The old (deleted) rule. Not set if a rule was moved (because it is the+-- same as new_rule).+uOldRule :: Lens' UpdateConditionalFormatRuleResponse (Maybe ConditionalFormatRule)+uOldRule = lens _uOldRule (\ s a -> s{_uOldRule = a})++instance FromJSON UpdateConditionalFormatRuleResponse+ where+ parseJSON+ = withObject "UpdateConditionalFormatRuleResponse"+ (\ o ->+ UpdateConditionalFormatRuleResponse' <$>+ (o .:? "newRule") <*> (o .:? "newIndex") <*>+ (o .:? "oldIndex")+ <*> (o .:? "oldRule"))++instance ToJSON UpdateConditionalFormatRuleResponse+ where+ toJSON UpdateConditionalFormatRuleResponse'{..}+ = object+ (catMaybes+ [("newRule" .=) <$> _uNewRule,+ ("newIndex" .=) <$> _uNewIndex,+ ("oldIndex" .=) <$> _uOldIndex,+ ("oldRule" .=) <$> _uOldRule])
+ gen/Network/Google/Sheets/Types/Sum.hs view
@@ -0,0 +1,1835 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Sheets.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.Sheets.Types.Sum where++import Network.Google.Prelude++-- | What kind of data to paste.+data CopyPasteRequestPasteType+ = PasteNormal+ -- ^ @PASTE_NORMAL@+ -- Paste values, formulas, formats, and merges.+ | PasteValues+ -- ^ @PASTE_VALUES@+ -- Paste the values ONLY without formats, formulas, or merges.+ | PasteFormat+ -- ^ @PASTE_FORMAT@+ -- Paste the format and data validation only.+ | PasteNoBOrders+ -- ^ @PASTE_NO_BORDERS@+ -- Like PASTE_NORMAL but without borders.+ | PasteFormula+ -- ^ @PASTE_FORMULA@+ -- Paste the formulas only.+ | PasteDataValidation+ -- ^ @PASTE_DATA_VALIDATION@+ -- Paste the data validation only.+ | PasteConditionalFormatting+ -- ^ @PASTE_CONDITIONAL_FORMATTING@+ -- Paste the conditional formatting rules only.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable CopyPasteRequestPasteType++instance FromHttpApiData CopyPasteRequestPasteType where+ parseQueryParam = \case+ "PASTE_NORMAL" -> Right PasteNormal+ "PASTE_VALUES" -> Right PasteValues+ "PASTE_FORMAT" -> Right PasteFormat+ "PASTE_NO_BORDERS" -> Right PasteNoBOrders+ "PASTE_FORMULA" -> Right PasteFormula+ "PASTE_DATA_VALIDATION" -> Right PasteDataValidation+ "PASTE_CONDITIONAL_FORMATTING" -> Right PasteConditionalFormatting+ x -> Left ("Unable to parse CopyPasteRequestPasteType from: " <> x)++instance ToHttpApiData CopyPasteRequestPasteType where+ toQueryParam = \case+ PasteNormal -> "PASTE_NORMAL"+ PasteValues -> "PASTE_VALUES"+ PasteFormat -> "PASTE_FORMAT"+ PasteNoBOrders -> "PASTE_NO_BORDERS"+ PasteFormula -> "PASTE_FORMULA"+ PasteDataValidation -> "PASTE_DATA_VALIDATION"+ PasteConditionalFormatting -> "PASTE_CONDITIONAL_FORMATTING"++instance FromJSON CopyPasteRequestPasteType where+ parseJSON = parseJSONText "CopyPasteRequestPasteType"++instance ToJSON CopyPasteRequestPasteType where+ toJSON = toJSONText++-- | The position of this axis.+data BasicChartAxisPosition+ = BasicChartAxisPositionUnspecified+ -- ^ @BASIC_CHART_AXIS_POSITION_UNSPECIFIED@+ -- Default value, do not use.+ | BottomAxis+ -- ^ @BOTTOM_AXIS@+ -- The axis rendered at the bottom of a chart. For most charts, this is the+ -- standard major axis. For bar charts, this is a minor axis.+ | LeftAxis+ -- ^ @LEFT_AXIS@+ -- The axis rendered at the left of a chart. For most charts, this is a+ -- minor axis. For bar charts, this is the standard major axis.+ | RightAxis+ -- ^ @RIGHT_AXIS@+ -- The axis rendered at the right of a chart. For most charts, this is a+ -- minor axis. For bar charts, this is an unusual major axis.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable BasicChartAxisPosition++instance FromHttpApiData BasicChartAxisPosition where+ parseQueryParam = \case+ "BASIC_CHART_AXIS_POSITION_UNSPECIFIED" -> Right BasicChartAxisPositionUnspecified+ "BOTTOM_AXIS" -> Right BottomAxis+ "LEFT_AXIS" -> Right LeftAxis+ "RIGHT_AXIS" -> Right RightAxis+ x -> Left ("Unable to parse BasicChartAxisPosition from: " <> x)++instance ToHttpApiData BasicChartAxisPosition where+ toQueryParam = \case+ BasicChartAxisPositionUnspecified -> "BASIC_CHART_AXIS_POSITION_UNSPECIFIED"+ BottomAxis -> "BOTTOM_AXIS"+ LeftAxis -> "LEFT_AXIS"+ RightAxis -> "RIGHT_AXIS"++instance FromJSON BasicChartAxisPosition where+ parseJSON = parseJSONText "BasicChartAxisPosition"++instance ToJSON BasicChartAxisPosition where+ toJSON = toJSONText++-- | The minor axis that will specify the range of values for this series.+-- For example, if charting stocks over time, the \"Volume\" series may+-- want to be pinned to the right with the prices pinned to the left,+-- because the scale of trading volume is different than the scale of+-- prices. It is an error to specify an axis that isn\'t a valid minor axis+-- for the chart\'s type.+data BasicChartSeriesTargetAxis+ = BCSTABasicChartAxisPositionUnspecified+ -- ^ @BASIC_CHART_AXIS_POSITION_UNSPECIFIED@+ -- Default value, do not use.+ | BCSTABottomAxis+ -- ^ @BOTTOM_AXIS@+ -- The axis rendered at the bottom of a chart. For most charts, this is the+ -- standard major axis. For bar charts, this is a minor axis.+ | BCSTALeftAxis+ -- ^ @LEFT_AXIS@+ -- The axis rendered at the left of a chart. For most charts, this is a+ -- minor axis. For bar charts, this is the standard major axis.+ | BCSTARightAxis+ -- ^ @RIGHT_AXIS@+ -- The axis rendered at the right of a chart. For most charts, this is a+ -- minor axis. For bar charts, this is an unusual major axis.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable BasicChartSeriesTargetAxis++instance FromHttpApiData BasicChartSeriesTargetAxis where+ parseQueryParam = \case+ "BASIC_CHART_AXIS_POSITION_UNSPECIFIED" -> Right BCSTABasicChartAxisPositionUnspecified+ "BOTTOM_AXIS" -> Right BCSTABottomAxis+ "LEFT_AXIS" -> Right BCSTALeftAxis+ "RIGHT_AXIS" -> Right BCSTARightAxis+ x -> Left ("Unable to parse BasicChartSeriesTargetAxis from: " <> x)++instance ToHttpApiData BasicChartSeriesTargetAxis where+ toQueryParam = \case+ BCSTABasicChartAxisPositionUnspecified -> "BASIC_CHART_AXIS_POSITION_UNSPECIFIED"+ BCSTABottomAxis -> "BOTTOM_AXIS"+ BCSTALeftAxis -> "LEFT_AXIS"+ BCSTARightAxis -> "RIGHT_AXIS"++instance FromJSON BasicChartSeriesTargetAxis where+ parseJSON = parseJSONText "BasicChartSeriesTargetAxis"++instance ToJSON BasicChartSeriesTargetAxis where+ toJSON = toJSONText++-- | Whether rows or columns should be appended.+data AppendDimensionRequestDimension+ = DimensionUnspecified+ -- ^ @DIMENSION_UNSPECIFIED@+ -- The default value, do not use.+ | Rows+ -- ^ @ROWS@+ -- Operates on the rows of a sheet.+ | Columns+ -- ^ @COLUMNS@+ -- Operates on the columns of a sheet.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable AppendDimensionRequestDimension++instance FromHttpApiData AppendDimensionRequestDimension where+ parseQueryParam = \case+ "DIMENSION_UNSPECIFIED" -> Right DimensionUnspecified+ "ROWS" -> Right Rows+ "COLUMNS" -> Right Columns+ x -> Left ("Unable to parse AppendDimensionRequestDimension from: " <> x)++instance ToHttpApiData AppendDimensionRequestDimension where+ toQueryParam = \case+ DimensionUnspecified -> "DIMENSION_UNSPECIFIED"+ Rows -> "ROWS"+ Columns -> "COLUMNS"++instance FromJSON AppendDimensionRequestDimension where+ parseJSON = parseJSONText "AppendDimensionRequestDimension"++instance ToJSON AppendDimensionRequestDimension where+ toJSON = toJSONText++-- | The dimension of the span.+data DimensionRangeDimension+ = DRDDimensionUnspecified+ -- ^ @DIMENSION_UNSPECIFIED@+ -- The default value, do not use.+ | DRDRows+ -- ^ @ROWS@+ -- Operates on the rows of a sheet.+ | DRDColumns+ -- ^ @COLUMNS@+ -- Operates on the columns of a sheet.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DimensionRangeDimension++instance FromHttpApiData DimensionRangeDimension where+ parseQueryParam = \case+ "DIMENSION_UNSPECIFIED" -> Right DRDDimensionUnspecified+ "ROWS" -> Right DRDRows+ "COLUMNS" -> Right DRDColumns+ x -> Left ("Unable to parse DimensionRangeDimension from: " <> x)++instance ToHttpApiData DimensionRangeDimension where+ toQueryParam = \case+ DRDDimensionUnspecified -> "DIMENSION_UNSPECIFIED"+ DRDRows -> "ROWS"+ DRDColumns -> "COLUMNS"++instance FromJSON DimensionRangeDimension where+ parseJSON = parseJSONText "DimensionRangeDimension"++instance ToJSON DimensionRangeDimension where+ toJSON = toJSONText++-- | The dimension that data should be filled into.+data SourceAndDestinationDimension+ = SADDDimensionUnspecified+ -- ^ @DIMENSION_UNSPECIFIED@+ -- The default value, do not use.+ | SADDRows+ -- ^ @ROWS@+ -- Operates on the rows of a sheet.+ | SADDColumns+ -- ^ @COLUMNS@+ -- Operates on the columns of a sheet.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable SourceAndDestinationDimension++instance FromHttpApiData SourceAndDestinationDimension where+ parseQueryParam = \case+ "DIMENSION_UNSPECIFIED" -> Right SADDDimensionUnspecified+ "ROWS" -> Right SADDRows+ "COLUMNS" -> Right SADDColumns+ x -> Left ("Unable to parse SourceAndDestinationDimension from: " <> x)++instance ToHttpApiData SourceAndDestinationDimension where+ toQueryParam = \case+ SADDDimensionUnspecified -> "DIMENSION_UNSPECIFIED"+ SADDRows -> "ROWS"+ SADDColumns -> "COLUMNS"++instance FromJSON SourceAndDestinationDimension where+ parseJSON = parseJSONText "SourceAndDestinationDimension"++instance ToJSON SourceAndDestinationDimension where+ toJSON = toJSONText++-- | The wrap strategy for the value in the cell.+data CellFormatWrapStrategy+ = WrapStrategyUnspecified+ -- ^ @WRAP_STRATEGY_UNSPECIFIED@+ -- The default value, do not use.+ | OverflowCell+ -- ^ @OVERFLOW_CELL@+ -- Lines that are longer than the cell width will be written in the next+ -- cell over, so long as that cell is empty. If the next cell over is+ -- non-empty, this behaves the same as CLIP. The text will never wrap to+ -- the next line unless the user manually inserts a new line. Example: |+ -- First sentence. | | Manual newline that is very long. \<- Text continues+ -- into next cell | Next newline. |+ | LegacyWrap+ -- ^ @LEGACY_WRAP@+ -- This wrap strategy represents the old Google Sheets wrap strategy where+ -- words that are longer than a line are clipped rather than broken. This+ -- strategy is not supported on all platforms and is being phased out.+ -- Example: | Cell has a | | loooooooooo| \<- Word is clipped. | word. |+ | Clip+ -- ^ @CLIP@+ -- Lines that are longer than the cell width will be clipped. The text will+ -- never wrap to the next line unless the user manually inserts a new line.+ -- Example: | First sentence. | | Manual newline t| \<- Text is clipped |+ -- Next newline. |+ | Wrap+ -- ^ @WRAP@+ -- Words that are longer than a line are wrapped at the character level+ -- rather than clipped. Example: | Cell has a | | loooooooooo| \<- Word is+ -- broken. | ong word. |+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable CellFormatWrapStrategy++instance FromHttpApiData CellFormatWrapStrategy where+ parseQueryParam = \case+ "WRAP_STRATEGY_UNSPECIFIED" -> Right WrapStrategyUnspecified+ "OVERFLOW_CELL" -> Right OverflowCell+ "LEGACY_WRAP" -> Right LegacyWrap+ "CLIP" -> Right Clip+ "WRAP" -> Right Wrap+ x -> Left ("Unable to parse CellFormatWrapStrategy from: " <> x)++instance ToHttpApiData CellFormatWrapStrategy where+ toQueryParam = \case+ WrapStrategyUnspecified -> "WRAP_STRATEGY_UNSPECIFIED"+ OverflowCell -> "OVERFLOW_CELL"+ LegacyWrap -> "LEGACY_WRAP"+ Clip -> "CLIP"+ Wrap -> "WRAP"++instance FromJSON CellFormatWrapStrategy where+ parseJSON = parseJSONText "CellFormatWrapStrategy"++instance ToJSON CellFormatWrapStrategy where+ toJSON = toJSONText++-- | How the input data should be interpreted.+data BatchUpdateValuesRequestValueInputOption+ = InputValueOptionUnspecified+ -- ^ @INPUT_VALUE_OPTION_UNSPECIFIED@+ -- Default input value. This value must not be used.+ | Raw+ -- ^ @RAW@+ -- The values the user has entered will not be parsed and will be stored+ -- as-is.+ | UserEntered+ -- ^ @USER_ENTERED@+ -- The values will be parsed as if the user typed them into the UI. Numbers+ -- will stay as numbers, but strings may be converted to numbers, dates,+ -- etc. following the same rules that are applied when entering text into a+ -- cell via the Google Sheets UI.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable BatchUpdateValuesRequestValueInputOption++instance FromHttpApiData BatchUpdateValuesRequestValueInputOption where+ parseQueryParam = \case+ "INPUT_VALUE_OPTION_UNSPECIFIED" -> Right InputValueOptionUnspecified+ "RAW" -> Right Raw+ "USER_ENTERED" -> Right UserEntered+ x -> Left ("Unable to parse BatchUpdateValuesRequestValueInputOption from: " <> x)++instance ToHttpApiData BatchUpdateValuesRequestValueInputOption where+ toQueryParam = \case+ InputValueOptionUnspecified -> "INPUT_VALUE_OPTION_UNSPECIFIED"+ Raw -> "RAW"+ UserEntered -> "USER_ENTERED"++instance FromJSON BatchUpdateValuesRequestValueInputOption where+ parseJSON = parseJSONText "BatchUpdateValuesRequestValueInputOption"++instance ToJSON BatchUpdateValuesRequestValueInputOption where+ toJSON = toJSONText++-- | Where the legend of the pie chart should be drawn.+data PieChartSpecLegendPosition+ = PieChartLegendPositionUnspecified+ -- ^ @PIE_CHART_LEGEND_POSITION_UNSPECIFIED@+ -- Default value, do not use.+ | BottomLegend+ -- ^ @BOTTOM_LEGEND@+ -- The legend is rendered on the bottom of the chart.+ | LeftLegend+ -- ^ @LEFT_LEGEND@+ -- The legend is rendered on the left of the chart.+ | RightLegend+ -- ^ @RIGHT_LEGEND@+ -- The legend is rendered on the right of the chart.+ | TopLegend+ -- ^ @TOP_LEGEND@+ -- The legend is rendered on the top of the chart.+ | NoLegend+ -- ^ @NO_LEGEND@+ -- No legend is rendered.+ | LabeledLegend+ -- ^ @LABELED_LEGEND@+ -- Each pie slice has a label attached to it.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PieChartSpecLegendPosition++instance FromHttpApiData PieChartSpecLegendPosition where+ parseQueryParam = \case+ "PIE_CHART_LEGEND_POSITION_UNSPECIFIED" -> Right PieChartLegendPositionUnspecified+ "BOTTOM_LEGEND" -> Right BottomLegend+ "LEFT_LEGEND" -> Right LeftLegend+ "RIGHT_LEGEND" -> Right RightLegend+ "TOP_LEGEND" -> Right TopLegend+ "NO_LEGEND" -> Right NoLegend+ "LABELED_LEGEND" -> Right LabeledLegend+ x -> Left ("Unable to parse PieChartSpecLegendPosition from: " <> x)++instance ToHttpApiData PieChartSpecLegendPosition where+ toQueryParam = \case+ PieChartLegendPositionUnspecified -> "PIE_CHART_LEGEND_POSITION_UNSPECIFIED"+ BottomLegend -> "BOTTOM_LEGEND"+ LeftLegend -> "LEFT_LEGEND"+ RightLegend -> "RIGHT_LEGEND"+ TopLegend -> "TOP_LEGEND"+ NoLegend -> "NO_LEGEND"+ LabeledLegend -> "LABELED_LEGEND"++instance FromJSON PieChartSpecLegendPosition where+ parseJSON = parseJSONText "PieChartSpecLegendPosition"++instance ToJSON PieChartSpecLegendPosition where+ toJSON = toJSONText++-- | The vertical alignment of the value in the cell.+data CellFormatVerticalAlignment+ = VerticalAlignUnspecified+ -- ^ @VERTICAL_ALIGN_UNSPECIFIED@+ -- The vertical alignment is not specified. Do not use this.+ | Top+ -- ^ @TOP@+ -- The text is explicitly aligned to the top of the cell.+ | Middle+ -- ^ @MIDDLE@+ -- The text is explicitly aligned to the middle of the cell.+ | Bottom+ -- ^ @BOTTOM@+ -- The text is explicitly aligned to the bottom of the cell.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable CellFormatVerticalAlignment++instance FromHttpApiData CellFormatVerticalAlignment where+ parseQueryParam = \case+ "VERTICAL_ALIGN_UNSPECIFIED" -> Right VerticalAlignUnspecified+ "TOP" -> Right Top+ "MIDDLE" -> Right Middle+ "BOTTOM" -> Right Bottom+ x -> Left ("Unable to parse CellFormatVerticalAlignment from: " <> x)++instance ToHttpApiData CellFormatVerticalAlignment where+ toQueryParam = \case+ VerticalAlignUnspecified -> "VERTICAL_ALIGN_UNSPECIFIED"+ Top -> "TOP"+ Middle -> "MIDDLE"+ Bottom -> "BOTTOM"++instance FromJSON CellFormatVerticalAlignment where+ parseJSON = parseJSONText "CellFormatVerticalAlignment"++instance ToJSON CellFormatVerticalAlignment where+ toJSON = toJSONText++-- | The type of the number format. When writing, this field must be set.+data NumberFormatType+ = NumberFormatTypeUnspecified+ -- ^ @NUMBER_FORMAT_TYPE_UNSPECIFIED@+ -- The number format is not specified and is based on the contents of the+ -- cell. Do not explicitly use this.+ | Text+ -- ^ @TEXT@+ -- Text formatting, e.g \`1000.12\`+ | Number+ -- ^ @NUMBER@+ -- Number formatting, e.g, \`1,000.12\`+ | Percent+ -- ^ @PERCENT@+ -- Percent formatting, e.g \`10.12%\`+ | Currency+ -- ^ @CURRENCY@+ -- Currency formatting, e.g \`$1,000.12\`+ | Date+ -- ^ @DATE@+ -- Date formatting, e.g \`9\/26\/2008\`+ | Time+ -- ^ @TIME@+ -- Time formatting, e.g \`3:59:00 PM\`+ | DateTime+ -- ^ @DATE_TIME@+ -- Date+Time formatting, e.g \`9\/26\/08 15:59:00\`+ | Scientific+ -- ^ @SCIENTIFIC@+ -- Scientific number formatting, e.g \`1.01E+03\`+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable NumberFormatType++instance FromHttpApiData NumberFormatType where+ parseQueryParam = \case+ "NUMBER_FORMAT_TYPE_UNSPECIFIED" -> Right NumberFormatTypeUnspecified+ "TEXT" -> Right Text+ "NUMBER" -> Right Number+ "PERCENT" -> Right Percent+ "CURRENCY" -> Right Currency+ "DATE" -> Right Date+ "TIME" -> Right Time+ "DATE_TIME" -> Right DateTime+ "SCIENTIFIC" -> Right Scientific+ x -> Left ("Unable to parse NumberFormatType from: " <> x)++instance ToHttpApiData NumberFormatType where+ toQueryParam = \case+ NumberFormatTypeUnspecified -> "NUMBER_FORMAT_TYPE_UNSPECIFIED"+ Text -> "TEXT"+ Number -> "NUMBER"+ Percent -> "PERCENT"+ Currency -> "CURRENCY"+ Date -> "DATE"+ Time -> "TIME"+ DateTime -> "DATE_TIME"+ Scientific -> "SCIENTIFIC"++instance FromJSON NumberFormatType where+ parseJSON = parseJSONText "NumberFormatType"++instance ToJSON NumberFormatType where+ toJSON = toJSONText++-- | A relative date (based on the current date). Valid only if the type is+-- DATE_BEFORE, DATE_AFTER, DATE_ON_OR_BEFORE or DATE_ON_OR_AFTER. Relative+-- dates are not supported in data validation. They are supported only in+-- conditional formatting and conditional filters.+data ConditionValueRelativeDate+ = RelativeDateUnspecified+ -- ^ @RELATIVE_DATE_UNSPECIFIED@+ -- Default value, do not use.+ | PastYear+ -- ^ @PAST_YEAR@+ -- The value is one year before today.+ | PastMonth+ -- ^ @PAST_MONTH@+ -- The value is one month before today.+ | PastWeek+ -- ^ @PAST_WEEK@+ -- The value is one week before today.+ | Yesterday+ -- ^ @YESTERDAY@+ -- The value is yesterday.+ | Today+ -- ^ @TODAY@+ -- The value is today.+ | Tomorrow+ -- ^ @TOMORROW@+ -- The value is tomorrow.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ConditionValueRelativeDate++instance FromHttpApiData ConditionValueRelativeDate where+ parseQueryParam = \case+ "RELATIVE_DATE_UNSPECIFIED" -> Right RelativeDateUnspecified+ "PAST_YEAR" -> Right PastYear+ "PAST_MONTH" -> Right PastMonth+ "PAST_WEEK" -> Right PastWeek+ "YESTERDAY" -> Right Yesterday+ "TODAY" -> Right Today+ "TOMORROW" -> Right Tomorrow+ x -> Left ("Unable to parse ConditionValueRelativeDate from: " <> x)++instance ToHttpApiData ConditionValueRelativeDate where+ toQueryParam = \case+ RelativeDateUnspecified -> "RELATIVE_DATE_UNSPECIFIED"+ PastYear -> "PAST_YEAR"+ PastMonth -> "PAST_MONTH"+ PastWeek -> "PAST_WEEK"+ Yesterday -> "YESTERDAY"+ Today -> "TODAY"+ Tomorrow -> "TOMORROW"++instance FromJSON ConditionValueRelativeDate where+ parseJSON = parseJSONText "ConditionValueRelativeDate"++instance ToJSON ConditionValueRelativeDate where+ toJSON = toJSONText++-- | The order data should be sorted.+data SortSpecSortOrder+ = SortOrderUnspecified+ -- ^ @SORT_ORDER_UNSPECIFIED@+ -- Default value, do not use this.+ | Ascending+ -- ^ @ASCENDING@+ -- Sort ascending.+ | Descending+ -- ^ @DESCENDING@+ -- Sort descending.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable SortSpecSortOrder++instance FromHttpApiData SortSpecSortOrder where+ parseQueryParam = \case+ "SORT_ORDER_UNSPECIFIED" -> Right SortOrderUnspecified+ "ASCENDING" -> Right Ascending+ "DESCENDING" -> Right Descending+ x -> Left ("Unable to parse SortSpecSortOrder from: " <> x)++instance ToHttpApiData SortSpecSortOrder where+ toQueryParam = \case+ SortOrderUnspecified -> "SORT_ORDER_UNSPECIFIED"+ Ascending -> "ASCENDING"+ Descending -> "DESCENDING"++instance FromJSON SortSpecSortOrder where+ parseJSON = parseJSONText "SortSpecSortOrder"++instance ToJSON SortSpecSortOrder where+ toJSON = toJSONText++-- | A function to summarize the value. If formula is set, the only supported+-- values are SUM and CUSTOM. If sourceColumnOffset is set, then \`CUSTOM\`+-- is not supported.+data PivotValueSummarizeFunction+ = PivotStandardValueFunctionUnspecified+ -- ^ @PIVOT_STANDARD_VALUE_FUNCTION_UNSPECIFIED@+ -- The default, do not use.+ | Sum+ -- ^ @SUM@+ -- Corresponds to the \`SUM\` function.+ | Counta+ -- ^ @COUNTA@+ -- Corresponds to the \`COUNTA\` function.+ | Count+ -- ^ @COUNT@+ -- Corresponds to the \`COUNT\` function.+ | Countunique+ -- ^ @COUNTUNIQUE@+ -- Corresponds to the \`COUNTUNIQUE\` function.+ | Average+ -- ^ @AVERAGE@+ -- Corresponds to the \`AVERAGE\` function.+ | Max+ -- ^ @MAX@+ -- Corresponds to the \`MAX\` function.+ | Min+ -- ^ @MIN@+ -- Corresponds to the \`MIN\` function.+ | Median+ -- ^ @MEDIAN@+ -- Corresponds to the \`MEDIAN\` function.+ | Product+ -- ^ @PRODUCT@+ -- Corresponds to the \`PRODUCT\` function.+ | Stdev+ -- ^ @STDEV@+ -- Corresponds to the \`STDEV\` function.+ | Stdevp+ -- ^ @STDEVP@+ -- Corresponds to the \`STDEVP\` function.+ | Var+ -- ^ @VAR@+ -- Corresponds to the \`VAR\` function.+ | Varp+ -- ^ @VARP@+ -- Corresponds to the \`VARP\` function.+ | Custom+ -- ^ @CUSTOM@+ -- Indicates the formula should be used as-is. Only valid if+ -- PivotValue.formula was set.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PivotValueSummarizeFunction++instance FromHttpApiData PivotValueSummarizeFunction where+ parseQueryParam = \case+ "PIVOT_STANDARD_VALUE_FUNCTION_UNSPECIFIED" -> Right PivotStandardValueFunctionUnspecified+ "SUM" -> Right Sum+ "COUNTA" -> Right Counta+ "COUNT" -> Right Count+ "COUNTUNIQUE" -> Right Countunique+ "AVERAGE" -> Right Average+ "MAX" -> Right Max+ "MIN" -> Right Min+ "MEDIAN" -> Right Median+ "PRODUCT" -> Right Product+ "STDEV" -> Right Stdev+ "STDEVP" -> Right Stdevp+ "VAR" -> Right Var+ "VARP" -> Right Varp+ "CUSTOM" -> Right Custom+ x -> Left ("Unable to parse PivotValueSummarizeFunction from: " <> x)++instance ToHttpApiData PivotValueSummarizeFunction where+ toQueryParam = \case+ PivotStandardValueFunctionUnspecified -> "PIVOT_STANDARD_VALUE_FUNCTION_UNSPECIFIED"+ Sum -> "SUM"+ Counta -> "COUNTA"+ Count -> "COUNT"+ Countunique -> "COUNTUNIQUE"+ Average -> "AVERAGE"+ Max -> "MAX"+ Min -> "MIN"+ Median -> "MEDIAN"+ Product -> "PRODUCT"+ Stdev -> "STDEV"+ Stdevp -> "STDEVP"+ Var -> "VAR"+ Varp -> "VARP"+ Custom -> "CUSTOM"++instance FromJSON PivotValueSummarizeFunction where+ parseJSON = parseJSONText "PivotValueSummarizeFunction"++instance ToJSON PivotValueSummarizeFunction where+ toJSON = toJSONText++-- | How a hyperlink, if it exists, should be displayed in the cell.+data CellFormatHyperlinkDisplayType+ = HyperlinkDisplayTypeUnspecified+ -- ^ @HYPERLINK_DISPLAY_TYPE_UNSPECIFIED@+ -- The default value: the hyperlink is rendered. Do not use this.+ | Linked+ -- ^ @LINKED@+ -- A hyperlink should be explicitly rendered.+ | PlainText+ -- ^ @PLAIN_TEXT@+ -- A hyperlink should not be rendered.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable CellFormatHyperlinkDisplayType++instance FromHttpApiData CellFormatHyperlinkDisplayType where+ parseQueryParam = \case+ "HYPERLINK_DISPLAY_TYPE_UNSPECIFIED" -> Right HyperlinkDisplayTypeUnspecified+ "LINKED" -> Right Linked+ "PLAIN_TEXT" -> Right PlainText+ x -> Left ("Unable to parse CellFormatHyperlinkDisplayType from: " <> x)++instance ToHttpApiData CellFormatHyperlinkDisplayType where+ toQueryParam = \case+ HyperlinkDisplayTypeUnspecified -> "HYPERLINK_DISPLAY_TYPE_UNSPECIFIED"+ Linked -> "LINKED"+ PlainText -> "PLAIN_TEXT"++instance FromJSON CellFormatHyperlinkDisplayType where+ parseJSON = parseJSONText "CellFormatHyperlinkDisplayType"++instance ToJSON CellFormatHyperlinkDisplayType where+ toJSON = toJSONText++-- | The type of sheet. Defaults to GRID. This field cannot be changed once+-- set.+data SheetPropertiesSheetType+ = SheetTypeUnspecified+ -- ^ @SHEET_TYPE_UNSPECIFIED@+ -- Default value, do not use.+ | Grid+ -- ^ @GRID@+ -- The sheet is a grid.+ | Object+ -- ^ @OBJECT@+ -- The sheet has no grid and instead has an object like a chart or image.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable SheetPropertiesSheetType++instance FromHttpApiData SheetPropertiesSheetType where+ parseQueryParam = \case+ "SHEET_TYPE_UNSPECIFIED" -> Right SheetTypeUnspecified+ "GRID" -> Right Grid+ "OBJECT" -> Right Object+ x -> Left ("Unable to parse SheetPropertiesSheetType from: " <> x)++instance ToHttpApiData SheetPropertiesSheetType where+ toQueryParam = \case+ SheetTypeUnspecified -> "SHEET_TYPE_UNSPECIFIED"+ Grid -> "GRID"+ Object -> "OBJECT"++instance FromJSON SheetPropertiesSheetType where+ parseJSON = parseJSONText "SheetPropertiesSheetType"++instance ToJSON SheetPropertiesSheetType where+ toJSON = toJSONText++-- | How the cells should be merged.+data MergeCellsRequestMergeType+ = MergeAll+ -- ^ @MERGE_ALL@+ -- Create a single merge from the range+ | MergeColumns+ -- ^ @MERGE_COLUMNS@+ -- Create a merge for each column in the range+ | MergeRows+ -- ^ @MERGE_ROWS@+ -- Create a merge for each row in the range+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable MergeCellsRequestMergeType++instance FromHttpApiData MergeCellsRequestMergeType where+ parseQueryParam = \case+ "MERGE_ALL" -> Right MergeAll+ "MERGE_COLUMNS" -> Right MergeColumns+ "MERGE_ROWS" -> Right MergeRows+ x -> Left ("Unable to parse MergeCellsRequestMergeType from: " <> x)++instance ToHttpApiData MergeCellsRequestMergeType where+ toQueryParam = \case+ MergeAll -> "MERGE_ALL"+ MergeColumns -> "MERGE_COLUMNS"+ MergeRows -> "MERGE_ROWS"++instance FromJSON MergeCellsRequestMergeType where+ parseJSON = parseJSONText "MergeCellsRequestMergeType"++instance ToJSON MergeCellsRequestMergeType where+ toJSON = toJSONText++-- | The horizontal alignment of the value in the cell.+data CellFormatHorizontalAlignment+ = HorizontalAlignUnspecified+ -- ^ @HORIZONTAL_ALIGN_UNSPECIFIED@+ -- The horizontal alignment is not specified. Do not use this.+ | Left'+ -- ^ @LEFT@+ -- The text is explicitly aligned to the left of the cell.+ | Center+ -- ^ @CENTER@+ -- The text is explicitly aligned to the center of the cell.+ | Right'+ -- ^ @RIGHT@+ -- The text is explicitly aligned to the right of the cell.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable CellFormatHorizontalAlignment++instance FromHttpApiData CellFormatHorizontalAlignment where+ parseQueryParam = \case+ "HORIZONTAL_ALIGN_UNSPECIFIED" -> Right HorizontalAlignUnspecified+ "LEFT" -> Right Left'+ "CENTER" -> Right Center+ "RIGHT" -> Right Right'+ x -> Left ("Unable to parse CellFormatHorizontalAlignment from: " <> x)++instance ToHttpApiData CellFormatHorizontalAlignment where+ toQueryParam = \case+ HorizontalAlignUnspecified -> "HORIZONTAL_ALIGN_UNSPECIFIED"+ Left' -> "LEFT"+ Center -> "CENTER"+ Right' -> "RIGHT"++instance FromJSON CellFormatHorizontalAlignment where+ parseJSON = parseJSONText "CellFormatHorizontalAlignment"++instance ToJSON CellFormatHorizontalAlignment where+ toJSON = toJSONText++-- | The type of condition.+data BooleanConditionType+ = ConditionTypeUnspecified+ -- ^ @CONDITION_TYPE_UNSPECIFIED@+ -- The default value, do not use.+ | NumberGreater+ -- ^ @NUMBER_GREATER@+ -- The cell\'s value must be greater than the condition\'s value. Supported+ -- by data validation, conditional formatting and filters. Requires a+ -- single ConditionValue.+ | NumberGreaterThanEQ+ -- ^ @NUMBER_GREATER_THAN_EQ@+ -- The cell\'s value must be greater than or equal to the condition\'s+ -- value. Supported by data validation, conditional formatting and filters.+ -- Requires a single ConditionValue.+ | NumberLess+ -- ^ @NUMBER_LESS@+ -- The cell\'s value must be less than the condition\'s value. Supported by+ -- data validation, conditional formatting and filters. Requires a single+ -- ConditionValue.+ | NumberLessThanEQ+ -- ^ @NUMBER_LESS_THAN_EQ@+ -- The cell\'s value must be less than or equal to the condition\'s value.+ -- Supported by data validation, conditional formatting and filters.+ -- Requires a single ConditionValue.+ | NumberEQ+ -- ^ @NUMBER_EQ@+ -- The cell\'s value must be equal to the condition\'s value. Supported by+ -- data validation, conditional formatting and filters. Requires a single+ -- ConditionValue.+ | NumberNotEQ+ -- ^ @NUMBER_NOT_EQ@+ -- The cell\'s value must be not equal to the condition\'s value. Supported+ -- by data validation, conditional formatting and filters. Requires a+ -- single ConditionValue.+ | NumberBetween+ -- ^ @NUMBER_BETWEEN@+ -- The cell\'s value must be between the two condition values. Supported by+ -- data validation, conditional formatting and filters. Requires exactly+ -- two ConditionValues.+ | NumberNotBetween+ -- ^ @NUMBER_NOT_BETWEEN@+ -- The cell\'s value must not be between the two condition values.+ -- Supported by data validation, conditional formatting and filters.+ -- Requires exactly two ConditionValues.+ | TextContains+ -- ^ @TEXT_CONTAINS@+ -- The cell\'s value must contain the condition\'s value. Supported by data+ -- validation, conditional formatting and filters. Requires a single+ -- ConditionValue.+ | TextNotContains+ -- ^ @TEXT_NOT_CONTAINS@+ -- The cell\'s value must not contain the condition\'s value. Supported by+ -- data validation, conditional formatting and filters. Requires a single+ -- ConditionValue.+ | TextStartsWith+ -- ^ @TEXT_STARTS_WITH@+ -- The cell\'s value must start with the condition\'s value. Supported by+ -- data validation, conditional formatting and filters. Requires a single+ -- ConditionValue.+ | TextEndsWith+ -- ^ @TEXT_ENDS_WITH@+ -- The cell\'s value must end with the condition\'s value. Supported by+ -- data validation, conditional formatting and filters. Requires a single+ -- ConditionValue.+ | TextEQ+ -- ^ @TEXT_EQ@+ -- The cell\'s value must be exactly the condition\'s value. Supported by+ -- data validation, conditional formatting and filters. Requires a single+ -- ConditionValue.+ | TextIsEmail+ -- ^ @TEXT_IS_EMAIL@+ -- The cell\'s value must be a valid email address. Supported by data+ -- validation. Requires no ConditionValues.+ | TextIsURL+ -- ^ @TEXT_IS_URL@+ -- The cell\'s value must be a valid URL. Supported by data validation.+ -- Requires no ConditionValues.+ | DateEQ+ -- ^ @DATE_EQ@+ -- The cell\'s value must be the same date as the condition\'s value.+ -- Supported by data validation, conditional formatting and filters.+ -- Requires a single ConditionValue.+ | DateBefore+ -- ^ @DATE_BEFORE@+ -- The cell\'s value must be before the date of the condition\'s value.+ -- Supported by data validation, conditional formatting and filters.+ -- Requires a single ConditionValue that may be a relative date.+ | DateAfter+ -- ^ @DATE_AFTER@+ -- The cell\'s value must be after the date of the condition\'s value.+ -- Supported by data validation, conditional formatting and filters.+ -- Requires a single ConditionValue that may be a relative date.+ | DateOnOrBefore+ -- ^ @DATE_ON_OR_BEFORE@+ -- The cell\'s value must be on or before the date of the condition\'s+ -- value. Supported by data validation, conditional formatting and filters.+ -- Requires a single ConditionValue that may be a relative date.+ | DateOnOrAfter+ -- ^ @DATE_ON_OR_AFTER@+ -- The cell\'s value must be on or after the date of the condition\'s+ -- value. Supported by data validation, conditional formatting and filters.+ -- Requires a single ConditionValue that may be a relative date.+ | DateBetween+ -- ^ @DATE_BETWEEN@+ -- The cell\'s value must be between the dates of the two condition values.+ -- Supported by data validation. Requires exactly two ConditionValues.+ | DateNotBetween+ -- ^ @DATE_NOT_BETWEEN@+ -- The cell\'s value must be outside the dates of the two condition values.+ -- Supported by data validation. Requires exactly two ConditionValues.+ | DateIsValid+ -- ^ @DATE_IS_VALID@+ -- The cell\'s value must be a date. Supported by data validation. Requires+ -- no ConditionValues.+ | OneOfRange+ -- ^ @ONE_OF_RANGE@+ -- The cell\'s value must be listed in the grid in condition value\'s+ -- range. Supported by data validation. Requires a single ConditionValue,+ -- and the value must be a valid range in A1 notation.+ | OneOfList+ -- ^ @ONE_OF_LIST@+ -- The cell\'s value must in the list of condition values. Supported by+ -- data validation. Supports any number of condition values, one per item+ -- in the list. Formulas are not supported in the values.+ | Blank+ -- ^ @BLANK@+ -- The cell\'s value must be empty. Supported by data validation,+ -- conditional formatting and filters. Requires no ConditionValues.+ | NotBlank+ -- ^ @NOT_BLANK@+ -- The cell\'s value must not be empty. Supported by data validation,+ -- conditional formatting and filters. Requires no ConditionValues.+ | CustomFormula+ -- ^ @CUSTOM_FORMULA@+ -- The condition\'s formula must evaluate to true. Supported by data+ -- validation, conditional formatting and filters. Requires a single+ -- ConditionValue.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable BooleanConditionType++instance FromHttpApiData BooleanConditionType where+ parseQueryParam = \case+ "CONDITION_TYPE_UNSPECIFIED" -> Right ConditionTypeUnspecified+ "NUMBER_GREATER" -> Right NumberGreater+ "NUMBER_GREATER_THAN_EQ" -> Right NumberGreaterThanEQ+ "NUMBER_LESS" -> Right NumberLess+ "NUMBER_LESS_THAN_EQ" -> Right NumberLessThanEQ+ "NUMBER_EQ" -> Right NumberEQ+ "NUMBER_NOT_EQ" -> Right NumberNotEQ+ "NUMBER_BETWEEN" -> Right NumberBetween+ "NUMBER_NOT_BETWEEN" -> Right NumberNotBetween+ "TEXT_CONTAINS" -> Right TextContains+ "TEXT_NOT_CONTAINS" -> Right TextNotContains+ "TEXT_STARTS_WITH" -> Right TextStartsWith+ "TEXT_ENDS_WITH" -> Right TextEndsWith+ "TEXT_EQ" -> Right TextEQ+ "TEXT_IS_EMAIL" -> Right TextIsEmail+ "TEXT_IS_URL" -> Right TextIsURL+ "DATE_EQ" -> Right DateEQ+ "DATE_BEFORE" -> Right DateBefore+ "DATE_AFTER" -> Right DateAfter+ "DATE_ON_OR_BEFORE" -> Right DateOnOrBefore+ "DATE_ON_OR_AFTER" -> Right DateOnOrAfter+ "DATE_BETWEEN" -> Right DateBetween+ "DATE_NOT_BETWEEN" -> Right DateNotBetween+ "DATE_IS_VALID" -> Right DateIsValid+ "ONE_OF_RANGE" -> Right OneOfRange+ "ONE_OF_LIST" -> Right OneOfList+ "BLANK" -> Right Blank+ "NOT_BLANK" -> Right NotBlank+ "CUSTOM_FORMULA" -> Right CustomFormula+ x -> Left ("Unable to parse BooleanConditionType from: " <> x)++instance ToHttpApiData BooleanConditionType where+ toQueryParam = \case+ ConditionTypeUnspecified -> "CONDITION_TYPE_UNSPECIFIED"+ NumberGreater -> "NUMBER_GREATER"+ NumberGreaterThanEQ -> "NUMBER_GREATER_THAN_EQ"+ NumberLess -> "NUMBER_LESS"+ NumberLessThanEQ -> "NUMBER_LESS_THAN_EQ"+ NumberEQ -> "NUMBER_EQ"+ NumberNotEQ -> "NUMBER_NOT_EQ"+ NumberBetween -> "NUMBER_BETWEEN"+ NumberNotBetween -> "NUMBER_NOT_BETWEEN"+ TextContains -> "TEXT_CONTAINS"+ TextNotContains -> "TEXT_NOT_CONTAINS"+ TextStartsWith -> "TEXT_STARTS_WITH"+ TextEndsWith -> "TEXT_ENDS_WITH"+ TextEQ -> "TEXT_EQ"+ TextIsEmail -> "TEXT_IS_EMAIL"+ TextIsURL -> "TEXT_IS_URL"+ DateEQ -> "DATE_EQ"+ DateBefore -> "DATE_BEFORE"+ DateAfter -> "DATE_AFTER"+ DateOnOrBefore -> "DATE_ON_OR_BEFORE"+ DateOnOrAfter -> "DATE_ON_OR_AFTER"+ DateBetween -> "DATE_BETWEEN"+ DateNotBetween -> "DATE_NOT_BETWEEN"+ DateIsValid -> "DATE_IS_VALID"+ OneOfRange -> "ONE_OF_RANGE"+ OneOfList -> "ONE_OF_LIST"+ Blank -> "BLANK"+ NotBlank -> "NOT_BLANK"+ CustomFormula -> "CUSTOM_FORMULA"++instance FromJSON BooleanConditionType where+ parseJSON = parseJSONText "BooleanConditionType"++instance ToJSON BooleanConditionType where+ toJSON = toJSONText++-- | The major dimension of the values. For output, if the spreadsheet data+-- is: \`A1=1,B1=2,A2=3,B2=4\`, then requesting+-- \`range=A1:B2,majorDimension=ROWS\` will return \`[[1,2],[3,4]]\`,+-- whereas requesting \`range=A1:B2,majorDimension=COLUMNS\` will return+-- \`[[1,3],[2,4]]\`. For input, with \`range=A1:B2,majorDimension=ROWS\`+-- then \`[[1,2],[3,4]]\` will set \`A1=1,B1=2,A2=3,B2=4\`. With+-- \`range=A1:B2,majorDimension=COLUMNS\` then \`[[1,2],[3,4]]\` will set+-- \`A1=1,B1=3,A2=2,B2=4\`. When writing, if this field is not set, it+-- defaults to ROWS.+data ValueRangeMajorDimension+ = VRMDDimensionUnspecified+ -- ^ @DIMENSION_UNSPECIFIED@+ -- The default value, do not use.+ | VRMDRows+ -- ^ @ROWS@+ -- Operates on the rows of a sheet.+ | VRMDColumns+ -- ^ @COLUMNS@+ -- Operates on the columns of a sheet.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ValueRangeMajorDimension++instance FromHttpApiData ValueRangeMajorDimension where+ parseQueryParam = \case+ "DIMENSION_UNSPECIFIED" -> Right VRMDDimensionUnspecified+ "ROWS" -> Right VRMDRows+ "COLUMNS" -> Right VRMDColumns+ x -> Left ("Unable to parse ValueRangeMajorDimension from: " <> x)++instance ToHttpApiData ValueRangeMajorDimension where+ toQueryParam = \case+ VRMDDimensionUnspecified -> "DIMENSION_UNSPECIFIED"+ VRMDRows -> "ROWS"+ VRMDColumns -> "COLUMNS"++instance FromJSON ValueRangeMajorDimension where+ parseJSON = parseJSONText "ValueRangeMajorDimension"++instance ToJSON ValueRangeMajorDimension where+ toJSON = toJSONText++-- | The order the values in this group should be sorted.+data PivotGroupSortOrder+ = PGSOSortOrderUnspecified+ -- ^ @SORT_ORDER_UNSPECIFIED@+ -- Default value, do not use this.+ | PGSOAscending+ -- ^ @ASCENDING@+ -- Sort ascending.+ | PGSODescending+ -- ^ @DESCENDING@+ -- Sort descending.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PivotGroupSortOrder++instance FromHttpApiData PivotGroupSortOrder where+ parseQueryParam = \case+ "SORT_ORDER_UNSPECIFIED" -> Right PGSOSortOrderUnspecified+ "ASCENDING" -> Right PGSOAscending+ "DESCENDING" -> Right PGSODescending+ x -> Left ("Unable to parse PivotGroupSortOrder from: " <> x)++instance ToHttpApiData PivotGroupSortOrder where+ toQueryParam = \case+ PGSOSortOrderUnspecified -> "SORT_ORDER_UNSPECIFIED"+ PGSOAscending -> "ASCENDING"+ PGSODescending -> "DESCENDING"++instance FromJSON PivotGroupSortOrder where+ parseJSON = parseJSONText "PivotGroupSortOrder"++instance ToJSON PivotGroupSortOrder where+ toJSON = toJSONText++-- | The type of the chart.+data BasicChartSpecChartType+ = BasicChartTypeUnspecified+ -- ^ @BASIC_CHART_TYPE_UNSPECIFIED@+ -- Default value, do not use.+ | Bar+ -- ^ @BAR@+ -- A </chart/interactive/docs/gallery/barchart bar chart>.+ | Line+ -- ^ @LINE@+ -- A </chart/interactive/docs/gallery/linechart line chart>.+ | Area+ -- ^ @AREA@+ -- An </chart/interactive/docs/gallery/areachart area chart>.+ | Column+ -- ^ @COLUMN@+ -- A </chart/interactive/docs/gallery/columnchart column chart>.+ | Scatter+ -- ^ @SCATTER@+ -- A </chart/interactive/docs/gallery/scatterchart scatter chart>.+ | Combo+ -- ^ @COMBO@+ -- A </chart/interactive/docs/gallery/combochart combo chart>.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable BasicChartSpecChartType++instance FromHttpApiData BasicChartSpecChartType where+ parseQueryParam = \case+ "BASIC_CHART_TYPE_UNSPECIFIED" -> Right BasicChartTypeUnspecified+ "BAR" -> Right Bar+ "LINE" -> Right Line+ "AREA" -> Right Area+ "COLUMN" -> Right Column+ "SCATTER" -> Right Scatter+ "COMBO" -> Right Combo+ x -> Left ("Unable to parse BasicChartSpecChartType from: " <> x)++instance ToHttpApiData BasicChartSpecChartType where+ toQueryParam = \case+ BasicChartTypeUnspecified -> "BASIC_CHART_TYPE_UNSPECIFIED"+ Bar -> "BAR"+ Line -> "LINE"+ Area -> "AREA"+ Column -> "COLUMN"+ Scatter -> "SCATTER"+ Combo -> "COMBO"++instance FromJSON BasicChartSpecChartType where+ parseJSON = parseJSONText "BasicChartSpecChartType"++instance ToJSON BasicChartSpecChartType 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 amount of time to wait before volatile functions are recalculated.+data SpreadsheetPropertiesAutoRecalc+ = RecalculationIntervalUnspecified+ -- ^ @RECALCULATION_INTERVAL_UNSPECIFIED@+ -- Default value. This value must not be used.+ | OnChange+ -- ^ @ON_CHANGE@+ -- Volatile functions are updated on every change.+ | Minute+ -- ^ @MINUTE@+ -- Volatile functions are updated on every change and every minute.+ | Hour+ -- ^ @HOUR@+ -- Volatile functions are updated on every change and hourly.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable SpreadsheetPropertiesAutoRecalc++instance FromHttpApiData SpreadsheetPropertiesAutoRecalc where+ parseQueryParam = \case+ "RECALCULATION_INTERVAL_UNSPECIFIED" -> Right RecalculationIntervalUnspecified+ "ON_CHANGE" -> Right OnChange+ "MINUTE" -> Right Minute+ "HOUR" -> Right Hour+ x -> Left ("Unable to parse SpreadsheetPropertiesAutoRecalc from: " <> x)++instance ToHttpApiData SpreadsheetPropertiesAutoRecalc where+ toQueryParam = \case+ RecalculationIntervalUnspecified -> "RECALCULATION_INTERVAL_UNSPECIFIED"+ OnChange -> "ON_CHANGE"+ Minute -> "MINUTE"+ Hour -> "HOUR"++instance FromJSON SpreadsheetPropertiesAutoRecalc where+ parseJSON = parseJSONText "SpreadsheetPropertiesAutoRecalc"++instance ToJSON SpreadsheetPropertiesAutoRecalc where+ toJSON = toJSONText++-- | How that data should be oriented when pasting.+data CopyPasteRequestPasteOrientation+ = Normal+ -- ^ @NORMAL@+ -- Paste normally.+ | Transpose+ -- ^ @TRANSPOSE@+ -- Paste transposed, where all rows become columns and vice versa.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable CopyPasteRequestPasteOrientation++instance FromHttpApiData CopyPasteRequestPasteOrientation where+ parseQueryParam = \case+ "NORMAL" -> Right Normal+ "TRANSPOSE" -> Right Transpose+ x -> Left ("Unable to parse CopyPasteRequestPasteOrientation from: " <> x)++instance ToHttpApiData CopyPasteRequestPasteOrientation where+ toQueryParam = \case+ Normal -> "NORMAL"+ Transpose -> "TRANSPOSE"++instance FromJSON CopyPasteRequestPasteOrientation where+ parseJSON = parseJSONText "CopyPasteRequestPasteOrientation"++instance ToJSON CopyPasteRequestPasteOrientation where+ toJSON = toJSONText++-- | How the data should be pasted.+data PasteDataRequestType+ = PDRTPasteNormal+ -- ^ @PASTE_NORMAL@+ -- Paste values, formulas, formats, and merges.+ | PDRTPasteValues+ -- ^ @PASTE_VALUES@+ -- Paste the values ONLY without formats, formulas, or merges.+ | PDRTPasteFormat+ -- ^ @PASTE_FORMAT@+ -- Paste the format and data validation only.+ | PDRTPasteNoBOrders+ -- ^ @PASTE_NO_BORDERS@+ -- Like PASTE_NORMAL but without borders.+ | PDRTPasteFormula+ -- ^ @PASTE_FORMULA@+ -- Paste the formulas only.+ | PDRTPasteDataValidation+ -- ^ @PASTE_DATA_VALIDATION@+ -- Paste the data validation only.+ | PDRTPasteConditionalFormatting+ -- ^ @PASTE_CONDITIONAL_FORMATTING@+ -- Paste the conditional formatting rules only.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PasteDataRequestType++instance FromHttpApiData PasteDataRequestType where+ parseQueryParam = \case+ "PASTE_NORMAL" -> Right PDRTPasteNormal+ "PASTE_VALUES" -> Right PDRTPasteValues+ "PASTE_FORMAT" -> Right PDRTPasteFormat+ "PASTE_NO_BORDERS" -> Right PDRTPasteNoBOrders+ "PASTE_FORMULA" -> Right PDRTPasteFormula+ "PASTE_DATA_VALIDATION" -> Right PDRTPasteDataValidation+ "PASTE_CONDITIONAL_FORMATTING" -> Right PDRTPasteConditionalFormatting+ x -> Left ("Unable to parse PasteDataRequestType from: " <> x)++instance ToHttpApiData PasteDataRequestType where+ toQueryParam = \case+ PDRTPasteNormal -> "PASTE_NORMAL"+ PDRTPasteValues -> "PASTE_VALUES"+ PDRTPasteFormat -> "PASTE_FORMAT"+ PDRTPasteNoBOrders -> "PASTE_NO_BORDERS"+ PDRTPasteFormula -> "PASTE_FORMULA"+ PDRTPasteDataValidation -> "PASTE_DATA_VALIDATION"+ PDRTPasteConditionalFormatting -> "PASTE_CONDITIONAL_FORMATTING"++instance FromJSON PasteDataRequestType where+ parseJSON = parseJSONText "PasteDataRequestType"++instance ToJSON PasteDataRequestType where+ toJSON = toJSONText++-- | The direction of the text in the cell.+data CellFormatTextDirection+ = TextDirectionUnspecified+ -- ^ @TEXT_DIRECTION_UNSPECIFIED@+ -- The text direction is not specified. Do not use this.+ | LeftToRight+ -- ^ @LEFT_TO_RIGHT@+ -- The text direction of left-to-right was set by the user.+ | RightToLeft+ -- ^ @RIGHT_TO_LEFT@+ -- The text direction of right-to-left was set by the user.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable CellFormatTextDirection++instance FromHttpApiData CellFormatTextDirection where+ parseQueryParam = \case+ "TEXT_DIRECTION_UNSPECIFIED" -> Right TextDirectionUnspecified+ "LEFT_TO_RIGHT" -> Right LeftToRight+ "RIGHT_TO_LEFT" -> Right RightToLeft+ x -> Left ("Unable to parse CellFormatTextDirection from: " <> x)++instance ToHttpApiData CellFormatTextDirection where+ toQueryParam = \case+ TextDirectionUnspecified -> "TEXT_DIRECTION_UNSPECIFIED"+ LeftToRight -> "LEFT_TO_RIGHT"+ RightToLeft -> "RIGHT_TO_LEFT"++instance FromJSON CellFormatTextDirection where+ parseJSON = parseJSONText "CellFormatTextDirection"++instance ToJSON CellFormatTextDirection where+ toJSON = toJSONText++-- | The type of this series. Valid only if the chartType is COMBO. Different+-- types will change the way the series is visualized. Only LINE, AREA, and+-- COLUMN are supported.+data BasicChartSeriesType+ = BCSTBasicChartTypeUnspecified+ -- ^ @BASIC_CHART_TYPE_UNSPECIFIED@+ -- Default value, do not use.+ | BCSTBar+ -- ^ @BAR@+ -- A </chart/interactive/docs/gallery/barchart bar chart>.+ | BCSTLine+ -- ^ @LINE@+ -- A </chart/interactive/docs/gallery/linechart line chart>.+ | BCSTArea+ -- ^ @AREA@+ -- An </chart/interactive/docs/gallery/areachart area chart>.+ | BCSTColumn+ -- ^ @COLUMN@+ -- A </chart/interactive/docs/gallery/columnchart column chart>.+ | BCSTScatter+ -- ^ @SCATTER@+ -- A </chart/interactive/docs/gallery/scatterchart scatter chart>.+ | BCSTCombo+ -- ^ @COMBO@+ -- A </chart/interactive/docs/gallery/combochart combo chart>.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable BasicChartSeriesType++instance FromHttpApiData BasicChartSeriesType where+ parseQueryParam = \case+ "BASIC_CHART_TYPE_UNSPECIFIED" -> Right BCSTBasicChartTypeUnspecified+ "BAR" -> Right BCSTBar+ "LINE" -> Right BCSTLine+ "AREA" -> Right BCSTArea+ "COLUMN" -> Right BCSTColumn+ "SCATTER" -> Right BCSTScatter+ "COMBO" -> Right BCSTCombo+ x -> Left ("Unable to parse BasicChartSeriesType from: " <> x)++instance ToHttpApiData BasicChartSeriesType where+ toQueryParam = \case+ BCSTBasicChartTypeUnspecified -> "BASIC_CHART_TYPE_UNSPECIFIED"+ BCSTBar -> "BAR"+ BCSTLine -> "LINE"+ BCSTArea -> "AREA"+ BCSTColumn -> "COLUMN"+ BCSTScatter -> "SCATTER"+ BCSTCombo -> "COMBO"++instance FromJSON BasicChartSeriesType where+ parseJSON = parseJSONText "BasicChartSeriesType"++instance ToJSON BasicChartSeriesType where+ toJSON = toJSONText++-- | Determines how the charts will use hidden rows or columns.+data ChartSpecHiddenDimensionStrategy+ = ChartHiddenDimensionStrategyUnspecified+ -- ^ @CHART_HIDDEN_DIMENSION_STRATEGY_UNSPECIFIED@+ -- Default value, do not use.+ | SkipHiddenRowsAndColumns+ -- ^ @SKIP_HIDDEN_ROWS_AND_COLUMNS@+ -- Charts will skip hidden rows and columns.+ | SkipHiddenRows+ -- ^ @SKIP_HIDDEN_ROWS@+ -- Charts will skip hidden rows only.+ | SkipHiddenColumns+ -- ^ @SKIP_HIDDEN_COLUMNS@+ -- Charts will skip hidden columns only.+ | ShowAll+ -- ^ @SHOW_ALL@+ -- Charts will not skip any hidden rows or columns.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ChartSpecHiddenDimensionStrategy++instance FromHttpApiData ChartSpecHiddenDimensionStrategy where+ parseQueryParam = \case+ "CHART_HIDDEN_DIMENSION_STRATEGY_UNSPECIFIED" -> Right ChartHiddenDimensionStrategyUnspecified+ "SKIP_HIDDEN_ROWS_AND_COLUMNS" -> Right SkipHiddenRowsAndColumns+ "SKIP_HIDDEN_ROWS" -> Right SkipHiddenRows+ "SKIP_HIDDEN_COLUMNS" -> Right SkipHiddenColumns+ "SHOW_ALL" -> Right ShowAll+ x -> Left ("Unable to parse ChartSpecHiddenDimensionStrategy from: " <> x)++instance ToHttpApiData ChartSpecHiddenDimensionStrategy where+ toQueryParam = \case+ ChartHiddenDimensionStrategyUnspecified -> "CHART_HIDDEN_DIMENSION_STRATEGY_UNSPECIFIED"+ SkipHiddenRowsAndColumns -> "SKIP_HIDDEN_ROWS_AND_COLUMNS"+ SkipHiddenRows -> "SKIP_HIDDEN_ROWS"+ SkipHiddenColumns -> "SKIP_HIDDEN_COLUMNS"+ ShowAll -> "SHOW_ALL"++instance FromJSON ChartSpecHiddenDimensionStrategy where+ parseJSON = parseJSONText "ChartSpecHiddenDimensionStrategy"++instance ToJSON ChartSpecHiddenDimensionStrategy where+ toJSON = toJSONText++-- | The style of the border.+data BOrderStyle+ = StyleUnspecified+ -- ^ @STYLE_UNSPECIFIED@+ -- The style is not specified. Do not use this.+ | Dotted+ -- ^ @DOTTED@+ -- The border is dotted.+ | Dashed+ -- ^ @DASHED@+ -- The border is dashed.+ | Solid+ -- ^ @SOLID@+ -- The border is a solid line.+ | None+ -- ^ @NONE@+ -- No border. Used only when updating a border in order to erase it.+ | Double+ -- ^ @DOUBLE@+ -- The border is two solid lines.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable BOrderStyle++instance FromHttpApiData BOrderStyle where+ parseQueryParam = \case+ "STYLE_UNSPECIFIED" -> Right StyleUnspecified+ "DOTTED" -> Right Dotted+ "DASHED" -> Right Dashed+ "SOLID" -> Right Solid+ "NONE" -> Right None+ "DOUBLE" -> Right Double+ x -> Left ("Unable to parse BOrderStyle from: " <> x)++instance ToHttpApiData BOrderStyle where+ toQueryParam = \case+ StyleUnspecified -> "STYLE_UNSPECIFIED"+ Dotted -> "DOTTED"+ Dashed -> "DASHED"+ Solid -> "SOLID"+ None -> "NONE"+ Double -> "DOUBLE"++instance FromJSON BOrderStyle where+ parseJSON = parseJSONText "BOrderStyle"++instance ToJSON BOrderStyle where+ toJSON = toJSONText++-- | What kind of data to paste. All the source data will be cut, regardless+-- of what is pasted.+data CutPasteRequestPasteType+ = CPRPTPasteNormal+ -- ^ @PASTE_NORMAL@+ -- Paste values, formulas, formats, and merges.+ | CPRPTPasteValues+ -- ^ @PASTE_VALUES@+ -- Paste the values ONLY without formats, formulas, or merges.+ | CPRPTPasteFormat+ -- ^ @PASTE_FORMAT@+ -- Paste the format and data validation only.+ | CPRPTPasteNoBOrders+ -- ^ @PASTE_NO_BORDERS@+ -- Like PASTE_NORMAL but without borders.+ | CPRPTPasteFormula+ -- ^ @PASTE_FORMULA@+ -- Paste the formulas only.+ | CPRPTPasteDataValidation+ -- ^ @PASTE_DATA_VALIDATION@+ -- Paste the data validation only.+ | CPRPTPasteConditionalFormatting+ -- ^ @PASTE_CONDITIONAL_FORMATTING@+ -- Paste the conditional formatting rules only.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable CutPasteRequestPasteType++instance FromHttpApiData CutPasteRequestPasteType where+ parseQueryParam = \case+ "PASTE_NORMAL" -> Right CPRPTPasteNormal+ "PASTE_VALUES" -> Right CPRPTPasteValues+ "PASTE_FORMAT" -> Right CPRPTPasteFormat+ "PASTE_NO_BORDERS" -> Right CPRPTPasteNoBOrders+ "PASTE_FORMULA" -> Right CPRPTPasteFormula+ "PASTE_DATA_VALIDATION" -> Right CPRPTPasteDataValidation+ "PASTE_CONDITIONAL_FORMATTING" -> Right CPRPTPasteConditionalFormatting+ x -> Left ("Unable to parse CutPasteRequestPasteType from: " <> x)++instance ToHttpApiData CutPasteRequestPasteType where+ toQueryParam = \case+ CPRPTPasteNormal -> "PASTE_NORMAL"+ CPRPTPasteValues -> "PASTE_VALUES"+ CPRPTPasteFormat -> "PASTE_FORMAT"+ CPRPTPasteNoBOrders -> "PASTE_NO_BORDERS"+ CPRPTPasteFormula -> "PASTE_FORMULA"+ CPRPTPasteDataValidation -> "PASTE_DATA_VALIDATION"+ CPRPTPasteConditionalFormatting -> "PASTE_CONDITIONAL_FORMATTING"++instance FromJSON CutPasteRequestPasteType where+ parseJSON = parseJSONText "CutPasteRequestPasteType"++instance ToJSON CutPasteRequestPasteType where+ toJSON = toJSONText++-- | The position of the chart legend.+data BasicChartSpecLegendPosition+ = BCSLPBasicChartLegendPositionUnspecified+ -- ^ @BASIC_CHART_LEGEND_POSITION_UNSPECIFIED@+ -- Default value, do not use.+ | BCSLPBottomLegend+ -- ^ @BOTTOM_LEGEND@+ -- The legend is rendered on the bottom of the chart.+ | BCSLPLeftLegend+ -- ^ @LEFT_LEGEND@+ -- The legend is rendered on the left of the chart.+ | BCSLPRightLegend+ -- ^ @RIGHT_LEGEND@+ -- The legend is rendered on the right of the chart.+ | BCSLPTopLegend+ -- ^ @TOP_LEGEND@+ -- The legend is rendered on the top of the chart.+ | BCSLPNoLegend+ -- ^ @NO_LEGEND@+ -- No legend is rendered.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable BasicChartSpecLegendPosition++instance FromHttpApiData BasicChartSpecLegendPosition where+ parseQueryParam = \case+ "BASIC_CHART_LEGEND_POSITION_UNSPECIFIED" -> Right BCSLPBasicChartLegendPositionUnspecified+ "BOTTOM_LEGEND" -> Right BCSLPBottomLegend+ "LEFT_LEGEND" -> Right BCSLPLeftLegend+ "RIGHT_LEGEND" -> Right BCSLPRightLegend+ "TOP_LEGEND" -> Right BCSLPTopLegend+ "NO_LEGEND" -> Right BCSLPNoLegend+ x -> Left ("Unable to parse BasicChartSpecLegendPosition from: " <> x)++instance ToHttpApiData BasicChartSpecLegendPosition where+ toQueryParam = \case+ BCSLPBasicChartLegendPositionUnspecified -> "BASIC_CHART_LEGEND_POSITION_UNSPECIFIED"+ BCSLPBottomLegend -> "BOTTOM_LEGEND"+ BCSLPLeftLegend -> "LEFT_LEGEND"+ BCSLPRightLegend -> "RIGHT_LEGEND"+ BCSLPTopLegend -> "TOP_LEGEND"+ BCSLPNoLegend -> "NO_LEGEND"++instance FromJSON BasicChartSpecLegendPosition where+ parseJSON = parseJSONText "BasicChartSpecLegendPosition"++instance ToJSON BasicChartSpecLegendPosition where+ toJSON = toJSONText++-- | The type of error.+data ErrorValueType+ = ErrorTypeUnspecified+ -- ^ @ERROR_TYPE_UNSPECIFIED@+ -- The default error type, do not use this.+ | Error'+ -- ^ @ERROR@+ -- Corresponds to the \`#ERROR!\` error.+ | NullValue+ -- ^ @NULL_VALUE@+ -- Corresponds to the \`#NULL!\` error.+ | DivideByZero+ -- ^ @DIVIDE_BY_ZERO@+ -- Corresponds to the \`#DIV\/0\` error.+ | Value+ -- ^ @VALUE@+ -- Corresponds to the \`#VALUE!\` error.+ | Ref+ -- ^ @REF@+ -- Corresponds to the \`#REF!\` error.+ | Name+ -- ^ @NAME@+ -- Corresponds to the \`#NAME?\` error.+ | Num+ -- ^ @NUM@+ -- Corresponds to the \`#NUM\`! error.+ | NA+ -- ^ @N_A@+ -- Corresponds to the \`#N\/A\` error.+ | Loading+ -- ^ @LOADING@+ -- Corresponds to the \`Loading...\` state.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ErrorValueType++instance FromHttpApiData ErrorValueType where+ parseQueryParam = \case+ "ERROR_TYPE_UNSPECIFIED" -> Right ErrorTypeUnspecified+ "ERROR" -> Right Error'+ "NULL_VALUE" -> Right NullValue+ "DIVIDE_BY_ZERO" -> Right DivideByZero+ "VALUE" -> Right Value+ "REF" -> Right Ref+ "NAME" -> Right Name+ "NUM" -> Right Num+ "N_A" -> Right NA+ "LOADING" -> Right Loading+ x -> Left ("Unable to parse ErrorValueType from: " <> x)++instance ToHttpApiData ErrorValueType where+ toQueryParam = \case+ ErrorTypeUnspecified -> "ERROR_TYPE_UNSPECIFIED"+ Error' -> "ERROR"+ NullValue -> "NULL_VALUE"+ DivideByZero -> "DIVIDE_BY_ZERO"+ Value -> "VALUE"+ Ref -> "REF"+ Name -> "NAME"+ Num -> "NUM"+ NA -> "N_A"+ Loading -> "LOADING"++instance FromJSON ErrorValueType where+ parseJSON = parseJSONText "ErrorValueType"++instance ToJSON ErrorValueType where+ toJSON = toJSONText++-- | Whether values should be listed horizontally (as columns) or vertically+-- (as rows).+data PivotTableValueLayout+ = Horizontal+ -- ^ @HORIZONTAL@+ -- Values are laid out horizontally (as columns).+ | Vertical+ -- ^ @VERTICAL@+ -- Values are laid out vertically (as rows).+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PivotTableValueLayout++instance FromHttpApiData PivotTableValueLayout where+ parseQueryParam = \case+ "HORIZONTAL" -> Right Horizontal+ "VERTICAL" -> Right Vertical+ x -> Left ("Unable to parse PivotTableValueLayout from: " <> x)++instance ToHttpApiData PivotTableValueLayout where+ toQueryParam = \case+ Horizontal -> "HORIZONTAL"+ Vertical -> "VERTICAL"++instance FromJSON PivotTableValueLayout where+ parseJSON = parseJSONText "PivotTableValueLayout"++instance ToJSON PivotTableValueLayout where+ toJSON = toJSONText++-- | How the value should be interpreted.+data InterpolationPointType+ = IPTInterpolationPointTypeUnspecified+ -- ^ @INTERPOLATION_POINT_TYPE_UNSPECIFIED@+ -- The default value, do not use.+ | IPTMin+ -- ^ @MIN@+ -- The interpolation point will use the minimum value in the cells over the+ -- range of the conditional format.+ | IPTMax+ -- ^ @MAX@+ -- The interpolation point will use the maximum value in the cells over the+ -- range of the conditional format.+ | IPTNumber+ -- ^ @NUMBER@+ -- The interpolation point will use exactly the value in+ -- InterpolationPoint.value.+ | IPTPercent+ -- ^ @PERCENT@+ -- The interpolation point will be the given percentage over all the cells+ -- in the range of the conditional format. This is equivalent to NUMBER if+ -- the value was: \`=(MAX(FLATTEN(range)) * (value \/ 100)) ++ -- (MIN(FLATTEN(range)) * (1 - (value \/ 100)))\` (where errors in the+ -- range are ignored when flattening).+ | IPTPercentile+ -- ^ @PERCENTILE@+ -- The interpolation point will be the given percentile over all the cells+ -- in the range of the conditional format. This is equivalent to NUMBER if+ -- the value was: \`=PERCENTILE(FLATTEN(range), value \/ 100)\` (where+ -- errors in the range are ignored when flattening).+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable InterpolationPointType++instance FromHttpApiData InterpolationPointType where+ parseQueryParam = \case+ "INTERPOLATION_POINT_TYPE_UNSPECIFIED" -> Right IPTInterpolationPointTypeUnspecified+ "MIN" -> Right IPTMin+ "MAX" -> Right IPTMax+ "NUMBER" -> Right IPTNumber+ "PERCENT" -> Right IPTPercent+ "PERCENTILE" -> Right IPTPercentile+ x -> Left ("Unable to parse InterpolationPointType from: " <> x)++instance ToHttpApiData InterpolationPointType where+ toQueryParam = \case+ IPTInterpolationPointTypeUnspecified -> "INTERPOLATION_POINT_TYPE_UNSPECIFIED"+ IPTMin -> "MIN"+ IPTMax -> "MAX"+ IPTNumber -> "NUMBER"+ IPTPercent -> "PERCENT"+ IPTPercentile -> "PERCENTILE"++instance FromJSON InterpolationPointType where+ parseJSON = parseJSONText "InterpolationPointType"++instance ToJSON InterpolationPointType where+ toJSON = toJSONText++-- | The delimiter type to use.+data TextToColumnsRequestDelimiterType+ = TTCRDTDelimiterTypeUnspecified+ -- ^ @DELIMITER_TYPE_UNSPECIFIED@+ -- Default value. This value must not be used.+ | TTCRDTComma+ -- ^ @COMMA@+ -- \",\"+ | TTCRDTSemicolon+ -- ^ @SEMICOLON@+ -- \";\"+ | TTCRDTPeriod+ -- ^ @PERIOD@+ -- \".\"+ | TTCRDTSpace+ -- ^ @SPACE@+ -- \" \"+ | TTCRDTCustom+ -- ^ @CUSTOM@+ -- A custom value as defined in delimiter.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable TextToColumnsRequestDelimiterType++instance FromHttpApiData TextToColumnsRequestDelimiterType where+ parseQueryParam = \case+ "DELIMITER_TYPE_UNSPECIFIED" -> Right TTCRDTDelimiterTypeUnspecified+ "COMMA" -> Right TTCRDTComma+ "SEMICOLON" -> Right TTCRDTSemicolon+ "PERIOD" -> Right TTCRDTPeriod+ "SPACE" -> Right TTCRDTSpace+ "CUSTOM" -> Right TTCRDTCustom+ x -> Left ("Unable to parse TextToColumnsRequestDelimiterType from: " <> x)++instance ToHttpApiData TextToColumnsRequestDelimiterType where+ toQueryParam = \case+ TTCRDTDelimiterTypeUnspecified -> "DELIMITER_TYPE_UNSPECIFIED"+ TTCRDTComma -> "COMMA"+ TTCRDTSemicolon -> "SEMICOLON"+ TTCRDTPeriod -> "PERIOD"+ TTCRDTSpace -> "SPACE"+ TTCRDTCustom -> "CUSTOM"++instance FromJSON TextToColumnsRequestDelimiterType where+ parseJSON = parseJSONText "TextToColumnsRequestDelimiterType"++instance ToJSON TextToColumnsRequestDelimiterType where+ toJSON = toJSONText
+ gogol-sheets.cabal view
@@ -0,0 +1,53 @@+name: gogol-sheets+version: 0.1.0+synopsis: Google Sheets 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++description:+ Reads and writes Google Sheets.+ .+ /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 @v4@+ 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.Resource.Sheets.Spreadsheets.BatchUpdate+ , Network.Google.Resource.Sheets.Spreadsheets.Create+ , Network.Google.Resource.Sheets.Spreadsheets.Get+ , Network.Google.Resource.Sheets.Spreadsheets.Sheets.CopyTo+ , Network.Google.Resource.Sheets.Spreadsheets.Values.BatchGet+ , Network.Google.Resource.Sheets.Spreadsheets.Values.BatchUpdate+ , Network.Google.Resource.Sheets.Spreadsheets.Values.Get+ , Network.Google.Resource.Sheets.Spreadsheets.Values.Update+ , Network.Google.Sheets+ , Network.Google.Sheets.Types++ other-modules:+ Network.Google.Sheets.Types.Product+ , Network.Google.Sheets.Types.Sum++ build-depends:+ gogol-core == 0.1.0.*+ , base >= 4.7 && < 5