diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`0.1.0`
+`0.1.1`
 
 
 ## Description
diff --git a/gen/Network/Google/Gmail.hs b/gen/Network/Google/Gmail.hs
--- a/gen/Network/Google/Gmail.hs
+++ b/gen/Network/Google/Gmail.hs
@@ -22,9 +22,11 @@
       gmailService
 
     -- * OAuth Scopes
+    , gmailSettingsBasicScope
     , mailGoogleComScope
     , gmailModifyScope
     , gmailLabelsScope
+    , gmailSettingsSharingScope
     , gmailSendScope
     , gmailInsertScope
     , gmailComposeScope
@@ -110,6 +112,75 @@
     -- ** gmail.users.messages.untrash
     , module Network.Google.Resource.Gmail.Users.Messages.Untrash
 
+    -- ** gmail.users.settings.filters.create
+    , module Network.Google.Resource.Gmail.Users.Settings.Filters.Create
+
+    -- ** gmail.users.settings.filters.delete
+    , module Network.Google.Resource.Gmail.Users.Settings.Filters.Delete
+
+    -- ** gmail.users.settings.filters.get
+    , module Network.Google.Resource.Gmail.Users.Settings.Filters.Get
+
+    -- ** gmail.users.settings.filters.list
+    , module Network.Google.Resource.Gmail.Users.Settings.Filters.List
+
+    -- ** gmail.users.settings.forwardingAddresses.create
+    , module Network.Google.Resource.Gmail.Users.Settings.ForwardingAddresses.Create
+
+    -- ** gmail.users.settings.forwardingAddresses.delete
+    , module Network.Google.Resource.Gmail.Users.Settings.ForwardingAddresses.Delete
+
+    -- ** gmail.users.settings.forwardingAddresses.get
+    , module Network.Google.Resource.Gmail.Users.Settings.ForwardingAddresses.Get
+
+    -- ** gmail.users.settings.forwardingAddresses.list
+    , module Network.Google.Resource.Gmail.Users.Settings.ForwardingAddresses.List
+
+    -- ** gmail.users.settings.getAutoForwarding
+    , module Network.Google.Resource.Gmail.Users.Settings.GetAutoForwarding
+
+    -- ** gmail.users.settings.getImap
+    , module Network.Google.Resource.Gmail.Users.Settings.GetImap
+
+    -- ** gmail.users.settings.getPop
+    , module Network.Google.Resource.Gmail.Users.Settings.GetPop
+
+    -- ** gmail.users.settings.getVacation
+    , module Network.Google.Resource.Gmail.Users.Settings.GetVacation
+
+    -- ** gmail.users.settings.sendAs.create
+    , module Network.Google.Resource.Gmail.Users.Settings.SendAs.Create
+
+    -- ** gmail.users.settings.sendAs.delete
+    , module Network.Google.Resource.Gmail.Users.Settings.SendAs.Delete
+
+    -- ** gmail.users.settings.sendAs.get
+    , module Network.Google.Resource.Gmail.Users.Settings.SendAs.Get
+
+    -- ** gmail.users.settings.sendAs.list
+    , module Network.Google.Resource.Gmail.Users.Settings.SendAs.List
+
+    -- ** gmail.users.settings.sendAs.patch
+    , module Network.Google.Resource.Gmail.Users.Settings.SendAs.Patch
+
+    -- ** gmail.users.settings.sendAs.update
+    , module Network.Google.Resource.Gmail.Users.Settings.SendAs.Update
+
+    -- ** gmail.users.settings.sendAs.verify
+    , module Network.Google.Resource.Gmail.Users.Settings.SendAs.Verify
+
+    -- ** gmail.users.settings.updateAutoForwarding
+    , module Network.Google.Resource.Gmail.Users.Settings.UpdateAutoForwarding
+
+    -- ** gmail.users.settings.updateImap
+    , module Network.Google.Resource.Gmail.Users.Settings.UpdateImap
+
+    -- ** gmail.users.settings.updatePop
+    , module Network.Google.Resource.Gmail.Users.Settings.UpdatePop
+
+    -- ** gmail.users.settings.updateVacation
+    , module Network.Google.Resource.Gmail.Users.Settings.UpdateVacation
+
     -- ** gmail.users.stop
     , module Network.Google.Resource.Gmail.Users.Stop
 
@@ -141,6 +212,9 @@
     , batchDeleteMessagesRequest
     , bdmrIds
 
+    -- ** FilterCriteriaSizeComparison
+    , FilterCriteriaSizeComparison (..)
+
     -- ** UsersMessagesGetFormat
     , UsersMessagesGetFormat (..)
 
@@ -150,12 +224,31 @@
     , mtrRemoveLabelIds
     , mtrAddLabelIds
 
+    -- ** ListFiltersResponse
+    , ListFiltersResponse
+    , listFiltersResponse
+    , lfrFilter
+
     -- ** ModifyMessageRequest
     , ModifyMessageRequest
     , modifyMessageRequest
     , mmrRemoveLabelIds
     , mmrAddLabelIds
 
+    -- ** ListForwardingAddressesResponse
+    , ListForwardingAddressesResponse
+    , listForwardingAddressesResponse
+    , lfarForwardingAddresses
+
+    -- ** PopSettings
+    , PopSettings
+    , popSettings
+    , psAccessWindow
+    , psDisPosition
+
+    -- ** PopSettingsAccessWindow
+    , PopSettingsAccessWindow (..)
+
     -- ** History
     , History
     , history
@@ -166,6 +259,22 @@
     , hId
     , hMessages
 
+    -- ** ForwardingAddressVerificationStatus
+    , ForwardingAddressVerificationStatus (..)
+
+    -- ** FilterCriteria
+    , FilterCriteria
+    , filterCriteria
+    , fcSizeComparison
+    , fcSubject
+    , fcSize
+    , fcExcludeChats
+    , fcTo
+    , fcFrom
+    , fcQuery
+    , fcNegatedQuery
+    , fcHasAttachment
+
     -- ** ProFile
     , ProFile
     , proFile
@@ -174,12 +283,18 @@
     , pfHistoryId
     , pfEmailAddress
 
+    -- ** AutoForwardingDisPosition
+    , AutoForwardingDisPosition (..)
+
     -- ** MessagePartHeader
     , MessagePartHeader
     , messagePartHeader
     , mphValue
     , mphName
 
+    -- ** SendAsVerificationStatus
+    , SendAsVerificationStatus (..)
+
     -- ** ListHistoryResponse
     , ListHistoryResponse
     , listHistoryResponse
@@ -187,6 +302,19 @@
     , lhrHistory
     , lhrHistoryId
 
+    -- ** SendAs
+    , SendAs
+    , sendAs
+    , saSignature
+    , saReplyToAddress
+    , saTreatAsAlias
+    , saSendAsEmail
+    , saDisplayName
+    , saVerificationStatus
+    , saSmtpMsa
+    , saIsPrimary
+    , saIsDefault
+
     -- ** LabelType
     , LabelType (..)
 
@@ -227,6 +355,18 @@
     , listLabelsResponse
     , llrLabels
 
+    -- ** VacationSettings
+    , VacationSettings
+    , vacationSettings
+    , vsEnableAutoReply
+    , vsResponseBodyPlainText
+    , vsRestrictToDomain
+    , vsStartTime
+    , vsResponseBodyHTML
+    , vsRestrictToContacts
+    , vsResponseSubject
+    , vsEndTime
+
     -- ** LabelLabelListVisibility
     , LabelLabelListVisibility (..)
 
@@ -242,6 +382,13 @@
     , mpbData
     , mpbAttachmentId
 
+    -- ** AutoForwarding
+    , AutoForwarding
+    , autoForwarding
+    , afEnabled
+    , afDisPosition
+    , afEmailAddress
+
     -- ** ListDraftsResponse
     , ListDraftsResponse
     , listDraftsResponse
@@ -249,6 +396,11 @@
     , ldrResultSizeEstimate
     , ldrDrafts
 
+    -- ** ListSendAsResponse
+    , ListSendAsResponse
+    , listSendAsResponse
+    , lsarSendAs
+
     -- ** WatchResponse
     , WatchResponse
     , watchResponse
@@ -264,6 +416,31 @@
     , dId
     , dMessage
 
+    -- ** SmtpMsa
+    , SmtpMsa
+    , smtpMsa
+    , smSecurityMode
+    , smUsername
+    , smPassword
+    , smHost
+    , smPort
+
+    -- ** ForwardingAddress
+    , ForwardingAddress
+    , forwardingAddress
+    , faForwardingEmail
+    , faVerificationStatus
+
+    -- ** PopSettingsDisPosition
+    , PopSettingsDisPosition (..)
+
+    -- ** Filter
+    , Filter
+    , filter'
+    , fAction
+    , fId
+    , fCriteria
+
     -- ** WatchRequest
     , WatchRequest
     , watchRequest
@@ -274,6 +451,20 @@
     -- ** WatchRequestLabelFilterAction
     , WatchRequestLabelFilterAction (..)
 
+    -- ** ImapSettings
+    , ImapSettings
+    , imapSettings
+    , isEnabled
+    , isExpungeBehavior
+    , isAutoExpunge
+    , isMaxFolderSize
+
+    -- ** ImapSettingsExpungeBehavior
+    , ImapSettingsExpungeBehavior (..)
+
+    -- ** SmtpMsaSecurityMode
+    , SmtpMsaSecurityMode (..)
+
     -- ** Message
     , Message
     , message
@@ -304,6 +495,13 @@
     , tId
     , tMessages
 
+    -- ** FilterAction
+    , FilterAction
+    , filterAction
+    , faForward
+    , faRemoveLabelIds
+    , faAddLabelIds
+
     -- ** Label
     , Label
     , label
@@ -357,6 +555,29 @@
 import           Network.Google.Resource.Gmail.Users.Messages.Send
 import           Network.Google.Resource.Gmail.Users.Messages.Trash
 import           Network.Google.Resource.Gmail.Users.Messages.Untrash
+import           Network.Google.Resource.Gmail.Users.Settings.Filters.Create
+import           Network.Google.Resource.Gmail.Users.Settings.Filters.Delete
+import           Network.Google.Resource.Gmail.Users.Settings.Filters.Get
+import           Network.Google.Resource.Gmail.Users.Settings.Filters.List
+import           Network.Google.Resource.Gmail.Users.Settings.ForwardingAddresses.Create
+import           Network.Google.Resource.Gmail.Users.Settings.ForwardingAddresses.Delete
+import           Network.Google.Resource.Gmail.Users.Settings.ForwardingAddresses.Get
+import           Network.Google.Resource.Gmail.Users.Settings.ForwardingAddresses.List
+import           Network.Google.Resource.Gmail.Users.Settings.GetAutoForwarding
+import           Network.Google.Resource.Gmail.Users.Settings.GetImap
+import           Network.Google.Resource.Gmail.Users.Settings.GetPop
+import           Network.Google.Resource.Gmail.Users.Settings.GetVacation
+import           Network.Google.Resource.Gmail.Users.Settings.SendAs.Create
+import           Network.Google.Resource.Gmail.Users.Settings.SendAs.Delete
+import           Network.Google.Resource.Gmail.Users.Settings.SendAs.Get
+import           Network.Google.Resource.Gmail.Users.Settings.SendAs.List
+import           Network.Google.Resource.Gmail.Users.Settings.SendAs.Patch
+import           Network.Google.Resource.Gmail.Users.Settings.SendAs.Update
+import           Network.Google.Resource.Gmail.Users.Settings.SendAs.Verify
+import           Network.Google.Resource.Gmail.Users.Settings.UpdateAutoForwarding
+import           Network.Google.Resource.Gmail.Users.Settings.UpdateImap
+import           Network.Google.Resource.Gmail.Users.Settings.UpdatePop
+import           Network.Google.Resource.Gmail.Users.Settings.UpdateVacation
 import           Network.Google.Resource.Gmail.Users.Stop
 import           Network.Google.Resource.Gmail.Users.Threads.Delete
 import           Network.Google.Resource.Gmail.Users.Threads.Get
@@ -372,7 +593,31 @@
 
 -- | Represents the entirety of the methods and resources available for the Gmail API service.
 type GmailAPI =
-     UsersHistoryListResource :<|> UsersDraftsListResource
+     UsersHistoryListResource :<|>
+       UsersSettingsForwardingAddressesListResource
+       :<|> UsersSettingsForwardingAddressesGetResource
+       :<|> UsersSettingsForwardingAddressesCreateResource
+       :<|> UsersSettingsForwardingAddressesDeleteResource
+       :<|> UsersSettingsFiltersListResource
+       :<|> UsersSettingsFiltersGetResource
+       :<|> UsersSettingsFiltersCreateResource
+       :<|> UsersSettingsFiltersDeleteResource
+       :<|> UsersSettingsSendAsVerifyResource
+       :<|> UsersSettingsSendAsListResource
+       :<|> UsersSettingsSendAsPatchResource
+       :<|> UsersSettingsSendAsGetResource
+       :<|> UsersSettingsSendAsCreateResource
+       :<|> UsersSettingsSendAsDeleteResource
+       :<|> UsersSettingsSendAsUpdateResource
+       :<|> UsersSettingsUpdateImapResource
+       :<|> UsersSettingsGetVacationResource
+       :<|> UsersSettingsGetAutoForwardingResource
+       :<|> UsersSettingsUpdateAutoForwardingResource
+       :<|> UsersSettingsUpdateVacationResource
+       :<|> UsersSettingsGetImapResource
+       :<|> UsersSettingsUpdatePopResource
+       :<|> UsersSettingsGetPopResource
+       :<|> UsersDraftsListResource
        :<|> UsersDraftsGetResource
        :<|> UsersDraftsCreateResource
        :<|> UsersDraftsSendResource
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
@@ -20,9 +20,11 @@
       gmailService
 
     -- * OAuth Scopes
+    , gmailSettingsBasicScope
     , mailGoogleComScope
     , gmailModifyScope
     , gmailLabelsScope
+    , gmailSettingsSharingScope
     , gmailSendScope
     , gmailInsertScope
     , gmailComposeScope
@@ -33,6 +35,9 @@
     , batchDeleteMessagesRequest
     , bdmrIds
 
+    -- * FilterCriteriaSizeComparison
+    , FilterCriteriaSizeComparison (..)
+
     -- * UsersMessagesGetFormat
     , UsersMessagesGetFormat (..)
 
@@ -42,12 +47,31 @@
     , mtrRemoveLabelIds
     , mtrAddLabelIds
 
+    -- * ListFiltersResponse
+    , ListFiltersResponse
+    , listFiltersResponse
+    , lfrFilter
+
     -- * ModifyMessageRequest
     , ModifyMessageRequest
     , modifyMessageRequest
     , mmrRemoveLabelIds
     , mmrAddLabelIds
 
+    -- * ListForwardingAddressesResponse
+    , ListForwardingAddressesResponse
+    , listForwardingAddressesResponse
+    , lfarForwardingAddresses
+
+    -- * PopSettings
+    , PopSettings
+    , popSettings
+    , psAccessWindow
+    , psDisPosition
+
+    -- * PopSettingsAccessWindow
+    , PopSettingsAccessWindow (..)
+
     -- * History
     , History
     , history
@@ -58,6 +82,22 @@
     , hId
     , hMessages
 
+    -- * ForwardingAddressVerificationStatus
+    , ForwardingAddressVerificationStatus (..)
+
+    -- * FilterCriteria
+    , FilterCriteria
+    , filterCriteria
+    , fcSizeComparison
+    , fcSubject
+    , fcSize
+    , fcExcludeChats
+    , fcTo
+    , fcFrom
+    , fcQuery
+    , fcNegatedQuery
+    , fcHasAttachment
+
     -- * ProFile
     , ProFile
     , proFile
@@ -66,12 +106,18 @@
     , pfHistoryId
     , pfEmailAddress
 
+    -- * AutoForwardingDisPosition
+    , AutoForwardingDisPosition (..)
+
     -- * MessagePartHeader
     , MessagePartHeader
     , messagePartHeader
     , mphValue
     , mphName
 
+    -- * SendAsVerificationStatus
+    , SendAsVerificationStatus (..)
+
     -- * ListHistoryResponse
     , ListHistoryResponse
     , listHistoryResponse
@@ -79,6 +125,19 @@
     , lhrHistory
     , lhrHistoryId
 
+    -- * SendAs
+    , SendAs
+    , sendAs
+    , saSignature
+    , saReplyToAddress
+    , saTreatAsAlias
+    , saSendAsEmail
+    , saDisplayName
+    , saVerificationStatus
+    , saSmtpMsa
+    , saIsPrimary
+    , saIsDefault
+
     -- * LabelType
     , LabelType (..)
 
