diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`0.0.1`
+`0.1.0`
 
 
 ## Description
@@ -18,9 +18,9 @@
 
 ## Contribute
 
-For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).
+For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues).
 
-> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.
+> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.
 
 
 ## Licence
diff --git a/gen/Network/Google/Gmail.hs b/gen/Network/Google/Gmail.hs
--- a/gen/Network/Google/Gmail.hs
+++ b/gen/Network/Google/Gmail.hs
@@ -7,13 +7,13 @@
 
 -- |
 -- Module      : Network.Google.Gmail
--- Copyright   : (c) 2015 Brendan Hay
+-- 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)
 --
--- The Gmail REST API.
+-- Access Gmail mailboxes including sending user email.
 --
 -- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference>
 module Network.Google.Gmail
@@ -21,6 +21,15 @@
     -- * Service Configuration
       gmailService
 
+    -- * OAuth Scopes
+    , mailGoogleComScope
+    , gmailModifyScope
+    , gmailLabelsScope
+    , gmailSendScope
+    , gmailInsertScope
+    , gmailComposeScope
+    , gmailReadOnlyScope
+
     -- * API Declaration
     , GmailAPI
 
@@ -71,6 +80,9 @@
     -- ** gmail.users.messages.attachments.get
     , module Network.Google.Resource.Gmail.Users.Messages.Attachments.Get
 
+    -- ** gmail.users.messages.batchDelete
+    , module Network.Google.Resource.Gmail.Users.Messages.BatchDelete
+
     -- ** gmail.users.messages.delete
     , module Network.Google.Resource.Gmail.Users.Messages.Delete
 
@@ -124,6 +136,11 @@
 
     -- * Types
 
+    -- ** BatchDeleteMessagesRequest
+    , BatchDeleteMessagesRequest
+    , batchDeleteMessagesRequest
+    , bdmrIds
+
     -- ** UsersMessagesGetFormat
     , UsersMessagesGetFormat (..)
 
@@ -330,6 +347,7 @@
 import           Network.Google.Resource.Gmail.Users.Labels.Patch
 import           Network.Google.Resource.Gmail.Users.Labels.Update
 import           Network.Google.Resource.Gmail.Users.Messages.Attachments.Get
+import           Network.Google.Resource.Gmail.Users.Messages.BatchDelete
 import           Network.Google.Resource.Gmail.Users.Messages.Delete
 import           Network.Google.Resource.Gmail.Users.Messages.Get
 import           Network.Google.Resource.Gmail.Users.Messages.Import
@@ -380,6 +398,7 @@
        :<|> UsersMessagesSendResource
        :<|> UsersMessagesUntrashResource
        :<|> UsersMessagesImportResource
+       :<|> UsersMessagesBatchDeleteResource
        :<|> UsersMessagesModifyResource
        :<|> UsersMessagesDeleteResource
        :<|> UsersGetProFileResource
