diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`0.1.0`
+`0.1.1`
 
 
 ## Description
diff --git a/gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Append.hs b/gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Append.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Append.hs
@@ -0,0 +1,245 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Sheets.Spreadsheets.Values.Append
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Appends values to a spreadsheet. The input range is used to search for
+-- existing data and find a \"table\" within that range. Values will be
+-- appended to the next row of the table, starting with the first column of
+-- the table. See the [guide](\/sheets\/guides\/values#appending_values)
+-- and [sample code](\/sheets\/samples\/writing#append_values) for specific
+-- details of how tables are detected and data is appended. The caller must
+-- specify the spreadsheet ID, range, and a valueInputOption. The
+-- \`valueInputOption\` only controls how the input data will be added to
+-- the sheet (column-wise or row-wise), it does not influence what cell the
+-- data starts being written to.
+--
+-- /See:/ <https://developers.google.com/sheets/ Google Sheets API Reference> for @sheets.spreadsheets.values.append@.
+module Network.Google.Resource.Sheets.Spreadsheets.Values.Append
+    (
+    -- * REST Resource
+      SpreadsheetsValuesAppendResource
+
+    -- * Creating a Request
+    , spreadsheetsValuesAppend
+    , SpreadsheetsValuesAppend
+
+    -- * Request Lenses
+    , svaXgafv
+    , svaUploadProtocol
+    , svaPp
+    , svaAccessToken
+    , svaSpreadsheetId
+    , svaUploadType
+    , svaValueInputOption
+    , svaPayload
+    , svaInsertDataOption
+    , svaBearerToken
+    , svaRange
+    , svaCallback
+    ) where
+
+import           Network.Google.Prelude
+import           Network.Google.Sheets.Types
+
+-- | A resource alias for @sheets.spreadsheets.values.append@ method which the
+-- 'SpreadsheetsValuesAppend' request conforms to.
+type SpreadsheetsValuesAppendResource =
+     "v4" :>
+       "spreadsheets" :>
+         Capture "spreadsheetId" Text :>
+           "values" :>
+             CaptureMode "range" "append" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "pp" Bool :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "valueInputOption" Text :>
+                           QueryParam "insertDataOption" Text :>
+                             QueryParam "bearer_token" Text :>
+                               QueryParam "callback" Text :>
+                                 QueryParam "alt" AltJSON :>
+                                   ReqBody '[JSON] ValueRange :>
+                                     Post '[JSON] AppendValuesResponse
+
+-- | Appends values to a spreadsheet. The input range is used to search for
+-- existing data and find a \"table\" within that range. Values will be
+-- appended to the next row of the table, starting with the first column of
+-- the table. See the [guide](\/sheets\/guides\/values#appending_values)
+-- and [sample code](\/sheets\/samples\/writing#append_values) for specific
+-- details of how tables are detected and data is appended. The caller must
+-- specify the spreadsheet ID, range, and a valueInputOption. The
+-- \`valueInputOption\` only controls how the input data will be added to
+-- the sheet (column-wise or row-wise), it does not influence what cell the
+-- data starts being written to.
+--
+-- /See:/ 'spreadsheetsValuesAppend' smart constructor.
+data SpreadsheetsValuesAppend = SpreadsheetsValuesAppend'
+    { _svaXgafv            :: !(Maybe Xgafv)
+    , _svaUploadProtocol   :: !(Maybe Text)
+    , _svaPp               :: !Bool
+    , _svaAccessToken      :: !(Maybe Text)
+    , _svaSpreadsheetId    :: !Text
+    , _svaUploadType       :: !(Maybe Text)
+    , _svaValueInputOption :: !(Maybe Text)
+    , _svaPayload          :: !ValueRange
+    , _svaInsertDataOption :: !(Maybe Text)
+    , _svaBearerToken      :: !(Maybe Text)
+    , _svaRange            :: !Text
+    , _svaCallback         :: !(Maybe Text)
+    } 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:
+--
+-- * 'svaXgafv'
+--
+-- * 'svaUploadProtocol'
+--
+-- * 'svaPp'
+--
+-- * 'svaAccessToken'
+--
+-- * 'svaSpreadsheetId'
+--
+-- * 'svaUploadType'
+--
+-- * 'svaValueInputOption'
+--
+-- * 'svaPayload'
+--
+-- * 'svaInsertDataOption'
+--
+-- * 'svaBearerToken'
+--
+-- * 'svaRange'
+--
+-- * 'svaCallback'
+spreadsheetsValuesAppend
+    :: Text -- ^ 'svaSpreadsheetId'
+    -> ValueRange -- ^ 'svaPayload'
+    -> Text -- ^ 'svaRange'
+    -> SpreadsheetsValuesAppend
+spreadsheetsValuesAppend pSvaSpreadsheetId_ pSvaPayload_ pSvaRange_ =
+    SpreadsheetsValuesAppend'
+    { _svaXgafv = Nothing
+    , _svaUploadProtocol = Nothing
+    , _svaPp = True
+    , _svaAccessToken = Nothing
+    , _svaSpreadsheetId = pSvaSpreadsheetId_
+    , _svaUploadType = Nothing
+    , _svaValueInputOption = Nothing
+    , _svaPayload = pSvaPayload_
+    , _svaInsertDataOption = Nothing
+    , _svaBearerToken = Nothing
+    , _svaRange = pSvaRange_
+    , _svaCallback = Nothing
+    }
+
+-- | V1 error format.
+svaXgafv :: Lens' SpreadsheetsValuesAppend (Maybe Xgafv)
+svaXgafv = lens _svaXgafv (\ s a -> s{_svaXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+svaUploadProtocol :: Lens' SpreadsheetsValuesAppend (Maybe Text)
+svaUploadProtocol
+  = lens _svaUploadProtocol
+      (\ s a -> s{_svaUploadProtocol = a})
+
+-- | Pretty-print response.
+svaPp :: Lens' SpreadsheetsValuesAppend Bool
+svaPp = lens _svaPp (\ s a -> s{_svaPp = a})
+
+-- | OAuth access token.
+svaAccessToken :: Lens' SpreadsheetsValuesAppend (Maybe Text)
+svaAccessToken
+  = lens _svaAccessToken
+      (\ s a -> s{_svaAccessToken = a})
+
+-- | The ID of the spreadsheet to update.
+svaSpreadsheetId :: Lens' SpreadsheetsValuesAppend Text
+svaSpreadsheetId
+  = lens _svaSpreadsheetId
+      (\ s a -> s{_svaSpreadsheetId = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+svaUploadType :: Lens' SpreadsheetsValuesAppend (Maybe Text)
+svaUploadType
+  = lens _svaUploadType
+      (\ s a -> s{_svaUploadType = a})
+
+-- | How the input data should be interpreted.
+svaValueInputOption :: Lens' SpreadsheetsValuesAppend (Maybe Text)
+svaValueInputOption
+  = lens _svaValueInputOption
+      (\ s a -> s{_svaValueInputOption = a})
+
+-- | Multipart request metadata.
+svaPayload :: Lens' SpreadsheetsValuesAppend ValueRange
+svaPayload
+  = lens _svaPayload (\ s a -> s{_svaPayload = a})
+
+-- | How the input data should be inserted.
+svaInsertDataOption :: Lens' SpreadsheetsValuesAppend (Maybe Text)
+svaInsertDataOption
+  = lens _svaInsertDataOption
+      (\ s a -> s{_svaInsertDataOption = a})
+
+-- | OAuth bearer token.
+svaBearerToken :: Lens' SpreadsheetsValuesAppend (Maybe Text)
+svaBearerToken
+  = lens _svaBearerToken
+      (\ s a -> s{_svaBearerToken = a})
+
+-- | The A1 notation of a range to search for a logical table of data. Values
+-- will be appended after the last row of the table.
+svaRange :: Lens' SpreadsheetsValuesAppend Text
+svaRange = lens _svaRange (\ s a -> s{_svaRange = a})
+
+-- | JSONP
+svaCallback :: Lens' SpreadsheetsValuesAppend (Maybe Text)
+svaCallback
+  = lens _svaCallback (\ s a -> s{_svaCallback = a})
+
+instance GoogleRequest SpreadsheetsValuesAppend where
+        type Rs SpreadsheetsValuesAppend =
+             AppendValuesResponse
+        type Scopes SpreadsheetsValuesAppend =
+             '["https://www.googleapis.com/auth/drive",
+               "https://www.googleapis.com/auth/spreadsheets"]
+        requestClient SpreadsheetsValuesAppend'{..}
+          = go _svaSpreadsheetId _svaRange _svaXgafv
+              _svaUploadProtocol
+              (Just _svaPp)
+              _svaAccessToken
+              _svaUploadType
+              _svaValueInputOption
+              _svaInsertDataOption
+              _svaBearerToken
+              _svaCallback
+              (Just AltJSON)
+              _svaPayload
+              sheetsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy SpreadsheetsValuesAppendResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchClear.hs b/gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchClear.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Sheets/Spreadsheets/Values/BatchClear.hs
@@ -0,0 +1,197 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Sheets.Spreadsheets.Values.BatchClear
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Clears one or more ranges of values from a spreadsheet. The caller must
+-- specify the spreadsheet ID and one or more ranges. Only values are
+-- cleared -- all other properties of the cell (such as formatting, data
+-- validation, etc..) are kept.
+--
+-- /See:/ <https://developers.google.com/sheets/ Google Sheets API Reference> for @sheets.spreadsheets.values.batchClear@.
+module Network.Google.Resource.Sheets.Spreadsheets.Values.BatchClear
+    (
+    -- * REST Resource
+      SpreadsheetsValuesBatchClearResource
+
+    -- * Creating a Request
+    , spreadsheetsValuesBatchClear
+    , SpreadsheetsValuesBatchClear
+
+    -- * Request Lenses
+    , svbcXgafv
+    , svbcUploadProtocol
+    , svbcPp
+    , svbcAccessToken
+    , svbcSpreadsheetId
+    , svbcUploadType
+    , svbcPayload
+    , svbcBearerToken
+    , svbcCallback
+    ) where
+
+import           Network.Google.Prelude
+import           Network.Google.Sheets.Types
+
+-- | A resource alias for @sheets.spreadsheets.values.batchClear@ method which the
+-- 'SpreadsheetsValuesBatchClear' request conforms to.
+type SpreadsheetsValuesBatchClearResource =
+     "v4" :>
+       "spreadsheets" :>
+         Capture "spreadsheetId" Text :>
+           "values:batchClear" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "pp" Bool :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "bearer_token" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             ReqBody '[JSON] BatchClearValuesRequest :>
+                               Post '[JSON] BatchClearValuesResponse
+
+-- | Clears one or more ranges of values from a spreadsheet. The caller must
+-- specify the spreadsheet ID and one or more ranges. Only values are
+-- cleared -- all other properties of the cell (such as formatting, data
+-- validation, etc..) are kept.
+--
+-- /See:/ 'spreadsheetsValuesBatchClear' smart constructor.
+data SpreadsheetsValuesBatchClear = SpreadsheetsValuesBatchClear'
+    { _svbcXgafv          :: !(Maybe Xgafv)
+    , _svbcUploadProtocol :: !(Maybe Text)
+    , _svbcPp             :: !Bool
+    , _svbcAccessToken    :: !(Maybe Text)
+    , _svbcSpreadsheetId  :: !Text
+    , _svbcUploadType     :: !(Maybe Text)
+    , _svbcPayload        :: !BatchClearValuesRequest
+    , _svbcBearerToken    :: !(Maybe Text)
+    , _svbcCallback       :: !(Maybe Text)
+    } 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:
+--
+-- * 'svbcXgafv'
+--
+-- * 'svbcUploadProtocol'
+--
+-- * 'svbcPp'
+--
+-- * 'svbcAccessToken'
+--
+-- * 'svbcSpreadsheetId'
+--
+-- * 'svbcUploadType'
+--
+-- * 'svbcPayload'
+--
+-- * 'svbcBearerToken'
+--
+-- * 'svbcCallback'
+spreadsheetsValuesBatchClear
+    :: Text -- ^ 'svbcSpreadsheetId'
+    -> BatchClearValuesRequest -- ^ 'svbcPayload'
+    -> SpreadsheetsValuesBatchClear
+spreadsheetsValuesBatchClear pSvbcSpreadsheetId_ pSvbcPayload_ =
+    SpreadsheetsValuesBatchClear'
+    { _svbcXgafv = Nothing
+    , _svbcUploadProtocol = Nothing
+    , _svbcPp = True
+    , _svbcAccessToken = Nothing
+    , _svbcSpreadsheetId = pSvbcSpreadsheetId_
+    , _svbcUploadType = Nothing
+    , _svbcPayload = pSvbcPayload_
+    , _svbcBearerToken = Nothing
+    , _svbcCallback = Nothing
+    }
+
+-- | V1 error format.
+svbcXgafv :: Lens' SpreadsheetsValuesBatchClear (Maybe Xgafv)
+svbcXgafv
+  = lens _svbcXgafv (\ s a -> s{_svbcXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+svbcUploadProtocol :: Lens' SpreadsheetsValuesBatchClear (Maybe Text)
+svbcUploadProtocol
+  = lens _svbcUploadProtocol
+      (\ s a -> s{_svbcUploadProtocol = a})
+
+-- | Pretty-print response.
+svbcPp :: Lens' SpreadsheetsValuesBatchClear Bool
+svbcPp = lens _svbcPp (\ s a -> s{_svbcPp = a})
+
+-- | OAuth access token.
+svbcAccessToken :: Lens' SpreadsheetsValuesBatchClear (Maybe Text)
+svbcAccessToken
+  = lens _svbcAccessToken
+      (\ s a -> s{_svbcAccessToken = a})
+
+-- | The ID of the spreadsheet to update.
+svbcSpreadsheetId :: Lens' SpreadsheetsValuesBatchClear Text
+svbcSpreadsheetId
+  = lens _svbcSpreadsheetId
+      (\ s a -> s{_svbcSpreadsheetId = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+svbcUploadType :: Lens' SpreadsheetsValuesBatchClear (Maybe Text)
+svbcUploadType
+  = lens _svbcUploadType
+      (\ s a -> s{_svbcUploadType = a})
+
+-- | Multipart request metadata.
+svbcPayload :: Lens' SpreadsheetsValuesBatchClear BatchClearValuesRequest
+svbcPayload
+  = lens _svbcPayload (\ s a -> s{_svbcPayload = a})
+
+-- | OAuth bearer token.
+svbcBearerToken :: Lens' SpreadsheetsValuesBatchClear (Maybe Text)
+svbcBearerToken
+  = lens _svbcBearerToken
+      (\ s a -> s{_svbcBearerToken = a})
+
+-- | JSONP
+svbcCallback :: Lens' SpreadsheetsValuesBatchClear (Maybe Text)
+svbcCallback
+  = lens _svbcCallback (\ s a -> s{_svbcCallback = a})
+
+instance GoogleRequest SpreadsheetsValuesBatchClear
+         where
+        type Rs SpreadsheetsValuesBatchClear =
+             BatchClearValuesResponse
+        type Scopes SpreadsheetsValuesBatchClear =
+             '["https://www.googleapis.com/auth/drive",
+               "https://www.googleapis.com/auth/spreadsheets"]
+        requestClient SpreadsheetsValuesBatchClear'{..}
+          = go _svbcSpreadsheetId _svbcXgafv
+              _svbcUploadProtocol
+              (Just _svbcPp)
+              _svbcAccessToken
+              _svbcUploadType
+              _svbcBearerToken
+              _svbcCallback
+              (Just AltJSON)
+              _svbcPayload
+              sheetsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy SpreadsheetsValuesBatchClearResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Clear.hs b/gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Clear.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Sheets/Spreadsheets/Values/Clear.hs
@@ -0,0 +1,205 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Sheets.Spreadsheets.Values.Clear
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Clears values from a spreadsheet. The caller must specify the
+-- spreadsheet ID and range. Only values are cleared -- all other
+-- properties of the cell (such as formatting, data validation, etc..) are
+-- kept.
+--
+-- /See:/ <https://developers.google.com/sheets/ Google Sheets API Reference> for @sheets.spreadsheets.values.clear@.
+module Network.Google.Resource.Sheets.Spreadsheets.Values.Clear
+    (
+    -- * REST Resource
+      SpreadsheetsValuesClearResource
+
+    -- * Creating a Request
+    , spreadsheetsValuesClear
+    , SpreadsheetsValuesClear
+
+    -- * Request Lenses
+    , svcXgafv
+    , svcUploadProtocol
+    , svcPp
+    , svcAccessToken
+    , svcSpreadsheetId
+    , svcUploadType
+    , svcPayload
+    , svcBearerToken
+    , svcRange
+    , svcCallback
+    ) where
+
+import           Network.Google.Prelude
+import           Network.Google.Sheets.Types
+
+-- | A resource alias for @sheets.spreadsheets.values.clear@ method which the
+-- 'SpreadsheetsValuesClear' request conforms to.
+type SpreadsheetsValuesClearResource =
+     "v4" :>
+       "spreadsheets" :>
+         Capture "spreadsheetId" Text :>
+           "values" :>
+             CaptureMode "range" "clear" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "pp" Bool :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "bearer_token" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               ReqBody '[JSON] ClearValuesRequest :>
+                                 Post '[JSON] ClearValuesResponse
+
+-- | Clears values from a spreadsheet. The caller must specify the
+-- spreadsheet ID and range. Only values are cleared -- all other
+-- properties of the cell (such as formatting, data validation, etc..) are
+-- kept.
+--
+-- /See:/ 'spreadsheetsValuesClear' smart constructor.
+data SpreadsheetsValuesClear = SpreadsheetsValuesClear'
+    { _svcXgafv          :: !(Maybe Xgafv)
+    , _svcUploadProtocol :: !(Maybe Text)
+    , _svcPp             :: !Bool
+    , _svcAccessToken    :: !(Maybe Text)
+    , _svcSpreadsheetId  :: !Text
+    , _svcUploadType     :: !(Maybe Text)
+    , _svcPayload        :: !ClearValuesRequest
+    , _svcBearerToken    :: !(Maybe Text)
+    , _svcRange          :: !Text
+    , _svcCallback       :: !(Maybe Text)
+    } 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:
+--
+-- * 'svcXgafv'
+--
+-- * 'svcUploadProtocol'
+--
+-- * 'svcPp'
+--
+-- * 'svcAccessToken'
+--
+-- * 'svcSpreadsheetId'
+--
+-- * 'svcUploadType'
+--
+-- * 'svcPayload'
+--
+-- * 'svcBearerToken'
+--
+-- * 'svcRange'
+--
+-- * 'svcCallback'
+spreadsheetsValuesClear
+    :: Text -- ^ 'svcSpreadsheetId'
+    -> ClearValuesRequest -- ^ 'svcPayload'
+    -> Text -- ^ 'svcRange'
+    -> SpreadsheetsValuesClear
+spreadsheetsValuesClear pSvcSpreadsheetId_ pSvcPayload_ pSvcRange_ =
+    SpreadsheetsValuesClear'
+    { _svcXgafv = Nothing
+    , _svcUploadProtocol = Nothing
+    , _svcPp = True
+    , _svcAccessToken = Nothing
+    , _svcSpreadsheetId = pSvcSpreadsheetId_
+    , _svcUploadType = Nothing
+    , _svcPayload = pSvcPayload_
+    , _svcBearerToken = Nothing
+    , _svcRange = pSvcRange_
+    , _svcCallback = Nothing
+    }
+
+-- | V1 error format.
+svcXgafv :: Lens' SpreadsheetsValuesClear (Maybe Xgafv)
+svcXgafv = lens _svcXgafv (\ s a -> s{_svcXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+svcUploadProtocol :: Lens' SpreadsheetsValuesClear (Maybe Text)
+svcUploadProtocol
+  = lens _svcUploadProtocol
+      (\ s a -> s{_svcUploadProtocol = a})
+
+-- | Pretty-print response.
+svcPp :: Lens' SpreadsheetsValuesClear Bool
+svcPp = lens _svcPp (\ s a -> s{_svcPp = a})
+
+-- | OAuth access token.
+svcAccessToken :: Lens' SpreadsheetsValuesClear (Maybe Text)
+svcAccessToken
+  = lens _svcAccessToken
+      (\ s a -> s{_svcAccessToken = a})
+
+-- | The ID of the spreadsheet to update.
+svcSpreadsheetId :: Lens' SpreadsheetsValuesClear Text
+svcSpreadsheetId
+  = lens _svcSpreadsheetId
+      (\ s a -> s{_svcSpreadsheetId = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+svcUploadType :: Lens' SpreadsheetsValuesClear (Maybe Text)
+svcUploadType
+  = lens _svcUploadType
+      (\ s a -> s{_svcUploadType = a})
+
+-- | Multipart request metadata.
+svcPayload :: Lens' SpreadsheetsValuesClear ClearValuesRequest
+svcPayload
+  = lens _svcPayload (\ s a -> s{_svcPayload = a})
+
+-- | OAuth bearer token.
+svcBearerToken :: Lens' SpreadsheetsValuesClear (Maybe Text)
+svcBearerToken
+  = lens _svcBearerToken
+      (\ s a -> s{_svcBearerToken = a})
+
+-- | The A1 notation of the values to clear.
+svcRange :: Lens' SpreadsheetsValuesClear Text
+svcRange = lens _svcRange (\ s a -> s{_svcRange = a})
+
+-- | JSONP
+svcCallback :: Lens' SpreadsheetsValuesClear (Maybe Text)
+svcCallback
+  = lens _svcCallback (\ s a -> s{_svcCallback = a})
+
+instance GoogleRequest SpreadsheetsValuesClear where
+        type Rs SpreadsheetsValuesClear = ClearValuesResponse
+        type Scopes SpreadsheetsValuesClear =
+             '["https://www.googleapis.com/auth/drive",
+               "https://www.googleapis.com/auth/spreadsheets"]
+        requestClient SpreadsheetsValuesClear'{..}
+          = go _svcSpreadsheetId _svcRange _svcXgafv
+              _svcUploadProtocol
+              (Just _svcPp)
+              _svcAccessToken
+              _svcUploadType
+              _svcBearerToken
+              _svcCallback
+              (Just AltJSON)
+              _svcPayload
+              sheetsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy SpreadsheetsValuesClearResource)
+                      mempty
diff --git a/gen/Network/Google/Sheets.hs b/gen/Network/Google/Sheets.hs
--- a/gen/Network/Google/Sheets.hs
+++ b/gen/Network/Google/Sheets.hs
@@ -44,12 +44,21 @@
     -- ** sheets.spreadsheets.sheets.copyTo
     , module Network.Google.Resource.Sheets.Spreadsheets.Sheets.CopyTo
 
+    -- ** sheets.spreadsheets.values.append
+    , module Network.Google.Resource.Sheets.Spreadsheets.Values.Append
+
+    -- ** sheets.spreadsheets.values.batchClear
+    , module Network.Google.Resource.Sheets.Spreadsheets.Values.BatchClear
+
     -- ** sheets.spreadsheets.values.batchGet
     , module Network.Google.Resource.Sheets.Spreadsheets.Values.BatchGet
 
     -- ** sheets.spreadsheets.values.batchUpdate
     , module Network.Google.Resource.Sheets.Spreadsheets.Values.BatchUpdate
 
+    -- ** sheets.spreadsheets.values.clear
+    , module Network.Google.Resource.Sheets.Spreadsheets.Values.Clear
+
     -- ** sheets.spreadsheets.values.get
     , module Network.Google.Resource.Sheets.Spreadsheets.Values.Get
 
@@ -99,6 +108,11 @@
     , chartData
     , cdSourceRange
 
+    -- ** BatchClearValuesRequest
+    , BatchClearValuesRequest
+    , batchClearValuesRequest
+    , bcvrRanges
+
     -- ** BasicChartSeriesTargetAxis
     , BasicChartSeriesTargetAxis (..)
 
@@ -194,6 +208,12 @@
     , gcRowIndex
     , gcSheetId
 
+    -- ** ClearValuesResponse
+    , ClearValuesResponse
+    , clearValuesResponse
+    , cvrClearedRange
+    , cvrSpreadsheetId
+
     -- ** ClearBasicFilterRequest
     , ClearBasicFilterRequest
     , clearBasicFilterRequest
@@ -262,6 +282,13 @@
     , pcsSeries
     , pcsThreeDimensional
 
+    -- ** AppendValuesResponse
+    , AppendValuesResponse
+    , appendValuesResponse
+    , avrSpreadsheetId
+    , avrUpdates
+    , avrTableRange
+
     -- ** DataValidationRule
     , DataValidationRule
     , dataValidationRule
@@ -332,6 +359,10 @@
     , deleteDimensionRequest
     , ddrRange
 
+    -- ** ClearValuesRequest
+    , ClearValuesRequest
+    , clearValuesRequest
+
     -- ** FindReplaceRequest
     , FindReplaceRequest
     , findReplaceRequest
@@ -962,6 +993,12 @@
     , tfBold
     , tfStrikethrough
 
+    -- ** BatchClearValuesResponse
+    , BatchClearValuesResponse
+    , batchClearValuesResponse
+    , bcvrClearedRanges
+    , bcvrSpreadsheetId
+
     -- ** BasicChartDomain
     , BasicChartDomain
     , basicChartDomain
@@ -1069,8 +1106,11 @@
 import           Network.Google.Resource.Sheets.Spreadsheets.Create
 import           Network.Google.Resource.Sheets.Spreadsheets.Get
 import           Network.Google.Resource.Sheets.Spreadsheets.Sheets.CopyTo
+import           Network.Google.Resource.Sheets.Spreadsheets.Values.Append
+import           Network.Google.Resource.Sheets.Spreadsheets.Values.BatchClear
 import           Network.Google.Resource.Sheets.Spreadsheets.Values.BatchGet
 import           Network.Google.Resource.Sheets.Spreadsheets.Values.BatchUpdate
+import           Network.Google.Resource.Sheets.Spreadsheets.Values.Clear
 import           Network.Google.Resource.Sheets.Spreadsheets.Values.Get
 import           Network.Google.Resource.Sheets.Spreadsheets.Values.Update
 import           Network.Google.Sheets.Types
@@ -1082,9 +1122,12 @@
 -- | Represents the entirety of the methods and resources available for the Google Sheets API service.
 type SheetsAPI =
      SpreadsheetsSheetsCopyToResource :<|>
-       SpreadsheetsValuesGetResource
+       SpreadsheetsValuesBatchClearResource
+       :<|> SpreadsheetsValuesGetResource
+       :<|> SpreadsheetsValuesClearResource
        :<|> SpreadsheetsValuesBatchGetResource
        :<|> SpreadsheetsValuesBatchUpdateResource
+       :<|> SpreadsheetsValuesAppendResource
        :<|> SpreadsheetsValuesUpdateResource
        :<|> SpreadsheetsGetResource
        :<|> SpreadsheetsCreateResource
diff --git a/gen/Network/Google/Sheets/Types.hs b/gen/Network/Google/Sheets/Types.hs
--- a/gen/Network/Google/Sheets/Types.hs
+++ b/gen/Network/Google/Sheets/Types.hs
@@ -66,6 +66,11 @@
     , chartData
     , cdSourceRange
 
+    -- * BatchClearValuesRequest
+    , BatchClearValuesRequest
+    , batchClearValuesRequest
+    , bcvrRanges
+
     -- * BasicChartSeriesTargetAxis
     , BasicChartSeriesTargetAxis (..)
 
@@ -161,6 +166,12 @@
     , gcRowIndex
     , gcSheetId
 
+    -- * ClearValuesResponse
+    , ClearValuesResponse
+    , clearValuesResponse
+    , cvrClearedRange
+    , cvrSpreadsheetId
+
     -- * ClearBasicFilterRequest
     , ClearBasicFilterRequest
     , clearBasicFilterRequest
@@ -229,6 +240,13 @@
     , pcsSeries
     , pcsThreeDimensional
 
+    -- * AppendValuesResponse
+    , AppendValuesResponse
+    , appendValuesResponse
+    , avrSpreadsheetId
+    , avrUpdates
+    , avrTableRange
+
     -- * DataValidationRule
     , DataValidationRule
     , dataValidationRule
@@ -299,6 +317,10 @@
     , deleteDimensionRequest
     , ddrRange
 
+    -- * ClearValuesRequest
+    , ClearValuesRequest
+    , clearValuesRequest
+
     -- * FindReplaceRequest
     , FindReplaceRequest
     , findReplaceRequest
@@ -928,6 +950,12 @@
     , tfItalic
     , tfBold
     , tfStrikethrough
+
+    -- * BatchClearValuesResponse
+    , BatchClearValuesResponse
+    , batchClearValuesResponse
+    , bcvrClearedRanges
+    , bcvrSpreadsheetId
 
     -- * BasicChartDomain
     , BasicChartDomain
diff --git a/gen/Network/Google/Sheets/Types/Product.hs b/gen/Network/Google/Sheets/Types/Product.hs
--- a/gen/Network/Google/Sheets/Types/Product.hs
+++ b/gen/Network/Google/Sheets/Types/Product.hs
@@ -123,7 +123,9 @@
 
 -- | 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.
+-- 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})
 
@@ -328,6 +330,43 @@
           = 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])
+
 -- | Properties of a spreadsheet.
 --
 -- /See:/ 'spreadsheetProperties' smart constructor.
@@ -552,8 +591,9 @@
     }
 
 -- | The properties the new sheet should have. All properties are optional.
--- If a sheetId is specified, the sheet will use that ID. (It is an error
--- to specify the ID of a sheet that already exists.)
+-- 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
@@ -1112,6 +1152,58 @@
                   ("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.
@@ -1649,6 +1741,67 @@
                   ("series" .=) <$> _pcsSeries,
                   ("threeDimensional" .=) <$> _pcsThreeDimensional])
 
+-- | 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.
@@ -2113,7 +2266,9 @@
     { _aprrProtectedRange = Nothing
     }
 
--- | The protected range to be added.
+-- | 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
@@ -2285,6 +2440,27 @@
         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.
@@ -4484,7 +4660,9 @@
     }
 
 -- | The chart that should be added to the spreadsheet, including the
--- position where it should be placed.
+-- 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})
 
@@ -4634,8 +4812,8 @@
 boColor :: Lens' BOrder (Maybe Color)
 boColor = lens _boColor (\ s a -> s{_boColor = a})
 
--- | The width of the border, in pixels. Border widths must be between 0 and
--- 3 pixels, inclusive.
+-- | 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}) .
@@ -4763,9 +4941,9 @@
     { _aNamedRange = Nothing
     }
 
--- | The named range to add. If a non-empty namedRangeId is specified, the
--- named range will use that ID. (It is an error to specify the ID of a
--- named range that already exists.)
+-- | 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})
@@ -5924,7 +6102,9 @@
     { _aFilter = Nothing
     }
 
--- | The filter to add.
+-- | 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})
 
@@ -6265,9 +6445,7 @@
     , _uprrFields = Nothing
     }
 
--- | The protected range to update with the new properties. If a nonzero
--- protectedRangeId is specified, the protected range will use that ID. (It
--- is an error to specify the ID of a protected range that already exists.)
+-- | The protected range to update with the new properties.
 uprrProtectedRange :: Lens' UpdateProtectedRangeRequest (Maybe ProtectedRange)
 uprrProtectedRange
   = lens _uprrProtectedRange
@@ -6643,7 +6821,9 @@
     }
 
 -- | 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.
+-- on the user\'s locale will be used if necessary for the given type. See
+-- the [Date and Number Formats guide](\/sheets\/guides\/formats) for more
+-- information about the supported patterns.
 nfPattern :: Lens' NumberFormat (Maybe Text)
 nfPattern
   = lens _nfPattern (\ s a -> s{_nfPattern = a})
@@ -7246,6 +7426,61 @@
                   ("underline" .=) <$> _tfUnderline,
                   ("italic" .=) <$> _tfItalic, ("bold" .=) <$> _tfBold,
                   ("strikethrough" .=) <$> _tfStrikethrough])
+
+-- | The response when updating 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])
 
 -- | The domain of a chart. For example, if charting stock prices over time,
 -- this would be the date.
diff --git a/gen/Network/Google/Sheets/Types/Sum.hs b/gen/Network/Google/Sheets/Types/Sum.hs
--- a/gen/Network/Google/Sheets/Types/Sum.hs
+++ b/gen/Network/Google/Sheets/Types/Sum.hs
@@ -904,13 +904,11 @@
     | TextStartsWith
       -- ^ @TEXT_STARTS_WITH@
       -- The cell\'s value must start with the condition\'s value. Supported by
-      -- data validation, conditional formatting and filters. Requires a single
-      -- ConditionValue.
+      -- conditional formatting and filters. Requires a single ConditionValue.
     | TextEndsWith
       -- ^ @TEXT_ENDS_WITH@
       -- The cell\'s value must end with the condition\'s value. Supported by
-      -- data validation, conditional formatting and filters. Requires a single
-      -- ConditionValue.
+      -- conditional formatting and filters. Requires a single ConditionValue.
     | TextEQ
       -- ^ @TEXT_EQ@
       -- The cell\'s value must be exactly the condition\'s value. Supported by
@@ -942,13 +940,13 @@
     | DateOnOrBefore
       -- ^ @DATE_ON_OR_BEFORE@
       -- The cell\'s value must be on or before the date of the condition\'s
-      -- value. Supported by data validation, conditional formatting and filters.
-      -- Requires a single ConditionValue that may be a relative date.
+      -- value. Supported by data validation. Requires a single ConditionValue
+      -- that may be a relative date.
     | DateOnOrAfter
       -- ^ @DATE_ON_OR_AFTER@
       -- The cell\'s value must be on or after the date of the condition\'s
-      -- value. Supported by data validation, conditional formatting and filters.
-      -- Requires a single ConditionValue that may be a relative date.
+      -- value. Supported by data validation. Requires a single ConditionValue
+      -- that may be a relative date.
     | DateBetween
       -- ^ @DATE_BETWEEN@
       -- The cell\'s value must be between the dates of the two condition values.
@@ -973,12 +971,12 @@
       -- in the list. Formulas are not supported in the values.
     | Blank
       -- ^ @BLANK@
-      -- The cell\'s value must be empty. Supported by data validation,
-      -- conditional formatting and filters. Requires no ConditionValues.
+      -- The cell\'s value must be empty. Supported by conditional formatting and
+      -- filters. Requires no ConditionValues.
     | NotBlank
       -- ^ @NOT_BLANK@
-      -- The cell\'s value must not be empty. Supported by data validation,
-      -- conditional formatting and filters. Requires no ConditionValues.
+      -- The cell\'s value must not be empty. Supported by conditional formatting
+      -- and filters. Requires no ConditionValues.
     | CustomFormula
       -- ^ @CUSTOM_FORMULA@
       -- The condition\'s formula must evaluate to true. Supported by data
@@ -1487,7 +1485,13 @@
       -- The border is dashed.
     | Solid
       -- ^ @SOLID@
-      -- The border is a solid line.
+      -- The border is a thin solid line.
+    | SolidMedium
+      -- ^ @SOLID_MEDIUM@
+      -- The border is a medium solid line.
+    | SolidThick
+      -- ^ @SOLID_THICK@
+      -- The border is a thick solid line.
     | None
       -- ^ @NONE@
       -- No border. Used only when updating a border in order to erase it.
@@ -1504,6 +1508,8 @@
         "DOTTED" -> Right Dotted
         "DASHED" -> Right Dashed
         "SOLID" -> Right Solid
+        "SOLID_MEDIUM" -> Right SolidMedium
+        "SOLID_THICK" -> Right SolidThick
         "NONE" -> Right None
         "DOUBLE" -> Right Double
         x -> Left ("Unable to parse BOrderStyle from: " <> x)
@@ -1514,6 +1520,8 @@
         Dotted -> "DOTTED"
         Dashed -> "DASHED"
         Solid -> "SOLID"
+        SolidMedium -> "SOLID_MEDIUM"
+        SolidThick -> "SOLID_THICK"
         None -> "NONE"
         Double -> "DOUBLE"
 
diff --git a/gogol-sheets.cabal b/gogol-sheets.cabal
--- a/gogol-sheets.cabal
+++ b/gogol-sheets.cabal
@@ -1,5 +1,5 @@
 name:                  gogol-sheets
-version:               0.1.0
+version:               0.1.1
 synopsis:              Google Sheets SDK.
 homepage:              https://github.com/brendanhay/gogol
 bug-reports:           https://github.com/brendanhay/gogol/issues
@@ -11,7 +11,7 @@
 category:              Network, Google, Cloud
 build-type:            Simple
 cabal-version:         >= 1.10
-extra-source-files:    README.md
+extra-source-files:    README.md src/.gitkeep
 
 description:
     Reads and writes Google Sheets.
@@ -37,8 +37,11 @@
         , Network.Google.Resource.Sheets.Spreadsheets.Create
         , Network.Google.Resource.Sheets.Spreadsheets.Get
         , Network.Google.Resource.Sheets.Spreadsheets.Sheets.CopyTo
+        , Network.Google.Resource.Sheets.Spreadsheets.Values.Append
+        , Network.Google.Resource.Sheets.Spreadsheets.Values.BatchClear
         , Network.Google.Resource.Sheets.Spreadsheets.Values.BatchGet
         , Network.Google.Resource.Sheets.Spreadsheets.Values.BatchUpdate
+        , Network.Google.Resource.Sheets.Spreadsheets.Values.Clear
         , Network.Google.Resource.Sheets.Spreadsheets.Values.Get
         , Network.Google.Resource.Sheets.Spreadsheets.Values.Update
         , Network.Google.Sheets
@@ -49,5 +52,5 @@
         , Network.Google.Sheets.Types.Sum
 
     build-depends:
-          gogol-core == 0.1.0.*
+          gogol-core == 0.1.1.*
         , base       >= 4.7 && < 5
diff --git a/src/.gitkeep b/src/.gitkeep
new file mode 100644
--- /dev/null
+++ b/src/.gitkeep
