gogol-sheets 0.4.0 → 0.5.0
raw patch · 21 files changed
+13834/−13330 lines, 21 filesdep ~gogol-corePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: gogol-core
API changes (from Hackage documentation)
Files
- README.md +1/−1
- gen/Network/Google/Resource/Sheets/Spreadsheets/BatchUpdate.hs +7/−3
- gen/Network/Google/Resource/Sheets/Spreadsheets/Create.hs +7/−3
- gen/Network/Google/Resource/Sheets/Spreadsheets/DeveloperMetadata/Get.hs +9/−4
- gen/Network/Google/Resource/Sheets/Spreadsheets/DeveloperMetadata/Search.hs +9/−4
- gen/Network/Google/Resource/Sheets/Spreadsheets/Get.hs +7/−3
- gen/Network/Google/Resource/Sheets/Spreadsheets/GetByDataFilter.hs +7/−3
- gen/Network/Google/Resource/Sheets/Spreadsheets/Sheets/CopyTo.hs +7/−3
- gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Append.hs +7/−3
- gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchClear.hs +7/−3
- gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchClearByDataFilter.hs +9/−4
- gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchGet.hs +7/−3
- gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchGetByDataFilter.hs +9/−4
- gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchUpdate.hs +7/−3
- gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchUpdateByDataFilter.hs +9/−4
- gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Clear.hs +7/−3
- gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Get.hs +7/−3
- gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Update.hs +7/−3
- gen/Network/Google/Sheets/Types.hs +5/−5
- gen/Network/Google/Sheets/Types/Product.hs +13697/−13266
- gogol-sheets.cabal +2/−2
README.md view
@@ -8,7 +8,7 @@ ## Version -`0.3.0`+`0.5.0` ## Description
gen/Network/Google/Resource/Sheets/Spreadsheets/BatchUpdate.hs view
@@ -87,7 +87,8 @@ -- should reflect your changes. -- -- /See:/ 'spreadsheetsBatchUpdate' smart constructor.-data SpreadsheetsBatchUpdate = SpreadsheetsBatchUpdate'+data SpreadsheetsBatchUpdate =+ SpreadsheetsBatchUpdate' { _sbuXgafv :: !(Maybe Xgafv) , _sbuUploadProtocol :: !(Maybe Text) , _sbuAccessToken :: !(Maybe Text)@@ -95,8 +96,10 @@ , _sbuUploadType :: !(Maybe Text) , _sbuPayload :: !BatchUpdateSpreadsheetRequest , _sbuCallback :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ 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:@@ -119,7 +122,7 @@ -> BatchUpdateSpreadsheetRequest -- ^ 'sbuPayload' -> SpreadsheetsBatchUpdate spreadsheetsBatchUpdate pSbuSpreadsheetId_ pSbuPayload_ =- SpreadsheetsBatchUpdate'+ SpreadsheetsBatchUpdate' { _sbuXgafv = Nothing , _sbuUploadProtocol = Nothing , _sbuAccessToken = Nothing@@ -128,6 +131,7 @@ , _sbuPayload = pSbuPayload_ , _sbuCallback = Nothing }+ -- | V1 error format. sbuXgafv :: Lens' SpreadsheetsBatchUpdate (Maybe Xgafv)
gen/Network/Google/Resource/Sheets/Spreadsheets/Create.hs view
@@ -61,15 +61,18 @@ -- | Creates a spreadsheet, returning the newly created spreadsheet. -- -- /See:/ 'spreadsheetsCreate' smart constructor.-data SpreadsheetsCreate = SpreadsheetsCreate'+data SpreadsheetsCreate =+ SpreadsheetsCreate' { _scXgafv :: !(Maybe Xgafv) , _scUploadProtocol :: !(Maybe Text) , _scAccessToken :: !(Maybe Text) , _scUploadType :: !(Maybe Text) , _scPayload :: !Spreadsheet , _scCallback :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ 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:@@ -89,7 +92,7 @@ :: Spreadsheet -- ^ 'scPayload' -> SpreadsheetsCreate spreadsheetsCreate pScPayload_ =- SpreadsheetsCreate'+ SpreadsheetsCreate' { _scXgafv = Nothing , _scUploadProtocol = Nothing , _scAccessToken = Nothing@@ -97,6 +100,7 @@ , _scPayload = pScPayload_ , _scCallback = Nothing }+ -- | V1 error format. scXgafv :: Lens' SpreadsheetsCreate (Maybe Xgafv)
gen/Network/Google/Resource/Sheets/Spreadsheets/DeveloperMetadata/Get.hs view
@@ -68,7 +68,8 @@ -- metadataId. -- -- /See:/ 'spreadsheetsDeveloperMetadataGet' smart constructor.-data SpreadsheetsDeveloperMetadataGet = SpreadsheetsDeveloperMetadataGet'+data SpreadsheetsDeveloperMetadataGet =+ SpreadsheetsDeveloperMetadataGet' { _sdmgXgafv :: !(Maybe Xgafv) , _sdmgUploadProtocol :: !(Maybe Text) , _sdmgMetadataId :: !(Textual Int32)@@ -76,8 +77,10 @@ , _sdmgSpreadsheetId :: !Text , _sdmgUploadType :: !(Maybe Text) , _sdmgCallback :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'SpreadsheetsDeveloperMetadataGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -100,7 +103,7 @@ -> Text -- ^ 'sdmgSpreadsheetId' -> SpreadsheetsDeveloperMetadataGet spreadsheetsDeveloperMetadataGet pSdmgMetadataId_ pSdmgSpreadsheetId_ =- SpreadsheetsDeveloperMetadataGet'+ SpreadsheetsDeveloperMetadataGet' { _sdmgXgafv = Nothing , _sdmgUploadProtocol = Nothing , _sdmgMetadataId = _Coerce # pSdmgMetadataId_@@ -110,6 +113,7 @@ , _sdmgCallback = Nothing } + -- | V1 error format. sdmgXgafv :: Lens' SpreadsheetsDeveloperMetadataGet (Maybe Xgafv) sdmgXgafv@@ -152,7 +156,8 @@ = lens _sdmgCallback (\ s a -> s{_sdmgCallback = a}) instance GoogleRequest- SpreadsheetsDeveloperMetadataGet where+ SpreadsheetsDeveloperMetadataGet+ where type Rs SpreadsheetsDeveloperMetadataGet = DeveloperMetadata type Scopes SpreadsheetsDeveloperMetadataGet =
gen/Network/Google/Resource/Sheets/Spreadsheets/DeveloperMetadata/Search.hs view
@@ -72,7 +72,8 @@ -- developer metadata associated with locations intersecting that region. -- -- /See:/ 'spreadsheetsDeveloperMetadataSearch' smart constructor.-data SpreadsheetsDeveloperMetadataSearch = SpreadsheetsDeveloperMetadataSearch'+data SpreadsheetsDeveloperMetadataSearch =+ SpreadsheetsDeveloperMetadataSearch' { _sdmsXgafv :: !(Maybe Xgafv) , _sdmsUploadProtocol :: !(Maybe Text) , _sdmsAccessToken :: !(Maybe Text)@@ -80,8 +81,10 @@ , _sdmsUploadType :: !(Maybe Text) , _sdmsPayload :: !SearchDeveloperMetadataRequest , _sdmsCallback :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'SpreadsheetsDeveloperMetadataSearch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -104,7 +107,7 @@ -> SearchDeveloperMetadataRequest -- ^ 'sdmsPayload' -> SpreadsheetsDeveloperMetadataSearch spreadsheetsDeveloperMetadataSearch pSdmsSpreadsheetId_ pSdmsPayload_ =- SpreadsheetsDeveloperMetadataSearch'+ SpreadsheetsDeveloperMetadataSearch' { _sdmsXgafv = Nothing , _sdmsUploadProtocol = Nothing , _sdmsAccessToken = Nothing@@ -114,6 +117,7 @@ , _sdmsCallback = Nothing } + -- | V1 error format. sdmsXgafv :: Lens' SpreadsheetsDeveloperMetadataSearch (Maybe Xgafv) sdmsXgafv@@ -154,7 +158,8 @@ = lens _sdmsCallback (\ s a -> s{_sdmsCallback = a}) instance GoogleRequest- SpreadsheetsDeveloperMetadataSearch where+ SpreadsheetsDeveloperMetadataSearch+ where type Rs SpreadsheetsDeveloperMetadataSearch = SearchDeveloperMetadataResponse type Scopes SpreadsheetsDeveloperMetadataSearch =
gen/Network/Google/Resource/Sheets/Spreadsheets/Get.hs view
@@ -84,7 +84,8 @@ -- ranges. Ranges are specified using A1 notation. -- -- /See:/ 'spreadsheetsGet' smart constructor.-data SpreadsheetsGet = SpreadsheetsGet'+data SpreadsheetsGet =+ SpreadsheetsGet' { _sgXgafv :: !(Maybe Xgafv) , _sgUploadProtocol :: !(Maybe Text) , _sgAccessToken :: !(Maybe Text)@@ -93,8 +94,10 @@ , _sgRanges :: !(Maybe [Text]) , _sgIncludeGridData :: !(Maybe Bool) , _sgCallback :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ 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:@@ -118,7 +121,7 @@ :: Text -- ^ 'sgSpreadsheetId' -> SpreadsheetsGet spreadsheetsGet pSgSpreadsheetId_ =- SpreadsheetsGet'+ SpreadsheetsGet' { _sgXgafv = Nothing , _sgUploadProtocol = Nothing , _sgAccessToken = Nothing@@ -128,6 +131,7 @@ , _sgIncludeGridData = Nothing , _sgCallback = Nothing }+ -- | V1 error format. sgXgafv :: Lens' SpreadsheetsGet (Maybe Xgafv)
gen/Network/Google/Resource/Sheets/Spreadsheets/GetByDataFilter.hs view
@@ -85,7 +85,8 @@ -- retrieve only the specific fields of the spreadsheet that you want. -- -- /See:/ 'spreadsheetsGetByDataFilter' smart constructor.-data SpreadsheetsGetByDataFilter = SpreadsheetsGetByDataFilter'+data SpreadsheetsGetByDataFilter =+ SpreadsheetsGetByDataFilter' { _sgbdfXgafv :: !(Maybe Xgafv) , _sgbdfUploadProtocol :: !(Maybe Text) , _sgbdfAccessToken :: !(Maybe Text)@@ -93,8 +94,10 @@ , _sgbdfUploadType :: !(Maybe Text) , _sgbdfPayload :: !GetSpreadsheetByDataFilterRequest , _sgbdfCallback :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'SpreadsheetsGetByDataFilter' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -117,7 +120,7 @@ -> GetSpreadsheetByDataFilterRequest -- ^ 'sgbdfPayload' -> SpreadsheetsGetByDataFilter spreadsheetsGetByDataFilter pSgbdfSpreadsheetId_ pSgbdfPayload_ =- SpreadsheetsGetByDataFilter'+ SpreadsheetsGetByDataFilter' { _sgbdfXgafv = Nothing , _sgbdfUploadProtocol = Nothing , _sgbdfAccessToken = Nothing@@ -126,6 +129,7 @@ , _sgbdfPayload = pSgbdfPayload_ , _sgbdfCallback = Nothing }+ -- | V1 error format. sgbdfXgafv :: Lens' SpreadsheetsGetByDataFilter (Maybe Xgafv)
gen/Network/Google/Resource/Sheets/Spreadsheets/Sheets/CopyTo.hs view
@@ -68,7 +68,8 @@ -- the properties of the newly created sheet. -- -- /See:/ 'spreadsheetsSheetsCopyTo' smart constructor.-data SpreadsheetsSheetsCopyTo = SpreadsheetsSheetsCopyTo'+data SpreadsheetsSheetsCopyTo =+ SpreadsheetsSheetsCopyTo' { _ssctXgafv :: !(Maybe Xgafv) , _ssctUploadProtocol :: !(Maybe Text) , _ssctAccessToken :: !(Maybe Text)@@ -77,8 +78,10 @@ , _ssctPayload :: !CopySheetToAnotherSpreadsheetRequest , _ssctSheetId :: !(Textual Int32) , _ssctCallback :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ 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:@@ -104,7 +107,7 @@ -> Int32 -- ^ 'ssctSheetId' -> SpreadsheetsSheetsCopyTo spreadsheetsSheetsCopyTo pSsctSpreadsheetId_ pSsctPayload_ pSsctSheetId_ =- SpreadsheetsSheetsCopyTo'+ SpreadsheetsSheetsCopyTo' { _ssctXgafv = Nothing , _ssctUploadProtocol = Nothing , _ssctAccessToken = Nothing@@ -114,6 +117,7 @@ , _ssctSheetId = _Coerce # pSsctSheetId_ , _ssctCallback = Nothing }+ -- | V1 error format. ssctXgafv :: Lens' SpreadsheetsSheetsCopyTo (Maybe Xgafv)
gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Append.hs view
@@ -96,7 +96,8 @@ -- data starts being written to. -- -- /See:/ 'spreadsheetsValuesAppend' smart constructor.-data SpreadsheetsValuesAppend = SpreadsheetsValuesAppend'+data SpreadsheetsValuesAppend =+ SpreadsheetsValuesAppend' { _svaXgafv :: !(Maybe Xgafv) , _svaUploadProtocol :: !(Maybe Text) , _svaAccessToken :: !(Maybe Text)@@ -110,8 +111,10 @@ , _svaResponseDateTimeRenderOption :: !(Maybe Text) , _svaCallback :: !(Maybe Text) , _svaResponseValueRenderOption :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'SpreadsheetsValuesAppend' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -147,7 +150,7 @@ -> Text -- ^ 'svaRange' -> SpreadsheetsValuesAppend spreadsheetsValuesAppend pSvaSpreadsheetId_ pSvaPayload_ pSvaRange_ =- SpreadsheetsValuesAppend'+ SpreadsheetsValuesAppend' { _svaXgafv = Nothing , _svaUploadProtocol = Nothing , _svaAccessToken = Nothing@@ -162,6 +165,7 @@ , _svaCallback = Nothing , _svaResponseValueRenderOption = Nothing }+ -- | V1 error format. svaXgafv :: Lens' SpreadsheetsValuesAppend (Maybe Xgafv)
gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchClear.hs view
@@ -70,7 +70,8 @@ -- validation, etc..) are kept. -- -- /See:/ 'spreadsheetsValuesBatchClear' smart constructor.-data SpreadsheetsValuesBatchClear = SpreadsheetsValuesBatchClear'+data SpreadsheetsValuesBatchClear =+ SpreadsheetsValuesBatchClear' { _svbcXgafv :: !(Maybe Xgafv) , _svbcUploadProtocol :: !(Maybe Text) , _svbcAccessToken :: !(Maybe Text)@@ -78,8 +79,10 @@ , _svbcUploadType :: !(Maybe Text) , _svbcPayload :: !BatchClearValuesRequest , _svbcCallback :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'SpreadsheetsValuesBatchClear' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -102,7 +105,7 @@ -> BatchClearValuesRequest -- ^ 'svbcPayload' -> SpreadsheetsValuesBatchClear spreadsheetsValuesBatchClear pSvbcSpreadsheetId_ pSvbcPayload_ =- SpreadsheetsValuesBatchClear'+ SpreadsheetsValuesBatchClear' { _svbcXgafv = Nothing , _svbcUploadProtocol = Nothing , _svbcAccessToken = Nothing@@ -111,6 +114,7 @@ , _svbcPayload = pSvbcPayload_ , _svbcCallback = Nothing }+ -- | V1 error format. svbcXgafv :: Lens' SpreadsheetsValuesBatchClear (Maybe Xgafv)
gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchClearByDataFilter.hs view
@@ -73,7 +73,8 @@ -- validation, etc..) are kept. -- -- /See:/ 'spreadsheetsValuesBatchClearByDataFilter' smart constructor.-data SpreadsheetsValuesBatchClearByDataFilter = SpreadsheetsValuesBatchClearByDataFilter'+data SpreadsheetsValuesBatchClearByDataFilter =+ SpreadsheetsValuesBatchClearByDataFilter' { _svbcbdfXgafv :: !(Maybe Xgafv) , _svbcbdfUploadProtocol :: !(Maybe Text) , _svbcbdfAccessToken :: !(Maybe Text)@@ -81,8 +82,10 @@ , _svbcbdfUploadType :: !(Maybe Text) , _svbcbdfPayload :: !BatchClearValuesByDataFilterRequest , _svbcbdfCallback :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'SpreadsheetsValuesBatchClearByDataFilter' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -105,7 +108,7 @@ -> BatchClearValuesByDataFilterRequest -- ^ 'svbcbdfPayload' -> SpreadsheetsValuesBatchClearByDataFilter spreadsheetsValuesBatchClearByDataFilter pSvbcbdfSpreadsheetId_ pSvbcbdfPayload_ =- SpreadsheetsValuesBatchClearByDataFilter'+ SpreadsheetsValuesBatchClearByDataFilter' { _svbcbdfXgafv = Nothing , _svbcbdfUploadProtocol = Nothing , _svbcbdfAccessToken = Nothing@@ -115,6 +118,7 @@ , _svbcbdfCallback = Nothing } + -- | V1 error format. svbcbdfXgafv :: Lens' SpreadsheetsValuesBatchClearByDataFilter (Maybe Xgafv) svbcbdfXgafv@@ -157,7 +161,8 @@ (\ s a -> s{_svbcbdfCallback = a}) instance GoogleRequest- SpreadsheetsValuesBatchClearByDataFilter where+ SpreadsheetsValuesBatchClearByDataFilter+ where type Rs SpreadsheetsValuesBatchClearByDataFilter = BatchClearValuesByDataFilterResponse type Scopes SpreadsheetsValuesBatchClearByDataFilter
gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchGet.hs view
@@ -72,7 +72,8 @@ -- specify the spreadsheet ID and one or more ranges. -- -- /See:/ 'spreadsheetsValuesBatchGet' smart constructor.-data SpreadsheetsValuesBatchGet = SpreadsheetsValuesBatchGet'+data SpreadsheetsValuesBatchGet =+ SpreadsheetsValuesBatchGet' { _svbgXgafv :: !(Maybe Xgafv) , _svbgValueRenderOption :: !(Maybe Text) , _svbgUploadProtocol :: !(Maybe Text)@@ -83,8 +84,10 @@ , _svbgDateTimeRenderOption :: !(Maybe Text) , _svbgMajorDimension :: !(Maybe Text) , _svbgCallback :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ 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:@@ -112,7 +115,7 @@ :: Text -- ^ 'svbgSpreadsheetId' -> SpreadsheetsValuesBatchGet spreadsheetsValuesBatchGet pSvbgSpreadsheetId_ =- SpreadsheetsValuesBatchGet'+ SpreadsheetsValuesBatchGet' { _svbgXgafv = Nothing , _svbgValueRenderOption = Nothing , _svbgUploadProtocol = Nothing@@ -124,6 +127,7 @@ , _svbgMajorDimension = Nothing , _svbgCallback = Nothing }+ -- | V1 error format. svbgXgafv :: Lens' SpreadsheetsValuesBatchGet (Maybe Xgafv)
gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchGetByDataFilter.hs view
@@ -70,7 +70,8 @@ -- will be returned. -- -- /See:/ 'spreadsheetsValuesBatchGetByDataFilter' smart constructor.-data SpreadsheetsValuesBatchGetByDataFilter = SpreadsheetsValuesBatchGetByDataFilter'+data SpreadsheetsValuesBatchGetByDataFilter =+ SpreadsheetsValuesBatchGetByDataFilter' { _svbgbdfXgafv :: !(Maybe Xgafv) , _svbgbdfUploadProtocol :: !(Maybe Text) , _svbgbdfAccessToken :: !(Maybe Text)@@ -78,8 +79,10 @@ , _svbgbdfUploadType :: !(Maybe Text) , _svbgbdfPayload :: !BatchGetValuesByDataFilterRequest , _svbgbdfCallback :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'SpreadsheetsValuesBatchGetByDataFilter' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -102,7 +105,7 @@ -> BatchGetValuesByDataFilterRequest -- ^ 'svbgbdfPayload' -> SpreadsheetsValuesBatchGetByDataFilter spreadsheetsValuesBatchGetByDataFilter pSvbgbdfSpreadsheetId_ pSvbgbdfPayload_ =- SpreadsheetsValuesBatchGetByDataFilter'+ SpreadsheetsValuesBatchGetByDataFilter' { _svbgbdfXgafv = Nothing , _svbgbdfUploadProtocol = Nothing , _svbgbdfAccessToken = Nothing@@ -112,6 +115,7 @@ , _svbgbdfCallback = Nothing } + -- | V1 error format. svbgbdfXgafv :: Lens' SpreadsheetsValuesBatchGetByDataFilter (Maybe Xgafv) svbgbdfXgafv@@ -154,7 +158,8 @@ (\ s a -> s{_svbgbdfCallback = a}) instance GoogleRequest- SpreadsheetsValuesBatchGetByDataFilter where+ SpreadsheetsValuesBatchGetByDataFilter+ where type Rs SpreadsheetsValuesBatchGetByDataFilter = BatchGetValuesByDataFilterResponse type Scopes SpreadsheetsValuesBatchGetByDataFilter =
gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchUpdate.hs view
@@ -68,7 +68,8 @@ -- ValueRanges. -- -- /See:/ 'spreadsheetsValuesBatchUpdate' smart constructor.-data SpreadsheetsValuesBatchUpdate = SpreadsheetsValuesBatchUpdate'+data SpreadsheetsValuesBatchUpdate =+ SpreadsheetsValuesBatchUpdate' { _svbuXgafv :: !(Maybe Xgafv) , _svbuUploadProtocol :: !(Maybe Text) , _svbuAccessToken :: !(Maybe Text)@@ -76,8 +77,10 @@ , _svbuUploadType :: !(Maybe Text) , _svbuPayload :: !BatchUpdateValuesRequest , _svbuCallback :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ 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:@@ -100,7 +103,7 @@ -> BatchUpdateValuesRequest -- ^ 'svbuPayload' -> SpreadsheetsValuesBatchUpdate spreadsheetsValuesBatchUpdate pSvbuSpreadsheetId_ pSvbuPayload_ =- SpreadsheetsValuesBatchUpdate'+ SpreadsheetsValuesBatchUpdate' { _svbuXgafv = Nothing , _svbuUploadProtocol = Nothing , _svbuAccessToken = Nothing@@ -109,6 +112,7 @@ , _svbuPayload = pSvbuPayload_ , _svbuCallback = Nothing }+ -- | V1 error format. svbuXgafv :: Lens' SpreadsheetsValuesBatchUpdate (Maybe Xgafv)
gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchUpdateByDataFilter.hs view
@@ -69,7 +69,8 @@ -- DataFilterValueRanges. -- -- /See:/ 'spreadsheetsValuesBatchUpdateByDataFilter' smart constructor.-data SpreadsheetsValuesBatchUpdateByDataFilter = SpreadsheetsValuesBatchUpdateByDataFilter'+data SpreadsheetsValuesBatchUpdateByDataFilter =+ SpreadsheetsValuesBatchUpdateByDataFilter' { _svbubdfXgafv :: !(Maybe Xgafv) , _svbubdfUploadProtocol :: !(Maybe Text) , _svbubdfAccessToken :: !(Maybe Text)@@ -77,8 +78,10 @@ , _svbubdfUploadType :: !(Maybe Text) , _svbubdfPayload :: !BatchUpdateValuesByDataFilterRequest , _svbubdfCallback :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'SpreadsheetsValuesBatchUpdateByDataFilter' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -101,7 +104,7 @@ -> BatchUpdateValuesByDataFilterRequest -- ^ 'svbubdfPayload' -> SpreadsheetsValuesBatchUpdateByDataFilter spreadsheetsValuesBatchUpdateByDataFilter pSvbubdfSpreadsheetId_ pSvbubdfPayload_ =- SpreadsheetsValuesBatchUpdateByDataFilter'+ SpreadsheetsValuesBatchUpdateByDataFilter' { _svbubdfXgafv = Nothing , _svbubdfUploadProtocol = Nothing , _svbubdfAccessToken = Nothing@@ -111,6 +114,7 @@ , _svbubdfCallback = Nothing } + -- | V1 error format. svbubdfXgafv :: Lens' SpreadsheetsValuesBatchUpdateByDataFilter (Maybe Xgafv) svbubdfXgafv@@ -153,7 +157,8 @@ (\ s a -> s{_svbubdfCallback = a}) instance GoogleRequest- SpreadsheetsValuesBatchUpdateByDataFilter where+ SpreadsheetsValuesBatchUpdateByDataFilter+ where type Rs SpreadsheetsValuesBatchUpdateByDataFilter = BatchUpdateValuesByDataFilterResponse type Scopes SpreadsheetsValuesBatchUpdateByDataFilter
gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Clear.hs view
@@ -72,7 +72,8 @@ -- kept. -- -- /See:/ 'spreadsheetsValuesClear' smart constructor.-data SpreadsheetsValuesClear = SpreadsheetsValuesClear'+data SpreadsheetsValuesClear =+ SpreadsheetsValuesClear' { _svcXgafv :: !(Maybe Xgafv) , _svcUploadProtocol :: !(Maybe Text) , _svcAccessToken :: !(Maybe Text)@@ -81,8 +82,10 @@ , _svcPayload :: !ClearValuesRequest , _svcRange :: !Text , _svcCallback :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'SpreadsheetsValuesClear' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -108,7 +111,7 @@ -> Text -- ^ 'svcRange' -> SpreadsheetsValuesClear spreadsheetsValuesClear pSvcSpreadsheetId_ pSvcPayload_ pSvcRange_ =- SpreadsheetsValuesClear'+ SpreadsheetsValuesClear' { _svcXgafv = Nothing , _svcUploadProtocol = Nothing , _svcAccessToken = Nothing@@ -118,6 +121,7 @@ , _svcRange = pSvcRange_ , _svcCallback = Nothing }+ -- | V1 error format. svcXgafv :: Lens' SpreadsheetsValuesClear (Maybe Xgafv)
gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Get.hs view
@@ -72,7 +72,8 @@ -- the spreadsheet ID and a range. -- -- /See:/ 'spreadsheetsValuesGet' smart constructor.-data SpreadsheetsValuesGet = SpreadsheetsValuesGet'+data SpreadsheetsValuesGet =+ SpreadsheetsValuesGet' { _svgXgafv :: !(Maybe Xgafv) , _svgValueRenderOption :: !(Maybe Text) , _svgUploadProtocol :: !(Maybe Text)@@ -83,8 +84,10 @@ , _svgDateTimeRenderOption :: !(Maybe Text) , _svgMajorDimension :: !(Maybe Text) , _svgCallback :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ 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:@@ -113,7 +116,7 @@ -> Text -- ^ 'svgRange' -> SpreadsheetsValuesGet spreadsheetsValuesGet pSvgSpreadsheetId_ pSvgRange_ =- SpreadsheetsValuesGet'+ SpreadsheetsValuesGet' { _svgXgafv = Nothing , _svgValueRenderOption = Nothing , _svgUploadProtocol = Nothing@@ -125,6 +128,7 @@ , _svgMajorDimension = Nothing , _svgCallback = Nothing }+ -- | V1 error format. svgXgafv :: Lens' SpreadsheetsValuesGet (Maybe Xgafv)
gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Update.hs view
@@ -76,7 +76,8 @@ -- spreadsheet ID, range, and a valueInputOption. -- -- /See:/ 'spreadsheetsValuesUpdate' smart constructor.-data SpreadsheetsValuesUpdate = SpreadsheetsValuesUpdate'+data SpreadsheetsValuesUpdate =+ SpreadsheetsValuesUpdate' { _svuXgafv :: !(Maybe Xgafv) , _svuUploadProtocol :: !(Maybe Text) , _svuAccessToken :: !(Maybe Text)@@ -89,8 +90,10 @@ , _svuResponseDateTimeRenderOption :: !(Maybe Text) , _svuCallback :: !(Maybe Text) , _svuResponseValueRenderOption :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ 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:@@ -124,7 +127,7 @@ -> Text -- ^ 'svuRange' -> SpreadsheetsValuesUpdate spreadsheetsValuesUpdate pSvuSpreadsheetId_ pSvuPayload_ pSvuRange_ =- SpreadsheetsValuesUpdate'+ SpreadsheetsValuesUpdate' { _svuXgafv = Nothing , _svuUploadProtocol = Nothing , _svuAccessToken = Nothing@@ -138,6 +141,7 @@ , _svuCallback = Nothing , _svuResponseValueRenderOption = Nothing }+ -- | V1 error format. svuXgafv :: Lens' SpreadsheetsValuesUpdate (Maybe Xgafv)
gen/Network/Google/Sheets/Types.hs view
@@ -1639,21 +1639,21 @@ -- | View your Google Spreadsheets spreadsheetsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/spreadsheets.readonly"]-spreadsheetsReadOnlyScope = Proxy;+spreadsheetsReadOnlyScope = Proxy -- | See and download all your Google Drive files driveReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/drive.readonly"]-driveReadOnlyScope = Proxy;+driveReadOnlyScope = Proxy -- | See, edit, create, and delete all of your Google Drive files driveScope :: Proxy '["https://www.googleapis.com/auth/drive"]-driveScope = Proxy;+driveScope = Proxy -- | View and manage Google Drive files and folders that you have opened or -- created with this app driveFileScope :: Proxy '["https://www.googleapis.com/auth/drive.file"]-driveFileScope = Proxy;+driveFileScope = Proxy -- | See, edit, create, and delete your spreadsheets in Google Drive spreadsheetsScope :: Proxy '["https://www.googleapis.com/auth/spreadsheets"]-spreadsheetsScope = Proxy;+spreadsheetsScope = Proxy
gen/Network/Google/Sheets/Types/Product.hs view
@@ -24,13272 +24,13703 @@ -- 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. When appending values, this field--- represents the range to search for a table, after which values will be--- appended.-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 GFieldMask)- } 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 GFieldMask)-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])---- | The request for clearing more than one range of values in a spreadsheet.------ /See:/ 'batchClearValuesRequest' smart constructor.-newtype BatchClearValuesRequest = BatchClearValuesRequest'- { _bcvrRanges :: Maybe [Text]- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'BatchClearValuesRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bcvrRanges'-batchClearValuesRequest- :: BatchClearValuesRequest-batchClearValuesRequest =- BatchClearValuesRequest'- { _bcvrRanges = Nothing- }---- | The ranges to clear, in A1 notation.-bcvrRanges :: Lens' BatchClearValuesRequest [Text]-bcvrRanges- = lens _bcvrRanges (\ s a -> s{_bcvrRanges = a}) .- _Default- . _Coerce--instance FromJSON BatchClearValuesRequest where- parseJSON- = withObject "BatchClearValuesRequest"- (\ o ->- BatchClearValuesRequest' <$>- (o .:? "ranges" .!= mempty))--instance ToJSON BatchClearValuesRequest where- toJSON BatchClearValuesRequest'{..}- = object (catMaybes [("ranges" .=) <$> _bcvrRanges])---- | The response from creating developer metadata.------ /See:/ 'createDeveloperMetadataResponse' smart constructor.-newtype CreateDeveloperMetadataResponse = CreateDeveloperMetadataResponse'- { _cdmrDeveloperMetadata :: Maybe DeveloperMetadata- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'CreateDeveloperMetadataResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cdmrDeveloperMetadata'-createDeveloperMetadataResponse- :: CreateDeveloperMetadataResponse-createDeveloperMetadataResponse =- CreateDeveloperMetadataResponse'- { _cdmrDeveloperMetadata = Nothing- }---- | The developer metadata that was created.-cdmrDeveloperMetadata :: Lens' CreateDeveloperMetadataResponse (Maybe DeveloperMetadata)-cdmrDeveloperMetadata- = lens _cdmrDeveloperMetadata- (\ s a -> s{_cdmrDeveloperMetadata = a})--instance FromJSON CreateDeveloperMetadataResponse- where- parseJSON- = withObject "CreateDeveloperMetadataResponse"- (\ o ->- CreateDeveloperMetadataResponse' <$>- (o .:? "developerMetadata"))--instance ToJSON CreateDeveloperMetadataResponse where- toJSON CreateDeveloperMetadataResponse'{..}- = object- (catMaybes- [("developerMetadata" .=) <$>- _cdmrDeveloperMetadata])---- | Allows you to organize the date-time values in a source data column into--- buckets based on selected parts of their date or time values. For--- example, consider a pivot table showing sales transactions by date:--- +----------+--------------+ | Date | SUM of Sales |--- +----------+--------------+ | 1\/1\/2017 | $621.14 | | 2\/3\/2017 |--- $708.84 | | 5\/8\/2017 | $326.84 | ... +----------+--------------+--- Applying a date-time group rule with a DateTimeRuleType of YEAR_MONTH--- results in the following pivot table. +--------------+--------------+ |--- Grouped Date | SUM of Sales | +--------------+--------------+ | 2017-Jan--- | $53,731.78 | | 2017-Feb | $83,475.32 | | 2017-Mar | $94,385.05 | ...--- +--------------+--------------+------ /See:/ 'dateTimeRule' smart constructor.-newtype DateTimeRule = DateTimeRule'- { _dtrType :: Maybe DateTimeRuleType- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DateTimeRule' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dtrType'-dateTimeRule- :: DateTimeRule-dateTimeRule =- DateTimeRule'- { _dtrType = Nothing- }---- | The type of date-time grouping to apply.-dtrType :: Lens' DateTimeRule (Maybe DateTimeRuleType)-dtrType = lens _dtrType (\ s a -> s{_dtrType = a})--instance FromJSON DateTimeRule where- parseJSON- = withObject "DateTimeRule"- (\ o -> DateTimeRule' <$> (o .:? "type"))--instance ToJSON DateTimeRule where- toJSON DateTimeRule'{..}- = object (catMaybes [("type" .=) <$> _dtrType])---- | Properties of a spreadsheet.------ /See:/ 'spreadsheetProperties' smart constructor.-data SpreadsheetProperties = SpreadsheetProperties'- { _spDefaultFormat :: !(Maybe CellFormat)- , _spLocale :: !(Maybe Text)- , _spIterativeCalculationSettings :: !(Maybe IterativeCalculationSettings)- , _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'------ * 'spIterativeCalculationSettings'------ * 'spAutoRecalc'------ * 'spTitle'------ * 'spTimeZone'-spreadsheetProperties- :: SpreadsheetProperties-spreadsheetProperties =- SpreadsheetProperties'- { _spDefaultFormat = Nothing- , _spLocale = Nothing- , _spIterativeCalculationSettings = 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})---- | Determines whether and how circular references are resolved with--- iterative calculation. Absence of this field means that circular--- references will result in calculation errors.-spIterativeCalculationSettings :: Lens' SpreadsheetProperties (Maybe IterativeCalculationSettings)-spIterativeCalculationSettings- = lens _spIterativeCalculationSettings- (\ s a -> s{_spIterativeCalculationSettings = 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 .:? "iterativeCalculationSettings")- <*> (o .:? "autoRecalc")- <*> (o .:? "title")- <*> (o .:? "timeZone"))--instance ToJSON SpreadsheetProperties where- toJSON SpreadsheetProperties'{..}- = object- (catMaybes- [("defaultFormat" .=) <$> _spDefaultFormat,- ("locale" .=) <$> _spLocale,- ("iterativeCalculationSettings" .=) <$>- _spIterativeCalculationSettings,- ("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])---- | The request for clearing more than one range selected by a DataFilter in--- a spreadsheet.------ /See:/ 'batchClearValuesByDataFilterRequest' smart constructor.-newtype BatchClearValuesByDataFilterRequest = BatchClearValuesByDataFilterRequest'- { _bcvbdfrDataFilters :: Maybe [DataFilter]- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'BatchClearValuesByDataFilterRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bcvbdfrDataFilters'-batchClearValuesByDataFilterRequest- :: BatchClearValuesByDataFilterRequest-batchClearValuesByDataFilterRequest =- BatchClearValuesByDataFilterRequest'- { _bcvbdfrDataFilters = Nothing- }---- | The DataFilters used to determine which ranges to clear.-bcvbdfrDataFilters :: Lens' BatchClearValuesByDataFilterRequest [DataFilter]-bcvbdfrDataFilters- = lens _bcvbdfrDataFilters- (\ s a -> s{_bcvbdfrDataFilters = a})- . _Default- . _Coerce--instance FromJSON BatchClearValuesByDataFilterRequest- where- parseJSON- = withObject "BatchClearValuesByDataFilterRequest"- (\ o ->- BatchClearValuesByDataFilterRequest' <$>- (o .:? "dataFilters" .!= mempty))--instance ToJSON BatchClearValuesByDataFilterRequest- where- toJSON BatchClearValuesByDataFilterRequest'{..}- = object- (catMaybes- [("dataFilters" .=) <$> _bcvbdfrDataFilters])---- | 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])---- | Deletes a group over the specified range by decrementing the depth of--- the dimensions in the range. For example, assume the sheet has a depth-1--- group over B:E and a depth-2 group over C:D. Deleting a group over D:E--- leaves the sheet with a depth-1 group over B:D and a depth-2 group over--- C:C.------ /See:/ 'deleteDimensionGroupRequest' smart constructor.-newtype DeleteDimensionGroupRequest = DeleteDimensionGroupRequest'- { _ddgrRange :: Maybe DimensionRange- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DeleteDimensionGroupRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ddgrRange'-deleteDimensionGroupRequest- :: DeleteDimensionGroupRequest-deleteDimensionGroupRequest =- DeleteDimensionGroupRequest'- { _ddgrRange = Nothing- }---- | The range of the group to be deleted.-ddgrRange :: Lens' DeleteDimensionGroupRequest (Maybe DimensionRange)-ddgrRange- = lens _ddgrRange (\ s a -> s{_ddgrRange = a})--instance FromJSON DeleteDimensionGroupRequest where- parseJSON- = withObject "DeleteDimensionGroupRequest"- (\ o ->- DeleteDimensionGroupRequest' <$> (o .:? "range"))--instance ToJSON DeleteDimensionGroupRequest where- toJSON DeleteDimensionGroupRequest'{..}- = object (catMaybes [("range" .=) <$> _ddgrRange])---- | Updates the state of the specified group.------ /See:/ 'updateDimensionGroupRequest' smart constructor.-data UpdateDimensionGroupRequest = UpdateDimensionGroupRequest'- { _udgrDimensionGroup :: !(Maybe DimensionGroup)- , _udgrFields :: !(Maybe GFieldMask)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UpdateDimensionGroupRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'udgrDimensionGroup'------ * 'udgrFields'-updateDimensionGroupRequest- :: UpdateDimensionGroupRequest-updateDimensionGroupRequest =- UpdateDimensionGroupRequest'- { _udgrDimensionGroup = Nothing- , _udgrFields = Nothing- }---- | The group whose state should be updated. The range and depth of the--- group should specify a valid group on the sheet, and all other fields--- updated.-udgrDimensionGroup :: Lens' UpdateDimensionGroupRequest (Maybe DimensionGroup)-udgrDimensionGroup- = lens _udgrDimensionGroup- (\ s a -> s{_udgrDimensionGroup = a})---- | The fields that should be updated. At least one field must be specified.--- The root \`dimensionGroup\` is implied and should not be specified. A--- single \`\"*\"\` can be used as short-hand for listing every field.-udgrFields :: Lens' UpdateDimensionGroupRequest (Maybe GFieldMask)-udgrFields- = lens _udgrFields (\ s a -> s{_udgrFields = a})--instance FromJSON UpdateDimensionGroupRequest where- parseJSON- = withObject "UpdateDimensionGroupRequest"- (\ o ->- UpdateDimensionGroupRequest' <$>- (o .:? "dimensionGroup") <*> (o .:? "fields"))--instance ToJSON UpdateDimensionGroupRequest where- toJSON UpdateDimensionGroupRequest'{..}- = object- (catMaybes- [("dimensionGroup" .=) <$> _udgrDimensionGroup,- ("fields" .=) <$> _udgrFields])---- | 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.--- The sheetId field is optional; if one is not set, an id will be randomly--- generated. (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])---- | A group over an interval of rows or columns on a sheet, which can--- contain or be contained within other groups. A group can be collapsed or--- expanded as a unit on the sheet.------ /See:/ 'dimensionGroup' smart constructor.-data DimensionGroup = DimensionGroup'- { _dgCollapsed :: !(Maybe Bool)- , _dgRange :: !(Maybe DimensionRange)- , _dgDepth :: !(Maybe (Textual Int32))- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DimensionGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dgCollapsed'------ * 'dgRange'------ * 'dgDepth'-dimensionGroup- :: DimensionGroup-dimensionGroup =- DimensionGroup'- { _dgCollapsed = Nothing- , _dgRange = Nothing- , _dgDepth = Nothing- }---- | This field is true if this group is collapsed. A collapsed group remains--- collapsed if an overlapping group at a shallower depth is expanded. A--- true value does not imply that all dimensions within the group are--- hidden, since a dimension\'s visibility can change independently from--- this group property. However, when this property is updated, all--- dimensions within it are set to hidden if this field is true, or set to--- visible if this field is false.-dgCollapsed :: Lens' DimensionGroup (Maybe Bool)-dgCollapsed- = lens _dgCollapsed (\ s a -> s{_dgCollapsed = a})---- | The range over which this group exists.-dgRange :: Lens' DimensionGroup (Maybe DimensionRange)-dgRange = lens _dgRange (\ s a -> s{_dgRange = a})---- | The depth of the group, representing how many groups have a range that--- wholly contains the range of this group.-dgDepth :: Lens' DimensionGroup (Maybe Int32)-dgDepth- = lens _dgDepth (\ s a -> s{_dgDepth = a}) .- mapping _Coerce--instance FromJSON DimensionGroup where- parseJSON- = withObject "DimensionGroup"- (\ o ->- DimensionGroup' <$>- (o .:? "collapsed") <*> (o .:? "range") <*>- (o .:? "depth"))--instance ToJSON DimensionGroup where- toJSON DimensionGroup'{..}- = object- (catMaybes- [("collapsed" .=) <$> _dgCollapsed,- ("range" .=) <$> _dgRange,- ("depth" .=) <$> _dgDepth])---- | 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.-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 </chart/interactive/docs/gallery/bubblechart bubble chart>.------ /See:/ 'bubbleChartSpec' smart constructor.-data BubbleChartSpec = BubbleChartSpec'- { _bcsBubbleTextStyle :: !(Maybe TextFormat)- , _bcsBubbleBOrderColor :: !(Maybe Color)- , _bcsLegendPosition :: !(Maybe BubbleChartSpecLegendPosition)- , _bcsDomain :: !(Maybe ChartData)- , _bcsSeries :: !(Maybe ChartData)- , _bcsBubbleLabels :: !(Maybe ChartData)- , _bcsGroupIds :: !(Maybe ChartData)- , _bcsBubbleMinRadiusSize :: !(Maybe (Textual Int32))- , _bcsBubbleMaxRadiusSize :: !(Maybe (Textual Int32))- , _bcsBubbleOpacity :: !(Maybe (Textual Double))- , _bcsBubbleSizes :: !(Maybe ChartData)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'BubbleChartSpec' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bcsBubbleTextStyle'------ * 'bcsBubbleBOrderColor'------ * 'bcsLegendPosition'------ * 'bcsDomain'------ * 'bcsSeries'------ * 'bcsBubbleLabels'------ * 'bcsGroupIds'------ * 'bcsBubbleMinRadiusSize'------ * 'bcsBubbleMaxRadiusSize'------ * 'bcsBubbleOpacity'------ * 'bcsBubbleSizes'-bubbleChartSpec- :: BubbleChartSpec-bubbleChartSpec =- BubbleChartSpec'- { _bcsBubbleTextStyle = Nothing- , _bcsBubbleBOrderColor = Nothing- , _bcsLegendPosition = Nothing- , _bcsDomain = Nothing- , _bcsSeries = Nothing- , _bcsBubbleLabels = Nothing- , _bcsGroupIds = Nothing- , _bcsBubbleMinRadiusSize = Nothing- , _bcsBubbleMaxRadiusSize = Nothing- , _bcsBubbleOpacity = Nothing- , _bcsBubbleSizes = Nothing- }---- | The format of the text inside the bubbles. Underline and Strikethrough--- are not supported.-bcsBubbleTextStyle :: Lens' BubbleChartSpec (Maybe TextFormat)-bcsBubbleTextStyle- = lens _bcsBubbleTextStyle- (\ s a -> s{_bcsBubbleTextStyle = a})---- | The bubble border color.-bcsBubbleBOrderColor :: Lens' BubbleChartSpec (Maybe Color)-bcsBubbleBOrderColor- = lens _bcsBubbleBOrderColor- (\ s a -> s{_bcsBubbleBOrderColor = a})---- | Where the legend of the chart should be drawn.-bcsLegendPosition :: Lens' BubbleChartSpec (Maybe BubbleChartSpecLegendPosition)-bcsLegendPosition- = lens _bcsLegendPosition- (\ s a -> s{_bcsLegendPosition = a})---- | The data containing the bubble x-values. These values locate the bubbles--- in the chart horizontally.-bcsDomain :: Lens' BubbleChartSpec (Maybe ChartData)-bcsDomain- = lens _bcsDomain (\ s a -> s{_bcsDomain = a})---- | The data contianing the bubble y-values. These values locate the bubbles--- in the chart vertically.-bcsSeries :: Lens' BubbleChartSpec (Maybe ChartData)-bcsSeries- = lens _bcsSeries (\ s a -> s{_bcsSeries = a})---- | The data containing the bubble labels. These do not need to be unique.-bcsBubbleLabels :: Lens' BubbleChartSpec (Maybe ChartData)-bcsBubbleLabels- = lens _bcsBubbleLabels- (\ s a -> s{_bcsBubbleLabels = a})---- | The data containing the bubble group IDs. All bubbles with the same--- group ID are drawn in the same color. If bubble_sizes is specified then--- this field must also be specified but may contain blank values. This--- field is optional.-bcsGroupIds :: Lens' BubbleChartSpec (Maybe ChartData)-bcsGroupIds- = lens _bcsGroupIds (\ s a -> s{_bcsGroupIds = a})---- | The minimum radius size of the bubbles, in pixels. If specific, the--- field must be a positive value.-bcsBubbleMinRadiusSize :: Lens' BubbleChartSpec (Maybe Int32)-bcsBubbleMinRadiusSize- = lens _bcsBubbleMinRadiusSize- (\ s a -> s{_bcsBubbleMinRadiusSize = a})- . mapping _Coerce---- | The max radius size of the bubbles, in pixels. If specified, the field--- must be a positive value.-bcsBubbleMaxRadiusSize :: Lens' BubbleChartSpec (Maybe Int32)-bcsBubbleMaxRadiusSize- = lens _bcsBubbleMaxRadiusSize- (\ s a -> s{_bcsBubbleMaxRadiusSize = a})- . mapping _Coerce---- | The opacity of the bubbles between 0 and 1.0. 0 is fully transparent and--- 1 is fully opaque.-bcsBubbleOpacity :: Lens' BubbleChartSpec (Maybe Double)-bcsBubbleOpacity- = lens _bcsBubbleOpacity- (\ s a -> s{_bcsBubbleOpacity = a})- . mapping _Coerce---- | The data contianing the bubble sizes. Bubble sizes are used to draw the--- bubbles at different sizes relative to each other. If specified,--- group_ids must also be specified. This field is optional.-bcsBubbleSizes :: Lens' BubbleChartSpec (Maybe ChartData)-bcsBubbleSizes- = lens _bcsBubbleSizes- (\ s a -> s{_bcsBubbleSizes = a})--instance FromJSON BubbleChartSpec where- parseJSON- = withObject "BubbleChartSpec"- (\ o ->- BubbleChartSpec' <$>- (o .:? "bubbleTextStyle") <*>- (o .:? "bubbleBorderColor")- <*> (o .:? "legendPosition")- <*> (o .:? "domain")- <*> (o .:? "series")- <*> (o .:? "bubbleLabels")- <*> (o .:? "groupIds")- <*> (o .:? "bubbleMinRadiusSize")- <*> (o .:? "bubbleMaxRadiusSize")- <*> (o .:? "bubbleOpacity")- <*> (o .:? "bubbleSizes"))--instance ToJSON BubbleChartSpec where- toJSON BubbleChartSpec'{..}- = object- (catMaybes- [("bubbleTextStyle" .=) <$> _bcsBubbleTextStyle,- ("bubbleBorderColor" .=) <$> _bcsBubbleBOrderColor,- ("legendPosition" .=) <$> _bcsLegendPosition,- ("domain" .=) <$> _bcsDomain,- ("series" .=) <$> _bcsSeries,- ("bubbleLabels" .=) <$> _bcsBubbleLabels,- ("groupIds" .=) <$> _bcsGroupIds,- ("bubbleMinRadiusSize" .=) <$>- _bcsBubbleMinRadiusSize,- ("bubbleMaxRadiusSize" .=) <$>- _bcsBubbleMaxRadiusSize,- ("bubbleOpacity" .=) <$> _bcsBubbleOpacity,- ("bubbleSizes" .=) <$> _bcsBubbleSizes])---- | Deletes a range of cells, shifting other cells into the deleted area.------ /See:/ 'deleteRangeRequest' smart constructor.-data DeleteRangeRequest = DeleteRangeRequest'- { _drrShiftDimension :: !(Maybe DeleteRangeRequestShiftDimension)- , _drrRange :: !(Maybe GridRange)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DeleteRangeRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'drrShiftDimension'------ * 'drrRange'-deleteRangeRequest- :: DeleteRangeRequest-deleteRangeRequest =- DeleteRangeRequest'- { _drrShiftDimension = Nothing- , _drrRange = Nothing- }---- | The dimension from which deleted cells will be replaced with. If ROWS,--- existing cells will be shifted upward to replace the deleted cells. If--- COLUMNS, existing cells will be shifted left to replace the deleted--- cells.-drrShiftDimension :: Lens' DeleteRangeRequest (Maybe DeleteRangeRequestShiftDimension)-drrShiftDimension- = lens _drrShiftDimension- (\ s a -> s{_drrShiftDimension = a})---- | The range of cells to delete.-drrRange :: Lens' DeleteRangeRequest (Maybe GridRange)-drrRange = lens _drrRange (\ s a -> s{_drrRange = a})--instance FromJSON DeleteRangeRequest where- parseJSON- = withObject "DeleteRangeRequest"- (\ o ->- DeleteRangeRequest' <$>- (o .:? "shiftDimension") <*> (o .:? "range"))--instance ToJSON DeleteRangeRequest where- toJSON DeleteRangeRequest'{..}- = object- (catMaybes- [("shiftDimension" .=) <$> _drrShiftDimension,- ("range" .=) <$> _drrRange])---- | A sheet in a spreadsheet.------ /See:/ 'sheet' smart constructor.-data Sheet = Sheet'- { _sColumnGroups :: !(Maybe [DimensionGroup])- , _sData :: !(Maybe [GridData])- , _sMerges :: !(Maybe [GridRange])- , _sRowGroups :: !(Maybe [DimensionGroup])- , _sProtectedRanges :: !(Maybe [ProtectedRange])- , _sBandedRanges :: !(Maybe [BandedRange])- , _sCharts :: !(Maybe [EmbeddedChart])- , _sBasicFilter :: !(Maybe BasicFilter)- , _sDeveloperMetadata :: !(Maybe [DeveloperMetadata])- , _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:------ * 'sColumnGroups'------ * 'sData'------ * 'sMerges'------ * 'sRowGroups'------ * 'sProtectedRanges'------ * 'sBandedRanges'------ * 'sCharts'------ * 'sBasicFilter'------ * 'sDeveloperMetadata'------ * 'sConditionalFormats'------ * 'sFilterViews'------ * 'sProperties'-sheet- :: Sheet-sheet =- Sheet'- { _sColumnGroups = Nothing- , _sData = Nothing- , _sMerges = Nothing- , _sRowGroups = Nothing- , _sProtectedRanges = Nothing- , _sBandedRanges = Nothing- , _sCharts = Nothing- , _sBasicFilter = Nothing- , _sDeveloperMetadata = Nothing- , _sConditionalFormats = Nothing- , _sFilterViews = Nothing- , _sProperties = Nothing- }---- | All column groups on this sheet, ordered by increasing range start--- index, then by group depth.-sColumnGroups :: Lens' Sheet [DimensionGroup]-sColumnGroups- = lens _sColumnGroups- (\ s a -> s{_sColumnGroups = a})- . _Default- . _Coerce---- | 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---- | All row groups on this sheet, ordered by increasing range start index,--- then by group depth.-sRowGroups :: Lens' Sheet [DimensionGroup]-sRowGroups- = lens _sRowGroups (\ s a -> s{_sRowGroups = a}) .- _Default- . _Coerce---- | The protected ranges in this sheet.-sProtectedRanges :: Lens' Sheet [ProtectedRange]-sProtectedRanges- = lens _sProtectedRanges- (\ s a -> s{_sProtectedRanges = a})- . _Default- . _Coerce---- | The banded (alternating colors) ranges on this sheet.-sBandedRanges :: Lens' Sheet [BandedRange]-sBandedRanges- = lens _sBandedRanges- (\ s a -> s{_sBandedRanges = 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 developer metadata associated with a sheet.-sDeveloperMetadata :: Lens' Sheet [DeveloperMetadata]-sDeveloperMetadata- = lens _sDeveloperMetadata- (\ s a -> s{_sDeveloperMetadata = a})- . _Default- . _Coerce---- | 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 .:? "columnGroups" .!= mempty) <*>- (o .:? "data" .!= mempty)- <*> (o .:? "merges" .!= mempty)- <*> (o .:? "rowGroups" .!= mempty)- <*> (o .:? "protectedRanges" .!= mempty)- <*> (o .:? "bandedRanges" .!= mempty)- <*> (o .:? "charts" .!= mempty)- <*> (o .:? "basicFilter")- <*> (o .:? "developerMetadata" .!= mempty)- <*> (o .:? "conditionalFormats" .!= mempty)- <*> (o .:? "filterViews" .!= mempty)- <*> (o .:? "properties"))--instance ToJSON Sheet where- toJSON Sheet'{..}- = object- (catMaybes- [("columnGroups" .=) <$> _sColumnGroups,- ("data" .=) <$> _sData, ("merges" .=) <$> _sMerges,- ("rowGroups" .=) <$> _sRowGroups,- ("protectedRanges" .=) <$> _sProtectedRanges,- ("bandedRanges" .=) <$> _sBandedRanges,- ("charts" .=) <$> _sCharts,- ("basicFilter" .=) <$> _sBasicFilter,- ("developerMetadata" .=) <$> _sDeveloperMetadata,- ("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])---- | The response when clearing a range of values in a spreadsheet.------ /See:/ 'clearValuesResponse' smart constructor.-data ClearValuesResponse = ClearValuesResponse'- { _cvrClearedRange :: !(Maybe Text)- , _cvrSpreadsheetId :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ClearValuesResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cvrClearedRange'------ * 'cvrSpreadsheetId'-clearValuesResponse- :: ClearValuesResponse-clearValuesResponse =- ClearValuesResponse'- { _cvrClearedRange = Nothing- , _cvrSpreadsheetId = Nothing- }---- | The range (in A1 notation) that was cleared. (If the request was for an--- unbounded range or a ranger larger than the bounds of the sheet, this--- will be the actual range that was cleared, bounded to the sheet\'s--- limits.)-cvrClearedRange :: Lens' ClearValuesResponse (Maybe Text)-cvrClearedRange- = lens _cvrClearedRange- (\ s a -> s{_cvrClearedRange = a})---- | The spreadsheet the updates were applied to.-cvrSpreadsheetId :: Lens' ClearValuesResponse (Maybe Text)-cvrSpreadsheetId- = lens _cvrSpreadsheetId- (\ s a -> s{_cvrSpreadsheetId = a})--instance FromJSON ClearValuesResponse where- parseJSON- = withObject "ClearValuesResponse"- (\ o ->- ClearValuesResponse' <$>- (o .:? "clearedRange") <*> (o .:? "spreadsheetId"))--instance ToJSON ClearValuesResponse where- toJSON ClearValuesResponse'{..}- = object- (catMaybes- [("clearedRange" .=) <$> _cvrClearedRange,- ("spreadsheetId" .=) <$> _cvrSpreadsheetId])---- | 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 GFieldMask)- } 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 GFieldMask)-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 is 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])---- | The response when retrieving more than one range of values in a--- spreadsheet selected by DataFilters.------ /See:/ 'batchGetValuesByDataFilterResponse' smart constructor.-data BatchGetValuesByDataFilterResponse = BatchGetValuesByDataFilterResponse'- { _bgvbdfrSpreadsheetId :: !(Maybe Text)- , _bgvbdfrValueRanges :: !(Maybe [MatchedValueRange])- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'BatchGetValuesByDataFilterResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bgvbdfrSpreadsheetId'------ * 'bgvbdfrValueRanges'-batchGetValuesByDataFilterResponse- :: BatchGetValuesByDataFilterResponse-batchGetValuesByDataFilterResponse =- BatchGetValuesByDataFilterResponse'- { _bgvbdfrSpreadsheetId = Nothing- , _bgvbdfrValueRanges = Nothing- }---- | The ID of the spreadsheet the data was retrieved from.-bgvbdfrSpreadsheetId :: Lens' BatchGetValuesByDataFilterResponse (Maybe Text)-bgvbdfrSpreadsheetId- = lens _bgvbdfrSpreadsheetId- (\ s a -> s{_bgvbdfrSpreadsheetId = a})---- | The requested values with the list of data filters that matched them.-bgvbdfrValueRanges :: Lens' BatchGetValuesByDataFilterResponse [MatchedValueRange]-bgvbdfrValueRanges- = lens _bgvbdfrValueRanges- (\ s a -> s{_bgvbdfrValueRanges = a})- . _Default- . _Coerce--instance FromJSON BatchGetValuesByDataFilterResponse- where- parseJSON- = withObject "BatchGetValuesByDataFilterResponse"- (\ o ->- BatchGetValuesByDataFilterResponse' <$>- (o .:? "spreadsheetId") <*>- (o .:? "valueRanges" .!= mempty))--instance ToJSON BatchGetValuesByDataFilterResponse- where- toJSON BatchGetValuesByDataFilterResponse'{..}- = object- (catMaybes- [("spreadsheetId" .=) <$> _bgvbdfrSpreadsheetId,- ("valueRanges" .=) <$> _bgvbdfrValueRanges])---- | 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 GFieldMask)- } 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 GFieldMask)-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])---- | The result of adding a group.------ /See:/ 'addDimensionGroupResponse' smart constructor.-newtype AddDimensionGroupResponse = AddDimensionGroupResponse'- { _adgrDimensionGroups :: Maybe [DimensionGroup]- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AddDimensionGroupResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'adgrDimensionGroups'-addDimensionGroupResponse- :: AddDimensionGroupResponse-addDimensionGroupResponse =- AddDimensionGroupResponse'- { _adgrDimensionGroups = Nothing- }---- | All groups of a dimension after adding a group to that dimension.-adgrDimensionGroups :: Lens' AddDimensionGroupResponse [DimensionGroup]-adgrDimensionGroups- = lens _adgrDimensionGroups- (\ s a -> s{_adgrDimensionGroups = a})- . _Default- . _Coerce--instance FromJSON AddDimensionGroupResponse where- parseJSON- = withObject "AddDimensionGroupResponse"- (\ o ->- AddDimensionGroupResponse' <$>- (o .:? "dimensionGroups" .!= mempty))--instance ToJSON AddDimensionGroupResponse where- toJSON AddDimensionGroupResponse'{..}- = object- (catMaybes- [("dimensionGroups" .=) <$> _adgrDimensionGroups])---- | 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])---- | The response when updating a range of values in a spreadsheet.------ /See:/ 'batchUpdateValuesByDataFilterResponse' smart constructor.-data BatchUpdateValuesByDataFilterResponse = BatchUpdateValuesByDataFilterResponse'- { _buvbdfrTotalUpdatedColumns :: !(Maybe (Textual Int32))- , _buvbdfrResponses :: !(Maybe [UpdateValuesByDataFilterResponse])- , _buvbdfrSpreadsheetId :: !(Maybe Text)- , _buvbdfrTotalUpdatedSheets :: !(Maybe (Textual Int32))- , _buvbdfrTotalUpdatedCells :: !(Maybe (Textual Int32))- , _buvbdfrTotalUpdatedRows :: !(Maybe (Textual Int32))- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'BatchUpdateValuesByDataFilterResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'buvbdfrTotalUpdatedColumns'------ * 'buvbdfrResponses'------ * 'buvbdfrSpreadsheetId'------ * 'buvbdfrTotalUpdatedSheets'------ * 'buvbdfrTotalUpdatedCells'------ * 'buvbdfrTotalUpdatedRows'-batchUpdateValuesByDataFilterResponse- :: BatchUpdateValuesByDataFilterResponse-batchUpdateValuesByDataFilterResponse =- BatchUpdateValuesByDataFilterResponse'- { _buvbdfrTotalUpdatedColumns = Nothing- , _buvbdfrResponses = Nothing- , _buvbdfrSpreadsheetId = Nothing- , _buvbdfrTotalUpdatedSheets = Nothing- , _buvbdfrTotalUpdatedCells = Nothing- , _buvbdfrTotalUpdatedRows = Nothing- }---- | The total number of columns where at least one cell in the column was--- updated.-buvbdfrTotalUpdatedColumns :: Lens' BatchUpdateValuesByDataFilterResponse (Maybe Int32)-buvbdfrTotalUpdatedColumns- = lens _buvbdfrTotalUpdatedColumns- (\ s a -> s{_buvbdfrTotalUpdatedColumns = a})- . mapping _Coerce---- | The response for each range updated.-buvbdfrResponses :: Lens' BatchUpdateValuesByDataFilterResponse [UpdateValuesByDataFilterResponse]-buvbdfrResponses- = lens _buvbdfrResponses- (\ s a -> s{_buvbdfrResponses = a})- . _Default- . _Coerce---- | The spreadsheet the updates were applied to.-buvbdfrSpreadsheetId :: Lens' BatchUpdateValuesByDataFilterResponse (Maybe Text)-buvbdfrSpreadsheetId- = lens _buvbdfrSpreadsheetId- (\ s a -> s{_buvbdfrSpreadsheetId = a})---- | The total number of sheets where at least one cell in the sheet was--- updated.-buvbdfrTotalUpdatedSheets :: Lens' BatchUpdateValuesByDataFilterResponse (Maybe Int32)-buvbdfrTotalUpdatedSheets- = lens _buvbdfrTotalUpdatedSheets- (\ s a -> s{_buvbdfrTotalUpdatedSheets = a})- . mapping _Coerce---- | The total number of cells updated.-buvbdfrTotalUpdatedCells :: Lens' BatchUpdateValuesByDataFilterResponse (Maybe Int32)-buvbdfrTotalUpdatedCells- = lens _buvbdfrTotalUpdatedCells- (\ s a -> s{_buvbdfrTotalUpdatedCells = a})- . mapping _Coerce---- | The total number of rows where at least one cell in the row was updated.-buvbdfrTotalUpdatedRows :: Lens' BatchUpdateValuesByDataFilterResponse (Maybe Int32)-buvbdfrTotalUpdatedRows- = lens _buvbdfrTotalUpdatedRows- (\ s a -> s{_buvbdfrTotalUpdatedRows = a})- . mapping _Coerce--instance FromJSON- BatchUpdateValuesByDataFilterResponse where- parseJSON- = withObject "BatchUpdateValuesByDataFilterResponse"- (\ o ->- BatchUpdateValuesByDataFilterResponse' <$>- (o .:? "totalUpdatedColumns") <*>- (o .:? "responses" .!= mempty)- <*> (o .:? "spreadsheetId")- <*> (o .:? "totalUpdatedSheets")- <*> (o .:? "totalUpdatedCells")- <*> (o .:? "totalUpdatedRows"))--instance ToJSON BatchUpdateValuesByDataFilterResponse- where- toJSON BatchUpdateValuesByDataFilterResponse'{..}- = object- (catMaybes- [("totalUpdatedColumns" .=) <$>- _buvbdfrTotalUpdatedColumns,- ("responses" .=) <$> _buvbdfrResponses,- ("spreadsheetId" .=) <$> _buvbdfrSpreadsheetId,- ("totalUpdatedSheets" .=) <$>- _buvbdfrTotalUpdatedSheets,- ("totalUpdatedCells" .=) <$>- _buvbdfrTotalUpdatedCells,- ("totalUpdatedRows" .=) <$>- _buvbdfrTotalUpdatedRows])---- | The response when updating a range of values in a spreadsheet.------ /See:/ 'appendValuesResponse' smart constructor.-data AppendValuesResponse = AppendValuesResponse'- { _avrSpreadsheetId :: !(Maybe Text)- , _avrUpdates :: !(Maybe UpdateValuesResponse)- , _avrTableRange :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AppendValuesResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'avrSpreadsheetId'------ * 'avrUpdates'------ * 'avrTableRange'-appendValuesResponse- :: AppendValuesResponse-appendValuesResponse =- AppendValuesResponse'- { _avrSpreadsheetId = Nothing- , _avrUpdates = Nothing- , _avrTableRange = Nothing- }---- | The spreadsheet the updates were applied to.-avrSpreadsheetId :: Lens' AppendValuesResponse (Maybe Text)-avrSpreadsheetId- = lens _avrSpreadsheetId- (\ s a -> s{_avrSpreadsheetId = a})---- | Information about the updates that were applied.-avrUpdates :: Lens' AppendValuesResponse (Maybe UpdateValuesResponse)-avrUpdates- = lens _avrUpdates (\ s a -> s{_avrUpdates = a})---- | The range (in A1 notation) of the table that values are being appended--- to (before the values were appended). Empty if no table was found.-avrTableRange :: Lens' AppendValuesResponse (Maybe Text)-avrTableRange- = lens _avrTableRange- (\ s a -> s{_avrTableRange = a})--instance FromJSON AppendValuesResponse where- parseJSON- = withObject "AppendValuesResponse"- (\ o ->- AppendValuesResponse' <$>- (o .:? "spreadsheetId") <*> (o .:? "updates") <*>- (o .:? "tableRange"))--instance ToJSON AppendValuesResponse where- toJSON AppendValuesResponse'{..}- = object- (catMaybes- [("spreadsheetId" .=) <$> _avrSpreadsheetId,- ("updates" .=) <$> _avrUpdates,- ("tableRange" .=) <$> _avrTableRange])---- | 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 GFieldMask)- } 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 GFieldMask)-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'- { _bTargetAxis :: !(Maybe BasicChartSeriesTargetAxis)- , _bColor :: !(Maybe Color)- , _bSeries :: !(Maybe ChartData)- , _bType :: !(Maybe BasicChartSeriesType)- , _bLineStyle :: !(Maybe LineStyle)- } 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:------ * 'bTargetAxis'------ * 'bColor'------ * 'bSeries'------ * 'bType'------ * 'bLineStyle'-basicChartSeries- :: BasicChartSeries-basicChartSeries =- BasicChartSeries'- { _bTargetAxis = Nothing- , _bColor = Nothing- , _bSeries = Nothing- , _bType = Nothing- , _bLineStyle = 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.-bTargetAxis :: Lens' BasicChartSeries (Maybe BasicChartSeriesTargetAxis)-bTargetAxis- = lens _bTargetAxis (\ s a -> s{_bTargetAxis = a})---- | The color for elements (i.e. bars, lines, points) associated with this--- series. If empty, a default color is used.-bColor :: Lens' BasicChartSeries (Maybe Color)-bColor = lens _bColor (\ s a -> s{_bColor = a})---- | The data being visualized in this chart series.-bSeries :: Lens' BasicChartSeries (Maybe ChartData)-bSeries = lens _bSeries (\ s a -> s{_bSeries = 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.-bType :: Lens' BasicChartSeries (Maybe BasicChartSeriesType)-bType = lens _bType (\ s a -> s{_bType = a})---- | The line style of this series. Valid only if the chartType is AREA,--- LINE, or SCATTER. COMBO charts are also supported if the series chart--- type is AREA or LINE.-bLineStyle :: Lens' BasicChartSeries (Maybe LineStyle)-bLineStyle- = lens _bLineStyle (\ s a -> s{_bLineStyle = a})--instance FromJSON BasicChartSeries where- parseJSON- = withObject "BasicChartSeries"- (\ o ->- BasicChartSeries' <$>- (o .:? "targetAxis") <*> (o .:? "color") <*>- (o .:? "series")- <*> (o .:? "type")- <*> (o .:? "lineStyle"))--instance ToJSON BasicChartSeries where- toJSON BasicChartSeries'{..}- = object- (catMaybes- [("targetAxis" .=) <$> _bTargetAxis,- ("color" .=) <$> _bColor, ("series" .=) <$> _bSeries,- ("type" .=) <$> _bType,- ("lineStyle" .=) <$> _bLineStyle])---- | An optional setting on a PivotGroup that defines buckets for the values--- in the source data column rather than breaking out each individual--- value. Only one PivotGroup with a group rule may be added for each--- column in the source data, though on any given column you may add both a--- PivotGroup that has a rule and a PivotGroup that does not.------ /See:/ 'pivotGroupRule' smart constructor.-data PivotGroupRule = PivotGroupRule'- { _pgrDateTimeRule :: !(Maybe DateTimeRule)- , _pgrManualRule :: !(Maybe ManualRule)- , _pgrHistogramRule :: !(Maybe HistogramRule)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'PivotGroupRule' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pgrDateTimeRule'------ * 'pgrManualRule'------ * 'pgrHistogramRule'-pivotGroupRule- :: PivotGroupRule-pivotGroupRule =- PivotGroupRule'- { _pgrDateTimeRule = Nothing- , _pgrManualRule = Nothing- , _pgrHistogramRule = Nothing- }---- | A DateTimeRule.-pgrDateTimeRule :: Lens' PivotGroupRule (Maybe DateTimeRule)-pgrDateTimeRule- = lens _pgrDateTimeRule- (\ s a -> s{_pgrDateTimeRule = a})---- | A ManualRule.-pgrManualRule :: Lens' PivotGroupRule (Maybe ManualRule)-pgrManualRule- = lens _pgrManualRule- (\ s a -> s{_pgrManualRule = a})---- | A HistogramRule.-pgrHistogramRule :: Lens' PivotGroupRule (Maybe HistogramRule)-pgrHistogramRule- = lens _pgrHistogramRule- (\ s a -> s{_pgrHistogramRule = a})--instance FromJSON PivotGroupRule where- parseJSON- = withObject "PivotGroupRule"- (\ o ->- PivotGroupRule' <$>- (o .:? "dateTimeRule") <*> (o .:? "manualRule") <*>- (o .:? "histogramRule"))--instance ToJSON PivotGroupRule where- toJSON PivotGroupRule'{..}- = object- (catMaybes- [("dateTimeRule" .=) <$> _pgrDateTimeRule,- ("manualRule" .=) <$> _pgrManualRule,- ("histogramRule" .=) <$> _pgrHistogramRule])---- | 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. The protectedRangeId field is optional;--- if one is not set, an id will be randomly generated. (It is an error to--- specify the ID of a range that already exists.)-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 GFieldMask)- } 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 GFieldMask)-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 is parsed as if the user--- typed into a cell. Formulas are supported (and must begin with an \`=\`--- or a \'+\').-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])---- | The request for clearing a range of values in a spreadsheet.------ /See:/ 'clearValuesRequest' smart constructor.-data ClearValuesRequest =- ClearValuesRequest'- deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ClearValuesRequest' with the minimum fields required to make a request.----clearValuesRequest- :: ClearValuesRequest-clearValuesRequest = ClearValuesRequest'--instance FromJSON ClearValuesRequest where- parseJSON- = withObject "ClearValuesRequest"- (\ o -> pure ClearValuesRequest')--instance ToJSON ClearValuesRequest where- toJSON = const emptyObject---- | 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])---- | The request for retrieving a range of values in a spreadsheet selected--- by a set of DataFilters.------ /See:/ 'batchGetValuesByDataFilterRequest' smart constructor.-data BatchGetValuesByDataFilterRequest = BatchGetValuesByDataFilterRequest'- { _bgvbdfrValueRenderOption :: !(Maybe BatchGetValuesByDataFilterRequestValueRenderOption)- , _bgvbdfrDataFilters :: !(Maybe [DataFilter])- , _bgvbdfrDateTimeRenderOption :: !(Maybe BatchGetValuesByDataFilterRequestDateTimeRenderOption)- , _bgvbdfrMajorDimension :: !(Maybe BatchGetValuesByDataFilterRequestMajorDimension)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'BatchGetValuesByDataFilterRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bgvbdfrValueRenderOption'------ * 'bgvbdfrDataFilters'------ * 'bgvbdfrDateTimeRenderOption'------ * 'bgvbdfrMajorDimension'-batchGetValuesByDataFilterRequest- :: BatchGetValuesByDataFilterRequest-batchGetValuesByDataFilterRequest =- BatchGetValuesByDataFilterRequest'- { _bgvbdfrValueRenderOption = Nothing- , _bgvbdfrDataFilters = Nothing- , _bgvbdfrDateTimeRenderOption = Nothing- , _bgvbdfrMajorDimension = Nothing- }---- | How values should be represented in the output. The default render--- option is ValueRenderOption.FORMATTED_VALUE.-bgvbdfrValueRenderOption :: Lens' BatchGetValuesByDataFilterRequest (Maybe BatchGetValuesByDataFilterRequestValueRenderOption)-bgvbdfrValueRenderOption- = lens _bgvbdfrValueRenderOption- (\ s a -> s{_bgvbdfrValueRenderOption = a})---- | The data filters used to match the ranges of values to retrieve. Ranges--- that match any of the specified data filters will be included in the--- response.-bgvbdfrDataFilters :: Lens' BatchGetValuesByDataFilterRequest [DataFilter]-bgvbdfrDataFilters- = lens _bgvbdfrDataFilters- (\ s a -> s{_bgvbdfrDataFilters = a})- . _Default- . _Coerce---- | How dates, times, and durations should be represented in the output.--- This is ignored if value_render_option is FORMATTED_VALUE. The default--- dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].-bgvbdfrDateTimeRenderOption :: Lens' BatchGetValuesByDataFilterRequest (Maybe BatchGetValuesByDataFilterRequestDateTimeRenderOption)-bgvbdfrDateTimeRenderOption- = lens _bgvbdfrDateTimeRenderOption- (\ s a -> s{_bgvbdfrDateTimeRenderOption = a})---- | The major dimension that results should use. For example, if the--- spreadsheet data is: \`A1=1,B1=2,A2=3,B2=4\`, then a request that--- selects that range and sets \`majorDimension=ROWS\` will return--- \`[[1,2],[3,4]]\`, whereas a request that sets--- \`majorDimension=COLUMNS\` will return \`[[1,3],[2,4]]\`.-bgvbdfrMajorDimension :: Lens' BatchGetValuesByDataFilterRequest (Maybe BatchGetValuesByDataFilterRequestMajorDimension)-bgvbdfrMajorDimension- = lens _bgvbdfrMajorDimension- (\ s a -> s{_bgvbdfrMajorDimension = a})--instance FromJSON BatchGetValuesByDataFilterRequest- where- parseJSON- = withObject "BatchGetValuesByDataFilterRequest"- (\ o ->- BatchGetValuesByDataFilterRequest' <$>- (o .:? "valueRenderOption") <*>- (o .:? "dataFilters" .!= mempty)- <*> (o .:? "dateTimeRenderOption")- <*> (o .:? "majorDimension"))--instance ToJSON BatchGetValuesByDataFilterRequest- where- toJSON BatchGetValuesByDataFilterRequest'{..}- = object- (catMaybes- [("valueRenderOption" .=) <$>- _bgvbdfrValueRenderOption,- ("dataFilters" .=) <$> _bgvbdfrDataFilters,- ("dateTimeRenderOption" .=) <$>- _bgvbdfrDateTimeRenderOption,- ("majorDimension" .=) <$> _bgvbdfrMajorDimension])---- | 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 custom subtotal column for a waterfall chart series.------ /See:/ 'waterfallChartCustomSubtotal' smart constructor.-data WaterfallChartCustomSubtotal = WaterfallChartCustomSubtotal'- { _wccsDataIsSubtotal :: !(Maybe Bool)- , _wccsSubtotalIndex :: !(Maybe (Textual Int32))- , _wccsLabel :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'WaterfallChartCustomSubtotal' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'wccsDataIsSubtotal'------ * 'wccsSubtotalIndex'------ * 'wccsLabel'-waterfallChartCustomSubtotal- :: WaterfallChartCustomSubtotal-waterfallChartCustomSubtotal =- WaterfallChartCustomSubtotal'- { _wccsDataIsSubtotal = Nothing- , _wccsSubtotalIndex = Nothing- , _wccsLabel = Nothing- }---- | True if the data point at subtotal_index is the subtotal. If false, the--- subtotal will be computed and appear after the data point.-wccsDataIsSubtotal :: Lens' WaterfallChartCustomSubtotal (Maybe Bool)-wccsDataIsSubtotal- = lens _wccsDataIsSubtotal- (\ s a -> s{_wccsDataIsSubtotal = a})---- | The 0-based index of a data point within the series. If data_is_subtotal--- is true, the data point at this index is the subtotal. Otherwise, the--- subtotal appears after the data point with this index. A series can have--- multiple subtotals at arbitrary indices, but subtotals do not affect the--- indices of the data points. For example, if a series has three data--- points, their indices will always be 0, 1, and 2, regardless of how many--- subtotals exist on the series or what data points they are associated--- with.-wccsSubtotalIndex :: Lens' WaterfallChartCustomSubtotal (Maybe Int32)-wccsSubtotalIndex- = lens _wccsSubtotalIndex- (\ s a -> s{_wccsSubtotalIndex = a})- . mapping _Coerce---- | A label for the subtotal column.-wccsLabel :: Lens' WaterfallChartCustomSubtotal (Maybe Text)-wccsLabel- = lens _wccsLabel (\ s a -> s{_wccsLabel = a})--instance FromJSON WaterfallChartCustomSubtotal where- parseJSON- = withObject "WaterfallChartCustomSubtotal"- (\ o ->- WaterfallChartCustomSubtotal' <$>- (o .:? "dataIsSubtotal") <*> (o .:? "subtotalIndex")- <*> (o .:? "label"))--instance ToJSON WaterfallChartCustomSubtotal where- toJSON WaterfallChartCustomSubtotal'{..}- = object- (catMaybes- [("dataIsSubtotal" .=) <$> _wccsDataIsSubtotal,- ("subtotalIndex" .=) <$> _wccsSubtotalIndex,- ("label" .=) <$> _wccsLabel])---- | A single response from an update.------ /See:/ 'response' smart constructor.-data Response = Response'- { _rAddFilterView :: !(Maybe AddFilterViewResponse)- , _rCreateDeveloperMetadata :: !(Maybe CreateDeveloperMetadataResponse)- , _rDuplicateFilterView :: !(Maybe DuplicateFilterViewResponse)- , _rUpdateEmbeddedObjectPosition :: !(Maybe UpdateEmbeddedObjectPositionResponse)- , _rDeleteDimensionGroup :: !(Maybe DeleteDimensionGroupResponse)- , _rAddSheet :: !(Maybe AddSheetResponse)- , _rFindReplace :: !(Maybe FindReplaceResponse)- , _rAddProtectedRange :: !(Maybe AddProtectedRangeResponse)- , _rDeleteConditionalFormatRule :: !(Maybe DeleteConditionalFormatRuleResponse)- , _rUpdateConditionalFormatRule :: !(Maybe UpdateConditionalFormatRuleResponse)- , _rDeleteDeveloperMetadata :: !(Maybe DeleteDeveloperMetadataResponse)- , _rUpdateDeveloperMetadata :: !(Maybe UpdateDeveloperMetadataResponse)- , _rAddNamedRange :: !(Maybe AddNamedRangeResponse)- , _rAddChart :: !(Maybe AddChartResponse)- , _rAddBanding :: !(Maybe AddBandingResponse)- , _rDuplicateSheet :: !(Maybe DuplicateSheetResponse)- , _rAddDimensionGroup :: !(Maybe AddDimensionGroupResponse)- } 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'------ * 'rCreateDeveloperMetadata'------ * 'rDuplicateFilterView'------ * 'rUpdateEmbeddedObjectPosition'------ * 'rDeleteDimensionGroup'------ * 'rAddSheet'------ * 'rFindReplace'------ * 'rAddProtectedRange'------ * 'rDeleteConditionalFormatRule'------ * 'rUpdateConditionalFormatRule'------ * 'rDeleteDeveloperMetadata'------ * 'rUpdateDeveloperMetadata'------ * 'rAddNamedRange'------ * 'rAddChart'------ * 'rAddBanding'------ * 'rDuplicateSheet'------ * 'rAddDimensionGroup'-response- :: Response-response =- Response'- { _rAddFilterView = Nothing- , _rCreateDeveloperMetadata = Nothing- , _rDuplicateFilterView = Nothing- , _rUpdateEmbeddedObjectPosition = Nothing- , _rDeleteDimensionGroup = Nothing- , _rAddSheet = Nothing- , _rFindReplace = Nothing- , _rAddProtectedRange = Nothing- , _rDeleteConditionalFormatRule = Nothing- , _rUpdateConditionalFormatRule = Nothing- , _rDeleteDeveloperMetadata = Nothing- , _rUpdateDeveloperMetadata = Nothing- , _rAddNamedRange = Nothing- , _rAddChart = Nothing- , _rAddBanding = Nothing- , _rDuplicateSheet = Nothing- , _rAddDimensionGroup = Nothing- }---- | A reply from adding a filter view.-rAddFilterView :: Lens' Response (Maybe AddFilterViewResponse)-rAddFilterView- = lens _rAddFilterView- (\ s a -> s{_rAddFilterView = a})---- | A reply from creating a developer metadata entry.-rCreateDeveloperMetadata :: Lens' Response (Maybe CreateDeveloperMetadataResponse)-rCreateDeveloperMetadata- = lens _rCreateDeveloperMetadata- (\ s a -> s{_rCreateDeveloperMetadata = 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 deleting a dimension group.-rDeleteDimensionGroup :: Lens' Response (Maybe DeleteDimensionGroupResponse)-rDeleteDimensionGroup- = lens _rDeleteDimensionGroup- (\ s a -> s{_rDeleteDimensionGroup = 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 deleting a developer metadata entry.-rDeleteDeveloperMetadata :: Lens' Response (Maybe DeleteDeveloperMetadataResponse)-rDeleteDeveloperMetadata- = lens _rDeleteDeveloperMetadata- (\ s a -> s{_rDeleteDeveloperMetadata = a})---- | A reply from updating a developer metadata entry.-rUpdateDeveloperMetadata :: Lens' Response (Maybe UpdateDeveloperMetadataResponse)-rUpdateDeveloperMetadata- = lens _rUpdateDeveloperMetadata- (\ s a -> s{_rUpdateDeveloperMetadata = 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 adding a banded range.-rAddBanding :: Lens' Response (Maybe AddBandingResponse)-rAddBanding- = lens _rAddBanding (\ s a -> s{_rAddBanding = a})---- | A reply from duplicating a sheet.-rDuplicateSheet :: Lens' Response (Maybe DuplicateSheetResponse)-rDuplicateSheet- = lens _rDuplicateSheet- (\ s a -> s{_rDuplicateSheet = a})---- | A reply from adding a dimension group.-rAddDimensionGroup :: Lens' Response (Maybe AddDimensionGroupResponse)-rAddDimensionGroup- = lens _rAddDimensionGroup- (\ s a -> s{_rAddDimensionGroup = a})--instance FromJSON Response where- parseJSON- = withObject "Response"- (\ o ->- Response' <$>- (o .:? "addFilterView") <*>- (o .:? "createDeveloperMetadata")- <*> (o .:? "duplicateFilterView")- <*> (o .:? "updateEmbeddedObjectPosition")- <*> (o .:? "deleteDimensionGroup")- <*> (o .:? "addSheet")- <*> (o .:? "findReplace")- <*> (o .:? "addProtectedRange")- <*> (o .:? "deleteConditionalFormatRule")- <*> (o .:? "updateConditionalFormatRule")- <*> (o .:? "deleteDeveloperMetadata")- <*> (o .:? "updateDeveloperMetadata")- <*> (o .:? "addNamedRange")- <*> (o .:? "addChart")- <*> (o .:? "addBanding")- <*> (o .:? "duplicateSheet")- <*> (o .:? "addDimensionGroup"))--instance ToJSON Response where- toJSON Response'{..}- = object- (catMaybes- [("addFilterView" .=) <$> _rAddFilterView,- ("createDeveloperMetadata" .=) <$>- _rCreateDeveloperMetadata,- ("duplicateFilterView" .=) <$> _rDuplicateFilterView,- ("updateEmbeddedObjectPosition" .=) <$>- _rUpdateEmbeddedObjectPosition,- ("deleteDimensionGroup" .=) <$>- _rDeleteDimensionGroup,- ("addSheet" .=) <$> _rAddSheet,- ("findReplace" .=) <$> _rFindReplace,- ("addProtectedRange" .=) <$> _rAddProtectedRange,- ("deleteConditionalFormatRule" .=) <$>- _rDeleteConditionalFormatRule,- ("updateConditionalFormatRule" .=) <$>- _rUpdateConditionalFormatRule,- ("deleteDeveloperMetadata" .=) <$>- _rDeleteDeveloperMetadata,- ("updateDeveloperMetadata" .=) <$>- _rUpdateDeveloperMetadata,- ("addNamedRange" .=) <$> _rAddNamedRange,- ("addChart" .=) <$> _rAddChart,- ("addBanding" .=) <$> _rAddBanding,- ("duplicateSheet" .=) <$> _rDuplicateSheet,- ("addDimensionGroup" .=) <$> _rAddDimensionGroup])---- | 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])---- | A request to update properties of developer metadata. Updates the--- properties of the developer metadata selected by the filters to the--- values provided in the DeveloperMetadata resource. Callers must specify--- the properties they wish to update in the fields parameter, as well as--- specify at least one DataFilter matching the metadata they wish to--- update.------ /See:/ 'updateDeveloperMetadataRequest' smart constructor.-data UpdateDeveloperMetadataRequest = UpdateDeveloperMetadataRequest'- { _udmrDataFilters :: !(Maybe [DataFilter])- , _udmrDeveloperMetadata :: !(Maybe DeveloperMetadata)- , _udmrFields :: !(Maybe GFieldMask)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UpdateDeveloperMetadataRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'udmrDataFilters'------ * 'udmrDeveloperMetadata'------ * 'udmrFields'-updateDeveloperMetadataRequest- :: UpdateDeveloperMetadataRequest-updateDeveloperMetadataRequest =- UpdateDeveloperMetadataRequest'- { _udmrDataFilters = Nothing- , _udmrDeveloperMetadata = Nothing- , _udmrFields = Nothing- }---- | The filters matching the developer metadata entries to update.-udmrDataFilters :: Lens' UpdateDeveloperMetadataRequest [DataFilter]-udmrDataFilters- = lens _udmrDataFilters- (\ s a -> s{_udmrDataFilters = a})- . _Default- . _Coerce---- | The value that all metadata matched by the data filters will be updated--- to.-udmrDeveloperMetadata :: Lens' UpdateDeveloperMetadataRequest (Maybe DeveloperMetadata)-udmrDeveloperMetadata- = lens _udmrDeveloperMetadata- (\ s a -> s{_udmrDeveloperMetadata = a})---- | The fields that should be updated. At least one field must be specified.--- The root \`developerMetadata\` is implied and should not be specified. A--- single \`\"*\"\` can be used as short-hand for listing every field.-udmrFields :: Lens' UpdateDeveloperMetadataRequest (Maybe GFieldMask)-udmrFields- = lens _udmrFields (\ s a -> s{_udmrFields = a})--instance FromJSON UpdateDeveloperMetadataRequest- where- parseJSON- = withObject "UpdateDeveloperMetadataRequest"- (\ o ->- UpdateDeveloperMetadataRequest' <$>- (o .:? "dataFilters" .!= mempty) <*>- (o .:? "developerMetadata")- <*> (o .:? "fields"))--instance ToJSON UpdateDeveloperMetadataRequest where- toJSON UpdateDeveloperMetadataRequest'{..}- = object- (catMaybes- [("dataFilters" .=) <$> _udmrDataFilters,- ("developerMetadata" .=) <$> _udmrDeveloperMetadata,- ("fields" .=) <$> _udmrFields])---- | A request to delete developer metadata.------ /See:/ 'deleteDeveloperMetadataRequest' smart constructor.-newtype DeleteDeveloperMetadataRequest = DeleteDeveloperMetadataRequest'- { _ddmrDataFilter :: Maybe DataFilter- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DeleteDeveloperMetadataRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ddmrDataFilter'-deleteDeveloperMetadataRequest- :: DeleteDeveloperMetadataRequest-deleteDeveloperMetadataRequest =- DeleteDeveloperMetadataRequest'- { _ddmrDataFilter = Nothing- }---- | The data filter describing the criteria used to select which developer--- metadata entry to delete.-ddmrDataFilter :: Lens' DeleteDeveloperMetadataRequest (Maybe DataFilter)-ddmrDataFilter- = lens _ddmrDataFilter- (\ s a -> s{_ddmrDataFilter = a})--instance FromJSON DeleteDeveloperMetadataRequest- where- parseJSON- = withObject "DeleteDeveloperMetadataRequest"- (\ o ->- DeleteDeveloperMetadataRequest' <$>- (o .:? "dataFilter"))--instance ToJSON DeleteDeveloperMetadataRequest where- toJSON DeleteDeveloperMetadataRequest'{..}- = object- (catMaybes [("dataFilter" .=) <$> _ddmrDataFilter])---- | A waterfall chart.------ /See:/ 'waterfallChartSpec' smart constructor.-data WaterfallChartSpec = WaterfallChartSpec'- { _wcsStackedType :: !(Maybe WaterfallChartSpecStackedType)- , _wcsConnectorLineStyle :: !(Maybe LineStyle)- , _wcsDomain :: !(Maybe WaterfallChartDomain)- , _wcsSeries :: !(Maybe [WaterfallChartSeries])- , _wcsHideConnectorLines :: !(Maybe Bool)- , _wcsFirstValueIsTotal :: !(Maybe Bool)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'WaterfallChartSpec' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'wcsStackedType'------ * 'wcsConnectorLineStyle'------ * 'wcsDomain'------ * 'wcsSeries'------ * 'wcsHideConnectorLines'------ * 'wcsFirstValueIsTotal'-waterfallChartSpec- :: WaterfallChartSpec-waterfallChartSpec =- WaterfallChartSpec'- { _wcsStackedType = Nothing- , _wcsConnectorLineStyle = Nothing- , _wcsDomain = Nothing- , _wcsSeries = Nothing- , _wcsHideConnectorLines = Nothing- , _wcsFirstValueIsTotal = Nothing- }---- | The stacked type.-wcsStackedType :: Lens' WaterfallChartSpec (Maybe WaterfallChartSpecStackedType)-wcsStackedType- = lens _wcsStackedType- (\ s a -> s{_wcsStackedType = a})---- | The line style for the connector lines.-wcsConnectorLineStyle :: Lens' WaterfallChartSpec (Maybe LineStyle)-wcsConnectorLineStyle- = lens _wcsConnectorLineStyle- (\ s a -> s{_wcsConnectorLineStyle = a})---- | The domain data (horizontal axis) for the waterfall chart.-wcsDomain :: Lens' WaterfallChartSpec (Maybe WaterfallChartDomain)-wcsDomain- = lens _wcsDomain (\ s a -> s{_wcsDomain = a})---- | The data this waterfall chart is visualizing.-wcsSeries :: Lens' WaterfallChartSpec [WaterfallChartSeries]-wcsSeries- = lens _wcsSeries (\ s a -> s{_wcsSeries = a}) .- _Default- . _Coerce---- | True to hide connector lines between columns.-wcsHideConnectorLines :: Lens' WaterfallChartSpec (Maybe Bool)-wcsHideConnectorLines- = lens _wcsHideConnectorLines- (\ s a -> s{_wcsHideConnectorLines = a})---- | True to interpret the first value as a total.-wcsFirstValueIsTotal :: Lens' WaterfallChartSpec (Maybe Bool)-wcsFirstValueIsTotal- = lens _wcsFirstValueIsTotal- (\ s a -> s{_wcsFirstValueIsTotal = a})--instance FromJSON WaterfallChartSpec where- parseJSON- = withObject "WaterfallChartSpec"- (\ o ->- WaterfallChartSpec' <$>- (o .:? "stackedType") <*>- (o .:? "connectorLineStyle")- <*> (o .:? "domain")- <*> (o .:? "series" .!= mempty)- <*> (o .:? "hideConnectorLines")- <*> (o .:? "firstValueIsTotal"))--instance ToJSON WaterfallChartSpec where- toJSON WaterfallChartSpec'{..}- = object- (catMaybes- [("stackedType" .=) <$> _wcsStackedType,- ("connectorLineStyle" .=) <$> _wcsConnectorLineStyle,- ("domain" .=) <$> _wcsDomain,- ("series" .=) <$> _wcsSeries,- ("hideConnectorLines" .=) <$> _wcsHideConnectorLines,- ("firstValueIsTotal" .=) <$> _wcsFirstValueIsTotal])---- | 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])---- | A location where metadata may be associated in a spreadsheet.------ /See:/ 'developerMetadataLocation' smart constructor.-data DeveloperMetadataLocation = DeveloperMetadataLocation'- { _dmlSpreadsheet :: !(Maybe Bool)- , _dmlDimensionRange :: !(Maybe DimensionRange)- , _dmlSheetId :: !(Maybe (Textual Int32))- , _dmlLocationType :: !(Maybe DeveloperMetadataLocationLocationType)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DeveloperMetadataLocation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dmlSpreadsheet'------ * 'dmlDimensionRange'------ * 'dmlSheetId'------ * 'dmlLocationType'-developerMetadataLocation- :: DeveloperMetadataLocation-developerMetadataLocation =- DeveloperMetadataLocation'- { _dmlSpreadsheet = Nothing- , _dmlDimensionRange = Nothing- , _dmlSheetId = Nothing- , _dmlLocationType = Nothing- }---- | True when metadata is associated with an entire spreadsheet.-dmlSpreadsheet :: Lens' DeveloperMetadataLocation (Maybe Bool)-dmlSpreadsheet- = lens _dmlSpreadsheet- (\ s a -> s{_dmlSpreadsheet = a})---- | Represents the row or column when metadata is associated with a--- dimension. The specified DimensionRange must represent a single row or--- column; it cannot be unbounded or span multiple rows or columns.-dmlDimensionRange :: Lens' DeveloperMetadataLocation (Maybe DimensionRange)-dmlDimensionRange- = lens _dmlDimensionRange- (\ s a -> s{_dmlDimensionRange = a})---- | The ID of the sheet when metadata is associated with an entire sheet.-dmlSheetId :: Lens' DeveloperMetadataLocation (Maybe Int32)-dmlSheetId- = lens _dmlSheetId (\ s a -> s{_dmlSheetId = a}) .- mapping _Coerce---- | The type of location this object represents. This field is read-only.-dmlLocationType :: Lens' DeveloperMetadataLocation (Maybe DeveloperMetadataLocationLocationType)-dmlLocationType- = lens _dmlLocationType- (\ s a -> s{_dmlLocationType = a})--instance FromJSON DeveloperMetadataLocation where- parseJSON- = withObject "DeveloperMetadataLocation"- (\ o ->- DeveloperMetadataLocation' <$>- (o .:? "spreadsheet") <*> (o .:? "dimensionRange")- <*> (o .:? "sheetId")- <*> (o .:? "locationType"))--instance ToJSON DeveloperMetadataLocation where- toJSON DeveloperMetadataLocation'{..}- = object- (catMaybes- [("spreadsheet" .=) <$> _dmlSpreadsheet,- ("dimensionRange" .=) <$> _dmlDimensionRange,- ("sheetId" .=) <$> _dmlSheetId,- ("locationType" .=) <$> _dmlLocationType])---- | 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 is added or--- moved to the end of the sheet list. When updating sheet indices or--- inserting sheets, movement is considered in \"before the move\" indexes.--- For example, if there were 3 sheets (S1, S2, S3) in order to move S1--- ahead of S2 the index would have to be set to 2. A sheet index update--- request is ignored if the requested index is identical to the sheets--- current index or if the requested new index is equal to the current--- sheet index + 1.-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 GFieldMask)- , _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 GFieldMask)-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)- , _sprSpreadsheetURL :: !(Maybe Text)- , _sprDeveloperMetadata :: !(Maybe [DeveloperMetadata])- , _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'------ * 'sprSpreadsheetURL'------ * 'sprDeveloperMetadata'------ * 'sprProperties'-spreadsheet- :: Spreadsheet-spreadsheet =- Spreadsheet'- { _sprSheets = Nothing- , _sprNamedRanges = Nothing- , _sprSpreadsheetId = Nothing- , _sprSpreadsheetURL = Nothing- , _sprDeveloperMetadata = 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})---- | The url of the spreadsheet. This field is read-only.-sprSpreadsheetURL :: Lens' Spreadsheet (Maybe Text)-sprSpreadsheetURL- = lens _sprSpreadsheetURL- (\ s a -> s{_sprSpreadsheetURL = a})---- | The developer metadata associated with a spreadsheet.-sprDeveloperMetadata :: Lens' Spreadsheet [DeveloperMetadata]-sprDeveloperMetadata- = lens _sprDeveloperMetadata- (\ s a -> s{_sprDeveloperMetadata = a})- . _Default- . _Coerce---- | 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 .:? "spreadsheetUrl")- <*> (o .:? "developerMetadata" .!= mempty)- <*> (o .:? "properties"))--instance ToJSON Spreadsheet where- toJSON Spreadsheet'{..}- = object- (catMaybes- [("sheets" .=) <$> _sprSheets,- ("namedRanges" .=) <$> _sprNamedRanges,- ("spreadsheetId" .=) <$> _sprSpreadsheetId,- ("spreadsheetUrl" .=) <$> _sprSpreadsheetURL,- ("developerMetadata" .=) <$> _sprDeveloperMetadata,- ("properties" .=) <$> _sprProperties])---- | A </chart/interactive/docs/gallery/candlestickchart candlestick chart>.------ /See:/ 'candlestickChartSpec' smart constructor.-data CandlestickChartSpec = CandlestickChartSpec'- { _ccsData :: !(Maybe [CandlestickData])- , _ccsDomain :: !(Maybe CandlestickDomain)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'CandlestickChartSpec' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ccsData'------ * 'ccsDomain'-candlestickChartSpec- :: CandlestickChartSpec-candlestickChartSpec =- CandlestickChartSpec'- { _ccsData = Nothing- , _ccsDomain = Nothing- }---- | The Candlestick chart data. Only one CandlestickData is supported.-ccsData :: Lens' CandlestickChartSpec [CandlestickData]-ccsData- = lens _ccsData (\ s a -> s{_ccsData = a}) . _Default- . _Coerce---- | The domain data (horizontal axis) for the candlestick chart. String data--- will be treated as discrete labels, other data will be treated as--- continuous values.-ccsDomain :: Lens' CandlestickChartSpec (Maybe CandlestickDomain)-ccsDomain- = lens _ccsDomain (\ s a -> s{_ccsDomain = a})--instance FromJSON CandlestickChartSpec where- parseJSON- = withObject "CandlestickChartSpec"- (\ o ->- CandlestickChartSpec' <$>- (o .:? "data" .!= mempty) <*> (o .:? "domain"))--instance ToJSON CandlestickChartSpec where- toJSON CandlestickChartSpec'{..}- = object- (catMaybes- [("data" .=) <$> _ccsData,- ("domain" .=) <$> _ccsDomain])---- | 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 reply to a developer metadata search request.------ /See:/ 'searchDeveloperMetadataResponse' smart constructor.-newtype SearchDeveloperMetadataResponse = SearchDeveloperMetadataResponse'- { _sdmrMatchedDeveloperMetadata :: Maybe [MatchedDeveloperMetadata]- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'SearchDeveloperMetadataResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sdmrMatchedDeveloperMetadata'-searchDeveloperMetadataResponse- :: SearchDeveloperMetadataResponse-searchDeveloperMetadataResponse =- SearchDeveloperMetadataResponse'- { _sdmrMatchedDeveloperMetadata = Nothing- }---- | The metadata matching the criteria of the search request.-sdmrMatchedDeveloperMetadata :: Lens' SearchDeveloperMetadataResponse [MatchedDeveloperMetadata]-sdmrMatchedDeveloperMetadata- = lens _sdmrMatchedDeveloperMetadata- (\ s a -> s{_sdmrMatchedDeveloperMetadata = a})- . _Default- . _Coerce--instance FromJSON SearchDeveloperMetadataResponse- where- parseJSON- = withObject "SearchDeveloperMetadataResponse"- (\ o ->- SearchDeveloperMetadataResponse' <$>- (o .:? "matchedDeveloperMetadata" .!= mempty))--instance ToJSON SearchDeveloperMetadataResponse where- toJSON SearchDeveloperMetadataResponse'{..}- = object- (catMaybes- [("matchedDeveloperMetadata" .=) <$>- _sdmrMatchedDeveloperMetadata])---- | 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 are 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 in the--- userEnteredValue.formulaValue field.)-cdHyperlink :: Lens' CellData (Maybe Text)-cdHyperlink- = lens _cdHyperlink (\ s a -> s{_cdHyperlink = a})---- | The effective value of the cell. For cells with formulas, this is the--- calculated value. For cells with literals, this is 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 in order and--- 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 domain of a waterfall chart.------ /See:/ 'waterfallChartDomain' smart constructor.-data WaterfallChartDomain = WaterfallChartDomain'- { _wcdReversed :: !(Maybe Bool)- , _wcdData :: !(Maybe ChartData)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'WaterfallChartDomain' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'wcdReversed'------ * 'wcdData'-waterfallChartDomain- :: WaterfallChartDomain-waterfallChartDomain =- WaterfallChartDomain'- { _wcdReversed = Nothing- , _wcdData = Nothing- }---- | True to reverse the order of the domain values (horizontal axis).-wcdReversed :: Lens' WaterfallChartDomain (Maybe Bool)-wcdReversed- = lens _wcdReversed (\ s a -> s{_wcdReversed = a})---- | The data of the WaterfallChartDomain.-wcdData :: Lens' WaterfallChartDomain (Maybe ChartData)-wcdData = lens _wcdData (\ s a -> s{_wcdData = a})--instance FromJSON WaterfallChartDomain where- parseJSON- = withObject "WaterfallChartDomain"- (\ o ->- WaterfallChartDomain' <$>- (o .:? "reversed") <*> (o .:? "data"))--instance ToJSON WaterfallChartDomain where- toJSON WaterfallChartDomain'{..}- = object- (catMaybes- [("reversed" .=) <$> _wcdReversed,- ("data" .=) <$> _wcdData])---- | 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])---- | Settings to control how circular dependencies are resolved with--- iterative calculation.------ /See:/ 'iterativeCalculationSettings' smart constructor.-data IterativeCalculationSettings = IterativeCalculationSettings'- { _icsMaxIterations :: !(Maybe (Textual Int32))- , _icsConvergenceThreshold :: !(Maybe (Textual Double))- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'IterativeCalculationSettings' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'icsMaxIterations'------ * 'icsConvergenceThreshold'-iterativeCalculationSettings- :: IterativeCalculationSettings-iterativeCalculationSettings =- IterativeCalculationSettings'- { _icsMaxIterations = Nothing- , _icsConvergenceThreshold = Nothing- }---- | When iterative calculation is enabled, the maximum number of calculation--- rounds to perform.-icsMaxIterations :: Lens' IterativeCalculationSettings (Maybe Int32)-icsMaxIterations- = lens _icsMaxIterations- (\ s a -> s{_icsMaxIterations = a})- . mapping _Coerce---- | When iterative calculation is enabled and successive results differ by--- less than this threshold value, the calculation rounds stop.-icsConvergenceThreshold :: Lens' IterativeCalculationSettings (Maybe Double)-icsConvergenceThreshold- = lens _icsConvergenceThreshold- (\ s a -> s{_icsConvergenceThreshold = a})- . mapping _Coerce--instance FromJSON IterativeCalculationSettings where- parseJSON- = withObject "IterativeCalculationSettings"- (\ o ->- IterativeCalculationSettings' <$>- (o .:? "maxIterations") <*>- (o .:? "convergenceThreshold"))--instance ToJSON IterativeCalculationSettings where- toJSON IterativeCalculationSettings'{..}- = object- (catMaybes- [("maxIterations" .=) <$> _icsMaxIterations,- ("convergenceThreshold" .=) <$>- _icsConvergenceThreshold])---- | The response when updating a range of values by a data filter in a--- spreadsheet.------ /See:/ 'updateValuesByDataFilterResponse' smart constructor.-data UpdateValuesByDataFilterResponse = UpdateValuesByDataFilterResponse'- { _uvbdfrUpdatedCells :: !(Maybe (Textual Int32))- , _uvbdfrUpdatedRows :: !(Maybe (Textual Int32))- , _uvbdfrUpdatedRange :: !(Maybe Text)- , _uvbdfrUpdatedData :: !(Maybe ValueRange)- , _uvbdfrUpdatedColumns :: !(Maybe (Textual Int32))- , _uvbdfrDataFilter :: !(Maybe DataFilter)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UpdateValuesByDataFilterResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uvbdfrUpdatedCells'------ * 'uvbdfrUpdatedRows'------ * 'uvbdfrUpdatedRange'------ * 'uvbdfrUpdatedData'------ * 'uvbdfrUpdatedColumns'------ * 'uvbdfrDataFilter'-updateValuesByDataFilterResponse- :: UpdateValuesByDataFilterResponse-updateValuesByDataFilterResponse =- UpdateValuesByDataFilterResponse'- { _uvbdfrUpdatedCells = Nothing- , _uvbdfrUpdatedRows = Nothing- , _uvbdfrUpdatedRange = Nothing- , _uvbdfrUpdatedData = Nothing- , _uvbdfrUpdatedColumns = Nothing- , _uvbdfrDataFilter = Nothing- }---- | The number of cells updated.-uvbdfrUpdatedCells :: Lens' UpdateValuesByDataFilterResponse (Maybe Int32)-uvbdfrUpdatedCells- = lens _uvbdfrUpdatedCells- (\ s a -> s{_uvbdfrUpdatedCells = a})- . mapping _Coerce---- | The number of rows where at least one cell in the row was updated.-uvbdfrUpdatedRows :: Lens' UpdateValuesByDataFilterResponse (Maybe Int32)-uvbdfrUpdatedRows- = lens _uvbdfrUpdatedRows- (\ s a -> s{_uvbdfrUpdatedRows = a})- . mapping _Coerce---- | The range (in A1 notation) that updates were applied to.-uvbdfrUpdatedRange :: Lens' UpdateValuesByDataFilterResponse (Maybe Text)-uvbdfrUpdatedRange- = lens _uvbdfrUpdatedRange- (\ s a -> s{_uvbdfrUpdatedRange = a})---- | The values of the cells in the range matched by the dataFilter after all--- updates were applied. This is only included if the request\'s--- \`includeValuesInResponse\` field was \`true\`.-uvbdfrUpdatedData :: Lens' UpdateValuesByDataFilterResponse (Maybe ValueRange)-uvbdfrUpdatedData- = lens _uvbdfrUpdatedData- (\ s a -> s{_uvbdfrUpdatedData = a})---- | The number of columns where at least one cell in the column was updated.-uvbdfrUpdatedColumns :: Lens' UpdateValuesByDataFilterResponse (Maybe Int32)-uvbdfrUpdatedColumns- = lens _uvbdfrUpdatedColumns- (\ s a -> s{_uvbdfrUpdatedColumns = a})- . mapping _Coerce---- | The data filter that selected the range that was updated.-uvbdfrDataFilter :: Lens' UpdateValuesByDataFilterResponse (Maybe DataFilter)-uvbdfrDataFilter- = lens _uvbdfrDataFilter- (\ s a -> s{_uvbdfrDataFilter = a})--instance FromJSON UpdateValuesByDataFilterResponse- where- parseJSON- = withObject "UpdateValuesByDataFilterResponse"- (\ o ->- UpdateValuesByDataFilterResponse' <$>- (o .:? "updatedCells") <*> (o .:? "updatedRows") <*>- (o .:? "updatedRange")- <*> (o .:? "updatedData")- <*> (o .:? "updatedColumns")- <*> (o .:? "dataFilter"))--instance ToJSON UpdateValuesByDataFilterResponse- where- toJSON UpdateValuesByDataFilterResponse'{..}- = object- (catMaybes- [("updatedCells" .=) <$> _uvbdfrUpdatedCells,- ("updatedRows" .=) <$> _uvbdfrUpdatedRows,- ("updatedRange" .=) <$> _uvbdfrUpdatedRange,- ("updatedData" .=) <$> _uvbdfrUpdatedData,- ("updatedColumns" .=) <$> _uvbdfrUpdatedColumns,- ("dataFilter" .=) <$> _uvbdfrDataFilter])---- | Properties of a grid.------ /See:/ 'gridProperties' smart constructor.-data GridProperties = GridProperties'- { _gpFrozenColumnCount :: !(Maybe (Textual Int32))- , _gpColumnCount :: !(Maybe (Textual Int32))- , _gpColumnGroupControlAfter :: !(Maybe Bool)- , _gpHideGridlines :: !(Maybe Bool)- , _gpFrozenRowCount :: !(Maybe (Textual Int32))- , _gpRowGroupControlAfter :: !(Maybe Bool)- , _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'------ * 'gpColumnGroupControlAfter'------ * 'gpHideGridlines'------ * 'gpFrozenRowCount'------ * 'gpRowGroupControlAfter'------ * 'gpRowCount'-gridProperties- :: GridProperties-gridProperties =- GridProperties'- { _gpFrozenColumnCount = Nothing- , _gpColumnCount = Nothing- , _gpColumnGroupControlAfter = Nothing- , _gpHideGridlines = Nothing- , _gpFrozenRowCount = Nothing- , _gpRowGroupControlAfter = 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 column grouping control toggle is shown after the group.-gpColumnGroupControlAfter :: Lens' GridProperties (Maybe Bool)-gpColumnGroupControlAfter- = lens _gpColumnGroupControlAfter- (\ s a -> s{_gpColumnGroupControlAfter = a})---- | 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---- | True if the row grouping control toggle is shown after the group.-gpRowGroupControlAfter :: Lens' GridProperties (Maybe Bool)-gpRowGroupControlAfter- = lens _gpRowGroupControlAfter- (\ s a -> s{_gpRowGroupControlAfter = a})---- | 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 .:? "columnGroupControlAfter")- <*> (o .:? "hideGridlines")- <*> (o .:? "frozenRowCount")- <*> (o .:? "rowGroupControlAfter")- <*> (o .:? "rowCount"))--instance ToJSON GridProperties where- toJSON GridProperties'{..}- = object- (catMaybes- [("frozenColumnCount" .=) <$> _gpFrozenColumnCount,- ("columnCount" .=) <$> _gpColumnCount,- ("columnGroupControlAfter" .=) <$>- _gpColumnGroupControlAfter,- ("hideGridlines" .=) <$> _gpHideGridlines,- ("frozenRowCount" .=) <$> _gpFrozenRowCount,- ("rowGroupControlAfter" .=) <$>- _gpRowGroupControlAfter,- ("rowCount" .=) <$> _gpRowCount])---- | A </chart/interactive/docs/gallery/histogram histogram chart>. A--- histogram chart groups data items into bins, displaying each bin as a--- column of stacked items. Histograms are used to display the distribution--- of a dataset. Each column of items represents a range into which those--- items fall. The number of bins can be chosen automatically or specified--- explicitly.------ /See:/ 'histogramChartSpec' smart constructor.-data HistogramChartSpec = HistogramChartSpec'- { _hcsLegendPosition :: !(Maybe HistogramChartSpecLegendPosition)- , _hcsSeries :: !(Maybe [HistogramSeries])- , _hcsShowItemDividers :: !(Maybe Bool)- , _hcsOutlierPercentile :: !(Maybe (Textual Double))- , _hcsBucketSize :: !(Maybe (Textual Double))- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'HistogramChartSpec' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hcsLegendPosition'------ * 'hcsSeries'------ * 'hcsShowItemDividers'------ * 'hcsOutlierPercentile'------ * 'hcsBucketSize'-histogramChartSpec- :: HistogramChartSpec-histogramChartSpec =- HistogramChartSpec'- { _hcsLegendPosition = Nothing- , _hcsSeries = Nothing- , _hcsShowItemDividers = Nothing- , _hcsOutlierPercentile = Nothing- , _hcsBucketSize = Nothing- }---- | The position of the chart legend.-hcsLegendPosition :: Lens' HistogramChartSpec (Maybe HistogramChartSpecLegendPosition)-hcsLegendPosition- = lens _hcsLegendPosition- (\ s a -> s{_hcsLegendPosition = a})---- | The series for a histogram may be either a single series of values to be--- bucketed or multiple series, each of the same length, containing the--- name of the series followed by the values to be bucketed for that--- series.-hcsSeries :: Lens' HistogramChartSpec [HistogramSeries]-hcsSeries- = lens _hcsSeries (\ s a -> s{_hcsSeries = a}) .- _Default- . _Coerce---- | Whether horizontal divider lines should be displayed between items in--- each column.-hcsShowItemDividers :: Lens' HistogramChartSpec (Maybe Bool)-hcsShowItemDividers- = lens _hcsShowItemDividers- (\ s a -> s{_hcsShowItemDividers = a})---- | The outlier percentile is used to ensure that outliers do not adversely--- affect the calculation of bucket sizes. For example, setting an outlier--- percentile of 0.05 indicates that the top and bottom 5% of values when--- calculating buckets. The values are still included in the chart, they--- will be added to the first or last buckets instead of their own buckets.--- Must be between 0.0 and 0.5.-hcsOutlierPercentile :: Lens' HistogramChartSpec (Maybe Double)-hcsOutlierPercentile- = lens _hcsOutlierPercentile- (\ s a -> s{_hcsOutlierPercentile = a})- . mapping _Coerce---- | By default the bucket size (the range of values stacked in a single--- column) is chosen automatically, but it may be overridden here. E.g., A--- bucket size of 1.5 results in buckets from 0 - 1.5, 1.5 - 3.0, etc.--- Cannot be negative. This field is optional.-hcsBucketSize :: Lens' HistogramChartSpec (Maybe Double)-hcsBucketSize- = lens _hcsBucketSize- (\ s a -> s{_hcsBucketSize = a})- . mapping _Coerce--instance FromJSON HistogramChartSpec where- parseJSON- = withObject "HistogramChartSpec"- (\ o ->- HistogramChartSpec' <$>- (o .:? "legendPosition") <*>- (o .:? "series" .!= mempty)- <*> (o .:? "showItemDividers")- <*> (o .:? "outlierPercentile")- <*> (o .:? "bucketSize"))--instance ToJSON HistogramChartSpec where- toJSON HistogramChartSpec'{..}- = object- (catMaybes- [("legendPosition" .=) <$> _hcsLegendPosition,- ("series" .=) <$> _hcsSeries,- ("showItemDividers" .=) <$> _hcsShowItemDividers,- ("outlierPercentile" .=) <$> _hcsOutlierPercentile,- ("bucketSize" .=) <$> _hcsBucketSize])---- | 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---- | Adds a new banded range to the spreadsheet.------ /See:/ 'addBandingRequest' smart constructor.-newtype AddBandingRequest = AddBandingRequest'- { _abrBandedRange :: Maybe BandedRange- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AddBandingRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'abrBandedRange'-addBandingRequest- :: AddBandingRequest-addBandingRequest =- AddBandingRequest'- { _abrBandedRange = Nothing- }---- | The banded range to add. The bandedRangeId field is optional; if one is--- not set, an id will be randomly generated. (It is an error to specify--- the ID of a range that already exists.)-abrBandedRange :: Lens' AddBandingRequest (Maybe BandedRange)-abrBandedRange- = lens _abrBandedRange- (\ s a -> s{_abrBandedRange = a})--instance FromJSON AddBandingRequest where- parseJSON- = withObject "AddBandingRequest"- (\ o -> AddBandingRequest' <$> (o .:? "bandedRange"))--instance ToJSON AddBandingRequest where- toJSON AddBandingRequest'{..}- = object- (catMaybes [("bandedRange" .=) <$> _abrBandedRange])---- | Updates properties of dimensions within the specified range.------ /See:/ 'updateDimensionPropertiesRequest' smart constructor.-data UpdateDimensionPropertiesRequest = UpdateDimensionPropertiesRequest'- { _udprRange :: !(Maybe DimensionRange)- , _udprFields :: !(Maybe GFieldMask)- , _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 GFieldMask)-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 are--- 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])---- | Selects DeveloperMetadata that matches all of the specified fields. For--- example, if only a metadata ID is specified this considers the--- DeveloperMetadata with that particular unique ID. If a metadata key is--- specified, this considers all developer metadata with that key. If a--- key, visibility, and location type are all specified, this considers all--- developer metadata with that key and visibility that are associated with--- a location of that type. In general, this selects all DeveloperMetadata--- that matches the intersection of all the specified fields; any field or--- combination of fields may be specified.------ /See:/ 'developerMetadataLookup' smart constructor.-data DeveloperMetadataLookup = DeveloperMetadataLookup'- { _dLocationMatchingStrategy :: !(Maybe DeveloperMetadataLookupLocationMatchingStrategy)- , _dMetadataId :: !(Maybe (Textual Int32))- , _dVisibility :: !(Maybe DeveloperMetadataLookupVisibility)- , _dMetadataKey :: !(Maybe Text)- , _dLocationType :: !(Maybe DeveloperMetadataLookupLocationType)- , _dMetadataLocation :: !(Maybe DeveloperMetadataLocation)- , _dMetadataValue :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DeveloperMetadataLookup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dLocationMatchingStrategy'------ * 'dMetadataId'------ * 'dVisibility'------ * 'dMetadataKey'------ * 'dLocationType'------ * 'dMetadataLocation'------ * 'dMetadataValue'-developerMetadataLookup- :: DeveloperMetadataLookup-developerMetadataLookup =- DeveloperMetadataLookup'- { _dLocationMatchingStrategy = Nothing- , _dMetadataId = Nothing- , _dVisibility = Nothing- , _dMetadataKey = Nothing- , _dLocationType = Nothing- , _dMetadataLocation = Nothing- , _dMetadataValue = Nothing- }---- | Determines how this lookup matches the location. If this field is--- specified as EXACT, only developer metadata associated on the exact--- location specified is matched. If this field is specified to--- INTERSECTING, developer metadata associated on intersecting locations is--- also matched. If left unspecified, this field assumes a default value of--- INTERSECTING. If this field is specified, a metadataLocation must also--- be specified.-dLocationMatchingStrategy :: Lens' DeveloperMetadataLookup (Maybe DeveloperMetadataLookupLocationMatchingStrategy)-dLocationMatchingStrategy- = lens _dLocationMatchingStrategy- (\ s a -> s{_dLocationMatchingStrategy = a})---- | Limits the selected developer metadata to that which has a matching--- DeveloperMetadata.metadata_id.-dMetadataId :: Lens' DeveloperMetadataLookup (Maybe Int32)-dMetadataId- = lens _dMetadataId (\ s a -> s{_dMetadataId = a}) .- mapping _Coerce---- | Limits the selected developer metadata to that which has a matching--- DeveloperMetadata.visibility. If left unspecified, all developer--- metadata visibile to the requesting project is considered.-dVisibility :: Lens' DeveloperMetadataLookup (Maybe DeveloperMetadataLookupVisibility)-dVisibility- = lens _dVisibility (\ s a -> s{_dVisibility = a})---- | Limits the selected developer metadata to that which has a matching--- DeveloperMetadata.metadata_key.-dMetadataKey :: Lens' DeveloperMetadataLookup (Maybe Text)-dMetadataKey- = lens _dMetadataKey (\ s a -> s{_dMetadataKey = a})---- | Limits the selected developer metadata to those entries which are--- associated with locations of the specified type. For example, when this--- field is specified as ROW this lookup only considers developer metadata--- associated on rows. If the field is left unspecified, all location types--- are considered. This field cannot be specified as SPREADSHEET when the--- locationMatchingStrategy is specified as INTERSECTING or when the--- metadataLocation is specified as a non-spreadsheet location: spreadsheet--- metadata cannot intersect any other developer metadata location. This--- field also must be left unspecified when the locationMatchingStrategy is--- specified as EXACT.-dLocationType :: Lens' DeveloperMetadataLookup (Maybe DeveloperMetadataLookupLocationType)-dLocationType- = lens _dLocationType- (\ s a -> s{_dLocationType = a})---- | Limits the selected developer metadata to those entries associated with--- the specified location. This field either matches exact locations or all--- intersecting locations according the specified locationMatchingStrategy.-dMetadataLocation :: Lens' DeveloperMetadataLookup (Maybe DeveloperMetadataLocation)-dMetadataLocation- = lens _dMetadataLocation- (\ s a -> s{_dMetadataLocation = a})---- | Limits the selected developer metadata to that which has a matching--- DeveloperMetadata.metadata_value.-dMetadataValue :: Lens' DeveloperMetadataLookup (Maybe Text)-dMetadataValue- = lens _dMetadataValue- (\ s a -> s{_dMetadataValue = a})--instance FromJSON DeveloperMetadataLookup where- parseJSON- = withObject "DeveloperMetadataLookup"- (\ o ->- DeveloperMetadataLookup' <$>- (o .:? "locationMatchingStrategy") <*>- (o .:? "metadataId")- <*> (o .:? "visibility")- <*> (o .:? "metadataKey")- <*> (o .:? "locationType")- <*> (o .:? "metadataLocation")- <*> (o .:? "metadataValue"))--instance ToJSON DeveloperMetadataLookup where- toJSON DeveloperMetadataLookup'{..}- = object- (catMaybes- [("locationMatchingStrategy" .=) <$>- _dLocationMatchingStrategy,- ("metadataId" .=) <$> _dMetadataId,- ("visibility" .=) <$> _dVisibility,- ("metadataKey" .=) <$> _dMetadataKey,- ("locationType" .=) <$> _dLocationType,- ("metadataLocation" .=) <$> _dMetadataLocation,- ("metadataValue" .=) <$> _dMetadataValue])---- | 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 rotation applied to text in a cell.------ /See:/ 'textRotation' smart constructor.-data TextRotation = TextRotation'- { _trAngle :: !(Maybe (Textual Int32))- , _trVertical :: !(Maybe Bool)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TextRotation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'trAngle'------ * 'trVertical'-textRotation- :: TextRotation-textRotation =- TextRotation'- { _trAngle = Nothing- , _trVertical = Nothing- }---- | The angle between the standard orientation and the desired orientation.--- Measured in degrees. Valid values are between -90 and 90. Positive--- angles are angled upwards, negative are angled downwards. Note: For LTR--- text direction positive angles are in the counterclockwise direction,--- whereas for RTL they are in the clockwise direction-trAngle :: Lens' TextRotation (Maybe Int32)-trAngle- = lens _trAngle (\ s a -> s{_trAngle = a}) .- mapping _Coerce---- | If true, text reads top to bottom, but the orientation of individual--- characters is unchanged. For example: | V | | e | | r | | t | | i | | c--- | | a | | l |-trVertical :: Lens' TextRotation (Maybe Bool)-trVertical- = lens _trVertical (\ s a -> s{_trVertical = a})--instance FromJSON TextRotation where- parseJSON- = withObject "TextRotation"- (\ o ->- TextRotation' <$>- (o .:? "angle") <*> (o .:? "vertical"))--instance ToJSON TextRotation where- toJSON TextRotation'{..}- = object- (catMaybes- [("angle" .=) <$> _trAngle,- ("vertical" .=) <$> _trVertical])---- | 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)- , _buvrIncludeValuesInResponse :: !(Maybe Bool)- , _buvrResponseDateTimeRenderOption :: !(Maybe BatchUpdateValuesRequestResponseDateTimeRenderOption)- , _buvrResponseValueRenderOption :: !(Maybe BatchUpdateValuesRequestResponseValueRenderOption)- } 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'------ * 'buvrIncludeValuesInResponse'------ * 'buvrResponseDateTimeRenderOption'------ * 'buvrResponseValueRenderOption'-batchUpdateValuesRequest- :: BatchUpdateValuesRequest-batchUpdateValuesRequest =- BatchUpdateValuesRequest'- { _buvrData = Nothing- , _buvrValueInputOption = Nothing- , _buvrIncludeValuesInResponse = Nothing- , _buvrResponseDateTimeRenderOption = Nothing- , _buvrResponseValueRenderOption = 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})---- | Determines if the update response should include the values of the cells--- that were updated. By default, responses do not include the updated--- values. The \`updatedData\` field within each of the--- BatchUpdateValuesResponse.responses will contain the updated values. If--- the range to write was larger than than the range actually written, the--- response will include all values in the requested range (excluding--- trailing empty rows and columns).-buvrIncludeValuesInResponse :: Lens' BatchUpdateValuesRequest (Maybe Bool)-buvrIncludeValuesInResponse- = lens _buvrIncludeValuesInResponse- (\ s a -> s{_buvrIncludeValuesInResponse = a})---- | Determines how dates, times, and durations in the response should be--- rendered. This is ignored if response_value_render_option is--- FORMATTED_VALUE. The default dateTime render option is--- DateTimeRenderOption.SERIAL_NUMBER.-buvrResponseDateTimeRenderOption :: Lens' BatchUpdateValuesRequest (Maybe BatchUpdateValuesRequestResponseDateTimeRenderOption)-buvrResponseDateTimeRenderOption- = lens _buvrResponseDateTimeRenderOption- (\ s a -> s{_buvrResponseDateTimeRenderOption = a})---- | Determines how values in the response should be rendered. The default--- render option is ValueRenderOption.FORMATTED_VALUE.-buvrResponseValueRenderOption :: Lens' BatchUpdateValuesRequest (Maybe BatchUpdateValuesRequestResponseValueRenderOption)-buvrResponseValueRenderOption- = lens _buvrResponseValueRenderOption- (\ s a -> s{_buvrResponseValueRenderOption = a})--instance FromJSON BatchUpdateValuesRequest where- parseJSON- = withObject "BatchUpdateValuesRequest"- (\ o ->- BatchUpdateValuesRequest' <$>- (o .:? "data" .!= mempty) <*>- (o .:? "valueInputOption")- <*> (o .:? "includeValuesInResponse")- <*> (o .:? "responseDateTimeRenderOption")- <*> (o .:? "responseValueRenderOption"))--instance ToJSON BatchUpdateValuesRequest where- toJSON BatchUpdateValuesRequest'{..}- = object- (catMaybes- [("data" .=) <$> _buvrData,- ("valueInputOption" .=) <$> _buvrValueInputOption,- ("includeValuesInResponse" .=) <$>- _buvrIncludeValuesInResponse,- ("responseDateTimeRenderOption" .=) <$>- _buvrResponseDateTimeRenderOption,- ("responseValueRenderOption" .=) <$>- _buvrResponseValueRenderOption])---- | A range of values whose location is specified by a DataFilter.------ /See:/ 'dataFilterValueRange' smart constructor.-data DataFilterValueRange = DataFilterValueRange'- { _dfvrValues :: !(Maybe [[JSONValue]])- , _dfvrDataFilter :: !(Maybe DataFilter)- , _dfvrMajorDimension :: !(Maybe DataFilterValueRangeMajorDimension)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DataFilterValueRange' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dfvrValues'------ * 'dfvrDataFilter'------ * 'dfvrMajorDimension'-dataFilterValueRange- :: DataFilterValueRange-dataFilterValueRange =- DataFilterValueRange'- { _dfvrValues = Nothing- , _dfvrDataFilter = Nothing- , _dfvrMajorDimension = Nothing- }---- | The data to be written. If the provided values exceed any of the ranges--- matched by the data filter then the request will fail. If the provided--- values are less than the matched ranges only the specified values will--- be written, existing values in the matched ranges will remain--- unaffected.-dfvrValues :: Lens' DataFilterValueRange [[JSONValue]]-dfvrValues- = lens _dfvrValues (\ s a -> s{_dfvrValues = a}) .- _Default- . _Coerce---- | The data filter describing the location of the values in the--- spreadsheet.-dfvrDataFilter :: Lens' DataFilterValueRange (Maybe DataFilter)-dfvrDataFilter- = lens _dfvrDataFilter- (\ s a -> s{_dfvrDataFilter = a})---- | The major dimension of the values.-dfvrMajorDimension :: Lens' DataFilterValueRange (Maybe DataFilterValueRangeMajorDimension)-dfvrMajorDimension- = lens _dfvrMajorDimension- (\ s a -> s{_dfvrMajorDimension = a})--instance FromJSON DataFilterValueRange where- parseJSON- = withObject "DataFilterValueRange"- (\ o ->- DataFilterValueRange' <$>- (o .:? "values" .!= mempty) <*> (o .:? "dataFilter")- <*> (o .:? "majorDimension"))--instance ToJSON DataFilterValueRange where- toJSON DataFilterValueRange'{..}- = object- (catMaybes- [("values" .=) <$> _dfvrValues,- ("dataFilter" .=) <$> _dfvrDataFilter,- ("majorDimension" .=) <$> _dfvrMajorDimension])---- | 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. The chartId field is optional; if--- one is not set, an id will be randomly generated. (It is an error to--- specify the ID of a chart that already exists.)-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])---- | Allows you to manually organize the values in a source data column into--- buckets with names of your choosing. For example, a pivot table that--- aggregates population by state: +-------+-------------------+ | State |--- SUM of Population | +-------+-------------------+ | AK | 0.7 | | AL |--- 4.8 | | AR | 2.9 | ... +-------+-------------------+ could be turned--- into a pivot table that aggregates population by time zone by providing--- a list of groups (for example, groupName = \'Central\', items = [\'AL\',--- \'AR\', \'IA\', ...]) to a manual group rule. Note that a similar effect--- could be achieved by adding a time zone column to the source data and--- adjusting the pivot table. +-----------+-------------------+ | Time Zone--- | SUM of Population | +-----------+-------------------+ | Central |--- 106.3 | | Eastern | 151.9 | | Mountain | 17.4 | ...--- +-----------+-------------------+------ /See:/ 'manualRule' smart constructor.-newtype ManualRule = ManualRule'- { _mrGroups :: Maybe [ManualRuleGroup]- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ManualRule' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mrGroups'-manualRule- :: ManualRule-manualRule =- ManualRule'- { _mrGroups = Nothing- }---- | The list of group names and the corresponding items from the source data--- that map to each group name.-mrGroups :: Lens' ManualRule [ManualRuleGroup]-mrGroups- = lens _mrGroups (\ s a -> s{_mrGroups = a}) .- _Default- . _Coerce--instance FromJSON ManualRule where- parseJSON- = withObject "ManualRule"- (\ o -> ManualRule' <$> (o .:? "groups" .!= mempty))--instance ToJSON ManualRule where- toJSON ManualRule'{..}- = object (catMaybes [("groups" .=) <$> _mrGroups])---- | Position settings for text.------ /See:/ 'textPosition' smart constructor.-newtype TextPosition = TextPosition'- { _tpHorizontalAlignment :: Maybe TextPositionHorizontalAlignment- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TextPosition' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tpHorizontalAlignment'-textPosition- :: TextPosition-textPosition =- TextPosition'- { _tpHorizontalAlignment = Nothing- }---- | Horizontal alignment setting for the piece of text.-tpHorizontalAlignment :: Lens' TextPosition (Maybe TextPositionHorizontalAlignment)-tpHorizontalAlignment- = lens _tpHorizontalAlignment- (\ s a -> s{_tpHorizontalAlignment = a})--instance FromJSON TextPosition where- parseJSON- = withObject "TextPosition"- (\ o ->- TextPosition' <$> (o .:? "horizontalAlignment"))--instance ToJSON TextPosition where- toJSON TextPosition'{..}- = object- (catMaybes- [("horizontalAlignment" .=) <$>- _tpHorizontalAlignment])---- | 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. Deprecated; the width is determined--- by the \"style\" field.-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])---- | A request to retrieve all developer metadata matching the set of--- specified criteria.------ /See:/ 'searchDeveloperMetadataRequest' smart constructor.-newtype SearchDeveloperMetadataRequest = SearchDeveloperMetadataRequest'- { _sdmrDataFilters :: Maybe [DataFilter]- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'SearchDeveloperMetadataRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sdmrDataFilters'-searchDeveloperMetadataRequest- :: SearchDeveloperMetadataRequest-searchDeveloperMetadataRequest =- SearchDeveloperMetadataRequest'- { _sdmrDataFilters = Nothing- }---- | The data filters describing the criteria used to determine which--- DeveloperMetadata entries to return. DeveloperMetadata matching any of--- the specified filters will be included in the response.-sdmrDataFilters :: Lens' SearchDeveloperMetadataRequest [DataFilter]-sdmrDataFilters- = lens _sdmrDataFilters- (\ s a -> s{_sdmrDataFilters = a})- . _Default- . _Coerce--instance FromJSON SearchDeveloperMetadataRequest- where- parseJSON- = withObject "SearchDeveloperMetadataRequest"- (\ o ->- SearchDeveloperMetadataRequest' <$>- (o .:? "dataFilters" .!= mempty))--instance ToJSON SearchDeveloperMetadataRequest where- toJSON SearchDeveloperMetadataRequest'{..}- = object- (catMaybes [("dataFilters" .=) <$> _sdmrDataFilters])---- | The series of a CandlestickData.------ /See:/ 'candlestickSeries' smart constructor.-newtype CandlestickSeries = CandlestickSeries'- { _csData :: Maybe ChartData- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'CandlestickSeries' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csData'-candlestickSeries- :: CandlestickSeries-candlestickSeries =- CandlestickSeries'- { _csData = Nothing- }---- | The data of the CandlestickSeries.-csData :: Lens' CandlestickSeries (Maybe ChartData)-csData = lens _csData (\ s a -> s{_csData = a})--instance FromJSON CandlestickSeries where- parseJSON- = withObject "CandlestickSeries"- (\ o -> CandlestickSeries' <$> (o .:? "data"))--instance ToJSON CandlestickSeries where- toJSON CandlestickSeries'{..}- = object (catMaybes [("data" .=) <$> _csData])---- | 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. The namedRangeId field is optional; if one is--- not set, an id will be randomly generated. (It is an error to specify--- the ID of a 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 GFieldMask)- , _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 GFieldMask)-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 domain of a CandlestickChart.------ /See:/ 'candlestickDomain' smart constructor.-data CandlestickDomain = CandlestickDomain'- { _cdReversed :: !(Maybe Bool)- , _cdData :: !(Maybe ChartData)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'CandlestickDomain' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cdReversed'------ * 'cdData'-candlestickDomain- :: CandlestickDomain-candlestickDomain =- CandlestickDomain'- { _cdReversed = Nothing- , _cdData = Nothing- }---- | True to reverse the order of the domain values (horizontal axis).-cdReversed :: Lens' CandlestickDomain (Maybe Bool)-cdReversed- = lens _cdReversed (\ s a -> s{_cdReversed = a})---- | The data of the CandlestickDomain.-cdData :: Lens' CandlestickDomain (Maybe ChartData)-cdData = lens _cdData (\ s a -> s{_cdData = a})--instance FromJSON CandlestickDomain where- parseJSON- = withObject "CandlestickDomain"- (\ o ->- CandlestickDomain' <$>- (o .:? "reversed") <*> (o .:? "data"))--instance ToJSON CandlestickDomain where- toJSON CandlestickDomain'{..}- = object- (catMaybes- [("reversed" .=) <$> _cdReversed,- ("data" .=) <$> _cdData])---- | 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)- , _pvCalculatedDisplayType :: !(Maybe PivotValueCalculatedDisplayType)- , _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'------ * 'pvCalculatedDisplayType'------ * 'pvSummarizeFunction'-pivotValue- :: PivotValue-pivotValue =- PivotValue'- { _pvSourceColumnOffSet = Nothing- , _pvFormula = Nothing- , _pvName = Nothing- , _pvCalculatedDisplayType = 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.-pvName :: Lens' PivotValue (Maybe Text)-pvName = lens _pvName (\ s a -> s{_pvName = a})---- | If specified, indicates that pivot values should be displayed as the--- result of a calculation with another pivot value. For example, if--- calculated_display_type is specified as PERCENT_OF_GRAND_TOTAL, all the--- pivot values are displayed as the percentage of the grand total. In the--- Sheets UI, this is referred to as \"Show As\" in the value section of a--- pivot table.-pvCalculatedDisplayType :: Lens' PivotValue (Maybe PivotValueCalculatedDisplayType)-pvCalculatedDisplayType- = lens _pvCalculatedDisplayType- (\ s a -> s{_pvCalculatedDisplayType = 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 .:? "calculatedDisplayType")- <*> (o .:? "summarizeFunction"))--instance ToJSON PivotValue where- toJSON PivotValue'{..}- = object- (catMaybes- [("sourceColumnOffset" .=) <$> _pvSourceColumnOffSet,- ("formula" .=) <$> _pvFormula,- ("name" .=) <$> _pvName,- ("calculatedDisplayType" .=) <$>- _pvCalculatedDisplayType,- ("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])---- | Creates a group over the specified range. If the requested range is a--- superset of the range of an existing group G, then the depth of G is--- incremented and this new group G\' has the depth of that group. For--- example, a group [C:D, depth 1] + [B:E] results in groups [B:E, depth 1]--- and [C:D, depth 2]. If the requested range is a subset of the range of--- an existing group G, then the depth of the new group G\' becomes one--- greater than the depth of G. For example, a group [B:E, depth 1] + [C:D]--- results in groups [B:E, depth 1] and [C:D, depth 2]. If the requested--- range starts before and ends within, or starts within and ends after,--- the range of an existing group G, then the range of the existing group G--- becomes the union of the ranges, and the new group G\' has depth one--- greater than the depth of G and range as the intersection of the ranges.--- For example, a group [B:D, depth 1] + [C:E] results in groups [B:E,--- depth 1] and [C:D, depth 2].------ /See:/ 'addDimensionGroupRequest' smart constructor.-newtype AddDimensionGroupRequest = AddDimensionGroupRequest'- { _adgrRange :: Maybe DimensionRange- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AddDimensionGroupRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'adgrRange'-addDimensionGroupRequest- :: AddDimensionGroupRequest-addDimensionGroupRequest =- AddDimensionGroupRequest'- { _adgrRange = Nothing- }---- | The range over which to create a group.-adgrRange :: Lens' AddDimensionGroupRequest (Maybe DimensionRange)-adgrRange- = lens _adgrRange (\ s a -> s{_adgrRange = a})--instance FromJSON AddDimensionGroupRequest where- parseJSON- = withObject "AddDimensionGroupRequest"- (\ o ->- AddDimensionGroupRequest' <$> (o .:? "range"))--instance ToJSON AddDimensionGroupRequest where- toJSON AddDimensionGroupRequest'{..}- = object (catMaybes [("range" .=) <$> _adgrRange])---- | Styles for a waterfall chart column.------ /See:/ 'waterfallChartColumnStyle' smart constructor.-data WaterfallChartColumnStyle = WaterfallChartColumnStyle'- { _wColor :: !(Maybe Color)- , _wLabel :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'WaterfallChartColumnStyle' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'wColor'------ * 'wLabel'-waterfallChartColumnStyle- :: WaterfallChartColumnStyle-waterfallChartColumnStyle =- WaterfallChartColumnStyle'- { _wColor = Nothing- , _wLabel = Nothing- }---- | The color of the column.-wColor :: Lens' WaterfallChartColumnStyle (Maybe Color)-wColor = lens _wColor (\ s a -> s{_wColor = a})---- | The label of the column\'s legend.-wLabel :: Lens' WaterfallChartColumnStyle (Maybe Text)-wLabel = lens _wLabel (\ s a -> s{_wLabel = a})--instance FromJSON WaterfallChartColumnStyle where- parseJSON- = withObject "WaterfallChartColumnStyle"- (\ o ->- WaterfallChartColumnStyle' <$>- (o .:? "color") <*> (o .:? "label"))--instance ToJSON WaterfallChartColumnStyle where- toJSON WaterfallChartColumnStyle'{..}- = object- (catMaybes- [("color" .=) <$> _wColor, ("label" .=) <$> _wLabel])---- | The Candlestick chart data, each containing the low, open, close, and--- high values for a series.------ /See:/ 'candlestickData' smart constructor.-data CandlestickData = CandlestickData'- { _cdLowSeries :: !(Maybe CandlestickSeries)- , _cdHighSeries :: !(Maybe CandlestickSeries)- , _cdOpenSeries :: !(Maybe CandlestickSeries)- , _cdCloseSeries :: !(Maybe CandlestickSeries)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'CandlestickData' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cdLowSeries'------ * 'cdHighSeries'------ * 'cdOpenSeries'------ * 'cdCloseSeries'-candlestickData- :: CandlestickData-candlestickData =- CandlestickData'- { _cdLowSeries = Nothing- , _cdHighSeries = Nothing- , _cdOpenSeries = Nothing- , _cdCloseSeries = Nothing- }---- | The range data (vertical axis) for the low\/minimum value for each--- candle. This is the bottom of the candle\'s center line.-cdLowSeries :: Lens' CandlestickData (Maybe CandlestickSeries)-cdLowSeries- = lens _cdLowSeries (\ s a -> s{_cdLowSeries = a})---- | The range data (vertical axis) for the high\/maximum value for each--- candle. This is the top of the candle\'s center line.-cdHighSeries :: Lens' CandlestickData (Maybe CandlestickSeries)-cdHighSeries- = lens _cdHighSeries (\ s a -> s{_cdHighSeries = a})---- | The range data (vertical axis) for the open\/initial value for each--- candle. This is the bottom of the candle body. If less than the close--- value the candle will be filled. Otherwise the candle will be hollow.-cdOpenSeries :: Lens' CandlestickData (Maybe CandlestickSeries)-cdOpenSeries- = lens _cdOpenSeries (\ s a -> s{_cdOpenSeries = a})---- | The range data (vertical axis) for the close\/final value for each--- candle. This is the top of the candle body. If greater than the open--- value the candle will be filled. Otherwise the candle will be hollow.-cdCloseSeries :: Lens' CandlestickData (Maybe CandlestickSeries)-cdCloseSeries- = lens _cdCloseSeries- (\ s a -> s{_cdCloseSeries = a})--instance FromJSON CandlestickData where- parseJSON- = withObject "CandlestickData"- (\ o ->- CandlestickData' <$>- (o .:? "lowSeries") <*> (o .:? "highSeries") <*>- (o .:? "openSeries")- <*> (o .:? "closeSeries"))--instance ToJSON CandlestickData where- toJSON CandlestickData'{..}- = object- (catMaybes- [("lowSeries" .=) <$> _cdLowSeries,- ("highSeries" .=) <$> _cdHighSeries,- ("openSeries" .=) <$> _cdOpenSeries,- ("closeSeries" .=) <$> _cdCloseSeries])---- | A banded (alternating colors) range in a sheet.------ /See:/ 'bandedRange' smart constructor.-data BandedRange = BandedRange'- { _brBandedRangeId :: !(Maybe (Textual Int32))- , _brRowProperties :: !(Maybe BandingProperties)- , _brRange :: !(Maybe GridRange)- , _brColumnProperties :: !(Maybe BandingProperties)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'BandedRange' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'brBandedRangeId'------ * 'brRowProperties'------ * 'brRange'------ * 'brColumnProperties'-bandedRange- :: BandedRange-bandedRange =- BandedRange'- { _brBandedRangeId = Nothing- , _brRowProperties = Nothing- , _brRange = Nothing- , _brColumnProperties = Nothing- }---- | The id of the banded range.-brBandedRangeId :: Lens' BandedRange (Maybe Int32)-brBandedRangeId- = lens _brBandedRangeId- (\ s a -> s{_brBandedRangeId = a})- . mapping _Coerce---- | Properties for row bands. These properties are applied on a row-by-row--- basis throughout all the rows in the range. At least one of--- row_properties or column_properties must be specified.-brRowProperties :: Lens' BandedRange (Maybe BandingProperties)-brRowProperties- = lens _brRowProperties- (\ s a -> s{_brRowProperties = a})---- | The range over which these properties are applied.-brRange :: Lens' BandedRange (Maybe GridRange)-brRange = lens _brRange (\ s a -> s{_brRange = a})---- | Properties for column bands. These properties are applied on a column---- by-column basis throughout all the columns in the range. At least one of--- row_properties or column_properties must be specified.-brColumnProperties :: Lens' BandedRange (Maybe BandingProperties)-brColumnProperties- = lens _brColumnProperties- (\ s a -> s{_brColumnProperties = a})--instance FromJSON BandedRange where- parseJSON- = withObject "BandedRange"- (\ o ->- BandedRange' <$>- (o .:? "bandedRangeId") <*> (o .:? "rowProperties")- <*> (o .:? "range")- <*> (o .:? "columnProperties"))--instance ToJSON BandedRange where- toJSON BandedRange'{..}- = object- (catMaybes- [("bandedRangeId" .=) <$> _brBandedRangeId,- ("rowProperties" .=) <$> _brRowProperties,- ("range" .=) <$> _brRange,- ("columnProperties" .=) <$> _brColumnProperties])---- | 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])---- | The request for updating more than one range of values in a spreadsheet.------ /See:/ 'batchUpdateValuesByDataFilterRequest' smart constructor.-data BatchUpdateValuesByDataFilterRequest = BatchUpdateValuesByDataFilterRequest'- { _buvbdfrData :: !(Maybe [DataFilterValueRange])- , _buvbdfrValueInputOption :: !(Maybe BatchUpdateValuesByDataFilterRequestValueInputOption)- , _buvbdfrIncludeValuesInResponse :: !(Maybe Bool)- , _buvbdfrResponseDateTimeRenderOption :: !(Maybe BatchUpdateValuesByDataFilterRequestResponseDateTimeRenderOption)- , _buvbdfrResponseValueRenderOption :: !(Maybe BatchUpdateValuesByDataFilterRequestResponseValueRenderOption)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'BatchUpdateValuesByDataFilterRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'buvbdfrData'------ * 'buvbdfrValueInputOption'------ * 'buvbdfrIncludeValuesInResponse'------ * 'buvbdfrResponseDateTimeRenderOption'------ * 'buvbdfrResponseValueRenderOption'-batchUpdateValuesByDataFilterRequest- :: BatchUpdateValuesByDataFilterRequest-batchUpdateValuesByDataFilterRequest =- BatchUpdateValuesByDataFilterRequest'- { _buvbdfrData = Nothing- , _buvbdfrValueInputOption = Nothing- , _buvbdfrIncludeValuesInResponse = Nothing- , _buvbdfrResponseDateTimeRenderOption = Nothing- , _buvbdfrResponseValueRenderOption = Nothing- }---- | The new values to apply to the spreadsheet. If more than one range is--- matched by the specified DataFilter the specified values will be applied--- to all of those ranges.-buvbdfrData :: Lens' BatchUpdateValuesByDataFilterRequest [DataFilterValueRange]-buvbdfrData- = lens _buvbdfrData (\ s a -> s{_buvbdfrData = a}) .- _Default- . _Coerce---- | How the input data should be interpreted.-buvbdfrValueInputOption :: Lens' BatchUpdateValuesByDataFilterRequest (Maybe BatchUpdateValuesByDataFilterRequestValueInputOption)-buvbdfrValueInputOption- = lens _buvbdfrValueInputOption- (\ s a -> s{_buvbdfrValueInputOption = a})---- | Determines if the update response should include the values of the cells--- that were updated. By default, responses do not include the updated--- values. The \`updatedData\` field within each of the--- BatchUpdateValuesResponse.responses will contain the updated values. If--- the range to write was larger than than the range actually written, the--- response will include all values in the requested range (excluding--- trailing empty rows and columns).-buvbdfrIncludeValuesInResponse :: Lens' BatchUpdateValuesByDataFilterRequest (Maybe Bool)-buvbdfrIncludeValuesInResponse- = lens _buvbdfrIncludeValuesInResponse- (\ s a -> s{_buvbdfrIncludeValuesInResponse = a})---- | Determines how dates, times, and durations in the response should be--- rendered. This is ignored if response_value_render_option is--- FORMATTED_VALUE. The default dateTime render option is--- DateTimeRenderOption.SERIAL_NUMBER.-buvbdfrResponseDateTimeRenderOption :: Lens' BatchUpdateValuesByDataFilterRequest (Maybe BatchUpdateValuesByDataFilterRequestResponseDateTimeRenderOption)-buvbdfrResponseDateTimeRenderOption- = lens _buvbdfrResponseDateTimeRenderOption- (\ s a ->- s{_buvbdfrResponseDateTimeRenderOption = a})---- | Determines how values in the response should be rendered. The default--- render option is ValueRenderOption.FORMATTED_VALUE.-buvbdfrResponseValueRenderOption :: Lens' BatchUpdateValuesByDataFilterRequest (Maybe BatchUpdateValuesByDataFilterRequestResponseValueRenderOption)-buvbdfrResponseValueRenderOption- = lens _buvbdfrResponseValueRenderOption- (\ s a -> s{_buvbdfrResponseValueRenderOption = a})--instance FromJSON- BatchUpdateValuesByDataFilterRequest where- parseJSON- = withObject "BatchUpdateValuesByDataFilterRequest"- (\ o ->- BatchUpdateValuesByDataFilterRequest' <$>- (o .:? "data" .!= mempty) <*>- (o .:? "valueInputOption")- <*> (o .:? "includeValuesInResponse")- <*> (o .:? "responseDateTimeRenderOption")- <*> (o .:? "responseValueRenderOption"))--instance ToJSON BatchUpdateValuesByDataFilterRequest- where- toJSON BatchUpdateValuesByDataFilterRequest'{..}- = object- (catMaybes- [("data" .=) <$> _buvbdfrData,- ("valueInputOption" .=) <$> _buvbdfrValueInputOption,- ("includeValuesInResponse" .=) <$>- _buvbdfrIncludeValuesInResponse,- ("responseDateTimeRenderOption" .=) <$>- _buvbdfrResponseDateTimeRenderOption,- ("responseValueRenderOption" .=) <$>- _buvbdfrResponseValueRenderOption])---- | 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 are--- 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 is 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 retrieving a Spreadsheet.------ /See:/ 'getSpreadsheetByDataFilterRequest' smart constructor.-data GetSpreadsheetByDataFilterRequest = GetSpreadsheetByDataFilterRequest'- { _gsbdfrDataFilters :: !(Maybe [DataFilter])- , _gsbdfrIncludeGridData :: !(Maybe Bool)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'GetSpreadsheetByDataFilterRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gsbdfrDataFilters'------ * 'gsbdfrIncludeGridData'-getSpreadsheetByDataFilterRequest- :: GetSpreadsheetByDataFilterRequest-getSpreadsheetByDataFilterRequest =- GetSpreadsheetByDataFilterRequest'- { _gsbdfrDataFilters = Nothing- , _gsbdfrIncludeGridData = Nothing- }---- | The DataFilters used to select which ranges to retrieve from the--- spreadsheet.-gsbdfrDataFilters :: Lens' GetSpreadsheetByDataFilterRequest [DataFilter]-gsbdfrDataFilters- = lens _gsbdfrDataFilters- (\ s a -> s{_gsbdfrDataFilters = a})- . _Default- . _Coerce---- | True if grid data should be returned. This parameter is ignored if a--- field mask was set in the request.-gsbdfrIncludeGridData :: Lens' GetSpreadsheetByDataFilterRequest (Maybe Bool)-gsbdfrIncludeGridData- = lens _gsbdfrIncludeGridData- (\ s a -> s{_gsbdfrIncludeGridData = a})--instance FromJSON GetSpreadsheetByDataFilterRequest- where- parseJSON- = withObject "GetSpreadsheetByDataFilterRequest"- (\ o ->- GetSpreadsheetByDataFilterRequest' <$>- (o .:? "dataFilters" .!= mempty) <*>- (o .:? "includeGridData"))--instance ToJSON GetSpreadsheetByDataFilterRequest- where- toJSON GetSpreadsheetByDataFilterRequest'{..}- = object- (catMaybes- [("dataFilters" .=) <$> _gsbdfrDataFilters,- ("includeGridData" .=) <$> _gsbdfrIncludeGridData])---- | The request for updating any aspect of a spreadsheet.------ /See:/ 'batchUpdateSpreadsheetRequest' smart constructor.-data BatchUpdateSpreadsheetRequest = BatchUpdateSpreadsheetRequest'- { _busrResponseIncludeGridData :: !(Maybe Bool)- , _busrResponseRanges :: !(Maybe [Text])- , _busrRequests :: !(Maybe [Request'])- , _busrIncludeSpreadsheetInResponse :: !(Maybe Bool)- } 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:------ * 'busrResponseIncludeGridData'------ * 'busrResponseRanges'------ * 'busrRequests'------ * 'busrIncludeSpreadsheetInResponse'-batchUpdateSpreadsheetRequest- :: BatchUpdateSpreadsheetRequest-batchUpdateSpreadsheetRequest =- BatchUpdateSpreadsheetRequest'- { _busrResponseIncludeGridData = Nothing- , _busrResponseRanges = Nothing- , _busrRequests = Nothing- , _busrIncludeSpreadsheetInResponse = Nothing- }---- | True if grid data should be returned. Meaningful only if if--- include_spreadsheet_in_response is \'true\'. This parameter is ignored--- if a field mask was set in the request.-busrResponseIncludeGridData :: Lens' BatchUpdateSpreadsheetRequest (Maybe Bool)-busrResponseIncludeGridData- = lens _busrResponseIncludeGridData- (\ s a -> s{_busrResponseIncludeGridData = a})---- | Limits the ranges included in the response spreadsheet. Meaningful only--- if include_spreadsheet_response is \'true\'.-busrResponseRanges :: Lens' BatchUpdateSpreadsheetRequest [Text]-busrResponseRanges- = lens _busrResponseRanges- (\ s a -> s{_busrResponseRanges = a})- . _Default- . _Coerce---- | A list of updates to apply to the spreadsheet. Requests will be applied--- in the order they are specified. If any request is not valid, no--- requests will be applied.-busrRequests :: Lens' BatchUpdateSpreadsheetRequest [Request']-busrRequests- = lens _busrRequests (\ s a -> s{_busrRequests = a})- . _Default- . _Coerce---- | Determines if the update response should include the spreadsheet--- resource.-busrIncludeSpreadsheetInResponse :: Lens' BatchUpdateSpreadsheetRequest (Maybe Bool)-busrIncludeSpreadsheetInResponse- = lens _busrIncludeSpreadsheetInResponse- (\ s a -> s{_busrIncludeSpreadsheetInResponse = a})--instance FromJSON BatchUpdateSpreadsheetRequest where- parseJSON- = withObject "BatchUpdateSpreadsheetRequest"- (\ o ->- BatchUpdateSpreadsheetRequest' <$>- (o .:? "responseIncludeGridData") <*>- (o .:? "responseRanges" .!= mempty)- <*> (o .:? "requests" .!= mempty)- <*> (o .:? "includeSpreadsheetInResponse"))--instance ToJSON BatchUpdateSpreadsheetRequest where- toJSON BatchUpdateSpreadsheetRequest'{..}- = object- (catMaybes- [("responseIncludeGridData" .=) <$>- _busrResponseIncludeGridData,- ("responseRanges" .=) <$> _busrResponseRanges,- ("requests" .=) <$> _busrRequests,- ("includeSpreadsheetInResponse" .=) <$>- _busrIncludeSpreadsheetInResponse])---- | 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)- , _uvrUpdatedData :: !(Maybe ValueRange)- , _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'------ * 'uvrUpdatedData'------ * 'uvrUpdatedColumns'-updateValuesResponse- :: UpdateValuesResponse-updateValuesResponse =- UpdateValuesResponse'- { _uvrUpdatedCells = Nothing- , _uvrSpreadsheetId = Nothing- , _uvrUpdatedRows = Nothing- , _uvrUpdatedRange = Nothing- , _uvrUpdatedData = 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 values of the cells after updates were applied. This is only--- included if the request\'s \`includeValuesInResponse\` field was--- \`true\`.-uvrUpdatedData :: Lens' UpdateValuesResponse (Maybe ValueRange)-uvrUpdatedData- = lens _uvrUpdatedData- (\ s a -> s{_uvrUpdatedData = 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 .:? "updatedData")- <*> (o .:? "updatedColumns"))--instance ToJSON UpdateValuesResponse where- toJSON UpdateValuesResponse'{..}- = object- (catMaybes- [("updatedCells" .=) <$> _uvrUpdatedCells,- ("spreadsheetId" .=) <$> _uvrSpreadsheetId,- ("updatedRows" .=) <$> _uvrUpdatedRows,- ("updatedRange" .=) <$> _uvrUpdatedRange,- ("updatedData" .=) <$> _uvrUpdatedData,- ("updatedColumns" .=) <$> _uvrUpdatedColumns])---- | The result of deleting a group.------ /See:/ 'deleteDimensionGroupResponse' smart constructor.-newtype DeleteDimensionGroupResponse = DeleteDimensionGroupResponse'- { _ddgrDimensionGroups :: Maybe [DimensionGroup]- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DeleteDimensionGroupResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ddgrDimensionGroups'-deleteDimensionGroupResponse- :: DeleteDimensionGroupResponse-deleteDimensionGroupResponse =- DeleteDimensionGroupResponse'- { _ddgrDimensionGroups = Nothing- }---- | All groups of a dimension after deleting a group from that dimension.-ddgrDimensionGroups :: Lens' DeleteDimensionGroupResponse [DimensionGroup]-ddgrDimensionGroups- = lens _ddgrDimensionGroups- (\ s a -> s{_ddgrDimensionGroups = a})- . _Default- . _Coerce--instance FromJSON DeleteDimensionGroupResponse where- parseJSON- = withObject "DeleteDimensionGroupResponse"- (\ o ->- DeleteDimensionGroupResponse' <$>- (o .:? "dimensionGroups" .!= mempty))--instance ToJSON DeleteDimensionGroupResponse where- toJSON DeleteDimensionGroupResponse'{..}- = object- (catMaybes- [("dimensionGroups" .=) <$> _ddgrDimensionGroups])---- | 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. The filterViewId field is optional; if one is not--- set, an id will be randomly generated. (It is an error to specify the ID--- of a filter that already exists.)-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])---- | The response when clearing a range of values selected with DataFilters--- in a spreadsheet.------ /See:/ 'batchClearValuesByDataFilterResponse' smart constructor.-data BatchClearValuesByDataFilterResponse = BatchClearValuesByDataFilterResponse'- { _bcvbdfrClearedRanges :: !(Maybe [Text])- , _bcvbdfrSpreadsheetId :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'BatchClearValuesByDataFilterResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bcvbdfrClearedRanges'------ * 'bcvbdfrSpreadsheetId'-batchClearValuesByDataFilterResponse- :: BatchClearValuesByDataFilterResponse-batchClearValuesByDataFilterResponse =- BatchClearValuesByDataFilterResponse'- { _bcvbdfrClearedRanges = Nothing- , _bcvbdfrSpreadsheetId = Nothing- }---- | The ranges that were cleared, in A1 notation. (If the requests were for--- an unbounded range or a ranger larger than the bounds of the sheet, this--- will be the actual ranges that were cleared, bounded to the sheet\'s--- limits.)-bcvbdfrClearedRanges :: Lens' BatchClearValuesByDataFilterResponse [Text]-bcvbdfrClearedRanges- = lens _bcvbdfrClearedRanges- (\ s a -> s{_bcvbdfrClearedRanges = a})- . _Default- . _Coerce---- | The spreadsheet the updates were applied to.-bcvbdfrSpreadsheetId :: Lens' BatchClearValuesByDataFilterResponse (Maybe Text)-bcvbdfrSpreadsheetId- = lens _bcvbdfrSpreadsheetId- (\ s a -> s{_bcvbdfrSpreadsheetId = a})--instance FromJSON- BatchClearValuesByDataFilterResponse where- parseJSON- = withObject "BatchClearValuesByDataFilterResponse"- (\ o ->- BatchClearValuesByDataFilterResponse' <$>- (o .:? "clearedRanges" .!= mempty) <*>- (o .:? "spreadsheetId"))--instance ToJSON BatchClearValuesByDataFilterResponse- where- toJSON BatchClearValuesByDataFilterResponse'{..}- = object- (catMaybes- [("clearedRanges" .=) <$> _bcvbdfrClearedRanges,- ("spreadsheetId" .=) <$> _bcvbdfrSpreadsheetId])---- | A single series of data for a waterfall chart.------ /See:/ 'waterfallChartSeries' smart constructor.-data WaterfallChartSeries = WaterfallChartSeries'- { _wcsData :: !(Maybe ChartData)- , _wcsCustomSubtotals :: !(Maybe [WaterfallChartCustomSubtotal])- , _wcsNegativeColumnsStyle :: !(Maybe WaterfallChartColumnStyle)- , _wcsHideTrailingSubtotal :: !(Maybe Bool)- , _wcsSubtotalColumnsStyle :: !(Maybe WaterfallChartColumnStyle)- , _wcsPositiveColumnsStyle :: !(Maybe WaterfallChartColumnStyle)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'WaterfallChartSeries' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'wcsData'------ * 'wcsCustomSubtotals'------ * 'wcsNegativeColumnsStyle'------ * 'wcsHideTrailingSubtotal'------ * 'wcsSubtotalColumnsStyle'------ * 'wcsPositiveColumnsStyle'-waterfallChartSeries- :: WaterfallChartSeries-waterfallChartSeries =- WaterfallChartSeries'- { _wcsData = Nothing- , _wcsCustomSubtotals = Nothing- , _wcsNegativeColumnsStyle = Nothing- , _wcsHideTrailingSubtotal = Nothing- , _wcsSubtotalColumnsStyle = Nothing- , _wcsPositiveColumnsStyle = Nothing- }---- | The data being visualized in this series.-wcsData :: Lens' WaterfallChartSeries (Maybe ChartData)-wcsData = lens _wcsData (\ s a -> s{_wcsData = a})---- | Custom subtotal columns appearing in this series. The order in which--- subtotals are defined is not significant. Only one subtotal may be--- defined for each data point.-wcsCustomSubtotals :: Lens' WaterfallChartSeries [WaterfallChartCustomSubtotal]-wcsCustomSubtotals- = lens _wcsCustomSubtotals- (\ s a -> s{_wcsCustomSubtotals = a})- . _Default- . _Coerce---- | Styles for all columns in this series with negative values.-wcsNegativeColumnsStyle :: Lens' WaterfallChartSeries (Maybe WaterfallChartColumnStyle)-wcsNegativeColumnsStyle- = lens _wcsNegativeColumnsStyle- (\ s a -> s{_wcsNegativeColumnsStyle = a})---- | True to hide the subtotal column from the end of the series. By default,--- a subtotal column will appear at the end of each series. Setting this--- field to true will hide that subtotal column for this series.-wcsHideTrailingSubtotal :: Lens' WaterfallChartSeries (Maybe Bool)-wcsHideTrailingSubtotal- = lens _wcsHideTrailingSubtotal- (\ s a -> s{_wcsHideTrailingSubtotal = a})---- | Styles for all subtotal columns in this series.-wcsSubtotalColumnsStyle :: Lens' WaterfallChartSeries (Maybe WaterfallChartColumnStyle)-wcsSubtotalColumnsStyle- = lens _wcsSubtotalColumnsStyle- (\ s a -> s{_wcsSubtotalColumnsStyle = a})---- | Styles for all columns in this series with positive values.-wcsPositiveColumnsStyle :: Lens' WaterfallChartSeries (Maybe WaterfallChartColumnStyle)-wcsPositiveColumnsStyle- = lens _wcsPositiveColumnsStyle- (\ s a -> s{_wcsPositiveColumnsStyle = a})--instance FromJSON WaterfallChartSeries where- parseJSON- = withObject "WaterfallChartSeries"- (\ o ->- WaterfallChartSeries' <$>- (o .:? "data") <*>- (o .:? "customSubtotals" .!= mempty)- <*> (o .:? "negativeColumnsStyle")- <*> (o .:? "hideTrailingSubtotal")- <*> (o .:? "subtotalColumnsStyle")- <*> (o .:? "positiveColumnsStyle"))--instance ToJSON WaterfallChartSeries where- toJSON WaterfallChartSeries'{..}- = object- (catMaybes- [("data" .=) <$> _wcsData,- ("customSubtotals" .=) <$> _wcsCustomSubtotals,- ("negativeColumnsStyle" .=) <$>- _wcsNegativeColumnsStyle,- ("hideTrailingSubtotal" .=) <$>- _wcsHideTrailingSubtotal,- ("subtotalColumnsStyle" .=) <$>- _wcsSubtotalColumnsStyle,- ("positiveColumnsStyle" .=) <$>- _wcsPositiveColumnsStyle])---- | 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 GFieldMask)- } 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 GFieldMask)-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)- , _cfTextRotation :: !(Maybe TextRotation)- , _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'------ * 'cfTextRotation'------ * 'cfHyperlinkDisplayType'------ * 'cfWrapStrategy'------ * 'cfNumberFormat'------ * 'cfTextDirection'------ * 'cfTextFormat'------ * 'cfHorizontalAlignment'------ * 'cfPadding'-cellFormat- :: CellFormat-cellFormat =- CellFormat'- { _cfBOrders = Nothing- , _cfVerticalAlignment = Nothing- , _cfBackgRoundColor = Nothing- , _cfTextRotation = 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})---- | The rotation applied to text in a cell-cfTextRotation :: Lens' CellFormat (Maybe TextRotation)-cfTextRotation- = lens _cfTextRotation- (\ s a -> s{_cfTextRotation = 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 .:? "textRotation")- <*> (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,- ("textRotation" .=) <$> _cfTextRotation,- ("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 GFieldMask)- } 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.-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 GFieldMask)-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'- { _bcaTitleTextPosition :: !(Maybe TextPosition)- , _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:------ * 'bcaTitleTextPosition'------ * 'bcaFormat'------ * 'bcaTitle'------ * 'bcaPosition'-basicChartAxis- :: BasicChartAxis-basicChartAxis =- BasicChartAxis'- { _bcaTitleTextPosition = Nothing- , _bcaFormat = Nothing- , _bcaTitle = Nothing- , _bcaPosition = Nothing- }---- | The axis title text position.-bcaTitleTextPosition :: Lens' BasicChartAxis (Maybe TextPosition)-bcaTitleTextPosition- = lens _bcaTitleTextPosition- (\ s a -> s{_bcaTitleTextPosition = a})---- | 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 .:? "titleTextPosition") <*> (o .:? "format") <*>- (o .:? "title")- <*> (o .:? "position"))--instance ToJSON BasicChartAxis where- toJSON BasicChartAxis'{..}- = object- (catMaybes- [("titleTextPosition" .=) <$> _bcaTitleTextPosition,- ("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. See--- the [Date and Number Formats guide](\/sheets\/api\/guides\/formats) for--- more information about the supported patterns.-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])- , _busrUpdatedSpreadsheet :: !(Maybe Spreadsheet)- } 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'------ * 'busrUpdatedSpreadsheet'-batchUpdateSpreadsheetResponse- :: BatchUpdateSpreadsheetResponse-batchUpdateSpreadsheetResponse =- BatchUpdateSpreadsheetResponse'- { _busrSpreadsheetId = Nothing- , _busrReplies = Nothing- , _busrUpdatedSpreadsheet = 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---- | The spreadsheet after updates were applied. This is only set if--- [BatchUpdateSpreadsheetRequest.include_spreadsheet_in_response] is--- \`true\`.-busrUpdatedSpreadsheet :: Lens' BatchUpdateSpreadsheetResponse (Maybe Spreadsheet)-busrUpdatedSpreadsheet- = lens _busrUpdatedSpreadsheet- (\ s a -> s{_busrUpdatedSpreadsheet = a})--instance FromJSON BatchUpdateSpreadsheetResponse- where- parseJSON- = withObject "BatchUpdateSpreadsheetResponse"- (\ o ->- BatchUpdateSpreadsheetResponse' <$>- (o .:? "spreadsheetId") <*>- (o .:? "replies" .!= mempty)- <*> (o .:? "updatedSpreadsheet"))--instance ToJSON BatchUpdateSpreadsheetResponse where- toJSON BatchUpdateSpreadsheetResponse'{..}- = object- (catMaybes- [("spreadsheetId" .=) <$> _busrSpreadsheetId,- ("replies" .=) <$> _busrReplies,- ("updatedSpreadsheet" .=) <$>- _busrUpdatedSpreadsheet])---- | Filter that describes what data should be selected or returned from a--- request.------ /See:/ 'dataFilter' smart constructor.-data DataFilter = DataFilter'- { _dfGridRange :: !(Maybe GridRange)- , _dfA1Range :: !(Maybe Text)- , _dfDeveloperMetadataLookup :: !(Maybe DeveloperMetadataLookup)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DataFilter' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dfGridRange'------ * 'dfA1Range'------ * 'dfDeveloperMetadataLookup'-dataFilter- :: DataFilter-dataFilter =- DataFilter'- { _dfGridRange = Nothing- , _dfA1Range = Nothing- , _dfDeveloperMetadataLookup = Nothing- }---- | Selects data that matches the range described by the GridRange.-dfGridRange :: Lens' DataFilter (Maybe GridRange)-dfGridRange- = lens _dfGridRange (\ s a -> s{_dfGridRange = a})---- | Selects data that matches the specified A1 range.-dfA1Range :: Lens' DataFilter (Maybe Text)-dfA1Range- = lens _dfA1Range (\ s a -> s{_dfA1Range = a})---- | Selects data associated with the developer metadata matching the--- criteria described by this DeveloperMetadataLookup.-dfDeveloperMetadataLookup :: Lens' DataFilter (Maybe DeveloperMetadataLookup)-dfDeveloperMetadataLookup- = lens _dfDeveloperMetadataLookup- (\ s a -> s{_dfDeveloperMetadataLookup = a})--instance FromJSON DataFilter where- parseJSON- = withObject "DataFilter"- (\ o ->- DataFilter' <$>- (o .:? "gridRange") <*> (o .:? "a1Range") <*>- (o .:? "developerMetadataLookup"))--instance ToJSON DataFilter where- toJSON DataFilter'{..}- = object- (catMaybes- [("gridRange" .=) <$> _dfGridRange,- ("a1Range" .=) <$> _dfA1Range,- ("developerMetadataLookup" .=) <$>- _dfDeveloperMetadataLookup])---- | 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])---- | Properties referring a single dimension (either row or column). If both--- BandedRange.row_properties and BandedRange.column_properties are set,--- the fill colors are applied to cells according to the following rules: *--- header_color and footer_color take priority over band colors. *--- first_band_color takes priority over second_band_color. * row_properties--- takes priority over column_properties. For example, the first row color--- takes priority over the first column color, but the first column color--- takes priority over the second row color. Similarly, the row header--- takes priority over the column header in the top left cell, but the--- column header takes priority over the first row color if the row header--- is not set.------ /See:/ 'bandingProperties' smart constructor.-data BandingProperties = BandingProperties'- { _bpSecondBandColor :: !(Maybe Color)- , _bpHeaderColor :: !(Maybe Color)- , _bpFooterColor :: !(Maybe Color)- , _bpFirstBandColor :: !(Maybe Color)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'BandingProperties' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bpSecondBandColor'------ * 'bpHeaderColor'------ * 'bpFooterColor'------ * 'bpFirstBandColor'-bandingProperties- :: BandingProperties-bandingProperties =- BandingProperties'- { _bpSecondBandColor = Nothing- , _bpHeaderColor = Nothing- , _bpFooterColor = Nothing- , _bpFirstBandColor = Nothing- }---- | The second color that is alternating. (Required)-bpSecondBandColor :: Lens' BandingProperties (Maybe Color)-bpSecondBandColor- = lens _bpSecondBandColor- (\ s a -> s{_bpSecondBandColor = a})---- | The color of the first row or column. If this field is set, the first--- row or column will be filled with this color and the colors will--- alternate between first_band_color and second_band_color starting from--- the second row or column. Otherwise, the first row or column will be--- filled with first_band_color and the colors will proceed to alternate as--- they normally would.-bpHeaderColor :: Lens' BandingProperties (Maybe Color)-bpHeaderColor- = lens _bpHeaderColor- (\ s a -> s{_bpHeaderColor = a})---- | The color of the last row or column. If this field is not set, the last--- row or column will be filled with either first_band_color or--- second_band_color, depending on the color of the previous row or column.-bpFooterColor :: Lens' BandingProperties (Maybe Color)-bpFooterColor- = lens _bpFooterColor- (\ s a -> s{_bpFooterColor = a})---- | The first color that is alternating. (Required)-bpFirstBandColor :: Lens' BandingProperties (Maybe Color)-bpFirstBandColor- = lens _bpFirstBandColor- (\ s a -> s{_bpFirstBandColor = a})--instance FromJSON BandingProperties where- parseJSON- = withObject "BandingProperties"- (\ o ->- BandingProperties' <$>- (o .:? "secondBandColor") <*> (o .:? "headerColor")- <*> (o .:? "footerColor")- <*> (o .:? "firstBandColor"))--instance ToJSON BandingProperties where- toJSON BandingProperties'{..}- = object- (catMaybes- [("secondBandColor" .=) <$> _bpSecondBandColor,- ("headerColor" .=) <$> _bpHeaderColor,- ("footerColor" .=) <$> _bpFooterColor,- ("firstBandColor" .=) <$> _bpFirstBandColor])---- | 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'- { _pgRepeatHeadings :: !(Maybe Bool)- , _pgValueMetadata :: !(Maybe [PivotGroupValueMetadata])- , _pgSourceColumnOffSet :: !(Maybe (Textual Int32))- , _pgSortOrder :: !(Maybe PivotGroupSortOrder)- , _pgShowTotals :: !(Maybe Bool)- , _pgValueBucket :: !(Maybe PivotGroupSortValueBucket)- , _pgLabel :: !(Maybe Text)- , _pgGroupRule :: !(Maybe PivotGroupRule)- } 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:------ * 'pgRepeatHeadings'------ * 'pgValueMetadata'------ * 'pgSourceColumnOffSet'------ * 'pgSortOrder'------ * 'pgShowTotals'------ * 'pgValueBucket'------ * 'pgLabel'------ * 'pgGroupRule'-pivotGroup- :: PivotGroup-pivotGroup =- PivotGroup'- { _pgRepeatHeadings = Nothing- , _pgValueMetadata = Nothing- , _pgSourceColumnOffSet = Nothing- , _pgSortOrder = Nothing- , _pgShowTotals = Nothing- , _pgValueBucket = Nothing- , _pgLabel = Nothing- , _pgGroupRule = Nothing- }---- | True if the headings in this pivot group should be repeated. This is--- only valid for row groupings and is ignored by columns. By default, we--- minimize repitition of headings by not showing higher level headings--- where they are the same. For example, even though the third row below--- corresponds to \"Q1 Mar\", \"Q1\" is not shown because it is redundant--- with previous rows. Setting repeat_headings to true would cause \"Q1\"--- to be repeated for \"Feb\" and \"Mar\". +--------------+ | Q1 | Jan | |--- | Feb | | | Mar | +--------+-----+ | Q1 Total | +--------------+-pgRepeatHeadings :: Lens' PivotGroup (Maybe Bool)-pgRepeatHeadings- = lens _pgRepeatHeadings- (\ s a -> s{_pgRepeatHeadings = a})---- | 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})---- | The labels to use for the row\/column groups which can be customized.--- For example, in the following pivot table, the row label is \`Region\`--- (which could be renamed to \`State\`) and the column label is--- \`Product\` (which could be renamed \`Item\`). Pivot tables created--- before December 2017 do not have header labels. If you\'d like to add--- header labels to an existing pivot table, please delete the existing--- pivot table and then create a new pivot table with same parameters.--- +--------------+---------+-------+ | SUM of Units | Product | | | Region--- | Pen | Paper | +--------------+---------+-------+ | New York | 345 | 98--- | | Oregon | 234 | 123 | | Tennessee | 531 | 415 |--- +--------------+---------+-------+ | Grand Total | 1110 | 636 |--- +--------------+---------+-------+-pgLabel :: Lens' PivotGroup (Maybe Text)-pgLabel = lens _pgLabel (\ s a -> s{_pgLabel = a})---- | The group rule to apply to this row\/column group.-pgGroupRule :: Lens' PivotGroup (Maybe PivotGroupRule)-pgGroupRule- = lens _pgGroupRule (\ s a -> s{_pgGroupRule = a})--instance FromJSON PivotGroup where- parseJSON- = withObject "PivotGroup"- (\ o ->- PivotGroup' <$>- (o .:? "repeatHeadings") <*>- (o .:? "valueMetadata" .!= mempty)- <*> (o .:? "sourceColumnOffset")- <*> (o .:? "sortOrder")- <*> (o .:? "showTotals")- <*> (o .:? "valueBucket")- <*> (o .:? "label")- <*> (o .:? "groupRule"))--instance ToJSON PivotGroup where- toJSON PivotGroup'{..}- = object- (catMaybes- [("repeatHeadings" .=) <$> _pgRepeatHeadings,- ("valueMetadata" .=) <$> _pgValueMetadata,- ("sourceColumnOffset" .=) <$> _pgSourceColumnOffSet,- ("sortOrder" .=) <$> _pgSortOrder,- ("showTotals" .=) <$> _pgShowTotals,- ("valueBucket" .=) <$> _pgValueBucket,- ("label" .=) <$> _pgLabel,- ("groupRule" .=) <$> _pgGroupRule])---- | The result of adding a banded range.------ /See:/ 'addBandingResponse' smart constructor.-newtype AddBandingResponse = AddBandingResponse'- { _aBandedRange :: Maybe BandedRange- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AddBandingResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aBandedRange'-addBandingResponse- :: AddBandingResponse-addBandingResponse =- AddBandingResponse'- { _aBandedRange = Nothing- }---- | The banded range that was added.-aBandedRange :: Lens' AddBandingResponse (Maybe BandedRange)-aBandedRange- = lens _aBandedRange (\ s a -> s{_aBandedRange = a})--instance FromJSON AddBandingResponse where- parseJSON- = withObject "AddBandingResponse"- (\ o ->- AddBandingResponse' <$> (o .:? "bandedRange"))--instance ToJSON AddBandingResponse where- toJSON AddBandingResponse'{..}- = object- (catMaybes [("bandedRange" .=) <$> _aBandedRange])---- | An </chart/interactive/docs/gallery/orgchart org chart>. Org charts--- require a unique set of labels in labels and may optionally include--- parent_labels and tooltips. parent_labels contain, for each node, the--- label identifying the parent node. tooltips contain, for each node, an--- optional tooltip. For example, to describe an OrgChart with Alice as the--- CEO, Bob as the President (reporting to Alice) and Cathy as VP of Sales--- (also reporting to Alice), have labels contain \"Alice\", \"Bob\",--- \"Cathy\", parent_labels contain \"\", \"Alice\", \"Alice\" and tooltips--- contain \"CEO\", \"President\", \"VP Sales\".------ /See:/ 'orgChartSpec' smart constructor.-data OrgChartSpec = OrgChartSpec'- { _ocsNodeColor :: !(Maybe Color)- , _ocsNodeSize :: !(Maybe OrgChartSpecNodeSize)- , _ocsTooltips :: !(Maybe ChartData)- , _ocsSelectedNodeColor :: !(Maybe Color)- , _ocsLabels :: !(Maybe ChartData)- , _ocsParentLabels :: !(Maybe ChartData)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'OrgChartSpec' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ocsNodeColor'------ * 'ocsNodeSize'------ * 'ocsTooltips'------ * 'ocsSelectedNodeColor'------ * 'ocsLabels'------ * 'ocsParentLabels'-orgChartSpec- :: OrgChartSpec-orgChartSpec =- OrgChartSpec'- { _ocsNodeColor = Nothing- , _ocsNodeSize = Nothing- , _ocsTooltips = Nothing- , _ocsSelectedNodeColor = Nothing- , _ocsLabels = Nothing- , _ocsParentLabels = Nothing- }---- | The color of the org chart nodes.-ocsNodeColor :: Lens' OrgChartSpec (Maybe Color)-ocsNodeColor- = lens _ocsNodeColor (\ s a -> s{_ocsNodeColor = a})---- | The size of the org chart nodes.-ocsNodeSize :: Lens' OrgChartSpec (Maybe OrgChartSpecNodeSize)-ocsNodeSize- = lens _ocsNodeSize (\ s a -> s{_ocsNodeSize = a})---- | The data containing the tooltip for the corresponding node. A blank--- value results in no tooltip being displayed for the node. This field is--- optional.-ocsTooltips :: Lens' OrgChartSpec (Maybe ChartData)-ocsTooltips- = lens _ocsTooltips (\ s a -> s{_ocsTooltips = a})---- | The color of the selected org chart nodes.-ocsSelectedNodeColor :: Lens' OrgChartSpec (Maybe Color)-ocsSelectedNodeColor- = lens _ocsSelectedNodeColor- (\ s a -> s{_ocsSelectedNodeColor = a})---- | The data containing the labels for all the nodes in the chart. Labels--- must be unique.-ocsLabels :: Lens' OrgChartSpec (Maybe ChartData)-ocsLabels- = lens _ocsLabels (\ s a -> s{_ocsLabels = a})---- | The data containing the label of the parent for the corresponding node.--- A blank value indicates that the node has no parent and is a top-level--- node. This field is optional.-ocsParentLabels :: Lens' OrgChartSpec (Maybe ChartData)-ocsParentLabels- = lens _ocsParentLabels- (\ s a -> s{_ocsParentLabels = a})--instance FromJSON OrgChartSpec where- parseJSON- = withObject "OrgChartSpec"- (\ o ->- OrgChartSpec' <$>- (o .:? "nodeColor") <*> (o .:? "nodeSize") <*>- (o .:? "tooltips")- <*> (o .:? "selectedNodeColor")- <*> (o .:? "labels")- <*> (o .:? "parentLabels"))--instance ToJSON OrgChartSpec where- toJSON OrgChartSpec'{..}- = object- (catMaybes- [("nodeColor" .=) <$> _ocsNodeColor,- ("nodeSize" .=) <$> _ocsNodeSize,- ("tooltips" .=) <$> _ocsTooltips,- ("selectedNodeColor" .=) <$> _ocsSelectedNodeColor,- ("labels" .=) <$> _ocsLabels,- ("parentLabels" .=) <$> _ocsParentLabels])---- | Randomizes the order of the rows in a range.------ /See:/ 'randomizeRangeRequest' smart constructor.-newtype RandomizeRangeRequest = RandomizeRangeRequest'- { _rrrRange :: Maybe GridRange- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'RandomizeRangeRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rrrRange'-randomizeRangeRequest- :: RandomizeRangeRequest-randomizeRangeRequest =- RandomizeRangeRequest'- { _rrrRange = Nothing- }---- | The range to randomize.-rrrRange :: Lens' RandomizeRangeRequest (Maybe GridRange)-rrrRange = lens _rrrRange (\ s a -> s{_rrrRange = a})--instance FromJSON RandomizeRangeRequest where- parseJSON- = withObject "RandomizeRangeRequest"- (\ o -> RandomizeRangeRequest' <$> (o .:? "range"))--instance ToJSON RandomizeRangeRequest where- toJSON RandomizeRangeRequest'{..}- = object (catMaybes [("range" .=) <$> _rrrRange])---- | A histogram series containing the series color and data.------ /See:/ 'histogramSeries' smart constructor.-data HistogramSeries = HistogramSeries'- { _hsBarColor :: !(Maybe Color)- , _hsData :: !(Maybe ChartData)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'HistogramSeries' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hsBarColor'------ * 'hsData'-histogramSeries- :: HistogramSeries-histogramSeries =- HistogramSeries'- { _hsBarColor = Nothing- , _hsData = Nothing- }---- | The color of the column representing this series in each bucket. This--- field is optional.-hsBarColor :: Lens' HistogramSeries (Maybe Color)-hsBarColor- = lens _hsBarColor (\ s a -> s{_hsBarColor = a})---- | The data for this histogram series.-hsData :: Lens' HistogramSeries (Maybe ChartData)-hsData = lens _hsData (\ s a -> s{_hsData = a})--instance FromJSON HistogramSeries where- parseJSON- = withObject "HistogramSeries"- (\ o ->- HistogramSeries' <$>- (o .:? "barColor") <*> (o .:? "data"))--instance ToJSON HistogramSeries where- toJSON HistogramSeries'{..}- = object- (catMaybes- [("barColor" .=) <$> _hsBarColor,- ("data" .=) <$> _hsData])---- | A </chart/interactive/docs/gallery/treemap Treemap chart>.------ /See:/ 'treemapChartSpec' smart constructor.-data TreemapChartSpec = TreemapChartSpec'- { _tcsHintedLevels :: !(Maybe (Textual Int32))- , _tcsMaxValue :: !(Maybe (Textual Double))- , _tcsHeaderColor :: !(Maybe Color)- , _tcsSizeData :: !(Maybe ChartData)- , _tcsColorData :: !(Maybe ChartData)- , _tcsHideTooltips :: !(Maybe Bool)- , _tcsLevels :: !(Maybe (Textual Int32))- , _tcsLabels :: !(Maybe ChartData)- , _tcsColorScale :: !(Maybe TreemapChartColorScale)- , _tcsTextFormat :: !(Maybe TextFormat)- , _tcsMinValue :: !(Maybe (Textual Double))- , _tcsParentLabels :: !(Maybe ChartData)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TreemapChartSpec' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tcsHintedLevels'------ * 'tcsMaxValue'------ * 'tcsHeaderColor'------ * 'tcsSizeData'------ * 'tcsColorData'------ * 'tcsHideTooltips'------ * 'tcsLevels'------ * 'tcsLabels'------ * 'tcsColorScale'------ * 'tcsTextFormat'------ * 'tcsMinValue'------ * 'tcsParentLabels'-treemapChartSpec- :: TreemapChartSpec-treemapChartSpec =- TreemapChartSpec'- { _tcsHintedLevels = Nothing- , _tcsMaxValue = Nothing- , _tcsHeaderColor = Nothing- , _tcsSizeData = Nothing- , _tcsColorData = Nothing- , _tcsHideTooltips = Nothing- , _tcsLevels = Nothing- , _tcsLabels = Nothing- , _tcsColorScale = Nothing- , _tcsTextFormat = Nothing- , _tcsMinValue = Nothing- , _tcsParentLabels = Nothing- }---- | The number of additional data levels beyond the labeled levels to be--- shown on the treemap chart. These levels are not interactive and are--- shown without their labels. Defaults to 0 if not specified.-tcsHintedLevels :: Lens' TreemapChartSpec (Maybe Int32)-tcsHintedLevels- = lens _tcsHintedLevels- (\ s a -> s{_tcsHintedLevels = a})- . mapping _Coerce---- | The maximum possible data value. Cells with values greater than this--- will have the same color as cells with this value. If not specified,--- defaults to the actual maximum value from color_data, or the maximum--- value from size_data if color_data is not specified.-tcsMaxValue :: Lens' TreemapChartSpec (Maybe Double)-tcsMaxValue- = lens _tcsMaxValue (\ s a -> s{_tcsMaxValue = a}) .- mapping _Coerce---- | The background color for header cells.-tcsHeaderColor :: Lens' TreemapChartSpec (Maybe Color)-tcsHeaderColor- = lens _tcsHeaderColor- (\ s a -> s{_tcsHeaderColor = a})---- | The data that determines the size of each treemap data cell. This data--- is expected to be numeric. The cells corresponding to non-numeric or--- missing data will not be rendered. If color_data is not specified, this--- data is used to determine data cell background colors as well.-tcsSizeData :: Lens' TreemapChartSpec (Maybe ChartData)-tcsSizeData- = lens _tcsSizeData (\ s a -> s{_tcsSizeData = a})---- | The data that determines the background color of each treemap data cell.--- This field is optional. If not specified, size_data is used to determine--- background colors. If specified, the data is expected to be numeric.--- color_scale will determine how the values in this data map to data cell--- background colors.-tcsColorData :: Lens' TreemapChartSpec (Maybe ChartData)-tcsColorData- = lens _tcsColorData (\ s a -> s{_tcsColorData = a})---- | True to hide tooltips.-tcsHideTooltips :: Lens' TreemapChartSpec (Maybe Bool)-tcsHideTooltips- = lens _tcsHideTooltips- (\ s a -> s{_tcsHideTooltips = a})---- | The number of data levels to show on the treemap chart. These levels are--- interactive and are shown with their labels. Defaults to 2 if not--- specified.-tcsLevels :: Lens' TreemapChartSpec (Maybe Int32)-tcsLevels- = lens _tcsLevels (\ s a -> s{_tcsLevels = a}) .- mapping _Coerce---- | The data that contains the treemap cell labels.-tcsLabels :: Lens' TreemapChartSpec (Maybe ChartData)-tcsLabels- = lens _tcsLabels (\ s a -> s{_tcsLabels = a})---- | The color scale for data cells in the treemap chart. Data cells are--- assigned colors based on their color values. These color values come--- from color_data, or from size_data if color_data is not specified. Cells--- with color values less than or equal to min_value will have--- minValueColor as their background color. Cells with color values greater--- than or equal to max_value will have maxValueColor as their background--- color. Cells with color values between min_value and max_value will have--- background colors on a gradient between minValueColor and maxValueColor,--- the midpoint of the gradient being midValueColor. Cells with missing or--- non-numeric color values will have noDataColor as their background--- color.-tcsColorScale :: Lens' TreemapChartSpec (Maybe TreemapChartColorScale)-tcsColorScale- = lens _tcsColorScale- (\ s a -> s{_tcsColorScale = a})---- | The text format for all labels on the chart.-tcsTextFormat :: Lens' TreemapChartSpec (Maybe TextFormat)-tcsTextFormat- = lens _tcsTextFormat- (\ s a -> s{_tcsTextFormat = a})---- | The minimum possible data value. Cells with values less than this will--- have the same color as cells with this value. If not specified, defaults--- to the actual minimum value from color_data, or the minimum value from--- size_data if color_data is not specified.-tcsMinValue :: Lens' TreemapChartSpec (Maybe Double)-tcsMinValue- = lens _tcsMinValue (\ s a -> s{_tcsMinValue = a}) .- mapping _Coerce---- | The data the contains the treemap cells\' parent labels.-tcsParentLabels :: Lens' TreemapChartSpec (Maybe ChartData)-tcsParentLabels- = lens _tcsParentLabels- (\ s a -> s{_tcsParentLabels = a})--instance FromJSON TreemapChartSpec where- parseJSON- = withObject "TreemapChartSpec"- (\ o ->- TreemapChartSpec' <$>- (o .:? "hintedLevels") <*> (o .:? "maxValue") <*>- (o .:? "headerColor")- <*> (o .:? "sizeData")- <*> (o .:? "colorData")- <*> (o .:? "hideTooltips")- <*> (o .:? "levels")- <*> (o .:? "labels")- <*> (o .:? "colorScale")- <*> (o .:? "textFormat")- <*> (o .:? "minValue")- <*> (o .:? "parentLabels"))--instance ToJSON TreemapChartSpec where- toJSON TreemapChartSpec'{..}- = object- (catMaybes- [("hintedLevels" .=) <$> _tcsHintedLevels,- ("maxValue" .=) <$> _tcsMaxValue,- ("headerColor" .=) <$> _tcsHeaderColor,- ("sizeData" .=) <$> _tcsSizeData,- ("colorData" .=) <$> _tcsColorData,- ("hideTooltips" .=) <$> _tcsHideTooltips,- ("levels" .=) <$> _tcsLevels,- ("labels" .=) <$> _tcsLabels,- ("colorScale" .=) <$> _tcsColorScale,- ("textFormat" .=) <$> _tcsTextFormat,- ("minValue" .=) <$> _tcsMinValue,- ("parentLabels" .=) <$> _tcsParentLabels])---- | 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 are 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'- { _basHeaderCount :: !(Maybe (Textual Int32))- , _basLineSmoothing :: !(Maybe Bool)- , _basInterpolateNulls :: !(Maybe Bool)- , _basStackedType :: !(Maybe BasicChartSpecStackedType)- , _basLegendPosition :: !(Maybe BasicChartSpecLegendPosition)- , _basSeries :: !(Maybe [BasicChartSeries])- , _basCompareMode :: !(Maybe BasicChartSpecCompareMode)- , _basChartType :: !(Maybe BasicChartSpecChartType)- , _basThreeDimensional :: !(Maybe Bool)- , _basDomains :: !(Maybe [BasicChartDomain])- , _basAxis :: !(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:------ * 'basHeaderCount'------ * 'basLineSmoothing'------ * 'basInterpolateNulls'------ * 'basStackedType'------ * 'basLegendPosition'------ * 'basSeries'------ * 'basCompareMode'------ * 'basChartType'------ * 'basThreeDimensional'------ * 'basDomains'------ * 'basAxis'-basicChartSpec- :: BasicChartSpec-basicChartSpec =- BasicChartSpec'- { _basHeaderCount = Nothing- , _basLineSmoothing = Nothing- , _basInterpolateNulls = Nothing- , _basStackedType = Nothing- , _basLegendPosition = Nothing- , _basSeries = Nothing- , _basCompareMode = Nothing- , _basChartType = Nothing- , _basThreeDimensional = Nothing- , _basDomains = Nothing- , _basAxis = 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.)-basHeaderCount :: Lens' BasicChartSpec (Maybe Int32)-basHeaderCount- = lens _basHeaderCount- (\ s a -> s{_basHeaderCount = a})- . mapping _Coerce---- | Gets whether all lines should be rendered smooth or straight by default.--- Applies to Line charts.-basLineSmoothing :: Lens' BasicChartSpec (Maybe Bool)-basLineSmoothing- = lens _basLineSmoothing- (\ s a -> s{_basLineSmoothing = a})---- | If some values in a series are missing, gaps may appear in the chart--- (e.g, segments of lines in a line chart will be missing). To eliminate--- these gaps set this to true. Applies to Line, Area, and Combo charts.-basInterpolateNulls :: Lens' BasicChartSpec (Maybe Bool)-basInterpolateNulls- = lens _basInterpolateNulls- (\ s a -> s{_basInterpolateNulls = a})---- | The stacked type for charts that support vertical stacking. Applies to--- Area, Bar, Column, Combo, and Stepped Area charts.-basStackedType :: Lens' BasicChartSpec (Maybe BasicChartSpecStackedType)-basStackedType- = lens _basStackedType- (\ s a -> s{_basStackedType = a})---- | The position of the chart legend.-basLegendPosition :: Lens' BasicChartSpec (Maybe BasicChartSpecLegendPosition)-basLegendPosition- = lens _basLegendPosition- (\ s a -> s{_basLegendPosition = a})---- | The data this chart is visualizing.-basSeries :: Lens' BasicChartSpec [BasicChartSeries]-basSeries- = lens _basSeries (\ s a -> s{_basSeries = a}) .- _Default- . _Coerce---- | The behavior of tooltips and data highlighting when hovering on data and--- chart area.-basCompareMode :: Lens' BasicChartSpec (Maybe BasicChartSpecCompareMode)-basCompareMode- = lens _basCompareMode- (\ s a -> s{_basCompareMode = a})---- | The type of the chart.-basChartType :: Lens' BasicChartSpec (Maybe BasicChartSpecChartType)-basChartType- = lens _basChartType (\ s a -> s{_basChartType = a})---- | True to make the chart 3D. Applies to Bar and Column charts.-basThreeDimensional :: Lens' BasicChartSpec (Maybe Bool)-basThreeDimensional- = lens _basThreeDimensional- (\ s a -> s{_basThreeDimensional = a})---- | The domain of data this is charting. Only a single domain is supported.-basDomains :: Lens' BasicChartSpec [BasicChartDomain]-basDomains- = lens _basDomains (\ s a -> s{_basDomains = a}) .- _Default- . _Coerce---- | The axis on the chart.-basAxis :: Lens' BasicChartSpec [BasicChartAxis]-basAxis- = lens _basAxis (\ s a -> s{_basAxis = a}) . _Default- . _Coerce--instance FromJSON BasicChartSpec where- parseJSON- = withObject "BasicChartSpec"- (\ o ->- BasicChartSpec' <$>- (o .:? "headerCount") <*> (o .:? "lineSmoothing") <*>- (o .:? "interpolateNulls")- <*> (o .:? "stackedType")- <*> (o .:? "legendPosition")- <*> (o .:? "series" .!= mempty)- <*> (o .:? "compareMode")- <*> (o .:? "chartType")- <*> (o .:? "threeDimensional")- <*> (o .:? "domains" .!= mempty)- <*> (o .:? "axis" .!= mempty))--instance ToJSON BasicChartSpec where- toJSON BasicChartSpec'{..}- = object- (catMaybes- [("headerCount" .=) <$> _basHeaderCount,- ("lineSmoothing" .=) <$> _basLineSmoothing,- ("interpolateNulls" .=) <$> _basInterpolateNulls,- ("stackedType" .=) <$> _basStackedType,- ("legendPosition" .=) <$> _basLegendPosition,- ("series" .=) <$> _basSeries,- ("compareMode" .=) <$> _basCompareMode,- ("chartType" .=) <$> _basChartType,- ("threeDimensional" .=) <$> _basThreeDimensional,- ("domains" .=) <$> _basDomains,- ("axis" .=) <$> _basAxis])---- | A group name and a list of items from the source data that should be--- placed in the group with this name.------ /See:/ 'manualRuleGroup' smart constructor.-data ManualRuleGroup = ManualRuleGroup'- { _mrgItems :: !(Maybe [ExtendedValue])- , _mrgGroupName :: !(Maybe ExtendedValue)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ManualRuleGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mrgItems'------ * 'mrgGroupName'-manualRuleGroup- :: ManualRuleGroup-manualRuleGroup =- ManualRuleGroup'- { _mrgItems = Nothing- , _mrgGroupName = Nothing- }---- | The items in the source data that should be placed into this group. Each--- item may be a string, number, or boolean. Items may appear in at most--- one group within a given ManualRule. Items that do not appear in any--- group will appear on their own.-mrgItems :: Lens' ManualRuleGroup [ExtendedValue]-mrgItems- = lens _mrgItems (\ s a -> s{_mrgItems = a}) .- _Default- . _Coerce---- | The group name, which must be a string. Each group in a given ManualRule--- must have a unique group name.-mrgGroupName :: Lens' ManualRuleGroup (Maybe ExtendedValue)-mrgGroupName- = lens _mrgGroupName (\ s a -> s{_mrgGroupName = a})--instance FromJSON ManualRuleGroup where- parseJSON- = withObject "ManualRuleGroup"- (\ o ->- ManualRuleGroup' <$>- (o .:? "items" .!= mempty) <*> (o .:? "groupName"))--instance ToJSON ManualRuleGroup where- toJSON ManualRuleGroup'{..}- = object- (catMaybes- [("items" .=) <$> _mrgItems,- ("groupName" .=) <$> _mrgGroupName])---- | 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])---- | Developer metadata associated with a location or object in a--- spreadsheet. Developer metadata may be used to associate arbitrary data--- with various parts of a spreadsheet and will remain associated at those--- locations as they move around and the spreadsheet is edited. For--- example, if developer metadata is associated with row 5 and another row--- is then subsequently inserted above row 5, that original metadata will--- still be associated with the row it was first associated with (what is--- now row 6). If the associated object is deleted its metadata is deleted--- too.------ /See:/ 'developerMetadata' smart constructor.-data DeveloperMetadata = DeveloperMetadata'- { _dmLocation :: !(Maybe DeveloperMetadataLocation)- , _dmMetadataId :: !(Maybe (Textual Int32))- , _dmVisibility :: !(Maybe DeveloperMetadataVisibility)- , _dmMetadataKey :: !(Maybe Text)- , _dmMetadataValue :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DeveloperMetadata' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dmLocation'------ * 'dmMetadataId'------ * 'dmVisibility'------ * 'dmMetadataKey'------ * 'dmMetadataValue'-developerMetadata- :: DeveloperMetadata-developerMetadata =- DeveloperMetadata'- { _dmLocation = Nothing- , _dmMetadataId = Nothing- , _dmVisibility = Nothing- , _dmMetadataKey = Nothing- , _dmMetadataValue = Nothing- }---- | The location where the metadata is associated.-dmLocation :: Lens' DeveloperMetadata (Maybe DeveloperMetadataLocation)-dmLocation- = lens _dmLocation (\ s a -> s{_dmLocation = a})---- | The spreadsheet-scoped unique ID that identifies the metadata. IDs may--- be specified when metadata is created, otherwise one will be randomly--- generated and assigned. Must be positive.-dmMetadataId :: Lens' DeveloperMetadata (Maybe Int32)-dmMetadataId- = lens _dmMetadataId (\ s a -> s{_dmMetadataId = a})- . mapping _Coerce---- | The metadata visibility. Developer metadata must always have a--- visibility specified.-dmVisibility :: Lens' DeveloperMetadata (Maybe DeveloperMetadataVisibility)-dmVisibility- = lens _dmVisibility (\ s a -> s{_dmVisibility = a})---- | The metadata key. There may be multiple metadata in a spreadsheet with--- the same key. Developer metadata must always have a key specified.-dmMetadataKey :: Lens' DeveloperMetadata (Maybe Text)-dmMetadataKey- = lens _dmMetadataKey- (\ s a -> s{_dmMetadataKey = a})---- | Data associated with the metadata\'s key.-dmMetadataValue :: Lens' DeveloperMetadata (Maybe Text)-dmMetadataValue- = lens _dmMetadataValue- (\ s a -> s{_dmMetadataValue = a})--instance FromJSON DeveloperMetadata where- parseJSON- = withObject "DeveloperMetadata"- (\ o ->- DeveloperMetadata' <$>- (o .:? "location") <*> (o .:? "metadataId") <*>- (o .:? "visibility")- <*> (o .:? "metadataKey")- <*> (o .:? "metadataValue"))--instance ToJSON DeveloperMetadata where- toJSON DeveloperMetadata'{..}- = object- (catMaybes- [("location" .=) <$> _dmLocation,- ("metadataId" .=) <$> _dmMetadataId,- ("visibility" .=) <$> _dmVisibility,- ("metadataKey" .=) <$> _dmMetadataKey,- ("metadataValue" .=) <$> _dmMetadataValue])---- | A color scale for a treemap chart.------ /See:/ 'treemapChartColorScale' smart constructor.-data TreemapChartColorScale = TreemapChartColorScale'- { _tccsMinValueColor :: !(Maybe Color)- , _tccsNoDataColor :: !(Maybe Color)- , _tccsMaxValueColor :: !(Maybe Color)- , _tccsMidValueColor :: !(Maybe Color)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TreemapChartColorScale' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tccsMinValueColor'------ * 'tccsNoDataColor'------ * 'tccsMaxValueColor'------ * 'tccsMidValueColor'-treemapChartColorScale- :: TreemapChartColorScale-treemapChartColorScale =- TreemapChartColorScale'- { _tccsMinValueColor = Nothing- , _tccsNoDataColor = Nothing- , _tccsMaxValueColor = Nothing- , _tccsMidValueColor = Nothing- }---- | The background color for cells with a color value less than or equal to--- minValue. Defaults to #dc3912 if not specified.-tccsMinValueColor :: Lens' TreemapChartColorScale (Maybe Color)-tccsMinValueColor- = lens _tccsMinValueColor- (\ s a -> s{_tccsMinValueColor = a})---- | The background color for cells that have no color data associated with--- them. Defaults to #000000 if not specified.-tccsNoDataColor :: Lens' TreemapChartColorScale (Maybe Color)-tccsNoDataColor- = lens _tccsNoDataColor- (\ s a -> s{_tccsNoDataColor = a})---- | The background color for cells with a color value greater than or equal--- to maxValue. Defaults to #109618 if not specified.-tccsMaxValueColor :: Lens' TreemapChartColorScale (Maybe Color)-tccsMaxValueColor- = lens _tccsMaxValueColor- (\ s a -> s{_tccsMaxValueColor = a})---- | The background color for cells with a color value at the midpoint--- between minValue and maxValue. Defaults to #efe6dc if not specified.-tccsMidValueColor :: Lens' TreemapChartColorScale (Maybe Color)-tccsMidValueColor- = lens _tccsMidValueColor- (\ s a -> s{_tccsMidValueColor = a})--instance FromJSON TreemapChartColorScale where- parseJSON- = withObject "TreemapChartColorScale"- (\ o ->- TreemapChartColorScale' <$>- (o .:? "minValueColor") <*> (o .:? "noDataColor") <*>- (o .:? "maxValueColor")- <*> (o .:? "midValueColor"))--instance ToJSON TreemapChartColorScale where- toJSON TreemapChartColorScale'{..}- = object- (catMaybes- [("minValueColor" .=) <$> _tccsMinValueColor,- ("noDataColor" .=) <$> _tccsNoDataColor,- ("maxValueColor" .=) <$> _tccsMaxValueColor,- ("midValueColor" .=) <$> _tccsMidValueColor])---- | 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])---- | A request to create developer metadata.------ /See:/ 'createDeveloperMetadataRequest' smart constructor.-newtype CreateDeveloperMetadataRequest = CreateDeveloperMetadataRequest'- { _cDeveloperMetadata :: Maybe DeveloperMetadata- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'CreateDeveloperMetadataRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cDeveloperMetadata'-createDeveloperMetadataRequest- :: CreateDeveloperMetadataRequest-createDeveloperMetadataRequest =- CreateDeveloperMetadataRequest'- { _cDeveloperMetadata = Nothing- }---- | The developer metadata to create.-cDeveloperMetadata :: Lens' CreateDeveloperMetadataRequest (Maybe DeveloperMetadata)-cDeveloperMetadata- = lens _cDeveloperMetadata- (\ s a -> s{_cDeveloperMetadata = a})--instance FromJSON CreateDeveloperMetadataRequest- where- parseJSON- = withObject "CreateDeveloperMetadataRequest"- (\ o ->- CreateDeveloperMetadataRequest' <$>- (o .:? "developerMetadata"))--instance ToJSON CreateDeveloperMetadataRequest where- toJSON CreateDeveloperMetadataRequest'{..}- = object- (catMaybes- [("developerMetadata" .=) <$> _cDeveloperMetadata])---- | The response when clearing a range of values in a spreadsheet.------ /See:/ 'batchClearValuesResponse' smart constructor.-data BatchClearValuesResponse = BatchClearValuesResponse'- { _bcvrClearedRanges :: !(Maybe [Text])- , _bcvrSpreadsheetId :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'BatchClearValuesResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bcvrClearedRanges'------ * 'bcvrSpreadsheetId'-batchClearValuesResponse- :: BatchClearValuesResponse-batchClearValuesResponse =- BatchClearValuesResponse'- { _bcvrClearedRanges = Nothing- , _bcvrSpreadsheetId = Nothing- }---- | The ranges that were cleared, in A1 notation. (If the requests were for--- an unbounded range or a ranger larger than the bounds of the sheet, this--- will be the actual ranges that were cleared, bounded to the sheet\'s--- limits.)-bcvrClearedRanges :: Lens' BatchClearValuesResponse [Text]-bcvrClearedRanges- = lens _bcvrClearedRanges- (\ s a -> s{_bcvrClearedRanges = a})- . _Default- . _Coerce---- | The spreadsheet the updates were applied to.-bcvrSpreadsheetId :: Lens' BatchClearValuesResponse (Maybe Text)-bcvrSpreadsheetId- = lens _bcvrSpreadsheetId- (\ s a -> s{_bcvrSpreadsheetId = a})--instance FromJSON BatchClearValuesResponse where- parseJSON- = withObject "BatchClearValuesResponse"- (\ o ->- BatchClearValuesResponse' <$>- (o .:? "clearedRanges" .!= mempty) <*>- (o .:? "spreadsheetId"))--instance ToJSON BatchClearValuesResponse where- toJSON BatchClearValuesResponse'{..}- = object- (catMaybes- [("clearedRanges" .=) <$> _bcvrClearedRanges,- ("spreadsheetId" .=) <$> _bcvrSpreadsheetId])---- | A value range that was matched by one or more data filers.------ /See:/ 'matchedValueRange' smart constructor.-data MatchedValueRange = MatchedValueRange'- { _mvrValueRange :: !(Maybe ValueRange)- , _mvrDataFilters :: !(Maybe [DataFilter])- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'MatchedValueRange' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mvrValueRange'------ * 'mvrDataFilters'-matchedValueRange- :: MatchedValueRange-matchedValueRange =- MatchedValueRange'- { _mvrValueRange = Nothing- , _mvrDataFilters = Nothing- }---- | The values matched by the DataFilter.-mvrValueRange :: Lens' MatchedValueRange (Maybe ValueRange)-mvrValueRange- = lens _mvrValueRange- (\ s a -> s{_mvrValueRange = a})---- | The DataFilters from the request that matched the range of values.-mvrDataFilters :: Lens' MatchedValueRange [DataFilter]-mvrDataFilters- = lens _mvrDataFilters- (\ s a -> s{_mvrDataFilters = a})- . _Default- . _Coerce--instance FromJSON MatchedValueRange where- parseJSON- = withObject "MatchedValueRange"- (\ o ->- MatchedValueRange' <$>- (o .:? "valueRange") <*>- (o .:? "dataFilters" .!= mempty))--instance ToJSON MatchedValueRange where- toJSON MatchedValueRange'{..}- = object- (catMaybes- [("valueRange" .=) <$> _mvrValueRange,- ("dataFilters" .=) <$> _mvrDataFilters])---- | The domain of a chart. For example, if charting stock prices over time,--- this would be the date.------ /See:/ 'basicChartDomain' smart constructor.-data BasicChartDomain = BasicChartDomain'- { _bcdReversed :: !(Maybe Bool)- , _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:------ * 'bcdReversed'------ * 'bcdDomain'-basicChartDomain- :: BasicChartDomain-basicChartDomain =- BasicChartDomain'- { _bcdReversed = Nothing- , _bcdDomain = Nothing- }---- | True to reverse the order of the domain values (horizontal axis).-bcdReversed :: Lens' BasicChartDomain (Maybe Bool)-bcdReversed- = lens _bcdReversed (\ s a -> s{_bcdReversed = a})---- | 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 .:? "reversed") <*> (o .:? "domain"))--instance ToJSON BasicChartDomain where- toJSON BasicChartDomain'{..}- = object- (catMaybes- [("reversed" .=) <$> _bcdReversed,- ("domain" .=) <$> _bcdDomain])---- | Allows you to organize the numeric values in a source data column into--- buckets of a constant size. All values from HistogramRule.start to--- HistogramRule.end are placed into groups of size HistogramRule.interval.--- In addition, all values below HistogramRule.start are placed in one--- group, and all values above HistogramRule.end are placed in another.--- Only HistogramRule.interval is required, though if HistogramRule.start--- and HistogramRule.end are both provided, HistogramRule.start must be--- less than HistogramRule.end. For example, a pivot table showing average--- purchase amount by age that has 50+ rows: +-----+-------------------+ |--- Age | AVERAGE of Amount | +-----+-------------------+ | 16 | $27.13 | |--- 17 | $5.24 | | 18 | $20.15 | ... +-----+-------------------+ could be--- turned into a pivot table that looks like the one below by applying a--- histogram group rule with a HistogramRule.start of 25, an--- HistogramRule.interval of 20, and an HistogramRule.end of 65.--- +-------------+-------------------+ | Grouped Age | AVERAGE of Amount |--- +-------------+-------------------+ | \< 25 | $19.34 | | 25-45 | $31.43--- | | 45-65 | $35.87 | | > 65 | $27.55 |--- +-------------+-------------------+ | Grand Total | $29.12 |--- +-------------+-------------------+------ /See:/ 'histogramRule' smart constructor.-data HistogramRule = HistogramRule'- { _hrStart :: !(Maybe (Textual Double))- , _hrInterval :: !(Maybe (Textual Double))- , _hrEnd :: !(Maybe (Textual Double))- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'HistogramRule' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hrStart'------ * 'hrInterval'------ * 'hrEnd'-histogramRule- :: HistogramRule-histogramRule =- HistogramRule'- { _hrStart = Nothing- , _hrInterval = Nothing- , _hrEnd = Nothing- }---- | The minimum value at which items are placed into buckets of constant--- size. Values below start are lumped into a single bucket. This field is--- optional.-hrStart :: Lens' HistogramRule (Maybe Double)-hrStart- = lens _hrStart (\ s a -> s{_hrStart = a}) .- mapping _Coerce---- | The size of the buckets that are created. Must be positive.-hrInterval :: Lens' HistogramRule (Maybe Double)-hrInterval- = lens _hrInterval (\ s a -> s{_hrInterval = a}) .- mapping _Coerce---- | The maximum value at which items are placed into buckets of constant--- size. Values above end are lumped into a single bucket. This field is--- optional.-hrEnd :: Lens' HistogramRule (Maybe Double)-hrEnd- = lens _hrEnd (\ s a -> s{_hrEnd = a}) .- mapping _Coerce--instance FromJSON HistogramRule where- parseJSON- = withObject "HistogramRule"- (\ o ->- HistogramRule' <$>- (o .:? "start") <*> (o .:? "interval") <*>- (o .:? "end"))--instance ToJSON HistogramRule where- toJSON HistogramRule'{..}- = object- (catMaybes- [("start" .=) <$> _hrStart,- ("interval" .=) <$> _hrInterval,- ("end" .=) <$> _hrEnd])---- | A developer metadata entry and the data filters specified in the--- original request that matched it.------ /See:/ 'matchedDeveloperMetadata' smart constructor.-data MatchedDeveloperMetadata = MatchedDeveloperMetadata'- { _mdmDataFilters :: !(Maybe [DataFilter])- , _mdmDeveloperMetadata :: !(Maybe DeveloperMetadata)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'MatchedDeveloperMetadata' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mdmDataFilters'------ * 'mdmDeveloperMetadata'-matchedDeveloperMetadata- :: MatchedDeveloperMetadata-matchedDeveloperMetadata =- MatchedDeveloperMetadata'- { _mdmDataFilters = Nothing- , _mdmDeveloperMetadata = Nothing- }---- | All filters matching the returned developer metadata.-mdmDataFilters :: Lens' MatchedDeveloperMetadata [DataFilter]-mdmDataFilters- = lens _mdmDataFilters- (\ s a -> s{_mdmDataFilters = a})- . _Default- . _Coerce---- | The developer metadata matching the specified filters.-mdmDeveloperMetadata :: Lens' MatchedDeveloperMetadata (Maybe DeveloperMetadata)-mdmDeveloperMetadata- = lens _mdmDeveloperMetadata- (\ s a -> s{_mdmDeveloperMetadata = a})--instance FromJSON MatchedDeveloperMetadata where- parseJSON- = withObject "MatchedDeveloperMetadata"- (\ o ->- MatchedDeveloperMetadata' <$>- (o .:? "dataFilters" .!= mempty) <*>- (o .:? "developerMetadata"))--instance ToJSON MatchedDeveloperMetadata where- toJSON MatchedDeveloperMetadata'{..}- = object- (catMaybes- [("dataFilters" .=) <$> _mdmDataFilters,- ("developerMetadata" .=) <$> _mdmDeveloperMetadata])---- | Inserts cells into a range, shifting the existing cells over or down.------ /See:/ 'insertRangeRequest' smart constructor.-data InsertRangeRequest = InsertRangeRequest'- { _irrShiftDimension :: !(Maybe InsertRangeRequestShiftDimension)- , _irrRange :: !(Maybe GridRange)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'InsertRangeRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'irrShiftDimension'------ * 'irrRange'-insertRangeRequest- :: InsertRangeRequest-insertRangeRequest =- InsertRangeRequest'- { _irrShiftDimension = Nothing- , _irrRange = Nothing- }---- | The dimension which will be shifted when inserting cells. If ROWS,--- existing cells will be shifted down. If COLUMNS, existing cells will be--- shifted right.-irrShiftDimension :: Lens' InsertRangeRequest (Maybe InsertRangeRequestShiftDimension)-irrShiftDimension- = lens _irrShiftDimension- (\ s a -> s{_irrShiftDimension = a})---- | The range to insert new cells into.-irrRange :: Lens' InsertRangeRequest (Maybe GridRange)-irrRange = lens _irrRange (\ s a -> s{_irrRange = a})--instance FromJSON InsertRangeRequest where- parseJSON- = withObject "InsertRangeRequest"- (\ o ->- InsertRangeRequest' <$>- (o .:? "shiftDimension") <*> (o .:? "range"))--instance ToJSON InsertRangeRequest where- toJSON InsertRangeRequest'{..}- = object- (catMaybes- [("shiftDimension" .=) <$> _irrShiftDimension,- ("range" .=) <$> _irrRange])---- | 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'- { _csTitleTextPosition :: !(Maybe TextPosition)- , _csFontName :: !(Maybe Text)- , _csSubtitleTextPosition :: !(Maybe TextPosition)- , _csBackgRoundColor :: !(Maybe Color)- , _csCandlestickChart :: !(Maybe CandlestickChartSpec)- , _csWaterfallChart :: !(Maybe WaterfallChartSpec)- , _csTitleTextFormat :: !(Maybe TextFormat)- , _csSubtitle :: !(Maybe Text)- , _csAltText :: !(Maybe Text)- , _csHistogramChart :: !(Maybe HistogramChartSpec)- , _csBubbleChart :: !(Maybe BubbleChartSpec)- , _csMaximized :: !(Maybe Bool)- , _csSubtitleTextFormat :: !(Maybe TextFormat)- , _csTitle :: !(Maybe Text)- , _csPieChart :: !(Maybe PieChartSpec)- , _csOrgChart :: !(Maybe OrgChartSpec)- , _csTreemapChart :: !(Maybe TreemapChartSpec)- , _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:------ * 'csTitleTextPosition'------ * 'csFontName'------ * 'csSubtitleTextPosition'------ * 'csBackgRoundColor'------ * 'csCandlestickChart'------ * 'csWaterfallChart'------ * 'csTitleTextFormat'------ * 'csSubtitle'------ * 'csAltText'------ * 'csHistogramChart'------ * 'csBubbleChart'------ * 'csMaximized'------ * 'csSubtitleTextFormat'------ * 'csTitle'------ * 'csPieChart'------ * 'csOrgChart'------ * 'csTreemapChart'------ * 'csBasicChart'------ * 'csHiddenDimensionStrategy'-chartSpec- :: ChartSpec-chartSpec =- ChartSpec'- { _csTitleTextPosition = Nothing- , _csFontName = Nothing- , _csSubtitleTextPosition = Nothing- , _csBackgRoundColor = Nothing- , _csCandlestickChart = Nothing- , _csWaterfallChart = Nothing- , _csTitleTextFormat = Nothing- , _csSubtitle = Nothing- , _csAltText = Nothing- , _csHistogramChart = Nothing- , _csBubbleChart = Nothing- , _csMaximized = Nothing- , _csSubtitleTextFormat = Nothing- , _csTitle = Nothing- , _csPieChart = Nothing- , _csOrgChart = Nothing- , _csTreemapChart = Nothing- , _csBasicChart = Nothing- , _csHiddenDimensionStrategy = Nothing- }---- | The title text position. This field is optional.-csTitleTextPosition :: Lens' ChartSpec (Maybe TextPosition)-csTitleTextPosition- = lens _csTitleTextPosition- (\ s a -> s{_csTitleTextPosition = a})---- | The name of the font to use by default for all chart text (e.g. title,--- axis labels, legend). If a font is specified for a specific part of the--- chart it will override this font name.-csFontName :: Lens' ChartSpec (Maybe Text)-csFontName- = lens _csFontName (\ s a -> s{_csFontName = a})---- | The subtitle text position. This field is optional.-csSubtitleTextPosition :: Lens' ChartSpec (Maybe TextPosition)-csSubtitleTextPosition- = lens _csSubtitleTextPosition- (\ s a -> s{_csSubtitleTextPosition = a})---- | The background color of the entire chart. Not applicable to Org charts.-csBackgRoundColor :: Lens' ChartSpec (Maybe Color)-csBackgRoundColor- = lens _csBackgRoundColor- (\ s a -> s{_csBackgRoundColor = a})---- | A candlestick chart specification.-csCandlestickChart :: Lens' ChartSpec (Maybe CandlestickChartSpec)-csCandlestickChart- = lens _csCandlestickChart- (\ s a -> s{_csCandlestickChart = a})---- | A waterfall chart specification.-csWaterfallChart :: Lens' ChartSpec (Maybe WaterfallChartSpec)-csWaterfallChart- = lens _csWaterfallChart- (\ s a -> s{_csWaterfallChart = a})---- | The title text format. Strikethrough and underline are not supported.-csTitleTextFormat :: Lens' ChartSpec (Maybe TextFormat)-csTitleTextFormat- = lens _csTitleTextFormat- (\ s a -> s{_csTitleTextFormat = a})---- | The subtitle of the chart.-csSubtitle :: Lens' ChartSpec (Maybe Text)-csSubtitle- = lens _csSubtitle (\ s a -> s{_csSubtitle = a})---- | The alternative text that describes the chart. This is often used for--- accessibility.-csAltText :: Lens' ChartSpec (Maybe Text)-csAltText- = lens _csAltText (\ s a -> s{_csAltText = a})---- | A histogram chart specification.-csHistogramChart :: Lens' ChartSpec (Maybe HistogramChartSpec)-csHistogramChart- = lens _csHistogramChart- (\ s a -> s{_csHistogramChart = a})---- | A bubble chart specification.-csBubbleChart :: Lens' ChartSpec (Maybe BubbleChartSpec)-csBubbleChart- = lens _csBubbleChart- (\ s a -> s{_csBubbleChart = a})---- | True to make a chart fill the entire space in which it\'s rendered with--- minimum padding. False to use the default padding. (Not applicable to--- Geo and Org charts.)-csMaximized :: Lens' ChartSpec (Maybe Bool)-csMaximized- = lens _csMaximized (\ s a -> s{_csMaximized = a})---- | The subtitle text format. Strikethrough and underline are not supported.-csSubtitleTextFormat :: Lens' ChartSpec (Maybe TextFormat)-csSubtitleTextFormat- = lens _csSubtitleTextFormat- (\ s a -> s{_csSubtitleTextFormat = a})---- | 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})---- | An org chart specification.-csOrgChart :: Lens' ChartSpec (Maybe OrgChartSpec)-csOrgChart- = lens _csOrgChart (\ s a -> s{_csOrgChart = a})---- | A treemap chart specification.-csTreemapChart :: Lens' ChartSpec (Maybe TreemapChartSpec)-csTreemapChart- = lens _csTreemapChart- (\ s a -> s{_csTreemapChart = 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 .:? "titleTextPosition") <*> (o .:? "fontName")- <*> (o .:? "subtitleTextPosition")- <*> (o .:? "backgroundColor")- <*> (o .:? "candlestickChart")- <*> (o .:? "waterfallChart")- <*> (o .:? "titleTextFormat")- <*> (o .:? "subtitle")- <*> (o .:? "altText")- <*> (o .:? "histogramChart")- <*> (o .:? "bubbleChart")- <*> (o .:? "maximized")- <*> (o .:? "subtitleTextFormat")- <*> (o .:? "title")- <*> (o .:? "pieChart")- <*> (o .:? "orgChart")- <*> (o .:? "treemapChart")- <*> (o .:? "basicChart")- <*> (o .:? "hiddenDimensionStrategy"))--instance ToJSON ChartSpec where- toJSON ChartSpec'{..}- = object- (catMaybes- [("titleTextPosition" .=) <$> _csTitleTextPosition,- ("fontName" .=) <$> _csFontName,- ("subtitleTextPosition" .=) <$>- _csSubtitleTextPosition,- ("backgroundColor" .=) <$> _csBackgRoundColor,- ("candlestickChart" .=) <$> _csCandlestickChart,- ("waterfallChart" .=) <$> _csWaterfallChart,- ("titleTextFormat" .=) <$> _csTitleTextFormat,- ("subtitle" .=) <$> _csSubtitle,- ("altText" .=) <$> _csAltText,- ("histogramChart" .=) <$> _csHistogramChart,- ("bubbleChart" .=) <$> _csBubbleChart,- ("maximized" .=) <$> _csMaximized,- ("subtitleTextFormat" .=) <$> _csSubtitleTextFormat,- ("title" .=) <$> _csTitle,- ("pieChart" .=) <$> _csPieChart,- ("orgChart" .=) <$> _csOrgChart,- ("treemapChart" .=) <$> _csTreemapChart,- ("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)- , _dpDeveloperMetadata :: !(Maybe [DeveloperMetadata])- } 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'------ * 'dpDeveloperMetadata'-dimensionProperties- :: DimensionProperties-dimensionProperties =- DimensionProperties'- { _dpHiddenByFilter = Nothing- , _dpPixelSize = Nothing- , _dpHiddenByUser = Nothing- , _dpDeveloperMetadata = 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})---- | The developer metadata associated with a single row or column.-dpDeveloperMetadata :: Lens' DimensionProperties [DeveloperMetadata]-dpDeveloperMetadata- = lens _dpDeveloperMetadata- (\ s a -> s{_dpDeveloperMetadata = a})- . _Default- . _Coerce--instance FromJSON DimensionProperties where- parseJSON- = withObject "DimensionProperties"- (\ o ->- DimensionProperties' <$>- (o .:? "hiddenByFilter") <*> (o .:? "pixelSize") <*>- (o .:? "hiddenByUser")- <*> (o .:? "developerMetadata" .!= mempty))--instance ToJSON DimensionProperties where- toJSON DimensionProperties'{..}- = object- (catMaybes- [("hiddenByFilter" .=) <$> _dpHiddenByFilter,- ("pixelSize" .=) <$> _dpPixelSize,- ("hiddenByUser" .=) <$> _dpHiddenByUser,- ("developerMetadata" .=) <$> _dpDeveloperMetadata])---- | Updates properties of the supplied banded range.------ /See:/ 'updateBandingRequest' smart constructor.-data UpdateBandingRequest = UpdateBandingRequest'- { _ubrBandedRange :: !(Maybe BandedRange)- , _ubrFields :: !(Maybe GFieldMask)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UpdateBandingRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ubrBandedRange'------ * 'ubrFields'-updateBandingRequest- :: UpdateBandingRequest-updateBandingRequest =- UpdateBandingRequest'- { _ubrBandedRange = Nothing- , _ubrFields = Nothing- }---- | The banded range to update with the new properties.-ubrBandedRange :: Lens' UpdateBandingRequest (Maybe BandedRange)-ubrBandedRange- = lens _ubrBandedRange- (\ s a -> s{_ubrBandedRange = a})---- | The fields that should be updated. At least one field must be specified.--- The root \`bandedRange\` is implied and should not be specified. A--- single \`\"*\"\` can be used as short-hand for listing every field.-ubrFields :: Lens' UpdateBandingRequest (Maybe GFieldMask)-ubrFields- = lens _ubrFields (\ s a -> s{_ubrFields = a})--instance FromJSON UpdateBandingRequest where- parseJSON- = withObject "UpdateBandingRequest"- (\ o ->- UpdateBandingRequest' <$>- (o .:? "bandedRange") <*> (o .:? "fields"))--instance ToJSON UpdateBandingRequest where- toJSON UpdateBandingRequest'{..}- = object- (catMaybes- [("bandedRange" .=) <$> _ubrBandedRange,- ("fields" .=) <$> _ubrFields])---- | 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])---- | Removes the banded range with the given ID from the spreadsheet.------ /See:/ 'deleteBandingRequest' smart constructor.-newtype DeleteBandingRequest = DeleteBandingRequest'- { _dbrBandedRangeId :: Maybe (Textual Int32)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DeleteBandingRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dbrBandedRangeId'-deleteBandingRequest- :: DeleteBandingRequest-deleteBandingRequest =- DeleteBandingRequest'- { _dbrBandedRangeId = Nothing- }---- | The ID of the banded range to delete.-dbrBandedRangeId :: Lens' DeleteBandingRequest (Maybe Int32)-dbrBandedRangeId- = lens _dbrBandedRangeId- (\ s a -> s{_dbrBandedRangeId = a})- . mapping _Coerce--instance FromJSON DeleteBandingRequest where- parseJSON- = withObject "DeleteBandingRequest"- (\ o ->- DeleteBandingRequest' <$> (o .:? "bandedRangeId"))--instance ToJSON DeleteBandingRequest where- toJSON DeleteBandingRequest'{..}- = object- (catMaybes- [("bandedRangeId" .=) <$> _dbrBandedRangeId])---- | The response from deleting developer metadata.------ /See:/ 'deleteDeveloperMetadataResponse' smart constructor.-newtype DeleteDeveloperMetadataResponse = DeleteDeveloperMetadataResponse'- { _ddmrDeletedDeveloperMetadata :: Maybe [DeveloperMetadata]- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DeleteDeveloperMetadataResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ddmrDeletedDeveloperMetadata'-deleteDeveloperMetadataResponse- :: DeleteDeveloperMetadataResponse-deleteDeveloperMetadataResponse =- DeleteDeveloperMetadataResponse'- { _ddmrDeletedDeveloperMetadata = Nothing- }---- | The metadata that was deleted.-ddmrDeletedDeveloperMetadata :: Lens' DeleteDeveloperMetadataResponse [DeveloperMetadata]-ddmrDeletedDeveloperMetadata- = lens _ddmrDeletedDeveloperMetadata- (\ s a -> s{_ddmrDeletedDeveloperMetadata = a})- . _Default- . _Coerce--instance FromJSON DeleteDeveloperMetadataResponse- where- parseJSON- = withObject "DeleteDeveloperMetadataResponse"- (\ o ->- DeleteDeveloperMetadataResponse' <$>- (o .:? "deletedDeveloperMetadata" .!= mempty))--instance ToJSON DeleteDeveloperMetadataResponse where- toJSON DeleteDeveloperMetadataResponse'{..}- = object- (catMaybes- [("deletedDeveloperMetadata" .=) <$>- _ddmrDeletedDeveloperMetadata])---- | The response from updating developer metadata.------ /See:/ 'updateDeveloperMetadataResponse' smart constructor.-newtype UpdateDeveloperMetadataResponse = UpdateDeveloperMetadataResponse'- { _uDeveloperMetadata :: Maybe [DeveloperMetadata]- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UpdateDeveloperMetadataResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uDeveloperMetadata'-updateDeveloperMetadataResponse- :: UpdateDeveloperMetadataResponse-updateDeveloperMetadataResponse =- UpdateDeveloperMetadataResponse'- { _uDeveloperMetadata = Nothing- }---- | The updated developer metadata.-uDeveloperMetadata :: Lens' UpdateDeveloperMetadataResponse [DeveloperMetadata]-uDeveloperMetadata- = lens _uDeveloperMetadata- (\ s a -> s{_uDeveloperMetadata = a})- . _Default- . _Coerce--instance FromJSON UpdateDeveloperMetadataResponse- where- parseJSON- = withObject "UpdateDeveloperMetadataResponse"- (\ o ->- UpdateDeveloperMetadataResponse' <$>- (o .:? "developerMetadata" .!= mempty))--instance ToJSON UpdateDeveloperMetadataResponse where- toJSON UpdateDeveloperMetadataResponse'{..}- = object- (catMaybes- [("developerMetadata" .=) <$> _uDeveloperMetadata])---- | 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)- , _reqCreateDeveloperMetadata :: !(Maybe CreateDeveloperMetadataRequest)- , _reqDuplicateFilterView :: !(Maybe DuplicateFilterViewRequest)- , _reqAddConditionalFormatRule :: !(Maybe AddConditionalFormatRuleRequest)- , _reqRandomizeRange :: !(Maybe RandomizeRangeRequest)- , _reqSortRange :: !(Maybe SortRangeRequest)- , _reqUpdateNamedRange :: !(Maybe UpdateNamedRangeRequest)- , _reqDeleteNamedRange :: !(Maybe DeleteNamedRangeRequest)- , _reqInsertRange :: !(Maybe InsertRangeRequest)- , _reqDeleteBanding :: !(Maybe DeleteBandingRequest)- , _reqUpdateBanding :: !(Maybe UpdateBandingRequest)- , _reqClearBasicFilter :: !(Maybe ClearBasicFilterRequest)- , _reqAppendCells :: !(Maybe AppendCellsRequest)- , _reqPasteData :: !(Maybe PasteDataRequest)- , _reqUpdateEmbeddedObjectPosition :: !(Maybe UpdateEmbeddedObjectPositionRequest)- , _reqDeleteRange :: !(Maybe DeleteRangeRequest)- , _reqCopyPaste :: !(Maybe CopyPasteRequest)- , _reqUpdateDimensionGroup :: !(Maybe UpdateDimensionGroupRequest)- , _reqDeleteDimensionGroup :: !(Maybe DeleteDimensionGroupRequest)- , _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)- , _reqDeleteDeveloperMetadata :: !(Maybe DeleteDeveloperMetadataRequest)- , _reqUpdateDeveloperMetadata :: !(Maybe UpdateDeveloperMetadataRequest)- , _reqMergeCells :: !(Maybe MergeCellsRequest)- , _reqAddNamedRange :: !(Maybe AddNamedRangeRequest)- , _reqAddChart :: !(Maybe AddChartRequest)- , _reqAddBanding :: !(Maybe AddBandingRequest)- , _reqDuplicateSheet :: !(Maybe DuplicateSheetRequest)- , _reqAutoFill :: !(Maybe AutoFillRequest)- , _reqUpdateDimensionProperties :: !(Maybe UpdateDimensionPropertiesRequest)- , _reqUpdateChartSpec :: !(Maybe UpdateChartSpecRequest)- , _reqSetBasicFilter :: !(Maybe SetBasicFilterRequest)- , _reqTextToColumns :: !(Maybe TextToColumnsRequest)- , _reqAddDimensionGroup :: !(Maybe AddDimensionGroupRequest)- , _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'------ * 'reqCreateDeveloperMetadata'------ * 'reqDuplicateFilterView'------ * 'reqAddConditionalFormatRule'------ * 'reqRandomizeRange'------ * 'reqSortRange'------ * 'reqUpdateNamedRange'------ * 'reqDeleteNamedRange'------ * 'reqInsertRange'------ * 'reqDeleteBanding'------ * 'reqUpdateBanding'------ * 'reqClearBasicFilter'------ * 'reqAppendCells'------ * 'reqPasteData'------ * 'reqUpdateEmbeddedObjectPosition'------ * 'reqDeleteRange'------ * 'reqCopyPaste'------ * 'reqUpdateDimensionGroup'------ * 'reqDeleteDimensionGroup'------ * 'reqAutoResizeDimensions'------ * 'reqAddSheet'------ * 'reqFindReplace'------ * 'reqDeleteDimension'------ * 'reqCutPaste'------ * 'reqMoveDimension'------ * 'reqRepeatCell'------ * 'reqAddProtectedRange'------ * 'reqUpdateFilterView'------ * 'reqDeleteFilterView'------ * 'reqInsertDimension'------ * 'reqUpdateSheetProperties'------ * 'reqDeleteConditionalFormatRule'------ * 'reqUpdateConditionalFormatRule'------ * 'reqDeleteEmbeddedObject'------ * 'reqDeleteDeveloperMetadata'------ * 'reqUpdateDeveloperMetadata'------ * 'reqMergeCells'------ * 'reqAddNamedRange'------ * 'reqAddChart'------ * 'reqAddBanding'------ * 'reqDuplicateSheet'------ * 'reqAutoFill'------ * 'reqUpdateDimensionProperties'------ * 'reqUpdateChartSpec'------ * 'reqSetBasicFilter'------ * 'reqTextToColumns'------ * 'reqAddDimensionGroup'------ * 'reqUpdateSpreadsheetProperties'------ * 'reqDeleteSheet'------ * 'reqUnmergeCells'------ * 'reqUpdateBOrders'------ * 'reqAppendDimension'------ * 'reqSetDataValidation'-request'- :: Request'-request' =- Request''- { _reqAddFilterView = Nothing- , _reqDeleteProtectedRange = Nothing- , _reqUpdateProtectedRange = Nothing- , _reqUpdateCells = Nothing- , _reqCreateDeveloperMetadata = Nothing- , _reqDuplicateFilterView = Nothing- , _reqAddConditionalFormatRule = Nothing- , _reqRandomizeRange = Nothing- , _reqSortRange = Nothing- , _reqUpdateNamedRange = Nothing- , _reqDeleteNamedRange = Nothing- , _reqInsertRange = Nothing- , _reqDeleteBanding = Nothing- , _reqUpdateBanding = Nothing- , _reqClearBasicFilter = Nothing- , _reqAppendCells = Nothing- , _reqPasteData = Nothing- , _reqUpdateEmbeddedObjectPosition = Nothing- , _reqDeleteRange = Nothing- , _reqCopyPaste = Nothing- , _reqUpdateDimensionGroup = Nothing- , _reqDeleteDimensionGroup = 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- , _reqDeleteDeveloperMetadata = Nothing- , _reqUpdateDeveloperMetadata = Nothing- , _reqMergeCells = Nothing- , _reqAddNamedRange = Nothing- , _reqAddChart = Nothing- , _reqAddBanding = Nothing- , _reqDuplicateSheet = Nothing- , _reqAutoFill = Nothing- , _reqUpdateDimensionProperties = Nothing- , _reqUpdateChartSpec = Nothing- , _reqSetBasicFilter = Nothing- , _reqTextToColumns = Nothing- , _reqAddDimensionGroup = 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})---- | Creates new developer metadata-reqCreateDeveloperMetadata :: Lens' Request' (Maybe CreateDeveloperMetadataRequest)-reqCreateDeveloperMetadata- = lens _reqCreateDeveloperMetadata- (\ s a -> s{_reqCreateDeveloperMetadata = 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})---- | Randomizes the order of the rows in a range.-reqRandomizeRange :: Lens' Request' (Maybe RandomizeRangeRequest)-reqRandomizeRange- = lens _reqRandomizeRange- (\ s a -> s{_reqRandomizeRange = 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})---- | Inserts new cells in a sheet, shifting the existing cells.-reqInsertRange :: Lens' Request' (Maybe InsertRangeRequest)-reqInsertRange- = lens _reqInsertRange- (\ s a -> s{_reqInsertRange = a})---- | Removes a banded range-reqDeleteBanding :: Lens' Request' (Maybe DeleteBandingRequest)-reqDeleteBanding- = lens _reqDeleteBanding- (\ s a -> s{_reqDeleteBanding = a})---- | Updates a banded range-reqUpdateBanding :: Lens' Request' (Maybe UpdateBandingRequest)-reqUpdateBanding- = lens _reqUpdateBanding- (\ s a -> s{_reqUpdateBanding = 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})---- | Deletes a range of cells from a sheet, shifting the remaining cells.-reqDeleteRange :: Lens' Request' (Maybe DeleteRangeRequest)-reqDeleteRange- = lens _reqDeleteRange- (\ s a -> s{_reqDeleteRange = a})---- | Copies data from one area and pastes it to another.-reqCopyPaste :: Lens' Request' (Maybe CopyPasteRequest)-reqCopyPaste- = lens _reqCopyPaste (\ s a -> s{_reqCopyPaste = a})---- | Updates the state of the specified group.-reqUpdateDimensionGroup :: Lens' Request' (Maybe UpdateDimensionGroupRequest)-reqUpdateDimensionGroup- = lens _reqUpdateDimensionGroup- (\ s a -> s{_reqUpdateDimensionGroup = a})---- | Deletes a group over the specified range.-reqDeleteDimensionGroup :: Lens' Request' (Maybe DeleteDimensionGroupRequest)-reqDeleteDimensionGroup- = lens _reqDeleteDimensionGroup- (\ s a -> s{_reqDeleteDimensionGroup = 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})---- | Deletes developer metadata-reqDeleteDeveloperMetadata :: Lens' Request' (Maybe DeleteDeveloperMetadataRequest)-reqDeleteDeveloperMetadata- = lens _reqDeleteDeveloperMetadata- (\ s a -> s{_reqDeleteDeveloperMetadata = a})---- | Updates an existing developer metadata entry-reqUpdateDeveloperMetadata :: Lens' Request' (Maybe UpdateDeveloperMetadataRequest)-reqUpdateDeveloperMetadata- = lens _reqUpdateDeveloperMetadata- (\ s a -> s{_reqUpdateDeveloperMetadata = 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})---- | Adds a new banded range-reqAddBanding :: Lens' Request' (Maybe AddBandingRequest)-reqAddBanding- = lens _reqAddBanding- (\ s a -> s{_reqAddBanding = 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})---- | Creates a group over the specified range.-reqAddDimensionGroup :: Lens' Request' (Maybe AddDimensionGroupRequest)-reqAddDimensionGroup- = lens _reqAddDimensionGroup- (\ s a -> s{_reqAddDimensionGroup = 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 .:? "createDeveloperMetadata")- <*> (o .:? "duplicateFilterView")- <*> (o .:? "addConditionalFormatRule")- <*> (o .:? "randomizeRange")- <*> (o .:? "sortRange")- <*> (o .:? "updateNamedRange")- <*> (o .:? "deleteNamedRange")- <*> (o .:? "insertRange")- <*> (o .:? "deleteBanding")- <*> (o .:? "updateBanding")- <*> (o .:? "clearBasicFilter")- <*> (o .:? "appendCells")- <*> (o .:? "pasteData")- <*> (o .:? "updateEmbeddedObjectPosition")- <*> (o .:? "deleteRange")- <*> (o .:? "copyPaste")- <*> (o .:? "updateDimensionGroup")- <*> (o .:? "deleteDimensionGroup")- <*> (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 .:? "deleteDeveloperMetadata")- <*> (o .:? "updateDeveloperMetadata")- <*> (o .:? "mergeCells")- <*> (o .:? "addNamedRange")- <*> (o .:? "addChart")- <*> (o .:? "addBanding")- <*> (o .:? "duplicateSheet")- <*> (o .:? "autoFill")- <*> (o .:? "updateDimensionProperties")- <*> (o .:? "updateChartSpec")- <*> (o .:? "setBasicFilter")- <*> (o .:? "textToColumns")- <*> (o .:? "addDimensionGroup")- <*> (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,- ("createDeveloperMetadata" .=) <$>- _reqCreateDeveloperMetadata,- ("duplicateFilterView" .=) <$>- _reqDuplicateFilterView,- ("addConditionalFormatRule" .=) <$>- _reqAddConditionalFormatRule,- ("randomizeRange" .=) <$> _reqRandomizeRange,- ("sortRange" .=) <$> _reqSortRange,- ("updateNamedRange" .=) <$> _reqUpdateNamedRange,- ("deleteNamedRange" .=) <$> _reqDeleteNamedRange,- ("insertRange" .=) <$> _reqInsertRange,- ("deleteBanding" .=) <$> _reqDeleteBanding,- ("updateBanding" .=) <$> _reqUpdateBanding,- ("clearBasicFilter" .=) <$> _reqClearBasicFilter,- ("appendCells" .=) <$> _reqAppendCells,- ("pasteData" .=) <$> _reqPasteData,- ("updateEmbeddedObjectPosition" .=) <$>- _reqUpdateEmbeddedObjectPosition,- ("deleteRange" .=) <$> _reqDeleteRange,- ("copyPaste" .=) <$> _reqCopyPaste,- ("updateDimensionGroup" .=) <$>- _reqUpdateDimensionGroup,- ("deleteDimensionGroup" .=) <$>- _reqDeleteDimensionGroup,- ("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,- ("deleteDeveloperMetadata" .=) <$>- _reqDeleteDeveloperMetadata,- ("updateDeveloperMetadata" .=) <$>- _reqUpdateDeveloperMetadata,- ("mergeCells" .=) <$> _reqMergeCells,- ("addNamedRange" .=) <$> _reqAddNamedRange,- ("addChart" .=) <$> _reqAddChart,- ("addBanding" .=) <$> _reqAddBanding,- ("duplicateSheet" .=) <$> _reqDuplicateSheet,- ("autoFill" .=) <$> _reqAutoFill,- ("updateDimensionProperties" .=) <$>- _reqUpdateDimensionProperties,- ("updateChartSpec" .=) <$> _reqUpdateChartSpec,- ("setBasicFilter" .=) <$> _reqSetBasicFilter,- ("textToColumns" .=) <$> _reqTextToColumns,- ("addDimensionGroup" .=) <$> _reqAddDimensionGroup,- ("updateSpreadsheetProperties" .=) <$>- _reqUpdateSpreadsheetProperties,- ("deleteSheet" .=) <$> _reqDeleteSheet,- ("unmergeCells" .=) <$> _reqUnmergeCells,- ("updateBorders" .=) <$> _reqUpdateBOrders,- ("appendDimension" .=) <$> _reqAppendDimension,- ("setDataValidation" .=) <$> _reqSetDataValidation])---- | Properties that describe the style of a line.------ /See:/ 'lineStyle' smart constructor.-data LineStyle = LineStyle'- { _lsWidth :: !(Maybe (Textual Int32))- , _lsType :: !(Maybe LineStyleType)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'LineStyle' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lsWidth'------ * 'lsType'-lineStyle- :: LineStyle-lineStyle =- LineStyle'- { _lsWidth = Nothing- , _lsType = Nothing- }---- | The thickness of the line, in px.-lsWidth :: Lens' LineStyle (Maybe Int32)-lsWidth- = lens _lsWidth (\ s a -> s{_lsWidth = a}) .- mapping _Coerce---- | The dash type of the line.-lsType :: Lens' LineStyle (Maybe LineStyleType)-lsType = lens _lsType (\ s a -> s{_lsType = a})--instance FromJSON LineStyle where- parseJSON- = withObject "LineStyle"- (\ o ->- LineStyle' <$> (o .:? "width") <*> (o .:? "type"))--instance ToJSON LineStyle where- toJSON LineStyle'{..}- = object- (catMaybes- [("width" .=) <$> _lsWidth, ("type" .=) <$> _lsType])---- | 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- }+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. When appending values, this field+-- represents the range to search for a table, after which values will be+-- appended.+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 GFieldMask)+ }+ 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 GFieldMask)+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])++-- | The request for clearing more than one range of values in a spreadsheet.+--+-- /See:/ 'batchClearValuesRequest' smart constructor.+newtype BatchClearValuesRequest =+ BatchClearValuesRequest'+ { _bcvrRanges :: Maybe [Text]+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BatchClearValuesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcvrRanges'+batchClearValuesRequest+ :: BatchClearValuesRequest+batchClearValuesRequest = BatchClearValuesRequest' {_bcvrRanges = Nothing}+++-- | The ranges to clear, in A1 notation.+bcvrRanges :: Lens' BatchClearValuesRequest [Text]+bcvrRanges+ = lens _bcvrRanges (\ s a -> s{_bcvrRanges = a}) .+ _Default+ . _Coerce++instance FromJSON BatchClearValuesRequest where+ parseJSON+ = withObject "BatchClearValuesRequest"+ (\ o ->+ BatchClearValuesRequest' <$>+ (o .:? "ranges" .!= mempty))++instance ToJSON BatchClearValuesRequest where+ toJSON BatchClearValuesRequest'{..}+ = object (catMaybes [("ranges" .=) <$> _bcvrRanges])++-- | The response from creating developer metadata.+--+-- /See:/ 'createDeveloperMetadataResponse' smart constructor.+newtype CreateDeveloperMetadataResponse =+ CreateDeveloperMetadataResponse'+ { _cdmrDeveloperMetadata :: Maybe DeveloperMetadata+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateDeveloperMetadataResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdmrDeveloperMetadata'+createDeveloperMetadataResponse+ :: CreateDeveloperMetadataResponse+createDeveloperMetadataResponse =+ CreateDeveloperMetadataResponse' {_cdmrDeveloperMetadata = Nothing}+++-- | The developer metadata that was created.+cdmrDeveloperMetadata :: Lens' CreateDeveloperMetadataResponse (Maybe DeveloperMetadata)+cdmrDeveloperMetadata+ = lens _cdmrDeveloperMetadata+ (\ s a -> s{_cdmrDeveloperMetadata = a})++instance FromJSON CreateDeveloperMetadataResponse+ where+ parseJSON+ = withObject "CreateDeveloperMetadataResponse"+ (\ o ->+ CreateDeveloperMetadataResponse' <$>+ (o .:? "developerMetadata"))++instance ToJSON CreateDeveloperMetadataResponse where+ toJSON CreateDeveloperMetadataResponse'{..}+ = object+ (catMaybes+ [("developerMetadata" .=) <$>+ _cdmrDeveloperMetadata])++-- | Allows you to organize the date-time values in a source data column into+-- buckets based on selected parts of their date or time values. For+-- example, consider a pivot table showing sales transactions by date:+-- +----------+--------------+ | Date | SUM of Sales |+-- +----------+--------------+ | 1\/1\/2017 | $621.14 | | 2\/3\/2017 |+-- $708.84 | | 5\/8\/2017 | $326.84 | ... +----------+--------------++-- Applying a date-time group rule with a DateTimeRuleType of YEAR_MONTH+-- results in the following pivot table. +--------------+--------------+ |+-- Grouped Date | SUM of Sales | +--------------+--------------+ | 2017-Jan+-- | $53,731.78 | | 2017-Feb | $83,475.32 | | 2017-Mar | $94,385.05 | ...+-- +--------------+--------------++--+-- /See:/ 'dateTimeRule' smart constructor.+newtype DateTimeRule =+ DateTimeRule'+ { _dtrType :: Maybe DateTimeRuleType+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DateTimeRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtrType'+dateTimeRule+ :: DateTimeRule+dateTimeRule = DateTimeRule' {_dtrType = Nothing}+++-- | The type of date-time grouping to apply.+dtrType :: Lens' DateTimeRule (Maybe DateTimeRuleType)+dtrType = lens _dtrType (\ s a -> s{_dtrType = a})++instance FromJSON DateTimeRule where+ parseJSON+ = withObject "DateTimeRule"+ (\ o -> DateTimeRule' <$> (o .:? "type"))++instance ToJSON DateTimeRule where+ toJSON DateTimeRule'{..}+ = object (catMaybes [("type" .=) <$> _dtrType])++-- | Properties of a spreadsheet.+--+-- /See:/ 'spreadsheetProperties' smart constructor.+data SpreadsheetProperties =+ SpreadsheetProperties'+ { _spDefaultFormat :: !(Maybe CellFormat)+ , _spLocale :: !(Maybe Text)+ , _spIterativeCalculationSettings :: !(Maybe IterativeCalculationSettings)+ , _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'+--+-- * 'spIterativeCalculationSettings'+--+-- * 'spAutoRecalc'+--+-- * 'spTitle'+--+-- * 'spTimeZone'+spreadsheetProperties+ :: SpreadsheetProperties+spreadsheetProperties =+ SpreadsheetProperties'+ { _spDefaultFormat = Nothing+ , _spLocale = Nothing+ , _spIterativeCalculationSettings = 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})++-- | Determines whether and how circular references are resolved with+-- iterative calculation. Absence of this field means that circular+-- references will result in calculation errors.+spIterativeCalculationSettings :: Lens' SpreadsheetProperties (Maybe IterativeCalculationSettings)+spIterativeCalculationSettings+ = lens _spIterativeCalculationSettings+ (\ s a -> s{_spIterativeCalculationSettings = 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 .:? "iterativeCalculationSettings")+ <*> (o .:? "autoRecalc")+ <*> (o .:? "title")+ <*> (o .:? "timeZone"))++instance ToJSON SpreadsheetProperties where+ toJSON SpreadsheetProperties'{..}+ = object+ (catMaybes+ [("defaultFormat" .=) <$> _spDefaultFormat,+ ("locale" .=) <$> _spLocale,+ ("iterativeCalculationSettings" .=) <$>+ _spIterativeCalculationSettings,+ ("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])++-- | The request for clearing more than one range selected by a DataFilter in+-- a spreadsheet.+--+-- /See:/ 'batchClearValuesByDataFilterRequest' smart constructor.+newtype BatchClearValuesByDataFilterRequest =+ BatchClearValuesByDataFilterRequest'+ { _bcvbdfrDataFilters :: Maybe [DataFilter]+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BatchClearValuesByDataFilterRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcvbdfrDataFilters'+batchClearValuesByDataFilterRequest+ :: BatchClearValuesByDataFilterRequest+batchClearValuesByDataFilterRequest =+ BatchClearValuesByDataFilterRequest' {_bcvbdfrDataFilters = Nothing}+++-- | The DataFilters used to determine which ranges to clear.+bcvbdfrDataFilters :: Lens' BatchClearValuesByDataFilterRequest [DataFilter]+bcvbdfrDataFilters+ = lens _bcvbdfrDataFilters+ (\ s a -> s{_bcvbdfrDataFilters = a})+ . _Default+ . _Coerce++instance FromJSON BatchClearValuesByDataFilterRequest+ where+ parseJSON+ = withObject "BatchClearValuesByDataFilterRequest"+ (\ o ->+ BatchClearValuesByDataFilterRequest' <$>+ (o .:? "dataFilters" .!= mempty))++instance ToJSON BatchClearValuesByDataFilterRequest+ where+ toJSON BatchClearValuesByDataFilterRequest'{..}+ = object+ (catMaybes+ [("dataFilters" .=) <$> _bcvbdfrDataFilters])++-- | 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])++-- | Deletes a group over the specified range by decrementing the depth of+-- the dimensions in the range. For example, assume the sheet has a depth-1+-- group over B:E and a depth-2 group over C:D. Deleting a group over D:E+-- leaves the sheet with a depth-1 group over B:D and a depth-2 group over+-- C:C.+--+-- /See:/ 'deleteDimensionGroupRequest' smart constructor.+newtype DeleteDimensionGroupRequest =+ DeleteDimensionGroupRequest'+ { _ddgrRange :: Maybe DimensionRange+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteDimensionGroupRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddgrRange'+deleteDimensionGroupRequest+ :: DeleteDimensionGroupRequest+deleteDimensionGroupRequest =+ DeleteDimensionGroupRequest' {_ddgrRange = Nothing}+++-- | The range of the group to be deleted.+ddgrRange :: Lens' DeleteDimensionGroupRequest (Maybe DimensionRange)+ddgrRange+ = lens _ddgrRange (\ s a -> s{_ddgrRange = a})++instance FromJSON DeleteDimensionGroupRequest where+ parseJSON+ = withObject "DeleteDimensionGroupRequest"+ (\ o ->+ DeleteDimensionGroupRequest' <$> (o .:? "range"))++instance ToJSON DeleteDimensionGroupRequest where+ toJSON DeleteDimensionGroupRequest'{..}+ = object (catMaybes [("range" .=) <$> _ddgrRange])++-- | Updates the state of the specified group.+--+-- /See:/ 'updateDimensionGroupRequest' smart constructor.+data UpdateDimensionGroupRequest =+ UpdateDimensionGroupRequest'+ { _udgrDimensionGroup :: !(Maybe DimensionGroup)+ , _udgrFields :: !(Maybe GFieldMask)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateDimensionGroupRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udgrDimensionGroup'+--+-- * 'udgrFields'+updateDimensionGroupRequest+ :: UpdateDimensionGroupRequest+updateDimensionGroupRequest =+ UpdateDimensionGroupRequest'+ {_udgrDimensionGroup = Nothing, _udgrFields = Nothing}+++-- | The group whose state should be updated. The range and depth of the+-- group should specify a valid group on the sheet, and all other fields+-- updated.+udgrDimensionGroup :: Lens' UpdateDimensionGroupRequest (Maybe DimensionGroup)+udgrDimensionGroup+ = lens _udgrDimensionGroup+ (\ s a -> s{_udgrDimensionGroup = a})++-- | The fields that should be updated. At least one field must be specified.+-- The root \`dimensionGroup\` is implied and should not be specified. A+-- single \`\"*\"\` can be used as short-hand for listing every field.+udgrFields :: Lens' UpdateDimensionGroupRequest (Maybe GFieldMask)+udgrFields+ = lens _udgrFields (\ s a -> s{_udgrFields = a})++instance FromJSON UpdateDimensionGroupRequest where+ parseJSON+ = withObject "UpdateDimensionGroupRequest"+ (\ o ->+ UpdateDimensionGroupRequest' <$>+ (o .:? "dimensionGroup") <*> (o .:? "fields"))++instance ToJSON UpdateDimensionGroupRequest where+ toJSON UpdateDimensionGroupRequest'{..}+ = object+ (catMaybes+ [("dimensionGroup" .=) <$> _udgrDimensionGroup,+ ("fields" .=) <$> _udgrFields])++-- | 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.+-- The sheetId field is optional; if one is not set, an id will be randomly+-- generated. (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])++-- | A group over an interval of rows or columns on a sheet, which can+-- contain or be contained within other groups. A group can be collapsed or+-- expanded as a unit on the sheet.+--+-- /See:/ 'dimensionGroup' smart constructor.+data DimensionGroup =+ DimensionGroup'+ { _dgCollapsed :: !(Maybe Bool)+ , _dgRange :: !(Maybe DimensionRange)+ , _dgDepth :: !(Maybe (Textual Int32))+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DimensionGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dgCollapsed'+--+-- * 'dgRange'+--+-- * 'dgDepth'+dimensionGroup+ :: DimensionGroup+dimensionGroup =+ DimensionGroup'+ {_dgCollapsed = Nothing, _dgRange = Nothing, _dgDepth = Nothing}+++-- | This field is true if this group is collapsed. A collapsed group remains+-- collapsed if an overlapping group at a shallower depth is expanded. A+-- true value does not imply that all dimensions within the group are+-- hidden, since a dimension\'s visibility can change independently from+-- this group property. However, when this property is updated, all+-- dimensions within it are set to hidden if this field is true, or set to+-- visible if this field is false.+dgCollapsed :: Lens' DimensionGroup (Maybe Bool)+dgCollapsed+ = lens _dgCollapsed (\ s a -> s{_dgCollapsed = a})++-- | The range over which this group exists.+dgRange :: Lens' DimensionGroup (Maybe DimensionRange)+dgRange = lens _dgRange (\ s a -> s{_dgRange = a})++-- | The depth of the group, representing how many groups have a range that+-- wholly contains the range of this group.+dgDepth :: Lens' DimensionGroup (Maybe Int32)+dgDepth+ = lens _dgDepth (\ s a -> s{_dgDepth = a}) .+ mapping _Coerce++instance FromJSON DimensionGroup where+ parseJSON+ = withObject "DimensionGroup"+ (\ o ->+ DimensionGroup' <$>+ (o .:? "collapsed") <*> (o .:? "range") <*>+ (o .:? "depth"))++instance ToJSON DimensionGroup where+ toJSON DimensionGroup'{..}+ = object+ (catMaybes+ [("collapsed" .=) <$> _dgCollapsed,+ ("range" .=) <$> _dgRange,+ ("depth" .=) <$> _dgDepth])++-- | 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.+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 </chart/interactive/docs/gallery/bubblechart bubble chart>.+--+-- /See:/ 'bubbleChartSpec' smart constructor.+data BubbleChartSpec =+ BubbleChartSpec'+ { _bcsBubbleTextStyle :: !(Maybe TextFormat)+ , _bcsBubbleBOrderColor :: !(Maybe Color)+ , _bcsLegendPosition :: !(Maybe BubbleChartSpecLegendPosition)+ , _bcsDomain :: !(Maybe ChartData)+ , _bcsSeries :: !(Maybe ChartData)+ , _bcsBubbleLabels :: !(Maybe ChartData)+ , _bcsGroupIds :: !(Maybe ChartData)+ , _bcsBubbleMinRadiusSize :: !(Maybe (Textual Int32))+ , _bcsBubbleMaxRadiusSize :: !(Maybe (Textual Int32))+ , _bcsBubbleOpacity :: !(Maybe (Textual Double))+ , _bcsBubbleSizes :: !(Maybe ChartData)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BubbleChartSpec' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcsBubbleTextStyle'+--+-- * 'bcsBubbleBOrderColor'+--+-- * 'bcsLegendPosition'+--+-- * 'bcsDomain'+--+-- * 'bcsSeries'+--+-- * 'bcsBubbleLabels'+--+-- * 'bcsGroupIds'+--+-- * 'bcsBubbleMinRadiusSize'+--+-- * 'bcsBubbleMaxRadiusSize'+--+-- * 'bcsBubbleOpacity'+--+-- * 'bcsBubbleSizes'+bubbleChartSpec+ :: BubbleChartSpec+bubbleChartSpec =+ BubbleChartSpec'+ { _bcsBubbleTextStyle = Nothing+ , _bcsBubbleBOrderColor = Nothing+ , _bcsLegendPosition = Nothing+ , _bcsDomain = Nothing+ , _bcsSeries = Nothing+ , _bcsBubbleLabels = Nothing+ , _bcsGroupIds = Nothing+ , _bcsBubbleMinRadiusSize = Nothing+ , _bcsBubbleMaxRadiusSize = Nothing+ , _bcsBubbleOpacity = Nothing+ , _bcsBubbleSizes = Nothing+ }+++-- | The format of the text inside the bubbles. Underline and Strikethrough+-- are not supported.+bcsBubbleTextStyle :: Lens' BubbleChartSpec (Maybe TextFormat)+bcsBubbleTextStyle+ = lens _bcsBubbleTextStyle+ (\ s a -> s{_bcsBubbleTextStyle = a})++-- | The bubble border color.+bcsBubbleBOrderColor :: Lens' BubbleChartSpec (Maybe Color)+bcsBubbleBOrderColor+ = lens _bcsBubbleBOrderColor+ (\ s a -> s{_bcsBubbleBOrderColor = a})++-- | Where the legend of the chart should be drawn.+bcsLegendPosition :: Lens' BubbleChartSpec (Maybe BubbleChartSpecLegendPosition)+bcsLegendPosition+ = lens _bcsLegendPosition+ (\ s a -> s{_bcsLegendPosition = a})++-- | The data containing the bubble x-values. These values locate the bubbles+-- in the chart horizontally.+bcsDomain :: Lens' BubbleChartSpec (Maybe ChartData)+bcsDomain+ = lens _bcsDomain (\ s a -> s{_bcsDomain = a})++-- | The data contianing the bubble y-values. These values locate the bubbles+-- in the chart vertically.+bcsSeries :: Lens' BubbleChartSpec (Maybe ChartData)+bcsSeries+ = lens _bcsSeries (\ s a -> s{_bcsSeries = a})++-- | The data containing the bubble labels. These do not need to be unique.+bcsBubbleLabels :: Lens' BubbleChartSpec (Maybe ChartData)+bcsBubbleLabels+ = lens _bcsBubbleLabels+ (\ s a -> s{_bcsBubbleLabels = a})++-- | The data containing the bubble group IDs. All bubbles with the same+-- group ID are drawn in the same color. If bubble_sizes is specified then+-- this field must also be specified but may contain blank values. This+-- field is optional.+bcsGroupIds :: Lens' BubbleChartSpec (Maybe ChartData)+bcsGroupIds+ = lens _bcsGroupIds (\ s a -> s{_bcsGroupIds = a})++-- | The minimum radius size of the bubbles, in pixels. If specific, the+-- field must be a positive value.+bcsBubbleMinRadiusSize :: Lens' BubbleChartSpec (Maybe Int32)+bcsBubbleMinRadiusSize+ = lens _bcsBubbleMinRadiusSize+ (\ s a -> s{_bcsBubbleMinRadiusSize = a})+ . mapping _Coerce++-- | The max radius size of the bubbles, in pixels. If specified, the field+-- must be a positive value.+bcsBubbleMaxRadiusSize :: Lens' BubbleChartSpec (Maybe Int32)+bcsBubbleMaxRadiusSize+ = lens _bcsBubbleMaxRadiusSize+ (\ s a -> s{_bcsBubbleMaxRadiusSize = a})+ . mapping _Coerce++-- | The opacity of the bubbles between 0 and 1.0. 0 is fully transparent and+-- 1 is fully opaque.+bcsBubbleOpacity :: Lens' BubbleChartSpec (Maybe Double)+bcsBubbleOpacity+ = lens _bcsBubbleOpacity+ (\ s a -> s{_bcsBubbleOpacity = a})+ . mapping _Coerce++-- | The data contianing the bubble sizes. Bubble sizes are used to draw the+-- bubbles at different sizes relative to each other. If specified,+-- group_ids must also be specified. This field is optional.+bcsBubbleSizes :: Lens' BubbleChartSpec (Maybe ChartData)+bcsBubbleSizes+ = lens _bcsBubbleSizes+ (\ s a -> s{_bcsBubbleSizes = a})++instance FromJSON BubbleChartSpec where+ parseJSON+ = withObject "BubbleChartSpec"+ (\ o ->+ BubbleChartSpec' <$>+ (o .:? "bubbleTextStyle") <*>+ (o .:? "bubbleBorderColor")+ <*> (o .:? "legendPosition")+ <*> (o .:? "domain")+ <*> (o .:? "series")+ <*> (o .:? "bubbleLabels")+ <*> (o .:? "groupIds")+ <*> (o .:? "bubbleMinRadiusSize")+ <*> (o .:? "bubbleMaxRadiusSize")+ <*> (o .:? "bubbleOpacity")+ <*> (o .:? "bubbleSizes"))++instance ToJSON BubbleChartSpec where+ toJSON BubbleChartSpec'{..}+ = object+ (catMaybes+ [("bubbleTextStyle" .=) <$> _bcsBubbleTextStyle,+ ("bubbleBorderColor" .=) <$> _bcsBubbleBOrderColor,+ ("legendPosition" .=) <$> _bcsLegendPosition,+ ("domain" .=) <$> _bcsDomain,+ ("series" .=) <$> _bcsSeries,+ ("bubbleLabels" .=) <$> _bcsBubbleLabels,+ ("groupIds" .=) <$> _bcsGroupIds,+ ("bubbleMinRadiusSize" .=) <$>+ _bcsBubbleMinRadiusSize,+ ("bubbleMaxRadiusSize" .=) <$>+ _bcsBubbleMaxRadiusSize,+ ("bubbleOpacity" .=) <$> _bcsBubbleOpacity,+ ("bubbleSizes" .=) <$> _bcsBubbleSizes])++-- | Deletes a range of cells, shifting other cells into the deleted area.+--+-- /See:/ 'deleteRangeRequest' smart constructor.+data DeleteRangeRequest =+ DeleteRangeRequest'+ { _drrShiftDimension :: !(Maybe DeleteRangeRequestShiftDimension)+ , _drrRange :: !(Maybe GridRange)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteRangeRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drrShiftDimension'+--+-- * 'drrRange'+deleteRangeRequest+ :: DeleteRangeRequest+deleteRangeRequest =+ DeleteRangeRequest' {_drrShiftDimension = Nothing, _drrRange = Nothing}+++-- | The dimension from which deleted cells will be replaced with. If ROWS,+-- existing cells will be shifted upward to replace the deleted cells. If+-- COLUMNS, existing cells will be shifted left to replace the deleted+-- cells.+drrShiftDimension :: Lens' DeleteRangeRequest (Maybe DeleteRangeRequestShiftDimension)+drrShiftDimension+ = lens _drrShiftDimension+ (\ s a -> s{_drrShiftDimension = a})++-- | The range of cells to delete.+drrRange :: Lens' DeleteRangeRequest (Maybe GridRange)+drrRange = lens _drrRange (\ s a -> s{_drrRange = a})++instance FromJSON DeleteRangeRequest where+ parseJSON+ = withObject "DeleteRangeRequest"+ (\ o ->+ DeleteRangeRequest' <$>+ (o .:? "shiftDimension") <*> (o .:? "range"))++instance ToJSON DeleteRangeRequest where+ toJSON DeleteRangeRequest'{..}+ = object+ (catMaybes+ [("shiftDimension" .=) <$> _drrShiftDimension,+ ("range" .=) <$> _drrRange])++-- | A sheet in a spreadsheet.+--+-- /See:/ 'sheet' smart constructor.+data Sheet =+ Sheet'+ { _sColumnGroups :: !(Maybe [DimensionGroup])+ , _sData :: !(Maybe [GridData])+ , _sMerges :: !(Maybe [GridRange])+ , _sRowGroups :: !(Maybe [DimensionGroup])+ , _sProtectedRanges :: !(Maybe [ProtectedRange])+ , _sBandedRanges :: !(Maybe [BandedRange])+ , _sCharts :: !(Maybe [EmbeddedChart])+ , _sBasicFilter :: !(Maybe BasicFilter)+ , _sDeveloperMetadata :: !(Maybe [DeveloperMetadata])+ , _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:+--+-- * 'sColumnGroups'+--+-- * 'sData'+--+-- * 'sMerges'+--+-- * 'sRowGroups'+--+-- * 'sProtectedRanges'+--+-- * 'sBandedRanges'+--+-- * 'sCharts'+--+-- * 'sBasicFilter'+--+-- * 'sDeveloperMetadata'+--+-- * 'sConditionalFormats'+--+-- * 'sFilterViews'+--+-- * 'sProperties'+sheet+ :: Sheet+sheet =+ Sheet'+ { _sColumnGroups = Nothing+ , _sData = Nothing+ , _sMerges = Nothing+ , _sRowGroups = Nothing+ , _sProtectedRanges = Nothing+ , _sBandedRanges = Nothing+ , _sCharts = Nothing+ , _sBasicFilter = Nothing+ , _sDeveloperMetadata = Nothing+ , _sConditionalFormats = Nothing+ , _sFilterViews = Nothing+ , _sProperties = Nothing+ }+++-- | All column groups on this sheet, ordered by increasing range start+-- index, then by group depth.+sColumnGroups :: Lens' Sheet [DimensionGroup]+sColumnGroups+ = lens _sColumnGroups+ (\ s a -> s{_sColumnGroups = a})+ . _Default+ . _Coerce++-- | 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++-- | All row groups on this sheet, ordered by increasing range start index,+-- then by group depth.+sRowGroups :: Lens' Sheet [DimensionGroup]+sRowGroups+ = lens _sRowGroups (\ s a -> s{_sRowGroups = a}) .+ _Default+ . _Coerce++-- | The protected ranges in this sheet.+sProtectedRanges :: Lens' Sheet [ProtectedRange]+sProtectedRanges+ = lens _sProtectedRanges+ (\ s a -> s{_sProtectedRanges = a})+ . _Default+ . _Coerce++-- | The banded (alternating colors) ranges on this sheet.+sBandedRanges :: Lens' Sheet [BandedRange]+sBandedRanges+ = lens _sBandedRanges+ (\ s a -> s{_sBandedRanges = 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 developer metadata associated with a sheet.+sDeveloperMetadata :: Lens' Sheet [DeveloperMetadata]+sDeveloperMetadata+ = lens _sDeveloperMetadata+ (\ s a -> s{_sDeveloperMetadata = a})+ . _Default+ . _Coerce++-- | 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 .:? "columnGroups" .!= mempty) <*>+ (o .:? "data" .!= mempty)+ <*> (o .:? "merges" .!= mempty)+ <*> (o .:? "rowGroups" .!= mempty)+ <*> (o .:? "protectedRanges" .!= mempty)+ <*> (o .:? "bandedRanges" .!= mempty)+ <*> (o .:? "charts" .!= mempty)+ <*> (o .:? "basicFilter")+ <*> (o .:? "developerMetadata" .!= mempty)+ <*> (o .:? "conditionalFormats" .!= mempty)+ <*> (o .:? "filterViews" .!= mempty)+ <*> (o .:? "properties"))++instance ToJSON Sheet where+ toJSON Sheet'{..}+ = object+ (catMaybes+ [("columnGroups" .=) <$> _sColumnGroups,+ ("data" .=) <$> _sData, ("merges" .=) <$> _sMerges,+ ("rowGroups" .=) <$> _sRowGroups,+ ("protectedRanges" .=) <$> _sProtectedRanges,+ ("bandedRanges" .=) <$> _sBandedRanges,+ ("charts" .=) <$> _sCharts,+ ("basicFilter" .=) <$> _sBasicFilter,+ ("developerMetadata" .=) <$> _sDeveloperMetadata,+ ("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])++-- | The response when clearing a range of values in a spreadsheet.+--+-- /See:/ 'clearValuesResponse' smart constructor.+data ClearValuesResponse =+ ClearValuesResponse'+ { _cvrClearedRange :: !(Maybe Text)+ , _cvrSpreadsheetId :: !(Maybe Text)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClearValuesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cvrClearedRange'+--+-- * 'cvrSpreadsheetId'+clearValuesResponse+ :: ClearValuesResponse+clearValuesResponse =+ ClearValuesResponse' {_cvrClearedRange = Nothing, _cvrSpreadsheetId = Nothing}+++-- | The range (in A1 notation) that was cleared. (If the request was for an+-- unbounded range or a ranger larger than the bounds of the sheet, this+-- will be the actual range that was cleared, bounded to the sheet\'s+-- limits.)+cvrClearedRange :: Lens' ClearValuesResponse (Maybe Text)+cvrClearedRange+ = lens _cvrClearedRange+ (\ s a -> s{_cvrClearedRange = a})++-- | The spreadsheet the updates were applied to.+cvrSpreadsheetId :: Lens' ClearValuesResponse (Maybe Text)+cvrSpreadsheetId+ = lens _cvrSpreadsheetId+ (\ s a -> s{_cvrSpreadsheetId = a})++instance FromJSON ClearValuesResponse where+ parseJSON+ = withObject "ClearValuesResponse"+ (\ o ->+ ClearValuesResponse' <$>+ (o .:? "clearedRange") <*> (o .:? "spreadsheetId"))++instance ToJSON ClearValuesResponse where+ toJSON ClearValuesResponse'{..}+ = object+ (catMaybes+ [("clearedRange" .=) <$> _cvrClearedRange,+ ("spreadsheetId" .=) <$> _cvrSpreadsheetId])++-- | 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 GFieldMask)+ }+ 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 GFieldMask)+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 is 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])++-- | The response when retrieving more than one range of values in a+-- spreadsheet selected by DataFilters.+--+-- /See:/ 'batchGetValuesByDataFilterResponse' smart constructor.+data BatchGetValuesByDataFilterResponse =+ BatchGetValuesByDataFilterResponse'+ { _bgvbdfrSpreadsheetId :: !(Maybe Text)+ , _bgvbdfrValueRanges :: !(Maybe [MatchedValueRange])+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BatchGetValuesByDataFilterResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bgvbdfrSpreadsheetId'+--+-- * 'bgvbdfrValueRanges'+batchGetValuesByDataFilterResponse+ :: BatchGetValuesByDataFilterResponse+batchGetValuesByDataFilterResponse =+ BatchGetValuesByDataFilterResponse'+ {_bgvbdfrSpreadsheetId = Nothing, _bgvbdfrValueRanges = Nothing}+++-- | The ID of the spreadsheet the data was retrieved from.+bgvbdfrSpreadsheetId :: Lens' BatchGetValuesByDataFilterResponse (Maybe Text)+bgvbdfrSpreadsheetId+ = lens _bgvbdfrSpreadsheetId+ (\ s a -> s{_bgvbdfrSpreadsheetId = a})++-- | The requested values with the list of data filters that matched them.+bgvbdfrValueRanges :: Lens' BatchGetValuesByDataFilterResponse [MatchedValueRange]+bgvbdfrValueRanges+ = lens _bgvbdfrValueRanges+ (\ s a -> s{_bgvbdfrValueRanges = a})+ . _Default+ . _Coerce++instance FromJSON BatchGetValuesByDataFilterResponse+ where+ parseJSON+ = withObject "BatchGetValuesByDataFilterResponse"+ (\ o ->+ BatchGetValuesByDataFilterResponse' <$>+ (o .:? "spreadsheetId") <*>+ (o .:? "valueRanges" .!= mempty))++instance ToJSON BatchGetValuesByDataFilterResponse+ where+ toJSON BatchGetValuesByDataFilterResponse'{..}+ = object+ (catMaybes+ [("spreadsheetId" .=) <$> _bgvbdfrSpreadsheetId,+ ("valueRanges" .=) <$> _bgvbdfrValueRanges])++-- | 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 GFieldMask)+ }+ 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 GFieldMask)+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])++-- | The result of adding a group.+--+-- /See:/ 'addDimensionGroupResponse' smart constructor.+newtype AddDimensionGroupResponse =+ AddDimensionGroupResponse'+ { _adgrDimensionGroups :: Maybe [DimensionGroup]+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AddDimensionGroupResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'adgrDimensionGroups'+addDimensionGroupResponse+ :: AddDimensionGroupResponse+addDimensionGroupResponse =+ AddDimensionGroupResponse' {_adgrDimensionGroups = Nothing}+++-- | All groups of a dimension after adding a group to that dimension.+adgrDimensionGroups :: Lens' AddDimensionGroupResponse [DimensionGroup]+adgrDimensionGroups+ = lens _adgrDimensionGroups+ (\ s a -> s{_adgrDimensionGroups = a})+ . _Default+ . _Coerce++instance FromJSON AddDimensionGroupResponse where+ parseJSON+ = withObject "AddDimensionGroupResponse"+ (\ o ->+ AddDimensionGroupResponse' <$>+ (o .:? "dimensionGroups" .!= mempty))++instance ToJSON AddDimensionGroupResponse where+ toJSON AddDimensionGroupResponse'{..}+ = object+ (catMaybes+ [("dimensionGroups" .=) <$> _adgrDimensionGroups])++-- | 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])++-- | The response when updating a range of values in a spreadsheet.+--+-- /See:/ 'batchUpdateValuesByDataFilterResponse' smart constructor.+data BatchUpdateValuesByDataFilterResponse =+ BatchUpdateValuesByDataFilterResponse'+ { _buvbdfrTotalUpdatedColumns :: !(Maybe (Textual Int32))+ , _buvbdfrResponses :: !(Maybe [UpdateValuesByDataFilterResponse])+ , _buvbdfrSpreadsheetId :: !(Maybe Text)+ , _buvbdfrTotalUpdatedSheets :: !(Maybe (Textual Int32))+ , _buvbdfrTotalUpdatedCells :: !(Maybe (Textual Int32))+ , _buvbdfrTotalUpdatedRows :: !(Maybe (Textual Int32))+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BatchUpdateValuesByDataFilterResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'buvbdfrTotalUpdatedColumns'+--+-- * 'buvbdfrResponses'+--+-- * 'buvbdfrSpreadsheetId'+--+-- * 'buvbdfrTotalUpdatedSheets'+--+-- * 'buvbdfrTotalUpdatedCells'+--+-- * 'buvbdfrTotalUpdatedRows'+batchUpdateValuesByDataFilterResponse+ :: BatchUpdateValuesByDataFilterResponse+batchUpdateValuesByDataFilterResponse =+ BatchUpdateValuesByDataFilterResponse'+ { _buvbdfrTotalUpdatedColumns = Nothing+ , _buvbdfrResponses = Nothing+ , _buvbdfrSpreadsheetId = Nothing+ , _buvbdfrTotalUpdatedSheets = Nothing+ , _buvbdfrTotalUpdatedCells = Nothing+ , _buvbdfrTotalUpdatedRows = Nothing+ }+++-- | The total number of columns where at least one cell in the column was+-- updated.+buvbdfrTotalUpdatedColumns :: Lens' BatchUpdateValuesByDataFilterResponse (Maybe Int32)+buvbdfrTotalUpdatedColumns+ = lens _buvbdfrTotalUpdatedColumns+ (\ s a -> s{_buvbdfrTotalUpdatedColumns = a})+ . mapping _Coerce++-- | The response for each range updated.+buvbdfrResponses :: Lens' BatchUpdateValuesByDataFilterResponse [UpdateValuesByDataFilterResponse]+buvbdfrResponses+ = lens _buvbdfrResponses+ (\ s a -> s{_buvbdfrResponses = a})+ . _Default+ . _Coerce++-- | The spreadsheet the updates were applied to.+buvbdfrSpreadsheetId :: Lens' BatchUpdateValuesByDataFilterResponse (Maybe Text)+buvbdfrSpreadsheetId+ = lens _buvbdfrSpreadsheetId+ (\ s a -> s{_buvbdfrSpreadsheetId = a})++-- | The total number of sheets where at least one cell in the sheet was+-- updated.+buvbdfrTotalUpdatedSheets :: Lens' BatchUpdateValuesByDataFilterResponse (Maybe Int32)+buvbdfrTotalUpdatedSheets+ = lens _buvbdfrTotalUpdatedSheets+ (\ s a -> s{_buvbdfrTotalUpdatedSheets = a})+ . mapping _Coerce++-- | The total number of cells updated.+buvbdfrTotalUpdatedCells :: Lens' BatchUpdateValuesByDataFilterResponse (Maybe Int32)+buvbdfrTotalUpdatedCells+ = lens _buvbdfrTotalUpdatedCells+ (\ s a -> s{_buvbdfrTotalUpdatedCells = a})+ . mapping _Coerce++-- | The total number of rows where at least one cell in the row was updated.+buvbdfrTotalUpdatedRows :: Lens' BatchUpdateValuesByDataFilterResponse (Maybe Int32)+buvbdfrTotalUpdatedRows+ = lens _buvbdfrTotalUpdatedRows+ (\ s a -> s{_buvbdfrTotalUpdatedRows = a})+ . mapping _Coerce++instance FromJSON+ BatchUpdateValuesByDataFilterResponse+ where+ parseJSON+ = withObject "BatchUpdateValuesByDataFilterResponse"+ (\ o ->+ BatchUpdateValuesByDataFilterResponse' <$>+ (o .:? "totalUpdatedColumns") <*>+ (o .:? "responses" .!= mempty)+ <*> (o .:? "spreadsheetId")+ <*> (o .:? "totalUpdatedSheets")+ <*> (o .:? "totalUpdatedCells")+ <*> (o .:? "totalUpdatedRows"))++instance ToJSON BatchUpdateValuesByDataFilterResponse+ where+ toJSON BatchUpdateValuesByDataFilterResponse'{..}+ = object+ (catMaybes+ [("totalUpdatedColumns" .=) <$>+ _buvbdfrTotalUpdatedColumns,+ ("responses" .=) <$> _buvbdfrResponses,+ ("spreadsheetId" .=) <$> _buvbdfrSpreadsheetId,+ ("totalUpdatedSheets" .=) <$>+ _buvbdfrTotalUpdatedSheets,+ ("totalUpdatedCells" .=) <$>+ _buvbdfrTotalUpdatedCells,+ ("totalUpdatedRows" .=) <$>+ _buvbdfrTotalUpdatedRows])++-- | The response when updating a range of values in a spreadsheet.+--+-- /See:/ 'appendValuesResponse' smart constructor.+data AppendValuesResponse =+ AppendValuesResponse'+ { _avrSpreadsheetId :: !(Maybe Text)+ , _avrUpdates :: !(Maybe UpdateValuesResponse)+ , _avrTableRange :: !(Maybe Text)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AppendValuesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'avrSpreadsheetId'+--+-- * 'avrUpdates'+--+-- * 'avrTableRange'+appendValuesResponse+ :: AppendValuesResponse+appendValuesResponse =+ AppendValuesResponse'+ { _avrSpreadsheetId = Nothing+ , _avrUpdates = Nothing+ , _avrTableRange = Nothing+ }+++-- | The spreadsheet the updates were applied to.+avrSpreadsheetId :: Lens' AppendValuesResponse (Maybe Text)+avrSpreadsheetId+ = lens _avrSpreadsheetId+ (\ s a -> s{_avrSpreadsheetId = a})++-- | Information about the updates that were applied.+avrUpdates :: Lens' AppendValuesResponse (Maybe UpdateValuesResponse)+avrUpdates+ = lens _avrUpdates (\ s a -> s{_avrUpdates = a})++-- | The range (in A1 notation) of the table that values are being appended+-- to (before the values were appended). Empty if no table was found.+avrTableRange :: Lens' AppendValuesResponse (Maybe Text)+avrTableRange+ = lens _avrTableRange+ (\ s a -> s{_avrTableRange = a})++instance FromJSON AppendValuesResponse where+ parseJSON+ = withObject "AppendValuesResponse"+ (\ o ->+ AppendValuesResponse' <$>+ (o .:? "spreadsheetId") <*> (o .:? "updates") <*>+ (o .:? "tableRange"))++instance ToJSON AppendValuesResponse where+ toJSON AppendValuesResponse'{..}+ = object+ (catMaybes+ [("spreadsheetId" .=) <$> _avrSpreadsheetId,+ ("updates" .=) <$> _avrUpdates,+ ("tableRange" .=) <$> _avrTableRange])++-- | 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. Note: this proto does not carry+-- information about the absolute color space that should be used to+-- interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.).+-- By default, applications SHOULD assume the sRGB color space. 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 GFieldMask)+ }+ 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 GFieldMask)+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'+ { _bTargetAxis :: !(Maybe BasicChartSeriesTargetAxis)+ , _bColor :: !(Maybe Color)+ , _bSeries :: !(Maybe ChartData)+ , _bType :: !(Maybe BasicChartSeriesType)+ , _bLineStyle :: !(Maybe LineStyle)+ }+ 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:+--+-- * 'bTargetAxis'+--+-- * 'bColor'+--+-- * 'bSeries'+--+-- * 'bType'+--+-- * 'bLineStyle'+basicChartSeries+ :: BasicChartSeries+basicChartSeries =+ BasicChartSeries'+ { _bTargetAxis = Nothing+ , _bColor = Nothing+ , _bSeries = Nothing+ , _bType = Nothing+ , _bLineStyle = 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.+bTargetAxis :: Lens' BasicChartSeries (Maybe BasicChartSeriesTargetAxis)+bTargetAxis+ = lens _bTargetAxis (\ s a -> s{_bTargetAxis = a})++-- | The color for elements (i.e. bars, lines, points) associated with this+-- series. If empty, a default color is used.+bColor :: Lens' BasicChartSeries (Maybe Color)+bColor = lens _bColor (\ s a -> s{_bColor = a})++-- | The data being visualized in this chart series.+bSeries :: Lens' BasicChartSeries (Maybe ChartData)+bSeries = lens _bSeries (\ s a -> s{_bSeries = 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.+bType :: Lens' BasicChartSeries (Maybe BasicChartSeriesType)+bType = lens _bType (\ s a -> s{_bType = a})++-- | The line style of this series. Valid only if the chartType is AREA,+-- LINE, or SCATTER. COMBO charts are also supported if the series chart+-- type is AREA or LINE.+bLineStyle :: Lens' BasicChartSeries (Maybe LineStyle)+bLineStyle+ = lens _bLineStyle (\ s a -> s{_bLineStyle = a})++instance FromJSON BasicChartSeries where+ parseJSON+ = withObject "BasicChartSeries"+ (\ o ->+ BasicChartSeries' <$>+ (o .:? "targetAxis") <*> (o .:? "color") <*>+ (o .:? "series")+ <*> (o .:? "type")+ <*> (o .:? "lineStyle"))++instance ToJSON BasicChartSeries where+ toJSON BasicChartSeries'{..}+ = object+ (catMaybes+ [("targetAxis" .=) <$> _bTargetAxis,+ ("color" .=) <$> _bColor, ("series" .=) <$> _bSeries,+ ("type" .=) <$> _bType,+ ("lineStyle" .=) <$> _bLineStyle])++-- | An optional setting on a PivotGroup that defines buckets for the values+-- in the source data column rather than breaking out each individual+-- value. Only one PivotGroup with a group rule may be added for each+-- column in the source data, though on any given column you may add both a+-- PivotGroup that has a rule and a PivotGroup that does not.+--+-- /See:/ 'pivotGroupRule' smart constructor.+data PivotGroupRule =+ PivotGroupRule'+ { _pgrDateTimeRule :: !(Maybe DateTimeRule)+ , _pgrManualRule :: !(Maybe ManualRule)+ , _pgrHistogramRule :: !(Maybe HistogramRule)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PivotGroupRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pgrDateTimeRule'+--+-- * 'pgrManualRule'+--+-- * 'pgrHistogramRule'+pivotGroupRule+ :: PivotGroupRule+pivotGroupRule =+ PivotGroupRule'+ { _pgrDateTimeRule = Nothing+ , _pgrManualRule = Nothing+ , _pgrHistogramRule = Nothing+ }+++-- | A DateTimeRule.+pgrDateTimeRule :: Lens' PivotGroupRule (Maybe DateTimeRule)+pgrDateTimeRule+ = lens _pgrDateTimeRule+ (\ s a -> s{_pgrDateTimeRule = a})++-- | A ManualRule.+pgrManualRule :: Lens' PivotGroupRule (Maybe ManualRule)+pgrManualRule+ = lens _pgrManualRule+ (\ s a -> s{_pgrManualRule = a})++-- | A HistogramRule.+pgrHistogramRule :: Lens' PivotGroupRule (Maybe HistogramRule)+pgrHistogramRule+ = lens _pgrHistogramRule+ (\ s a -> s{_pgrHistogramRule = a})++instance FromJSON PivotGroupRule where+ parseJSON+ = withObject "PivotGroupRule"+ (\ o ->+ PivotGroupRule' <$>+ (o .:? "dateTimeRule") <*> (o .:? "manualRule") <*>+ (o .:? "histogramRule"))++instance ToJSON PivotGroupRule where+ toJSON PivotGroupRule'{..}+ = object+ (catMaybes+ [("dateTimeRule" .=) <$> _pgrDateTimeRule,+ ("manualRule" .=) <$> _pgrManualRule,+ ("histogramRule" .=) <$> _pgrHistogramRule])++-- | 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. The protectedRangeId field is optional;+-- if one is not set, an id will be randomly generated. (It is an error to+-- specify the ID of a range that already exists.)+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 GFieldMask)+ }+ 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 GFieldMask)+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 is parsed as if the user+-- typed into a cell. Formulas are supported (and must begin with an \`=\`+-- or a \'+\').+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])++-- | The request for clearing a range of values in a spreadsheet.+--+-- /See:/ 'clearValuesRequest' smart constructor.+data ClearValuesRequest =+ ClearValuesRequest'+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClearValuesRequest' with the minimum fields required to make a request.+--+clearValuesRequest+ :: ClearValuesRequest+clearValuesRequest = ClearValuesRequest'+++instance FromJSON ClearValuesRequest where+ parseJSON+ = withObject "ClearValuesRequest"+ (\ o -> pure ClearValuesRequest')++instance ToJSON ClearValuesRequest where+ toJSON = const emptyObject++-- | 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])++-- | The request for retrieving a range of values in a spreadsheet selected+-- by a set of DataFilters.+--+-- /See:/ 'batchGetValuesByDataFilterRequest' smart constructor.+data BatchGetValuesByDataFilterRequest =+ BatchGetValuesByDataFilterRequest'+ { _bgvbdfrValueRenderOption :: !(Maybe BatchGetValuesByDataFilterRequestValueRenderOption)+ , _bgvbdfrDataFilters :: !(Maybe [DataFilter])+ , _bgvbdfrDateTimeRenderOption :: !(Maybe BatchGetValuesByDataFilterRequestDateTimeRenderOption)+ , _bgvbdfrMajorDimension :: !(Maybe BatchGetValuesByDataFilterRequestMajorDimension)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BatchGetValuesByDataFilterRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bgvbdfrValueRenderOption'+--+-- * 'bgvbdfrDataFilters'+--+-- * 'bgvbdfrDateTimeRenderOption'+--+-- * 'bgvbdfrMajorDimension'+batchGetValuesByDataFilterRequest+ :: BatchGetValuesByDataFilterRequest+batchGetValuesByDataFilterRequest =+ BatchGetValuesByDataFilterRequest'+ { _bgvbdfrValueRenderOption = Nothing+ , _bgvbdfrDataFilters = Nothing+ , _bgvbdfrDateTimeRenderOption = Nothing+ , _bgvbdfrMajorDimension = Nothing+ }+++-- | How values should be represented in the output. The default render+-- option is ValueRenderOption.FORMATTED_VALUE.+bgvbdfrValueRenderOption :: Lens' BatchGetValuesByDataFilterRequest (Maybe BatchGetValuesByDataFilterRequestValueRenderOption)+bgvbdfrValueRenderOption+ = lens _bgvbdfrValueRenderOption+ (\ s a -> s{_bgvbdfrValueRenderOption = a})++-- | The data filters used to match the ranges of values to retrieve. Ranges+-- that match any of the specified data filters will be included in the+-- response.+bgvbdfrDataFilters :: Lens' BatchGetValuesByDataFilterRequest [DataFilter]+bgvbdfrDataFilters+ = lens _bgvbdfrDataFilters+ (\ s a -> s{_bgvbdfrDataFilters = a})+ . _Default+ . _Coerce++-- | How dates, times, and durations should be represented in the output.+-- This is ignored if value_render_option is FORMATTED_VALUE. The default+-- dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].+bgvbdfrDateTimeRenderOption :: Lens' BatchGetValuesByDataFilterRequest (Maybe BatchGetValuesByDataFilterRequestDateTimeRenderOption)+bgvbdfrDateTimeRenderOption+ = lens _bgvbdfrDateTimeRenderOption+ (\ s a -> s{_bgvbdfrDateTimeRenderOption = a})++-- | The major dimension that results should use. For example, if the+-- spreadsheet data is: \`A1=1,B1=2,A2=3,B2=4\`, then a request that+-- selects that range and sets \`majorDimension=ROWS\` will return+-- \`[[1,2],[3,4]]\`, whereas a request that sets+-- \`majorDimension=COLUMNS\` will return \`[[1,3],[2,4]]\`.+bgvbdfrMajorDimension :: Lens' BatchGetValuesByDataFilterRequest (Maybe BatchGetValuesByDataFilterRequestMajorDimension)+bgvbdfrMajorDimension+ = lens _bgvbdfrMajorDimension+ (\ s a -> s{_bgvbdfrMajorDimension = a})++instance FromJSON BatchGetValuesByDataFilterRequest+ where+ parseJSON+ = withObject "BatchGetValuesByDataFilterRequest"+ (\ o ->+ BatchGetValuesByDataFilterRequest' <$>+ (o .:? "valueRenderOption") <*>+ (o .:? "dataFilters" .!= mempty)+ <*> (o .:? "dateTimeRenderOption")+ <*> (o .:? "majorDimension"))++instance ToJSON BatchGetValuesByDataFilterRequest+ where+ toJSON BatchGetValuesByDataFilterRequest'{..}+ = object+ (catMaybes+ [("valueRenderOption" .=) <$>+ _bgvbdfrValueRenderOption,+ ("dataFilters" .=) <$> _bgvbdfrDataFilters,+ ("dateTimeRenderOption" .=) <$>+ _bgvbdfrDateTimeRenderOption,+ ("majorDimension" .=) <$> _bgvbdfrMajorDimension])++-- | 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 custom subtotal column for a waterfall chart series.+--+-- /See:/ 'waterfallChartCustomSubtotal' smart constructor.+data WaterfallChartCustomSubtotal =+ WaterfallChartCustomSubtotal'+ { _wccsDataIsSubtotal :: !(Maybe Bool)+ , _wccsSubtotalIndex :: !(Maybe (Textual Int32))+ , _wccsLabel :: !(Maybe Text)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'WaterfallChartCustomSubtotal' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wccsDataIsSubtotal'+--+-- * 'wccsSubtotalIndex'+--+-- * 'wccsLabel'+waterfallChartCustomSubtotal+ :: WaterfallChartCustomSubtotal+waterfallChartCustomSubtotal =+ WaterfallChartCustomSubtotal'+ { _wccsDataIsSubtotal = Nothing+ , _wccsSubtotalIndex = Nothing+ , _wccsLabel = Nothing+ }+++-- | True if the data point at subtotal_index is the subtotal. If false, the+-- subtotal will be computed and appear after the data point.+wccsDataIsSubtotal :: Lens' WaterfallChartCustomSubtotal (Maybe Bool)+wccsDataIsSubtotal+ = lens _wccsDataIsSubtotal+ (\ s a -> s{_wccsDataIsSubtotal = a})++-- | The 0-based index of a data point within the series. If data_is_subtotal+-- is true, the data point at this index is the subtotal. Otherwise, the+-- subtotal appears after the data point with this index. A series can have+-- multiple subtotals at arbitrary indices, but subtotals do not affect the+-- indices of the data points. For example, if a series has three data+-- points, their indices will always be 0, 1, and 2, regardless of how many+-- subtotals exist on the series or what data points they are associated+-- with.+wccsSubtotalIndex :: Lens' WaterfallChartCustomSubtotal (Maybe Int32)+wccsSubtotalIndex+ = lens _wccsSubtotalIndex+ (\ s a -> s{_wccsSubtotalIndex = a})+ . mapping _Coerce++-- | A label for the subtotal column.+wccsLabel :: Lens' WaterfallChartCustomSubtotal (Maybe Text)+wccsLabel+ = lens _wccsLabel (\ s a -> s{_wccsLabel = a})++instance FromJSON WaterfallChartCustomSubtotal where+ parseJSON+ = withObject "WaterfallChartCustomSubtotal"+ (\ o ->+ WaterfallChartCustomSubtotal' <$>+ (o .:? "dataIsSubtotal") <*> (o .:? "subtotalIndex")+ <*> (o .:? "label"))++instance ToJSON WaterfallChartCustomSubtotal where+ toJSON WaterfallChartCustomSubtotal'{..}+ = object+ (catMaybes+ [("dataIsSubtotal" .=) <$> _wccsDataIsSubtotal,+ ("subtotalIndex" .=) <$> _wccsSubtotalIndex,+ ("label" .=) <$> _wccsLabel])++-- | A single response from an update.+--+-- /See:/ 'response' smart constructor.+data Response =+ Response'+ { _rAddFilterView :: !(Maybe AddFilterViewResponse)+ , _rCreateDeveloperMetadata :: !(Maybe CreateDeveloperMetadataResponse)+ , _rDuplicateFilterView :: !(Maybe DuplicateFilterViewResponse)+ , _rUpdateEmbeddedObjectPosition :: !(Maybe UpdateEmbeddedObjectPositionResponse)+ , _rDeleteDimensionGroup :: !(Maybe DeleteDimensionGroupResponse)+ , _rAddSheet :: !(Maybe AddSheetResponse)+ , _rFindReplace :: !(Maybe FindReplaceResponse)+ , _rAddProtectedRange :: !(Maybe AddProtectedRangeResponse)+ , _rDeleteConditionalFormatRule :: !(Maybe DeleteConditionalFormatRuleResponse)+ , _rUpdateConditionalFormatRule :: !(Maybe UpdateConditionalFormatRuleResponse)+ , _rDeleteDeveloperMetadata :: !(Maybe DeleteDeveloperMetadataResponse)+ , _rUpdateDeveloperMetadata :: !(Maybe UpdateDeveloperMetadataResponse)+ , _rAddNamedRange :: !(Maybe AddNamedRangeResponse)+ , _rAddChart :: !(Maybe AddChartResponse)+ , _rAddBanding :: !(Maybe AddBandingResponse)+ , _rDuplicateSheet :: !(Maybe DuplicateSheetResponse)+ , _rAddDimensionGroup :: !(Maybe AddDimensionGroupResponse)+ }+ 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'+--+-- * 'rCreateDeveloperMetadata'+--+-- * 'rDuplicateFilterView'+--+-- * 'rUpdateEmbeddedObjectPosition'+--+-- * 'rDeleteDimensionGroup'+--+-- * 'rAddSheet'+--+-- * 'rFindReplace'+--+-- * 'rAddProtectedRange'+--+-- * 'rDeleteConditionalFormatRule'+--+-- * 'rUpdateConditionalFormatRule'+--+-- * 'rDeleteDeveloperMetadata'+--+-- * 'rUpdateDeveloperMetadata'+--+-- * 'rAddNamedRange'+--+-- * 'rAddChart'+--+-- * 'rAddBanding'+--+-- * 'rDuplicateSheet'+--+-- * 'rAddDimensionGroup'+response+ :: Response+response =+ Response'+ { _rAddFilterView = Nothing+ , _rCreateDeveloperMetadata = Nothing+ , _rDuplicateFilterView = Nothing+ , _rUpdateEmbeddedObjectPosition = Nothing+ , _rDeleteDimensionGroup = Nothing+ , _rAddSheet = Nothing+ , _rFindReplace = Nothing+ , _rAddProtectedRange = Nothing+ , _rDeleteConditionalFormatRule = Nothing+ , _rUpdateConditionalFormatRule = Nothing+ , _rDeleteDeveloperMetadata = Nothing+ , _rUpdateDeveloperMetadata = Nothing+ , _rAddNamedRange = Nothing+ , _rAddChart = Nothing+ , _rAddBanding = Nothing+ , _rDuplicateSheet = Nothing+ , _rAddDimensionGroup = Nothing+ }+++-- | A reply from adding a filter view.+rAddFilterView :: Lens' Response (Maybe AddFilterViewResponse)+rAddFilterView+ = lens _rAddFilterView+ (\ s a -> s{_rAddFilterView = a})++-- | A reply from creating a developer metadata entry.+rCreateDeveloperMetadata :: Lens' Response (Maybe CreateDeveloperMetadataResponse)+rCreateDeveloperMetadata+ = lens _rCreateDeveloperMetadata+ (\ s a -> s{_rCreateDeveloperMetadata = 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 deleting a dimension group.+rDeleteDimensionGroup :: Lens' Response (Maybe DeleteDimensionGroupResponse)+rDeleteDimensionGroup+ = lens _rDeleteDimensionGroup+ (\ s a -> s{_rDeleteDimensionGroup = 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 deleting a developer metadata entry.+rDeleteDeveloperMetadata :: Lens' Response (Maybe DeleteDeveloperMetadataResponse)+rDeleteDeveloperMetadata+ = lens _rDeleteDeveloperMetadata+ (\ s a -> s{_rDeleteDeveloperMetadata = a})++-- | A reply from updating a developer metadata entry.+rUpdateDeveloperMetadata :: Lens' Response (Maybe UpdateDeveloperMetadataResponse)+rUpdateDeveloperMetadata+ = lens _rUpdateDeveloperMetadata+ (\ s a -> s{_rUpdateDeveloperMetadata = 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 adding a banded range.+rAddBanding :: Lens' Response (Maybe AddBandingResponse)+rAddBanding+ = lens _rAddBanding (\ s a -> s{_rAddBanding = a})++-- | A reply from duplicating a sheet.+rDuplicateSheet :: Lens' Response (Maybe DuplicateSheetResponse)+rDuplicateSheet+ = lens _rDuplicateSheet+ (\ s a -> s{_rDuplicateSheet = a})++-- | A reply from adding a dimension group.+rAddDimensionGroup :: Lens' Response (Maybe AddDimensionGroupResponse)+rAddDimensionGroup+ = lens _rAddDimensionGroup+ (\ s a -> s{_rAddDimensionGroup = a})++instance FromJSON Response where+ parseJSON+ = withObject "Response"+ (\ o ->+ Response' <$>+ (o .:? "addFilterView") <*>+ (o .:? "createDeveloperMetadata")+ <*> (o .:? "duplicateFilterView")+ <*> (o .:? "updateEmbeddedObjectPosition")+ <*> (o .:? "deleteDimensionGroup")+ <*> (o .:? "addSheet")+ <*> (o .:? "findReplace")+ <*> (o .:? "addProtectedRange")+ <*> (o .:? "deleteConditionalFormatRule")+ <*> (o .:? "updateConditionalFormatRule")+ <*> (o .:? "deleteDeveloperMetadata")+ <*> (o .:? "updateDeveloperMetadata")+ <*> (o .:? "addNamedRange")+ <*> (o .:? "addChart")+ <*> (o .:? "addBanding")+ <*> (o .:? "duplicateSheet")+ <*> (o .:? "addDimensionGroup"))++instance ToJSON Response where+ toJSON Response'{..}+ = object+ (catMaybes+ [("addFilterView" .=) <$> _rAddFilterView,+ ("createDeveloperMetadata" .=) <$>+ _rCreateDeveloperMetadata,+ ("duplicateFilterView" .=) <$> _rDuplicateFilterView,+ ("updateEmbeddedObjectPosition" .=) <$>+ _rUpdateEmbeddedObjectPosition,+ ("deleteDimensionGroup" .=) <$>+ _rDeleteDimensionGroup,+ ("addSheet" .=) <$> _rAddSheet,+ ("findReplace" .=) <$> _rFindReplace,+ ("addProtectedRange" .=) <$> _rAddProtectedRange,+ ("deleteConditionalFormatRule" .=) <$>+ _rDeleteConditionalFormatRule,+ ("updateConditionalFormatRule" .=) <$>+ _rUpdateConditionalFormatRule,+ ("deleteDeveloperMetadata" .=) <$>+ _rDeleteDeveloperMetadata,+ ("updateDeveloperMetadata" .=) <$>+ _rUpdateDeveloperMetadata,+ ("addNamedRange" .=) <$> _rAddNamedRange,+ ("addChart" .=) <$> _rAddChart,+ ("addBanding" .=) <$> _rAddBanding,+ ("duplicateSheet" .=) <$> _rDuplicateSheet,+ ("addDimensionGroup" .=) <$> _rAddDimensionGroup])++-- | 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])++-- | A request to update properties of developer metadata. Updates the+-- properties of the developer metadata selected by the filters to the+-- values provided in the DeveloperMetadata resource. Callers must specify+-- the properties they wish to update in the fields parameter, as well as+-- specify at least one DataFilter matching the metadata they wish to+-- update.+--+-- /See:/ 'updateDeveloperMetadataRequest' smart constructor.+data UpdateDeveloperMetadataRequest =+ UpdateDeveloperMetadataRequest'+ { _udmrDataFilters :: !(Maybe [DataFilter])+ , _udmrDeveloperMetadata :: !(Maybe DeveloperMetadata)+ , _udmrFields :: !(Maybe GFieldMask)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateDeveloperMetadataRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udmrDataFilters'+--+-- * 'udmrDeveloperMetadata'+--+-- * 'udmrFields'+updateDeveloperMetadataRequest+ :: UpdateDeveloperMetadataRequest+updateDeveloperMetadataRequest =+ UpdateDeveloperMetadataRequest'+ { _udmrDataFilters = Nothing+ , _udmrDeveloperMetadata = Nothing+ , _udmrFields = Nothing+ }+++-- | The filters matching the developer metadata entries to update.+udmrDataFilters :: Lens' UpdateDeveloperMetadataRequest [DataFilter]+udmrDataFilters+ = lens _udmrDataFilters+ (\ s a -> s{_udmrDataFilters = a})+ . _Default+ . _Coerce++-- | The value that all metadata matched by the data filters will be updated+-- to.+udmrDeveloperMetadata :: Lens' UpdateDeveloperMetadataRequest (Maybe DeveloperMetadata)+udmrDeveloperMetadata+ = lens _udmrDeveloperMetadata+ (\ s a -> s{_udmrDeveloperMetadata = a})++-- | The fields that should be updated. At least one field must be specified.+-- The root \`developerMetadata\` is implied and should not be specified. A+-- single \`\"*\"\` can be used as short-hand for listing every field.+udmrFields :: Lens' UpdateDeveloperMetadataRequest (Maybe GFieldMask)+udmrFields+ = lens _udmrFields (\ s a -> s{_udmrFields = a})++instance FromJSON UpdateDeveloperMetadataRequest+ where+ parseJSON+ = withObject "UpdateDeveloperMetadataRequest"+ (\ o ->+ UpdateDeveloperMetadataRequest' <$>+ (o .:? "dataFilters" .!= mempty) <*>+ (o .:? "developerMetadata")+ <*> (o .:? "fields"))++instance ToJSON UpdateDeveloperMetadataRequest where+ toJSON UpdateDeveloperMetadataRequest'{..}+ = object+ (catMaybes+ [("dataFilters" .=) <$> _udmrDataFilters,+ ("developerMetadata" .=) <$> _udmrDeveloperMetadata,+ ("fields" .=) <$> _udmrFields])++-- | A request to delete developer metadata.+--+-- /See:/ 'deleteDeveloperMetadataRequest' smart constructor.+newtype DeleteDeveloperMetadataRequest =+ DeleteDeveloperMetadataRequest'+ { _ddmrDataFilter :: Maybe DataFilter+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteDeveloperMetadataRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddmrDataFilter'+deleteDeveloperMetadataRequest+ :: DeleteDeveloperMetadataRequest+deleteDeveloperMetadataRequest =+ DeleteDeveloperMetadataRequest' {_ddmrDataFilter = Nothing}+++-- | The data filter describing the criteria used to select which developer+-- metadata entry to delete.+ddmrDataFilter :: Lens' DeleteDeveloperMetadataRequest (Maybe DataFilter)+ddmrDataFilter+ = lens _ddmrDataFilter+ (\ s a -> s{_ddmrDataFilter = a})++instance FromJSON DeleteDeveloperMetadataRequest+ where+ parseJSON+ = withObject "DeleteDeveloperMetadataRequest"+ (\ o ->+ DeleteDeveloperMetadataRequest' <$>+ (o .:? "dataFilter"))++instance ToJSON DeleteDeveloperMetadataRequest where+ toJSON DeleteDeveloperMetadataRequest'{..}+ = object+ (catMaybes [("dataFilter" .=) <$> _ddmrDataFilter])++-- | A waterfall chart.+--+-- /See:/ 'waterfallChartSpec' smart constructor.+data WaterfallChartSpec =+ WaterfallChartSpec'+ { _wcsStackedType :: !(Maybe WaterfallChartSpecStackedType)+ , _wcsConnectorLineStyle :: !(Maybe LineStyle)+ , _wcsDomain :: !(Maybe WaterfallChartDomain)+ , _wcsSeries :: !(Maybe [WaterfallChartSeries])+ , _wcsHideConnectorLines :: !(Maybe Bool)+ , _wcsFirstValueIsTotal :: !(Maybe Bool)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'WaterfallChartSpec' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wcsStackedType'+--+-- * 'wcsConnectorLineStyle'+--+-- * 'wcsDomain'+--+-- * 'wcsSeries'+--+-- * 'wcsHideConnectorLines'+--+-- * 'wcsFirstValueIsTotal'+waterfallChartSpec+ :: WaterfallChartSpec+waterfallChartSpec =+ WaterfallChartSpec'+ { _wcsStackedType = Nothing+ , _wcsConnectorLineStyle = Nothing+ , _wcsDomain = Nothing+ , _wcsSeries = Nothing+ , _wcsHideConnectorLines = Nothing+ , _wcsFirstValueIsTotal = Nothing+ }+++-- | The stacked type.+wcsStackedType :: Lens' WaterfallChartSpec (Maybe WaterfallChartSpecStackedType)+wcsStackedType+ = lens _wcsStackedType+ (\ s a -> s{_wcsStackedType = a})++-- | The line style for the connector lines.+wcsConnectorLineStyle :: Lens' WaterfallChartSpec (Maybe LineStyle)+wcsConnectorLineStyle+ = lens _wcsConnectorLineStyle+ (\ s a -> s{_wcsConnectorLineStyle = a})++-- | The domain data (horizontal axis) for the waterfall chart.+wcsDomain :: Lens' WaterfallChartSpec (Maybe WaterfallChartDomain)+wcsDomain+ = lens _wcsDomain (\ s a -> s{_wcsDomain = a})++-- | The data this waterfall chart is visualizing.+wcsSeries :: Lens' WaterfallChartSpec [WaterfallChartSeries]+wcsSeries+ = lens _wcsSeries (\ s a -> s{_wcsSeries = a}) .+ _Default+ . _Coerce++-- | True to hide connector lines between columns.+wcsHideConnectorLines :: Lens' WaterfallChartSpec (Maybe Bool)+wcsHideConnectorLines+ = lens _wcsHideConnectorLines+ (\ s a -> s{_wcsHideConnectorLines = a})++-- | True to interpret the first value as a total.+wcsFirstValueIsTotal :: Lens' WaterfallChartSpec (Maybe Bool)+wcsFirstValueIsTotal+ = lens _wcsFirstValueIsTotal+ (\ s a -> s{_wcsFirstValueIsTotal = a})++instance FromJSON WaterfallChartSpec where+ parseJSON+ = withObject "WaterfallChartSpec"+ (\ o ->+ WaterfallChartSpec' <$>+ (o .:? "stackedType") <*>+ (o .:? "connectorLineStyle")+ <*> (o .:? "domain")+ <*> (o .:? "series" .!= mempty)+ <*> (o .:? "hideConnectorLines")+ <*> (o .:? "firstValueIsTotal"))++instance ToJSON WaterfallChartSpec where+ toJSON WaterfallChartSpec'{..}+ = object+ (catMaybes+ [("stackedType" .=) <$> _wcsStackedType,+ ("connectorLineStyle" .=) <$> _wcsConnectorLineStyle,+ ("domain" .=) <$> _wcsDomain,+ ("series" .=) <$> _wcsSeries,+ ("hideConnectorLines" .=) <$> _wcsHideConnectorLines,+ ("firstValueIsTotal" .=) <$> _wcsFirstValueIsTotal])++-- | 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])++-- | A location where metadata may be associated in a spreadsheet.+--+-- /See:/ 'developerMetadataLocation' smart constructor.+data DeveloperMetadataLocation =+ DeveloperMetadataLocation'+ { _dmlSpreadsheet :: !(Maybe Bool)+ , _dmlDimensionRange :: !(Maybe DimensionRange)+ , _dmlSheetId :: !(Maybe (Textual Int32))+ , _dmlLocationType :: !(Maybe DeveloperMetadataLocationLocationType)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeveloperMetadataLocation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dmlSpreadsheet'+--+-- * 'dmlDimensionRange'+--+-- * 'dmlSheetId'+--+-- * 'dmlLocationType'+developerMetadataLocation+ :: DeveloperMetadataLocation+developerMetadataLocation =+ DeveloperMetadataLocation'+ { _dmlSpreadsheet = Nothing+ , _dmlDimensionRange = Nothing+ , _dmlSheetId = Nothing+ , _dmlLocationType = Nothing+ }+++-- | True when metadata is associated with an entire spreadsheet.+dmlSpreadsheet :: Lens' DeveloperMetadataLocation (Maybe Bool)+dmlSpreadsheet+ = lens _dmlSpreadsheet+ (\ s a -> s{_dmlSpreadsheet = a})++-- | Represents the row or column when metadata is associated with a+-- dimension. The specified DimensionRange must represent a single row or+-- column; it cannot be unbounded or span multiple rows or columns.+dmlDimensionRange :: Lens' DeveloperMetadataLocation (Maybe DimensionRange)+dmlDimensionRange+ = lens _dmlDimensionRange+ (\ s a -> s{_dmlDimensionRange = a})++-- | The ID of the sheet when metadata is associated with an entire sheet.+dmlSheetId :: Lens' DeveloperMetadataLocation (Maybe Int32)+dmlSheetId+ = lens _dmlSheetId (\ s a -> s{_dmlSheetId = a}) .+ mapping _Coerce++-- | The type of location this object represents. This field is read-only.+dmlLocationType :: Lens' DeveloperMetadataLocation (Maybe DeveloperMetadataLocationLocationType)+dmlLocationType+ = lens _dmlLocationType+ (\ s a -> s{_dmlLocationType = a})++instance FromJSON DeveloperMetadataLocation where+ parseJSON+ = withObject "DeveloperMetadataLocation"+ (\ o ->+ DeveloperMetadataLocation' <$>+ (o .:? "spreadsheet") <*> (o .:? "dimensionRange")+ <*> (o .:? "sheetId")+ <*> (o .:? "locationType"))++instance ToJSON DeveloperMetadataLocation where+ toJSON DeveloperMetadataLocation'{..}+ = object+ (catMaybes+ [("spreadsheet" .=) <$> _dmlSpreadsheet,+ ("dimensionRange" .=) <$> _dmlDimensionRange,+ ("sheetId" .=) <$> _dmlSheetId,+ ("locationType" .=) <$> _dmlLocationType])++-- | 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 is added or+-- moved to the end of the sheet list. When updating sheet indices or+-- inserting sheets, movement is considered in \"before the move\" indexes.+-- For example, if there were 3 sheets (S1, S2, S3) in order to move S1+-- ahead of S2 the index would have to be set to 2. A sheet index update+-- request is ignored if the requested index is identical to the sheets+-- current index or if the requested new index is equal to the current+-- sheet index + 1.+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 GFieldMask)+ , _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 GFieldMask)+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)+ , _sprSpreadsheetURL :: !(Maybe Text)+ , _sprDeveloperMetadata :: !(Maybe [DeveloperMetadata])+ , _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'+--+-- * 'sprSpreadsheetURL'+--+-- * 'sprDeveloperMetadata'+--+-- * 'sprProperties'+spreadsheet+ :: Spreadsheet+spreadsheet =+ Spreadsheet'+ { _sprSheets = Nothing+ , _sprNamedRanges = Nothing+ , _sprSpreadsheetId = Nothing+ , _sprSpreadsheetURL = Nothing+ , _sprDeveloperMetadata = 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})++-- | The url of the spreadsheet. This field is read-only.+sprSpreadsheetURL :: Lens' Spreadsheet (Maybe Text)+sprSpreadsheetURL+ = lens _sprSpreadsheetURL+ (\ s a -> s{_sprSpreadsheetURL = a})++-- | The developer metadata associated with a spreadsheet.+sprDeveloperMetadata :: Lens' Spreadsheet [DeveloperMetadata]+sprDeveloperMetadata+ = lens _sprDeveloperMetadata+ (\ s a -> s{_sprDeveloperMetadata = a})+ . _Default+ . _Coerce++-- | 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 .:? "spreadsheetUrl")+ <*> (o .:? "developerMetadata" .!= mempty)+ <*> (o .:? "properties"))++instance ToJSON Spreadsheet where+ toJSON Spreadsheet'{..}+ = object+ (catMaybes+ [("sheets" .=) <$> _sprSheets,+ ("namedRanges" .=) <$> _sprNamedRanges,+ ("spreadsheetId" .=) <$> _sprSpreadsheetId,+ ("spreadsheetUrl" .=) <$> _sprSpreadsheetURL,+ ("developerMetadata" .=) <$> _sprDeveloperMetadata,+ ("properties" .=) <$> _sprProperties])++-- | A </chart/interactive/docs/gallery/candlestickchart candlestick chart>.+--+-- /See:/ 'candlestickChartSpec' smart constructor.+data CandlestickChartSpec =+ CandlestickChartSpec'+ { _ccsData :: !(Maybe [CandlestickData])+ , _ccsDomain :: !(Maybe CandlestickDomain)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CandlestickChartSpec' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ccsData'+--+-- * 'ccsDomain'+candlestickChartSpec+ :: CandlestickChartSpec+candlestickChartSpec =+ CandlestickChartSpec' {_ccsData = Nothing, _ccsDomain = Nothing}+++-- | The Candlestick chart data. Only one CandlestickData is supported.+ccsData :: Lens' CandlestickChartSpec [CandlestickData]+ccsData+ = lens _ccsData (\ s a -> s{_ccsData = a}) . _Default+ . _Coerce++-- | The domain data (horizontal axis) for the candlestick chart. String data+-- will be treated as discrete labels, other data will be treated as+-- continuous values.+ccsDomain :: Lens' CandlestickChartSpec (Maybe CandlestickDomain)+ccsDomain+ = lens _ccsDomain (\ s a -> s{_ccsDomain = a})++instance FromJSON CandlestickChartSpec where+ parseJSON+ = withObject "CandlestickChartSpec"+ (\ o ->+ CandlestickChartSpec' <$>+ (o .:? "data" .!= mempty) <*> (o .:? "domain"))++instance ToJSON CandlestickChartSpec where+ toJSON CandlestickChartSpec'{..}+ = object+ (catMaybes+ [("data" .=) <$> _ccsData,+ ("domain" .=) <$> _ccsDomain])++-- | 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 reply to a developer metadata search request.+--+-- /See:/ 'searchDeveloperMetadataResponse' smart constructor.+newtype SearchDeveloperMetadataResponse =+ SearchDeveloperMetadataResponse'+ { _sdmrMatchedDeveloperMetadata :: Maybe [MatchedDeveloperMetadata]+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SearchDeveloperMetadataResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdmrMatchedDeveloperMetadata'+searchDeveloperMetadataResponse+ :: SearchDeveloperMetadataResponse+searchDeveloperMetadataResponse =+ SearchDeveloperMetadataResponse' {_sdmrMatchedDeveloperMetadata = Nothing}+++-- | The metadata matching the criteria of the search request.+sdmrMatchedDeveloperMetadata :: Lens' SearchDeveloperMetadataResponse [MatchedDeveloperMetadata]+sdmrMatchedDeveloperMetadata+ = lens _sdmrMatchedDeveloperMetadata+ (\ s a -> s{_sdmrMatchedDeveloperMetadata = a})+ . _Default+ . _Coerce++instance FromJSON SearchDeveloperMetadataResponse+ where+ parseJSON+ = withObject "SearchDeveloperMetadataResponse"+ (\ o ->+ SearchDeveloperMetadataResponse' <$>+ (o .:? "matchedDeveloperMetadata" .!= mempty))++instance ToJSON SearchDeveloperMetadataResponse where+ toJSON SearchDeveloperMetadataResponse'{..}+ = object+ (catMaybes+ [("matchedDeveloperMetadata" .=) <$>+ _sdmrMatchedDeveloperMetadata])++-- | 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 are 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 in the+-- userEnteredValue.formulaValue field.)+cdHyperlink :: Lens' CellData (Maybe Text)+cdHyperlink+ = lens _cdHyperlink (\ s a -> s{_cdHyperlink = a})++-- | The effective value of the cell. For cells with formulas, this is the+-- calculated value. For cells with literals, this is 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 in order and+-- 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 domain of a waterfall chart.+--+-- /See:/ 'waterfallChartDomain' smart constructor.+data WaterfallChartDomain =+ WaterfallChartDomain'+ { _wcdReversed :: !(Maybe Bool)+ , _wcdData :: !(Maybe ChartData)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'WaterfallChartDomain' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wcdReversed'+--+-- * 'wcdData'+waterfallChartDomain+ :: WaterfallChartDomain+waterfallChartDomain =+ WaterfallChartDomain' {_wcdReversed = Nothing, _wcdData = Nothing}+++-- | True to reverse the order of the domain values (horizontal axis).+wcdReversed :: Lens' WaterfallChartDomain (Maybe Bool)+wcdReversed+ = lens _wcdReversed (\ s a -> s{_wcdReversed = a})++-- | The data of the WaterfallChartDomain.+wcdData :: Lens' WaterfallChartDomain (Maybe ChartData)+wcdData = lens _wcdData (\ s a -> s{_wcdData = a})++instance FromJSON WaterfallChartDomain where+ parseJSON+ = withObject "WaterfallChartDomain"+ (\ o ->+ WaterfallChartDomain' <$>+ (o .:? "reversed") <*> (o .:? "data"))++instance ToJSON WaterfallChartDomain where+ toJSON WaterfallChartDomain'{..}+ = object+ (catMaybes+ [("reversed" .=) <$> _wcdReversed,+ ("data" .=) <$> _wcdData])++-- | 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])++-- | Settings to control how circular dependencies are resolved with+-- iterative calculation.+--+-- /See:/ 'iterativeCalculationSettings' smart constructor.+data IterativeCalculationSettings =+ IterativeCalculationSettings'+ { _icsMaxIterations :: !(Maybe (Textual Int32))+ , _icsConvergenceThreshold :: !(Maybe (Textual Double))+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IterativeCalculationSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'icsMaxIterations'+--+-- * 'icsConvergenceThreshold'+iterativeCalculationSettings+ :: IterativeCalculationSettings+iterativeCalculationSettings =+ IterativeCalculationSettings'+ {_icsMaxIterations = Nothing, _icsConvergenceThreshold = Nothing}+++-- | When iterative calculation is enabled, the maximum number of calculation+-- rounds to perform.+icsMaxIterations :: Lens' IterativeCalculationSettings (Maybe Int32)+icsMaxIterations+ = lens _icsMaxIterations+ (\ s a -> s{_icsMaxIterations = a})+ . mapping _Coerce++-- | When iterative calculation is enabled and successive results differ by+-- less than this threshold value, the calculation rounds stop.+icsConvergenceThreshold :: Lens' IterativeCalculationSettings (Maybe Double)+icsConvergenceThreshold+ = lens _icsConvergenceThreshold+ (\ s a -> s{_icsConvergenceThreshold = a})+ . mapping _Coerce++instance FromJSON IterativeCalculationSettings where+ parseJSON+ = withObject "IterativeCalculationSettings"+ (\ o ->+ IterativeCalculationSettings' <$>+ (o .:? "maxIterations") <*>+ (o .:? "convergenceThreshold"))++instance ToJSON IterativeCalculationSettings where+ toJSON IterativeCalculationSettings'{..}+ = object+ (catMaybes+ [("maxIterations" .=) <$> _icsMaxIterations,+ ("convergenceThreshold" .=) <$>+ _icsConvergenceThreshold])++-- | The response when updating a range of values by a data filter in a+-- spreadsheet.+--+-- /See:/ 'updateValuesByDataFilterResponse' smart constructor.+data UpdateValuesByDataFilterResponse =+ UpdateValuesByDataFilterResponse'+ { _uvbdfrUpdatedCells :: !(Maybe (Textual Int32))+ , _uvbdfrUpdatedRows :: !(Maybe (Textual Int32))+ , _uvbdfrUpdatedRange :: !(Maybe Text)+ , _uvbdfrUpdatedData :: !(Maybe ValueRange)+ , _uvbdfrUpdatedColumns :: !(Maybe (Textual Int32))+ , _uvbdfrDataFilter :: !(Maybe DataFilter)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateValuesByDataFilterResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uvbdfrUpdatedCells'+--+-- * 'uvbdfrUpdatedRows'+--+-- * 'uvbdfrUpdatedRange'+--+-- * 'uvbdfrUpdatedData'+--+-- * 'uvbdfrUpdatedColumns'+--+-- * 'uvbdfrDataFilter'+updateValuesByDataFilterResponse+ :: UpdateValuesByDataFilterResponse+updateValuesByDataFilterResponse =+ UpdateValuesByDataFilterResponse'+ { _uvbdfrUpdatedCells = Nothing+ , _uvbdfrUpdatedRows = Nothing+ , _uvbdfrUpdatedRange = Nothing+ , _uvbdfrUpdatedData = Nothing+ , _uvbdfrUpdatedColumns = Nothing+ , _uvbdfrDataFilter = Nothing+ }+++-- | The number of cells updated.+uvbdfrUpdatedCells :: Lens' UpdateValuesByDataFilterResponse (Maybe Int32)+uvbdfrUpdatedCells+ = lens _uvbdfrUpdatedCells+ (\ s a -> s{_uvbdfrUpdatedCells = a})+ . mapping _Coerce++-- | The number of rows where at least one cell in the row was updated.+uvbdfrUpdatedRows :: Lens' UpdateValuesByDataFilterResponse (Maybe Int32)+uvbdfrUpdatedRows+ = lens _uvbdfrUpdatedRows+ (\ s a -> s{_uvbdfrUpdatedRows = a})+ . mapping _Coerce++-- | The range (in A1 notation) that updates were applied to.+uvbdfrUpdatedRange :: Lens' UpdateValuesByDataFilterResponse (Maybe Text)+uvbdfrUpdatedRange+ = lens _uvbdfrUpdatedRange+ (\ s a -> s{_uvbdfrUpdatedRange = a})++-- | The values of the cells in the range matched by the dataFilter after all+-- updates were applied. This is only included if the request\'s+-- \`includeValuesInResponse\` field was \`true\`.+uvbdfrUpdatedData :: Lens' UpdateValuesByDataFilterResponse (Maybe ValueRange)+uvbdfrUpdatedData+ = lens _uvbdfrUpdatedData+ (\ s a -> s{_uvbdfrUpdatedData = a})++-- | The number of columns where at least one cell in the column was updated.+uvbdfrUpdatedColumns :: Lens' UpdateValuesByDataFilterResponse (Maybe Int32)+uvbdfrUpdatedColumns+ = lens _uvbdfrUpdatedColumns+ (\ s a -> s{_uvbdfrUpdatedColumns = a})+ . mapping _Coerce++-- | The data filter that selected the range that was updated.+uvbdfrDataFilter :: Lens' UpdateValuesByDataFilterResponse (Maybe DataFilter)+uvbdfrDataFilter+ = lens _uvbdfrDataFilter+ (\ s a -> s{_uvbdfrDataFilter = a})++instance FromJSON UpdateValuesByDataFilterResponse+ where+ parseJSON+ = withObject "UpdateValuesByDataFilterResponse"+ (\ o ->+ UpdateValuesByDataFilterResponse' <$>+ (o .:? "updatedCells") <*> (o .:? "updatedRows") <*>+ (o .:? "updatedRange")+ <*> (o .:? "updatedData")+ <*> (o .:? "updatedColumns")+ <*> (o .:? "dataFilter"))++instance ToJSON UpdateValuesByDataFilterResponse+ where+ toJSON UpdateValuesByDataFilterResponse'{..}+ = object+ (catMaybes+ [("updatedCells" .=) <$> _uvbdfrUpdatedCells,+ ("updatedRows" .=) <$> _uvbdfrUpdatedRows,+ ("updatedRange" .=) <$> _uvbdfrUpdatedRange,+ ("updatedData" .=) <$> _uvbdfrUpdatedData,+ ("updatedColumns" .=) <$> _uvbdfrUpdatedColumns,+ ("dataFilter" .=) <$> _uvbdfrDataFilter])++-- | Properties of a grid.+--+-- /See:/ 'gridProperties' smart constructor.+data GridProperties =+ GridProperties'+ { _gpFrozenColumnCount :: !(Maybe (Textual Int32))+ , _gpColumnCount :: !(Maybe (Textual Int32))+ , _gpColumnGroupControlAfter :: !(Maybe Bool)+ , _gpHideGridlines :: !(Maybe Bool)+ , _gpFrozenRowCount :: !(Maybe (Textual Int32))+ , _gpRowGroupControlAfter :: !(Maybe Bool)+ , _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'+--+-- * 'gpColumnGroupControlAfter'+--+-- * 'gpHideGridlines'+--+-- * 'gpFrozenRowCount'+--+-- * 'gpRowGroupControlAfter'+--+-- * 'gpRowCount'+gridProperties+ :: GridProperties+gridProperties =+ GridProperties'+ { _gpFrozenColumnCount = Nothing+ , _gpColumnCount = Nothing+ , _gpColumnGroupControlAfter = Nothing+ , _gpHideGridlines = Nothing+ , _gpFrozenRowCount = Nothing+ , _gpRowGroupControlAfter = 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 column grouping control toggle is shown after the group.+gpColumnGroupControlAfter :: Lens' GridProperties (Maybe Bool)+gpColumnGroupControlAfter+ = lens _gpColumnGroupControlAfter+ (\ s a -> s{_gpColumnGroupControlAfter = a})++-- | 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++-- | True if the row grouping control toggle is shown after the group.+gpRowGroupControlAfter :: Lens' GridProperties (Maybe Bool)+gpRowGroupControlAfter+ = lens _gpRowGroupControlAfter+ (\ s a -> s{_gpRowGroupControlAfter = a})++-- | 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 .:? "columnGroupControlAfter")+ <*> (o .:? "hideGridlines")+ <*> (o .:? "frozenRowCount")+ <*> (o .:? "rowGroupControlAfter")+ <*> (o .:? "rowCount"))++instance ToJSON GridProperties where+ toJSON GridProperties'{..}+ = object+ (catMaybes+ [("frozenColumnCount" .=) <$> _gpFrozenColumnCount,+ ("columnCount" .=) <$> _gpColumnCount,+ ("columnGroupControlAfter" .=) <$>+ _gpColumnGroupControlAfter,+ ("hideGridlines" .=) <$> _gpHideGridlines,+ ("frozenRowCount" .=) <$> _gpFrozenRowCount,+ ("rowGroupControlAfter" .=) <$>+ _gpRowGroupControlAfter,+ ("rowCount" .=) <$> _gpRowCount])++-- | A </chart/interactive/docs/gallery/histogram histogram chart>. A+-- histogram chart groups data items into bins, displaying each bin as a+-- column of stacked items. Histograms are used to display the distribution+-- of a dataset. Each column of items represents a range into which those+-- items fall. The number of bins can be chosen automatically or specified+-- explicitly.+--+-- /See:/ 'histogramChartSpec' smart constructor.+data HistogramChartSpec =+ HistogramChartSpec'+ { _hcsLegendPosition :: !(Maybe HistogramChartSpecLegendPosition)+ , _hcsSeries :: !(Maybe [HistogramSeries])+ , _hcsShowItemDividers :: !(Maybe Bool)+ , _hcsOutlierPercentile :: !(Maybe (Textual Double))+ , _hcsBucketSize :: !(Maybe (Textual Double))+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HistogramChartSpec' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hcsLegendPosition'+--+-- * 'hcsSeries'+--+-- * 'hcsShowItemDividers'+--+-- * 'hcsOutlierPercentile'+--+-- * 'hcsBucketSize'+histogramChartSpec+ :: HistogramChartSpec+histogramChartSpec =+ HistogramChartSpec'+ { _hcsLegendPosition = Nothing+ , _hcsSeries = Nothing+ , _hcsShowItemDividers = Nothing+ , _hcsOutlierPercentile = Nothing+ , _hcsBucketSize = Nothing+ }+++-- | The position of the chart legend.+hcsLegendPosition :: Lens' HistogramChartSpec (Maybe HistogramChartSpecLegendPosition)+hcsLegendPosition+ = lens _hcsLegendPosition+ (\ s a -> s{_hcsLegendPosition = a})++-- | The series for a histogram may be either a single series of values to be+-- bucketed or multiple series, each of the same length, containing the+-- name of the series followed by the values to be bucketed for that+-- series.+hcsSeries :: Lens' HistogramChartSpec [HistogramSeries]+hcsSeries+ = lens _hcsSeries (\ s a -> s{_hcsSeries = a}) .+ _Default+ . _Coerce++-- | Whether horizontal divider lines should be displayed between items in+-- each column.+hcsShowItemDividers :: Lens' HistogramChartSpec (Maybe Bool)+hcsShowItemDividers+ = lens _hcsShowItemDividers+ (\ s a -> s{_hcsShowItemDividers = a})++-- | The outlier percentile is used to ensure that outliers do not adversely+-- affect the calculation of bucket sizes. For example, setting an outlier+-- percentile of 0.05 indicates that the top and bottom 5% of values when+-- calculating buckets. The values are still included in the chart, they+-- will be added to the first or last buckets instead of their own buckets.+-- Must be between 0.0 and 0.5.+hcsOutlierPercentile :: Lens' HistogramChartSpec (Maybe Double)+hcsOutlierPercentile+ = lens _hcsOutlierPercentile+ (\ s a -> s{_hcsOutlierPercentile = a})+ . mapping _Coerce++-- | By default the bucket size (the range of values stacked in a single+-- column) is chosen automatically, but it may be overridden here. E.g., A+-- bucket size of 1.5 results in buckets from 0 - 1.5, 1.5 - 3.0, etc.+-- Cannot be negative. This field is optional.+hcsBucketSize :: Lens' HistogramChartSpec (Maybe Double)+hcsBucketSize+ = lens _hcsBucketSize+ (\ s a -> s{_hcsBucketSize = a})+ . mapping _Coerce++instance FromJSON HistogramChartSpec where+ parseJSON+ = withObject "HistogramChartSpec"+ (\ o ->+ HistogramChartSpec' <$>+ (o .:? "legendPosition") <*>+ (o .:? "series" .!= mempty)+ <*> (o .:? "showItemDividers")+ <*> (o .:? "outlierPercentile")+ <*> (o .:? "bucketSize"))++instance ToJSON HistogramChartSpec where+ toJSON HistogramChartSpec'{..}+ = object+ (catMaybes+ [("legendPosition" .=) <$> _hcsLegendPosition,+ ("series" .=) <$> _hcsSeries,+ ("showItemDividers" .=) <$> _hcsShowItemDividers,+ ("outlierPercentile" .=) <$> _hcsOutlierPercentile,+ ("bucketSize" .=) <$> _hcsBucketSize])++-- | 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++-- | Adds a new banded range to the spreadsheet.+--+-- /See:/ 'addBandingRequest' smart constructor.+newtype AddBandingRequest =+ AddBandingRequest'+ { _abrBandedRange :: Maybe BandedRange+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AddBandingRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'abrBandedRange'+addBandingRequest+ :: AddBandingRequest+addBandingRequest = AddBandingRequest' {_abrBandedRange = Nothing}+++-- | The banded range to add. The bandedRangeId field is optional; if one is+-- not set, an id will be randomly generated. (It is an error to specify+-- the ID of a range that already exists.)+abrBandedRange :: Lens' AddBandingRequest (Maybe BandedRange)+abrBandedRange+ = lens _abrBandedRange+ (\ s a -> s{_abrBandedRange = a})++instance FromJSON AddBandingRequest where+ parseJSON+ = withObject "AddBandingRequest"+ (\ o -> AddBandingRequest' <$> (o .:? "bandedRange"))++instance ToJSON AddBandingRequest where+ toJSON AddBandingRequest'{..}+ = object+ (catMaybes [("bandedRange" .=) <$> _abrBandedRange])++-- | Updates properties of dimensions within the specified range.+--+-- /See:/ 'updateDimensionPropertiesRequest' smart constructor.+data UpdateDimensionPropertiesRequest =+ UpdateDimensionPropertiesRequest'+ { _udprRange :: !(Maybe DimensionRange)+ , _udprFields :: !(Maybe GFieldMask)+ , _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 GFieldMask)+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 are+-- 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])++-- | Selects DeveloperMetadata that matches all of the specified fields. For+-- example, if only a metadata ID is specified this considers the+-- DeveloperMetadata with that particular unique ID. If a metadata key is+-- specified, this considers all developer metadata with that key. If a+-- key, visibility, and location type are all specified, this considers all+-- developer metadata with that key and visibility that are associated with+-- a location of that type. In general, this selects all DeveloperMetadata+-- that matches the intersection of all the specified fields; any field or+-- combination of fields may be specified.+--+-- /See:/ 'developerMetadataLookup' smart constructor.+data DeveloperMetadataLookup =+ DeveloperMetadataLookup'+ { _dLocationMatchingStrategy :: !(Maybe DeveloperMetadataLookupLocationMatchingStrategy)+ , _dMetadataId :: !(Maybe (Textual Int32))+ , _dVisibility :: !(Maybe DeveloperMetadataLookupVisibility)+ , _dMetadataKey :: !(Maybe Text)+ , _dLocationType :: !(Maybe DeveloperMetadataLookupLocationType)+ , _dMetadataLocation :: !(Maybe DeveloperMetadataLocation)+ , _dMetadataValue :: !(Maybe Text)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeveloperMetadataLookup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dLocationMatchingStrategy'+--+-- * 'dMetadataId'+--+-- * 'dVisibility'+--+-- * 'dMetadataKey'+--+-- * 'dLocationType'+--+-- * 'dMetadataLocation'+--+-- * 'dMetadataValue'+developerMetadataLookup+ :: DeveloperMetadataLookup+developerMetadataLookup =+ DeveloperMetadataLookup'+ { _dLocationMatchingStrategy = Nothing+ , _dMetadataId = Nothing+ , _dVisibility = Nothing+ , _dMetadataKey = Nothing+ , _dLocationType = Nothing+ , _dMetadataLocation = Nothing+ , _dMetadataValue = Nothing+ }+++-- | Determines how this lookup matches the location. If this field is+-- specified as EXACT, only developer metadata associated on the exact+-- location specified is matched. If this field is specified to+-- INTERSECTING, developer metadata associated on intersecting locations is+-- also matched. If left unspecified, this field assumes a default value of+-- INTERSECTING. If this field is specified, a metadataLocation must also+-- be specified.+dLocationMatchingStrategy :: Lens' DeveloperMetadataLookup (Maybe DeveloperMetadataLookupLocationMatchingStrategy)+dLocationMatchingStrategy+ = lens _dLocationMatchingStrategy+ (\ s a -> s{_dLocationMatchingStrategy = a})++-- | Limits the selected developer metadata to that which has a matching+-- DeveloperMetadata.metadata_id.+dMetadataId :: Lens' DeveloperMetadataLookup (Maybe Int32)+dMetadataId+ = lens _dMetadataId (\ s a -> s{_dMetadataId = a}) .+ mapping _Coerce++-- | Limits the selected developer metadata to that which has a matching+-- DeveloperMetadata.visibility. If left unspecified, all developer+-- metadata visibile to the requesting project is considered.+dVisibility :: Lens' DeveloperMetadataLookup (Maybe DeveloperMetadataLookupVisibility)+dVisibility+ = lens _dVisibility (\ s a -> s{_dVisibility = a})++-- | Limits the selected developer metadata to that which has a matching+-- DeveloperMetadata.metadata_key.+dMetadataKey :: Lens' DeveloperMetadataLookup (Maybe Text)+dMetadataKey+ = lens _dMetadataKey (\ s a -> s{_dMetadataKey = a})++-- | Limits the selected developer metadata to those entries which are+-- associated with locations of the specified type. For example, when this+-- field is specified as ROW this lookup only considers developer metadata+-- associated on rows. If the field is left unspecified, all location types+-- are considered. This field cannot be specified as SPREADSHEET when the+-- locationMatchingStrategy is specified as INTERSECTING or when the+-- metadataLocation is specified as a non-spreadsheet location: spreadsheet+-- metadata cannot intersect any other developer metadata location. This+-- field also must be left unspecified when the locationMatchingStrategy is+-- specified as EXACT.+dLocationType :: Lens' DeveloperMetadataLookup (Maybe DeveloperMetadataLookupLocationType)+dLocationType+ = lens _dLocationType+ (\ s a -> s{_dLocationType = a})++-- | Limits the selected developer metadata to those entries associated with+-- the specified location. This field either matches exact locations or all+-- intersecting locations according the specified locationMatchingStrategy.+dMetadataLocation :: Lens' DeveloperMetadataLookup (Maybe DeveloperMetadataLocation)+dMetadataLocation+ = lens _dMetadataLocation+ (\ s a -> s{_dMetadataLocation = a})++-- | Limits the selected developer metadata to that which has a matching+-- DeveloperMetadata.metadata_value.+dMetadataValue :: Lens' DeveloperMetadataLookup (Maybe Text)+dMetadataValue+ = lens _dMetadataValue+ (\ s a -> s{_dMetadataValue = a})++instance FromJSON DeveloperMetadataLookup where+ parseJSON+ = withObject "DeveloperMetadataLookup"+ (\ o ->+ DeveloperMetadataLookup' <$>+ (o .:? "locationMatchingStrategy") <*>+ (o .:? "metadataId")+ <*> (o .:? "visibility")+ <*> (o .:? "metadataKey")+ <*> (o .:? "locationType")+ <*> (o .:? "metadataLocation")+ <*> (o .:? "metadataValue"))++instance ToJSON DeveloperMetadataLookup where+ toJSON DeveloperMetadataLookup'{..}+ = object+ (catMaybes+ [("locationMatchingStrategy" .=) <$>+ _dLocationMatchingStrategy,+ ("metadataId" .=) <$> _dMetadataId,+ ("visibility" .=) <$> _dVisibility,+ ("metadataKey" .=) <$> _dMetadataKey,+ ("locationType" .=) <$> _dLocationType,+ ("metadataLocation" .=) <$> _dMetadataLocation,+ ("metadataValue" .=) <$> _dMetadataValue])++-- | 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 rotation applied to text in a cell.+--+-- /See:/ 'textRotation' smart constructor.+data TextRotation =+ TextRotation'+ { _trAngle :: !(Maybe (Textual Int32))+ , _trVertical :: !(Maybe Bool)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TextRotation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'trAngle'+--+-- * 'trVertical'+textRotation+ :: TextRotation+textRotation = TextRotation' {_trAngle = Nothing, _trVertical = Nothing}+++-- | The angle between the standard orientation and the desired orientation.+-- Measured in degrees. Valid values are between -90 and 90. Positive+-- angles are angled upwards, negative are angled downwards. Note: For LTR+-- text direction positive angles are in the counterclockwise direction,+-- whereas for RTL they are in the clockwise direction+trAngle :: Lens' TextRotation (Maybe Int32)+trAngle+ = lens _trAngle (\ s a -> s{_trAngle = a}) .+ mapping _Coerce++-- | If true, text reads top to bottom, but the orientation of individual+-- characters is unchanged. For example: | V | | e | | r | | t | | i | | c+-- | | a | | l |+trVertical :: Lens' TextRotation (Maybe Bool)+trVertical+ = lens _trVertical (\ s a -> s{_trVertical = a})++instance FromJSON TextRotation where+ parseJSON+ = withObject "TextRotation"+ (\ o ->+ TextRotation' <$>+ (o .:? "angle") <*> (o .:? "vertical"))++instance ToJSON TextRotation where+ toJSON TextRotation'{..}+ = object+ (catMaybes+ [("angle" .=) <$> _trAngle,+ ("vertical" .=) <$> _trVertical])++-- | 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)+ , _buvrIncludeValuesInResponse :: !(Maybe Bool)+ , _buvrResponseDateTimeRenderOption :: !(Maybe BatchUpdateValuesRequestResponseDateTimeRenderOption)+ , _buvrResponseValueRenderOption :: !(Maybe BatchUpdateValuesRequestResponseValueRenderOption)+ }+ 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'+--+-- * 'buvrIncludeValuesInResponse'+--+-- * 'buvrResponseDateTimeRenderOption'+--+-- * 'buvrResponseValueRenderOption'+batchUpdateValuesRequest+ :: BatchUpdateValuesRequest+batchUpdateValuesRequest =+ BatchUpdateValuesRequest'+ { _buvrData = Nothing+ , _buvrValueInputOption = Nothing+ , _buvrIncludeValuesInResponse = Nothing+ , _buvrResponseDateTimeRenderOption = Nothing+ , _buvrResponseValueRenderOption = 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})++-- | Determines if the update response should include the values of the cells+-- that were updated. By default, responses do not include the updated+-- values. The \`updatedData\` field within each of the+-- BatchUpdateValuesResponse.responses will contain the updated values. If+-- the range to write was larger than than the range actually written, the+-- response will include all values in the requested range (excluding+-- trailing empty rows and columns).+buvrIncludeValuesInResponse :: Lens' BatchUpdateValuesRequest (Maybe Bool)+buvrIncludeValuesInResponse+ = lens _buvrIncludeValuesInResponse+ (\ s a -> s{_buvrIncludeValuesInResponse = a})++-- | Determines how dates, times, and durations in the response should be+-- rendered. This is ignored if response_value_render_option is+-- FORMATTED_VALUE. The default dateTime render option is+-- DateTimeRenderOption.SERIAL_NUMBER.+buvrResponseDateTimeRenderOption :: Lens' BatchUpdateValuesRequest (Maybe BatchUpdateValuesRequestResponseDateTimeRenderOption)+buvrResponseDateTimeRenderOption+ = lens _buvrResponseDateTimeRenderOption+ (\ s a -> s{_buvrResponseDateTimeRenderOption = a})++-- | Determines how values in the response should be rendered. The default+-- render option is ValueRenderOption.FORMATTED_VALUE.+buvrResponseValueRenderOption :: Lens' BatchUpdateValuesRequest (Maybe BatchUpdateValuesRequestResponseValueRenderOption)+buvrResponseValueRenderOption+ = lens _buvrResponseValueRenderOption+ (\ s a -> s{_buvrResponseValueRenderOption = a})++instance FromJSON BatchUpdateValuesRequest where+ parseJSON+ = withObject "BatchUpdateValuesRequest"+ (\ o ->+ BatchUpdateValuesRequest' <$>+ (o .:? "data" .!= mempty) <*>+ (o .:? "valueInputOption")+ <*> (o .:? "includeValuesInResponse")+ <*> (o .:? "responseDateTimeRenderOption")+ <*> (o .:? "responseValueRenderOption"))++instance ToJSON BatchUpdateValuesRequest where+ toJSON BatchUpdateValuesRequest'{..}+ = object+ (catMaybes+ [("data" .=) <$> _buvrData,+ ("valueInputOption" .=) <$> _buvrValueInputOption,+ ("includeValuesInResponse" .=) <$>+ _buvrIncludeValuesInResponse,+ ("responseDateTimeRenderOption" .=) <$>+ _buvrResponseDateTimeRenderOption,+ ("responseValueRenderOption" .=) <$>+ _buvrResponseValueRenderOption])++-- | A range of values whose location is specified by a DataFilter.+--+-- /See:/ 'dataFilterValueRange' smart constructor.+data DataFilterValueRange =+ DataFilterValueRange'+ { _dfvrValues :: !(Maybe [[JSONValue]])+ , _dfvrDataFilter :: !(Maybe DataFilter)+ , _dfvrMajorDimension :: !(Maybe DataFilterValueRangeMajorDimension)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DataFilterValueRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfvrValues'+--+-- * 'dfvrDataFilter'+--+-- * 'dfvrMajorDimension'+dataFilterValueRange+ :: DataFilterValueRange+dataFilterValueRange =+ DataFilterValueRange'+ { _dfvrValues = Nothing+ , _dfvrDataFilter = Nothing+ , _dfvrMajorDimension = Nothing+ }+++-- | The data to be written. If the provided values exceed any of the ranges+-- matched by the data filter then the request will fail. If the provided+-- values are less than the matched ranges only the specified values will+-- be written, existing values in the matched ranges will remain+-- unaffected.+dfvrValues :: Lens' DataFilterValueRange [[JSONValue]]+dfvrValues+ = lens _dfvrValues (\ s a -> s{_dfvrValues = a}) .+ _Default+ . _Coerce++-- | The data filter describing the location of the values in the+-- spreadsheet.+dfvrDataFilter :: Lens' DataFilterValueRange (Maybe DataFilter)+dfvrDataFilter+ = lens _dfvrDataFilter+ (\ s a -> s{_dfvrDataFilter = a})++-- | The major dimension of the values.+dfvrMajorDimension :: Lens' DataFilterValueRange (Maybe DataFilterValueRangeMajorDimension)+dfvrMajorDimension+ = lens _dfvrMajorDimension+ (\ s a -> s{_dfvrMajorDimension = a})++instance FromJSON DataFilterValueRange where+ parseJSON+ = withObject "DataFilterValueRange"+ (\ o ->+ DataFilterValueRange' <$>+ (o .:? "values" .!= mempty) <*> (o .:? "dataFilter")+ <*> (o .:? "majorDimension"))++instance ToJSON DataFilterValueRange where+ toJSON DataFilterValueRange'{..}+ = object+ (catMaybes+ [("values" .=) <$> _dfvrValues,+ ("dataFilter" .=) <$> _dfvrDataFilter,+ ("majorDimension" .=) <$> _dfvrMajorDimension])++-- | 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. The chartId field is optional; if+-- one is not set, an id will be randomly generated. (It is an error to+-- specify the ID of a chart that already exists.)+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])++-- | Allows you to manually organize the values in a source data column into+-- buckets with names of your choosing. For example, a pivot table that+-- aggregates population by state: +-------+-------------------+ | State |+-- SUM of Population | +-------+-------------------+ | AK | 0.7 | | AL |+-- 4.8 | | AR | 2.9 | ... +-------+-------------------+ could be turned+-- into a pivot table that aggregates population by time zone by providing+-- a list of groups (for example, groupName = \'Central\', items = [\'AL\',+-- \'AR\', \'IA\', ...]) to a manual group rule. Note that a similar effect+-- could be achieved by adding a time zone column to the source data and+-- adjusting the pivot table. +-----------+-------------------+ | Time Zone+-- | SUM of Population | +-----------+-------------------+ | Central |+-- 106.3 | | Eastern | 151.9 | | Mountain | 17.4 | ...+-- +-----------+-------------------++--+-- /See:/ 'manualRule' smart constructor.+newtype ManualRule =+ ManualRule'+ { _mrGroups :: Maybe [ManualRuleGroup]+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ManualRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mrGroups'+manualRule+ :: ManualRule+manualRule = ManualRule' {_mrGroups = Nothing}+++-- | The list of group names and the corresponding items from the source data+-- that map to each group name.+mrGroups :: Lens' ManualRule [ManualRuleGroup]+mrGroups+ = lens _mrGroups (\ s a -> s{_mrGroups = a}) .+ _Default+ . _Coerce++instance FromJSON ManualRule where+ parseJSON+ = withObject "ManualRule"+ (\ o -> ManualRule' <$> (o .:? "groups" .!= mempty))++instance ToJSON ManualRule where+ toJSON ManualRule'{..}+ = object (catMaybes [("groups" .=) <$> _mrGroups])++-- | Position settings for text.+--+-- /See:/ 'textPosition' smart constructor.+newtype TextPosition =+ TextPosition'+ { _tpHorizontalAlignment :: Maybe TextPositionHorizontalAlignment+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TextPosition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpHorizontalAlignment'+textPosition+ :: TextPosition+textPosition = TextPosition' {_tpHorizontalAlignment = Nothing}+++-- | Horizontal alignment setting for the piece of text.+tpHorizontalAlignment :: Lens' TextPosition (Maybe TextPositionHorizontalAlignment)+tpHorizontalAlignment+ = lens _tpHorizontalAlignment+ (\ s a -> s{_tpHorizontalAlignment = a})++instance FromJSON TextPosition where+ parseJSON+ = withObject "TextPosition"+ (\ o ->+ TextPosition' <$> (o .:? "horizontalAlignment"))++instance ToJSON TextPosition where+ toJSON TextPosition'{..}+ = object+ (catMaybes+ [("horizontalAlignment" .=) <$>+ _tpHorizontalAlignment])++-- | 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. Deprecated; the width is determined+-- by the \"style\" field.+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])++-- | A request to retrieve all developer metadata matching the set of+-- specified criteria.+--+-- /See:/ 'searchDeveloperMetadataRequest' smart constructor.+newtype SearchDeveloperMetadataRequest =+ SearchDeveloperMetadataRequest'+ { _sdmrDataFilters :: Maybe [DataFilter]+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SearchDeveloperMetadataRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdmrDataFilters'+searchDeveloperMetadataRequest+ :: SearchDeveloperMetadataRequest+searchDeveloperMetadataRequest =+ SearchDeveloperMetadataRequest' {_sdmrDataFilters = Nothing}+++-- | The data filters describing the criteria used to determine which+-- DeveloperMetadata entries to return. DeveloperMetadata matching any of+-- the specified filters will be included in the response.+sdmrDataFilters :: Lens' SearchDeveloperMetadataRequest [DataFilter]+sdmrDataFilters+ = lens _sdmrDataFilters+ (\ s a -> s{_sdmrDataFilters = a})+ . _Default+ . _Coerce++instance FromJSON SearchDeveloperMetadataRequest+ where+ parseJSON+ = withObject "SearchDeveloperMetadataRequest"+ (\ o ->+ SearchDeveloperMetadataRequest' <$>+ (o .:? "dataFilters" .!= mempty))++instance ToJSON SearchDeveloperMetadataRequest where+ toJSON SearchDeveloperMetadataRequest'{..}+ = object+ (catMaybes [("dataFilters" .=) <$> _sdmrDataFilters])++-- | The series of a CandlestickData.+--+-- /See:/ 'candlestickSeries' smart constructor.+newtype CandlestickSeries =+ CandlestickSeries'+ { _csData :: Maybe ChartData+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CandlestickSeries' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csData'+candlestickSeries+ :: CandlestickSeries+candlestickSeries = CandlestickSeries' {_csData = Nothing}+++-- | The data of the CandlestickSeries.+csData :: Lens' CandlestickSeries (Maybe ChartData)+csData = lens _csData (\ s a -> s{_csData = a})++instance FromJSON CandlestickSeries where+ parseJSON+ = withObject "CandlestickSeries"+ (\ o -> CandlestickSeries' <$> (o .:? "data"))++instance ToJSON CandlestickSeries where+ toJSON CandlestickSeries'{..}+ = object (catMaybes [("data" .=) <$> _csData])++-- | 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. The namedRangeId field is optional; if one is+-- not set, an id will be randomly generated. (It is an error to specify+-- the ID of a 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 GFieldMask)+ , _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 GFieldMask)+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 domain of a CandlestickChart.+--+-- /See:/ 'candlestickDomain' smart constructor.+data CandlestickDomain =+ CandlestickDomain'+ { _cdReversed :: !(Maybe Bool)+ , _cdData :: !(Maybe ChartData)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CandlestickDomain' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdReversed'+--+-- * 'cdData'+candlestickDomain+ :: CandlestickDomain+candlestickDomain =+ CandlestickDomain' {_cdReversed = Nothing, _cdData = Nothing}+++-- | True to reverse the order of the domain values (horizontal axis).+cdReversed :: Lens' CandlestickDomain (Maybe Bool)+cdReversed+ = lens _cdReversed (\ s a -> s{_cdReversed = a})++-- | The data of the CandlestickDomain.+cdData :: Lens' CandlestickDomain (Maybe ChartData)+cdData = lens _cdData (\ s a -> s{_cdData = a})++instance FromJSON CandlestickDomain where+ parseJSON+ = withObject "CandlestickDomain"+ (\ o ->+ CandlestickDomain' <$>+ (o .:? "reversed") <*> (o .:? "data"))++instance ToJSON CandlestickDomain where+ toJSON CandlestickDomain'{..}+ = object+ (catMaybes+ [("reversed" .=) <$> _cdReversed,+ ("data" .=) <$> _cdData])++-- | 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)+ , _pvCalculatedDisplayType :: !(Maybe PivotValueCalculatedDisplayType)+ , _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'+--+-- * 'pvCalculatedDisplayType'+--+-- * 'pvSummarizeFunction'+pivotValue+ :: PivotValue+pivotValue =+ PivotValue'+ { _pvSourceColumnOffSet = Nothing+ , _pvFormula = Nothing+ , _pvName = Nothing+ , _pvCalculatedDisplayType = 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.+pvName :: Lens' PivotValue (Maybe Text)+pvName = lens _pvName (\ s a -> s{_pvName = a})++-- | If specified, indicates that pivot values should be displayed as the+-- result of a calculation with another pivot value. For example, if+-- calculated_display_type is specified as PERCENT_OF_GRAND_TOTAL, all the+-- pivot values are displayed as the percentage of the grand total. In the+-- Sheets UI, this is referred to as \"Show As\" in the value section of a+-- pivot table.+pvCalculatedDisplayType :: Lens' PivotValue (Maybe PivotValueCalculatedDisplayType)+pvCalculatedDisplayType+ = lens _pvCalculatedDisplayType+ (\ s a -> s{_pvCalculatedDisplayType = 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 .:? "calculatedDisplayType")+ <*> (o .:? "summarizeFunction"))++instance ToJSON PivotValue where+ toJSON PivotValue'{..}+ = object+ (catMaybes+ [("sourceColumnOffset" .=) <$> _pvSourceColumnOffSet,+ ("formula" .=) <$> _pvFormula,+ ("name" .=) <$> _pvName,+ ("calculatedDisplayType" .=) <$>+ _pvCalculatedDisplayType,+ ("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])++-- | Creates a group over the specified range. If the requested range is a+-- superset of the range of an existing group G, then the depth of G is+-- incremented and this new group G\' has the depth of that group. For+-- example, a group [C:D, depth 1] + [B:E] results in groups [B:E, depth 1]+-- and [C:D, depth 2]. If the requested range is a subset of the range of+-- an existing group G, then the depth of the new group G\' becomes one+-- greater than the depth of G. For example, a group [B:E, depth 1] + [C:D]+-- results in groups [B:E, depth 1] and [C:D, depth 2]. If the requested+-- range starts before and ends within, or starts within and ends after,+-- the range of an existing group G, then the range of the existing group G+-- becomes the union of the ranges, and the new group G\' has depth one+-- greater than the depth of G and range as the intersection of the ranges.+-- For example, a group [B:D, depth 1] + [C:E] results in groups [B:E,+-- depth 1] and [C:D, depth 2].+--+-- /See:/ 'addDimensionGroupRequest' smart constructor.+newtype AddDimensionGroupRequest =+ AddDimensionGroupRequest'+ { _adgrRange :: Maybe DimensionRange+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AddDimensionGroupRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'adgrRange'+addDimensionGroupRequest+ :: AddDimensionGroupRequest+addDimensionGroupRequest = AddDimensionGroupRequest' {_adgrRange = Nothing}+++-- | The range over which to create a group.+adgrRange :: Lens' AddDimensionGroupRequest (Maybe DimensionRange)+adgrRange+ = lens _adgrRange (\ s a -> s{_adgrRange = a})++instance FromJSON AddDimensionGroupRequest where+ parseJSON+ = withObject "AddDimensionGroupRequest"+ (\ o ->+ AddDimensionGroupRequest' <$> (o .:? "range"))++instance ToJSON AddDimensionGroupRequest where+ toJSON AddDimensionGroupRequest'{..}+ = object (catMaybes [("range" .=) <$> _adgrRange])++-- | Styles for a waterfall chart column.+--+-- /See:/ 'waterfallChartColumnStyle' smart constructor.+data WaterfallChartColumnStyle =+ WaterfallChartColumnStyle'+ { _wColor :: !(Maybe Color)+ , _wLabel :: !(Maybe Text)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'WaterfallChartColumnStyle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wColor'+--+-- * 'wLabel'+waterfallChartColumnStyle+ :: WaterfallChartColumnStyle+waterfallChartColumnStyle =+ WaterfallChartColumnStyle' {_wColor = Nothing, _wLabel = Nothing}+++-- | The color of the column.+wColor :: Lens' WaterfallChartColumnStyle (Maybe Color)+wColor = lens _wColor (\ s a -> s{_wColor = a})++-- | The label of the column\'s legend.+wLabel :: Lens' WaterfallChartColumnStyle (Maybe Text)+wLabel = lens _wLabel (\ s a -> s{_wLabel = a})++instance FromJSON WaterfallChartColumnStyle where+ parseJSON+ = withObject "WaterfallChartColumnStyle"+ (\ o ->+ WaterfallChartColumnStyle' <$>+ (o .:? "color") <*> (o .:? "label"))++instance ToJSON WaterfallChartColumnStyle where+ toJSON WaterfallChartColumnStyle'{..}+ = object+ (catMaybes+ [("color" .=) <$> _wColor, ("label" .=) <$> _wLabel])++-- | The Candlestick chart data, each containing the low, open, close, and+-- high values for a series.+--+-- /See:/ 'candlestickData' smart constructor.+data CandlestickData =+ CandlestickData'+ { _cdLowSeries :: !(Maybe CandlestickSeries)+ , _cdHighSeries :: !(Maybe CandlestickSeries)+ , _cdOpenSeries :: !(Maybe CandlestickSeries)+ , _cdCloseSeries :: !(Maybe CandlestickSeries)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CandlestickData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdLowSeries'+--+-- * 'cdHighSeries'+--+-- * 'cdOpenSeries'+--+-- * 'cdCloseSeries'+candlestickData+ :: CandlestickData+candlestickData =+ CandlestickData'+ { _cdLowSeries = Nothing+ , _cdHighSeries = Nothing+ , _cdOpenSeries = Nothing+ , _cdCloseSeries = Nothing+ }+++-- | The range data (vertical axis) for the low\/minimum value for each+-- candle. This is the bottom of the candle\'s center line.+cdLowSeries :: Lens' CandlestickData (Maybe CandlestickSeries)+cdLowSeries+ = lens _cdLowSeries (\ s a -> s{_cdLowSeries = a})++-- | The range data (vertical axis) for the high\/maximum value for each+-- candle. This is the top of the candle\'s center line.+cdHighSeries :: Lens' CandlestickData (Maybe CandlestickSeries)+cdHighSeries+ = lens _cdHighSeries (\ s a -> s{_cdHighSeries = a})++-- | The range data (vertical axis) for the open\/initial value for each+-- candle. This is the bottom of the candle body. If less than the close+-- value the candle will be filled. Otherwise the candle will be hollow.+cdOpenSeries :: Lens' CandlestickData (Maybe CandlestickSeries)+cdOpenSeries+ = lens _cdOpenSeries (\ s a -> s{_cdOpenSeries = a})++-- | The range data (vertical axis) for the close\/final value for each+-- candle. This is the top of the candle body. If greater than the open+-- value the candle will be filled. Otherwise the candle will be hollow.+cdCloseSeries :: Lens' CandlestickData (Maybe CandlestickSeries)+cdCloseSeries+ = lens _cdCloseSeries+ (\ s a -> s{_cdCloseSeries = a})++instance FromJSON CandlestickData where+ parseJSON+ = withObject "CandlestickData"+ (\ o ->+ CandlestickData' <$>+ (o .:? "lowSeries") <*> (o .:? "highSeries") <*>+ (o .:? "openSeries")+ <*> (o .:? "closeSeries"))++instance ToJSON CandlestickData where+ toJSON CandlestickData'{..}+ = object+ (catMaybes+ [("lowSeries" .=) <$> _cdLowSeries,+ ("highSeries" .=) <$> _cdHighSeries,+ ("openSeries" .=) <$> _cdOpenSeries,+ ("closeSeries" .=) <$> _cdCloseSeries])++-- | A banded (alternating colors) range in a sheet.+--+-- /See:/ 'bandedRange' smart constructor.+data BandedRange =+ BandedRange'+ { _brBandedRangeId :: !(Maybe (Textual Int32))+ , _brRowProperties :: !(Maybe BandingProperties)+ , _brRange :: !(Maybe GridRange)+ , _brColumnProperties :: !(Maybe BandingProperties)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BandedRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'brBandedRangeId'+--+-- * 'brRowProperties'+--+-- * 'brRange'+--+-- * 'brColumnProperties'+bandedRange+ :: BandedRange+bandedRange =+ BandedRange'+ { _brBandedRangeId = Nothing+ , _brRowProperties = Nothing+ , _brRange = Nothing+ , _brColumnProperties = Nothing+ }+++-- | The id of the banded range.+brBandedRangeId :: Lens' BandedRange (Maybe Int32)+brBandedRangeId+ = lens _brBandedRangeId+ (\ s a -> s{_brBandedRangeId = a})+ . mapping _Coerce++-- | Properties for row bands. These properties are applied on a row-by-row+-- basis throughout all the rows in the range. At least one of+-- row_properties or column_properties must be specified.+brRowProperties :: Lens' BandedRange (Maybe BandingProperties)+brRowProperties+ = lens _brRowProperties+ (\ s a -> s{_brRowProperties = a})++-- | The range over which these properties are applied.+brRange :: Lens' BandedRange (Maybe GridRange)+brRange = lens _brRange (\ s a -> s{_brRange = a})++-- | Properties for column bands. These properties are applied on a column-+-- by-column basis throughout all the columns in the range. At least one of+-- row_properties or column_properties must be specified.+brColumnProperties :: Lens' BandedRange (Maybe BandingProperties)+brColumnProperties+ = lens _brColumnProperties+ (\ s a -> s{_brColumnProperties = a})++instance FromJSON BandedRange where+ parseJSON+ = withObject "BandedRange"+ (\ o ->+ BandedRange' <$>+ (o .:? "bandedRangeId") <*> (o .:? "rowProperties")+ <*> (o .:? "range")+ <*> (o .:? "columnProperties"))++instance ToJSON BandedRange where+ toJSON BandedRange'{..}+ = object+ (catMaybes+ [("bandedRangeId" .=) <$> _brBandedRangeId,+ ("rowProperties" .=) <$> _brRowProperties,+ ("range" .=) <$> _brRange,+ ("columnProperties" .=) <$> _brColumnProperties])++-- | 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])++-- | The request for updating more than one range of values in a spreadsheet.+--+-- /See:/ 'batchUpdateValuesByDataFilterRequest' smart constructor.+data BatchUpdateValuesByDataFilterRequest =+ BatchUpdateValuesByDataFilterRequest'+ { _buvbdfrData :: !(Maybe [DataFilterValueRange])+ , _buvbdfrValueInputOption :: !(Maybe BatchUpdateValuesByDataFilterRequestValueInputOption)+ , _buvbdfrIncludeValuesInResponse :: !(Maybe Bool)+ , _buvbdfrResponseDateTimeRenderOption :: !(Maybe BatchUpdateValuesByDataFilterRequestResponseDateTimeRenderOption)+ , _buvbdfrResponseValueRenderOption :: !(Maybe BatchUpdateValuesByDataFilterRequestResponseValueRenderOption)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BatchUpdateValuesByDataFilterRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'buvbdfrData'+--+-- * 'buvbdfrValueInputOption'+--+-- * 'buvbdfrIncludeValuesInResponse'+--+-- * 'buvbdfrResponseDateTimeRenderOption'+--+-- * 'buvbdfrResponseValueRenderOption'+batchUpdateValuesByDataFilterRequest+ :: BatchUpdateValuesByDataFilterRequest+batchUpdateValuesByDataFilterRequest =+ BatchUpdateValuesByDataFilterRequest'+ { _buvbdfrData = Nothing+ , _buvbdfrValueInputOption = Nothing+ , _buvbdfrIncludeValuesInResponse = Nothing+ , _buvbdfrResponseDateTimeRenderOption = Nothing+ , _buvbdfrResponseValueRenderOption = Nothing+ }+++-- | The new values to apply to the spreadsheet. If more than one range is+-- matched by the specified DataFilter the specified values will be applied+-- to all of those ranges.+buvbdfrData :: Lens' BatchUpdateValuesByDataFilterRequest [DataFilterValueRange]+buvbdfrData+ = lens _buvbdfrData (\ s a -> s{_buvbdfrData = a}) .+ _Default+ . _Coerce++-- | How the input data should be interpreted.+buvbdfrValueInputOption :: Lens' BatchUpdateValuesByDataFilterRequest (Maybe BatchUpdateValuesByDataFilterRequestValueInputOption)+buvbdfrValueInputOption+ = lens _buvbdfrValueInputOption+ (\ s a -> s{_buvbdfrValueInputOption = a})++-- | Determines if the update response should include the values of the cells+-- that were updated. By default, responses do not include the updated+-- values. The \`updatedData\` field within each of the+-- BatchUpdateValuesResponse.responses will contain the updated values. If+-- the range to write was larger than than the range actually written, the+-- response will include all values in the requested range (excluding+-- trailing empty rows and columns).+buvbdfrIncludeValuesInResponse :: Lens' BatchUpdateValuesByDataFilterRequest (Maybe Bool)+buvbdfrIncludeValuesInResponse+ = lens _buvbdfrIncludeValuesInResponse+ (\ s a -> s{_buvbdfrIncludeValuesInResponse = a})++-- | Determines how dates, times, and durations in the response should be+-- rendered. This is ignored if response_value_render_option is+-- FORMATTED_VALUE. The default dateTime render option is+-- DateTimeRenderOption.SERIAL_NUMBER.+buvbdfrResponseDateTimeRenderOption :: Lens' BatchUpdateValuesByDataFilterRequest (Maybe BatchUpdateValuesByDataFilterRequestResponseDateTimeRenderOption)+buvbdfrResponseDateTimeRenderOption+ = lens _buvbdfrResponseDateTimeRenderOption+ (\ s a ->+ s{_buvbdfrResponseDateTimeRenderOption = a})++-- | Determines how values in the response should be rendered. The default+-- render option is ValueRenderOption.FORMATTED_VALUE.+buvbdfrResponseValueRenderOption :: Lens' BatchUpdateValuesByDataFilterRequest (Maybe BatchUpdateValuesByDataFilterRequestResponseValueRenderOption)+buvbdfrResponseValueRenderOption+ = lens _buvbdfrResponseValueRenderOption+ (\ s a -> s{_buvbdfrResponseValueRenderOption = a})++instance FromJSON+ BatchUpdateValuesByDataFilterRequest+ where+ parseJSON+ = withObject "BatchUpdateValuesByDataFilterRequest"+ (\ o ->+ BatchUpdateValuesByDataFilterRequest' <$>+ (o .:? "data" .!= mempty) <*>+ (o .:? "valueInputOption")+ <*> (o .:? "includeValuesInResponse")+ <*> (o .:? "responseDateTimeRenderOption")+ <*> (o .:? "responseValueRenderOption"))++instance ToJSON BatchUpdateValuesByDataFilterRequest+ where+ toJSON BatchUpdateValuesByDataFilterRequest'{..}+ = object+ (catMaybes+ [("data" .=) <$> _buvbdfrData,+ ("valueInputOption" .=) <$> _buvbdfrValueInputOption,+ ("includeValuesInResponse" .=) <$>+ _buvbdfrIncludeValuesInResponse,+ ("responseDateTimeRenderOption" .=) <$>+ _buvbdfrResponseDateTimeRenderOption,+ ("responseValueRenderOption" .=) <$>+ _buvbdfrResponseValueRenderOption])++-- | 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 are+-- 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 is 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 retrieving a Spreadsheet.+--+-- /See:/ 'getSpreadsheetByDataFilterRequest' smart constructor.+data GetSpreadsheetByDataFilterRequest =+ GetSpreadsheetByDataFilterRequest'+ { _gsbdfrDataFilters :: !(Maybe [DataFilter])+ , _gsbdfrIncludeGridData :: !(Maybe Bool)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetSpreadsheetByDataFilterRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gsbdfrDataFilters'+--+-- * 'gsbdfrIncludeGridData'+getSpreadsheetByDataFilterRequest+ :: GetSpreadsheetByDataFilterRequest+getSpreadsheetByDataFilterRequest =+ GetSpreadsheetByDataFilterRequest'+ {_gsbdfrDataFilters = Nothing, _gsbdfrIncludeGridData = Nothing}+++-- | The DataFilters used to select which ranges to retrieve from the+-- spreadsheet.+gsbdfrDataFilters :: Lens' GetSpreadsheetByDataFilterRequest [DataFilter]+gsbdfrDataFilters+ = lens _gsbdfrDataFilters+ (\ s a -> s{_gsbdfrDataFilters = a})+ . _Default+ . _Coerce++-- | True if grid data should be returned. This parameter is ignored if a+-- field mask was set in the request.+gsbdfrIncludeGridData :: Lens' GetSpreadsheetByDataFilterRequest (Maybe Bool)+gsbdfrIncludeGridData+ = lens _gsbdfrIncludeGridData+ (\ s a -> s{_gsbdfrIncludeGridData = a})++instance FromJSON GetSpreadsheetByDataFilterRequest+ where+ parseJSON+ = withObject "GetSpreadsheetByDataFilterRequest"+ (\ o ->+ GetSpreadsheetByDataFilterRequest' <$>+ (o .:? "dataFilters" .!= mempty) <*>+ (o .:? "includeGridData"))++instance ToJSON GetSpreadsheetByDataFilterRequest+ where+ toJSON GetSpreadsheetByDataFilterRequest'{..}+ = object+ (catMaybes+ [("dataFilters" .=) <$> _gsbdfrDataFilters,+ ("includeGridData" .=) <$> _gsbdfrIncludeGridData])++-- | The request for updating any aspect of a spreadsheet.+--+-- /See:/ 'batchUpdateSpreadsheetRequest' smart constructor.+data BatchUpdateSpreadsheetRequest =+ BatchUpdateSpreadsheetRequest'+ { _busrResponseIncludeGridData :: !(Maybe Bool)+ , _busrResponseRanges :: !(Maybe [Text])+ , _busrRequests :: !(Maybe [Request'])+ , _busrIncludeSpreadsheetInResponse :: !(Maybe Bool)+ }+ 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:+--+-- * 'busrResponseIncludeGridData'+--+-- * 'busrResponseRanges'+--+-- * 'busrRequests'+--+-- * 'busrIncludeSpreadsheetInResponse'+batchUpdateSpreadsheetRequest+ :: BatchUpdateSpreadsheetRequest+batchUpdateSpreadsheetRequest =+ BatchUpdateSpreadsheetRequest'+ { _busrResponseIncludeGridData = Nothing+ , _busrResponseRanges = Nothing+ , _busrRequests = Nothing+ , _busrIncludeSpreadsheetInResponse = Nothing+ }+++-- | True if grid data should be returned. Meaningful only if if+-- include_spreadsheet_in_response is \'true\'. This parameter is ignored+-- if a field mask was set in the request.+busrResponseIncludeGridData :: Lens' BatchUpdateSpreadsheetRequest (Maybe Bool)+busrResponseIncludeGridData+ = lens _busrResponseIncludeGridData+ (\ s a -> s{_busrResponseIncludeGridData = a})++-- | Limits the ranges included in the response spreadsheet. Meaningful only+-- if include_spreadsheet_response is \'true\'.+busrResponseRanges :: Lens' BatchUpdateSpreadsheetRequest [Text]+busrResponseRanges+ = lens _busrResponseRanges+ (\ s a -> s{_busrResponseRanges = a})+ . _Default+ . _Coerce++-- | A list of updates to apply to the spreadsheet. Requests will be applied+-- in the order they are specified. If any request is not valid, no+-- requests will be applied.+busrRequests :: Lens' BatchUpdateSpreadsheetRequest [Request']+busrRequests+ = lens _busrRequests (\ s a -> s{_busrRequests = a})+ . _Default+ . _Coerce++-- | Determines if the update response should include the spreadsheet+-- resource.+busrIncludeSpreadsheetInResponse :: Lens' BatchUpdateSpreadsheetRequest (Maybe Bool)+busrIncludeSpreadsheetInResponse+ = lens _busrIncludeSpreadsheetInResponse+ (\ s a -> s{_busrIncludeSpreadsheetInResponse = a})++instance FromJSON BatchUpdateSpreadsheetRequest where+ parseJSON+ = withObject "BatchUpdateSpreadsheetRequest"+ (\ o ->+ BatchUpdateSpreadsheetRequest' <$>+ (o .:? "responseIncludeGridData") <*>+ (o .:? "responseRanges" .!= mempty)+ <*> (o .:? "requests" .!= mempty)+ <*> (o .:? "includeSpreadsheetInResponse"))++instance ToJSON BatchUpdateSpreadsheetRequest where+ toJSON BatchUpdateSpreadsheetRequest'{..}+ = object+ (catMaybes+ [("responseIncludeGridData" .=) <$>+ _busrResponseIncludeGridData,+ ("responseRanges" .=) <$> _busrResponseRanges,+ ("requests" .=) <$> _busrRequests,+ ("includeSpreadsheetInResponse" .=) <$>+ _busrIncludeSpreadsheetInResponse])++-- | 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)+ , _uvrUpdatedData :: !(Maybe ValueRange)+ , _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'+--+-- * 'uvrUpdatedData'+--+-- * 'uvrUpdatedColumns'+updateValuesResponse+ :: UpdateValuesResponse+updateValuesResponse =+ UpdateValuesResponse'+ { _uvrUpdatedCells = Nothing+ , _uvrSpreadsheetId = Nothing+ , _uvrUpdatedRows = Nothing+ , _uvrUpdatedRange = Nothing+ , _uvrUpdatedData = 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 values of the cells after updates were applied. This is only+-- included if the request\'s \`includeValuesInResponse\` field was+-- \`true\`.+uvrUpdatedData :: Lens' UpdateValuesResponse (Maybe ValueRange)+uvrUpdatedData+ = lens _uvrUpdatedData+ (\ s a -> s{_uvrUpdatedData = 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 .:? "updatedData")+ <*> (o .:? "updatedColumns"))++instance ToJSON UpdateValuesResponse where+ toJSON UpdateValuesResponse'{..}+ = object+ (catMaybes+ [("updatedCells" .=) <$> _uvrUpdatedCells,+ ("spreadsheetId" .=) <$> _uvrSpreadsheetId,+ ("updatedRows" .=) <$> _uvrUpdatedRows,+ ("updatedRange" .=) <$> _uvrUpdatedRange,+ ("updatedData" .=) <$> _uvrUpdatedData,+ ("updatedColumns" .=) <$> _uvrUpdatedColumns])++-- | The result of deleting a group.+--+-- /See:/ 'deleteDimensionGroupResponse' smart constructor.+newtype DeleteDimensionGroupResponse =+ DeleteDimensionGroupResponse'+ { _ddgrDimensionGroups :: Maybe [DimensionGroup]+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteDimensionGroupResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddgrDimensionGroups'+deleteDimensionGroupResponse+ :: DeleteDimensionGroupResponse+deleteDimensionGroupResponse =+ DeleteDimensionGroupResponse' {_ddgrDimensionGroups = Nothing}+++-- | All groups of a dimension after deleting a group from that dimension.+ddgrDimensionGroups :: Lens' DeleteDimensionGroupResponse [DimensionGroup]+ddgrDimensionGroups+ = lens _ddgrDimensionGroups+ (\ s a -> s{_ddgrDimensionGroups = a})+ . _Default+ . _Coerce++instance FromJSON DeleteDimensionGroupResponse where+ parseJSON+ = withObject "DeleteDimensionGroupResponse"+ (\ o ->+ DeleteDimensionGroupResponse' <$>+ (o .:? "dimensionGroups" .!= mempty))++instance ToJSON DeleteDimensionGroupResponse where+ toJSON DeleteDimensionGroupResponse'{..}+ = object+ (catMaybes+ [("dimensionGroups" .=) <$> _ddgrDimensionGroups])++-- | 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. The filterViewId field is optional; if one is not+-- set, an id will be randomly generated. (It is an error to specify the ID+-- of a filter that already exists.)+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])++-- | The response when clearing a range of values selected with DataFilters+-- in a spreadsheet.+--+-- /See:/ 'batchClearValuesByDataFilterResponse' smart constructor.+data BatchClearValuesByDataFilterResponse =+ BatchClearValuesByDataFilterResponse'+ { _bcvbdfrClearedRanges :: !(Maybe [Text])+ , _bcvbdfrSpreadsheetId :: !(Maybe Text)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BatchClearValuesByDataFilterResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcvbdfrClearedRanges'+--+-- * 'bcvbdfrSpreadsheetId'+batchClearValuesByDataFilterResponse+ :: BatchClearValuesByDataFilterResponse+batchClearValuesByDataFilterResponse =+ BatchClearValuesByDataFilterResponse'+ {_bcvbdfrClearedRanges = Nothing, _bcvbdfrSpreadsheetId = Nothing}+++-- | The ranges that were cleared, in A1 notation. (If the requests were for+-- an unbounded range or a ranger larger than the bounds of the sheet, this+-- will be the actual ranges that were cleared, bounded to the sheet\'s+-- limits.)+bcvbdfrClearedRanges :: Lens' BatchClearValuesByDataFilterResponse [Text]+bcvbdfrClearedRanges+ = lens _bcvbdfrClearedRanges+ (\ s a -> s{_bcvbdfrClearedRanges = a})+ . _Default+ . _Coerce++-- | The spreadsheet the updates were applied to.+bcvbdfrSpreadsheetId :: Lens' BatchClearValuesByDataFilterResponse (Maybe Text)+bcvbdfrSpreadsheetId+ = lens _bcvbdfrSpreadsheetId+ (\ s a -> s{_bcvbdfrSpreadsheetId = a})++instance FromJSON+ BatchClearValuesByDataFilterResponse+ where+ parseJSON+ = withObject "BatchClearValuesByDataFilterResponse"+ (\ o ->+ BatchClearValuesByDataFilterResponse' <$>+ (o .:? "clearedRanges" .!= mempty) <*>+ (o .:? "spreadsheetId"))++instance ToJSON BatchClearValuesByDataFilterResponse+ where+ toJSON BatchClearValuesByDataFilterResponse'{..}+ = object+ (catMaybes+ [("clearedRanges" .=) <$> _bcvbdfrClearedRanges,+ ("spreadsheetId" .=) <$> _bcvbdfrSpreadsheetId])++-- | A single series of data for a waterfall chart.+--+-- /See:/ 'waterfallChartSeries' smart constructor.+data WaterfallChartSeries =+ WaterfallChartSeries'+ { _wcsData :: !(Maybe ChartData)+ , _wcsCustomSubtotals :: !(Maybe [WaterfallChartCustomSubtotal])+ , _wcsNegativeColumnsStyle :: !(Maybe WaterfallChartColumnStyle)+ , _wcsHideTrailingSubtotal :: !(Maybe Bool)+ , _wcsSubtotalColumnsStyle :: !(Maybe WaterfallChartColumnStyle)+ , _wcsPositiveColumnsStyle :: !(Maybe WaterfallChartColumnStyle)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'WaterfallChartSeries' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wcsData'+--+-- * 'wcsCustomSubtotals'+--+-- * 'wcsNegativeColumnsStyle'+--+-- * 'wcsHideTrailingSubtotal'+--+-- * 'wcsSubtotalColumnsStyle'+--+-- * 'wcsPositiveColumnsStyle'+waterfallChartSeries+ :: WaterfallChartSeries+waterfallChartSeries =+ WaterfallChartSeries'+ { _wcsData = Nothing+ , _wcsCustomSubtotals = Nothing+ , _wcsNegativeColumnsStyle = Nothing+ , _wcsHideTrailingSubtotal = Nothing+ , _wcsSubtotalColumnsStyle = Nothing+ , _wcsPositiveColumnsStyle = Nothing+ }+++-- | The data being visualized in this series.+wcsData :: Lens' WaterfallChartSeries (Maybe ChartData)+wcsData = lens _wcsData (\ s a -> s{_wcsData = a})++-- | Custom subtotal columns appearing in this series. The order in which+-- subtotals are defined is not significant. Only one subtotal may be+-- defined for each data point.+wcsCustomSubtotals :: Lens' WaterfallChartSeries [WaterfallChartCustomSubtotal]+wcsCustomSubtotals+ = lens _wcsCustomSubtotals+ (\ s a -> s{_wcsCustomSubtotals = a})+ . _Default+ . _Coerce++-- | Styles for all columns in this series with negative values.+wcsNegativeColumnsStyle :: Lens' WaterfallChartSeries (Maybe WaterfallChartColumnStyle)+wcsNegativeColumnsStyle+ = lens _wcsNegativeColumnsStyle+ (\ s a -> s{_wcsNegativeColumnsStyle = a})++-- | True to hide the subtotal column from the end of the series. By default,+-- a subtotal column will appear at the end of each series. Setting this+-- field to true will hide that subtotal column for this series.+wcsHideTrailingSubtotal :: Lens' WaterfallChartSeries (Maybe Bool)+wcsHideTrailingSubtotal+ = lens _wcsHideTrailingSubtotal+ (\ s a -> s{_wcsHideTrailingSubtotal = a})++-- | Styles for all subtotal columns in this series.+wcsSubtotalColumnsStyle :: Lens' WaterfallChartSeries (Maybe WaterfallChartColumnStyle)+wcsSubtotalColumnsStyle+ = lens _wcsSubtotalColumnsStyle+ (\ s a -> s{_wcsSubtotalColumnsStyle = a})++-- | Styles for all columns in this series with positive values.+wcsPositiveColumnsStyle :: Lens' WaterfallChartSeries (Maybe WaterfallChartColumnStyle)+wcsPositiveColumnsStyle+ = lens _wcsPositiveColumnsStyle+ (\ s a -> s{_wcsPositiveColumnsStyle = a})++instance FromJSON WaterfallChartSeries where+ parseJSON+ = withObject "WaterfallChartSeries"+ (\ o ->+ WaterfallChartSeries' <$>+ (o .:? "data") <*>+ (o .:? "customSubtotals" .!= mempty)+ <*> (o .:? "negativeColumnsStyle")+ <*> (o .:? "hideTrailingSubtotal")+ <*> (o .:? "subtotalColumnsStyle")+ <*> (o .:? "positiveColumnsStyle"))++instance ToJSON WaterfallChartSeries where+ toJSON WaterfallChartSeries'{..}+ = object+ (catMaybes+ [("data" .=) <$> _wcsData,+ ("customSubtotals" .=) <$> _wcsCustomSubtotals,+ ("negativeColumnsStyle" .=) <$>+ _wcsNegativeColumnsStyle,+ ("hideTrailingSubtotal" .=) <$>+ _wcsHideTrailingSubtotal,+ ("subtotalColumnsStyle" .=) <$>+ _wcsSubtotalColumnsStyle,+ ("positiveColumnsStyle" .=) <$>+ _wcsPositiveColumnsStyle])++-- | 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 GFieldMask)+ }+ 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 GFieldMask)+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)+ , _cfTextRotation :: !(Maybe TextRotation)+ , _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'+--+-- * 'cfTextRotation'+--+-- * 'cfHyperlinkDisplayType'+--+-- * 'cfWrapStrategy'+--+-- * 'cfNumberFormat'+--+-- * 'cfTextDirection'+--+-- * 'cfTextFormat'+--+-- * 'cfHorizontalAlignment'+--+-- * 'cfPadding'+cellFormat+ :: CellFormat+cellFormat =+ CellFormat'+ { _cfBOrders = Nothing+ , _cfVerticalAlignment = Nothing+ , _cfBackgRoundColor = Nothing+ , _cfTextRotation = 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})++-- | The rotation applied to text in a cell+cfTextRotation :: Lens' CellFormat (Maybe TextRotation)+cfTextRotation+ = lens _cfTextRotation+ (\ s a -> s{_cfTextRotation = 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 .:? "textRotation")+ <*> (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,+ ("textRotation" .=) <$> _cfTextRotation,+ ("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 GFieldMask)+ }+ 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.+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 GFieldMask)+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'+ { _bcaTitleTextPosition :: !(Maybe TextPosition)+ , _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:+--+-- * 'bcaTitleTextPosition'+--+-- * 'bcaFormat'+--+-- * 'bcaTitle'+--+-- * 'bcaPosition'+basicChartAxis+ :: BasicChartAxis+basicChartAxis =+ BasicChartAxis'+ { _bcaTitleTextPosition = Nothing+ , _bcaFormat = Nothing+ , _bcaTitle = Nothing+ , _bcaPosition = Nothing+ }+++-- | The axis title text position.+bcaTitleTextPosition :: Lens' BasicChartAxis (Maybe TextPosition)+bcaTitleTextPosition+ = lens _bcaTitleTextPosition+ (\ s a -> s{_bcaTitleTextPosition = a})++-- | 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 .:? "titleTextPosition") <*> (o .:? "format") <*>+ (o .:? "title")+ <*> (o .:? "position"))++instance ToJSON BasicChartAxis where+ toJSON BasicChartAxis'{..}+ = object+ (catMaybes+ [("titleTextPosition" .=) <$> _bcaTitleTextPosition,+ ("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. See+-- the [Date and Number Formats guide](\/sheets\/api\/guides\/formats) for+-- more information about the supported patterns.+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])+ , _busrUpdatedSpreadsheet :: !(Maybe Spreadsheet)+ }+ 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'+--+-- * 'busrUpdatedSpreadsheet'+batchUpdateSpreadsheetResponse+ :: BatchUpdateSpreadsheetResponse+batchUpdateSpreadsheetResponse =+ BatchUpdateSpreadsheetResponse'+ { _busrSpreadsheetId = Nothing+ , _busrReplies = Nothing+ , _busrUpdatedSpreadsheet = 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++-- | The spreadsheet after updates were applied. This is only set if+-- [BatchUpdateSpreadsheetRequest.include_spreadsheet_in_response] is+-- \`true\`.+busrUpdatedSpreadsheet :: Lens' BatchUpdateSpreadsheetResponse (Maybe Spreadsheet)+busrUpdatedSpreadsheet+ = lens _busrUpdatedSpreadsheet+ (\ s a -> s{_busrUpdatedSpreadsheet = a})++instance FromJSON BatchUpdateSpreadsheetResponse+ where+ parseJSON+ = withObject "BatchUpdateSpreadsheetResponse"+ (\ o ->+ BatchUpdateSpreadsheetResponse' <$>+ (o .:? "spreadsheetId") <*>+ (o .:? "replies" .!= mempty)+ <*> (o .:? "updatedSpreadsheet"))++instance ToJSON BatchUpdateSpreadsheetResponse where+ toJSON BatchUpdateSpreadsheetResponse'{..}+ = object+ (catMaybes+ [("spreadsheetId" .=) <$> _busrSpreadsheetId,+ ("replies" .=) <$> _busrReplies,+ ("updatedSpreadsheet" .=) <$>+ _busrUpdatedSpreadsheet])++-- | Filter that describes what data should be selected or returned from a+-- request.+--+-- /See:/ 'dataFilter' smart constructor.+data DataFilter =+ DataFilter'+ { _dfGridRange :: !(Maybe GridRange)+ , _dfA1Range :: !(Maybe Text)+ , _dfDeveloperMetadataLookup :: !(Maybe DeveloperMetadataLookup)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DataFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfGridRange'+--+-- * 'dfA1Range'+--+-- * 'dfDeveloperMetadataLookup'+dataFilter+ :: DataFilter+dataFilter =+ DataFilter'+ { _dfGridRange = Nothing+ , _dfA1Range = Nothing+ , _dfDeveloperMetadataLookup = Nothing+ }+++-- | Selects data that matches the range described by the GridRange.+dfGridRange :: Lens' DataFilter (Maybe GridRange)+dfGridRange+ = lens _dfGridRange (\ s a -> s{_dfGridRange = a})++-- | Selects data that matches the specified A1 range.+dfA1Range :: Lens' DataFilter (Maybe Text)+dfA1Range+ = lens _dfA1Range (\ s a -> s{_dfA1Range = a})++-- | Selects data associated with the developer metadata matching the+-- criteria described by this DeveloperMetadataLookup.+dfDeveloperMetadataLookup :: Lens' DataFilter (Maybe DeveloperMetadataLookup)+dfDeveloperMetadataLookup+ = lens _dfDeveloperMetadataLookup+ (\ s a -> s{_dfDeveloperMetadataLookup = a})++instance FromJSON DataFilter where+ parseJSON+ = withObject "DataFilter"+ (\ o ->+ DataFilter' <$>+ (o .:? "gridRange") <*> (o .:? "a1Range") <*>+ (o .:? "developerMetadataLookup"))++instance ToJSON DataFilter where+ toJSON DataFilter'{..}+ = object+ (catMaybes+ [("gridRange" .=) <$> _dfGridRange,+ ("a1Range" .=) <$> _dfA1Range,+ ("developerMetadataLookup" .=) <$>+ _dfDeveloperMetadataLookup])++-- | 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])++-- | Properties referring a single dimension (either row or column). If both+-- BandedRange.row_properties and BandedRange.column_properties are set,+-- the fill colors are applied to cells according to the following rules: *+-- header_color and footer_color take priority over band colors. *+-- first_band_color takes priority over second_band_color. * row_properties+-- takes priority over column_properties. For example, the first row color+-- takes priority over the first column color, but the first column color+-- takes priority over the second row color. Similarly, the row header+-- takes priority over the column header in the top left cell, but the+-- column header takes priority over the first row color if the row header+-- is not set.+--+-- /See:/ 'bandingProperties' smart constructor.+data BandingProperties =+ BandingProperties'+ { _bpSecondBandColor :: !(Maybe Color)+ , _bpHeaderColor :: !(Maybe Color)+ , _bpFooterColor :: !(Maybe Color)+ , _bpFirstBandColor :: !(Maybe Color)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BandingProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bpSecondBandColor'+--+-- * 'bpHeaderColor'+--+-- * 'bpFooterColor'+--+-- * 'bpFirstBandColor'+bandingProperties+ :: BandingProperties+bandingProperties =+ BandingProperties'+ { _bpSecondBandColor = Nothing+ , _bpHeaderColor = Nothing+ , _bpFooterColor = Nothing+ , _bpFirstBandColor = Nothing+ }+++-- | The second color that is alternating. (Required)+bpSecondBandColor :: Lens' BandingProperties (Maybe Color)+bpSecondBandColor+ = lens _bpSecondBandColor+ (\ s a -> s{_bpSecondBandColor = a})++-- | The color of the first row or column. If this field is set, the first+-- row or column will be filled with this color and the colors will+-- alternate between first_band_color and second_band_color starting from+-- the second row or column. Otherwise, the first row or column will be+-- filled with first_band_color and the colors will proceed to alternate as+-- they normally would.+bpHeaderColor :: Lens' BandingProperties (Maybe Color)+bpHeaderColor+ = lens _bpHeaderColor+ (\ s a -> s{_bpHeaderColor = a})++-- | The color of the last row or column. If this field is not set, the last+-- row or column will be filled with either first_band_color or+-- second_band_color, depending on the color of the previous row or column.+bpFooterColor :: Lens' BandingProperties (Maybe Color)+bpFooterColor+ = lens _bpFooterColor+ (\ s a -> s{_bpFooterColor = a})++-- | The first color that is alternating. (Required)+bpFirstBandColor :: Lens' BandingProperties (Maybe Color)+bpFirstBandColor+ = lens _bpFirstBandColor+ (\ s a -> s{_bpFirstBandColor = a})++instance FromJSON BandingProperties where+ parseJSON+ = withObject "BandingProperties"+ (\ o ->+ BandingProperties' <$>+ (o .:? "secondBandColor") <*> (o .:? "headerColor")+ <*> (o .:? "footerColor")+ <*> (o .:? "firstBandColor"))++instance ToJSON BandingProperties where+ toJSON BandingProperties'{..}+ = object+ (catMaybes+ [("secondBandColor" .=) <$> _bpSecondBandColor,+ ("headerColor" .=) <$> _bpHeaderColor,+ ("footerColor" .=) <$> _bpFooterColor,+ ("firstBandColor" .=) <$> _bpFirstBandColor])++-- | 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'+ { _pgRepeatHeadings :: !(Maybe Bool)+ , _pgValueMetadata :: !(Maybe [PivotGroupValueMetadata])+ , _pgSourceColumnOffSet :: !(Maybe (Textual Int32))+ , _pgSortOrder :: !(Maybe PivotGroupSortOrder)+ , _pgShowTotals :: !(Maybe Bool)+ , _pgValueBucket :: !(Maybe PivotGroupSortValueBucket)+ , _pgLabel :: !(Maybe Text)+ , _pgGroupRule :: !(Maybe PivotGroupRule)+ }+ 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:+--+-- * 'pgRepeatHeadings'+--+-- * 'pgValueMetadata'+--+-- * 'pgSourceColumnOffSet'+--+-- * 'pgSortOrder'+--+-- * 'pgShowTotals'+--+-- * 'pgValueBucket'+--+-- * 'pgLabel'+--+-- * 'pgGroupRule'+pivotGroup+ :: PivotGroup+pivotGroup =+ PivotGroup'+ { _pgRepeatHeadings = Nothing+ , _pgValueMetadata = Nothing+ , _pgSourceColumnOffSet = Nothing+ , _pgSortOrder = Nothing+ , _pgShowTotals = Nothing+ , _pgValueBucket = Nothing+ , _pgLabel = Nothing+ , _pgGroupRule = Nothing+ }+++-- | True if the headings in this pivot group should be repeated. This is+-- only valid for row groupings and is ignored by columns. By default, we+-- minimize repitition of headings by not showing higher level headings+-- where they are the same. For example, even though the third row below+-- corresponds to \"Q1 Mar\", \"Q1\" is not shown because it is redundant+-- with previous rows. Setting repeat_headings to true would cause \"Q1\"+-- to be repeated for \"Feb\" and \"Mar\". +--------------+ | Q1 | Jan | |+-- | Feb | | | Mar | +--------+-----+ | Q1 Total | +--------------++pgRepeatHeadings :: Lens' PivotGroup (Maybe Bool)+pgRepeatHeadings+ = lens _pgRepeatHeadings+ (\ s a -> s{_pgRepeatHeadings = a})++-- | 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})++-- | The labels to use for the row\/column groups which can be customized.+-- For example, in the following pivot table, the row label is \`Region\`+-- (which could be renamed to \`State\`) and the column label is+-- \`Product\` (which could be renamed \`Item\`). Pivot tables created+-- before December 2017 do not have header labels. If you\'d like to add+-- header labels to an existing pivot table, please delete the existing+-- pivot table and then create a new pivot table with same parameters.+-- +--------------+---------+-------+ | SUM of Units | Product | | | Region+-- | Pen | Paper | +--------------+---------+-------+ | New York | 345 | 98+-- | | Oregon | 234 | 123 | | Tennessee | 531 | 415 |+-- +--------------+---------+-------+ | Grand Total | 1110 | 636 |+-- +--------------+---------+-------++pgLabel :: Lens' PivotGroup (Maybe Text)+pgLabel = lens _pgLabel (\ s a -> s{_pgLabel = a})++-- | The group rule to apply to this row\/column group.+pgGroupRule :: Lens' PivotGroup (Maybe PivotGroupRule)+pgGroupRule+ = lens _pgGroupRule (\ s a -> s{_pgGroupRule = a})++instance FromJSON PivotGroup where+ parseJSON+ = withObject "PivotGroup"+ (\ o ->+ PivotGroup' <$>+ (o .:? "repeatHeadings") <*>+ (o .:? "valueMetadata" .!= mempty)+ <*> (o .:? "sourceColumnOffset")+ <*> (o .:? "sortOrder")+ <*> (o .:? "showTotals")+ <*> (o .:? "valueBucket")+ <*> (o .:? "label")+ <*> (o .:? "groupRule"))++instance ToJSON PivotGroup where+ toJSON PivotGroup'{..}+ = object+ (catMaybes+ [("repeatHeadings" .=) <$> _pgRepeatHeadings,+ ("valueMetadata" .=) <$> _pgValueMetadata,+ ("sourceColumnOffset" .=) <$> _pgSourceColumnOffSet,+ ("sortOrder" .=) <$> _pgSortOrder,+ ("showTotals" .=) <$> _pgShowTotals,+ ("valueBucket" .=) <$> _pgValueBucket,+ ("label" .=) <$> _pgLabel,+ ("groupRule" .=) <$> _pgGroupRule])++-- | The result of adding a banded range.+--+-- /See:/ 'addBandingResponse' smart constructor.+newtype AddBandingResponse =+ AddBandingResponse'+ { _aBandedRange :: Maybe BandedRange+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AddBandingResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aBandedRange'+addBandingResponse+ :: AddBandingResponse+addBandingResponse = AddBandingResponse' {_aBandedRange = Nothing}+++-- | The banded range that was added.+aBandedRange :: Lens' AddBandingResponse (Maybe BandedRange)+aBandedRange+ = lens _aBandedRange (\ s a -> s{_aBandedRange = a})++instance FromJSON AddBandingResponse where+ parseJSON+ = withObject "AddBandingResponse"+ (\ o ->+ AddBandingResponse' <$> (o .:? "bandedRange"))++instance ToJSON AddBandingResponse where+ toJSON AddBandingResponse'{..}+ = object+ (catMaybes [("bandedRange" .=) <$> _aBandedRange])++-- | An </chart/interactive/docs/gallery/orgchart org chart>. Org charts+-- require a unique set of labels in labels and may optionally include+-- parent_labels and tooltips. parent_labels contain, for each node, the+-- label identifying the parent node. tooltips contain, for each node, an+-- optional tooltip. For example, to describe an OrgChart with Alice as the+-- CEO, Bob as the President (reporting to Alice) and Cathy as VP of Sales+-- (also reporting to Alice), have labels contain \"Alice\", \"Bob\",+-- \"Cathy\", parent_labels contain \"\", \"Alice\", \"Alice\" and tooltips+-- contain \"CEO\", \"President\", \"VP Sales\".+--+-- /See:/ 'orgChartSpec' smart constructor.+data OrgChartSpec =+ OrgChartSpec'+ { _ocsNodeColor :: !(Maybe Color)+ , _ocsNodeSize :: !(Maybe OrgChartSpecNodeSize)+ , _ocsTooltips :: !(Maybe ChartData)+ , _ocsSelectedNodeColor :: !(Maybe Color)+ , _ocsLabels :: !(Maybe ChartData)+ , _ocsParentLabels :: !(Maybe ChartData)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'OrgChartSpec' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ocsNodeColor'+--+-- * 'ocsNodeSize'+--+-- * 'ocsTooltips'+--+-- * 'ocsSelectedNodeColor'+--+-- * 'ocsLabels'+--+-- * 'ocsParentLabels'+orgChartSpec+ :: OrgChartSpec+orgChartSpec =+ OrgChartSpec'+ { _ocsNodeColor = Nothing+ , _ocsNodeSize = Nothing+ , _ocsTooltips = Nothing+ , _ocsSelectedNodeColor = Nothing+ , _ocsLabels = Nothing+ , _ocsParentLabels = Nothing+ }+++-- | The color of the org chart nodes.+ocsNodeColor :: Lens' OrgChartSpec (Maybe Color)+ocsNodeColor+ = lens _ocsNodeColor (\ s a -> s{_ocsNodeColor = a})++-- | The size of the org chart nodes.+ocsNodeSize :: Lens' OrgChartSpec (Maybe OrgChartSpecNodeSize)+ocsNodeSize+ = lens _ocsNodeSize (\ s a -> s{_ocsNodeSize = a})++-- | The data containing the tooltip for the corresponding node. A blank+-- value results in no tooltip being displayed for the node. This field is+-- optional.+ocsTooltips :: Lens' OrgChartSpec (Maybe ChartData)+ocsTooltips+ = lens _ocsTooltips (\ s a -> s{_ocsTooltips = a})++-- | The color of the selected org chart nodes.+ocsSelectedNodeColor :: Lens' OrgChartSpec (Maybe Color)+ocsSelectedNodeColor+ = lens _ocsSelectedNodeColor+ (\ s a -> s{_ocsSelectedNodeColor = a})++-- | The data containing the labels for all the nodes in the chart. Labels+-- must be unique.+ocsLabels :: Lens' OrgChartSpec (Maybe ChartData)+ocsLabels+ = lens _ocsLabels (\ s a -> s{_ocsLabels = a})++-- | The data containing the label of the parent for the corresponding node.+-- A blank value indicates that the node has no parent and is a top-level+-- node. This field is optional.+ocsParentLabels :: Lens' OrgChartSpec (Maybe ChartData)+ocsParentLabels+ = lens _ocsParentLabels+ (\ s a -> s{_ocsParentLabels = a})++instance FromJSON OrgChartSpec where+ parseJSON+ = withObject "OrgChartSpec"+ (\ o ->+ OrgChartSpec' <$>+ (o .:? "nodeColor") <*> (o .:? "nodeSize") <*>+ (o .:? "tooltips")+ <*> (o .:? "selectedNodeColor")+ <*> (o .:? "labels")+ <*> (o .:? "parentLabels"))++instance ToJSON OrgChartSpec where+ toJSON OrgChartSpec'{..}+ = object+ (catMaybes+ [("nodeColor" .=) <$> _ocsNodeColor,+ ("nodeSize" .=) <$> _ocsNodeSize,+ ("tooltips" .=) <$> _ocsTooltips,+ ("selectedNodeColor" .=) <$> _ocsSelectedNodeColor,+ ("labels" .=) <$> _ocsLabels,+ ("parentLabels" .=) <$> _ocsParentLabels])++-- | Randomizes the order of the rows in a range.+--+-- /See:/ 'randomizeRangeRequest' smart constructor.+newtype RandomizeRangeRequest =+ RandomizeRangeRequest'+ { _rrrRange :: Maybe GridRange+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RandomizeRangeRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rrrRange'+randomizeRangeRequest+ :: RandomizeRangeRequest+randomizeRangeRequest = RandomizeRangeRequest' {_rrrRange = Nothing}+++-- | The range to randomize.+rrrRange :: Lens' RandomizeRangeRequest (Maybe GridRange)+rrrRange = lens _rrrRange (\ s a -> s{_rrrRange = a})++instance FromJSON RandomizeRangeRequest where+ parseJSON+ = withObject "RandomizeRangeRequest"+ (\ o -> RandomizeRangeRequest' <$> (o .:? "range"))++instance ToJSON RandomizeRangeRequest where+ toJSON RandomizeRangeRequest'{..}+ = object (catMaybes [("range" .=) <$> _rrrRange])++-- | A histogram series containing the series color and data.+--+-- /See:/ 'histogramSeries' smart constructor.+data HistogramSeries =+ HistogramSeries'+ { _hsBarColor :: !(Maybe Color)+ , _hsData :: !(Maybe ChartData)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HistogramSeries' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hsBarColor'+--+-- * 'hsData'+histogramSeries+ :: HistogramSeries+histogramSeries = HistogramSeries' {_hsBarColor = Nothing, _hsData = Nothing}+++-- | The color of the column representing this series in each bucket. This+-- field is optional.+hsBarColor :: Lens' HistogramSeries (Maybe Color)+hsBarColor+ = lens _hsBarColor (\ s a -> s{_hsBarColor = a})++-- | The data for this histogram series.+hsData :: Lens' HistogramSeries (Maybe ChartData)+hsData = lens _hsData (\ s a -> s{_hsData = a})++instance FromJSON HistogramSeries where+ parseJSON+ = withObject "HistogramSeries"+ (\ o ->+ HistogramSeries' <$>+ (o .:? "barColor") <*> (o .:? "data"))++instance ToJSON HistogramSeries where+ toJSON HistogramSeries'{..}+ = object+ (catMaybes+ [("barColor" .=) <$> _hsBarColor,+ ("data" .=) <$> _hsData])++-- | A </chart/interactive/docs/gallery/treemap Treemap chart>.+--+-- /See:/ 'treemapChartSpec' smart constructor.+data TreemapChartSpec =+ TreemapChartSpec'+ { _tcsHintedLevels :: !(Maybe (Textual Int32))+ , _tcsMaxValue :: !(Maybe (Textual Double))+ , _tcsHeaderColor :: !(Maybe Color)+ , _tcsSizeData :: !(Maybe ChartData)+ , _tcsColorData :: !(Maybe ChartData)+ , _tcsHideTooltips :: !(Maybe Bool)+ , _tcsLevels :: !(Maybe (Textual Int32))+ , _tcsLabels :: !(Maybe ChartData)+ , _tcsColorScale :: !(Maybe TreemapChartColorScale)+ , _tcsTextFormat :: !(Maybe TextFormat)+ , _tcsMinValue :: !(Maybe (Textual Double))+ , _tcsParentLabels :: !(Maybe ChartData)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TreemapChartSpec' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tcsHintedLevels'+--+-- * 'tcsMaxValue'+--+-- * 'tcsHeaderColor'+--+-- * 'tcsSizeData'+--+-- * 'tcsColorData'+--+-- * 'tcsHideTooltips'+--+-- * 'tcsLevels'+--+-- * 'tcsLabels'+--+-- * 'tcsColorScale'+--+-- * 'tcsTextFormat'+--+-- * 'tcsMinValue'+--+-- * 'tcsParentLabels'+treemapChartSpec+ :: TreemapChartSpec+treemapChartSpec =+ TreemapChartSpec'+ { _tcsHintedLevels = Nothing+ , _tcsMaxValue = Nothing+ , _tcsHeaderColor = Nothing+ , _tcsSizeData = Nothing+ , _tcsColorData = Nothing+ , _tcsHideTooltips = Nothing+ , _tcsLevels = Nothing+ , _tcsLabels = Nothing+ , _tcsColorScale = Nothing+ , _tcsTextFormat = Nothing+ , _tcsMinValue = Nothing+ , _tcsParentLabels = Nothing+ }+++-- | The number of additional data levels beyond the labeled levels to be+-- shown on the treemap chart. These levels are not interactive and are+-- shown without their labels. Defaults to 0 if not specified.+tcsHintedLevels :: Lens' TreemapChartSpec (Maybe Int32)+tcsHintedLevels+ = lens _tcsHintedLevels+ (\ s a -> s{_tcsHintedLevels = a})+ . mapping _Coerce++-- | The maximum possible data value. Cells with values greater than this+-- will have the same color as cells with this value. If not specified,+-- defaults to the actual maximum value from color_data, or the maximum+-- value from size_data if color_data is not specified.+tcsMaxValue :: Lens' TreemapChartSpec (Maybe Double)+tcsMaxValue+ = lens _tcsMaxValue (\ s a -> s{_tcsMaxValue = a}) .+ mapping _Coerce++-- | The background color for header cells.+tcsHeaderColor :: Lens' TreemapChartSpec (Maybe Color)+tcsHeaderColor+ = lens _tcsHeaderColor+ (\ s a -> s{_tcsHeaderColor = a})++-- | The data that determines the size of each treemap data cell. This data+-- is expected to be numeric. The cells corresponding to non-numeric or+-- missing data will not be rendered. If color_data is not specified, this+-- data is used to determine data cell background colors as well.+tcsSizeData :: Lens' TreemapChartSpec (Maybe ChartData)+tcsSizeData+ = lens _tcsSizeData (\ s a -> s{_tcsSizeData = a})++-- | The data that determines the background color of each treemap data cell.+-- This field is optional. If not specified, size_data is used to determine+-- background colors. If specified, the data is expected to be numeric.+-- color_scale will determine how the values in this data map to data cell+-- background colors.+tcsColorData :: Lens' TreemapChartSpec (Maybe ChartData)+tcsColorData+ = lens _tcsColorData (\ s a -> s{_tcsColorData = a})++-- | True to hide tooltips.+tcsHideTooltips :: Lens' TreemapChartSpec (Maybe Bool)+tcsHideTooltips+ = lens _tcsHideTooltips+ (\ s a -> s{_tcsHideTooltips = a})++-- | The number of data levels to show on the treemap chart. These levels are+-- interactive and are shown with their labels. Defaults to 2 if not+-- specified.+tcsLevels :: Lens' TreemapChartSpec (Maybe Int32)+tcsLevels+ = lens _tcsLevels (\ s a -> s{_tcsLevels = a}) .+ mapping _Coerce++-- | The data that contains the treemap cell labels.+tcsLabels :: Lens' TreemapChartSpec (Maybe ChartData)+tcsLabels+ = lens _tcsLabels (\ s a -> s{_tcsLabels = a})++-- | The color scale for data cells in the treemap chart. Data cells are+-- assigned colors based on their color values. These color values come+-- from color_data, or from size_data if color_data is not specified. Cells+-- with color values less than or equal to min_value will have+-- minValueColor as their background color. Cells with color values greater+-- than or equal to max_value will have maxValueColor as their background+-- color. Cells with color values between min_value and max_value will have+-- background colors on a gradient between minValueColor and maxValueColor,+-- the midpoint of the gradient being midValueColor. Cells with missing or+-- non-numeric color values will have noDataColor as their background+-- color.+tcsColorScale :: Lens' TreemapChartSpec (Maybe TreemapChartColorScale)+tcsColorScale+ = lens _tcsColorScale+ (\ s a -> s{_tcsColorScale = a})++-- | The text format for all labels on the chart.+tcsTextFormat :: Lens' TreemapChartSpec (Maybe TextFormat)+tcsTextFormat+ = lens _tcsTextFormat+ (\ s a -> s{_tcsTextFormat = a})++-- | The minimum possible data value. Cells with values less than this will+-- have the same color as cells with this value. If not specified, defaults+-- to the actual minimum value from color_data, or the minimum value from+-- size_data if color_data is not specified.+tcsMinValue :: Lens' TreemapChartSpec (Maybe Double)+tcsMinValue+ = lens _tcsMinValue (\ s a -> s{_tcsMinValue = a}) .+ mapping _Coerce++-- | The data the contains the treemap cells\' parent labels.+tcsParentLabels :: Lens' TreemapChartSpec (Maybe ChartData)+tcsParentLabels+ = lens _tcsParentLabels+ (\ s a -> s{_tcsParentLabels = a})++instance FromJSON TreemapChartSpec where+ parseJSON+ = withObject "TreemapChartSpec"+ (\ o ->+ TreemapChartSpec' <$>+ (o .:? "hintedLevels") <*> (o .:? "maxValue") <*>+ (o .:? "headerColor")+ <*> (o .:? "sizeData")+ <*> (o .:? "colorData")+ <*> (o .:? "hideTooltips")+ <*> (o .:? "levels")+ <*> (o .:? "labels")+ <*> (o .:? "colorScale")+ <*> (o .:? "textFormat")+ <*> (o .:? "minValue")+ <*> (o .:? "parentLabels"))++instance ToJSON TreemapChartSpec where+ toJSON TreemapChartSpec'{..}+ = object+ (catMaybes+ [("hintedLevels" .=) <$> _tcsHintedLevels,+ ("maxValue" .=) <$> _tcsMaxValue,+ ("headerColor" .=) <$> _tcsHeaderColor,+ ("sizeData" .=) <$> _tcsSizeData,+ ("colorData" .=) <$> _tcsColorData,+ ("hideTooltips" .=) <$> _tcsHideTooltips,+ ("levels" .=) <$> _tcsLevels,+ ("labels" .=) <$> _tcsLabels,+ ("colorScale" .=) <$> _tcsColorScale,+ ("textFormat" .=) <$> _tcsTextFormat,+ ("minValue" .=) <$> _tcsMinValue,+ ("parentLabels" .=) <$> _tcsParentLabels])++-- | 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 are 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'+ { _basHeaderCount :: !(Maybe (Textual Int32))+ , _basLineSmoothing :: !(Maybe Bool)+ , _basInterpolateNulls :: !(Maybe Bool)+ , _basStackedType :: !(Maybe BasicChartSpecStackedType)+ , _basLegendPosition :: !(Maybe BasicChartSpecLegendPosition)+ , _basSeries :: !(Maybe [BasicChartSeries])+ , _basCompareMode :: !(Maybe BasicChartSpecCompareMode)+ , _basChartType :: !(Maybe BasicChartSpecChartType)+ , _basThreeDimensional :: !(Maybe Bool)+ , _basDomains :: !(Maybe [BasicChartDomain])+ , _basAxis :: !(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:+--+-- * 'basHeaderCount'+--+-- * 'basLineSmoothing'+--+-- * 'basInterpolateNulls'+--+-- * 'basStackedType'+--+-- * 'basLegendPosition'+--+-- * 'basSeries'+--+-- * 'basCompareMode'+--+-- * 'basChartType'+--+-- * 'basThreeDimensional'+--+-- * 'basDomains'+--+-- * 'basAxis'+basicChartSpec+ :: BasicChartSpec+basicChartSpec =+ BasicChartSpec'+ { _basHeaderCount = Nothing+ , _basLineSmoothing = Nothing+ , _basInterpolateNulls = Nothing+ , _basStackedType = Nothing+ , _basLegendPosition = Nothing+ , _basSeries = Nothing+ , _basCompareMode = Nothing+ , _basChartType = Nothing+ , _basThreeDimensional = Nothing+ , _basDomains = Nothing+ , _basAxis = 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.)+basHeaderCount :: Lens' BasicChartSpec (Maybe Int32)+basHeaderCount+ = lens _basHeaderCount+ (\ s a -> s{_basHeaderCount = a})+ . mapping _Coerce++-- | Gets whether all lines should be rendered smooth or straight by default.+-- Applies to Line charts.+basLineSmoothing :: Lens' BasicChartSpec (Maybe Bool)+basLineSmoothing+ = lens _basLineSmoothing+ (\ s a -> s{_basLineSmoothing = a})++-- | If some values in a series are missing, gaps may appear in the chart+-- (e.g, segments of lines in a line chart will be missing). To eliminate+-- these gaps set this to true. Applies to Line, Area, and Combo charts.+basInterpolateNulls :: Lens' BasicChartSpec (Maybe Bool)+basInterpolateNulls+ = lens _basInterpolateNulls+ (\ s a -> s{_basInterpolateNulls = a})++-- | The stacked type for charts that support vertical stacking. Applies to+-- Area, Bar, Column, Combo, and Stepped Area charts.+basStackedType :: Lens' BasicChartSpec (Maybe BasicChartSpecStackedType)+basStackedType+ = lens _basStackedType+ (\ s a -> s{_basStackedType = a})++-- | The position of the chart legend.+basLegendPosition :: Lens' BasicChartSpec (Maybe BasicChartSpecLegendPosition)+basLegendPosition+ = lens _basLegendPosition+ (\ s a -> s{_basLegendPosition = a})++-- | The data this chart is visualizing.+basSeries :: Lens' BasicChartSpec [BasicChartSeries]+basSeries+ = lens _basSeries (\ s a -> s{_basSeries = a}) .+ _Default+ . _Coerce++-- | The behavior of tooltips and data highlighting when hovering on data and+-- chart area.+basCompareMode :: Lens' BasicChartSpec (Maybe BasicChartSpecCompareMode)+basCompareMode+ = lens _basCompareMode+ (\ s a -> s{_basCompareMode = a})++-- | The type of the chart.+basChartType :: Lens' BasicChartSpec (Maybe BasicChartSpecChartType)+basChartType+ = lens _basChartType (\ s a -> s{_basChartType = a})++-- | True to make the chart 3D. Applies to Bar and Column charts.+basThreeDimensional :: Lens' BasicChartSpec (Maybe Bool)+basThreeDimensional+ = lens _basThreeDimensional+ (\ s a -> s{_basThreeDimensional = a})++-- | The domain of data this is charting. Only a single domain is supported.+basDomains :: Lens' BasicChartSpec [BasicChartDomain]+basDomains+ = lens _basDomains (\ s a -> s{_basDomains = a}) .+ _Default+ . _Coerce++-- | The axis on the chart.+basAxis :: Lens' BasicChartSpec [BasicChartAxis]+basAxis+ = lens _basAxis (\ s a -> s{_basAxis = a}) . _Default+ . _Coerce++instance FromJSON BasicChartSpec where+ parseJSON+ = withObject "BasicChartSpec"+ (\ o ->+ BasicChartSpec' <$>+ (o .:? "headerCount") <*> (o .:? "lineSmoothing") <*>+ (o .:? "interpolateNulls")+ <*> (o .:? "stackedType")+ <*> (o .:? "legendPosition")+ <*> (o .:? "series" .!= mempty)+ <*> (o .:? "compareMode")+ <*> (o .:? "chartType")+ <*> (o .:? "threeDimensional")+ <*> (o .:? "domains" .!= mempty)+ <*> (o .:? "axis" .!= mempty))++instance ToJSON BasicChartSpec where+ toJSON BasicChartSpec'{..}+ = object+ (catMaybes+ [("headerCount" .=) <$> _basHeaderCount,+ ("lineSmoothing" .=) <$> _basLineSmoothing,+ ("interpolateNulls" .=) <$> _basInterpolateNulls,+ ("stackedType" .=) <$> _basStackedType,+ ("legendPosition" .=) <$> _basLegendPosition,+ ("series" .=) <$> _basSeries,+ ("compareMode" .=) <$> _basCompareMode,+ ("chartType" .=) <$> _basChartType,+ ("threeDimensional" .=) <$> _basThreeDimensional,+ ("domains" .=) <$> _basDomains,+ ("axis" .=) <$> _basAxis])++-- | A group name and a list of items from the source data that should be+-- placed in the group with this name.+--+-- /See:/ 'manualRuleGroup' smart constructor.+data ManualRuleGroup =+ ManualRuleGroup'+ { _mrgItems :: !(Maybe [ExtendedValue])+ , _mrgGroupName :: !(Maybe ExtendedValue)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ManualRuleGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mrgItems'+--+-- * 'mrgGroupName'+manualRuleGroup+ :: ManualRuleGroup+manualRuleGroup =+ ManualRuleGroup' {_mrgItems = Nothing, _mrgGroupName = Nothing}+++-- | The items in the source data that should be placed into this group. Each+-- item may be a string, number, or boolean. Items may appear in at most+-- one group within a given ManualRule. Items that do not appear in any+-- group will appear on their own.+mrgItems :: Lens' ManualRuleGroup [ExtendedValue]+mrgItems+ = lens _mrgItems (\ s a -> s{_mrgItems = a}) .+ _Default+ . _Coerce++-- | The group name, which must be a string. Each group in a given ManualRule+-- must have a unique group name.+mrgGroupName :: Lens' ManualRuleGroup (Maybe ExtendedValue)+mrgGroupName+ = lens _mrgGroupName (\ s a -> s{_mrgGroupName = a})++instance FromJSON ManualRuleGroup where+ parseJSON+ = withObject "ManualRuleGroup"+ (\ o ->+ ManualRuleGroup' <$>+ (o .:? "items" .!= mempty) <*> (o .:? "groupName"))++instance ToJSON ManualRuleGroup where+ toJSON ManualRuleGroup'{..}+ = object+ (catMaybes+ [("items" .=) <$> _mrgItems,+ ("groupName" .=) <$> _mrgGroupName])++-- | 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])++-- | Developer metadata associated with a location or object in a+-- spreadsheet. Developer metadata may be used to associate arbitrary data+-- with various parts of a spreadsheet and will remain associated at those+-- locations as they move around and the spreadsheet is edited. For+-- example, if developer metadata is associated with row 5 and another row+-- is then subsequently inserted above row 5, that original metadata will+-- still be associated with the row it was first associated with (what is+-- now row 6). If the associated object is deleted its metadata is deleted+-- too.+--+-- /See:/ 'developerMetadata' smart constructor.+data DeveloperMetadata =+ DeveloperMetadata'+ { _dmLocation :: !(Maybe DeveloperMetadataLocation)+ , _dmMetadataId :: !(Maybe (Textual Int32))+ , _dmVisibility :: !(Maybe DeveloperMetadataVisibility)+ , _dmMetadataKey :: !(Maybe Text)+ , _dmMetadataValue :: !(Maybe Text)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeveloperMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dmLocation'+--+-- * 'dmMetadataId'+--+-- * 'dmVisibility'+--+-- * 'dmMetadataKey'+--+-- * 'dmMetadataValue'+developerMetadata+ :: DeveloperMetadata+developerMetadata =+ DeveloperMetadata'+ { _dmLocation = Nothing+ , _dmMetadataId = Nothing+ , _dmVisibility = Nothing+ , _dmMetadataKey = Nothing+ , _dmMetadataValue = Nothing+ }+++-- | The location where the metadata is associated.+dmLocation :: Lens' DeveloperMetadata (Maybe DeveloperMetadataLocation)+dmLocation+ = lens _dmLocation (\ s a -> s{_dmLocation = a})++-- | The spreadsheet-scoped unique ID that identifies the metadata. IDs may+-- be specified when metadata is created, otherwise one will be randomly+-- generated and assigned. Must be positive.+dmMetadataId :: Lens' DeveloperMetadata (Maybe Int32)+dmMetadataId+ = lens _dmMetadataId (\ s a -> s{_dmMetadataId = a})+ . mapping _Coerce++-- | The metadata visibility. Developer metadata must always have a+-- visibility specified.+dmVisibility :: Lens' DeveloperMetadata (Maybe DeveloperMetadataVisibility)+dmVisibility+ = lens _dmVisibility (\ s a -> s{_dmVisibility = a})++-- | The metadata key. There may be multiple metadata in a spreadsheet with+-- the same key. Developer metadata must always have a key specified.+dmMetadataKey :: Lens' DeveloperMetadata (Maybe Text)+dmMetadataKey+ = lens _dmMetadataKey+ (\ s a -> s{_dmMetadataKey = a})++-- | Data associated with the metadata\'s key.+dmMetadataValue :: Lens' DeveloperMetadata (Maybe Text)+dmMetadataValue+ = lens _dmMetadataValue+ (\ s a -> s{_dmMetadataValue = a})++instance FromJSON DeveloperMetadata where+ parseJSON+ = withObject "DeveloperMetadata"+ (\ o ->+ DeveloperMetadata' <$>+ (o .:? "location") <*> (o .:? "metadataId") <*>+ (o .:? "visibility")+ <*> (o .:? "metadataKey")+ <*> (o .:? "metadataValue"))++instance ToJSON DeveloperMetadata where+ toJSON DeveloperMetadata'{..}+ = object+ (catMaybes+ [("location" .=) <$> _dmLocation,+ ("metadataId" .=) <$> _dmMetadataId,+ ("visibility" .=) <$> _dmVisibility,+ ("metadataKey" .=) <$> _dmMetadataKey,+ ("metadataValue" .=) <$> _dmMetadataValue])++-- | A color scale for a treemap chart.+--+-- /See:/ 'treemapChartColorScale' smart constructor.+data TreemapChartColorScale =+ TreemapChartColorScale'+ { _tccsMinValueColor :: !(Maybe Color)+ , _tccsNoDataColor :: !(Maybe Color)+ , _tccsMaxValueColor :: !(Maybe Color)+ , _tccsMidValueColor :: !(Maybe Color)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TreemapChartColorScale' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tccsMinValueColor'+--+-- * 'tccsNoDataColor'+--+-- * 'tccsMaxValueColor'+--+-- * 'tccsMidValueColor'+treemapChartColorScale+ :: TreemapChartColorScale+treemapChartColorScale =+ TreemapChartColorScale'+ { _tccsMinValueColor = Nothing+ , _tccsNoDataColor = Nothing+ , _tccsMaxValueColor = Nothing+ , _tccsMidValueColor = Nothing+ }+++-- | The background color for cells with a color value less than or equal to+-- minValue. Defaults to #dc3912 if not specified.+tccsMinValueColor :: Lens' TreemapChartColorScale (Maybe Color)+tccsMinValueColor+ = lens _tccsMinValueColor+ (\ s a -> s{_tccsMinValueColor = a})++-- | The background color for cells that have no color data associated with+-- them. Defaults to #000000 if not specified.+tccsNoDataColor :: Lens' TreemapChartColorScale (Maybe Color)+tccsNoDataColor+ = lens _tccsNoDataColor+ (\ s a -> s{_tccsNoDataColor = a})++-- | The background color for cells with a color value greater than or equal+-- to maxValue. Defaults to #109618 if not specified.+tccsMaxValueColor :: Lens' TreemapChartColorScale (Maybe Color)+tccsMaxValueColor+ = lens _tccsMaxValueColor+ (\ s a -> s{_tccsMaxValueColor = a})++-- | The background color for cells with a color value at the midpoint+-- between minValue and maxValue. Defaults to #efe6dc if not specified.+tccsMidValueColor :: Lens' TreemapChartColorScale (Maybe Color)+tccsMidValueColor+ = lens _tccsMidValueColor+ (\ s a -> s{_tccsMidValueColor = a})++instance FromJSON TreemapChartColorScale where+ parseJSON+ = withObject "TreemapChartColorScale"+ (\ o ->+ TreemapChartColorScale' <$>+ (o .:? "minValueColor") <*> (o .:? "noDataColor") <*>+ (o .:? "maxValueColor")+ <*> (o .:? "midValueColor"))++instance ToJSON TreemapChartColorScale where+ toJSON TreemapChartColorScale'{..}+ = object+ (catMaybes+ [("minValueColor" .=) <$> _tccsMinValueColor,+ ("noDataColor" .=) <$> _tccsNoDataColor,+ ("maxValueColor" .=) <$> _tccsMaxValueColor,+ ("midValueColor" .=) <$> _tccsMidValueColor])++-- | 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])++-- | A request to create developer metadata.+--+-- /See:/ 'createDeveloperMetadataRequest' smart constructor.+newtype CreateDeveloperMetadataRequest =+ CreateDeveloperMetadataRequest'+ { _cDeveloperMetadata :: Maybe DeveloperMetadata+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateDeveloperMetadataRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cDeveloperMetadata'+createDeveloperMetadataRequest+ :: CreateDeveloperMetadataRequest+createDeveloperMetadataRequest =+ CreateDeveloperMetadataRequest' {_cDeveloperMetadata = Nothing}+++-- | The developer metadata to create.+cDeveloperMetadata :: Lens' CreateDeveloperMetadataRequest (Maybe DeveloperMetadata)+cDeveloperMetadata+ = lens _cDeveloperMetadata+ (\ s a -> s{_cDeveloperMetadata = a})++instance FromJSON CreateDeveloperMetadataRequest+ where+ parseJSON+ = withObject "CreateDeveloperMetadataRequest"+ (\ o ->+ CreateDeveloperMetadataRequest' <$>+ (o .:? "developerMetadata"))++instance ToJSON CreateDeveloperMetadataRequest where+ toJSON CreateDeveloperMetadataRequest'{..}+ = object+ (catMaybes+ [("developerMetadata" .=) <$> _cDeveloperMetadata])++-- | The response when clearing a range of values in a spreadsheet.+--+-- /See:/ 'batchClearValuesResponse' smart constructor.+data BatchClearValuesResponse =+ BatchClearValuesResponse'+ { _bcvrClearedRanges :: !(Maybe [Text])+ , _bcvrSpreadsheetId :: !(Maybe Text)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BatchClearValuesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcvrClearedRanges'+--+-- * 'bcvrSpreadsheetId'+batchClearValuesResponse+ :: BatchClearValuesResponse+batchClearValuesResponse =+ BatchClearValuesResponse'+ {_bcvrClearedRanges = Nothing, _bcvrSpreadsheetId = Nothing}+++-- | The ranges that were cleared, in A1 notation. (If the requests were for+-- an unbounded range or a ranger larger than the bounds of the sheet, this+-- will be the actual ranges that were cleared, bounded to the sheet\'s+-- limits.)+bcvrClearedRanges :: Lens' BatchClearValuesResponse [Text]+bcvrClearedRanges+ = lens _bcvrClearedRanges+ (\ s a -> s{_bcvrClearedRanges = a})+ . _Default+ . _Coerce++-- | The spreadsheet the updates were applied to.+bcvrSpreadsheetId :: Lens' BatchClearValuesResponse (Maybe Text)+bcvrSpreadsheetId+ = lens _bcvrSpreadsheetId+ (\ s a -> s{_bcvrSpreadsheetId = a})++instance FromJSON BatchClearValuesResponse where+ parseJSON+ = withObject "BatchClearValuesResponse"+ (\ o ->+ BatchClearValuesResponse' <$>+ (o .:? "clearedRanges" .!= mempty) <*>+ (o .:? "spreadsheetId"))++instance ToJSON BatchClearValuesResponse where+ toJSON BatchClearValuesResponse'{..}+ = object+ (catMaybes+ [("clearedRanges" .=) <$> _bcvrClearedRanges,+ ("spreadsheetId" .=) <$> _bcvrSpreadsheetId])++-- | A value range that was matched by one or more data filers.+--+-- /See:/ 'matchedValueRange' smart constructor.+data MatchedValueRange =+ MatchedValueRange'+ { _mvrValueRange :: !(Maybe ValueRange)+ , _mvrDataFilters :: !(Maybe [DataFilter])+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'MatchedValueRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mvrValueRange'+--+-- * 'mvrDataFilters'+matchedValueRange+ :: MatchedValueRange+matchedValueRange =+ MatchedValueRange' {_mvrValueRange = Nothing, _mvrDataFilters = Nothing}+++-- | The values matched by the DataFilter.+mvrValueRange :: Lens' MatchedValueRange (Maybe ValueRange)+mvrValueRange+ = lens _mvrValueRange+ (\ s a -> s{_mvrValueRange = a})++-- | The DataFilters from the request that matched the range of values.+mvrDataFilters :: Lens' MatchedValueRange [DataFilter]+mvrDataFilters+ = lens _mvrDataFilters+ (\ s a -> s{_mvrDataFilters = a})+ . _Default+ . _Coerce++instance FromJSON MatchedValueRange where+ parseJSON+ = withObject "MatchedValueRange"+ (\ o ->+ MatchedValueRange' <$>+ (o .:? "valueRange") <*>+ (o .:? "dataFilters" .!= mempty))++instance ToJSON MatchedValueRange where+ toJSON MatchedValueRange'{..}+ = object+ (catMaybes+ [("valueRange" .=) <$> _mvrValueRange,+ ("dataFilters" .=) <$> _mvrDataFilters])++-- | The domain of a chart. For example, if charting stock prices over time,+-- this would be the date.+--+-- /See:/ 'basicChartDomain' smart constructor.+data BasicChartDomain =+ BasicChartDomain'+ { _bcdReversed :: !(Maybe Bool)+ , _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:+--+-- * 'bcdReversed'+--+-- * 'bcdDomain'+basicChartDomain+ :: BasicChartDomain+basicChartDomain =+ BasicChartDomain' {_bcdReversed = Nothing, _bcdDomain = Nothing}+++-- | True to reverse the order of the domain values (horizontal axis).+bcdReversed :: Lens' BasicChartDomain (Maybe Bool)+bcdReversed+ = lens _bcdReversed (\ s a -> s{_bcdReversed = a})++-- | 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 .:? "reversed") <*> (o .:? "domain"))++instance ToJSON BasicChartDomain where+ toJSON BasicChartDomain'{..}+ = object+ (catMaybes+ [("reversed" .=) <$> _bcdReversed,+ ("domain" .=) <$> _bcdDomain])++-- | Allows you to organize the numeric values in a source data column into+-- buckets of a constant size. All values from HistogramRule.start to+-- HistogramRule.end are placed into groups of size HistogramRule.interval.+-- In addition, all values below HistogramRule.start are placed in one+-- group, and all values above HistogramRule.end are placed in another.+-- Only HistogramRule.interval is required, though if HistogramRule.start+-- and HistogramRule.end are both provided, HistogramRule.start must be+-- less than HistogramRule.end. For example, a pivot table showing average+-- purchase amount by age that has 50+ rows: +-----+-------------------+ |+-- Age | AVERAGE of Amount | +-----+-------------------+ | 16 | $27.13 | |+-- 17 | $5.24 | | 18 | $20.15 | ... +-----+-------------------+ could be+-- turned into a pivot table that looks like the one below by applying a+-- histogram group rule with a HistogramRule.start of 25, an+-- HistogramRule.interval of 20, and an HistogramRule.end of 65.+-- +-------------+-------------------+ | Grouped Age | AVERAGE of Amount |+-- +-------------+-------------------+ | \< 25 | $19.34 | | 25-45 | $31.43+-- | | 45-65 | $35.87 | | > 65 | $27.55 |+-- +-------------+-------------------+ | Grand Total | $29.12 |+-- +-------------+-------------------++--+-- /See:/ 'histogramRule' smart constructor.+data HistogramRule =+ HistogramRule'+ { _hrStart :: !(Maybe (Textual Double))+ , _hrInterval :: !(Maybe (Textual Double))+ , _hrEnd :: !(Maybe (Textual Double))+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HistogramRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hrStart'+--+-- * 'hrInterval'+--+-- * 'hrEnd'+histogramRule+ :: HistogramRule+histogramRule =+ HistogramRule' {_hrStart = Nothing, _hrInterval = Nothing, _hrEnd = Nothing}+++-- | The minimum value at which items are placed into buckets of constant+-- size. Values below start are lumped into a single bucket. This field is+-- optional.+hrStart :: Lens' HistogramRule (Maybe Double)+hrStart+ = lens _hrStart (\ s a -> s{_hrStart = a}) .+ mapping _Coerce++-- | The size of the buckets that are created. Must be positive.+hrInterval :: Lens' HistogramRule (Maybe Double)+hrInterval+ = lens _hrInterval (\ s a -> s{_hrInterval = a}) .+ mapping _Coerce++-- | The maximum value at which items are placed into buckets of constant+-- size. Values above end are lumped into a single bucket. This field is+-- optional.+hrEnd :: Lens' HistogramRule (Maybe Double)+hrEnd+ = lens _hrEnd (\ s a -> s{_hrEnd = a}) .+ mapping _Coerce++instance FromJSON HistogramRule where+ parseJSON+ = withObject "HistogramRule"+ (\ o ->+ HistogramRule' <$>+ (o .:? "start") <*> (o .:? "interval") <*>+ (o .:? "end"))++instance ToJSON HistogramRule where+ toJSON HistogramRule'{..}+ = object+ (catMaybes+ [("start" .=) <$> _hrStart,+ ("interval" .=) <$> _hrInterval,+ ("end" .=) <$> _hrEnd])++-- | A developer metadata entry and the data filters specified in the+-- original request that matched it.+--+-- /See:/ 'matchedDeveloperMetadata' smart constructor.+data MatchedDeveloperMetadata =+ MatchedDeveloperMetadata'+ { _mdmDataFilters :: !(Maybe [DataFilter])+ , _mdmDeveloperMetadata :: !(Maybe DeveloperMetadata)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'MatchedDeveloperMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdmDataFilters'+--+-- * 'mdmDeveloperMetadata'+matchedDeveloperMetadata+ :: MatchedDeveloperMetadata+matchedDeveloperMetadata =+ MatchedDeveloperMetadata'+ {_mdmDataFilters = Nothing, _mdmDeveloperMetadata = Nothing}+++-- | All filters matching the returned developer metadata.+mdmDataFilters :: Lens' MatchedDeveloperMetadata [DataFilter]+mdmDataFilters+ = lens _mdmDataFilters+ (\ s a -> s{_mdmDataFilters = a})+ . _Default+ . _Coerce++-- | The developer metadata matching the specified filters.+mdmDeveloperMetadata :: Lens' MatchedDeveloperMetadata (Maybe DeveloperMetadata)+mdmDeveloperMetadata+ = lens _mdmDeveloperMetadata+ (\ s a -> s{_mdmDeveloperMetadata = a})++instance FromJSON MatchedDeveloperMetadata where+ parseJSON+ = withObject "MatchedDeveloperMetadata"+ (\ o ->+ MatchedDeveloperMetadata' <$>+ (o .:? "dataFilters" .!= mempty) <*>+ (o .:? "developerMetadata"))++instance ToJSON MatchedDeveloperMetadata where+ toJSON MatchedDeveloperMetadata'{..}+ = object+ (catMaybes+ [("dataFilters" .=) <$> _mdmDataFilters,+ ("developerMetadata" .=) <$> _mdmDeveloperMetadata])++-- | Inserts cells into a range, shifting the existing cells over or down.+--+-- /See:/ 'insertRangeRequest' smart constructor.+data InsertRangeRequest =+ InsertRangeRequest'+ { _irrShiftDimension :: !(Maybe InsertRangeRequestShiftDimension)+ , _irrRange :: !(Maybe GridRange)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InsertRangeRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'irrShiftDimension'+--+-- * 'irrRange'+insertRangeRequest+ :: InsertRangeRequest+insertRangeRequest =+ InsertRangeRequest' {_irrShiftDimension = Nothing, _irrRange = Nothing}+++-- | The dimension which will be shifted when inserting cells. If ROWS,+-- existing cells will be shifted down. If COLUMNS, existing cells will be+-- shifted right.+irrShiftDimension :: Lens' InsertRangeRequest (Maybe InsertRangeRequestShiftDimension)+irrShiftDimension+ = lens _irrShiftDimension+ (\ s a -> s{_irrShiftDimension = a})++-- | The range to insert new cells into.+irrRange :: Lens' InsertRangeRequest (Maybe GridRange)+irrRange = lens _irrRange (\ s a -> s{_irrRange = a})++instance FromJSON InsertRangeRequest where+ parseJSON+ = withObject "InsertRangeRequest"+ (\ o ->+ InsertRangeRequest' <$>+ (o .:? "shiftDimension") <*> (o .:? "range"))++instance ToJSON InsertRangeRequest where+ toJSON InsertRangeRequest'{..}+ = object+ (catMaybes+ [("shiftDimension" .=) <$> _irrShiftDimension,+ ("range" .=) <$> _irrRange])++-- | 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'+ { _csTitleTextPosition :: !(Maybe TextPosition)+ , _csFontName :: !(Maybe Text)+ , _csSubtitleTextPosition :: !(Maybe TextPosition)+ , _csBackgRoundColor :: !(Maybe Color)+ , _csCandlestickChart :: !(Maybe CandlestickChartSpec)+ , _csWaterfallChart :: !(Maybe WaterfallChartSpec)+ , _csTitleTextFormat :: !(Maybe TextFormat)+ , _csSubtitle :: !(Maybe Text)+ , _csAltText :: !(Maybe Text)+ , _csHistogramChart :: !(Maybe HistogramChartSpec)+ , _csBubbleChart :: !(Maybe BubbleChartSpec)+ , _csMaximized :: !(Maybe Bool)+ , _csSubtitleTextFormat :: !(Maybe TextFormat)+ , _csTitle :: !(Maybe Text)+ , _csPieChart :: !(Maybe PieChartSpec)+ , _csOrgChart :: !(Maybe OrgChartSpec)+ , _csTreemapChart :: !(Maybe TreemapChartSpec)+ , _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:+--+-- * 'csTitleTextPosition'+--+-- * 'csFontName'+--+-- * 'csSubtitleTextPosition'+--+-- * 'csBackgRoundColor'+--+-- * 'csCandlestickChart'+--+-- * 'csWaterfallChart'+--+-- * 'csTitleTextFormat'+--+-- * 'csSubtitle'+--+-- * 'csAltText'+--+-- * 'csHistogramChart'+--+-- * 'csBubbleChart'+--+-- * 'csMaximized'+--+-- * 'csSubtitleTextFormat'+--+-- * 'csTitle'+--+-- * 'csPieChart'+--+-- * 'csOrgChart'+--+-- * 'csTreemapChart'+--+-- * 'csBasicChart'+--+-- * 'csHiddenDimensionStrategy'+chartSpec+ :: ChartSpec+chartSpec =+ ChartSpec'+ { _csTitleTextPosition = Nothing+ , _csFontName = Nothing+ , _csSubtitleTextPosition = Nothing+ , _csBackgRoundColor = Nothing+ , _csCandlestickChart = Nothing+ , _csWaterfallChart = Nothing+ , _csTitleTextFormat = Nothing+ , _csSubtitle = Nothing+ , _csAltText = Nothing+ , _csHistogramChart = Nothing+ , _csBubbleChart = Nothing+ , _csMaximized = Nothing+ , _csSubtitleTextFormat = Nothing+ , _csTitle = Nothing+ , _csPieChart = Nothing+ , _csOrgChart = Nothing+ , _csTreemapChart = Nothing+ , _csBasicChart = Nothing+ , _csHiddenDimensionStrategy = Nothing+ }+++-- | The title text position. This field is optional.+csTitleTextPosition :: Lens' ChartSpec (Maybe TextPosition)+csTitleTextPosition+ = lens _csTitleTextPosition+ (\ s a -> s{_csTitleTextPosition = a})++-- | The name of the font to use by default for all chart text (e.g. title,+-- axis labels, legend). If a font is specified for a specific part of the+-- chart it will override this font name.+csFontName :: Lens' ChartSpec (Maybe Text)+csFontName+ = lens _csFontName (\ s a -> s{_csFontName = a})++-- | The subtitle text position. This field is optional.+csSubtitleTextPosition :: Lens' ChartSpec (Maybe TextPosition)+csSubtitleTextPosition+ = lens _csSubtitleTextPosition+ (\ s a -> s{_csSubtitleTextPosition = a})++-- | The background color of the entire chart. Not applicable to Org charts.+csBackgRoundColor :: Lens' ChartSpec (Maybe Color)+csBackgRoundColor+ = lens _csBackgRoundColor+ (\ s a -> s{_csBackgRoundColor = a})++-- | A candlestick chart specification.+csCandlestickChart :: Lens' ChartSpec (Maybe CandlestickChartSpec)+csCandlestickChart+ = lens _csCandlestickChart+ (\ s a -> s{_csCandlestickChart = a})++-- | A waterfall chart specification.+csWaterfallChart :: Lens' ChartSpec (Maybe WaterfallChartSpec)+csWaterfallChart+ = lens _csWaterfallChart+ (\ s a -> s{_csWaterfallChart = a})++-- | The title text format. Strikethrough and underline are not supported.+csTitleTextFormat :: Lens' ChartSpec (Maybe TextFormat)+csTitleTextFormat+ = lens _csTitleTextFormat+ (\ s a -> s{_csTitleTextFormat = a})++-- | The subtitle of the chart.+csSubtitle :: Lens' ChartSpec (Maybe Text)+csSubtitle+ = lens _csSubtitle (\ s a -> s{_csSubtitle = a})++-- | The alternative text that describes the chart. This is often used for+-- accessibility.+csAltText :: Lens' ChartSpec (Maybe Text)+csAltText+ = lens _csAltText (\ s a -> s{_csAltText = a})++-- | A histogram chart specification.+csHistogramChart :: Lens' ChartSpec (Maybe HistogramChartSpec)+csHistogramChart+ = lens _csHistogramChart+ (\ s a -> s{_csHistogramChart = a})++-- | A bubble chart specification.+csBubbleChart :: Lens' ChartSpec (Maybe BubbleChartSpec)+csBubbleChart+ = lens _csBubbleChart+ (\ s a -> s{_csBubbleChart = a})++-- | True to make a chart fill the entire space in which it\'s rendered with+-- minimum padding. False to use the default padding. (Not applicable to+-- Geo and Org charts.)+csMaximized :: Lens' ChartSpec (Maybe Bool)+csMaximized+ = lens _csMaximized (\ s a -> s{_csMaximized = a})++-- | The subtitle text format. Strikethrough and underline are not supported.+csSubtitleTextFormat :: Lens' ChartSpec (Maybe TextFormat)+csSubtitleTextFormat+ = lens _csSubtitleTextFormat+ (\ s a -> s{_csSubtitleTextFormat = a})++-- | 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})++-- | An org chart specification.+csOrgChart :: Lens' ChartSpec (Maybe OrgChartSpec)+csOrgChart+ = lens _csOrgChart (\ s a -> s{_csOrgChart = a})++-- | A treemap chart specification.+csTreemapChart :: Lens' ChartSpec (Maybe TreemapChartSpec)+csTreemapChart+ = lens _csTreemapChart+ (\ s a -> s{_csTreemapChart = 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 .:? "titleTextPosition") <*> (o .:? "fontName")+ <*> (o .:? "subtitleTextPosition")+ <*> (o .:? "backgroundColor")+ <*> (o .:? "candlestickChart")+ <*> (o .:? "waterfallChart")+ <*> (o .:? "titleTextFormat")+ <*> (o .:? "subtitle")+ <*> (o .:? "altText")+ <*> (o .:? "histogramChart")+ <*> (o .:? "bubbleChart")+ <*> (o .:? "maximized")+ <*> (o .:? "subtitleTextFormat")+ <*> (o .:? "title")+ <*> (o .:? "pieChart")+ <*> (o .:? "orgChart")+ <*> (o .:? "treemapChart")+ <*> (o .:? "basicChart")+ <*> (o .:? "hiddenDimensionStrategy"))++instance ToJSON ChartSpec where+ toJSON ChartSpec'{..}+ = object+ (catMaybes+ [("titleTextPosition" .=) <$> _csTitleTextPosition,+ ("fontName" .=) <$> _csFontName,+ ("subtitleTextPosition" .=) <$>+ _csSubtitleTextPosition,+ ("backgroundColor" .=) <$> _csBackgRoundColor,+ ("candlestickChart" .=) <$> _csCandlestickChart,+ ("waterfallChart" .=) <$> _csWaterfallChart,+ ("titleTextFormat" .=) <$> _csTitleTextFormat,+ ("subtitle" .=) <$> _csSubtitle,+ ("altText" .=) <$> _csAltText,+ ("histogramChart" .=) <$> _csHistogramChart,+ ("bubbleChart" .=) <$> _csBubbleChart,+ ("maximized" .=) <$> _csMaximized,+ ("subtitleTextFormat" .=) <$> _csSubtitleTextFormat,+ ("title" .=) <$> _csTitle,+ ("pieChart" .=) <$> _csPieChart,+ ("orgChart" .=) <$> _csOrgChart,+ ("treemapChart" .=) <$> _csTreemapChart,+ ("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)+ , _dpDeveloperMetadata :: !(Maybe [DeveloperMetadata])+ }+ 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'+--+-- * 'dpDeveloperMetadata'+dimensionProperties+ :: DimensionProperties+dimensionProperties =+ DimensionProperties'+ { _dpHiddenByFilter = Nothing+ , _dpPixelSize = Nothing+ , _dpHiddenByUser = Nothing+ , _dpDeveloperMetadata = 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})++-- | The developer metadata associated with a single row or column.+dpDeveloperMetadata :: Lens' DimensionProperties [DeveloperMetadata]+dpDeveloperMetadata+ = lens _dpDeveloperMetadata+ (\ s a -> s{_dpDeveloperMetadata = a})+ . _Default+ . _Coerce++instance FromJSON DimensionProperties where+ parseJSON+ = withObject "DimensionProperties"+ (\ o ->+ DimensionProperties' <$>+ (o .:? "hiddenByFilter") <*> (o .:? "pixelSize") <*>+ (o .:? "hiddenByUser")+ <*> (o .:? "developerMetadata" .!= mempty))++instance ToJSON DimensionProperties where+ toJSON DimensionProperties'{..}+ = object+ (catMaybes+ [("hiddenByFilter" .=) <$> _dpHiddenByFilter,+ ("pixelSize" .=) <$> _dpPixelSize,+ ("hiddenByUser" .=) <$> _dpHiddenByUser,+ ("developerMetadata" .=) <$> _dpDeveloperMetadata])++-- | Updates properties of the supplied banded range.+--+-- /See:/ 'updateBandingRequest' smart constructor.+data UpdateBandingRequest =+ UpdateBandingRequest'+ { _ubrBandedRange :: !(Maybe BandedRange)+ , _ubrFields :: !(Maybe GFieldMask)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateBandingRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ubrBandedRange'+--+-- * 'ubrFields'+updateBandingRequest+ :: UpdateBandingRequest+updateBandingRequest =+ UpdateBandingRequest' {_ubrBandedRange = Nothing, _ubrFields = Nothing}+++-- | The banded range to update with the new properties.+ubrBandedRange :: Lens' UpdateBandingRequest (Maybe BandedRange)+ubrBandedRange+ = lens _ubrBandedRange+ (\ s a -> s{_ubrBandedRange = a})++-- | The fields that should be updated. At least one field must be specified.+-- The root \`bandedRange\` is implied and should not be specified. A+-- single \`\"*\"\` can be used as short-hand for listing every field.+ubrFields :: Lens' UpdateBandingRequest (Maybe GFieldMask)+ubrFields+ = lens _ubrFields (\ s a -> s{_ubrFields = a})++instance FromJSON UpdateBandingRequest where+ parseJSON+ = withObject "UpdateBandingRequest"+ (\ o ->+ UpdateBandingRequest' <$>+ (o .:? "bandedRange") <*> (o .:? "fields"))++instance ToJSON UpdateBandingRequest where+ toJSON UpdateBandingRequest'{..}+ = object+ (catMaybes+ [("bandedRange" .=) <$> _ubrBandedRange,+ ("fields" .=) <$> _ubrFields])++-- | 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])++-- | Removes the banded range with the given ID from the spreadsheet.+--+-- /See:/ 'deleteBandingRequest' smart constructor.+newtype DeleteBandingRequest =+ DeleteBandingRequest'+ { _dbrBandedRangeId :: Maybe (Textual Int32)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteBandingRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dbrBandedRangeId'+deleteBandingRequest+ :: DeleteBandingRequest+deleteBandingRequest = DeleteBandingRequest' {_dbrBandedRangeId = Nothing}+++-- | The ID of the banded range to delete.+dbrBandedRangeId :: Lens' DeleteBandingRequest (Maybe Int32)+dbrBandedRangeId+ = lens _dbrBandedRangeId+ (\ s a -> s{_dbrBandedRangeId = a})+ . mapping _Coerce++instance FromJSON DeleteBandingRequest where+ parseJSON+ = withObject "DeleteBandingRequest"+ (\ o ->+ DeleteBandingRequest' <$> (o .:? "bandedRangeId"))++instance ToJSON DeleteBandingRequest where+ toJSON DeleteBandingRequest'{..}+ = object+ (catMaybes+ [("bandedRangeId" .=) <$> _dbrBandedRangeId])++-- | The response from deleting developer metadata.+--+-- /See:/ 'deleteDeveloperMetadataResponse' smart constructor.+newtype DeleteDeveloperMetadataResponse =+ DeleteDeveloperMetadataResponse'+ { _ddmrDeletedDeveloperMetadata :: Maybe [DeveloperMetadata]+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteDeveloperMetadataResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddmrDeletedDeveloperMetadata'+deleteDeveloperMetadataResponse+ :: DeleteDeveloperMetadataResponse+deleteDeveloperMetadataResponse =+ DeleteDeveloperMetadataResponse' {_ddmrDeletedDeveloperMetadata = Nothing}+++-- | The metadata that was deleted.+ddmrDeletedDeveloperMetadata :: Lens' DeleteDeveloperMetadataResponse [DeveloperMetadata]+ddmrDeletedDeveloperMetadata+ = lens _ddmrDeletedDeveloperMetadata+ (\ s a -> s{_ddmrDeletedDeveloperMetadata = a})+ . _Default+ . _Coerce++instance FromJSON DeleteDeveloperMetadataResponse+ where+ parseJSON+ = withObject "DeleteDeveloperMetadataResponse"+ (\ o ->+ DeleteDeveloperMetadataResponse' <$>+ (o .:? "deletedDeveloperMetadata" .!= mempty))++instance ToJSON DeleteDeveloperMetadataResponse where+ toJSON DeleteDeveloperMetadataResponse'{..}+ = object+ (catMaybes+ [("deletedDeveloperMetadata" .=) <$>+ _ddmrDeletedDeveloperMetadata])++-- | The response from updating developer metadata.+--+-- /See:/ 'updateDeveloperMetadataResponse' smart constructor.+newtype UpdateDeveloperMetadataResponse =+ UpdateDeveloperMetadataResponse'+ { _uDeveloperMetadata :: Maybe [DeveloperMetadata]+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateDeveloperMetadataResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uDeveloperMetadata'+updateDeveloperMetadataResponse+ :: UpdateDeveloperMetadataResponse+updateDeveloperMetadataResponse =+ UpdateDeveloperMetadataResponse' {_uDeveloperMetadata = Nothing}+++-- | The updated developer metadata.+uDeveloperMetadata :: Lens' UpdateDeveloperMetadataResponse [DeveloperMetadata]+uDeveloperMetadata+ = lens _uDeveloperMetadata+ (\ s a -> s{_uDeveloperMetadata = a})+ . _Default+ . _Coerce++instance FromJSON UpdateDeveloperMetadataResponse+ where+ parseJSON+ = withObject "UpdateDeveloperMetadataResponse"+ (\ o ->+ UpdateDeveloperMetadataResponse' <$>+ (o .:? "developerMetadata" .!= mempty))++instance ToJSON UpdateDeveloperMetadataResponse where+ toJSON UpdateDeveloperMetadataResponse'{..}+ = object+ (catMaybes+ [("developerMetadata" .=) <$> _uDeveloperMetadata])++-- | 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)+ , _reqCreateDeveloperMetadata :: !(Maybe CreateDeveloperMetadataRequest)+ , _reqDuplicateFilterView :: !(Maybe DuplicateFilterViewRequest)+ , _reqAddConditionalFormatRule :: !(Maybe AddConditionalFormatRuleRequest)+ , _reqRandomizeRange :: !(Maybe RandomizeRangeRequest)+ , _reqSortRange :: !(Maybe SortRangeRequest)+ , _reqUpdateNamedRange :: !(Maybe UpdateNamedRangeRequest)+ , _reqDeleteNamedRange :: !(Maybe DeleteNamedRangeRequest)+ , _reqInsertRange :: !(Maybe InsertRangeRequest)+ , _reqDeleteBanding :: !(Maybe DeleteBandingRequest)+ , _reqUpdateBanding :: !(Maybe UpdateBandingRequest)+ , _reqClearBasicFilter :: !(Maybe ClearBasicFilterRequest)+ , _reqAppendCells :: !(Maybe AppendCellsRequest)+ , _reqPasteData :: !(Maybe PasteDataRequest)+ , _reqUpdateEmbeddedObjectPosition :: !(Maybe UpdateEmbeddedObjectPositionRequest)+ , _reqDeleteRange :: !(Maybe DeleteRangeRequest)+ , _reqCopyPaste :: !(Maybe CopyPasteRequest)+ , _reqUpdateDimensionGroup :: !(Maybe UpdateDimensionGroupRequest)+ , _reqDeleteDimensionGroup :: !(Maybe DeleteDimensionGroupRequest)+ , _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)+ , _reqDeleteDeveloperMetadata :: !(Maybe DeleteDeveloperMetadataRequest)+ , _reqUpdateDeveloperMetadata :: !(Maybe UpdateDeveloperMetadataRequest)+ , _reqMergeCells :: !(Maybe MergeCellsRequest)+ , _reqAddNamedRange :: !(Maybe AddNamedRangeRequest)+ , _reqAddChart :: !(Maybe AddChartRequest)+ , _reqAddBanding :: !(Maybe AddBandingRequest)+ , _reqDuplicateSheet :: !(Maybe DuplicateSheetRequest)+ , _reqAutoFill :: !(Maybe AutoFillRequest)+ , _reqUpdateDimensionProperties :: !(Maybe UpdateDimensionPropertiesRequest)+ , _reqUpdateChartSpec :: !(Maybe UpdateChartSpecRequest)+ , _reqSetBasicFilter :: !(Maybe SetBasicFilterRequest)+ , _reqTextToColumns :: !(Maybe TextToColumnsRequest)+ , _reqAddDimensionGroup :: !(Maybe AddDimensionGroupRequest)+ , _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'+--+-- * 'reqCreateDeveloperMetadata'+--+-- * 'reqDuplicateFilterView'+--+-- * 'reqAddConditionalFormatRule'+--+-- * 'reqRandomizeRange'+--+-- * 'reqSortRange'+--+-- * 'reqUpdateNamedRange'+--+-- * 'reqDeleteNamedRange'+--+-- * 'reqInsertRange'+--+-- * 'reqDeleteBanding'+--+-- * 'reqUpdateBanding'+--+-- * 'reqClearBasicFilter'+--+-- * 'reqAppendCells'+--+-- * 'reqPasteData'+--+-- * 'reqUpdateEmbeddedObjectPosition'+--+-- * 'reqDeleteRange'+--+-- * 'reqCopyPaste'+--+-- * 'reqUpdateDimensionGroup'+--+-- * 'reqDeleteDimensionGroup'+--+-- * 'reqAutoResizeDimensions'+--+-- * 'reqAddSheet'+--+-- * 'reqFindReplace'+--+-- * 'reqDeleteDimension'+--+-- * 'reqCutPaste'+--+-- * 'reqMoveDimension'+--+-- * 'reqRepeatCell'+--+-- * 'reqAddProtectedRange'+--+-- * 'reqUpdateFilterView'+--+-- * 'reqDeleteFilterView'+--+-- * 'reqInsertDimension'+--+-- * 'reqUpdateSheetProperties'+--+-- * 'reqDeleteConditionalFormatRule'+--+-- * 'reqUpdateConditionalFormatRule'+--+-- * 'reqDeleteEmbeddedObject'+--+-- * 'reqDeleteDeveloperMetadata'+--+-- * 'reqUpdateDeveloperMetadata'+--+-- * 'reqMergeCells'+--+-- * 'reqAddNamedRange'+--+-- * 'reqAddChart'+--+-- * 'reqAddBanding'+--+-- * 'reqDuplicateSheet'+--+-- * 'reqAutoFill'+--+-- * 'reqUpdateDimensionProperties'+--+-- * 'reqUpdateChartSpec'+--+-- * 'reqSetBasicFilter'+--+-- * 'reqTextToColumns'+--+-- * 'reqAddDimensionGroup'+--+-- * 'reqUpdateSpreadsheetProperties'+--+-- * 'reqDeleteSheet'+--+-- * 'reqUnmergeCells'+--+-- * 'reqUpdateBOrders'+--+-- * 'reqAppendDimension'+--+-- * 'reqSetDataValidation'+request'+ :: Request'+request' =+ Request''+ { _reqAddFilterView = Nothing+ , _reqDeleteProtectedRange = Nothing+ , _reqUpdateProtectedRange = Nothing+ , _reqUpdateCells = Nothing+ , _reqCreateDeveloperMetadata = Nothing+ , _reqDuplicateFilterView = Nothing+ , _reqAddConditionalFormatRule = Nothing+ , _reqRandomizeRange = Nothing+ , _reqSortRange = Nothing+ , _reqUpdateNamedRange = Nothing+ , _reqDeleteNamedRange = Nothing+ , _reqInsertRange = Nothing+ , _reqDeleteBanding = Nothing+ , _reqUpdateBanding = Nothing+ , _reqClearBasicFilter = Nothing+ , _reqAppendCells = Nothing+ , _reqPasteData = Nothing+ , _reqUpdateEmbeddedObjectPosition = Nothing+ , _reqDeleteRange = Nothing+ , _reqCopyPaste = Nothing+ , _reqUpdateDimensionGroup = Nothing+ , _reqDeleteDimensionGroup = 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+ , _reqDeleteDeveloperMetadata = Nothing+ , _reqUpdateDeveloperMetadata = Nothing+ , _reqMergeCells = Nothing+ , _reqAddNamedRange = Nothing+ , _reqAddChart = Nothing+ , _reqAddBanding = Nothing+ , _reqDuplicateSheet = Nothing+ , _reqAutoFill = Nothing+ , _reqUpdateDimensionProperties = Nothing+ , _reqUpdateChartSpec = Nothing+ , _reqSetBasicFilter = Nothing+ , _reqTextToColumns = Nothing+ , _reqAddDimensionGroup = 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})++-- | Creates new developer metadata+reqCreateDeveloperMetadata :: Lens' Request' (Maybe CreateDeveloperMetadataRequest)+reqCreateDeveloperMetadata+ = lens _reqCreateDeveloperMetadata+ (\ s a -> s{_reqCreateDeveloperMetadata = 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})++-- | Randomizes the order of the rows in a range.+reqRandomizeRange :: Lens' Request' (Maybe RandomizeRangeRequest)+reqRandomizeRange+ = lens _reqRandomizeRange+ (\ s a -> s{_reqRandomizeRange = 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})++-- | Inserts new cells in a sheet, shifting the existing cells.+reqInsertRange :: Lens' Request' (Maybe InsertRangeRequest)+reqInsertRange+ = lens _reqInsertRange+ (\ s a -> s{_reqInsertRange = a})++-- | Removes a banded range+reqDeleteBanding :: Lens' Request' (Maybe DeleteBandingRequest)+reqDeleteBanding+ = lens _reqDeleteBanding+ (\ s a -> s{_reqDeleteBanding = a})++-- | Updates a banded range+reqUpdateBanding :: Lens' Request' (Maybe UpdateBandingRequest)+reqUpdateBanding+ = lens _reqUpdateBanding+ (\ s a -> s{_reqUpdateBanding = 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})++-- | Deletes a range of cells from a sheet, shifting the remaining cells.+reqDeleteRange :: Lens' Request' (Maybe DeleteRangeRequest)+reqDeleteRange+ = lens _reqDeleteRange+ (\ s a -> s{_reqDeleteRange = a})++-- | Copies data from one area and pastes it to another.+reqCopyPaste :: Lens' Request' (Maybe CopyPasteRequest)+reqCopyPaste+ = lens _reqCopyPaste (\ s a -> s{_reqCopyPaste = a})++-- | Updates the state of the specified group.+reqUpdateDimensionGroup :: Lens' Request' (Maybe UpdateDimensionGroupRequest)+reqUpdateDimensionGroup+ = lens _reqUpdateDimensionGroup+ (\ s a -> s{_reqUpdateDimensionGroup = a})++-- | Deletes a group over the specified range.+reqDeleteDimensionGroup :: Lens' Request' (Maybe DeleteDimensionGroupRequest)+reqDeleteDimensionGroup+ = lens _reqDeleteDimensionGroup+ (\ s a -> s{_reqDeleteDimensionGroup = 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})++-- | Deletes developer metadata+reqDeleteDeveloperMetadata :: Lens' Request' (Maybe DeleteDeveloperMetadataRequest)+reqDeleteDeveloperMetadata+ = lens _reqDeleteDeveloperMetadata+ (\ s a -> s{_reqDeleteDeveloperMetadata = a})++-- | Updates an existing developer metadata entry+reqUpdateDeveloperMetadata :: Lens' Request' (Maybe UpdateDeveloperMetadataRequest)+reqUpdateDeveloperMetadata+ = lens _reqUpdateDeveloperMetadata+ (\ s a -> s{_reqUpdateDeveloperMetadata = 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})++-- | Adds a new banded range+reqAddBanding :: Lens' Request' (Maybe AddBandingRequest)+reqAddBanding+ = lens _reqAddBanding+ (\ s a -> s{_reqAddBanding = 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})++-- | Creates a group over the specified range.+reqAddDimensionGroup :: Lens' Request' (Maybe AddDimensionGroupRequest)+reqAddDimensionGroup+ = lens _reqAddDimensionGroup+ (\ s a -> s{_reqAddDimensionGroup = 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 .:? "createDeveloperMetadata")+ <*> (o .:? "duplicateFilterView")+ <*> (o .:? "addConditionalFormatRule")+ <*> (o .:? "randomizeRange")+ <*> (o .:? "sortRange")+ <*> (o .:? "updateNamedRange")+ <*> (o .:? "deleteNamedRange")+ <*> (o .:? "insertRange")+ <*> (o .:? "deleteBanding")+ <*> (o .:? "updateBanding")+ <*> (o .:? "clearBasicFilter")+ <*> (o .:? "appendCells")+ <*> (o .:? "pasteData")+ <*> (o .:? "updateEmbeddedObjectPosition")+ <*> (o .:? "deleteRange")+ <*> (o .:? "copyPaste")+ <*> (o .:? "updateDimensionGroup")+ <*> (o .:? "deleteDimensionGroup")+ <*> (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 .:? "deleteDeveloperMetadata")+ <*> (o .:? "updateDeveloperMetadata")+ <*> (o .:? "mergeCells")+ <*> (o .:? "addNamedRange")+ <*> (o .:? "addChart")+ <*> (o .:? "addBanding")+ <*> (o .:? "duplicateSheet")+ <*> (o .:? "autoFill")+ <*> (o .:? "updateDimensionProperties")+ <*> (o .:? "updateChartSpec")+ <*> (o .:? "setBasicFilter")+ <*> (o .:? "textToColumns")+ <*> (o .:? "addDimensionGroup")+ <*> (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,+ ("createDeveloperMetadata" .=) <$>+ _reqCreateDeveloperMetadata,+ ("duplicateFilterView" .=) <$>+ _reqDuplicateFilterView,+ ("addConditionalFormatRule" .=) <$>+ _reqAddConditionalFormatRule,+ ("randomizeRange" .=) <$> _reqRandomizeRange,+ ("sortRange" .=) <$> _reqSortRange,+ ("updateNamedRange" .=) <$> _reqUpdateNamedRange,+ ("deleteNamedRange" .=) <$> _reqDeleteNamedRange,+ ("insertRange" .=) <$> _reqInsertRange,+ ("deleteBanding" .=) <$> _reqDeleteBanding,+ ("updateBanding" .=) <$> _reqUpdateBanding,+ ("clearBasicFilter" .=) <$> _reqClearBasicFilter,+ ("appendCells" .=) <$> _reqAppendCells,+ ("pasteData" .=) <$> _reqPasteData,+ ("updateEmbeddedObjectPosition" .=) <$>+ _reqUpdateEmbeddedObjectPosition,+ ("deleteRange" .=) <$> _reqDeleteRange,+ ("copyPaste" .=) <$> _reqCopyPaste,+ ("updateDimensionGroup" .=) <$>+ _reqUpdateDimensionGroup,+ ("deleteDimensionGroup" .=) <$>+ _reqDeleteDimensionGroup,+ ("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,+ ("deleteDeveloperMetadata" .=) <$>+ _reqDeleteDeveloperMetadata,+ ("updateDeveloperMetadata" .=) <$>+ _reqUpdateDeveloperMetadata,+ ("mergeCells" .=) <$> _reqMergeCells,+ ("addNamedRange" .=) <$> _reqAddNamedRange,+ ("addChart" .=) <$> _reqAddChart,+ ("addBanding" .=) <$> _reqAddBanding,+ ("duplicateSheet" .=) <$> _reqDuplicateSheet,+ ("autoFill" .=) <$> _reqAutoFill,+ ("updateDimensionProperties" .=) <$>+ _reqUpdateDimensionProperties,+ ("updateChartSpec" .=) <$> _reqUpdateChartSpec,+ ("setBasicFilter" .=) <$> _reqSetBasicFilter,+ ("textToColumns" .=) <$> _reqTextToColumns,+ ("addDimensionGroup" .=) <$> _reqAddDimensionGroup,+ ("updateSpreadsheetProperties" .=) <$>+ _reqUpdateSpreadsheetProperties,+ ("deleteSheet" .=) <$> _reqDeleteSheet,+ ("unmergeCells" .=) <$> _reqUnmergeCells,+ ("updateBorders" .=) <$> _reqUpdateBOrders,+ ("appendDimension" .=) <$> _reqAppendDimension,+ ("setDataValidation" .=) <$> _reqSetDataValidation])++-- | Properties that describe the style of a line.+--+-- /See:/ 'lineStyle' smart constructor.+data LineStyle =+ LineStyle'+ { _lsWidth :: !(Maybe (Textual Int32))+ , _lsType :: !(Maybe LineStyleType)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'LineStyle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lsWidth'+--+-- * 'lsType'+lineStyle+ :: LineStyle+lineStyle = LineStyle' {_lsWidth = Nothing, _lsType = Nothing}+++-- | The thickness of the line, in px.+lsWidth :: Lens' LineStyle (Maybe Int32)+lsWidth+ = lens _lsWidth (\ s a -> s{_lsWidth = a}) .+ mapping _Coerce++-- | The dash type of the line.+lsType :: Lens' LineStyle (Maybe LineStyleType)+lsType = lens _lsType (\ s a -> s{_lsType = a})++instance FromJSON LineStyle where+ parseJSON+ = withObject "LineStyle"+ (\ o ->+ LineStyle' <$> (o .:? "width") <*> (o .:? "type"))++instance ToJSON LineStyle where+ toJSON LineStyle'{..}+ = object+ (catMaybes+ [("width" .=) <$> _lsWidth, ("type" .=) <$> _lsType])++-- | 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)
gogol-sheets.cabal view
@@ -1,5 +1,5 @@ name: gogol-sheets-version: 0.4.0+version: 0.5.0 synopsis: Google Sheets SDK. homepage: https://github.com/brendanhay/gogol bug-reports: https://github.com/brendanhay/gogol/issues@@ -58,5 +58,5 @@ , Network.Google.Sheets.Types.Sum build-depends:- gogol-core == 0.4.0.*+ gogol-core == 0.5.0.* , base >= 4.7 && < 5