@@ -119,6 +178,18 @@
     , listLabelsResponse
     , llrLabels
 
+    -- * VacationSettings
+    , VacationSettings
+    , vacationSettings
+    , vsEnableAutoReply
+    , vsResponseBodyPlainText
+    , vsRestrictToDomain
+    , vsStartTime
+    , vsResponseBodyHTML
+    , vsRestrictToContacts
+    , vsResponseSubject
+    , vsEndTime
+
     -- * LabelLabelListVisibility
     , LabelLabelListVisibility (..)
 
@@ -134,6 +205,13 @@
     , mpbData
     , mpbAttachmentId
 
+    -- * AutoForwarding
+    , AutoForwarding
+    , autoForwarding
+    , afEnabled
+    , afDisPosition
+    , afEmailAddress
+
     -- * ListDraftsResponse
     , ListDraftsResponse
     , listDraftsResponse
@@ -141,6 +219,11 @@
     , ldrResultSizeEstimate
     , ldrDrafts
 
+    -- * ListSendAsResponse
+    , ListSendAsResponse
+    , listSendAsResponse
+    , lsarSendAs
+
     -- * WatchResponse
     , WatchResponse
     , watchResponse
@@ -156,6 +239,31 @@
     , dId
     , dMessage
 
+    -- * SmtpMsa
+    , SmtpMsa
+    , smtpMsa
+    , smSecurityMode
+    , smUsername
+    , smPassword
+    , smHost
+    , smPort
+
+    -- * ForwardingAddress
+    , ForwardingAddress
+    , forwardingAddress
+    , faForwardingEmail
+    , faVerificationStatus
+
+    -- * PopSettingsDisPosition
+    , PopSettingsDisPosition (..)
+
+    -- * Filter
+    , Filter
+    , filter'
+    , fAction
+    , fId
+    , fCriteria
+
     -- * WatchRequest
     , WatchRequest
     , watchRequest
@@ -166,6 +274,20 @@
     -- * WatchRequestLabelFilterAction
     , WatchRequestLabelFilterAction (..)
 
+    -- * ImapSettings
+    , ImapSettings
+    , imapSettings
+    , isEnabled
+    , isExpungeBehavior
+    , isAutoExpunge
+    , isMaxFolderSize
+
+    -- * ImapSettingsExpungeBehavior
+    , ImapSettingsExpungeBehavior (..)
+
+    -- * SmtpMsaSecurityMode
+    , SmtpMsaSecurityMode (..)
+
     -- * Message
     , Message
     , message
@@ -196,6 +318,13 @@
     , tId
     , tMessages
 
+    -- * FilterAction
+    , FilterAction
+    , filterAction
+    , faForward
+    , faRemoveLabelIds
+    , faAddLabelIds
+
     -- * Label
     , Label
     , label
@@ -232,6 +361,10 @@
   = defaultService (ServiceId "gmail:v1")
       "www.googleapis.com"
 
+-- | Manage your basic mail settings
+gmailSettingsBasicScope :: Proxy '["https://www.googleapis.com/auth/gmail.settings.basic"]
+gmailSettingsBasicScope = Proxy;
+
 -- | View and manage your mail
 mailGoogleComScope :: Proxy '["https://mail.google.com/"]
 mailGoogleComScope = Proxy;
@@ -243,6 +376,10 @@
 -- | Manage mailbox labels
 gmailLabelsScope :: Proxy '["https://www.googleapis.com/auth/gmail.labels"]
 gmailLabelsScope = Proxy;
+
+-- | Manage your sensitive mail settings, including who can manage your mail
+gmailSettingsSharingScope :: Proxy '["https://www.googleapis.com/auth/gmail.settings.sharing"]
+gmailSettingsSharingScope = Proxy;
 
 -- | Send email on your behalf
 gmailSendScope :: Proxy '["https://www.googleapis.com/auth/gmail.send"]
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
@@ -108,7 +108,43 @@
                  [("removeLabelIds" .=) <$> _mtrRemoveLabelIds,
                   ("addLabelIds" .=) <$> _mtrAddLabelIds])
 
+-- | Response for the ListFilters method.
 --