diff --git a/gen/Network/Google/Gmail/Types.hs b/gen/Network/Google/Gmail/Types.hs
--- a/gen/Network/Google/Gmail/Types.hs
+++ b/gen/Network/Google/Gmail/Types.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE DataKinds          #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE DeriveGeneric      #-}
 {-# LANGUAGE NoImplicitPrelude  #-}
@@ -7,7 +8,7 @@
 
 -- |
 -- Module      : Network.Google.Gmail.Types
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -19,14 +20,19 @@
       gmailService
 
     -- * OAuth Scopes
-    , gmailAllScope
+    , mailGoogleComScope
     , gmailModifyScope
     , gmailLabelsScope
     , gmailSendScope
     , gmailInsertScope
     , gmailComposeScope
-    , gmailReadonlyScope
+    , gmailReadOnlyScope
 
+    -- * BatchDeleteMessagesRequest
+    , BatchDeleteMessagesRequest
+    , batchDeleteMessagesRequest
+    , bdmrIds
+
     -- * UsersMessagesGetFormat
     , UsersMessagesGetFormat (..)
 
@@ -221,35 +227,35 @@
 import           Network.Google.Prelude
 
 -- | Default request referring to version 'v1' of the Gmail API. This contains the host and root path used as a starting point for constructing service requests.
-gmailService :: Service
+gmailService :: ServiceConfig
 gmailService
   = defaultService (ServiceId "gmail:v1")
       "www.googleapis.com"
 
 -- | View and manage your mail
-gmailAllScope :: OAuthScope
-gmailAllScope = "https://mail.google.com/";
+mailGoogleComScope :: Proxy '["https://mail.google.com/"]
+mailGoogleComScope = Proxy;
 
 -- | View and modify but not delete your email
-gmailModifyScope :: OAuthScope
-gmailModifyScope = "https://www.googleapis.com/auth/gmail.modify";
+gmailModifyScope :: Proxy '["https://www.googleapis.com/auth/gmail.modify"]
+gmailModifyScope = Proxy;
 
 -- | Manage mailbox labels
-gmailLabelsScope :: OAuthScope
-gmailLabelsScope = "https://www.googleapis.com/auth/gmail.labels";
+gmailLabelsScope :: Proxy '["https://www.googleapis.com/auth/gmail.labels"]
+gmailLabelsScope = Proxy;
 
 -- | Send email on your behalf
-gmailSendScope :: OAuthScope
-gmailSendScope = "https://www.googleapis.com/auth/gmail.send";
+gmailSendScope :: Proxy '["https://www.googleapis.com/auth/gmail.send"]
+gmailSendScope = Proxy;
 
 -- | Insert mail into your mailbox
-gmailInsertScope :: OAuthScope
-gmailInsertScope = "https://www.googleapis.com/auth/gmail.insert";
+gmailInsertScope :: Proxy '["https://www.googleapis.com/auth/gmail.insert"]
+gmailInsertScope = Proxy;
 
 -- | Manage drafts and send emails
-gmailComposeScope :: OAuthScope
-gmailComposeScope = "https://www.googleapis.com/auth/gmail.compose";
+gmailComposeScope :: Proxy '["https://www.googleapis.com/auth/gmail.compose"]
+gmailComposeScope = Proxy;
 
 -- | View your emails messages and settings
-gmailReadonlyScope :: OAuthScope
-gmailReadonlyScope = "https://www.googleapis.com/auth/gmail.readonly";
+gmailReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/gmail.readonly"]
+gmailReadOnlyScope = Proxy;
diff --git a/gen/Network/Google/Gmail/Types/Product.hs b/gen/Network/Google/Gmail/Types/Product.hs
--- a/gen/Network/Google/Gmail/Types/Product.hs
+++ b/gen/Network/Google/Gmail/Types/Product.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.Google.Gmail.Types.Product
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,43 @@
 import           Network.Google.Prelude
 
 --
+-- /See:/ 'batchDeleteMessagesRequest' smart constructor.
+newtype BatchDeleteMessagesRequest = BatchDeleteMessagesRequest'
+    { _bdmrIds :: Maybe [Text]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BatchDeleteMessagesRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bdmrIds'
+batchDeleteMessagesRequest
+    :: BatchDeleteMessagesRequest
+batchDeleteMessagesRequest =
+    BatchDeleteMessagesRequest'
+    { _bdmrIds = Nothing
+    }
+
+-- | The IDs of the messages to delete.
+bdmrIds :: Lens' BatchDeleteMessagesRequest [Text]
+bdmrIds
+  = lens _bdmrIds (\ s a -> s{_bdmrIds = a}) . _Default
+      . _Coerce
+
+instance FromJSON BatchDeleteMessagesRequest where
+        parseJSON
+          = withObject "BatchDeleteMessagesRequest"
+              (\ o ->
+                 BatchDeleteMessagesRequest' <$>
+                   (o .:? "ids" .!= mempty))
+
+instance ToJSON BatchDeleteMessagesRequest where
+        toJSON BatchDeleteMessagesRequest'{..}
+          = object (catMaybes [("ids" .=) <$> _bdmrIds])
+
+--
 -- /See:/ 'modifyThreadRequest' smart constructor.
-data ModifyThreadRequest = ModifyThreadRequest
+data ModifyThreadRequest = ModifyThreadRequest'
     { _mtrRemoveLabelIds :: !(Maybe [Text])
     , _mtrAddLabelIds    :: !(Maybe [Text])
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -37,7 +72,7 @@
 modifyThreadRequest
     :: ModifyThreadRequest
 modifyThreadRequest =
-    ModifyThreadRequest
+    ModifyThreadRequest'
     { _mtrRemoveLabelIds = Nothing
     , _mtrAddLabelIds = Nothing
     }
@@ -62,12 +97,12 @@
         parseJSON
           = withObject "ModifyThreadRequest"
               (\ o ->
-                 ModifyThreadRequest <$>
+                 ModifyThreadRequest' <$>
                    (o .:? "removeLabelIds" .!= mempty) <*>
                      (o .:? "addLabelIds" .!= mempty))
 
 instance ToJSON ModifyThreadRequest where
-        toJSON ModifyThreadRequest{..}
+        toJSON ModifyThreadRequest'{..}
           = object
               (catMaybes
                  [("removeLabelIds" .=) <$> _mtrRemoveLabelIds,
@@ -75,7 +110,7 @@
 
 --
 -- /See:/ 'modifyMessageRequest' smart constructor.
-data ModifyMessageRequest = ModifyMessageRequest
+data ModifyMessageRequest = ModifyMessageRequest'
     { _mmrRemoveLabelIds :: !(Maybe [Text])
     , _mmrAddLabelIds    :: !(Maybe [Text])
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -90,7 +125,7 @@
 modifyMessageRequest
     :: ModifyMessageRequest
 modifyMessageRequest =
-    ModifyMessageRequest
+    ModifyMessageRequest'
     { _mmrRemoveLabelIds = Nothing
     , _mmrAddLabelIds = Nothing
     }
@@ -115,12 +150,12 @@
         parseJSON
           = withObject "ModifyMessageRequest"
               (\ o ->
-                 ModifyMessageRequest <$>
+                 ModifyMessageRequest' <$>
                    (o .:? "removeLabelIds" .!= mempty) <*>
                      (o .:? "addLabelIds" .!= mempty))
 
 instance ToJSON ModifyMessageRequest where
-        toJSON ModifyMessageRequest{..}
+        toJSON ModifyMessageRequest'{..}
           = object
               (catMaybes
                  [("removeLabelIds" .=) <$> _mmrRemoveLabelIds,
@@ -130,7 +165,7 @@
 -- affect multiple messages in multiple ways.
 --
 -- /See:/ 'history' smart constructor.
-data History = History
+data History = History'
     { _hLabelsRemoved   :: !(Maybe [HistoryLabelRemoved])
     , _hMessagesDeleted :: !(Maybe [HistoryMessageDeleted])
     , _hMessagesAdded   :: !(Maybe [HistoryMessageAdded])
@@ -157,7 +192,7 @@
 history
     :: History
 history =
-    History
+    History'
     { _hLabelsRemoved = Nothing
     , _hMessagesDeleted = Nothing
     , _hMessagesAdded = Nothing
@@ -216,7 +251,7 @@
         parseJSON
           = withObject "History"
               (\ o ->
-                 History <$>
+                 History' <$>
                    (o .:? "labelsRemoved" .!= mempty) <*>
                      (o .:? "messagesDeleted" .!= mempty)
                      <*> (o .:? "messagesAdded" .!= mempty)
@@ -225,7 +260,7 @@
                      <*> (o .:? "messages" .!= mempty))
 
 instance ToJSON History where
-        toJSON History{..}
+        toJSON History'{..}
           = object
               (catMaybes
                  [("labelsRemoved" .=) <$> _hLabelsRemoved,
@@ -237,7 +272,7 @@
 -- | Profile for a Gmail user.
 --
 -- /See:/ 'proFile' smart constructor.
-data ProFile = ProFile
+data ProFile = ProFile'
     { _pfMessagesTotal :: !(Maybe (Textual Int32))
     , _pfThreadsTotal  :: !(Maybe (Textual Int32))
     , _pfHistoryId     :: !(Maybe (Textual Word64))
@@ -258,7 +293,7 @@
 proFile
     :: ProFile
 proFile =
-    ProFile
+    ProFile'
     { _pfMessagesTotal = Nothing
     , _pfThreadsTotal = Nothing
     , _pfHistoryId = Nothing
@@ -295,13 +330,13 @@
         parseJSON
           = withObject "ProFile"
               (\ o ->
-                 ProFile <$>
+                 ProFile' <$>
                    (o .:? "messagesTotal") <*> (o .:? "threadsTotal")
                      <*> (o .:? "historyId")
                      <*> (o .:? "emailAddress"))
 
 instance ToJSON ProFile where
-        toJSON ProFile{..}
+        toJSON ProFile'{..}
           = object
               (catMaybes
                  [("messagesTotal" .=) <$> _pfMessagesTotal,
@@ -311,7 +346,7 @@
 
 --
 -- /See:/ 'messagePartHeader' smart constructor.
-data MessagePartHeader = MessagePartHeader
+data MessagePartHeader = MessagePartHeader'
     { _mphValue :: !(Maybe Text)
     , _mphName  :: !(Maybe Text)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -326,7 +361,7 @@
 messagePartHeader
     :: MessagePartHeader
 messagePartHeader =
-    MessagePartHeader
+    MessagePartHeader'
     { _mphValue = Nothing
     , _mphName = Nothing
     }
@@ -344,11 +379,11 @@
         parseJSON
           = withObject "MessagePartHeader"
               (\ o ->
-                 MessagePartHeader <$>
+                 MessagePartHeader' <$>
                    (o .:? "value") <*> (o .:? "name"))
 
 instance ToJSON MessagePartHeader where
-        toJSON MessagePartHeader{..}
+        toJSON MessagePartHeader'{..}
           = object
               (catMaybes
                  [("value" .=) <$> _mphValue,
@@ -356,7 +391,7 @@
 
 --
 -- /See:/ 'listHistoryResponse' smart constructor.
-data ListHistoryResponse = ListHistoryResponse
+data ListHistoryResponse = ListHistoryResponse'
     { _lhrNextPageToken :: !(Maybe Text)
     , _lhrHistory       :: !(Maybe [History])
     , _lhrHistoryId     :: !(Maybe (Textual Word64))
@@ -374,7 +409,7 @@
 listHistoryResponse
     :: ListHistoryResponse
 listHistoryResponse =
-    ListHistoryResponse
+    ListHistoryResponse'
     { _lhrNextPageToken = Nothing
     , _lhrHistory = Nothing
     , _lhrHistoryId = Nothing
@@ -404,13 +439,13 @@
         parseJSON
           = withObject "ListHistoryResponse"
               (\ o ->
-                 ListHistoryResponse <$>
+                 ListHistoryResponse' <$>
                    (o .:? "nextPageToken") <*>
                      (o .:? "history" .!= mempty)
                      <*> (o .:? "historyId"))
 
 instance ToJSON ListHistoryResponse where
-        toJSON ListHistoryResponse{..}
+        toJSON ListHistoryResponse'{..}
           = object
               (catMaybes
                  [("nextPageToken" .=) <$> _lhrNextPageToken,
@@ -419,7 +454,7 @@
 
 --
 -- /See:/ 'listThreadsResponse' smart constructor.
-data ListThreadsResponse = ListThreadsResponse
+data ListThreadsResponse = ListThreadsResponse'
     { _ltrNextPageToken      :: !(Maybe Text)
     , _ltrResultSizeEstimate :: !(Maybe (Textual Word32))
     , _ltrThreads            :: !(Maybe [Thread])
@@ -437,7 +472,7 @@
 listThreadsResponse
     :: ListThreadsResponse
 listThreadsResponse =
-    ListThreadsResponse
+    ListThreadsResponse'
     { _ltrNextPageToken = Nothing
     , _ltrResultSizeEstimate = Nothing
     , _ltrThreads = Nothing
@@ -467,13 +502,13 @@
         parseJSON
           = withObject "ListThreadsResponse"
               (\ o ->
-                 ListThreadsResponse <$>
+                 ListThreadsResponse' <$>
                    (o .:? "nextPageToken") <*>
                      (o .:? "resultSizeEstimate")
                      <*> (o .:? "threads" .!= mempty))
 
 instance ToJSON ListThreadsResponse where
-        toJSON ListThreadsResponse{..}
+        toJSON ListThreadsResponse'{..}
           = object
               (catMaybes
                  [("nextPageToken" .=) <$> _ltrNextPageToken,
@@ -483,7 +518,7 @@
 -- | A single MIME message part.
 --
 -- /See:/ 'messagePart' smart constructor.
-data MessagePart = MessagePart
+data MessagePart = MessagePart'
     { _mpParts    :: !(Maybe [MessagePart])
     , _mpBody     :: !(Maybe MessagePartBody)
     , _mpMimeType :: !(Maybe Text)
@@ -510,7 +545,7 @@
 messagePart
     :: MessagePart
 messagePart =
-    MessagePart
+    MessagePart'
     { _mpParts = Nothing
     , _mpBody = Nothing
     , _mpMimeType = Nothing
@@ -561,7 +596,7 @@
         parseJSON
           = withObject "MessagePart"
               (\ o ->
-                 MessagePart <$>
+                 MessagePart' <$>
                    (o .:? "parts" .!= mempty) <*> (o .:? "body") <*>
                      (o .:? "mimeType")
                      <*> (o .:? "headers" .!= mempty)
@@ -569,7 +604,7 @@
                      <*> (o .:? "filename"))
 
 instance ToJSON MessagePart where
-        toJSON MessagePart{..}
+        toJSON MessagePart'{..}
           = object
               (catMaybes
                  [("parts" .=) <$> _mpParts, ("body" .=) <$> _mpBody,
@@ -580,7 +615,7 @@
 
 --
 -- /See:/ 'historyLabelAdded' smart constructor.
-data HistoryLabelAdded = HistoryLabelAdded
+data HistoryLabelAdded = HistoryLabelAdded'
     { _hlaLabelIds :: !(Maybe [Text])
     , _hlaMessage  :: !(Maybe Message)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -595,7 +630,7 @@
 historyLabelAdded
     :: HistoryLabelAdded
 historyLabelAdded =
-    HistoryLabelAdded
+    HistoryLabelAdded'
     { _hlaLabelIds = Nothing
     , _hlaMessage = Nothing
     }
@@ -615,11 +650,11 @@
         parseJSON
           = withObject "HistoryLabelAdded"
               (\ o ->
-                 HistoryLabelAdded <$>
+                 HistoryLabelAdded' <$>
                    (o .:? "labelIds" .!= mempty) <*> (o .:? "message"))
 
 instance ToJSON HistoryLabelAdded where
-        toJSON HistoryLabelAdded{..}
+        toJSON HistoryLabelAdded'{..}
           = object
               (catMaybes
                  [("labelIds" .=) <$> _hlaLabelIds,
@@ -627,7 +662,7 @@
 
 --
 -- /See:/ 'listLabelsResponse' smart constructor.
-newtype ListLabelsResponse = ListLabelsResponse
+newtype ListLabelsResponse = ListLabelsResponse'
     { _llrLabels :: Maybe [Label]
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -639,7 +674,7 @@
 listLabelsResponse
     :: ListLabelsResponse
 listLabelsResponse =
-    ListLabelsResponse
+    ListLabelsResponse'
     { _llrLabels = Nothing
     }
 
@@ -654,15 +689,15 @@
         parseJSON
           = withObject "ListLabelsResponse"
               (\ o ->
-                 ListLabelsResponse <$> (o .:? "labels" .!= mempty))
+                 ListLabelsResponse' <$> (o .:? "labels" .!= mempty))
 
 instance ToJSON ListLabelsResponse where
-        toJSON ListLabelsResponse{..}
+        toJSON ListLabelsResponse'{..}
           = object (catMaybes [("labels" .=) <$> _llrLabels])
 
 --
 -- /See:/ 'historyMessageDeleted' smart constructor.
-newtype HistoryMessageDeleted = HistoryMessageDeleted
+newtype HistoryMessageDeleted = HistoryMessageDeleted'
     { _hmdMessage :: Maybe Message
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -674,7 +709,7 @@
 historyMessageDeleted
     :: HistoryMessageDeleted
 historyMessageDeleted =
-    HistoryMessageDeleted
+    HistoryMessageDeleted'
     { _hmdMessage = Nothing
     }
 
@@ -685,18 +720,18 @@
 instance FromJSON HistoryMessageDeleted where
         parseJSON
           = withObject "HistoryMessageDeleted"
-              (\ o -> HistoryMessageDeleted <$> (o .:? "message"))
+              (\ o -> HistoryMessageDeleted' <$> (o .:? "message"))
 
 instance ToJSON HistoryMessageDeleted where
-        toJSON HistoryMessageDeleted{..}
+        toJSON HistoryMessageDeleted'{..}
           = object (catMaybes [("message" .=) <$> _hmdMessage])
 
 -- | The body of a single MIME message part.
 --
 -- /See:/ 'messagePartBody' smart constructor.
-data MessagePartBody = MessagePartBody
+data MessagePartBody = MessagePartBody'
     { _mpbSize         :: !(Maybe (Textual Int32))
-    , _mpbData         :: !(Maybe (Textual Word8))
+    , _mpbData         :: !(Maybe Base64)
     , _mpbAttachmentId :: !(Maybe Text)
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -712,7 +747,7 @@
 messagePartBody
     :: MessagePartBody
 messagePartBody =
-    MessagePartBody
+    MessagePartBody'
     { _mpbSize = Nothing
     , _mpbData = Nothing
     , _mpbAttachmentId = Nothing
@@ -728,10 +763,10 @@
 -- types that have no message body or when the body data is sent as a
 -- separate attachment. An attachment ID is present if the body data is
 -- contained in a separate attachment.
-mpbData :: Lens' MessagePartBody (Maybe Word8)
+mpbData :: Lens' MessagePartBody (Maybe ByteString)
 mpbData
   = lens _mpbData (\ s a -> s{_mpbData = a}) .
-      mapping _Coerce
+      mapping _Base64
 
 -- | When present, contains the ID of an external attachment that can be
 -- retrieved in a separate messages.attachments.get request. When not
@@ -746,12 +781,12 @@
         parseJSON
           = withObject "MessagePartBody"
               (\ o ->
-                 MessagePartBody <$>
+                 MessagePartBody' <$>
                    (o .:? "size") <*> (o .:? "data") <*>
                      (o .:? "attachmentId"))
 
 instance ToJSON MessagePartBody where
-        toJSON MessagePartBody{..}
+        toJSON MessagePartBody'{..}
           = object
               (catMaybes
                  [("size" .=) <$> _mpbSize, ("data" .=) <$> _mpbData,
@@ -759,7 +794,7 @@
 
 --
 -- /See:/ 'listDraftsResponse' smart constructor.
-data ListDraftsResponse = ListDraftsResponse
+data ListDraftsResponse = ListDraftsResponse'
     { _ldrNextPageToken      :: !(Maybe Text)
     , _ldrResultSizeEstimate :: !(Maybe (Textual Word32))
     , _ldrDrafts             :: !(Maybe [Draft])
@@ -777,7 +812,7 @@
 listDraftsResponse
     :: ListDraftsResponse
 listDraftsResponse =
-    ListDraftsResponse
+    ListDraftsResponse'
     { _ldrNextPageToken = Nothing
     , _ldrResultSizeEstimate = Nothing
     , _ldrDrafts = Nothing
@@ -807,13 +842,13 @@
         parseJSON
           = withObject "ListDraftsResponse"
               (\ o ->
-                 ListDraftsResponse <$>
+                 ListDraftsResponse' <$>
                    (o .:? "nextPageToken") <*>
                      (o .:? "resultSizeEstimate")
                      <*> (o .:? "drafts" .!= mempty))
 
 instance ToJSON ListDraftsResponse where
-        toJSON ListDraftsResponse{..}
+        toJSON ListDraftsResponse'{..}
           = object
               (catMaybes
                  [("nextPageToken" .=) <$> _ldrNextPageToken,
@@ -823,7 +858,7 @@
 -- | Push notification watch response.
 --
 -- /See:/ 'watchResponse' smart constructor.
-data WatchResponse = WatchResponse
+data WatchResponse = WatchResponse'
     { _wrExpiration :: !(Maybe (Textual Int64))
     , _wrHistoryId  :: !(Maybe (Textual Word64))
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -838,7 +873,7 @@
 watchResponse
     :: WatchResponse
 watchResponse =
-    WatchResponse
+    WatchResponse'
     { _wrExpiration = Nothing
     , _wrHistoryId = Nothing
     }
@@ -860,11 +895,11 @@
         parseJSON
           = withObject "WatchResponse"
               (\ o ->
-                 WatchResponse <$>
+                 WatchResponse' <$>
                    (o .:? "expiration") <*> (o .:? "historyId"))
 
 instance ToJSON WatchResponse where
-        toJSON WatchResponse{..}
+        toJSON WatchResponse'{..}
           = object
               (catMaybes
                  [("expiration" .=) <$> _wrExpiration,
@@ -873,7 +908,7 @@
 -- | A draft email in the user\'s mailbox.
 --
 -- /See:/ 'draft' smart constructor.
-data Draft = Draft
+data Draft = Draft'
     { _dId      :: !(Maybe Text)
     , _dMessage :: !(Maybe Message)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -888,7 +923,7 @@
 draft
     :: Draft
 draft =
-    Draft
+    Draft'
     { _dId = Nothing
     , _dMessage = Nothing
     }
@@ -904,10 +939,11 @@
 instance FromJSON Draft where
         parseJSON
           = withObject "Draft"
-              (\ o -> Draft <$> (o .:? "id") <*> (o .:? "message"))
+              (\ o ->
+                 Draft' <$> (o .:? "id") <*> (o .:? "message"))
 
 instance ToJSON Draft where
-        toJSON Draft{..}
+        toJSON Draft'{..}
           = object
               (catMaybes
                  [("id" .=) <$> _dId, ("message" .=) <$> _dMessage])
@@ -915,7 +951,7 @@
 -- | Set up or update a new push notification watch on this user\'s mailbox.
 --
 -- /See:/ 'watchRequest' smart constructor.
-data WatchRequest = WatchRequest
+data WatchRequest = WatchRequest'
     { _wrLabelFilterAction :: !(Maybe WatchRequestLabelFilterAction)
     , _wrTopicName         :: !(Maybe Text)
     , _wrLabelIds          :: !(Maybe [Text])
@@ -933,7 +969,7 @@
 watchRequest
     :: WatchRequest
 watchRequest =
-    WatchRequest
+    WatchRequest'
     { _wrLabelFilterAction = Nothing
     , _wrTopicName = Nothing
     , _wrLabelIds = Nothing
@@ -949,9 +985,9 @@
 -- events to. This topic name **must** already exist in Cloud Pub\/Sub and
 -- you **must** have already granted gmail \"publish\" permission on it.
 -- For example, \"projects\/my-project-identifier\/topics\/my-topic-name\"
--- (using the new Cloud Pub\/Sub \"v1beta2\" topic naming format). Note
--- that the \"my-project-identifier\" portion must exactly match your
--- Google developer project id (the one executing this watch request).
+-- (using the Cloud Pub\/Sub \"v1\" topic naming format). Note that the
+-- \"my-project-identifier\" portion must exactly match your Google
+-- developer project id (the one executing this watch request).
 wrTopicName :: Lens' WatchRequest (Maybe Text)
 wrTopicName
   = lens _wrTopicName (\ s a -> s{_wrTopicName = a})
@@ -969,12 +1005,12 @@
         parseJSON
           = withObject "WatchRequest"
               (\ o ->
-                 WatchRequest <$>
+                 WatchRequest' <$>
                    (o .:? "labelFilterAction") <*> (o .:? "topicName")
                      <*> (o .:? "labelIds" .!= mempty))
 
 instance ToJSON WatchRequest where
-        toJSON WatchRequest{..}
+        toJSON WatchRequest'{..}
           = object
               (catMaybes
                  [("labelFilterAction" .=) <$> _wrLabelFilterAction,
@@ -984,8 +1020,8 @@
 -- | An email message.
 --
 -- /See:/ 'message' smart constructor.
-data Message = Message
-    { _mRaw          :: !(Maybe (Textual Word8))
+data Message = Message'
+    { _mRaw          :: !(Maybe Base64)
     , _mSnippet      :: !(Maybe Text)
     , _mSizeEstimate :: !(Maybe (Textual Int32))
     , _mPayload      :: !(Maybe MessagePart)
@@ -1020,7 +1056,7 @@
 message
     :: Message
 message =
-    Message
+    Message'
     { _mRaw = Nothing
     , _mSnippet = Nothing
     , _mSizeEstimate = Nothing
@@ -1035,10 +1071,10 @@
 -- | The entire email message in an RFC 2822 formatted and base64url encoded
 -- string. Returned in messages.get and drafts.get responses when the
 -- format=RAW parameter is supplied.
-mRaw :: Lens' Message (Maybe Word8)
+mRaw :: Lens' Message (Maybe ByteString)
 mRaw
   = lens _mRaw (\ s a -> s{_mRaw = a}) .
-      mapping _Coerce
+      mapping _Base64
 
 -- | A short part of the message text.
 mSnippet :: Lens' Message (Maybe Text)
@@ -1097,7 +1133,7 @@
         parseJSON
           = withObject "Message"
               (\ o ->
-                 Message <$>
+                 Message' <$>
                    (o .:? "raw") <*> (o .:? "snippet") <*>
                      (o .:? "sizeEstimate")
                      <*> (o .:? "payload")
@@ -1108,7 +1144,7 @@
                      <*> (o .:? "internalDate"))
 
 instance ToJSON Message where
-        toJSON Message{..}
+        toJSON Message'{..}
           = object
               (catMaybes
                  [("raw" .=) <$> _mRaw, ("snippet" .=) <$> _mSnippet,
@@ -1121,7 +1157,7 @@
 
 --
 -- /See:/ 'historyLabelRemoved' smart constructor.
-data HistoryLabelRemoved = HistoryLabelRemoved
+data HistoryLabelRemoved = HistoryLabelRemoved'
     { _hlrLabelIds :: !(Maybe [Text])
     , _hlrMessage  :: !(Maybe Message)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -1136,7 +1172,7 @@
 historyLabelRemoved
     :: HistoryLabelRemoved
 historyLabelRemoved =
-    HistoryLabelRemoved
+    HistoryLabelRemoved'
     { _hlrLabelIds = Nothing
     , _hlrMessage = Nothing
     }
@@ -1156,11 +1192,11 @@
         parseJSON
           = withObject "HistoryLabelRemoved"
               (\ o ->
-                 HistoryLabelRemoved <$>
+                 HistoryLabelRemoved' <$>
                    (o .:? "labelIds" .!= mempty) <*> (o .:? "message"))
 
 instance ToJSON HistoryLabelRemoved where
-        toJSON HistoryLabelRemoved{..}
+        toJSON HistoryLabelRemoved'{..}
           = object
               (catMaybes
                  [("labelIds" .=) <$> _hlrLabelIds,
@@ -1169,7 +1205,7 @@
 -- | A collection of messages representing a conversation.
 --
 -- /See:/ 'thread' smart constructor.
-data Thread = Thread
+data Thread = Thread'
     { _tSnippet   :: !(Maybe Text)
     , _tHistoryId :: !(Maybe (Textual Word64))
     , _tId        :: !(Maybe Text)
@@ -1190,7 +1226,7 @@
 thread
     :: Thread
 thread =
-    Thread
+    Thread'
     { _tSnippet = Nothing
     , _tHistoryId = Nothing
     , _tId = Nothing
@@ -1222,13 +1258,13 @@
         parseJSON
           = withObject "Thread"
               (\ o ->
-                 Thread <$>
+                 Thread' <$>
                    (o .:? "snippet") <*> (o .:? "historyId") <*>
                      (o .:? "id")
                      <*> (o .:? "messages" .!= mempty))
 
 instance ToJSON Thread where
-        toJSON Thread{..}
+        toJSON Thread'{..}
           = object
               (catMaybes
                  [("snippet" .=) <$> _tSnippet,
@@ -1239,7 +1275,7 @@
 -- mailbox.
 --
 -- /See:/ 'label' smart constructor.
-data Label = Label
+data Label = Label'
     { _lThreadsUnread         :: !(Maybe (Textual Int32))
     , _lMessageListVisibility :: !(Maybe LabelMessageListVisibility)
     , _lMessagesTotal         :: !(Maybe (Textual Int32))
@@ -1275,7 +1311,7 @@
 label
     :: Label
 label =
-    Label
+    Label'
     { _lThreadsUnread = Nothing
     , _lMessageListVisibility = Nothing
     , _lMessagesTotal = Nothing
@@ -1352,7 +1388,7 @@
         parseJSON
           = withObject "Label"
               (\ o ->
-                 Label <$>
+                 Label' <$>
                    (o .:? "threadsUnread") <*>
                      (o .:? "messageListVisibility")
                      <*> (o .:? "messagesTotal")
@@ -1364,7 +1400,7 @@
                      <*> (o .:? "type"))
 
 instance ToJSON Label where
-        toJSON Label{..}
+        toJSON Label'{..}
           = object
               (catMaybes
                  [("threadsUnread" .=) <$> _lThreadsUnread,
@@ -1379,7 +1415,7 @@
 
 --
 -- /See:/ 'listMessagesResponse' smart constructor.
-data ListMessagesResponse = ListMessagesResponse
+data ListMessagesResponse = ListMessagesResponse'
     { _lmrNextPageToken      :: !(Maybe Text)
     , _lmrResultSizeEstimate :: !(Maybe (Textual Word32))
     , _lmrMessages           :: !(Maybe [Message])
@@ -1397,7 +1433,7 @@
 listMessagesResponse
     :: ListMessagesResponse
 listMessagesResponse =
-    ListMessagesResponse
+    ListMessagesResponse'
     { _lmrNextPageToken = Nothing
     , _lmrResultSizeEstimate = Nothing
     , _lmrMessages = Nothing
@@ -1427,13 +1463,13 @@
         parseJSON
           = withObject "ListMessagesResponse"
               (\ o ->
-                 ListMessagesResponse <$>
+                 ListMessagesResponse' <$>
                    (o .:? "nextPageToken") <*>
                      (o .:? "resultSizeEstimate")
                      <*> (o .:? "messages" .!= mempty))
 
 instance ToJSON ListMessagesResponse where
-        toJSON ListMessagesResponse{..}
+        toJSON ListMessagesResponse'{..}
           = object
               (catMaybes
                  [("nextPageToken" .=) <$> _lmrNextPageToken,
@@ -1442,7 +1478,7 @@
 
 --
 -- /See:/ 'historyMessageAdded' smart constructor.
-newtype HistoryMessageAdded = HistoryMessageAdded
+newtype HistoryMessageAdded = HistoryMessageAdded'
     { _hmaMessage :: Maybe Message
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -1454,7 +1490,7 @@
 historyMessageAdded
     :: HistoryMessageAdded
 historyMessageAdded =
-    HistoryMessageAdded
+    HistoryMessageAdded'
     { _hmaMessage = Nothing
     }
 
@@ -1465,8 +1501,8 @@
 instance FromJSON HistoryMessageAdded where
         parseJSON
           = withObject "HistoryMessageAdded"
-              (\ o -> HistoryMessageAdded <$> (o .:? "message"))
+              (\ o -> HistoryMessageAdded' <$> (o .:? "message"))
 
 instance ToJSON HistoryMessageAdded where
-        toJSON HistoryMessageAdded{..}
+        toJSON HistoryMessageAdded'{..}
           = object (catMaybes [("message" .=) <$> _hmaMessage])
diff --git a/gen/Network/Google/Gmail/Types/Sum.hs b/gen/Network/Google/Gmail/Types/Sum.hs
--- a/gen/Network/Google/Gmail/Types/Sum.hs
+++ b/gen/Network/Google/Gmail/Types/Sum.hs
@@ -8,7 +8,7 @@
 
 -- |
 -- Module      : Network.Google.Gmail.Types.Sum
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -28,20 +28,20 @@
       -- ^ @minimal@
     | Raw
       -- ^ @raw@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersMessagesGetFormat
 
-instance FromText UsersMessagesGetFormat where
-    fromText = \case
-        "full" -> Just Full
-        "metadata" -> Just Metadata
-        "minimal" -> Just Minimal
-        "raw" -> Just Raw
-        _ -> Nothing
+instance FromHttpApiData UsersMessagesGetFormat where
+    parseQueryParam = \case
+        "full" -> Right Full
+        "metadata" -> Right Metadata
+        "minimal" -> Right Minimal
+        "raw" -> Right Raw
+        x -> Left ("Unable to parse UsersMessagesGetFormat from: " <> x)
 
-instance ToText UsersMessagesGetFormat where
-    toText = \case
+instance ToHttpApiData UsersMessagesGetFormat where
+    toQueryParam = \case
         Full -> "full"
         Metadata -> "metadata"
         Minimal -> "minimal"
@@ -66,18 +66,18 @@
       -- ^ @system@
     | User
       -- ^ @user@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable LabelType
 
-instance FromText LabelType where
-    fromText = \case
-        "system" -> Just System
-        "user" -> Just User
-        _ -> Nothing
+instance FromHttpApiData LabelType where
+    parseQueryParam = \case
+        "system" -> Right System
+        "user" -> Right User
+        x -> Left ("Unable to parse LabelType from: " <> x)
 
-instance ToText LabelType where
-    toText = \case
+instance ToHttpApiData LabelType where
+    toQueryParam = \case
         System -> "system"
         User -> "user"
 
@@ -97,20 +97,20 @@
       -- ^ @minimal@
     | UDGFRaw
       -- ^ @raw@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersDraftsGetFormat
 
-instance FromText UsersDraftsGetFormat where
-    fromText = \case
-        "full" -> Just UDGFFull
-        "metadata" -> Just UDGFMetadata
-        "minimal" -> Just UDGFMinimal
-        "raw" -> Just UDGFRaw
-        _ -> Nothing
+instance FromHttpApiData UsersDraftsGetFormat where
+    parseQueryParam = \case
+        "full" -> Right UDGFFull
+        "metadata" -> Right UDGFMetadata
+        "minimal" -> Right UDGFMinimal
+        "raw" -> Right UDGFRaw
+        x -> Left ("Unable to parse UsersDraftsGetFormat from: " <> x)
 
-instance ToText UsersDraftsGetFormat where
-    toText = \case
+instance ToHttpApiData UsersDraftsGetFormat where
+    toQueryParam = \case
         UDGFFull -> "full"
         UDGFMetadata -> "metadata"
         UDGFMinimal -> "minimal"
@@ -128,18 +128,18 @@
       -- ^ @dateHeader@
     | ReceivedTime
       -- ^ @receivedTime@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersMessagesImportInternalDateSource
 
-instance FromText UsersMessagesImportInternalDateSource where
-    fromText = \case
-        "dateHeader" -> Just DateHeader
-        "receivedTime" -> Just ReceivedTime
-        _ -> Nothing
+instance FromHttpApiData UsersMessagesImportInternalDateSource where
+    parseQueryParam = \case
+        "dateHeader" -> Right DateHeader
+        "receivedTime" -> Right ReceivedTime
+        x -> Left ("Unable to parse UsersMessagesImportInternalDateSource from: " <> x)
 
-instance ToText UsersMessagesImportInternalDateSource where
-    toText = \case
+instance ToHttpApiData UsersMessagesImportInternalDateSource where
+    toQueryParam = \case
         DateHeader -> "dateHeader"
         ReceivedTime -> "receivedTime"
 
@@ -156,18 +156,18 @@
       -- ^ @hide@
     | Show
       -- ^ @show@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable LabelMessageListVisibility
 
-instance FromText LabelMessageListVisibility where
-    fromText = \case
-        "hide" -> Just Hide
-        "show" -> Just Show
-        _ -> Nothing
+instance FromHttpApiData LabelMessageListVisibility where
+    parseQueryParam = \case
+        "hide" -> Right Hide
+        "show" -> Right Show
+        x -> Left ("Unable to parse LabelMessageListVisibility from: " <> x)
 
-instance ToText LabelMessageListVisibility where
-    toText = \case
+instance ToHttpApiData LabelMessageListVisibility where
+    toQueryParam = \case
         Hide -> "hide"
         Show -> "show"
 
@@ -186,19 +186,19 @@
       -- ^ @labelShow@
     | LabelShowIfUnread
       -- ^ @labelShowIfUnread@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable LabelLabelListVisibility
 
-instance FromText LabelLabelListVisibility where
-    fromText = \case
-        "labelHide" -> Just LabelHide
-        "labelShow" -> Just LabelShow
-        "labelShowIfUnread" -> Just LabelShowIfUnread
-        _ -> Nothing
+instance FromHttpApiData LabelLabelListVisibility where
+    parseQueryParam = \case
+        "labelHide" -> Right LabelHide
+        "labelShow" -> Right LabelShow
+        "labelShowIfUnread" -> Right LabelShowIfUnread
+        x -> Left ("Unable to parse LabelLabelListVisibility from: " <> x)
 
-instance ToText LabelLabelListVisibility where
-    toText = \case
+instance ToHttpApiData LabelLabelListVisibility where
+    toQueryParam = \case
         LabelHide -> "labelHide"
         LabelShow -> "labelShow"
         LabelShowIfUnread -> "labelShowIfUnread"
@@ -217,19 +217,19 @@
       -- ^ @metadata@
     | UTGFMinimal
       -- ^ @minimal@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersThreadsGetFormat
 
-instance FromText UsersThreadsGetFormat where
-    fromText = \case
-        "full" -> Just UTGFFull
-        "metadata" -> Just UTGFMetadata
-        "minimal" -> Just UTGFMinimal
-        _ -> Nothing
+instance FromHttpApiData UsersThreadsGetFormat where
+    parseQueryParam = \case
+        "full" -> Right UTGFFull
+        "metadata" -> Right UTGFMetadata
+        "minimal" -> Right UTGFMinimal
+        x -> Left ("Unable to parse UsersThreadsGetFormat from: " <> x)
 
-instance ToText UsersThreadsGetFormat where
-    toText = \case
+instance ToHttpApiData UsersThreadsGetFormat where
+    toQueryParam = \case
         UTGFFull -> "full"
         UTGFMetadata -> "metadata"
         UTGFMinimal -> "minimal"
@@ -246,18 +246,18 @@
       -- ^ @exclude@
     | Include
       -- ^ @include@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable WatchRequestLabelFilterAction
 
-instance FromText WatchRequestLabelFilterAction where
-    fromText = \case
-        "exclude" -> Just Exclude
-        "include" -> Just Include
-        _ -> Nothing
+instance FromHttpApiData WatchRequestLabelFilterAction where
+    parseQueryParam = \case
+        "exclude" -> Right Exclude
+        "include" -> Right Include
+        x -> Left ("Unable to parse WatchRequestLabelFilterAction from: " <> x)
 
-instance ToText WatchRequestLabelFilterAction where
-    toText = \case
+instance ToHttpApiData WatchRequestLabelFilterAction where
+    toQueryParam = \case
         Exclude -> "exclude"
         Include -> "include"
 
@@ -273,18 +273,18 @@
       -- ^ @dateHeader@
     | UMIIDSReceivedTime
       -- ^ @receivedTime@
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersMessagesInsertInternalDateSource
 
-instance FromText UsersMessagesInsertInternalDateSource where
-    fromText = \case
-        "dateHeader" -> Just UMIIDSDateHeader
-        "receivedTime" -> Just UMIIDSReceivedTime
-        _ -> Nothing
+instance FromHttpApiData UsersMessagesInsertInternalDateSource where
+    parseQueryParam = \case
+        "dateHeader" -> Right UMIIDSDateHeader
+        "receivedTime" -> Right UMIIDSReceivedTime
+        x -> Left ("Unable to parse UsersMessagesInsertInternalDateSource from: " <> x)
 
-instance ToText UsersMessagesInsertInternalDateSource where
-    toText = \case
+instance ToHttpApiData UsersMessagesInsertInternalDateSource where
+    toQueryParam = \case
         UMIIDSDateHeader -> "dateHeader"
         UMIIDSReceivedTime -> "receivedTime"
 
diff --git a/gen/Network/Google/Resource/Gmail/Users/Drafts/Create.hs b/gen/Network/Google/Resource/Gmail/Users/Drafts/Create.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Drafts/Create.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Drafts/Create.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Drafts.Create
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -58,14 +58,13 @@
                Capture "userId" Text :>
                  "drafts" :>
                    QueryParam "alt" AltJSON :>
-                     QueryParam "uploadType" AltMedia :>
-                       MultipartRelated '[JSON] Draft RequestBody :>
-                         Post '[JSON] Draft
+                     QueryParam "uploadType" Multipart :>
+                       MultipartRelated '[JSON] Draft :> Post '[JSON] Draft
 
 -- | Creates a new draft with the DRAFT label.
 --
 -- /See:/ 'usersDraftsCreate' smart constructor.
-data UsersDraftsCreate = UsersDraftsCreate
+data UsersDraftsCreate = UsersDraftsCreate'
     { _udcPayload :: !Draft
     , _udcUserId  :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -79,10 +78,9 @@
 -- * 'udcUserId'
 usersDraftsCreate
     :: Draft -- ^ 'udcPayload'
-    -> Text
     -> UsersDraftsCreate
-usersDraftsCreate pUdcPayload_ pUdcUserId_ =
-    UsersDraftsCreate
+usersDraftsCreate pUdcPayload_ =
+    UsersDraftsCreate'
     { _udcPayload = pUdcPayload_
     , _udcUserId = "me"
     }
@@ -100,7 +98,11 @@
 
 instance GoogleRequest UsersDraftsCreate where
         type Rs UsersDraftsCreate = Draft
-        requestClient UsersDraftsCreate{..}
+        type Scopes UsersDraftsCreate =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.compose",
+               "https://www.googleapis.com/auth/gmail.modify"]
+        requestClient UsersDraftsCreate'{..}
           = go _udcUserId (Just AltJSON) _udcPayload
               gmailService
           where go :<|> _
@@ -111,9 +113,11 @@
 instance GoogleRequest
          (MediaUpload UsersDraftsCreate) where
         type Rs (MediaUpload UsersDraftsCreate) = Draft
+        type Scopes (MediaUpload UsersDraftsCreate) =
+             Scopes UsersDraftsCreate
         requestClient
-          (MediaUpload UsersDraftsCreate{..} body)
-          = go _udcUserId (Just AltJSON) (Just AltMedia)
+          (MediaUpload UsersDraftsCreate'{..} body)
+          = go _udcUserId (Just AltJSON) (Just Multipart)
               _udcPayload
               body
               gmailService
diff --git a/gen/Network/Google/Resource/Gmail/Users/Drafts/Delete.hs b/gen/Network/Google/Resource/Gmail/Users/Drafts/Delete.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Drafts/Delete.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Drafts/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Drafts.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- trash it.
 --
 -- /See:/ 'usersDraftsDelete' smart constructor.
-data UsersDraftsDelete = UsersDraftsDelete
+data UsersDraftsDelete = UsersDraftsDelete'
     { _uddUserId :: !Text
     , _uddId     :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -70,10 +70,9 @@
 -- * 'uddId'
 usersDraftsDelete
     :: Text -- ^ 'uddId'
-    -> Text
     -> UsersDraftsDelete
-usersDraftsDelete pUddUserId_ pUddId_ =
-    UsersDraftsDelete
+usersDraftsDelete pUddId_ =
+    UsersDraftsDelete'
     { _uddUserId = "me"
     , _uddId = pUddId_
     }
@@ -90,7 +89,11 @@
 
 instance GoogleRequest UsersDraftsDelete where
         type Rs UsersDraftsDelete = ()
-        requestClient UsersDraftsDelete{..}
+        type Scopes UsersDraftsDelete =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.compose",
+               "https://www.googleapis.com/auth/gmail.modify"]
+        requestClient UsersDraftsDelete'{..}
           = go _uddUserId _uddId (Just AltJSON) gmailService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/Gmail/Users/Drafts/Get.hs b/gen/Network/Google/Resource/Gmail/Users/Drafts/Get.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Drafts/Get.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Drafts/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Drafts.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- | Gets the specified draft.
 --
 -- /See:/ 'usersDraftsGet' smart constructor.
-data UsersDraftsGet = UsersDraftsGet
+data UsersDraftsGet = UsersDraftsGet'
     { _udgFormat :: !UsersDraftsGetFormat
     , _udgUserId :: !Text
     , _udgId     :: !Text
@@ -73,10 +73,9 @@
 -- * 'udgId'
 usersDraftsGet
     :: Text -- ^ 'udgId'
-    -> Text
     -> UsersDraftsGet
-usersDraftsGet pUdgUserId_ pUdgId_ =
-    UsersDraftsGet
+usersDraftsGet pUdgId_ =
+    UsersDraftsGet'
     { _udgFormat = UDGFFull
     , _udgUserId = "me"
     , _udgId = pUdgId_
@@ -99,7 +98,12 @@
 
 instance GoogleRequest UsersDraftsGet where
         type Rs UsersDraftsGet = Draft
-        requestClient UsersDraftsGet{..}
+        type Scopes UsersDraftsGet =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.compose",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly"]
+        requestClient UsersDraftsGet'{..}
           = go _udgUserId _udgId (Just _udgFormat)
               (Just AltJSON)
               gmailService
diff --git a/gen/Network/Google/Resource/Gmail/Users/Drafts/List.hs b/gen/Network/Google/Resource/Gmail/Users/Drafts/List.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Drafts/List.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Drafts/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Drafts.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -34,6 +34,7 @@
 
     -- * Request Lenses
     , udlUserId
+    , udlIncludeSpamTrash
     , udlPageToken
     , udlMaxResults
     ) where
@@ -49,18 +50,20 @@
          "users" :>
            Capture "userId" Text :>
              "drafts" :>
-               QueryParam "pageToken" Text :>
-                 QueryParam "maxResults" (Textual Word32) :>
-                   QueryParam "alt" AltJSON :>
-                     Get '[JSON] ListDraftsResponse
+               QueryParam "includeSpamTrash" Bool :>
+                 QueryParam "pageToken" Text :>
+                   QueryParam "maxResults" (Textual Word32) :>
+                     QueryParam "alt" AltJSON :>
+                       Get '[JSON] ListDraftsResponse
 
 -- | Lists the drafts in the user\'s mailbox.
 --
 -- /See:/ 'usersDraftsList' smart constructor.
-data UsersDraftsList = UsersDraftsList
-    { _udlUserId     :: !Text
-    , _udlPageToken  :: !(Maybe Text)
-    , _udlMaxResults :: !(Textual Word32)
+data UsersDraftsList = UsersDraftsList'
+    { _udlUserId           :: !Text
+    , _udlIncludeSpamTrash :: !Bool
+    , _udlPageToken        :: !(Maybe Text)
+    , _udlMaxResults       :: !(Textual Word32)
     } deriving (Eq,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'UsersDraftsList' with the minimum fields required to make a request.
@@ -69,15 +72,17 @@
 --
 -- * 'udlUserId'
 --
+-- * 'udlIncludeSpamTrash'
+--
 -- * 'udlPageToken'
 --
 -- * 'udlMaxResults'
 usersDraftsList
-    :: Text
-    -> UsersDraftsList
-usersDraftsList pUdlUserId_ =
-    UsersDraftsList
+    :: UsersDraftsList
+usersDraftsList =
+    UsersDraftsList'
     { _udlUserId = "me"
+    , _udlIncludeSpamTrash = False
     , _udlPageToken = Nothing
     , _udlMaxResults = 100
     }
@@ -88,6 +93,12 @@
 udlUserId
   = lens _udlUserId (\ s a -> s{_udlUserId = a})
 
+-- | Include drafts from SPAM and TRASH in the results.
+udlIncludeSpamTrash :: Lens' UsersDraftsList Bool
+udlIncludeSpamTrash
+  = lens _udlIncludeSpamTrash
+      (\ s a -> s{_udlIncludeSpamTrash = a})
+
 -- | Page token to retrieve a specific page of results in the list.
 udlPageToken :: Lens' UsersDraftsList (Maybe Text)
 udlPageToken
@@ -102,8 +113,15 @@
 
 instance GoogleRequest UsersDraftsList where
         type Rs UsersDraftsList = ListDraftsResponse
-        requestClient UsersDraftsList{..}
-          = go _udlUserId _udlPageToken (Just _udlMaxResults)
+        type Scopes UsersDraftsList =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.compose",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly"]
+        requestClient UsersDraftsList'{..}
+          = go _udlUserId (Just _udlIncludeSpamTrash)
+              _udlPageToken
+              (Just _udlMaxResults)
               (Just AltJSON)
               gmailService
           where go
diff --git a/gen/Network/Google/Resource/Gmail/Users/Drafts/Send.hs b/gen/Network/Google/Resource/Gmail/Users/Drafts/Send.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Drafts/Send.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Drafts/Send.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Drafts.Send
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -61,15 +61,15 @@
                  "drafts" :>
                    "send" :>
                      QueryParam "alt" AltJSON :>
-                       QueryParam "uploadType" AltMedia :>
-                         MultipartRelated '[JSON] Draft RequestBody :>
+                       QueryParam "uploadType" Multipart :>
+                         MultipartRelated '[JSON] Draft :>
                            Post '[JSON] Message
 
 -- | Sends the specified, existing draft to the recipients in the To, Cc, and
 -- Bcc headers.
 --
 -- /See:/ 'usersDraftsSend' smart constructor.
-data UsersDraftsSend = UsersDraftsSend
+data UsersDraftsSend = UsersDraftsSend'
     { _udsPayload :: !Draft
     , _udsUserId  :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -83,10 +83,9 @@
 -- * 'udsUserId'
 usersDraftsSend
     :: Draft -- ^ 'udsPayload'
-    -> Text
     -> UsersDraftsSend
-usersDraftsSend pUdsPayload_ pUdsUserId_ =
-    UsersDraftsSend
+usersDraftsSend pUdsPayload_ =
+    UsersDraftsSend'
     { _udsPayload = pUdsPayload_
     , _udsUserId = "me"
     }
@@ -104,7 +103,11 @@
 
 instance GoogleRequest UsersDraftsSend where
         type Rs UsersDraftsSend = Message
-        requestClient UsersDraftsSend{..}
+        type Scopes UsersDraftsSend =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.compose",
+               "https://www.googleapis.com/auth/gmail.modify"]
+        requestClient UsersDraftsSend'{..}
           = go _udsUserId (Just AltJSON) _udsPayload
               gmailService
           where go :<|> _
@@ -115,8 +118,10 @@
 instance GoogleRequest (MediaUpload UsersDraftsSend)
          where
         type Rs (MediaUpload UsersDraftsSend) = Message
-        requestClient (MediaUpload UsersDraftsSend{..} body)
-          = go _udsUserId (Just AltJSON) (Just AltMedia)
+        type Scopes (MediaUpload UsersDraftsSend) =
+             Scopes UsersDraftsSend
+        requestClient (MediaUpload UsersDraftsSend'{..} body)
+          = go _udsUserId (Just AltJSON) (Just Multipart)
               _udsPayload
               body
               gmailService
diff --git a/gen/Network/Google/Resource/Gmail/Users/Drafts/Update.hs b/gen/Network/Google/Resource/Gmail/Users/Drafts/Update.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Drafts/Update.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Drafts/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Drafts.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -61,14 +61,13 @@
                  "drafts" :>
                    Capture "id" Text :>
                      QueryParam "alt" AltJSON :>
-                       QueryParam "uploadType" AltMedia :>
-                         MultipartRelated '[JSON] Draft RequestBody :>
-                           Put '[JSON] Draft
+                       QueryParam "uploadType" Multipart :>
+                         MultipartRelated '[JSON] Draft :> Put '[JSON] Draft
 
 -- | Replaces a draft\'s content.
 --
 -- /See:/ 'usersDraftsUpdate' smart constructor.
-data UsersDraftsUpdate = UsersDraftsUpdate
+data UsersDraftsUpdate = UsersDraftsUpdate'
     { _uduPayload :: !Draft
     , _uduUserId  :: !Text
     , _uduId      :: !Text
@@ -86,10 +85,9 @@
 usersDraftsUpdate
     :: Draft -- ^ 'uduPayload'
     -> Text -- ^ 'uduId'
-    -> Text
     -> UsersDraftsUpdate
-usersDraftsUpdate pUduPayload_ pUduUserId_ pUduId_ =
-    UsersDraftsUpdate
+usersDraftsUpdate pUduPayload_ pUduId_ =
+    UsersDraftsUpdate'
     { _uduPayload = pUduPayload_
     , _uduUserId = "me"
     , _uduId = pUduId_
@@ -112,7 +110,11 @@
 
 instance GoogleRequest UsersDraftsUpdate where
         type Rs UsersDraftsUpdate = Draft
-        requestClient UsersDraftsUpdate{..}
+        type Scopes UsersDraftsUpdate =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.compose",
+               "https://www.googleapis.com/auth/gmail.modify"]
+        requestClient UsersDraftsUpdate'{..}
           = go _uduUserId _uduId (Just AltJSON) _uduPayload
               gmailService
           where go :<|> _
@@ -123,9 +125,12 @@
 instance GoogleRequest
          (MediaUpload UsersDraftsUpdate) where
         type Rs (MediaUpload UsersDraftsUpdate) = Draft
+        type Scopes (MediaUpload UsersDraftsUpdate) =
+             Scopes UsersDraftsUpdate
         requestClient
-          (MediaUpload UsersDraftsUpdate{..} body)
-          = go _uduUserId _uduId (Just AltJSON) (Just AltMedia)
+          (MediaUpload UsersDraftsUpdate'{..} body)
+          = go _uduUserId _uduId (Just AltJSON)
+              (Just Multipart)
               _uduPayload
               body
               gmailService
diff --git a/gen/Network/Google/Resource/Gmail/Users/GetProFile.hs b/gen/Network/Google/Resource/Gmail/Users/GetProFile.hs
--- a/gen/Network/Google/Resource/Gmail/Users/GetProFile.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/GetProFile.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.GetProFile
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -52,7 +52,7 @@
 -- | Gets the current user\'s Gmail profile.
 --
 -- /See:/ 'usersGetProFile' smart constructor.
-newtype UsersGetProFile = UsersGetProFile
+newtype UsersGetProFile = UsersGetProFile'
     { _ugpfUserId :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -62,10 +62,9 @@
 --
 -- * 'ugpfUserId'
 usersGetProFile
-    :: Text
-    -> UsersGetProFile
-usersGetProFile pUgpfUserId_ =
-    UsersGetProFile
+    :: UsersGetProFile
+usersGetProFile =
+    UsersGetProFile'
     { _ugpfUserId = "me"
     }
 
@@ -77,7 +76,12 @@
 
 instance GoogleRequest UsersGetProFile where
         type Rs UsersGetProFile = ProFile
-        requestClient UsersGetProFile{..}
+        type Scopes UsersGetProFile =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.compose",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly"]
+        requestClient UsersGetProFile'{..}
           = go _ugpfUserId (Just AltJSON) gmailService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/Gmail/Users/History/List.hs b/gen/Network/Google/Resource/Gmail/Users/History/List.hs
--- a/gen/Network/Google/Resource/Gmail/Users/History/List.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/History/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.History.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -63,7 +63,7 @@
 -- are returned in chronological order (increasing historyId).
 --
 -- /See:/ 'usersHistoryList' smart constructor.
-data UsersHistoryList = UsersHistoryList
+data UsersHistoryList = UsersHistoryList'
     { _uhlUserId         :: !Text
     , _uhlStartHistoryId :: !(Maybe (Textual Word64))
     , _uhlPageToken      :: !(Maybe Text)
@@ -85,10 +85,9 @@
 --
 -- * 'uhlMaxResults'
 usersHistoryList
-    :: Text
-    -> UsersHistoryList
-usersHistoryList pUhlUserId_ =
-    UsersHistoryList
+    :: UsersHistoryList
+usersHistoryList =
+    UsersHistoryList'
     { _uhlUserId = "me"
     , _uhlStartHistoryId = Nothing
     , _uhlPageToken = Nothing
@@ -138,7 +137,11 @@
 
 instance GoogleRequest UsersHistoryList where
         type Rs UsersHistoryList = ListHistoryResponse
-        requestClient UsersHistoryList{..}
+        type Scopes UsersHistoryList =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly"]
+        requestClient UsersHistoryList'{..}
           = go _uhlUserId _uhlStartHistoryId _uhlPageToken
               _uhlLabelId
               (Just _uhlMaxResults)
diff --git a/gen/Network/Google/Resource/Gmail/Users/Labels/Create.hs b/gen/Network/Google/Resource/Gmail/Users/Labels/Create.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Labels/Create.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Labels/Create.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Labels.Create
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -54,7 +54,7 @@
 -- | Creates a new label.
 --
 -- /See:/ 'usersLabelsCreate' smart constructor.
-data UsersLabelsCreate = UsersLabelsCreate
+data UsersLabelsCreate = UsersLabelsCreate'
     { _ulcPayload :: !Label
     , _ulcUserId  :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -68,10 +68,9 @@
 -- * 'ulcUserId'
 usersLabelsCreate
     :: Label -- ^ 'ulcPayload'
-    -> Text
     -> UsersLabelsCreate
-usersLabelsCreate pUlcPayload_ pUlcUserId_ =
-    UsersLabelsCreate
+usersLabelsCreate pUlcPayload_ =
+    UsersLabelsCreate'
     { _ulcPayload = pUlcPayload_
     , _ulcUserId = "me"
     }
@@ -89,7 +88,11 @@
 
 instance GoogleRequest UsersLabelsCreate where
         type Rs UsersLabelsCreate = Label
-        requestClient UsersLabelsCreate{..}
+        type Scopes UsersLabelsCreate =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.labels",
+               "https://www.googleapis.com/auth/gmail.modify"]
+        requestClient UsersLabelsCreate'{..}
           = go _ulcUserId (Just AltJSON) _ulcPayload
               gmailService
           where go
diff --git a/gen/Network/Google/Resource/Gmail/Users/Labels/Delete.hs b/gen/Network/Google/Resource/Gmail/Users/Labels/Delete.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Labels/Delete.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Labels/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Labels.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- from any messages and threads that it is applied to.
 --
 -- /See:/ 'usersLabelsDelete' smart constructor.
-data UsersLabelsDelete = UsersLabelsDelete
+data UsersLabelsDelete = UsersLabelsDelete'
     { _uldUserId :: !Text
     , _uldId     :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -70,10 +70,9 @@
 -- * 'uldId'
 usersLabelsDelete
     :: Text -- ^ 'uldId'
-    -> Text
     -> UsersLabelsDelete
-usersLabelsDelete pUldUserId_ pUldId_ =
-    UsersLabelsDelete
+usersLabelsDelete pUldId_ =
+    UsersLabelsDelete'
     { _uldUserId = "me"
     , _uldId = pUldId_
     }
@@ -90,7 +89,11 @@
 
 instance GoogleRequest UsersLabelsDelete where
         type Rs UsersLabelsDelete = ()
-        requestClient UsersLabelsDelete{..}
+        type Scopes UsersLabelsDelete =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.labels",
+               "https://www.googleapis.com/auth/gmail.modify"]
+        requestClient UsersLabelsDelete'{..}
           = go _uldUserId _uldId (Just AltJSON) gmailService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/Gmail/Users/Labels/Get.hs b/gen/Network/Google/Resource/Gmail/Users/Labels/Get.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Labels/Get.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Labels/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Labels.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -54,7 +54,7 @@
 -- | Gets the specified label.
 --
 -- /See:/ 'usersLabelsGet' smart constructor.
-data UsersLabelsGet = UsersLabelsGet
+data UsersLabelsGet = UsersLabelsGet'
     { _ulgUserId :: !Text
     , _ulgId     :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -68,10 +68,9 @@
 -- * 'ulgId'
 usersLabelsGet
     :: Text -- ^ 'ulgId'
-    -> Text
     -> UsersLabelsGet
-usersLabelsGet pUlgUserId_ pUlgId_ =
-    UsersLabelsGet
+usersLabelsGet pUlgId_ =
+    UsersLabelsGet'
     { _ulgUserId = "me"
     , _ulgId = pUlgId_
     }
@@ -88,7 +87,12 @@
 
 instance GoogleRequest UsersLabelsGet where
         type Rs UsersLabelsGet = Label
-        requestClient UsersLabelsGet{..}
+        type Scopes UsersLabelsGet =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.labels",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly"]
+        requestClient UsersLabelsGet'{..}
           = go _ulgUserId _ulgId (Just AltJSON) gmailService
           where go
                   = buildClient (Proxy :: Proxy UsersLabelsGetResource)
diff --git a/gen/Network/Google/Resource/Gmail/Users/Labels/List.hs b/gen/Network/Google/Resource/Gmail/Users/Labels/List.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Labels/List.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Labels/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Labels.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -53,7 +53,7 @@
 -- | Lists all labels in the user\'s mailbox.
 --
 -- /See:/ 'usersLabelsList' smart constructor.
-newtype UsersLabelsList = UsersLabelsList
+newtype UsersLabelsList = UsersLabelsList'
     { _ullUserId :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -63,10 +63,9 @@
 --
 -- * 'ullUserId'
 usersLabelsList
-    :: Text
-    -> UsersLabelsList
-usersLabelsList pUllUserId_ =
-    UsersLabelsList
+    :: UsersLabelsList
+usersLabelsList =
+    UsersLabelsList'
     { _ullUserId = "me"
     }
 
@@ -78,7 +77,12 @@
 
 instance GoogleRequest UsersLabelsList where
         type Rs UsersLabelsList = ListLabelsResponse
-        requestClient UsersLabelsList{..}
+        type Scopes UsersLabelsList =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.labels",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly"]
+        requestClient UsersLabelsList'{..}
           = go _ullUserId (Just AltJSON) gmailService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/Gmail/Users/Labels/Patch.hs b/gen/Network/Google/Resource/Gmail/Users/Labels/Patch.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Labels/Patch.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Labels/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Labels.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- | Updates the specified label. This method supports patch semantics.
 --
 -- /See:/ 'usersLabelsPatch' smart constructor.
-data UsersLabelsPatch = UsersLabelsPatch
+data UsersLabelsPatch = UsersLabelsPatch'
     { _ulpPayload :: !Label
     , _ulpUserId  :: !Text
     , _ulpId      :: !Text
@@ -74,10 +74,9 @@
 usersLabelsPatch
     :: Label -- ^ 'ulpPayload'
     -> Text -- ^ 'ulpId'
-    -> Text
     -> UsersLabelsPatch
-usersLabelsPatch pUlpPayload_ pUlpUserId_ pUlpId_ =
-    UsersLabelsPatch
+usersLabelsPatch pUlpPayload_ pUlpId_ =
+    UsersLabelsPatch'
     { _ulpPayload = pUlpPayload_
     , _ulpUserId = "me"
     , _ulpId = pUlpId_
@@ -100,7 +99,11 @@
 
 instance GoogleRequest UsersLabelsPatch where
         type Rs UsersLabelsPatch = Label
-        requestClient UsersLabelsPatch{..}
+        type Scopes UsersLabelsPatch =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.labels",
+               "https://www.googleapis.com/auth/gmail.modify"]
+        requestClient UsersLabelsPatch'{..}
           = go _ulpUserId _ulpId (Just AltJSON) _ulpPayload
               gmailService
           where go
diff --git a/gen/Network/Google/Resource/Gmail/Users/Labels/Update.hs b/gen/Network/Google/Resource/Gmail/Users/Labels/Update.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Labels/Update.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Labels/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Labels.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- | Updates the specified label.
 --
 -- /See:/ 'usersLabelsUpdate' smart constructor.
-data UsersLabelsUpdate = UsersLabelsUpdate
+data UsersLabelsUpdate = UsersLabelsUpdate'
     { _uluPayload :: !Label
     , _uluUserId  :: !Text
     , _uluId      :: !Text
@@ -74,10 +74,9 @@
 usersLabelsUpdate
     :: Label -- ^ 'uluPayload'
     -> Text -- ^ 'uluId'
-    -> Text
     -> UsersLabelsUpdate
-usersLabelsUpdate pUluPayload_ pUluUserId_ pUluId_ =
-    UsersLabelsUpdate
+usersLabelsUpdate pUluPayload_ pUluId_ =
+    UsersLabelsUpdate'
     { _uluPayload = pUluPayload_
     , _uluUserId = "me"
     , _uluId = pUluId_
@@ -100,7 +99,11 @@
 
 instance GoogleRequest UsersLabelsUpdate where
         type Rs UsersLabelsUpdate = Label
-        requestClient UsersLabelsUpdate{..}
+        type Scopes UsersLabelsUpdate =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.labels",
+               "https://www.googleapis.com/auth/gmail.modify"]
+        requestClient UsersLabelsUpdate'{..}
           = go _uluUserId _uluId (Just AltJSON) _uluPayload
               gmailService
           where go
diff --git a/gen/Network/Google/Resource/Gmail/Users/Messages/Attachments/Get.hs b/gen/Network/Google/Resource/Gmail/Users/Messages/Attachments/Get.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Messages/Attachments/Get.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Messages/Attachments/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Messages.Attachments.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -58,7 +58,7 @@
 -- | Gets the specified message attachment.
 --
 -- /See:/ 'usersMessagesAttachmentsGet' smart constructor.
-data UsersMessagesAttachmentsGet = UsersMessagesAttachmentsGet
+data UsersMessagesAttachmentsGet = UsersMessagesAttachmentsGet'
     { _umagUserId    :: !Text
     , _umagId        :: !Text
     , _umagMessageId :: !Text
@@ -76,10 +76,9 @@
 usersMessagesAttachmentsGet
     :: Text -- ^ 'umagId'
     -> Text -- ^ 'umagMessageId'
-    -> Text
     -> UsersMessagesAttachmentsGet
-usersMessagesAttachmentsGet pUmagUserId_ pUmagId_ pUmagMessageId_ =
-    UsersMessagesAttachmentsGet
+usersMessagesAttachmentsGet pUmagId_ pUmagMessageId_ =
+    UsersMessagesAttachmentsGet'
     { _umagUserId = "me"
     , _umagId = pUmagId_
     , _umagMessageId = pUmagMessageId_
@@ -104,7 +103,11 @@
 instance GoogleRequest UsersMessagesAttachmentsGet
          where
         type Rs UsersMessagesAttachmentsGet = MessagePartBody
-        requestClient UsersMessagesAttachmentsGet{..}
+        type Scopes UsersMessagesAttachmentsGet =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly"]
+        requestClient UsersMessagesAttachmentsGet'{..}
           = go _umagUserId _umagMessageId _umagId
               (Just AltJSON)
               gmailService
diff --git a/gen/Network/Google/Resource/Gmail/Users/Messages/BatchDelete.hs b/gen/Network/Google/Resource/Gmail/Users/Messages/BatchDelete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Messages/BatchDelete.hs
@@ -0,0 +1,103 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Gmail.Users.Messages.BatchDelete
+-- 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)
+--
+-- Deletes many messages by message ID. Provides no guarantees that
+-- messages were not already deleted or even existed at all.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.messages.batchDelete@.
+module Network.Google.Resource.Gmail.Users.Messages.BatchDelete
+    (
+    -- * REST Resource
+      UsersMessagesBatchDeleteResource
+
+    -- * Creating a Request
+    , usersMessagesBatchDelete
+    , UsersMessagesBatchDelete
+
+    -- * Request Lenses
+    , umbdPayload
+    , umbdUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.messages.batchDelete@ method which the
+-- 'UsersMessagesBatchDelete' request conforms to.
+type UsersMessagesBatchDeleteResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "messages" :>
+               "batchDelete" :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] BatchDeleteMessagesRequest :>
+                     Post '[JSON] ()
+
+-- | Deletes many messages by message ID. Provides no guarantees that
+-- messages were not already deleted or even existed at all.
+--
+-- /See:/ 'usersMessagesBatchDelete' smart constructor.
+data UsersMessagesBatchDelete = UsersMessagesBatchDelete'
+    { _umbdPayload :: !BatchDeleteMessagesRequest
+    , _umbdUserId  :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersMessagesBatchDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'umbdPayload'
+--
+-- * 'umbdUserId'
+usersMessagesBatchDelete
+    :: BatchDeleteMessagesRequest -- ^ 'umbdPayload'
+    -> UsersMessagesBatchDelete
+usersMessagesBatchDelete pUmbdPayload_ =
+    UsersMessagesBatchDelete'
+    { _umbdPayload = pUmbdPayload_
+    , _umbdUserId = "me"
+    }
+
+-- | Multipart request metadata.
+umbdPayload :: Lens' UsersMessagesBatchDelete BatchDeleteMessagesRequest
+umbdPayload
+  = lens _umbdPayload (\ s a -> s{_umbdPayload = a})
+
+-- | The user\'s email address. The special value me can be used to indicate
+-- the authenticated user.
+umbdUserId :: Lens' UsersMessagesBatchDelete Text
+umbdUserId
+  = lens _umbdUserId (\ s a -> s{_umbdUserId = a})
+
+instance GoogleRequest UsersMessagesBatchDelete where
+        type Rs UsersMessagesBatchDelete = ()
+        type Scopes UsersMessagesBatchDelete =
+             '["https://mail.google.com/"]
+        requestClient UsersMessagesBatchDelete'{..}
+          = go _umbdUserId (Just AltJSON) _umbdPayload
+              gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersMessagesBatchDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Messages/Delete.hs b/gen/Network/Google/Resource/Gmail/Users/Messages/Delete.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Messages/Delete.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Messages/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Messages.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- operation cannot be undone. Prefer messages.trash instead.
 --
 -- /See:/ 'usersMessagesDelete' smart constructor.
-data UsersMessagesDelete = UsersMessagesDelete
+data UsersMessagesDelete = UsersMessagesDelete'
     { _umdUserId :: !Text
     , _umdId     :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -70,10 +70,9 @@
 -- * 'umdId'
 usersMessagesDelete
     :: Text -- ^ 'umdId'
-    -> Text
     -> UsersMessagesDelete
-usersMessagesDelete pUmdUserId_ pUmdId_ =
-    UsersMessagesDelete
+usersMessagesDelete pUmdId_ =
+    UsersMessagesDelete'
     { _umdUserId = "me"
     , _umdId = pUmdId_
     }
@@ -90,7 +89,9 @@
 
 instance GoogleRequest UsersMessagesDelete where
         type Rs UsersMessagesDelete = ()
-        requestClient UsersMessagesDelete{..}
+        type Scopes UsersMessagesDelete =
+             '["https://mail.google.com/"]
+        requestClient UsersMessagesDelete'{..}
           = go _umdUserId _umdId (Just AltJSON) gmailService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/Gmail/Users/Messages/Get.hs b/gen/Network/Google/Resource/Gmail/Users/Messages/Get.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Messages/Get.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Messages/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Messages.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -58,7 +58,7 @@
 -- | Gets the specified message.
 --
 -- /See:/ 'usersMessagesGet' smart constructor.
-data UsersMessagesGet = UsersMessagesGet
+data UsersMessagesGet = UsersMessagesGet'
     { _umgFormat          :: !UsersMessagesGetFormat
     , _umgUserId          :: !Text
     , _umgId              :: !Text
@@ -78,10 +78,9 @@
 -- * 'umgMetadataHeaders'
 usersMessagesGet
     :: Text -- ^ 'umgId'
-    -> Text
     -> UsersMessagesGet
-usersMessagesGet pUmgUserId_ pUmgId_ =
-    UsersMessagesGet
+usersMessagesGet pUmgId_ =
+    UsersMessagesGet'
     { _umgFormat = Full
     , _umgUserId = "me"
     , _umgId = pUmgId_
@@ -113,7 +112,11 @@
 
 instance GoogleRequest UsersMessagesGet where
         type Rs UsersMessagesGet = Message
-        requestClient UsersMessagesGet{..}
+        type Scopes UsersMessagesGet =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly"]
+        requestClient UsersMessagesGet'{..}
           = go _umgUserId _umgId (Just _umgFormat)
               (_umgMetadataHeaders ^. _Default)
               (Just AltJSON)
diff --git a/gen/Network/Google/Resource/Gmail/Users/Messages/Import.hs b/gen/Network/Google/Resource/Gmail/Users/Messages/Import.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Messages/Import.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Messages/Import.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Messages.Import
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -78,8 +78,8 @@
                              UsersMessagesImportInternalDateSource
                              :>
                              QueryParam "alt" AltJSON :>
-                               QueryParam "uploadType" AltMedia :>
-                                 MultipartRelated '[JSON] Message RequestBody :>
+                               QueryParam "uploadType" Multipart :>
+                                 MultipartRelated '[JSON] Message :>
                                    Post '[JSON] Message
 
 -- | Imports a message into only this user\'s mailbox, with standard email
@@ -87,7 +87,7 @@
 -- not send a message.
 --
 -- /See:/ 'usersMessagesImport' smart constructor.
-data UsersMessagesImport = UsersMessagesImport
+data UsersMessagesImport = UsersMessagesImport'
     { _umiPayload            :: !Message
     , _umiUserId             :: !Text
     , _umiProcessForCalendar :: !Bool
@@ -113,10 +113,9 @@
 -- * 'umiInternalDateSource'
 usersMessagesImport
     :: Message -- ^ 'umiPayload'
-    -> Text
     -> UsersMessagesImport
-usersMessagesImport pUmiPayload_ pUmiUserId_ =
-    UsersMessagesImport
+usersMessagesImport pUmiPayload_ =
+    UsersMessagesImport'
     { _umiPayload = pUmiPayload_
     , _umiUserId = "me"
     , _umiProcessForCalendar = False
@@ -165,7 +164,11 @@
 
 instance GoogleRequest UsersMessagesImport where
         type Rs UsersMessagesImport = Message
-        requestClient UsersMessagesImport{..}
+        type Scopes UsersMessagesImport =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.insert",
+               "https://www.googleapis.com/auth/gmail.modify"]
+        requestClient UsersMessagesImport'{..}
           = go _umiUserId (Just _umiProcessForCalendar)
               (Just _umiDeleted)
               (Just _umiNeverMarkSpam)
@@ -181,14 +184,16 @@
 instance GoogleRequest
          (MediaUpload UsersMessagesImport) where
         type Rs (MediaUpload UsersMessagesImport) = Message
+        type Scopes (MediaUpload UsersMessagesImport) =
+             Scopes UsersMessagesImport
         requestClient
-          (MediaUpload UsersMessagesImport{..} body)
+          (MediaUpload UsersMessagesImport'{..} body)
           = go _umiUserId (Just _umiProcessForCalendar)
               (Just _umiDeleted)
               (Just _umiNeverMarkSpam)
               (Just _umiInternalDateSource)
               (Just AltJSON)
-              (Just AltMedia)
+              (Just Multipart)
               _umiPayload
               body
               gmailService
diff --git a/gen/Network/Google/Resource/Gmail/Users/Messages/Insert.hs b/gen/Network/Google/Resource/Gmail/Users/Messages/Insert.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Messages/Insert.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Messages/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Messages.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -70,8 +70,8 @@
                        UsersMessagesInsertInternalDateSource
                        :>
                        QueryParam "alt" AltJSON :>
-                         QueryParam "uploadType" AltMedia :>
-                           MultipartRelated '[JSON] Message RequestBody :>
+                         QueryParam "uploadType" Multipart :>
+                           MultipartRelated '[JSON] Message :>
                              Post '[JSON] Message
 
 -- | Directly inserts a message into only this user\'s mailbox similar to
@@ -79,7 +79,7 @@
 -- message.
 --
 -- /See:/ 'usersMessagesInsert' smart constructor.
-data UsersMessagesInsert = UsersMessagesInsert
+data UsersMessagesInsert = UsersMessagesInsert'
     { _uPayload            :: !Message
     , _uUserId             :: !Text
     , _uDeleted            :: !Bool
@@ -99,10 +99,9 @@
 -- * 'uInternalDateSource'
 usersMessagesInsert
     :: Message -- ^ 'uPayload'
-    -> Text
     -> UsersMessagesInsert
-usersMessagesInsert pUPayload_ pUUserId_ =
-    UsersMessagesInsert
+usersMessagesInsert pUPayload_ =
+    UsersMessagesInsert'
     { _uPayload = pUPayload_
     , _uUserId = "me"
     , _uDeleted = False
@@ -132,7 +131,11 @@
 
 instance GoogleRequest UsersMessagesInsert where
         type Rs UsersMessagesInsert = Message
-        requestClient UsersMessagesInsert{..}
+        type Scopes UsersMessagesInsert =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.insert",
+               "https://www.googleapis.com/auth/gmail.modify"]
+        requestClient UsersMessagesInsert'{..}
           = go _uUserId (Just _uDeleted)
               (Just _uInternalDateSource)
               (Just AltJSON)
@@ -146,12 +149,14 @@
 instance GoogleRequest
          (MediaUpload UsersMessagesInsert) where
         type Rs (MediaUpload UsersMessagesInsert) = Message
+        type Scopes (MediaUpload UsersMessagesInsert) =
+             Scopes UsersMessagesInsert
         requestClient
-          (MediaUpload UsersMessagesInsert{..} body)
+          (MediaUpload UsersMessagesInsert'{..} body)
           = go _uUserId (Just _uDeleted)
               (Just _uInternalDateSource)
               (Just AltJSON)
-              (Just AltMedia)
+              (Just Multipart)
               _uPayload
               body
               gmailService
diff --git a/gen/Network/Google/Resource/Gmail/Users/Messages/List.hs b/gen/Network/Google/Resource/Gmail/Users/Messages/List.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Messages/List.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Messages/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Messages.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -63,7 +63,7 @@
 -- | Lists the messages in the user\'s mailbox.
 --
 -- /See:/ 'usersMessagesList' smart constructor.
-data UsersMessagesList = UsersMessagesList
+data UsersMessagesList = UsersMessagesList'
     { _umlQ                :: !(Maybe Text)
     , _umlUserId           :: !Text
     , _umlIncludeSpamTrash :: !Bool
@@ -88,10 +88,9 @@
 --
 -- * 'umlMaxResults'
 usersMessagesList
-    :: Text
-    -> UsersMessagesList
-usersMessagesList pUmlUserId_ =
-    UsersMessagesList
+    :: UsersMessagesList
+usersMessagesList =
+    UsersMessagesList'
     { _umlQ = Nothing
     , _umlUserId = "me"
     , _umlIncludeSpamTrash = False
@@ -140,7 +139,11 @@
 
 instance GoogleRequest UsersMessagesList where
         type Rs UsersMessagesList = ListMessagesResponse
-        requestClient UsersMessagesList{..}
+        type Scopes UsersMessagesList =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly"]
+        requestClient UsersMessagesList'{..}
           = go _umlUserId _umlQ (Just _umlIncludeSpamTrash)
               (_umlLabelIds ^. _Default)
               _umlPageToken
diff --git a/gen/Network/Google/Resource/Gmail/Users/Messages/Modify.hs b/gen/Network/Google/Resource/Gmail/Users/Messages/Modify.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Messages/Modify.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Messages/Modify.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Messages.Modify
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -58,7 +58,7 @@
 -- | Modifies the labels on the specified message.
 --
 -- /See:/ 'usersMessagesModify' smart constructor.
-data UsersMessagesModify = UsersMessagesModify
+data UsersMessagesModify = UsersMessagesModify'
     { _ummPayload :: !ModifyMessageRequest
     , _ummUserId  :: !Text
     , _ummId      :: !Text
@@ -76,10 +76,9 @@
 usersMessagesModify
     :: ModifyMessageRequest -- ^ 'ummPayload'
     -> Text -- ^ 'ummId'
-    -> Text
     -> UsersMessagesModify
-usersMessagesModify pUmmPayload_ pUmmUserId_ pUmmId_ =
-    UsersMessagesModify
+usersMessagesModify pUmmPayload_ pUmmId_ =
+    UsersMessagesModify'
     { _ummPayload = pUmmPayload_
     , _ummUserId = "me"
     , _ummId = pUmmId_
@@ -102,7 +101,10 @@
 
 instance GoogleRequest UsersMessagesModify where
         type Rs UsersMessagesModify = Message
-        requestClient UsersMessagesModify{..}
+        type Scopes UsersMessagesModify =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify"]
+        requestClient UsersMessagesModify'{..}
           = go _ummUserId _ummId (Just AltJSON) _ummPayload
               gmailService
           where go
diff --git a/gen/Network/Google/Resource/Gmail/Users/Messages/Send.hs b/gen/Network/Google/Resource/Gmail/Users/Messages/Send.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Messages/Send.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Messages/Send.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Messages.Send
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -61,15 +61,15 @@
                  "messages" :>
                    "send" :>
                      QueryParam "alt" AltJSON :>
-                       QueryParam "uploadType" AltMedia :>
-                         MultipartRelated '[JSON] Message RequestBody :>
+                       QueryParam "uploadType" Multipart :>
+                         MultipartRelated '[JSON] Message :>
                            Post '[JSON] Message
 
 -- | Sends the specified message to the recipients in the To, Cc, and Bcc
 -- headers.
 --
 -- /See:/ 'usersMessagesSend' smart constructor.
-data UsersMessagesSend = UsersMessagesSend
+data UsersMessagesSend = UsersMessagesSend'
     { _umsPayload :: !Message
     , _umsUserId  :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -83,10 +83,9 @@
 -- * 'umsUserId'
 usersMessagesSend
     :: Message -- ^ 'umsPayload'
-    -> Text
     -> UsersMessagesSend
-usersMessagesSend pUmsPayload_ pUmsUserId_ =
-    UsersMessagesSend
+usersMessagesSend pUmsPayload_ =
+    UsersMessagesSend'
     { _umsPayload = pUmsPayload_
     , _umsUserId = "me"
     }
@@ -104,7 +103,12 @@
 
 instance GoogleRequest UsersMessagesSend where
         type Rs UsersMessagesSend = Message
-        requestClient UsersMessagesSend{..}
+        type Scopes UsersMessagesSend =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.compose",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.send"]
+        requestClient UsersMessagesSend'{..}
           = go _umsUserId (Just AltJSON) _umsPayload
               gmailService
           where go :<|> _
@@ -115,9 +119,11 @@
 instance GoogleRequest
          (MediaUpload UsersMessagesSend) where
         type Rs (MediaUpload UsersMessagesSend) = Message
+        type Scopes (MediaUpload UsersMessagesSend) =
+             Scopes UsersMessagesSend
         requestClient
-          (MediaUpload UsersMessagesSend{..} body)
-          = go _umsUserId (Just AltJSON) (Just AltMedia)
+          (MediaUpload UsersMessagesSend'{..} body)
+          = go _umsUserId (Just AltJSON) (Just Multipart)
               _umsPayload
               body
               gmailService
diff --git a/gen/Network/Google/Resource/Gmail/Users/Messages/Trash.hs b/gen/Network/Google/Resource/Gmail/Users/Messages/Trash.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Messages/Trash.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Messages/Trash.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Messages.Trash
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Moves the specified message to the trash.
 --
 -- /See:/ 'usersMessagesTrash' smart constructor.
-data UsersMessagesTrash = UsersMessagesTrash
+data UsersMessagesTrash = UsersMessagesTrash'
     { _umtUserId :: !Text
     , _umtId     :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -69,10 +69,9 @@
 -- * 'umtId'
 usersMessagesTrash
     :: Text -- ^ 'umtId'
-    -> Text
     -> UsersMessagesTrash
-usersMessagesTrash pUmtUserId_ pUmtId_ =
-    UsersMessagesTrash
+usersMessagesTrash pUmtId_ =
+    UsersMessagesTrash'
     { _umtUserId = "me"
     , _umtId = pUmtId_
     }
@@ -89,7 +88,10 @@
 
 instance GoogleRequest UsersMessagesTrash where
         type Rs UsersMessagesTrash = Message
-        requestClient UsersMessagesTrash{..}
+        type Scopes UsersMessagesTrash =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify"]
+        requestClient UsersMessagesTrash'{..}
           = go _umtUserId _umtId (Just AltJSON) gmailService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/Gmail/Users/Messages/Untrash.hs b/gen/Network/Google/Resource/Gmail/Users/Messages/Untrash.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Messages/Untrash.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Messages/Untrash.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Messages.Untrash
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Removes the specified message from the trash.
 --
 -- /See:/ 'usersMessagesUntrash' smart constructor.
-data UsersMessagesUntrash = UsersMessagesUntrash
+data UsersMessagesUntrash = UsersMessagesUntrash'
     { _umuUserId :: !Text
     , _umuId     :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -69,10 +69,9 @@
 -- * 'umuId'
 usersMessagesUntrash
     :: Text -- ^ 'umuId'
-    -> Text
     -> UsersMessagesUntrash
-usersMessagesUntrash pUmuUserId_ pUmuId_ =
-    UsersMessagesUntrash
+usersMessagesUntrash pUmuId_ =
+    UsersMessagesUntrash'
     { _umuUserId = "me"
     , _umuId = pUmuId_
     }
@@ -89,7 +88,10 @@
 
 instance GoogleRequest UsersMessagesUntrash where
         type Rs UsersMessagesUntrash = Message
-        requestClient UsersMessagesUntrash{..}
+        type Scopes UsersMessagesUntrash =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify"]
+        requestClient UsersMessagesUntrash'{..}
           = go _umuUserId _umuId (Just AltJSON) gmailService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/Gmail/Users/Stop.hs b/gen/Network/Google/Resource/Gmail/Users/Stop.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Stop.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Stop.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Stop
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -51,7 +51,7 @@
 -- | Stop receiving push notifications for the given user mailbox.
 --
 -- /See:/ 'usersStop' smart constructor.
-newtype UsersStop = UsersStop
+newtype UsersStop = UsersStop'
     { _usUserId :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -61,10 +61,9 @@
 --
 -- * 'usUserId'
 usersStop
-    :: Text
-    -> UsersStop
-usersStop pUsUserId_ =
-    UsersStop
+    :: UsersStop
+usersStop =
+    UsersStop'
     { _usUserId = "me"
     }
 
@@ -75,7 +74,11 @@
 
 instance GoogleRequest UsersStop where
         type Rs UsersStop = ()
-        requestClient UsersStop{..}
+        type Scopes UsersStop =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly"]
+        requestClient UsersStop'{..}
           = go _usUserId (Just AltJSON) gmailService
           where go
                   = buildClient (Proxy :: Proxy UsersStopResource)
diff --git a/gen/Network/Google/Resource/Gmail/Users/Threads/Delete.hs b/gen/Network/Google/Resource/Gmail/Users/Threads/Delete.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Threads/Delete.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Threads/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Threads.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- cannot be undone. Prefer threads.trash instead.
 --
 -- /See:/ 'usersThreadsDelete' smart constructor.
-data UsersThreadsDelete = UsersThreadsDelete
+data UsersThreadsDelete = UsersThreadsDelete'
     { _utdUserId :: !Text
     , _utdId     :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -70,10 +70,9 @@
 -- * 'utdId'
 usersThreadsDelete
     :: Text -- ^ 'utdId'
-    -> Text
     -> UsersThreadsDelete
-usersThreadsDelete pUtdUserId_ pUtdId_ =
-    UsersThreadsDelete
+usersThreadsDelete pUtdId_ =
+    UsersThreadsDelete'
     { _utdUserId = "me"
     , _utdId = pUtdId_
     }
@@ -90,7 +89,9 @@
 
 instance GoogleRequest UsersThreadsDelete where
         type Rs UsersThreadsDelete = ()
-        requestClient UsersThreadsDelete{..}
+        type Scopes UsersThreadsDelete =
+             '["https://mail.google.com/"]
+        requestClient UsersThreadsDelete'{..}
           = go _utdUserId _utdId (Just AltJSON) gmailService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/Gmail/Users/Threads/Get.hs b/gen/Network/Google/Resource/Gmail/Users/Threads/Get.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Threads/Get.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Threads/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Threads.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -58,7 +58,7 @@
 -- | Gets the specified thread.
 --
 -- /See:/ 'usersThreadsGet' smart constructor.
-data UsersThreadsGet = UsersThreadsGet
+data UsersThreadsGet = UsersThreadsGet'
     { _utgFormat          :: !UsersThreadsGetFormat
     , _utgUserId          :: !Text
     , _utgId              :: !Text
@@ -78,10 +78,9 @@
 -- * 'utgMetadataHeaders'
 usersThreadsGet
     :: Text -- ^ 'utgId'
-    -> Text
     -> UsersThreadsGet
-usersThreadsGet pUtgUserId_ pUtgId_ =
-    UsersThreadsGet
+usersThreadsGet pUtgId_ =
+    UsersThreadsGet'
     { _utgFormat = UTGFFull
     , _utgUserId = "me"
     , _utgId = pUtgId_
@@ -113,7 +112,11 @@
 
 instance GoogleRequest UsersThreadsGet where
         type Rs UsersThreadsGet = Thread
-        requestClient UsersThreadsGet{..}
+        type Scopes UsersThreadsGet =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly"]
+        requestClient UsersThreadsGet'{..}
           = go _utgUserId _utgId (Just _utgFormat)
               (_utgMetadataHeaders ^. _Default)
               (Just AltJSON)
diff --git a/gen/Network/Google/Resource/Gmail/Users/Threads/List.hs b/gen/Network/Google/Resource/Gmail/Users/Threads/List.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Threads/List.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Threads/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Threads.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -63,7 +63,7 @@
 -- | Lists the threads in the user\'s mailbox.
 --
 -- /See:/ 'usersThreadsList' smart constructor.
-data UsersThreadsList = UsersThreadsList
+data UsersThreadsList = UsersThreadsList'
     { _utlQ                :: !(Maybe Text)
     , _utlUserId           :: !Text
     , _utlIncludeSpamTrash :: !Bool
@@ -88,10 +88,9 @@
 --
 -- * 'utlMaxResults'
 usersThreadsList
-    :: Text
-    -> UsersThreadsList
-usersThreadsList pUtlUserId_ =
-    UsersThreadsList
+    :: UsersThreadsList
+usersThreadsList =
+    UsersThreadsList'
     { _utlQ = Nothing
     , _utlUserId = "me"
     , _utlIncludeSpamTrash = False
@@ -140,7 +139,11 @@
 
 instance GoogleRequest UsersThreadsList where
         type Rs UsersThreadsList = ListThreadsResponse
-        requestClient UsersThreadsList{..}
+        type Scopes UsersThreadsList =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly"]
+        requestClient UsersThreadsList'{..}
           = go _utlUserId _utlQ (Just _utlIncludeSpamTrash)
               (_utlLabelIds ^. _Default)
               _utlPageToken
diff --git a/gen/Network/Google/Resource/Gmail/Users/Threads/Modify.hs b/gen/Network/Google/Resource/Gmail/Users/Threads/Modify.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Threads/Modify.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Threads/Modify.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Threads.Modify
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -60,7 +60,7 @@
 -- in the thread.
 --
 -- /See:/ 'usersThreadsModify' smart constructor.
-data UsersThreadsModify = UsersThreadsModify
+data UsersThreadsModify = UsersThreadsModify'
     { _utmPayload :: !ModifyThreadRequest
     , _utmUserId  :: !Text
     , _utmId      :: !Text
@@ -78,10 +78,9 @@
 usersThreadsModify
     :: ModifyThreadRequest -- ^ 'utmPayload'
     -> Text -- ^ 'utmId'
-    -> Text
     -> UsersThreadsModify
-usersThreadsModify pUtmPayload_ pUtmUserId_ pUtmId_ =
-    UsersThreadsModify
+usersThreadsModify pUtmPayload_ pUtmId_ =
+    UsersThreadsModify'
     { _utmPayload = pUtmPayload_
     , _utmUserId = "me"
     , _utmId = pUtmId_
@@ -104,7 +103,10 @@
 
 instance GoogleRequest UsersThreadsModify where
         type Rs UsersThreadsModify = Thread
-        requestClient UsersThreadsModify{..}
+        type Scopes UsersThreadsModify =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify"]
+        requestClient UsersThreadsModify'{..}
           = go _utmUserId _utmId (Just AltJSON) _utmPayload
               gmailService
           where go
diff --git a/gen/Network/Google/Resource/Gmail/Users/Threads/Trash.hs b/gen/Network/Google/Resource/Gmail/Users/Threads/Trash.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Threads/Trash.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Threads/Trash.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Threads.Trash
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Moves the specified thread to the trash.
 --
 -- /See:/ 'usersThreadsTrash' smart constructor.
-data UsersThreadsTrash = UsersThreadsTrash
+data UsersThreadsTrash = UsersThreadsTrash'
     { _uttUserId :: !Text
     , _uttId     :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -69,10 +69,9 @@
 -- * 'uttId'
 usersThreadsTrash
     :: Text -- ^ 'uttId'
-    -> Text
     -> UsersThreadsTrash
-usersThreadsTrash pUttUserId_ pUttId_ =
-    UsersThreadsTrash
+usersThreadsTrash pUttId_ =
+    UsersThreadsTrash'
     { _uttUserId = "me"
     , _uttId = pUttId_
     }
@@ -89,7 +88,10 @@
 
 instance GoogleRequest UsersThreadsTrash where
         type Rs UsersThreadsTrash = Thread
-        requestClient UsersThreadsTrash{..}
+        type Scopes UsersThreadsTrash =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify"]
+        requestClient UsersThreadsTrash'{..}
           = go _uttUserId _uttId (Just AltJSON) gmailService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/Gmail/Users/Threads/Untrash.hs b/gen/Network/Google/Resource/Gmail/Users/Threads/Untrash.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Threads/Untrash.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Threads/Untrash.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Threads.Untrash
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Removes the specified thread from the trash.
 --
 -- /See:/ 'usersThreadsUntrash' smart constructor.
-data UsersThreadsUntrash = UsersThreadsUntrash
+data UsersThreadsUntrash = UsersThreadsUntrash'
     { _utuUserId :: !Text
     , _utuId     :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -69,10 +69,9 @@
 -- * 'utuId'
 usersThreadsUntrash
     :: Text -- ^ 'utuId'
-    -> Text
     -> UsersThreadsUntrash
-usersThreadsUntrash pUtuUserId_ pUtuId_ =
-    UsersThreadsUntrash
+usersThreadsUntrash pUtuId_ =
+    UsersThreadsUntrash'
     { _utuUserId = "me"
     , _utuId = pUtuId_
     }
@@ -89,7 +88,10 @@
 
 instance GoogleRequest UsersThreadsUntrash where
         type Rs UsersThreadsUntrash = Thread
-        requestClient UsersThreadsUntrash{..}
+        type Scopes UsersThreadsUntrash =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify"]
+        requestClient UsersThreadsUntrash'{..}
           = go _utuUserId _utuId (Just AltJSON) gmailService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/Gmail/Users/Watch.hs b/gen/Network/Google/Resource/Gmail/Users/Watch.hs
--- a/gen/Network/Google/Resource/Gmail/Users/Watch.hs
+++ b/gen/Network/Google/Resource/Gmail/Users/Watch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Gmail.Users.Watch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Set up or update a push notification watch on the given user mailbox.
 --
 -- /See:/ 'usersWatch' smart constructor.
-data UsersWatch = UsersWatch
+data UsersWatch = UsersWatch'
     { _uwPayload :: !WatchRequest
     , _uwUserId  :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -69,10 +69,9 @@
 -- * 'uwUserId'
 usersWatch
     :: WatchRequest -- ^ 'uwPayload'
-    -> Text
     -> UsersWatch
-usersWatch pUwPayload_ pUwUserId_ =
-    UsersWatch
+usersWatch pUwPayload_ =
+    UsersWatch'
     { _uwPayload = pUwPayload_
     , _uwUserId = "me"
     }
@@ -89,7 +88,11 @@
 
 instance GoogleRequest UsersWatch where
         type Rs UsersWatch = WatchResponse
-        requestClient UsersWatch{..}
+        type Scopes UsersWatch =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly"]
+        requestClient UsersWatch'{..}
           = go _uwUserId (Just AltJSON) _uwPayload gmailService
           where go
                   = buildClient (Proxy :: Proxy UsersWatchResource)
diff --git a/gogol-gmail.cabal b/gogol-gmail.cabal
--- a/gogol-gmail.cabal
+++ b/gogol-gmail.cabal
@@ -1,5 +1,5 @@
 name:                  gogol-gmail
-version:               0.0.1
+version:               0.1.0
 synopsis:              Google Gmail SDK.
 homepage:              https://github.com/brendanhay/gogol
 bug-reports:           https://github.com/brendanhay/gogol/issues
@@ -7,14 +7,14 @@
 license-file:          LICENSE
 author:                Brendan Hay
 maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2015 Brendan Hay
+copyright:             Copyright (c) 2015-2016 Brendan Hay
 category:              Network, Google, Cloud
 build-type:            Simple
 cabal-version:         >= 1.10
 extra-source-files:    README.md
 
 description:
-    The Gmail REST API.
+    Access Gmail mailboxes including sending user email.
     .
     /Warning:/ This is an experimental prototype/preview release which is still
     under exploratory development and not intended for public use, caveat emptor!
@@ -50,6 +50,7 @@
         , Network.Google.Resource.Gmail.Users.Labels.Patch
         , Network.Google.Resource.Gmail.Users.Labels.Update
         , Network.Google.Resource.Gmail.Users.Messages.Attachments.Get
+        , Network.Google.Resource.Gmail.Users.Messages.BatchDelete
         , Network.Google.Resource.Gmail.Users.Messages.Delete
         , Network.Google.Resource.Gmail.Users.Messages.Get
         , Network.Google.Resource.Gmail.Users.Messages.Import
@@ -73,5 +74,5 @@
         , Network.Google.Gmail.Types.Sum
 
     build-depends:
-          gogol-core == 0.0.1.*
+          gogol-core == 0.1.0.*
         , base       >= 4.7 && < 5