+-- /See:/ 'listFiltersResponse' smart constructor.
+newtype ListFiltersResponse = ListFiltersResponse'
+    { _lfrFilter :: Maybe [Filter]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListFiltersResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lfrFilter'
+listFiltersResponse
+    :: ListFiltersResponse
+listFiltersResponse =
+    ListFiltersResponse'
+    { _lfrFilter = Nothing
+    }
+
+-- | List of a user\'s filters.
+lfrFilter :: Lens' ListFiltersResponse [Filter]
+lfrFilter
+  = lens _lfrFilter (\ s a -> s{_lfrFilter = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ListFiltersResponse where
+        parseJSON
+          = withObject "ListFiltersResponse"
+              (\ o ->
+                 ListFiltersResponse' <$> (o .:? "filter" .!= mempty))
+
+instance ToJSON ListFiltersResponse where
+        toJSON ListFiltersResponse'{..}
+          = object (catMaybes [("filter" .=) <$> _lfrFilter])
+
+--
 -- /See:/ 'modifyMessageRequest' smart constructor.
 data ModifyMessageRequest = ModifyMessageRequest'
     { _mmrRemoveLabelIds :: !(Maybe [Text])
@@ -161,6 +197,98 @@
                  [("removeLabelIds" .=) <$> _mmrRemoveLabelIds,
                   ("addLabelIds" .=) <$> _mmrAddLabelIds])
 
+-- | Response for the ListForwardingAddresses method.
+--
+-- /See:/ 'listForwardingAddressesResponse' smart constructor.
+newtype ListForwardingAddressesResponse = ListForwardingAddressesResponse'
+    { _lfarForwardingAddresses :: Maybe [ForwardingAddress]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListForwardingAddressesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lfarForwardingAddresses'
+listForwardingAddressesResponse
+    :: ListForwardingAddressesResponse
+listForwardingAddressesResponse =
+    ListForwardingAddressesResponse'
+    { _lfarForwardingAddresses = Nothing
+    }
+
+-- | List of addresses that may be used for forwarding.
+lfarForwardingAddresses :: Lens' ListForwardingAddressesResponse [ForwardingAddress]
+lfarForwardingAddresses
+  = lens _lfarForwardingAddresses
+      (\ s a -> s{_lfarForwardingAddresses = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListForwardingAddressesResponse
+         where
+        parseJSON
+          = withObject "ListForwardingAddressesResponse"
+              (\ o ->
+                 ListForwardingAddressesResponse' <$>
+                   (o .:? "forwardingAddresses" .!= mempty))
+
+instance ToJSON ListForwardingAddressesResponse where
+        toJSON ListForwardingAddressesResponse'{..}
+          = object
+              (catMaybes
+                 [("forwardingAddresses" .=) <$>
+                    _lfarForwardingAddresses])
+
+-- | POP settings for an account.
+--
+-- /See:/ 'popSettings' smart constructor.
+data PopSettings = PopSettings'
+    { _psAccessWindow :: !(Maybe PopSettingsAccessWindow)
+    , _psDisPosition  :: !(Maybe PopSettingsDisPosition)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PopSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'psAccessWindow'
+--
+-- * 'psDisPosition'
+popSettings
+    :: PopSettings
+popSettings =
+    PopSettings'
+    { _psAccessWindow = Nothing
+    , _psDisPosition = Nothing
+    }
+
+-- | The range of messages which are accessible via POP.
+psAccessWindow :: Lens' PopSettings (Maybe PopSettingsAccessWindow)
+psAccessWindow
+  = lens _psAccessWindow
+      (\ s a -> s{_psAccessWindow = a})
+
+-- | The action that will be executed on a message after it has been fetched
+-- via POP.
+psDisPosition :: Lens' PopSettings (Maybe PopSettingsDisPosition)
+psDisPosition
+  = lens _psDisPosition
+      (\ s a -> s{_psDisPosition = a})
+
+instance FromJSON PopSettings where
+        parseJSON
+          = withObject "PopSettings"
+              (\ o ->
+                 PopSettings' <$>
+                   (o .:? "accessWindow") <*> (o .:? "disposition"))
+
+instance ToJSON PopSettings where
+        toJSON PopSettings'{..}
+          = object
+              (catMaybes
+                 [("accessWindow" .=) <$> _psAccessWindow,
+                  ("disposition" .=) <$> _psDisPosition])
+
 -- | A record of a change to the user\'s mailbox. Each history change may
 -- affect multiple messages in multiple ways.
 --
@@ -269,6 +397,141 @@
                   ("labelsAdded" .=) <$> _hLabelsAdded,
                   ("id" .=) <$> _hId, ("messages" .=) <$> _hMessages])
 
+-- | Message matching criteria.
+--
+-- /See:/ 'filterCriteria' smart constructor.
+data FilterCriteria = FilterCriteria'
+    { _fcSizeComparison :: !(Maybe FilterCriteriaSizeComparison)
+    , _fcSubject        :: !(Maybe Text)
+    , _fcSize           :: !(Maybe (Textual Int32))
+    , _fcExcludeChats   :: !(Maybe Bool)
+    , _fcTo             :: !(Maybe Text)
+    , _fcFrom           :: !(Maybe Text)
+    , _fcQuery          :: !(Maybe Text)
+    , _fcNegatedQuery   :: !(Maybe Text)
+    , _fcHasAttachment  :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FilterCriteria' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fcSizeComparison'
+--
+-- * 'fcSubject'
+--
+-- * 'fcSize'
+--
+-- * 'fcExcludeChats'
+--
+-- * 'fcTo'
+--
+-- * 'fcFrom'
+--
+-- * 'fcQuery'
+--
+-- * 'fcNegatedQuery'
+--
+-- * 'fcHasAttachment'
+filterCriteria
+    :: FilterCriteria
+filterCriteria =
+    FilterCriteria'
+    { _fcSizeComparison = Nothing
+    , _fcSubject = Nothing
+    , _fcSize = Nothing
+    , _fcExcludeChats = Nothing
+    , _fcTo = Nothing
+    , _fcFrom = Nothing
+    , _fcQuery = Nothing
+    , _fcNegatedQuery = Nothing
+    , _fcHasAttachment = Nothing
+    }
+
+-- | How the message size in bytes should be in relation to the size field.
+fcSizeComparison :: Lens' FilterCriteria (Maybe FilterCriteriaSizeComparison)
+fcSizeComparison
+  = lens _fcSizeComparison
+      (\ s a -> s{_fcSizeComparison = a})
+
+-- | Case-insensitive phrase found in the message\'s subject. Trailing and
+-- leading whitespace are be trimmed and adjacent spaces are collapsed.
+fcSubject :: Lens' FilterCriteria (Maybe Text)
+fcSubject
+  = lens _fcSubject (\ s a -> s{_fcSubject = a})
+
+-- | The size of the entire RFC822 message in bytes, including all headers
+-- and attachments.
+fcSize :: Lens' FilterCriteria (Maybe Int32)
+fcSize
+  = lens _fcSize (\ s a -> s{_fcSize = a}) .
+      mapping _Coerce
+
+-- | Whether the response should exclude chats.
+fcExcludeChats :: Lens' FilterCriteria (Maybe Bool)
+fcExcludeChats
+  = lens _fcExcludeChats
+      (\ s a -> s{_fcExcludeChats = a})
+
+-- | The recipient\'s display name or email address. Includes recipients in
+-- the \"to\", \"cc\", and \"bcc\" header fields. You can use simply the
+-- local part of the email address. For example, \"example\" and
+-- \"example\'\" both match \"example\'gmail.com\". This field is
+-- case-insensitive.
+fcTo :: Lens' FilterCriteria (Maybe Text)
+fcTo = lens _fcTo (\ s a -> s{_fcTo = a})
+
+-- | The sender\'s display name or email address.
+fcFrom :: Lens' FilterCriteria (Maybe Text)
+fcFrom = lens _fcFrom (\ s a -> s{_fcFrom = a})
+
+-- | Only return messages matching the specified query. Supports the same
+-- query format as the Gmail search box. For example,
+-- \"from:someuser\'example.com rfc822msgid: is:unread\".
+fcQuery :: Lens' FilterCriteria (Maybe Text)
+fcQuery = lens _fcQuery (\ s a -> s{_fcQuery = a})
+
+-- | Only return messages not matching the specified query. Supports the same
+-- query format as the Gmail search box. For example,
+-- \"from:someuser\'example.com rfc822msgid: is:unread\".
+fcNegatedQuery :: Lens' FilterCriteria (Maybe Text)
+fcNegatedQuery
+  = lens _fcNegatedQuery
+      (\ s a -> s{_fcNegatedQuery = a})
+
+-- | Whether the message has any attachment.
+fcHasAttachment :: Lens' FilterCriteria (Maybe Bool)
+fcHasAttachment
+  = lens _fcHasAttachment
+      (\ s a -> s{_fcHasAttachment = a})
+
+instance FromJSON FilterCriteria where
+        parseJSON
+          = withObject "FilterCriteria"
+              (\ o ->
+                 FilterCriteria' <$>
+                   (o .:? "sizeComparison") <*> (o .:? "subject") <*>
+                     (o .:? "size")
+                     <*> (o .:? "excludeChats")
+                     <*> (o .:? "to")
+                     <*> (o .:? "from")
+                     <*> (o .:? "query")
+                     <*> (o .:? "negatedQuery")
+                     <*> (o .:? "hasAttachment"))
+
+instance ToJSON FilterCriteria where
+        toJSON FilterCriteria'{..}
+          = object
+              (catMaybes
+                 [("sizeComparison" .=) <$> _fcSizeComparison,
+                  ("subject" .=) <$> _fcSubject,
+                  ("size" .=) <$> _fcSize,
+                  ("excludeChats" .=) <$> _fcExcludeChats,
+                  ("to" .=) <$> _fcTo, ("from" .=) <$> _fcFrom,
+                  ("query" .=) <$> _fcQuery,
+                  ("negatedQuery" .=) <$> _fcNegatedQuery,
+                  ("hasAttachment" .=) <$> _fcHasAttachment])
+
 -- | Profile for a Gmail user.
 --
 -- /See:/ 'proFile' smart constructor.
@@ -452,7 +715,160 @@
                   ("history" .=) <$> _lhrHistory,
                   ("historyId" .=) <$> _lhrHistoryId])
 
+-- | Settings associated with a send-as alias, which can be either the
+-- primary login address associated with the account or a custom \"from\"
+-- address. Send-as aliases correspond to the \"Send Mail As\" feature in
+-- the web interface. See for more details.
 --
+-- /See:/ 'sendAs' smart constructor.
+data SendAs = SendAs'
+    { _saSignature          :: !(Maybe Text)
+    , _saReplyToAddress     :: !(Maybe Text)
+    , _saTreatAsAlias       :: !(Maybe Bool)
+    , _saSendAsEmail        :: !(Maybe Text)
+    , _saDisplayName        :: !(Maybe Text)
+    , _saVerificationStatus :: !(Maybe SendAsVerificationStatus)
+    , _saSmtpMsa            :: !(Maybe SmtpMsa)
+    , _saIsPrimary          :: !(Maybe Bool)
+    , _saIsDefault          :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SendAs' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'saSignature'
+--
+-- * 'saReplyToAddress'
+--
+-- * 'saTreatAsAlias'
+--
+-- * 'saSendAsEmail'
+--
+-- * 'saDisplayName'
+--
+-- * 'saVerificationStatus'
+--
+-- * 'saSmtpMsa'
+--
+-- * 'saIsPrimary'
+--
+-- * 'saIsDefault'
+sendAs
+    :: SendAs
+sendAs =
+    SendAs'
+    { _saSignature = Nothing
+    , _saReplyToAddress = Nothing
+    , _saTreatAsAlias = Nothing
+    , _saSendAsEmail = Nothing
+    , _saDisplayName = Nothing
+    , _saVerificationStatus = Nothing
+    , _saSmtpMsa = Nothing
+    , _saIsPrimary = Nothing
+    , _saIsDefault = Nothing
+    }
+
+-- | An optional HTML signature that is included in messages composed with
+-- this alias in the Gmail web UI.
+saSignature :: Lens' SendAs (Maybe Text)
+saSignature
+  = lens _saSignature (\ s a -> s{_saSignature = a})
+
+-- | An optional email address that is included in a \"Reply-To:\" header for
+-- mail sent using this alias. If this is empty, Gmail will not generate a
+-- \"Reply-To:\" header.
+saReplyToAddress :: Lens' SendAs (Maybe Text)
+saReplyToAddress
+  = lens _saReplyToAddress
+      (\ s a -> s{_saReplyToAddress = a})
+
+-- | Whether Gmail should treat this address as an alias for the user\'s
+-- primary email address. See for more details. This setting only applies
+-- to custom \"from\" aliases.
+saTreatAsAlias :: Lens' SendAs (Maybe Bool)
+saTreatAsAlias
+  = lens _saTreatAsAlias
+      (\ s a -> s{_saTreatAsAlias = a})
+
+-- | The email address that appears in the \"From:\" header for mail sent
+-- using this alias. This is read-only for all operations except create.
+saSendAsEmail :: Lens' SendAs (Maybe Text)
+saSendAsEmail
+  = lens _saSendAsEmail
+      (\ s a -> s{_saSendAsEmail = a})
+
+-- | A name that appears in the \"From:\" header for mail sent using this
+-- alias. For custom \"from\" addresses, when this is empty, Gmail will
+-- populate the \"From:\" header with the name that is used for the primary
+-- address associated with the account.
+saDisplayName :: Lens' SendAs (Maybe Text)
+saDisplayName
+  = lens _saDisplayName
+      (\ s a -> s{_saDisplayName = a})
+
+-- | Indicates whether this address has been verified for use as a send-as
+-- alias. Read-only. This setting only applies to custom \"from\" aliases.
+saVerificationStatus :: Lens' SendAs (Maybe SendAsVerificationStatus)
+saVerificationStatus
+  = lens _saVerificationStatus
+      (\ s a -> s{_saVerificationStatus = a})
+
+-- | An optional SMTP service that will be used as an outbound relay for mail
+-- sent using this alias. If this is empty, outbound mail will be sent
+-- directly from Gmail\'s servers to the destination SMTP service. This
+-- setting only applies to custom \"from\" aliases.
+saSmtpMsa :: Lens' SendAs (Maybe SmtpMsa)
+saSmtpMsa
+  = lens _saSmtpMsa (\ s a -> s{_saSmtpMsa = a})
+
+-- | Whether this address is the primary address used to login to the
+-- account. Every Gmail account has exactly one primary address, and it
+-- cannot be deleted from the collection of send-as aliases. This field is
+-- read-only.
+saIsPrimary :: Lens' SendAs (Maybe Bool)
+saIsPrimary
+  = lens _saIsPrimary (\ s a -> s{_saIsPrimary = a})
+
+-- | Whether this address is selected as the default \"From:\" address in
+-- situations such as composing a new message or sending a vacation
+-- auto-reply. Every Gmail account has exactly one default send-as address,
+-- so the only legal value that clients may write to this field is true.
+-- Changing this from false to true for an address will result in this
+-- field becoming false for the other previous default address.
+saIsDefault :: Lens' SendAs (Maybe Bool)
+saIsDefault
+  = lens _saIsDefault (\ s a -> s{_saIsDefault = a})
+
+instance FromJSON SendAs where
+        parseJSON
+          = withObject "SendAs"
+              (\ o ->
+                 SendAs' <$>
+                   (o .:? "signature") <*> (o .:? "replyToAddress") <*>
+                     (o .:? "treatAsAlias")
+                     <*> (o .:? "sendAsEmail")
+                     <*> (o .:? "displayName")
+                     <*> (o .:? "verificationStatus")
+                     <*> (o .:? "smtpMsa")
+                     <*> (o .:? "isPrimary")
+                     <*> (o .:? "isDefault"))
+
+instance ToJSON SendAs where
+        toJSON SendAs'{..}
+          = object
+              (catMaybes
+                 [("signature" .=) <$> _saSignature,
+                  ("replyToAddress" .=) <$> _saReplyToAddress,
+                  ("treatAsAlias" .=) <$> _saTreatAsAlias,
+                  ("sendAsEmail" .=) <$> _saSendAsEmail,
+                  ("displayName" .=) <$> _saDisplayName,
+                  ("verificationStatus" .=) <$> _saVerificationStatus,
+                  ("smtpMsa" .=) <$> _saSmtpMsa,
+                  ("isPrimary" .=) <$> _saIsPrimary,
+                  ("isDefault" .=) <$> _saIsDefault])
+
+--
 -- /See:/ 'listThreadsResponse' smart constructor.
 data ListThreadsResponse = ListThreadsResponse'
     { _ltrNextPageToken      :: !(Maybe Text)
@@ -695,7 +1111,144 @@
         toJSON ListLabelsResponse'{..}
           = object (catMaybes [("labels" .=) <$> _llrLabels])
 
+-- | Vacation auto-reply settings for an account. These settings correspond
+-- to the \"Vacation responder\" feature in the web interface. See for more
+-- details.
 --
+-- /See:/ 'vacationSettings' smart constructor.
+data VacationSettings = VacationSettings'
+    { _vsEnableAutoReply       :: !(Maybe Bool)
+    , _vsResponseBodyPlainText :: !(Maybe Text)
+    , _vsRestrictToDomain      :: !(Maybe Bool)
+    , _vsStartTime             :: !(Maybe (Textual Int64))
+    , _vsResponseBodyHTML      :: !(Maybe Text)
+    , _vsRestrictToContacts    :: !(Maybe Bool)
+    , _vsResponseSubject       :: !(Maybe Text)
+    , _vsEndTime               :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'VacationSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'vsEnableAutoReply'
+--
+-- * 'vsResponseBodyPlainText'
+--
+-- * 'vsRestrictToDomain'
+--
+-- * 'vsStartTime'
+--
+-- * 'vsResponseBodyHTML'
+--
+-- * 'vsRestrictToContacts'
+--
+-- * 'vsResponseSubject'
+--
+-- * 'vsEndTime'
+vacationSettings
+    :: VacationSettings
+vacationSettings =
+    VacationSettings'
+    { _vsEnableAutoReply = Nothing
+    , _vsResponseBodyPlainText = Nothing
+    , _vsRestrictToDomain = Nothing
+    , _vsStartTime = Nothing
+    , _vsResponseBodyHTML = Nothing
+    , _vsRestrictToContacts = Nothing
+    , _vsResponseSubject = Nothing
+    , _vsEndTime = Nothing
+    }
+
+-- | Flag that controls whether Gmail automatically replies to messages.
+vsEnableAutoReply :: Lens' VacationSettings (Maybe Bool)
+vsEnableAutoReply
+  = lens _vsEnableAutoReply
+      (\ s a -> s{_vsEnableAutoReply = a})
+
+-- | Response body in plain text format.
+vsResponseBodyPlainText :: Lens' VacationSettings (Maybe Text)
+vsResponseBodyPlainText
+  = lens _vsResponseBodyPlainText
+      (\ s a -> s{_vsResponseBodyPlainText = a})
+
+-- | Flag that determines whether responses are sent to recipients who are
+-- outside of the user\'s domain. This feature is only available for Google
+-- Apps users.
+vsRestrictToDomain :: Lens' VacationSettings (Maybe Bool)
+vsRestrictToDomain
+  = lens _vsRestrictToDomain
+      (\ s a -> s{_vsRestrictToDomain = a})
+
+-- | An optional start time for sending auto-replies (epoch ms). When this is
+-- specified, Gmail will automatically reply only to messages that it
+-- receives after the start time. If both startTime and endTime are
+-- specified, startTime must precede endTime.
+vsStartTime :: Lens' VacationSettings (Maybe Int64)
+vsStartTime
+  = lens _vsStartTime (\ s a -> s{_vsStartTime = a}) .
+      mapping _Coerce
+
+-- | Response body in HTML format. Gmail will sanitize the HTML before
+-- storing it.
+vsResponseBodyHTML :: Lens' VacationSettings (Maybe Text)
+vsResponseBodyHTML
+  = lens _vsResponseBodyHTML
+      (\ s a -> s{_vsResponseBodyHTML = a})
+
+-- | Flag that determines whether responses are sent to recipients who are
+-- not in the user\'s list of contacts.
+vsRestrictToContacts :: Lens' VacationSettings (Maybe Bool)
+vsRestrictToContacts
+  = lens _vsRestrictToContacts
+      (\ s a -> s{_vsRestrictToContacts = a})
+
+-- | Optional text to prepend to the subject line in vacation responses. In
+-- order to enable auto-replies, either the response subject or the
+-- response body must be nonempty.
+vsResponseSubject :: Lens' VacationSettings (Maybe Text)
+vsResponseSubject
+  = lens _vsResponseSubject
+      (\ s a -> s{_vsResponseSubject = a})
+
+-- | An optional end time for sending auto-replies (epoch ms). When this is
+-- specified, Gmail will automatically reply only to messages that it
+-- receives before the end time. If both startTime and endTime are
+-- specified, startTime must precede endTime.
+vsEndTime :: Lens' VacationSettings (Maybe Int64)
+vsEndTime
+  = lens _vsEndTime (\ s a -> s{_vsEndTime = a}) .
+      mapping _Coerce
+
+instance FromJSON VacationSettings where
+        parseJSON
+          = withObject "VacationSettings"
+              (\ o ->
+                 VacationSettings' <$>
+                   (o .:? "enableAutoReply") <*>
+                     (o .:? "responseBodyPlainText")
+                     <*> (o .:? "restrictToDomain")
+                     <*> (o .:? "startTime")
+                     <*> (o .:? "responseBodyHtml")
+                     <*> (o .:? "restrictToContacts")
+                     <*> (o .:? "responseSubject")
+                     <*> (o .:? "endTime"))
+
+instance ToJSON VacationSettings where
+        toJSON VacationSettings'{..}
+          = object
+              (catMaybes
+                 [("enableAutoReply" .=) <$> _vsEnableAutoReply,
+                  ("responseBodyPlainText" .=) <$>
+                    _vsResponseBodyPlainText,
+                  ("restrictToDomain" .=) <$> _vsRestrictToDomain,
+                  ("startTime" .=) <$> _vsStartTime,
+                  ("responseBodyHtml" .=) <$> _vsResponseBodyHTML,
+                  ("restrictToContacts" .=) <$> _vsRestrictToContacts,
+                  ("responseSubject" .=) <$> _vsResponseSubject,
+                  ("endTime" .=) <$> _vsEndTime])
+
+--
 -- /See:/ 'historyMessageDeleted' smart constructor.
 newtype HistoryMessageDeleted = HistoryMessageDeleted'
     { _hmdMessage :: Maybe Message
@@ -792,7 +1345,68 @@
                  [("size" .=) <$> _mpbSize, ("data" .=) <$> _mpbData,
                   ("attachmentId" .=) <$> _mpbAttachmentId])
 
+-- | Auto-forwarding settings for an account.
 --
+-- /See:/ 'autoForwarding' smart constructor.
+data AutoForwarding = AutoForwarding'
+    { _afEnabled      :: !(Maybe Bool)
+    , _afDisPosition  :: !(Maybe AutoForwardingDisPosition)
+    , _afEmailAddress :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AutoForwarding' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'afEnabled'
+--
+-- * 'afDisPosition'
+--
+-- * 'afEmailAddress'
+autoForwarding
+    :: AutoForwarding
+autoForwarding =
+    AutoForwarding'
+    { _afEnabled = Nothing
+    , _afDisPosition = Nothing
+    , _afEmailAddress = Nothing
+    }
+
+-- | Whether all incoming mail is automatically forwarded to another address.
+afEnabled :: Lens' AutoForwarding (Maybe Bool)
+afEnabled
+  = lens _afEnabled (\ s a -> s{_afEnabled = a})
+
+-- | The state that a message should be left in after it has been forwarded.
+afDisPosition :: Lens' AutoForwarding (Maybe AutoForwardingDisPosition)
+afDisPosition
+  = lens _afDisPosition
+      (\ s a -> s{_afDisPosition = a})
+
+-- | Email address to which all incoming messages are forwarded. This email
+-- address must be a verified member of the forwarding addresses.
+afEmailAddress :: Lens' AutoForwarding (Maybe Text)
+afEmailAddress
+  = lens _afEmailAddress
+      (\ s a -> s{_afEmailAddress = a})
+
+instance FromJSON AutoForwarding where
+        parseJSON
+          = withObject "AutoForwarding"
+              (\ o ->
+                 AutoForwarding' <$>
+                   (o .:? "enabled") <*> (o .:? "disposition") <*>
+                     (o .:? "emailAddress"))
+
+instance ToJSON AutoForwarding where
+        toJSON AutoForwarding'{..}
+          = object
+              (catMaybes
+                 [("enabled" .=) <$> _afEnabled,
+                  ("disposition" .=) <$> _afDisPosition,
+                  ("emailAddress" .=) <$> _afEmailAddress])
+
+--
 -- /See:/ 'listDraftsResponse' smart constructor.
 data ListDraftsResponse = ListDraftsResponse'
     { _ldrNextPageToken      :: !(Maybe Text)
@@ -855,6 +1469,42 @@
                   ("resultSizeEstimate" .=) <$> _ldrResultSizeEstimate,
                   ("drafts" .=) <$> _ldrDrafts])
 
+-- | Response for the ListSendAs method.
+--
+-- /See:/ 'listSendAsResponse' smart constructor.
+newtype ListSendAsResponse = ListSendAsResponse'
+    { _lsarSendAs :: Maybe [SendAs]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListSendAsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lsarSendAs'
+listSendAsResponse
+    :: ListSendAsResponse
+listSendAsResponse =
+    ListSendAsResponse'
+    { _lsarSendAs = Nothing
+    }
+
+-- | List of send-as aliases.
+lsarSendAs :: Lens' ListSendAsResponse [SendAs]
+lsarSendAs
+  = lens _lsarSendAs (\ s a -> s{_lsarSendAs = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ListSendAsResponse where
+        parseJSON
+          = withObject "ListSendAsResponse"
+              (\ o ->
+                 ListSendAsResponse' <$> (o .:? "sendAs" .!= mempty))
+
+instance ToJSON ListSendAsResponse where
+        toJSON ListSendAsResponse'{..}
+          = object (catMaybes [("sendAs" .=) <$> _lsarSendAs])
+
 -- | Push notification watch response.
 --
 -- /See:/ 'watchResponse' smart constructor.
@@ -948,6 +1598,198 @@
               (catMaybes
                  [("id" .=) <$> _dId, ("message" .=) <$> _dMessage])
 
+-- | Configuration for communication with an SMTP service.
+--
+-- /See:/ 'smtpMsa' smart constructor.
+data SmtpMsa = SmtpMsa'
+    { _smSecurityMode :: !(Maybe SmtpMsaSecurityMode)
+    , _smUsername     :: !(Maybe Text)
+    , _smPassword     :: !(Maybe Text)
+    , _smHost         :: !(Maybe Text)
+    , _smPort         :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SmtpMsa' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'smSecurityMode'
+--
+-- * 'smUsername'
+--
+-- * 'smPassword'
+--
+-- * 'smHost'
+--
+-- * 'smPort'
+smtpMsa
+    :: SmtpMsa
+smtpMsa =
+    SmtpMsa'
+    { _smSecurityMode = Nothing
+    , _smUsername = Nothing
+    , _smPassword = Nothing
+    , _smHost = Nothing
+    , _smPort = Nothing
+    }
+
+-- | The protocol that will be used to secure communication with the SMTP
+-- service. Required.
+smSecurityMode :: Lens' SmtpMsa (Maybe SmtpMsaSecurityMode)
+smSecurityMode
+  = lens _smSecurityMode
+      (\ s a -> s{_smSecurityMode = a})
+
+-- | The username that will be used for authentication with the SMTP service.
+-- This is a write-only field that can be specified in requests to create
+-- or update SendAs settings; it is never populated in responses.
+smUsername :: Lens' SmtpMsa (Maybe Text)
+smUsername
+  = lens _smUsername (\ s a -> s{_smUsername = a})
+
+-- | The password that will be used for authentication with the SMTP service.
+-- This is a write-only field that can be specified in requests to create
+-- or update SendAs settings; it is never populated in responses.
+smPassword :: Lens' SmtpMsa (Maybe Text)
+smPassword
+  = lens _smPassword (\ s a -> s{_smPassword = a})
+
+-- | The hostname of the SMTP service. Required.
+smHost :: Lens' SmtpMsa (Maybe Text)
+smHost = lens _smHost (\ s a -> s{_smHost = a})
+
+-- | The port of the SMTP service. Required.
+smPort :: Lens' SmtpMsa (Maybe Int32)
+smPort
+  = lens _smPort (\ s a -> s{_smPort = a}) .
+      mapping _Coerce
+
+instance FromJSON SmtpMsa where
+        parseJSON
+          = withObject "SmtpMsa"
+              (\ o ->
+                 SmtpMsa' <$>
+                   (o .:? "securityMode") <*> (o .:? "username") <*>
+                     (o .:? "password")
+                     <*> (o .:? "host")
+                     <*> (o .:? "port"))
+
+instance ToJSON SmtpMsa where
+        toJSON SmtpMsa'{..}
+          = object
+              (catMaybes
+                 [("securityMode" .=) <$> _smSecurityMode,
+                  ("username" .=) <$> _smUsername,
+                  ("password" .=) <$> _smPassword,
+                  ("host" .=) <$> _smHost, ("port" .=) <$> _smPort])
+
+-- | Settings for a forwarding address.
+--
+-- /See:/ 'forwardingAddress' smart constructor.
+data ForwardingAddress = ForwardingAddress'
+    { _faForwardingEmail    :: !(Maybe Text)
+    , _faVerificationStatus :: !(Maybe ForwardingAddressVerificationStatus)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ForwardingAddress' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'faForwardingEmail'
+--
+-- * 'faVerificationStatus'
+forwardingAddress
+    :: ForwardingAddress
+forwardingAddress =
+    ForwardingAddress'
+    { _faForwardingEmail = Nothing
+    , _faVerificationStatus = Nothing
+    }
+
+-- | An email address to which messages can be forwarded.
+faForwardingEmail :: Lens' ForwardingAddress (Maybe Text)
+faForwardingEmail
+  = lens _faForwardingEmail
+      (\ s a -> s{_faForwardingEmail = a})
+
+-- | Indicates whether this address has been verified and is usable for
+-- forwarding. Read-only.
+faVerificationStatus :: Lens' ForwardingAddress (Maybe ForwardingAddressVerificationStatus)
+faVerificationStatus
+  = lens _faVerificationStatus
+      (\ s a -> s{_faVerificationStatus = a})
+
+instance FromJSON ForwardingAddress where
+        parseJSON
+          = withObject "ForwardingAddress"
+              (\ o ->
+                 ForwardingAddress' <$>
+                   (o .:? "forwardingEmail") <*>
+                     (o .:? "verificationStatus"))
+
+instance ToJSON ForwardingAddress where
+        toJSON ForwardingAddress'{..}
+          = object
+              (catMaybes
+                 [("forwardingEmail" .=) <$> _faForwardingEmail,
+                  ("verificationStatus" .=) <$> _faVerificationStatus])
+
+-- | Resource definition for Gmail filters. Filters apply to specific
+-- messages instead of an entire email thread.
+--
+-- /See:/ 'filter'' smart constructor.
+data Filter = Filter'
+    { _fAction   :: !(Maybe FilterAction)
+    , _fId       :: !(Maybe Text)
+    , _fCriteria :: !(Maybe FilterCriteria)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Filter' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fAction'
+--
+-- * 'fId'
+--
+-- * 'fCriteria'
+filter'
+    :: Filter
+filter' =
+    Filter'
+    { _fAction = Nothing
+    , _fId = Nothing
+    , _fCriteria = Nothing
+    }
+
+-- | Action that the filter performs.
+fAction :: Lens' Filter (Maybe FilterAction)
+fAction = lens _fAction (\ s a -> s{_fAction = a})
+
+-- | The server assigned ID of the filter.
+fId :: Lens' Filter (Maybe Text)
+fId = lens _fId (\ s a -> s{_fId = a})
+
+-- | Matching criteria for the filter.
+fCriteria :: Lens' Filter (Maybe FilterCriteria)
+fCriteria
+  = lens _fCriteria (\ s a -> s{_fCriteria = a})
+
+instance FromJSON Filter where
+        parseJSON
+          = withObject "Filter"
+              (\ o ->
+                 Filter' <$>
+                   (o .:? "action") <*> (o .:? "id") <*>
+                     (o .:? "criteria"))
+
+instance ToJSON Filter where
+        toJSON Filter'{..}
+          = object
+              (catMaybes
+                 [("action" .=) <$> _fAction, ("id" .=) <$> _fId,
+                  ("criteria" .=) <$> _fCriteria])
+
 -- | Set up or update a new push notification watch on this user\'s mailbox.
 --
 -- /See:/ 'watchRequest' smart constructor.
@@ -1017,6 +1859,84 @@
                   ("topicName" .=) <$> _wrTopicName,
                   ("labelIds" .=) <$> _wrLabelIds])
 
+-- | IMAP settings for an account.
+--
+-- /See:/ 'imapSettings' smart constructor.
+data ImapSettings = ImapSettings'
+    { _isEnabled         :: !(Maybe Bool)
+    , _isExpungeBehavior :: !(Maybe ImapSettingsExpungeBehavior)
+    , _isAutoExpunge     :: !(Maybe Bool)
+    , _isMaxFolderSize   :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ImapSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'isEnabled'
+--
+-- * 'isExpungeBehavior'
+--
+-- * 'isAutoExpunge'
+--
+-- * 'isMaxFolderSize'
+imapSettings
+    :: ImapSettings
+imapSettings =
+    ImapSettings'
+    { _isEnabled = Nothing
+    , _isExpungeBehavior = Nothing
+    , _isAutoExpunge = Nothing
+    , _isMaxFolderSize = Nothing
+    }
+
+-- | Whether IMAP is enabled for the account.
+isEnabled :: Lens' ImapSettings (Maybe Bool)
+isEnabled
+  = lens _isEnabled (\ s a -> s{_isEnabled = a})
+
+-- | The action that will be executed on a message when it is marked as
+-- deleted and expunged from the last visible IMAP folder.
+isExpungeBehavior :: Lens' ImapSettings (Maybe ImapSettingsExpungeBehavior)
+isExpungeBehavior
+  = lens _isExpungeBehavior
+      (\ s a -> s{_isExpungeBehavior = a})
+
+-- | If this value is true, Gmail will immediately expunge a message when it
+-- is marked as deleted in IMAP. Otherwise, Gmail will wait for an update
+-- from the client before expunging messages marked as deleted.
+isAutoExpunge :: Lens' ImapSettings (Maybe Bool)
+isAutoExpunge
+  = lens _isAutoExpunge
+      (\ s a -> s{_isAutoExpunge = a})
+
+-- | An optional limit on the number of messages that an IMAP folder may
+-- contain. Legal values are 0, 1000, 2000, 5000 or 10000. A value of zero
+-- is interpreted to mean that there is no limit.
+isMaxFolderSize :: Lens' ImapSettings (Maybe Int32)
+isMaxFolderSize
+  = lens _isMaxFolderSize
+      (\ s a -> s{_isMaxFolderSize = a})
+      . mapping _Coerce
+
+instance FromJSON ImapSettings where
+        parseJSON
+          = withObject "ImapSettings"
+              (\ o ->
+                 ImapSettings' <$>
+                   (o .:? "enabled") <*> (o .:? "expungeBehavior") <*>
+                     (o .:? "autoExpunge")
+                     <*> (o .:? "maxFolderSize"))
+
+instance ToJSON ImapSettings where
+        toJSON ImapSettings'{..}
+          = object
+              (catMaybes
+                 [("enabled" .=) <$> _isEnabled,
+                  ("expungeBehavior" .=) <$> _isExpungeBehavior,
+                  ("autoExpunge" .=) <$> _isAutoExpunge,
+                  ("maxFolderSize" .=) <$> _isMaxFolderSize])
+
 -- | An email message.
 --
 -- /See:/ 'message' smart constructor.
@@ -1270,6 +2190,71 @@
                  [("snippet" .=) <$> _tSnippet,
                   ("historyId" .=) <$> _tHistoryId, ("id" .=) <$> _tId,
                   ("messages" .=) <$> _tMessages])
+
+-- | A set of actions to perform on a message.
+--
+-- /See:/ 'filterAction' smart constructor.
+data FilterAction = FilterAction'
+    { _faForward        :: !(Maybe Text)
+    , _faRemoveLabelIds :: !(Maybe [Text])
+    , _faAddLabelIds    :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FilterAction' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'faForward'
+--
+-- * 'faRemoveLabelIds'
+--
+-- * 'faAddLabelIds'
+filterAction
+    :: FilterAction
+filterAction =
+    FilterAction'
+    { _faForward = Nothing
+    , _faRemoveLabelIds = Nothing
+    , _faAddLabelIds = Nothing
+    }
+
+-- | Email address that the message should be forwarded to.
+faForward :: Lens' FilterAction (Maybe Text)
+faForward
+  = lens _faForward (\ s a -> s{_faForward = a})
+
+-- | List of labels to remove from the message.
+faRemoveLabelIds :: Lens' FilterAction [Text]
+faRemoveLabelIds
+  = lens _faRemoveLabelIds
+      (\ s a -> s{_faRemoveLabelIds = a})
+      . _Default
+      . _Coerce
+
+-- | List of labels to add to the message.
+faAddLabelIds :: Lens' FilterAction [Text]
+faAddLabelIds
+  = lens _faAddLabelIds
+      (\ s a -> s{_faAddLabelIds = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON FilterAction where
+        parseJSON
+          = withObject "FilterAction"
+              (\ o ->
+                 FilterAction' <$>
+                   (o .:? "forward") <*>
+                     (o .:? "removeLabelIds" .!= mempty)
+                     <*> (o .:? "addLabelIds" .!= mempty))
+
+instance ToJSON FilterAction where
+        toJSON FilterAction'{..}
+          = object
+              (catMaybes
+                 [("forward" .=) <$> _faForward,
+                  ("removeLabelIds" .=) <$> _faRemoveLabelIds,
+                  ("addLabelIds" .=) <$> _faAddLabelIds])
 
 -- | Labels are used to categorize messages and threads within the user\'s
 -- mailbox.
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
@@ -18,6 +18,37 @@
 
 import           Network.Google.Prelude
 
+-- | How the message size in bytes should be in relation to the size field.
+data FilterCriteriaSizeComparison
+    = Larger
+      -- ^ @larger@
+    | Smaller
+      -- ^ @smaller@
+    | Unspecified
+      -- ^ @unspecified@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FilterCriteriaSizeComparison
+
+instance FromHttpApiData FilterCriteriaSizeComparison where
+    parseQueryParam = \case
+        "larger" -> Right Larger
+        "smaller" -> Right Smaller
+        "unspecified" -> Right Unspecified
+        x -> Left ("Unable to parse FilterCriteriaSizeComparison from: " <> x)
+
+instance ToHttpApiData FilterCriteriaSizeComparison where
+    toQueryParam = \case
+        Larger -> "larger"
+        Smaller -> "smaller"
+        Unspecified -> "unspecified"
+
+instance FromJSON FilterCriteriaSizeComparison where
+    parseJSON = parseJSONText "FilterCriteriaSizeComparison"
+
+instance ToJSON FilterCriteriaSizeComparison where
+    toJSON = toJSONText
+
 -- | The format to return the message in.
 data UsersMessagesGetFormat
     = Full
@@ -53,6 +84,144 @@
 instance ToJSON UsersMessagesGetFormat where
     toJSON = toJSONText
 
+-- | The range of messages which are accessible via POP.
+data PopSettingsAccessWindow
+    = AccessWindowUnspecified
+      -- ^ @accessWindowUnspecified@
+    | AllMail
+      -- ^ @allMail@
+    | Disabled
+      -- ^ @disabled@
+    | FromNowOn
+      -- ^ @fromNowOn@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PopSettingsAccessWindow
+
+instance FromHttpApiData PopSettingsAccessWindow where
+    parseQueryParam = \case
+        "accessWindowUnspecified" -> Right AccessWindowUnspecified
+        "allMail" -> Right AllMail
+        "disabled" -> Right Disabled
+        "fromNowOn" -> Right FromNowOn
+        x -> Left ("Unable to parse PopSettingsAccessWindow from: " <> x)
+
+instance ToHttpApiData PopSettingsAccessWindow where
+    toQueryParam = \case
+        AccessWindowUnspecified -> "accessWindowUnspecified"
+        AllMail -> "allMail"
+        Disabled -> "disabled"
+        FromNowOn -> "fromNowOn"
+
+instance FromJSON PopSettingsAccessWindow where
+    parseJSON = parseJSONText "PopSettingsAccessWindow"
+
+instance ToJSON PopSettingsAccessWindow where
+    toJSON = toJSONText
+
+-- | Indicates whether this address has been verified and is usable for
+-- forwarding. Read-only.
+data ForwardingAddressVerificationStatus
+    = Accepted
+      -- ^ @accepted@
+    | Pending
+      -- ^ @pending@
+    | VerificationStatusUnspecified
+      -- ^ @verificationStatusUnspecified@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ForwardingAddressVerificationStatus
+
+instance FromHttpApiData ForwardingAddressVerificationStatus where
+    parseQueryParam = \case
+        "accepted" -> Right Accepted
+        "pending" -> Right Pending
+        "verificationStatusUnspecified" -> Right VerificationStatusUnspecified
+        x -> Left ("Unable to parse ForwardingAddressVerificationStatus from: " <> x)
+
+instance ToHttpApiData ForwardingAddressVerificationStatus where
+    toQueryParam = \case
+        Accepted -> "accepted"
+        Pending -> "pending"
+        VerificationStatusUnspecified -> "verificationStatusUnspecified"
+
+instance FromJSON ForwardingAddressVerificationStatus where
+    parseJSON = parseJSONText "ForwardingAddressVerificationStatus"
+
+instance ToJSON ForwardingAddressVerificationStatus where
+    toJSON = toJSONText
+
+-- | The state that a message should be left in after it has been forwarded.
+data AutoForwardingDisPosition
+    = Archive
+      -- ^ @archive@
+    | DisPositionUnspecified
+      -- ^ @dispositionUnspecified@
+    | LeaveInInbox
+      -- ^ @leaveInInbox@
+    | MarkRead
+      -- ^ @markRead@
+    | Trash
+      -- ^ @trash@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable AutoForwardingDisPosition
+
+instance FromHttpApiData AutoForwardingDisPosition where
+    parseQueryParam = \case
+        "archive" -> Right Archive
+        "dispositionUnspecified" -> Right DisPositionUnspecified
+        "leaveInInbox" -> Right LeaveInInbox
+        "markRead" -> Right MarkRead
+        "trash" -> Right Trash
+        x -> Left ("Unable to parse AutoForwardingDisPosition from: " <> x)
+
+instance ToHttpApiData AutoForwardingDisPosition where
+    toQueryParam = \case
+        Archive -> "archive"
+        DisPositionUnspecified -> "dispositionUnspecified"
+        LeaveInInbox -> "leaveInInbox"
+        MarkRead -> "markRead"
+        Trash -> "trash"
+
+instance FromJSON AutoForwardingDisPosition where
+    parseJSON = parseJSONText "AutoForwardingDisPosition"
+
+instance ToJSON AutoForwardingDisPosition where
+    toJSON = toJSONText
+
+-- | Indicates whether this address has been verified for use as a send-as
+-- alias. Read-only. This setting only applies to custom \"from\" aliases.
+data SendAsVerificationStatus
+    = SAVSAccepted
+      -- ^ @accepted@
+    | SAVSPending
+      -- ^ @pending@
+    | SAVSVerificationStatusUnspecified
+      -- ^ @verificationStatusUnspecified@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable SendAsVerificationStatus
+
+instance FromHttpApiData SendAsVerificationStatus where
+    parseQueryParam = \case
+        "accepted" -> Right SAVSAccepted
+        "pending" -> Right SAVSPending
+        "verificationStatusUnspecified" -> Right SAVSVerificationStatusUnspecified
+        x -> Left ("Unable to parse SendAsVerificationStatus from: " <> x)
+
+instance ToHttpApiData SendAsVerificationStatus where
+    toQueryParam = \case
+        SAVSAccepted -> "accepted"
+        SAVSPending -> "pending"
+        SAVSVerificationStatusUnspecified -> "verificationStatusUnspecified"
+
+instance FromJSON SendAsVerificationStatus where
+    parseJSON = parseJSONText "SendAsVerificationStatus"
+
+instance ToJSON SendAsVerificationStatus where
+    toJSON = toJSONText
+
 -- | The owner type for the label. User labels are created by the user and
 -- can be modified and deleted by the user and can be applied to any
 -- message or thread. System labels are internally created and cannot be
@@ -240,6 +409,46 @@
 instance ToJSON UsersThreadsGetFormat where
     toJSON = toJSONText
 
+-- | The action that will be executed on a message after it has been fetched
+-- via POP.
+data PopSettingsDisPosition
+    = PSDPArchive
+      -- ^ @archive@
+    | PSDPDisPositionUnspecified
+      -- ^ @dispositionUnspecified@
+    | PSDPLeaveInInbox
+      -- ^ @leaveInInbox@
+    | PSDPMarkRead
+      -- ^ @markRead@
+    | PSDPTrash
+      -- ^ @trash@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable PopSettingsDisPosition
+
+instance FromHttpApiData PopSettingsDisPosition where
+    parseQueryParam = \case
+        "archive" -> Right PSDPArchive
+        "dispositionUnspecified" -> Right PSDPDisPositionUnspecified
+        "leaveInInbox" -> Right PSDPLeaveInInbox
+        "markRead" -> Right PSDPMarkRead
+        "trash" -> Right PSDPTrash
+        x -> Left ("Unable to parse PopSettingsDisPosition from: " <> x)
+
+instance ToHttpApiData PopSettingsDisPosition where
+    toQueryParam = \case
+        PSDPArchive -> "archive"
+        PSDPDisPositionUnspecified -> "dispositionUnspecified"
+        PSDPLeaveInInbox -> "leaveInInbox"
+        PSDPMarkRead -> "markRead"
+        PSDPTrash -> "trash"
+
+instance FromJSON PopSettingsDisPosition where
+    parseJSON = parseJSONText "PopSettingsDisPosition"
+
+instance ToJSON PopSettingsDisPosition where
+    toJSON = toJSONText
+
 -- | Filtering behavior of labelIds list specified.
 data WatchRequestLabelFilterAction
     = Exclude
@@ -265,6 +474,78 @@
     parseJSON = parseJSONText "WatchRequestLabelFilterAction"
 
 instance ToJSON WatchRequestLabelFilterAction where
+    toJSON = toJSONText
+
+-- | The action that will be executed on a message when it is marked as
+-- deleted and expunged from the last visible IMAP folder.
+data ImapSettingsExpungeBehavior
+    = ISEBArchive
+      -- ^ @archive@
+    | ISEBDeleteForever
+      -- ^ @deleteForever@
+    | ISEBExpungeBehaviorUnspecified
+      -- ^ @expungeBehaviorUnspecified@
+    | ISEBTrash
+      -- ^ @trash@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ImapSettingsExpungeBehavior
+
+instance FromHttpApiData ImapSettingsExpungeBehavior where
+    parseQueryParam = \case
+        "archive" -> Right ISEBArchive
+        "deleteForever" -> Right ISEBDeleteForever
+        "expungeBehaviorUnspecified" -> Right ISEBExpungeBehaviorUnspecified
+        "trash" -> Right ISEBTrash
+        x -> Left ("Unable to parse ImapSettingsExpungeBehavior from: " <> x)
+
+instance ToHttpApiData ImapSettingsExpungeBehavior where
+    toQueryParam = \case
+        ISEBArchive -> "archive"
+        ISEBDeleteForever -> "deleteForever"
+        ISEBExpungeBehaviorUnspecified -> "expungeBehaviorUnspecified"
+        ISEBTrash -> "trash"
+
+instance FromJSON ImapSettingsExpungeBehavior where
+    parseJSON = parseJSONText "ImapSettingsExpungeBehavior"
+
+instance ToJSON ImapSettingsExpungeBehavior where
+    toJSON = toJSONText
+
+-- | The protocol that will be used to secure communication with the SMTP
+-- service. Required.
+data SmtpMsaSecurityMode
+    = None
+      -- ^ @none@
+    | SecurityModeUnspecified
+      -- ^ @securityModeUnspecified@
+    | SSL
+      -- ^ @ssl@
+    | Starttls
+      -- ^ @starttls@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable SmtpMsaSecurityMode
+
+instance FromHttpApiData SmtpMsaSecurityMode where
+    parseQueryParam = \case
+        "none" -> Right None
+        "securityModeUnspecified" -> Right SecurityModeUnspecified
+        "ssl" -> Right SSL
+        "starttls" -> Right Starttls
+        x -> Left ("Unable to parse SmtpMsaSecurityMode from: " <> x)
+
+instance ToHttpApiData SmtpMsaSecurityMode where
+    toQueryParam = \case
+        None -> "none"
+        SecurityModeUnspecified -> "securityModeUnspecified"
+        SSL -> "ssl"
+        Starttls -> "starttls"
+
+instance FromJSON SmtpMsaSecurityMode where
+    parseJSON = parseJSONText "SmtpMsaSecurityMode"
+
+instance ToJSON SmtpMsaSecurityMode where
     toJSON = toJSONText
 
 -- | Source for Gmail\'s internal date of the message.
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
@@ -33,6 +33,7 @@
     , UsersDraftsList
 
     -- * Request Lenses
+    , udlQ
     , udlUserId
     , udlIncludeSpamTrash
     , udlPageToken
@@ -50,17 +51,19 @@
          "users" :>
            Capture "userId" Text :>
              "drafts" :>
-               QueryParam "includeSpamTrash" Bool :>
-                 QueryParam "pageToken" Text :>
-                   QueryParam "maxResults" (Textual Word32) :>
-                     QueryParam "alt" AltJSON :>
-                       Get '[JSON] ListDraftsResponse
+               QueryParam "q" Text :>
+                 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
+    { _udlQ                :: !(Maybe Text)
+    , _udlUserId           :: !Text
     , _udlIncludeSpamTrash :: !Bool
     , _udlPageToken        :: !(Maybe Text)
     , _udlMaxResults       :: !(Textual Word32)
@@ -70,6 +73,8 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
+-- * 'udlQ'
+--
 -- * 'udlUserId'
 --
 -- * 'udlIncludeSpamTrash'
@@ -81,12 +86,19 @@
     :: UsersDraftsList
 usersDraftsList =
     UsersDraftsList'
-    { _udlUserId = "me"
+    { _udlQ = Nothing
+    , _udlUserId = "me"
     , _udlIncludeSpamTrash = False
     , _udlPageToken = Nothing
     , _udlMaxResults = 100
     }
 
+-- | Only return draft messages matching the specified query. Supports the
+-- same query format as the Gmail search box. For example,
+-- \"from:someuser\'example.com rfc822msgid: is:unread\".
+udlQ :: Lens' UsersDraftsList (Maybe Text)
+udlQ = lens _udlQ (\ s a -> s{_udlQ = a})
+
 -- | The user\'s email address. The special value me can be used to indicate
 -- the authenticated user.
 udlUserId :: Lens' UsersDraftsList Text
@@ -119,7 +131,7 @@
                "https://www.googleapis.com/auth/gmail.modify",
                "https://www.googleapis.com/auth/gmail.readonly"]
         requestClient UsersDraftsList'{..}
-          = go _udlUserId (Just _udlIncludeSpamTrash)
+          = go _udlUserId _udlQ (Just _udlIncludeSpamTrash)
               _udlPageToken
               (Just _udlMaxResults)
               (Just AltJSON)
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/Filters/Create.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/Filters/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/Filters/Create.hs
@@ -0,0 +1,101 @@
+{-# 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.Settings.Filters.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a filter.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.filters.create@.
+module Network.Google.Resource.Gmail.Users.Settings.Filters.Create
+    (
+    -- * REST Resource
+      UsersSettingsFiltersCreateResource
+
+    -- * Creating a Request
+    , usersSettingsFiltersCreate
+    , UsersSettingsFiltersCreate
+
+    -- * Request Lenses
+    , usfcPayload
+    , usfcUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.filters.create@ method which the
+-- 'UsersSettingsFiltersCreate' request conforms to.
+type UsersSettingsFiltersCreateResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "filters" :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] Filter :> Post '[JSON] Filter
+
+-- | Creates a filter.
+--
+-- /See:/ 'usersSettingsFiltersCreate' smart constructor.
+data UsersSettingsFiltersCreate = UsersSettingsFiltersCreate'
+    { _usfcPayload :: !Filter
+    , _usfcUserId  :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsFiltersCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usfcPayload'
+--
+-- * 'usfcUserId'
+usersSettingsFiltersCreate
+    :: Filter -- ^ 'usfcPayload'
+    -> UsersSettingsFiltersCreate
+usersSettingsFiltersCreate pUsfcPayload_ =
+    UsersSettingsFiltersCreate'
+    { _usfcPayload = pUsfcPayload_
+    , _usfcUserId = "me"
+    }
+
+-- | Multipart request metadata.
+usfcPayload :: Lens' UsersSettingsFiltersCreate Filter
+usfcPayload
+  = lens _usfcPayload (\ s a -> s{_usfcPayload = a})
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+usfcUserId :: Lens' UsersSettingsFiltersCreate Text
+usfcUserId
+  = lens _usfcUserId (\ s a -> s{_usfcUserId = a})
+
+instance GoogleRequest UsersSettingsFiltersCreate
+         where
+        type Rs UsersSettingsFiltersCreate = Filter
+        type Scopes UsersSettingsFiltersCreate =
+             '["https://www.googleapis.com/auth/gmail.settings.basic"]
+        requestClient UsersSettingsFiltersCreate'{..}
+          = go _usfcUserId (Just AltJSON) _usfcPayload
+              gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsFiltersCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/Filters/Delete.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/Filters/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/Filters/Delete.hs
@@ -0,0 +1,99 @@
+{-# 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.Settings.Filters.Delete
+-- 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 a filter.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.filters.delete@.
+module Network.Google.Resource.Gmail.Users.Settings.Filters.Delete
+    (
+    -- * REST Resource
+      UsersSettingsFiltersDeleteResource
+
+    -- * Creating a Request
+    , usersSettingsFiltersDelete
+    , UsersSettingsFiltersDelete
+
+    -- * Request Lenses
+    , usfdUserId
+    , usfdId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.filters.delete@ method which the
+-- 'UsersSettingsFiltersDelete' request conforms to.
+type UsersSettingsFiltersDeleteResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "filters" :>
+                 Capture "id" Text :>
+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes a filter.
+--
+-- /See:/ 'usersSettingsFiltersDelete' smart constructor.
+data UsersSettingsFiltersDelete = UsersSettingsFiltersDelete'
+    { _usfdUserId :: !Text
+    , _usfdId     :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsFiltersDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usfdUserId'
+--
+-- * 'usfdId'
+usersSettingsFiltersDelete
+    :: Text -- ^ 'usfdId'
+    -> UsersSettingsFiltersDelete
+usersSettingsFiltersDelete pUsfdId_ =
+    UsersSettingsFiltersDelete'
+    { _usfdUserId = "me"
+    , _usfdId = pUsfdId_
+    }
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+usfdUserId :: Lens' UsersSettingsFiltersDelete Text
+usfdUserId
+  = lens _usfdUserId (\ s a -> s{_usfdUserId = a})
+
+-- | The ID of the filter to be deleted.
+usfdId :: Lens' UsersSettingsFiltersDelete Text
+usfdId = lens _usfdId (\ s a -> s{_usfdId = a})
+
+instance GoogleRequest UsersSettingsFiltersDelete
+         where
+        type Rs UsersSettingsFiltersDelete = ()
+        type Scopes UsersSettingsFiltersDelete =
+             '["https://www.googleapis.com/auth/gmail.settings.basic"]
+        requestClient UsersSettingsFiltersDelete'{..}
+          = go _usfdUserId _usfdId (Just AltJSON) gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsFiltersDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/Filters/Get.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/Filters/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/Filters/Get.hs
@@ -0,0 +1,101 @@
+{-# 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.Settings.Filters.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a filter.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.filters.get@.
+module Network.Google.Resource.Gmail.Users.Settings.Filters.Get
+    (
+    -- * REST Resource
+      UsersSettingsFiltersGetResource
+
+    -- * Creating a Request
+    , usersSettingsFiltersGet
+    , UsersSettingsFiltersGet
+
+    -- * Request Lenses
+    , usfgUserId
+    , usfgId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.filters.get@ method which the
+-- 'UsersSettingsFiltersGet' request conforms to.
+type UsersSettingsFiltersGetResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "filters" :>
+                 Capture "id" Text :>
+                   QueryParam "alt" AltJSON :> Get '[JSON] Filter
+
+-- | Gets a filter.
+--
+-- /See:/ 'usersSettingsFiltersGet' smart constructor.
+data UsersSettingsFiltersGet = UsersSettingsFiltersGet'
+    { _usfgUserId :: !Text
+    , _usfgId     :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsFiltersGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usfgUserId'
+--
+-- * 'usfgId'
+usersSettingsFiltersGet
+    :: Text -- ^ 'usfgId'
+    -> UsersSettingsFiltersGet
+usersSettingsFiltersGet pUsfgId_ =
+    UsersSettingsFiltersGet'
+    { _usfgUserId = "me"
+    , _usfgId = pUsfgId_
+    }
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+usfgUserId :: Lens' UsersSettingsFiltersGet Text
+usfgUserId
+  = lens _usfgUserId (\ s a -> s{_usfgUserId = a})
+
+-- | The ID of the filter to be fetched.
+usfgId :: Lens' UsersSettingsFiltersGet Text
+usfgId = lens _usfgId (\ s a -> s{_usfgId = a})
+
+instance GoogleRequest UsersSettingsFiltersGet where
+        type Rs UsersSettingsFiltersGet = Filter
+        type Scopes UsersSettingsFiltersGet =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly",
+               "https://www.googleapis.com/auth/gmail.settings.basic"]
+        requestClient UsersSettingsFiltersGet'{..}
+          = go _usfgUserId _usfgId (Just AltJSON) gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsFiltersGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/Filters/List.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/Filters/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/Filters/List.hs
@@ -0,0 +1,92 @@
+{-# 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.Settings.Filters.List
+-- 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)
+--
+-- Lists the message filters of a Gmail user.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.filters.list@.
+module Network.Google.Resource.Gmail.Users.Settings.Filters.List
+    (
+    -- * REST Resource
+      UsersSettingsFiltersListResource
+
+    -- * Creating a Request
+    , usersSettingsFiltersList
+    , UsersSettingsFiltersList
+
+    -- * Request Lenses
+    , usflUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.filters.list@ method which the
+-- 'UsersSettingsFiltersList' request conforms to.
+type UsersSettingsFiltersListResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "filters" :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] ListFiltersResponse
+
+-- | Lists the message filters of a Gmail user.
+--
+-- /See:/ 'usersSettingsFiltersList' smart constructor.
+newtype UsersSettingsFiltersList = UsersSettingsFiltersList'
+    { _usflUserId :: Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsFiltersList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usflUserId'
+usersSettingsFiltersList
+    :: UsersSettingsFiltersList
+usersSettingsFiltersList =
+    UsersSettingsFiltersList'
+    { _usflUserId = "me"
+    }
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+usflUserId :: Lens' UsersSettingsFiltersList Text
+usflUserId
+  = lens _usflUserId (\ s a -> s{_usflUserId = a})
+
+instance GoogleRequest UsersSettingsFiltersList where
+        type Rs UsersSettingsFiltersList =
+             ListFiltersResponse
+        type Scopes UsersSettingsFiltersList =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly",
+               "https://www.googleapis.com/auth/gmail.settings.basic"]
+        requestClient UsersSettingsFiltersList'{..}
+          = go _usflUserId (Just AltJSON) gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsFiltersListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/ForwardingAddresses/Create.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/ForwardingAddresses/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/ForwardingAddresses/Create.hs
@@ -0,0 +1,111 @@
+{-# 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.Settings.ForwardingAddresses.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a forwarding address. If ownership verification is required, a
+-- message will be sent to the recipient and the resource\'s verification
+-- status will be set to pending; otherwise, the resource will be created
+-- with verification status set to accepted.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.forwardingAddresses.create@.
+module Network.Google.Resource.Gmail.Users.Settings.ForwardingAddresses.Create
+    (
+    -- * REST Resource
+      UsersSettingsForwardingAddressesCreateResource
+
+    -- * Creating a Request
+    , usersSettingsForwardingAddressesCreate
+    , UsersSettingsForwardingAddressesCreate
+
+    -- * Request Lenses
+    , usfacPayload
+    , usfacUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.forwardingAddresses.create@ method which the
+-- 'UsersSettingsForwardingAddressesCreate' request conforms to.
+type UsersSettingsForwardingAddressesCreateResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "forwardingAddresses" :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] ForwardingAddress :>
+                     Post '[JSON] ForwardingAddress
+
+-- | Creates a forwarding address. If ownership verification is required, a
+-- message will be sent to the recipient and the resource\'s verification
+-- status will be set to pending; otherwise, the resource will be created
+-- with verification status set to accepted.
+--
+-- /See:/ 'usersSettingsForwardingAddressesCreate' smart constructor.
+data UsersSettingsForwardingAddressesCreate = UsersSettingsForwardingAddressesCreate'
+    { _usfacPayload :: !ForwardingAddress
+    , _usfacUserId  :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsForwardingAddressesCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usfacPayload'
+--
+-- * 'usfacUserId'
+usersSettingsForwardingAddressesCreate
+    :: ForwardingAddress -- ^ 'usfacPayload'
+    -> UsersSettingsForwardingAddressesCreate
+usersSettingsForwardingAddressesCreate pUsfacPayload_ =
+    UsersSettingsForwardingAddressesCreate'
+    { _usfacPayload = pUsfacPayload_
+    , _usfacUserId = "me"
+    }
+
+-- | Multipart request metadata.
+usfacPayload :: Lens' UsersSettingsForwardingAddressesCreate ForwardingAddress
+usfacPayload
+  = lens _usfacPayload (\ s a -> s{_usfacPayload = a})
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+usfacUserId :: Lens' UsersSettingsForwardingAddressesCreate Text
+usfacUserId
+  = lens _usfacUserId (\ s a -> s{_usfacUserId = a})
+
+instance GoogleRequest
+         UsersSettingsForwardingAddressesCreate where
+        type Rs UsersSettingsForwardingAddressesCreate =
+             ForwardingAddress
+        type Scopes UsersSettingsForwardingAddressesCreate =
+             '["https://www.googleapis.com/auth/gmail.settings.sharing"]
+        requestClient
+          UsersSettingsForwardingAddressesCreate'{..}
+          = go _usfacUserId (Just AltJSON) _usfacPayload
+              gmailService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy UsersSettingsForwardingAddressesCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/ForwardingAddresses/Delete.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/ForwardingAddresses/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/ForwardingAddresses/Delete.hs
@@ -0,0 +1,107 @@
+{-# 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.Settings.ForwardingAddresses.Delete
+-- 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 the specified forwarding address and revokes any verification
+-- that may have been required.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.forwardingAddresses.delete@.
+module Network.Google.Resource.Gmail.Users.Settings.ForwardingAddresses.Delete
+    (
+    -- * REST Resource
+      UsersSettingsForwardingAddressesDeleteResource
+
+    -- * Creating a Request
+    , usersSettingsForwardingAddressesDelete
+    , UsersSettingsForwardingAddressesDelete
+
+    -- * Request Lenses
+    , usfadForwardingEmail
+    , usfadUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.forwardingAddresses.delete@ method which the
+-- 'UsersSettingsForwardingAddressesDelete' request conforms to.
+type UsersSettingsForwardingAddressesDeleteResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "forwardingAddresses" :>
+                 Capture "forwardingEmail" Text :>
+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes the specified forwarding address and revokes any verification
+-- that may have been required.
+--
+-- /See:/ 'usersSettingsForwardingAddressesDelete' smart constructor.
+data UsersSettingsForwardingAddressesDelete = UsersSettingsForwardingAddressesDelete'
+    { _usfadForwardingEmail :: !Text
+    , _usfadUserId          :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsForwardingAddressesDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usfadForwardingEmail'
+--
+-- * 'usfadUserId'
+usersSettingsForwardingAddressesDelete
+    :: Text -- ^ 'usfadForwardingEmail'
+    -> UsersSettingsForwardingAddressesDelete
+usersSettingsForwardingAddressesDelete pUsfadForwardingEmail_ =
+    UsersSettingsForwardingAddressesDelete'
+    { _usfadForwardingEmail = pUsfadForwardingEmail_
+    , _usfadUserId = "me"
+    }
+
+-- | The forwarding address to be deleted.
+usfadForwardingEmail :: Lens' UsersSettingsForwardingAddressesDelete Text
+usfadForwardingEmail
+  = lens _usfadForwardingEmail
+      (\ s a -> s{_usfadForwardingEmail = a})
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+usfadUserId :: Lens' UsersSettingsForwardingAddressesDelete Text
+usfadUserId
+  = lens _usfadUserId (\ s a -> s{_usfadUserId = a})
+
+instance GoogleRequest
+         UsersSettingsForwardingAddressesDelete where
+        type Rs UsersSettingsForwardingAddressesDelete = ()
+        type Scopes UsersSettingsForwardingAddressesDelete =
+             '["https://www.googleapis.com/auth/gmail.settings.sharing"]
+        requestClient
+          UsersSettingsForwardingAddressesDelete'{..}
+          = go _usfadUserId _usfadForwardingEmail
+              (Just AltJSON)
+              gmailService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy UsersSettingsForwardingAddressesDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/ForwardingAddresses/Get.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/ForwardingAddresses/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/ForwardingAddresses/Get.hs
@@ -0,0 +1,110 @@
+{-# 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.Settings.ForwardingAddresses.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the specified forwarding address.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.forwardingAddresses.get@.
+module Network.Google.Resource.Gmail.Users.Settings.ForwardingAddresses.Get
+    (
+    -- * REST Resource
+      UsersSettingsForwardingAddressesGetResource
+
+    -- * Creating a Request
+    , usersSettingsForwardingAddressesGet
+    , UsersSettingsForwardingAddressesGet
+
+    -- * Request Lenses
+    , usfagForwardingEmail
+    , usfagUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.forwardingAddresses.get@ method which the
+-- 'UsersSettingsForwardingAddressesGet' request conforms to.
+type UsersSettingsForwardingAddressesGetResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "forwardingAddresses" :>
+                 Capture "forwardingEmail" Text :>
+                   QueryParam "alt" AltJSON :>
+                     Get '[JSON] ForwardingAddress
+
+-- | Gets the specified forwarding address.
+--
+-- /See:/ 'usersSettingsForwardingAddressesGet' smart constructor.
+data UsersSettingsForwardingAddressesGet = UsersSettingsForwardingAddressesGet'
+    { _usfagForwardingEmail :: !Text
+    , _usfagUserId          :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsForwardingAddressesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usfagForwardingEmail'
+--
+-- * 'usfagUserId'
+usersSettingsForwardingAddressesGet
+    :: Text -- ^ 'usfagForwardingEmail'
+    -> UsersSettingsForwardingAddressesGet
+usersSettingsForwardingAddressesGet pUsfagForwardingEmail_ =
+    UsersSettingsForwardingAddressesGet'
+    { _usfagForwardingEmail = pUsfagForwardingEmail_
+    , _usfagUserId = "me"
+    }
+
+-- | The forwarding address to be retrieved.
+usfagForwardingEmail :: Lens' UsersSettingsForwardingAddressesGet Text
+usfagForwardingEmail
+  = lens _usfagForwardingEmail
+      (\ s a -> s{_usfagForwardingEmail = a})
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+usfagUserId :: Lens' UsersSettingsForwardingAddressesGet Text
+usfagUserId
+  = lens _usfagUserId (\ s a -> s{_usfagUserId = a})
+
+instance GoogleRequest
+         UsersSettingsForwardingAddressesGet where
+        type Rs UsersSettingsForwardingAddressesGet =
+             ForwardingAddress
+        type Scopes UsersSettingsForwardingAddressesGet =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly",
+               "https://www.googleapis.com/auth/gmail.settings.basic"]
+        requestClient
+          UsersSettingsForwardingAddressesGet'{..}
+          = go _usfagUserId _usfagForwardingEmail
+              (Just AltJSON)
+              gmailService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy UsersSettingsForwardingAddressesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/ForwardingAddresses/List.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/ForwardingAddresses/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/ForwardingAddresses/List.hs
@@ -0,0 +1,95 @@
+{-# 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.Settings.ForwardingAddresses.List
+-- 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)
+--
+-- Lists the forwarding addresses for the specified account.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.forwardingAddresses.list@.
+module Network.Google.Resource.Gmail.Users.Settings.ForwardingAddresses.List
+    (
+    -- * REST Resource
+      UsersSettingsForwardingAddressesListResource
+
+    -- * Creating a Request
+    , usersSettingsForwardingAddressesList
+    , UsersSettingsForwardingAddressesList
+
+    -- * Request Lenses
+    , usfalUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.forwardingAddresses.list@ method which the
+-- 'UsersSettingsForwardingAddressesList' request conforms to.
+type UsersSettingsForwardingAddressesListResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "forwardingAddresses" :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] ListForwardingAddressesResponse
+
+-- | Lists the forwarding addresses for the specified account.
+--
+-- /See:/ 'usersSettingsForwardingAddressesList' smart constructor.
+newtype UsersSettingsForwardingAddressesList = UsersSettingsForwardingAddressesList'
+    { _usfalUserId :: Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsForwardingAddressesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usfalUserId'
+usersSettingsForwardingAddressesList
+    :: UsersSettingsForwardingAddressesList
+usersSettingsForwardingAddressesList =
+    UsersSettingsForwardingAddressesList'
+    { _usfalUserId = "me"
+    }
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+usfalUserId :: Lens' UsersSettingsForwardingAddressesList Text
+usfalUserId
+  = lens _usfalUserId (\ s a -> s{_usfalUserId = a})
+
+instance GoogleRequest
+         UsersSettingsForwardingAddressesList where
+        type Rs UsersSettingsForwardingAddressesList =
+             ListForwardingAddressesResponse
+        type Scopes UsersSettingsForwardingAddressesList =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly",
+               "https://www.googleapis.com/auth/gmail.settings.basic"]
+        requestClient
+          UsersSettingsForwardingAddressesList'{..}
+          = go _usfalUserId (Just AltJSON) gmailService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy UsersSettingsForwardingAddressesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/GetAutoForwarding.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/GetAutoForwarding.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/GetAutoForwarding.hs
@@ -0,0 +1,94 @@
+{-# 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.Settings.GetAutoForwarding
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the auto-forwarding setting for the specified account.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.getAutoForwarding@.
+module Network.Google.Resource.Gmail.Users.Settings.GetAutoForwarding
+    (
+    -- * REST Resource
+      UsersSettingsGetAutoForwardingResource
+
+    -- * Creating a Request
+    , usersSettingsGetAutoForwarding
+    , UsersSettingsGetAutoForwarding
+
+    -- * Request Lenses
+    , usgafUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.getAutoForwarding@ method which the
+-- 'UsersSettingsGetAutoForwarding' request conforms to.
+type UsersSettingsGetAutoForwardingResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "autoForwarding" :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] AutoForwarding
+
+-- | Gets the auto-forwarding setting for the specified account.
+--
+-- /See:/ 'usersSettingsGetAutoForwarding' smart constructor.
+newtype UsersSettingsGetAutoForwarding = UsersSettingsGetAutoForwarding'
+    { _usgafUserId :: Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsGetAutoForwarding' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usgafUserId'
+usersSettingsGetAutoForwarding
+    :: UsersSettingsGetAutoForwarding
+usersSettingsGetAutoForwarding =
+    UsersSettingsGetAutoForwarding'
+    { _usgafUserId = "me"
+    }
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+usgafUserId :: Lens' UsersSettingsGetAutoForwarding Text
+usgafUserId
+  = lens _usgafUserId (\ s a -> s{_usgafUserId = a})
+
+instance GoogleRequest UsersSettingsGetAutoForwarding
+         where
+        type Rs UsersSettingsGetAutoForwarding =
+             AutoForwarding
+        type Scopes UsersSettingsGetAutoForwarding =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly",
+               "https://www.googleapis.com/auth/gmail.settings.basic"]
+        requestClient UsersSettingsGetAutoForwarding'{..}
+          = go _usgafUserId (Just AltJSON) gmailService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy UsersSettingsGetAutoForwardingResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/GetImap.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/GetImap.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/GetImap.hs
@@ -0,0 +1,90 @@
+{-# 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.Settings.GetImap
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets IMAP settings.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.getImap@.
+module Network.Google.Resource.Gmail.Users.Settings.GetImap
+    (
+    -- * REST Resource
+      UsersSettingsGetImapResource
+
+    -- * Creating a Request
+    , usersSettingsGetImap
+    , UsersSettingsGetImap
+
+    -- * Request Lenses
+    , usgiUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.getImap@ method which the
+-- 'UsersSettingsGetImap' request conforms to.
+type UsersSettingsGetImapResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "imap" :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] ImapSettings
+
+-- | Gets IMAP settings.
+--
+-- /See:/ 'usersSettingsGetImap' smart constructor.
+newtype UsersSettingsGetImap = UsersSettingsGetImap'
+    { _usgiUserId :: Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsGetImap' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usgiUserId'
+usersSettingsGetImap
+    :: UsersSettingsGetImap
+usersSettingsGetImap =
+    UsersSettingsGetImap'
+    { _usgiUserId = "me"
+    }
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+usgiUserId :: Lens' UsersSettingsGetImap Text
+usgiUserId
+  = lens _usgiUserId (\ s a -> s{_usgiUserId = a})
+
+instance GoogleRequest UsersSettingsGetImap where
+        type Rs UsersSettingsGetImap = ImapSettings
+        type Scopes UsersSettingsGetImap =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly",
+               "https://www.googleapis.com/auth/gmail.settings.basic"]
+        requestClient UsersSettingsGetImap'{..}
+          = go _usgiUserId (Just AltJSON) gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsGetImapResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/GetPop.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/GetPop.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/GetPop.hs
@@ -0,0 +1,90 @@
+{-# 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.Settings.GetPop
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets POP settings.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.getPop@.
+module Network.Google.Resource.Gmail.Users.Settings.GetPop
+    (
+    -- * REST Resource
+      UsersSettingsGetPopResource
+
+    -- * Creating a Request
+    , usersSettingsGetPop
+    , UsersSettingsGetPop
+
+    -- * Request Lenses
+    , usgpUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.getPop@ method which the
+-- 'UsersSettingsGetPop' request conforms to.
+type UsersSettingsGetPopResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "pop" :>
+                 QueryParam "alt" AltJSON :> Get '[JSON] PopSettings
+
+-- | Gets POP settings.
+--
+-- /See:/ 'usersSettingsGetPop' smart constructor.
+newtype UsersSettingsGetPop = UsersSettingsGetPop'
+    { _usgpUserId :: Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsGetPop' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usgpUserId'
+usersSettingsGetPop
+    :: UsersSettingsGetPop
+usersSettingsGetPop =
+    UsersSettingsGetPop'
+    { _usgpUserId = "me"
+    }
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+usgpUserId :: Lens' UsersSettingsGetPop Text
+usgpUserId
+  = lens _usgpUserId (\ s a -> s{_usgpUserId = a})
+
+instance GoogleRequest UsersSettingsGetPop where
+        type Rs UsersSettingsGetPop = PopSettings
+        type Scopes UsersSettingsGetPop =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly",
+               "https://www.googleapis.com/auth/gmail.settings.basic"]
+        requestClient UsersSettingsGetPop'{..}
+          = go _usgpUserId (Just AltJSON) gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsGetPopResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/GetVacation.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/GetVacation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/GetVacation.hs
@@ -0,0 +1,91 @@
+{-# 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.Settings.GetVacation
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets vacation responder settings.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.getVacation@.
+module Network.Google.Resource.Gmail.Users.Settings.GetVacation
+    (
+    -- * REST Resource
+      UsersSettingsGetVacationResource
+
+    -- * Creating a Request
+    , usersSettingsGetVacation
+    , UsersSettingsGetVacation
+
+    -- * Request Lenses
+    , usgvUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.getVacation@ method which the
+-- 'UsersSettingsGetVacation' request conforms to.
+type UsersSettingsGetVacationResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "vacation" :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] VacationSettings
+
+-- | Gets vacation responder settings.
+--
+-- /See:/ 'usersSettingsGetVacation' smart constructor.
+newtype UsersSettingsGetVacation = UsersSettingsGetVacation'
+    { _usgvUserId :: Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsGetVacation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usgvUserId'
+usersSettingsGetVacation
+    :: UsersSettingsGetVacation
+usersSettingsGetVacation =
+    UsersSettingsGetVacation'
+    { _usgvUserId = "me"
+    }
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+usgvUserId :: Lens' UsersSettingsGetVacation Text
+usgvUserId
+  = lens _usgvUserId (\ s a -> s{_usgvUserId = a})
+
+instance GoogleRequest UsersSettingsGetVacation where
+        type Rs UsersSettingsGetVacation = VacationSettings
+        type Scopes UsersSettingsGetVacation =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly",
+               "https://www.googleapis.com/auth/gmail.settings.basic"]
+        requestClient UsersSettingsGetVacation'{..}
+          = go _usgvUserId (Just AltJSON) gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsGetVacationResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Create.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Create.hs
@@ -0,0 +1,115 @@
+{-# 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.Settings.SendAs.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a custom \"from\" send-as alias. If an SMTP MSA is specified,
+-- Gmail will attempt to connect to the SMTP service to validate the
+-- configuration before creating the alias. If ownership verification is
+-- required for the alias, a message will be sent to the email address and
+-- the resource\'s verification status will be set to pending; otherwise,
+-- the resource will be created with verification status set to accepted.
+-- If a signature is provided, Gmail will sanitize the HTML before saving
+-- it with the alias.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.sendAs.create@.
+module Network.Google.Resource.Gmail.Users.Settings.SendAs.Create
+    (
+    -- * REST Resource
+      UsersSettingsSendAsCreateResource
+
+    -- * Creating a Request
+    , usersSettingsSendAsCreate
+    , UsersSettingsSendAsCreate
+
+    -- * Request Lenses
+    , ussacPayload
+    , ussacUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.sendAs.create@ method which the
+-- 'UsersSettingsSendAsCreate' request conforms to.
+type UsersSettingsSendAsCreateResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "sendAs" :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] SendAs :> Post '[JSON] SendAs
+
+-- | Creates a custom \"from\" send-as alias. If an SMTP MSA is specified,
+-- Gmail will attempt to connect to the SMTP service to validate the
+-- configuration before creating the alias. If ownership verification is
+-- required for the alias, a message will be sent to the email address and
+-- the resource\'s verification status will be set to pending; otherwise,
+-- the resource will be created with verification status set to accepted.
+-- If a signature is provided, Gmail will sanitize the HTML before saving
+-- it with the alias.
+--
+-- /See:/ 'usersSettingsSendAsCreate' smart constructor.
+data UsersSettingsSendAsCreate = UsersSettingsSendAsCreate'
+    { _ussacPayload :: !SendAs
+    , _ussacUserId  :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsSendAsCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ussacPayload'
+--
+-- * 'ussacUserId'
+usersSettingsSendAsCreate
+    :: SendAs -- ^ 'ussacPayload'
+    -> UsersSettingsSendAsCreate
+usersSettingsSendAsCreate pUssacPayload_ =
+    UsersSettingsSendAsCreate'
+    { _ussacPayload = pUssacPayload_
+    , _ussacUserId = "me"
+    }
+
+-- | Multipart request metadata.
+ussacPayload :: Lens' UsersSettingsSendAsCreate SendAs
+ussacPayload
+  = lens _ussacPayload (\ s a -> s{_ussacPayload = a})
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+ussacUserId :: Lens' UsersSettingsSendAsCreate Text
+ussacUserId
+  = lens _ussacUserId (\ s a -> s{_ussacUserId = a})
+
+instance GoogleRequest UsersSettingsSendAsCreate
+         where
+        type Rs UsersSettingsSendAsCreate = SendAs
+        type Scopes UsersSettingsSendAsCreate =
+             '["https://www.googleapis.com/auth/gmail.settings.sharing"]
+        requestClient UsersSettingsSendAsCreate'{..}
+          = go _ussacUserId (Just AltJSON) _ussacPayload
+              gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsSendAsCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Delete.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Delete.hs
@@ -0,0 +1,104 @@
+{-# 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.Settings.SendAs.Delete
+-- 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 the specified send-as alias. Revokes any verification that may
+-- have been required for using it.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.sendAs.delete@.
+module Network.Google.Resource.Gmail.Users.Settings.SendAs.Delete
+    (
+    -- * REST Resource
+      UsersSettingsSendAsDeleteResource
+
+    -- * Creating a Request
+    , usersSettingsSendAsDelete
+    , UsersSettingsSendAsDelete
+
+    -- * Request Lenses
+    , ussadUserId
+    , ussadSendAsEmail
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.sendAs.delete@ method which the
+-- 'UsersSettingsSendAsDelete' request conforms to.
+type UsersSettingsSendAsDeleteResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "sendAs" :>
+                 Capture "sendAsEmail" Text :>
+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes the specified send-as alias. Revokes any verification that may
+-- have been required for using it.
+--
+-- /See:/ 'usersSettingsSendAsDelete' smart constructor.
+data UsersSettingsSendAsDelete = UsersSettingsSendAsDelete'
+    { _ussadUserId      :: !Text
+    , _ussadSendAsEmail :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsSendAsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ussadUserId'
+--
+-- * 'ussadSendAsEmail'
+usersSettingsSendAsDelete
+    :: Text -- ^ 'ussadSendAsEmail'
+    -> UsersSettingsSendAsDelete
+usersSettingsSendAsDelete pUssadSendAsEmail_ =
+    UsersSettingsSendAsDelete'
+    { _ussadUserId = "me"
+    , _ussadSendAsEmail = pUssadSendAsEmail_
+    }
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+ussadUserId :: Lens' UsersSettingsSendAsDelete Text
+ussadUserId
+  = lens _ussadUserId (\ s a -> s{_ussadUserId = a})
+
+-- | The send-as alias to be deleted.
+ussadSendAsEmail :: Lens' UsersSettingsSendAsDelete Text
+ussadSendAsEmail
+  = lens _ussadSendAsEmail
+      (\ s a -> s{_ussadSendAsEmail = a})
+
+instance GoogleRequest UsersSettingsSendAsDelete
+         where
+        type Rs UsersSettingsSendAsDelete = ()
+        type Scopes UsersSettingsSendAsDelete =
+             '["https://www.googleapis.com/auth/gmail.settings.sharing"]
+        requestClient UsersSettingsSendAsDelete'{..}
+          = go _ussadUserId _ussadSendAsEmail (Just AltJSON)
+              gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsSendAsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Get.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Get.hs
@@ -0,0 +1,106 @@
+{-# 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.Settings.SendAs.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the specified send-as alias. Fails with an HTTP 404 error if the
+-- specified address is not a member of the collection.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.sendAs.get@.
+module Network.Google.Resource.Gmail.Users.Settings.SendAs.Get
+    (
+    -- * REST Resource
+      UsersSettingsSendAsGetResource
+
+    -- * Creating a Request
+    , usersSettingsSendAsGet
+    , UsersSettingsSendAsGet
+
+    -- * Request Lenses
+    , ussagUserId
+    , ussagSendAsEmail
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.sendAs.get@ method which the
+-- 'UsersSettingsSendAsGet' request conforms to.
+type UsersSettingsSendAsGetResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "sendAs" :>
+                 Capture "sendAsEmail" Text :>
+                   QueryParam "alt" AltJSON :> Get '[JSON] SendAs
+
+-- | Gets the specified send-as alias. Fails with an HTTP 404 error if the
+-- specified address is not a member of the collection.
+--
+-- /See:/ 'usersSettingsSendAsGet' smart constructor.
+data UsersSettingsSendAsGet = UsersSettingsSendAsGet'
+    { _ussagUserId      :: !Text
+    , _ussagSendAsEmail :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsSendAsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ussagUserId'
+--
+-- * 'ussagSendAsEmail'
+usersSettingsSendAsGet
+    :: Text -- ^ 'ussagSendAsEmail'
+    -> UsersSettingsSendAsGet
+usersSettingsSendAsGet pUssagSendAsEmail_ =
+    UsersSettingsSendAsGet'
+    { _ussagUserId = "me"
+    , _ussagSendAsEmail = pUssagSendAsEmail_
+    }
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+ussagUserId :: Lens' UsersSettingsSendAsGet Text
+ussagUserId
+  = lens _ussagUserId (\ s a -> s{_ussagUserId = a})
+
+-- | The send-as alias to be retrieved.
+ussagSendAsEmail :: Lens' UsersSettingsSendAsGet Text
+ussagSendAsEmail
+  = lens _ussagSendAsEmail
+      (\ s a -> s{_ussagSendAsEmail = a})
+
+instance GoogleRequest UsersSettingsSendAsGet where
+        type Rs UsersSettingsSendAsGet = SendAs
+        type Scopes UsersSettingsSendAsGet =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly",
+               "https://www.googleapis.com/auth/gmail.settings.basic"]
+        requestClient UsersSettingsSendAsGet'{..}
+          = go _ussagUserId _ussagSendAsEmail (Just AltJSON)
+              gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsSendAsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/List.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/List.hs
@@ -0,0 +1,95 @@
+{-# 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.Settings.SendAs.List
+-- 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)
+--
+-- Lists the send-as aliases for the specified account. The result includes
+-- the primary send-as address associated with the account as well as any
+-- custom \"from\" aliases.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.sendAs.list@.
+module Network.Google.Resource.Gmail.Users.Settings.SendAs.List
+    (
+    -- * REST Resource
+      UsersSettingsSendAsListResource
+
+    -- * Creating a Request
+    , usersSettingsSendAsList
+    , UsersSettingsSendAsList
+
+    -- * Request Lenses
+    , ussalUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.sendAs.list@ method which the
+-- 'UsersSettingsSendAsList' request conforms to.
+type UsersSettingsSendAsListResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "sendAs" :>
+                 QueryParam "alt" AltJSON :>
+                   Get '[JSON] ListSendAsResponse
+
+-- | Lists the send-as aliases for the specified account. The result includes
+-- the primary send-as address associated with the account as well as any
+-- custom \"from\" aliases.
+--
+-- /See:/ 'usersSettingsSendAsList' smart constructor.
+newtype UsersSettingsSendAsList = UsersSettingsSendAsList'
+    { _ussalUserId :: Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsSendAsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ussalUserId'
+usersSettingsSendAsList
+    :: UsersSettingsSendAsList
+usersSettingsSendAsList =
+    UsersSettingsSendAsList'
+    { _ussalUserId = "me"
+    }
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+ussalUserId :: Lens' UsersSettingsSendAsList Text
+ussalUserId
+  = lens _ussalUserId (\ s a -> s{_ussalUserId = a})
+
+instance GoogleRequest UsersSettingsSendAsList where
+        type Rs UsersSettingsSendAsList = ListSendAsResponse
+        type Scopes UsersSettingsSendAsList =
+             '["https://mail.google.com/",
+               "https://www.googleapis.com/auth/gmail.modify",
+               "https://www.googleapis.com/auth/gmail.readonly",
+               "https://www.googleapis.com/auth/gmail.settings.basic"]
+        requestClient UsersSettingsSendAsList'{..}
+          = go _ussalUserId (Just AltJSON) gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsSendAsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Patch.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Patch.hs
@@ -0,0 +1,119 @@
+{-# 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.Settings.SendAs.Patch
+-- 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)
+--
+-- Updates a send-as alias. If a signature is provided, Gmail will sanitize
+-- the HTML before saving it with the alias. This method supports patch
+-- semantics.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.sendAs.patch@.
+module Network.Google.Resource.Gmail.Users.Settings.SendAs.Patch
+    (
+    -- * REST Resource
+      UsersSettingsSendAsPatchResource
+
+    -- * Creating a Request
+    , usersSettingsSendAsPatch
+    , UsersSettingsSendAsPatch
+
+    -- * Request Lenses
+    , ussapPayload
+    , ussapUserId
+    , ussapSendAsEmail
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.sendAs.patch@ method which the
+-- 'UsersSettingsSendAsPatch' request conforms to.
+type UsersSettingsSendAsPatchResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "sendAs" :>
+                 Capture "sendAsEmail" Text :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] SendAs :> Patch '[JSON] SendAs
+
+-- | Updates a send-as alias. If a signature is provided, Gmail will sanitize
+-- the HTML before saving it with the alias. This method supports patch
+-- semantics.
+--
+-- /See:/ 'usersSettingsSendAsPatch' smart constructor.
+data UsersSettingsSendAsPatch = UsersSettingsSendAsPatch'
+    { _ussapPayload     :: !SendAs
+    , _ussapUserId      :: !Text
+    , _ussapSendAsEmail :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsSendAsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ussapPayload'
+--
+-- * 'ussapUserId'
+--
+-- * 'ussapSendAsEmail'
+usersSettingsSendAsPatch
+    :: SendAs -- ^ 'ussapPayload'
+    -> Text -- ^ 'ussapSendAsEmail'
+    -> UsersSettingsSendAsPatch
+usersSettingsSendAsPatch pUssapPayload_ pUssapSendAsEmail_ =
+    UsersSettingsSendAsPatch'
+    { _ussapPayload = pUssapPayload_
+    , _ussapUserId = "me"
+    , _ussapSendAsEmail = pUssapSendAsEmail_
+    }
+
+-- | Multipart request metadata.
+ussapPayload :: Lens' UsersSettingsSendAsPatch SendAs
+ussapPayload
+  = lens _ussapPayload (\ s a -> s{_ussapPayload = a})
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+ussapUserId :: Lens' UsersSettingsSendAsPatch Text
+ussapUserId
+  = lens _ussapUserId (\ s a -> s{_ussapUserId = a})
+
+-- | The send-as alias to be updated.
+ussapSendAsEmail :: Lens' UsersSettingsSendAsPatch Text
+ussapSendAsEmail
+  = lens _ussapSendAsEmail
+      (\ s a -> s{_ussapSendAsEmail = a})
+
+instance GoogleRequest UsersSettingsSendAsPatch where
+        type Rs UsersSettingsSendAsPatch = SendAs
+        type Scopes UsersSettingsSendAsPatch =
+             '["https://www.googleapis.com/auth/gmail.settings.basic",
+               "https://www.googleapis.com/auth/gmail.settings.sharing"]
+        requestClient UsersSettingsSendAsPatch'{..}
+          = go _ussapUserId _ussapSendAsEmail (Just AltJSON)
+              _ussapPayload
+              gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsSendAsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Update.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Update.hs
@@ -0,0 +1,118 @@
+{-# 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.Settings.SendAs.Update
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a send-as alias. If a signature is provided, Gmail will sanitize
+-- the HTML before saving it with the alias.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.sendAs.update@.
+module Network.Google.Resource.Gmail.Users.Settings.SendAs.Update
+    (
+    -- * REST Resource
+      UsersSettingsSendAsUpdateResource
+
+    -- * Creating a Request
+    , usersSettingsSendAsUpdate
+    , UsersSettingsSendAsUpdate
+
+    -- * Request Lenses
+    , ussauPayload
+    , ussauUserId
+    , ussauSendAsEmail
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.sendAs.update@ method which the
+-- 'UsersSettingsSendAsUpdate' request conforms to.
+type UsersSettingsSendAsUpdateResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "sendAs" :>
+                 Capture "sendAsEmail" Text :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] SendAs :> Put '[JSON] SendAs
+
+-- | Updates a send-as alias. If a signature is provided, Gmail will sanitize
+-- the HTML before saving it with the alias.
+--
+-- /See:/ 'usersSettingsSendAsUpdate' smart constructor.
+data UsersSettingsSendAsUpdate = UsersSettingsSendAsUpdate'
+    { _ussauPayload     :: !SendAs
+    , _ussauUserId      :: !Text
+    , _ussauSendAsEmail :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsSendAsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ussauPayload'
+--
+-- * 'ussauUserId'
+--
+-- * 'ussauSendAsEmail'
+usersSettingsSendAsUpdate
+    :: SendAs -- ^ 'ussauPayload'
+    -> Text -- ^ 'ussauSendAsEmail'
+    -> UsersSettingsSendAsUpdate
+usersSettingsSendAsUpdate pUssauPayload_ pUssauSendAsEmail_ =
+    UsersSettingsSendAsUpdate'
+    { _ussauPayload = pUssauPayload_
+    , _ussauUserId = "me"
+    , _ussauSendAsEmail = pUssauSendAsEmail_
+    }
+
+-- | Multipart request metadata.
+ussauPayload :: Lens' UsersSettingsSendAsUpdate SendAs
+ussauPayload
+  = lens _ussauPayload (\ s a -> s{_ussauPayload = a})
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+ussauUserId :: Lens' UsersSettingsSendAsUpdate Text
+ussauUserId
+  = lens _ussauUserId (\ s a -> s{_ussauUserId = a})
+
+-- | The send-as alias to be updated.
+ussauSendAsEmail :: Lens' UsersSettingsSendAsUpdate Text
+ussauSendAsEmail
+  = lens _ussauSendAsEmail
+      (\ s a -> s{_ussauSendAsEmail = a})
+
+instance GoogleRequest UsersSettingsSendAsUpdate
+         where
+        type Rs UsersSettingsSendAsUpdate = SendAs
+        type Scopes UsersSettingsSendAsUpdate =
+             '["https://www.googleapis.com/auth/gmail.settings.basic",
+               "https://www.googleapis.com/auth/gmail.settings.sharing"]
+        requestClient UsersSettingsSendAsUpdate'{..}
+          = go _ussauUserId _ussauSendAsEmail (Just AltJSON)
+              _ussauPayload
+              gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsSendAsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Verify.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Verify.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/SendAs/Verify.hs
@@ -0,0 +1,105 @@
+{-# 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.Settings.SendAs.Verify
+-- 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)
+--
+-- Sends a verification email to the specified send-as alias address. The
+-- verification status must be pending.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.sendAs.verify@.
+module Network.Google.Resource.Gmail.Users.Settings.SendAs.Verify
+    (
+    -- * REST Resource
+      UsersSettingsSendAsVerifyResource
+
+    -- * Creating a Request
+    , usersSettingsSendAsVerify
+    , UsersSettingsSendAsVerify
+
+    -- * Request Lenses
+    , ussavUserId
+    , ussavSendAsEmail
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.sendAs.verify@ method which the
+-- 'UsersSettingsSendAsVerify' request conforms to.
+type UsersSettingsSendAsVerifyResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "sendAs" :>
+                 Capture "sendAsEmail" Text :>
+                   "verify" :>
+                     QueryParam "alt" AltJSON :> Post '[JSON] ()
+
+-- | Sends a verification email to the specified send-as alias address. The
+-- verification status must be pending.
+--
+-- /See:/ 'usersSettingsSendAsVerify' smart constructor.
+data UsersSettingsSendAsVerify = UsersSettingsSendAsVerify'
+    { _ussavUserId      :: !Text
+    , _ussavSendAsEmail :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsSendAsVerify' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ussavUserId'
+--
+-- * 'ussavSendAsEmail'
+usersSettingsSendAsVerify
+    :: Text -- ^ 'ussavSendAsEmail'
+    -> UsersSettingsSendAsVerify
+usersSettingsSendAsVerify pUssavSendAsEmail_ =
+    UsersSettingsSendAsVerify'
+    { _ussavUserId = "me"
+    , _ussavSendAsEmail = pUssavSendAsEmail_
+    }
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+ussavUserId :: Lens' UsersSettingsSendAsVerify Text
+ussavUserId
+  = lens _ussavUserId (\ s a -> s{_ussavUserId = a})
+
+-- | The send-as alias to be verified.
+ussavSendAsEmail :: Lens' UsersSettingsSendAsVerify Text
+ussavSendAsEmail
+  = lens _ussavSendAsEmail
+      (\ s a -> s{_ussavSendAsEmail = a})
+
+instance GoogleRequest UsersSettingsSendAsVerify
+         where
+        type Rs UsersSettingsSendAsVerify = ()
+        type Scopes UsersSettingsSendAsVerify =
+             '["https://www.googleapis.com/auth/gmail.settings.sharing"]
+        requestClient UsersSettingsSendAsVerify'{..}
+          = go _ussavUserId _ussavSendAsEmail (Just AltJSON)
+              gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsSendAsVerifyResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/UpdateAutoForwarding.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/UpdateAutoForwarding.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/UpdateAutoForwarding.hs
@@ -0,0 +1,108 @@
+{-# 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.Settings.UpdateAutoForwarding
+-- 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)
+--
+-- Updates the auto-forwarding setting for the specified account. A
+-- verified forwarding address must be specified when auto-forwarding is
+-- enabled.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.updateAutoForwarding@.
+module Network.Google.Resource.Gmail.Users.Settings.UpdateAutoForwarding
+    (
+    -- * REST Resource
+      UsersSettingsUpdateAutoForwardingResource
+
+    -- * Creating a Request
+    , usersSettingsUpdateAutoForwarding
+    , UsersSettingsUpdateAutoForwarding
+
+    -- * Request Lenses
+    , usuafPayload
+    , usuafUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.updateAutoForwarding@ method which the
+-- 'UsersSettingsUpdateAutoForwarding' request conforms to.
+type UsersSettingsUpdateAutoForwardingResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "autoForwarding" :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] AutoForwarding :>
+                     Put '[JSON] AutoForwarding
+
+-- | Updates the auto-forwarding setting for the specified account. A
+-- verified forwarding address must be specified when auto-forwarding is
+-- enabled.
+--
+-- /See:/ 'usersSettingsUpdateAutoForwarding' smart constructor.
+data UsersSettingsUpdateAutoForwarding = UsersSettingsUpdateAutoForwarding'
+    { _usuafPayload :: !AutoForwarding
+    , _usuafUserId  :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsUpdateAutoForwarding' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usuafPayload'
+--
+-- * 'usuafUserId'
+usersSettingsUpdateAutoForwarding
+    :: AutoForwarding -- ^ 'usuafPayload'
+    -> UsersSettingsUpdateAutoForwarding
+usersSettingsUpdateAutoForwarding pUsuafPayload_ =
+    UsersSettingsUpdateAutoForwarding'
+    { _usuafPayload = pUsuafPayload_
+    , _usuafUserId = "me"
+    }
+
+-- | Multipart request metadata.
+usuafPayload :: Lens' UsersSettingsUpdateAutoForwarding AutoForwarding
+usuafPayload
+  = lens _usuafPayload (\ s a -> s{_usuafPayload = a})
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+usuafUserId :: Lens' UsersSettingsUpdateAutoForwarding Text
+usuafUserId
+  = lens _usuafUserId (\ s a -> s{_usuafUserId = a})
+
+instance GoogleRequest
+         UsersSettingsUpdateAutoForwarding where
+        type Rs UsersSettingsUpdateAutoForwarding =
+             AutoForwarding
+        type Scopes UsersSettingsUpdateAutoForwarding =
+             '["https://www.googleapis.com/auth/gmail.settings.sharing"]
+        requestClient UsersSettingsUpdateAutoForwarding'{..}
+          = go _usuafUserId (Just AltJSON) _usuafPayload
+              gmailService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy UsersSettingsUpdateAutoForwardingResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/UpdateImap.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/UpdateImap.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/UpdateImap.hs
@@ -0,0 +1,101 @@
+{-# 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.Settings.UpdateImap
+-- 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)
+--
+-- Updates IMAP settings.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.updateImap@.
+module Network.Google.Resource.Gmail.Users.Settings.UpdateImap
+    (
+    -- * REST Resource
+      UsersSettingsUpdateImapResource
+
+    -- * Creating a Request
+    , usersSettingsUpdateImap
+    , UsersSettingsUpdateImap
+
+    -- * Request Lenses
+    , usuiPayload
+    , usuiUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.updateImap@ method which the
+-- 'UsersSettingsUpdateImap' request conforms to.
+type UsersSettingsUpdateImapResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "imap" :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] ImapSettings :>
+                     Put '[JSON] ImapSettings
+
+-- | Updates IMAP settings.
+--
+-- /See:/ 'usersSettingsUpdateImap' smart constructor.
+data UsersSettingsUpdateImap = UsersSettingsUpdateImap'
+    { _usuiPayload :: !ImapSettings
+    , _usuiUserId  :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsUpdateImap' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usuiPayload'
+--
+-- * 'usuiUserId'
+usersSettingsUpdateImap
+    :: ImapSettings -- ^ 'usuiPayload'
+    -> UsersSettingsUpdateImap
+usersSettingsUpdateImap pUsuiPayload_ =
+    UsersSettingsUpdateImap'
+    { _usuiPayload = pUsuiPayload_
+    , _usuiUserId = "me"
+    }
+
+-- | Multipart request metadata.
+usuiPayload :: Lens' UsersSettingsUpdateImap ImapSettings
+usuiPayload
+  = lens _usuiPayload (\ s a -> s{_usuiPayload = a})
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+usuiUserId :: Lens' UsersSettingsUpdateImap Text
+usuiUserId
+  = lens _usuiUserId (\ s a -> s{_usuiUserId = a})
+
+instance GoogleRequest UsersSettingsUpdateImap where
+        type Rs UsersSettingsUpdateImap = ImapSettings
+        type Scopes UsersSettingsUpdateImap =
+             '["https://www.googleapis.com/auth/gmail.settings.basic"]
+        requestClient UsersSettingsUpdateImap'{..}
+          = go _usuiUserId (Just AltJSON) _usuiPayload
+              gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsUpdateImapResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/UpdatePop.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/UpdatePop.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/UpdatePop.hs
@@ -0,0 +1,101 @@
+{-# 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.Settings.UpdatePop
+-- 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)
+--
+-- Updates POP settings.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.updatePop@.
+module Network.Google.Resource.Gmail.Users.Settings.UpdatePop
+    (
+    -- * REST Resource
+      UsersSettingsUpdatePopResource
+
+    -- * Creating a Request
+    , usersSettingsUpdatePop
+    , UsersSettingsUpdatePop
+
+    -- * Request Lenses
+    , usupPayload
+    , usupUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.updatePop@ method which the
+-- 'UsersSettingsUpdatePop' request conforms to.
+type UsersSettingsUpdatePopResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "pop" :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] PopSettings :>
+                     Put '[JSON] PopSettings
+
+-- | Updates POP settings.
+--
+-- /See:/ 'usersSettingsUpdatePop' smart constructor.
+data UsersSettingsUpdatePop = UsersSettingsUpdatePop'
+    { _usupPayload :: !PopSettings
+    , _usupUserId  :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsUpdatePop' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usupPayload'
+--
+-- * 'usupUserId'
+usersSettingsUpdatePop
+    :: PopSettings -- ^ 'usupPayload'
+    -> UsersSettingsUpdatePop
+usersSettingsUpdatePop pUsupPayload_ =
+    UsersSettingsUpdatePop'
+    { _usupPayload = pUsupPayload_
+    , _usupUserId = "me"
+    }
+
+-- | Multipart request metadata.
+usupPayload :: Lens' UsersSettingsUpdatePop PopSettings
+usupPayload
+  = lens _usupPayload (\ s a -> s{_usupPayload = a})
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+usupUserId :: Lens' UsersSettingsUpdatePop Text
+usupUserId
+  = lens _usupUserId (\ s a -> s{_usupUserId = a})
+
+instance GoogleRequest UsersSettingsUpdatePop where
+        type Rs UsersSettingsUpdatePop = PopSettings
+        type Scopes UsersSettingsUpdatePop =
+             '["https://www.googleapis.com/auth/gmail.settings.basic"]
+        requestClient UsersSettingsUpdatePop'{..}
+          = go _usupUserId (Just AltJSON) _usupPayload
+              gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsUpdatePopResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Gmail/Users/Settings/UpdateVacation.hs b/gen/Network/Google/Resource/Gmail/Users/Settings/UpdateVacation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Gmail/Users/Settings/UpdateVacation.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.Settings.UpdateVacation
+-- 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)
+--
+-- Updates vacation responder settings.
+--
+-- /See:/ <https://developers.google.com/gmail/api/ Gmail API Reference> for @gmail.users.settings.updateVacation@.
+module Network.Google.Resource.Gmail.Users.Settings.UpdateVacation
+    (
+    -- * REST Resource
+      UsersSettingsUpdateVacationResource
+
+    -- * Creating a Request
+    , usersSettingsUpdateVacation
+    , UsersSettingsUpdateVacation
+
+    -- * Request Lenses
+    , usuvPayload
+    , usuvUserId
+    ) where
+
+import           Network.Google.Gmail.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @gmail.users.settings.updateVacation@ method which the
+-- 'UsersSettingsUpdateVacation' request conforms to.
+type UsersSettingsUpdateVacationResource =
+     "gmail" :>
+       "v1" :>
+         "users" :>
+           Capture "userId" Text :>
+             "settings" :>
+               "vacation" :>
+                 QueryParam "alt" AltJSON :>
+                   ReqBody '[JSON] VacationSettings :>
+                     Put '[JSON] VacationSettings
+
+-- | Updates vacation responder settings.
+--
+-- /See:/ 'usersSettingsUpdateVacation' smart constructor.
+data UsersSettingsUpdateVacation = UsersSettingsUpdateVacation'
+    { _usuvPayload :: !VacationSettings
+    , _usuvUserId  :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UsersSettingsUpdateVacation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'usuvPayload'
+--
+-- * 'usuvUserId'
+usersSettingsUpdateVacation
+    :: VacationSettings -- ^ 'usuvPayload'
+    -> UsersSettingsUpdateVacation
+usersSettingsUpdateVacation pUsuvPayload_ =
+    UsersSettingsUpdateVacation'
+    { _usuvPayload = pUsuvPayload_
+    , _usuvUserId = "me"
+    }
+
+-- | Multipart request metadata.
+usuvPayload :: Lens' UsersSettingsUpdateVacation VacationSettings
+usuvPayload
+  = lens _usuvPayload (\ s a -> s{_usuvPayload = a})
+
+-- | User\'s email address. The special value \"me\" can be used to indicate
+-- the authenticated user.
+usuvUserId :: Lens' UsersSettingsUpdateVacation Text
+usuvUserId
+  = lens _usuvUserId (\ s a -> s{_usuvUserId = a})
+
+instance GoogleRequest UsersSettingsUpdateVacation
+         where
+        type Rs UsersSettingsUpdateVacation =
+             VacationSettings
+        type Scopes UsersSettingsUpdateVacation =
+             '["https://www.googleapis.com/auth/gmail.settings.basic"]
+        requestClient UsersSettingsUpdateVacation'{..}
+          = go _usuvUserId (Just AltJSON) _usuvPayload
+              gmailService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy UsersSettingsUpdateVacationResource)
+                      mempty
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.1.0
+version:               0.1.1
 synopsis:              Google Gmail SDK.
 homepage:              https://github.com/brendanhay/gogol
 bug-reports:           https://github.com/brendanhay/gogol/issues
@@ -11,7 +11,7 @@
 category:              Network, Google, Cloud
 build-type:            Simple
 cabal-version:         >= 1.10
-extra-source-files:    README.md
+extra-source-files:    README.md src/.gitkeep
 
 description:
     Access Gmail mailboxes including sending user email.
@@ -60,6 +60,29 @@
         , Network.Google.Resource.Gmail.Users.Messages.Send
         , Network.Google.Resource.Gmail.Users.Messages.Trash
         , Network.Google.Resource.Gmail.Users.Messages.Untrash
+        , Network.Google.Resource.Gmail.Users.Settings.Filters.Create
+        , Network.Google.Resource.Gmail.Users.Settings.Filters.Delete
+        , Network.Google.Resource.Gmail.Users.Settings.Filters.Get
+        , Network.Google.Resource.Gmail.Users.Settings.Filters.List
+        , Network.Google.Resource.Gmail.Users.Settings.ForwardingAddresses.Create
+        , Network.Google.Resource.Gmail.Users.Settings.ForwardingAddresses.Delete
+        , Network.Google.Resource.Gmail.Users.Settings.ForwardingAddresses.Get
+        , Network.Google.Resource.Gmail.Users.Settings.ForwardingAddresses.List
+        , Network.Google.Resource.Gmail.Users.Settings.GetAutoForwarding
+        , Network.Google.Resource.Gmail.Users.Settings.GetImap
+        , Network.Google.Resource.Gmail.Users.Settings.GetPop
+        , Network.Google.Resource.Gmail.Users.Settings.GetVacation
+        , Network.Google.Resource.Gmail.Users.Settings.SendAs.Create
+        , Network.Google.Resource.Gmail.Users.Settings.SendAs.Delete
+        , Network.Google.Resource.Gmail.Users.Settings.SendAs.Get
+        , Network.Google.Resource.Gmail.Users.Settings.SendAs.List
+        , Network.Google.Resource.Gmail.Users.Settings.SendAs.Patch
+        , Network.Google.Resource.Gmail.Users.Settings.SendAs.Update
+        , Network.Google.Resource.Gmail.Users.Settings.SendAs.Verify
+        , Network.Google.Resource.Gmail.Users.Settings.UpdateAutoForwarding
+        , Network.Google.Resource.Gmail.Users.Settings.UpdateImap
+        , Network.Google.Resource.Gmail.Users.Settings.UpdatePop
+        , Network.Google.Resource.Gmail.Users.Settings.UpdateVacation
         , Network.Google.Resource.Gmail.Users.Stop
         , Network.Google.Resource.Gmail.Users.Threads.Delete
         , Network.Google.Resource.Gmail.Users.Threads.Get
@@ -74,5 +97,5 @@
         , Network.Google.Gmail.Types.Sum
 
     build-depends:
-          gogol-core == 0.1.0.*
+          gogol-core == 0.1.1.*
         , base       >= 4.7 && < 5
diff --git a/src/.gitkeep b/src/.gitkeep
new file mode 100644
--- /dev/null
+++ b/src/.gitkeep
