diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`0.0.1`
+`0.1.0`
 
 
 ## Description
@@ -18,9 +18,9 @@
 
 ## Contribute
 
-For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).
+For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues).
 
-> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.
+> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.
 
 
 ## Licence
diff --git a/gen/Network/Google/Directory.hs b/gen/Network/Google/Directory.hs
--- a/gen/Network/Google/Directory.hs
+++ b/gen/Network/Google/Directory.hs
@@ -7,7 +7,7 @@
 
 -- |
 -- Module      : Network.Google.Directory
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -23,6 +23,35 @@
     -- * Service Configuration
       directoryService
 
+    -- * OAuth Scopes
+    , adminDirectoryRoleManagementReadOnlyScope
+    , adminDirectoryGroupReadOnlyScope
+    , adminDirectoryDeviceChromeosReadOnlyScope
+    , adminDirectoryDeviceChromeosScope
+    , adminDirectoryUserScope
+    , adminDirectoryGroupMemberReadOnlyScope
+    , adminDirectoryUserAliasScope
+    , adminDirectoryResourceCalendarScope
+    , adminDirectoryDeviceMobileActionScope
+    , adminDirectoryResourceCalendarReadOnlyScope
+    , adminDirectoryDomainReadOnlyScope
+    , adminDirectoryUserschemaScope
+    , adminDirectoryUserschemaReadOnlyScope
+    , adminDirectoryDomainScope
+    , adminDirectoryRoleManagementScope
+    , adminDirectoryGroupScope
+    , adminDirectoryOrgUnitReadOnlyScope
+    , adminDirectoryCustomerScope
+    , adminDirectoryCustomerReadOnlyScope
+    , adminDirectoryOrgUnitScope
+    , adminDirectoryUserReadOnlyScope
+    , adminDirectoryUserAliasReadOnlyScope
+    , adminDirectoryUserSecurityScope
+    , adminDirectoryGroupMemberScope
+    , adminDirectoryNotificationsScope
+    , adminDirectoryDeviceMobileScope
+    , adminDirectoryDeviceMobileReadOnlyScope
+
     -- * API Declaration
     , DirectoryAPI
 
@@ -178,6 +207,24 @@
     -- ** directory.privileges.list
     , module Network.Google.Resource.Directory.Privileges.List
 
+    -- ** directory.resources.calendars.delete
+    , module Network.Google.Resource.Directory.Resources.Calendars.Delete
+
+    -- ** directory.resources.calendars.get
+    , module Network.Google.Resource.Directory.Resources.Calendars.Get
+
+    -- ** directory.resources.calendars.insert
+    , module Network.Google.Resource.Directory.Resources.Calendars.Insert
+
+    -- ** directory.resources.calendars.list
+    , module Network.Google.Resource.Directory.Resources.Calendars.List
+
+    -- ** directory.resources.calendars.patch
+    , module Network.Google.Resource.Directory.Resources.Calendars.Patch
+
+    -- ** directory.resources.calendars.update
+    , module Network.Google.Resource.Directory.Resources.Calendars.Update
+
     -- ** directory.roleAssignments.delete
     , module Network.Google.Resource.Directory.RoleAssignments.Delete
 
@@ -560,6 +607,17 @@
     , aliKind
     , aliAliases
 
+    -- ** CalendarResource
+    , CalendarResource
+    , calendarResource
+    , crEtags
+    , crResourceId
+    , crResourceType
+    , crResourceName
+    , crKind
+    , crResourceEmail
+    , crResourceDescription
+
     -- ** UserUndelete
     , UserUndelete
     , userUndelete
@@ -698,7 +756,7 @@
 
     -- ** Role
     , Role
-    , role
+    , role'
     , rrEtag
     , rrKind
     , rrRoleName
@@ -895,6 +953,14 @@
     , domDomainName
     , domIsPrimary
 
+    -- ** CalendarResources
+    , CalendarResources
+    , calendarResources
+    , crsEtag
+    , crsNextPageToken
+    , crsKind
+    , crsItems
+
     -- ** ChromeosDevicesListOrderBy
     , ChromeosDevicesListOrderBy (..)
 
@@ -1031,6 +1097,12 @@
 import           Network.Google.Resource.Directory.OrgUnits.Patch
 import           Network.Google.Resource.Directory.OrgUnits.Update
 import           Network.Google.Resource.Directory.Privileges.List
+import           Network.Google.Resource.Directory.Resources.Calendars.Delete
+import           Network.Google.Resource.Directory.Resources.Calendars.Get
+import           Network.Google.Resource.Directory.Resources.Calendars.Insert
+import           Network.Google.Resource.Directory.Resources.Calendars.List
+import           Network.Google.Resource.Directory.Resources.Calendars.Patch
+import           Network.Google.Resource.Directory.Resources.Calendars.Update
 import           Network.Google.Resource.Directory.RoleAssignments.Delete
 import           Network.Google.Resource.Directory.RoleAssignments.Get
 import           Network.Google.Resource.Directory.RoleAssignments.Insert
@@ -1141,6 +1213,12 @@
        :<|> MobileDevicesGetResource
        :<|> MobileDevicesActionResource
        :<|> MobileDevicesDeleteResource
+       :<|> ResourcesCalendarsInsertResource
+       :<|> ResourcesCalendarsListResource
+       :<|> ResourcesCalendarsPatchResource
+       :<|> ResourcesCalendarsGetResource
+       :<|> ResourcesCalendarsDeleteResource
+       :<|> ResourcesCalendarsUpdateResource
        :<|> OrgUnitsInsertResource
        :<|> OrgUnitsListResource
        :<|> OrgUnitsPatchResource
diff --git a/gen/Network/Google/Directory/Types.hs b/gen/Network/Google/Directory/Types.hs
--- a/gen/Network/Google/Directory/Types.hs
+++ b/gen/Network/Google/Directory/Types.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE DataKinds          #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE DeriveGeneric      #-}
 {-# LANGUAGE NoImplicitPrelude  #-}
@@ -7,7 +8,7 @@
 
 -- |
 -- Module      : Network.Google.Directory.Types
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -19,31 +20,33 @@
       directoryService
 
     -- * OAuth Scopes
-    , adminDirectoryRolemanagementReadonlyScope
-    , adminDirectoryGroupReadonlyScope
-    , adminDirectoryDeviceChromeosReadonlyScope
+    , adminDirectoryRoleManagementReadOnlyScope
+    , adminDirectoryGroupReadOnlyScope
+    , adminDirectoryDeviceChromeosReadOnlyScope
     , adminDirectoryDeviceChromeosScope
     , adminDirectoryUserScope
-    , adminDirectoryGroupMemberReadonlyScope
+    , adminDirectoryGroupMemberReadOnlyScope
     , adminDirectoryUserAliasScope
+    , adminDirectoryResourceCalendarScope
     , adminDirectoryDeviceMobileActionScope
-    , adminDirectoryDomainReadonlyScope
+    , adminDirectoryResourceCalendarReadOnlyScope
+    , adminDirectoryDomainReadOnlyScope
     , adminDirectoryUserschemaScope
-    , adminDirectoryUserschemaReadonlyScope
+    , adminDirectoryUserschemaReadOnlyScope
     , adminDirectoryDomainScope
-    , adminDirectoryRolemanagementScope
+    , adminDirectoryRoleManagementScope
     , adminDirectoryGroupScope
-    , adminDirectoryOrgunitReadonlyScope
+    , adminDirectoryOrgUnitReadOnlyScope
     , adminDirectoryCustomerScope
-    , adminDirectoryCustomerReadonlyScope
-    , adminDirectoryOrgunitScope
-    , adminDirectoryUserReadonlyScope
-    , adminDirectoryUserAliasReadonlyScope
+    , adminDirectoryCustomerReadOnlyScope
+    , adminDirectoryOrgUnitScope
+    , adminDirectoryUserReadOnlyScope
+    , adminDirectoryUserAliasReadOnlyScope
     , adminDirectoryUserSecurityScope
     , adminDirectoryGroupMemberScope
     , adminDirectoryNotificationsScope
     , adminDirectoryDeviceMobileScope
-    , adminDirectoryDeviceMobileReadonlyScope
+    , adminDirectoryDeviceMobileReadOnlyScope
 
     -- * VerificationCode
     , VerificationCode
@@ -308,6 +311,17 @@
     , aliKind
     , aliAliases
 
+    -- * CalendarResource
+    , CalendarResource
+    , calendarResource
+    , crEtags
+    , crResourceId
+    , crResourceType
+    , crResourceName
+    , crKind
+    , crResourceEmail
+    , crResourceDescription
+
     -- * UserUndelete
     , UserUndelete
     , userUndelete
@@ -446,7 +460,7 @@
 
     -- * Role
     , Role
-    , role
+    , role'
     , rrEtag
     , rrKind
     , rrRoleName
@@ -643,6 +657,14 @@
     , domDomainName
     , domIsPrimary
 
+    -- * CalendarResources
+    , CalendarResources
+    , calendarResources
+    , crsEtag
+    , crsNextPageToken
+    , crsKind
+    , crsItems
+
     -- * ChromeosDevicesListOrderBy
     , ChromeosDevicesListOrderBy (..)
 
@@ -732,107 +754,115 @@
 import           Network.Google.Prelude
 
 -- | Default request referring to version 'directory_v1' of the Admin Directory API. This contains the host and root path used as a starting point for constructing service requests.
-directoryService :: Service
+directoryService :: ServiceConfig
 directoryService
   = defaultService (ServiceId "admin:directory_v1")
       "www.googleapis.com"
 
 -- | View delegated admin roles for your domain
-adminDirectoryRolemanagementReadonlyScope :: OAuthScope
-adminDirectoryRolemanagementReadonlyScope = "https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly";
+adminDirectoryRoleManagementReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly"]
+adminDirectoryRoleManagementReadOnlyScope = Proxy;
 
 -- | View groups on your domain
-adminDirectoryGroupReadonlyScope :: OAuthScope
-adminDirectoryGroupReadonlyScope = "https://www.googleapis.com/auth/admin.directory.group.readonly";
+adminDirectoryGroupReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.group.readonly"]
+adminDirectoryGroupReadOnlyScope = Proxy;
 
 -- | View your Chrome OS devices\' metadata
-adminDirectoryDeviceChromeosReadonlyScope :: OAuthScope
-adminDirectoryDeviceChromeosReadonlyScope = "https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly";
+adminDirectoryDeviceChromeosReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly"]
+adminDirectoryDeviceChromeosReadOnlyScope = Proxy;
 
 -- | View and manage your Chrome OS devices\' metadata
-adminDirectoryDeviceChromeosScope :: OAuthScope
-adminDirectoryDeviceChromeosScope = "https://www.googleapis.com/auth/admin.directory.device.chromeos";
+adminDirectoryDeviceChromeosScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.device.chromeos"]
+adminDirectoryDeviceChromeosScope = Proxy;
 
 -- | View and manage the provisioning of users on your domain
-adminDirectoryUserScope :: OAuthScope
-adminDirectoryUserScope = "https://www.googleapis.com/auth/admin.directory.user";
+adminDirectoryUserScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.user"]
+adminDirectoryUserScope = Proxy;
 
 -- | View group subscriptions on your domain
-adminDirectoryGroupMemberReadonlyScope :: OAuthScope
-adminDirectoryGroupMemberReadonlyScope = "https://www.googleapis.com/auth/admin.directory.group.member.readonly";
+adminDirectoryGroupMemberReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.group.member.readonly"]
+adminDirectoryGroupMemberReadOnlyScope = Proxy;
 
 -- | View and manage user aliases on your domain
-adminDirectoryUserAliasScope :: OAuthScope
-adminDirectoryUserAliasScope = "https://www.googleapis.com/auth/admin.directory.user.alias";
+adminDirectoryUserAliasScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.user.alias"]
+adminDirectoryUserAliasScope = Proxy;
 
+-- | View and manage the provisioning of calendar resources on your domain
+adminDirectoryResourceCalendarScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.resource.calendar"]
+adminDirectoryResourceCalendarScope = Proxy;
+
 -- | Manage your mobile devices by performing administrative tasks
-adminDirectoryDeviceMobileActionScope :: OAuthScope
-adminDirectoryDeviceMobileActionScope = "https://www.googleapis.com/auth/admin.directory.device.mobile.action";
+adminDirectoryDeviceMobileActionScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.device.mobile.action"]
+adminDirectoryDeviceMobileActionScope = Proxy;
 
+-- | View calendar resources on your domain
+adminDirectoryResourceCalendarReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly"]
+adminDirectoryResourceCalendarReadOnlyScope = Proxy;
+
 -- | View domains related to your customers
-adminDirectoryDomainReadonlyScope :: OAuthScope
-adminDirectoryDomainReadonlyScope = "https://www.googleapis.com/auth/admin.directory.domain.readonly";
+adminDirectoryDomainReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.domain.readonly"]
+adminDirectoryDomainReadOnlyScope = Proxy;
 
 -- | View and manage the provisioning of user schemas on your domain
-adminDirectoryUserschemaScope :: OAuthScope
-adminDirectoryUserschemaScope = "https://www.googleapis.com/auth/admin.directory.userschema";
+adminDirectoryUserschemaScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.userschema"]
+adminDirectoryUserschemaScope = Proxy;
 
 -- | View user schemas on your domain
-adminDirectoryUserschemaReadonlyScope :: OAuthScope
-adminDirectoryUserschemaReadonlyScope = "https://www.googleapis.com/auth/admin.directory.userschema.readonly";
+adminDirectoryUserschemaReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.userschema.readonly"]
+adminDirectoryUserschemaReadOnlyScope = Proxy;
 
 -- | View and manage the provisioning of domains for your customers
-adminDirectoryDomainScope :: OAuthScope
-adminDirectoryDomainScope = "https://www.googleapis.com/auth/admin.directory.domain";
+adminDirectoryDomainScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.domain"]
+adminDirectoryDomainScope = Proxy;
 
 -- | Manage delegated admin roles for your domain
-adminDirectoryRolemanagementScope :: OAuthScope
-adminDirectoryRolemanagementScope = "https://www.googleapis.com/auth/admin.directory.rolemanagement";
+adminDirectoryRoleManagementScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.rolemanagement"]
+adminDirectoryRoleManagementScope = Proxy;
 
 -- | View and manage the provisioning of groups on your domain
-adminDirectoryGroupScope :: OAuthScope
-adminDirectoryGroupScope = "https://www.googleapis.com/auth/admin.directory.group";
+adminDirectoryGroupScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.group"]
+adminDirectoryGroupScope = Proxy;
 
 -- | View organization units on your domain
-adminDirectoryOrgunitReadonlyScope :: OAuthScope
-adminDirectoryOrgunitReadonlyScope = "https://www.googleapis.com/auth/admin.directory.orgunit.readonly";
+adminDirectoryOrgUnitReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.orgunit.readonly"]
+adminDirectoryOrgUnitReadOnlyScope = Proxy;
 
 -- | View and manage customer related information
-adminDirectoryCustomerScope :: OAuthScope
-adminDirectoryCustomerScope = "https://www.googleapis.com/auth/admin.directory.customer";
+adminDirectoryCustomerScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.customer"]
+adminDirectoryCustomerScope = Proxy;
 
 -- | View customer related information
-adminDirectoryCustomerReadonlyScope :: OAuthScope
-adminDirectoryCustomerReadonlyScope = "https://www.googleapis.com/auth/admin.directory.customer.readonly";
+adminDirectoryCustomerReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.customer.readonly"]
+adminDirectoryCustomerReadOnlyScope = Proxy;
 
 -- | View and manage organization units on your domain
-adminDirectoryOrgunitScope :: OAuthScope
-adminDirectoryOrgunitScope = "https://www.googleapis.com/auth/admin.directory.orgunit";
+adminDirectoryOrgUnitScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.orgunit"]
+adminDirectoryOrgUnitScope = Proxy;
 
 -- | View users on your domain
-adminDirectoryUserReadonlyScope :: OAuthScope
-adminDirectoryUserReadonlyScope = "https://www.googleapis.com/auth/admin.directory.user.readonly";
+adminDirectoryUserReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.user.readonly"]
+adminDirectoryUserReadOnlyScope = Proxy;
 
 -- | View user aliases on your domain
-adminDirectoryUserAliasReadonlyScope :: OAuthScope
-adminDirectoryUserAliasReadonlyScope = "https://www.googleapis.com/auth/admin.directory.user.alias.readonly";
+adminDirectoryUserAliasReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.user.alias.readonly"]
+adminDirectoryUserAliasReadOnlyScope = Proxy;
 
 -- | Manage data access permissions for users on your domain
-adminDirectoryUserSecurityScope :: OAuthScope
-adminDirectoryUserSecurityScope = "https://www.googleapis.com/auth/admin.directory.user.security";
+adminDirectoryUserSecurityScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.user.security"]
+adminDirectoryUserSecurityScope = Proxy;
 
 -- | View and manage group subscriptions on your domain
-adminDirectoryGroupMemberScope :: OAuthScope
-adminDirectoryGroupMemberScope = "https://www.googleapis.com/auth/admin.directory.group.member";
+adminDirectoryGroupMemberScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.group.member"]
+adminDirectoryGroupMemberScope = Proxy;
 
 -- | View and manage notifications received on your domain
-adminDirectoryNotificationsScope :: OAuthScope
-adminDirectoryNotificationsScope = "https://www.googleapis.com/auth/admin.directory.notifications";
+adminDirectoryNotificationsScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.notifications"]
+adminDirectoryNotificationsScope = Proxy;
 
 -- | View and manage your mobile devices\' metadata
-adminDirectoryDeviceMobileScope :: OAuthScope
-adminDirectoryDeviceMobileScope = "https://www.googleapis.com/auth/admin.directory.device.mobile";
+adminDirectoryDeviceMobileScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.device.mobile"]
+adminDirectoryDeviceMobileScope = Proxy;
 
 -- | View your mobile devices\' metadata
-adminDirectoryDeviceMobileReadonlyScope :: OAuthScope
-adminDirectoryDeviceMobileReadonlyScope = "https://www.googleapis.com/auth/admin.directory.device.mobile.readonly";
+adminDirectoryDeviceMobileReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.device.mobile.readonly"]
+adminDirectoryDeviceMobileReadOnlyScope = Proxy;
diff --git a/gen/Network/Google/Directory/Types/Product.hs b/gen/Network/Google/Directory/Types/Product.hs
--- a/gen/Network/Google/Directory/Types/Product.hs
+++ b/gen/Network/Google/Directory/Types/Product.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.Google.Directory.Types.Product
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -23,7 +23,7 @@
 -- | JSON template for verification codes in Directory API.
 --
 -- /See:/ 'verificationCode' smart constructor.
-data VerificationCode = VerificationCode
+data VerificationCode = VerificationCode'
     { _vcVerificationCode :: !(Maybe Text)
     , _vcEtag             :: !(Maybe Text)
     , _vcKind             :: !Text
@@ -44,7 +44,7 @@
 verificationCode
     :: VerificationCode
 verificationCode =
-    VerificationCode
+    VerificationCode'
     { _vcVerificationCode = Nothing
     , _vcEtag = Nothing
     , _vcKind = "admin#directory#verificationCode"
@@ -75,13 +75,13 @@
         parseJSON
           = withObject "VerificationCode"
               (\ o ->
-                 VerificationCode <$>
+                 VerificationCode' <$>
                    (o .:? "verificationCode") <*> (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#verificationCode")
                      <*> (o .:? "userId"))
 
 instance ToJSON VerificationCode where
-        toJSON VerificationCode{..}
+        toJSON VerificationCode'{..}
           = object
               (catMaybes
                  [("verificationCode" .=) <$> _vcVerificationCode,
@@ -91,7 +91,7 @@
 -- | JSON template for Org Unit resource in Directory API.
 --
 -- /See:/ 'orgUnit' smart constructor.
-data OrgUnit = OrgUnit
+data OrgUnit = OrgUnit'
     { _ouEtag              :: !(Maybe Text)
     , _ouParentOrgUnitPath :: !(Maybe Text)
     , _ouKind              :: !Text
@@ -127,7 +127,7 @@
 orgUnit
     :: OrgUnit
 orgUnit =
-    OrgUnit
+    OrgUnit'
     { _ouEtag = Nothing
     , _ouParentOrgUnitPath = Nothing
     , _ouKind = "admin#directory#orgUnit"
@@ -190,7 +190,7 @@
         parseJSON
           = withObject "OrgUnit"
               (\ o ->
-                 OrgUnit <$>
+                 OrgUnit' <$>
                    (o .:? "etag") <*> (o .:? "parentOrgUnitPath") <*>
                      (o .:? "kind" .!= "admin#directory#orgUnit")
                      <*> (o .:? "orgUnitPath")
@@ -201,7 +201,7 @@
                      <*> (o .:? "orgUnitId"))
 
 instance ToJSON OrgUnit where
-        toJSON OrgUnit{..}
+        toJSON OrgUnit'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _ouEtag,
@@ -218,7 +218,7 @@
 -- Directory API.
 --
 -- /See:/ 'userMakeAdmin' smart constructor.
-newtype UserMakeAdmin = UserMakeAdmin
+newtype UserMakeAdmin = UserMakeAdmin'
     { _umaStatus :: Maybe Bool
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -230,7 +230,7 @@
 userMakeAdmin
     :: UserMakeAdmin
 userMakeAdmin =
-    UserMakeAdmin
+    UserMakeAdmin'
     { _umaStatus = Nothing
     }
 
@@ -242,16 +242,16 @@
 instance FromJSON UserMakeAdmin where
         parseJSON
           = withObject "UserMakeAdmin"
-              (\ o -> UserMakeAdmin <$> (o .:? "status"))
+              (\ o -> UserMakeAdmin' <$> (o .:? "status"))
 
 instance ToJSON UserMakeAdmin where
-        toJSON UserMakeAdmin{..}
+        toJSON UserMakeAdmin'{..}
           = object (catMaybes [("status" .=) <$> _umaStatus])
 
 -- | JSON template for About (notes) of a user in Directory API.
 --
 -- /See:/ 'userAbout' smart constructor.
-data UserAbout = UserAbout
+data UserAbout = UserAbout'
     { _uaValue       :: !(Maybe Text)
     , _uaContentType :: !(Maybe Text)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -266,7 +266,7 @@
 userAbout
     :: UserAbout
 userAbout =
-    UserAbout
+    UserAbout'
     { _uaValue = Nothing
     , _uaContentType = Nothing
     }
@@ -287,11 +287,11 @@
         parseJSON
           = withObject "UserAbout"
               (\ o ->
-                 UserAbout <$>
+                 UserAbout' <$>
                    (o .:? "value") <*> (o .:? "contentType"))
 
 instance ToJSON UserAbout where
-        toJSON UserAbout{..}
+        toJSON UserAbout'{..}
           = object
               (catMaybes
                  [("value" .=) <$> _uaValue,
@@ -300,7 +300,7 @@
 -- | JSON response template for List privileges operation in Directory API.
 --
 -- /See:/ 'privileges' smart constructor.
-data Privileges = Privileges
+data Privileges = Privileges'
     { _pEtag  :: !(Maybe Text)
     , _pKind  :: !Text
     , _pItems :: !(Maybe [Privilege])
@@ -318,7 +318,7 @@
 privileges
     :: Privileges
 privileges =
-    Privileges
+    Privileges'
     { _pEtag = Nothing
     , _pKind = "admin#directory#privileges"
     , _pItems = Nothing
@@ -342,13 +342,13 @@
         parseJSON
           = withObject "Privileges"
               (\ o ->
-                 Privileges <$>
+                 Privileges' <$>
                    (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#privileges")
                      <*> (o .:? "items" .!= mempty))
 
 instance ToJSON Privileges where
-        toJSON Privileges{..}
+        toJSON Privileges'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _pEtag, Just ("kind" .= _pKind),
@@ -357,7 +357,7 @@
 -- | JSON response template for List Groups operation in Directory API.
 --
 -- /See:/ 'groups' smart constructor.
-data Groups = Groups
+data Groups = Groups'
     { _gGroups        :: !(Maybe [Group])
     , _gEtag          :: !(Maybe Text)
     , _gNextPageToken :: !(Maybe Text)
@@ -378,7 +378,7 @@
 groups
     :: Groups
 groups =
-    Groups
+    Groups'
     { _gGroups = Nothing
     , _gEtag = Nothing
     , _gNextPageToken = Nothing
@@ -409,13 +409,13 @@
         parseJSON
           = withObject "Groups"
               (\ o ->
-                 Groups <$>
+                 Groups' <$>
                    (o .:? "groups" .!= mempty) <*> (o .:? "etag") <*>
                      (o .:? "nextPageToken")
                      <*> (o .:? "kind" .!= "admin#directory#groups"))
 
 instance ToJSON Groups where
-        toJSON Groups{..}
+        toJSON Groups'{..}
           = object
               (catMaybes
                  [("groups" .=) <$> _gGroups, ("etag" .=) <$> _gEtag,
@@ -426,7 +426,7 @@
 -- API.
 --
 -- /See:/ 'roleAssignments' smart constructor.
-data RoleAssignments = RoleAssignments
+data RoleAssignments = RoleAssignments'
     { _raEtag          :: !(Maybe Text)
     , _raNextPageToken :: !(Maybe Text)
     , _raKind          :: !Text
@@ -447,7 +447,7 @@
 roleAssignments
     :: RoleAssignments
 roleAssignments =
-    RoleAssignments
+    RoleAssignments'
     { _raEtag = Nothing
     , _raNextPageToken = Nothing
     , _raKind = "admin#directory#roleAssignments"
@@ -478,13 +478,13 @@
         parseJSON
           = withObject "RoleAssignments"
               (\ o ->
-                 RoleAssignments <$>
+                 RoleAssignments' <$>
                    (o .:? "etag") <*> (o .:? "nextPageToken") <*>
                      (o .:? "kind" .!= "admin#directory#roleAssignments")
                      <*> (o .:? "items" .!= mempty))
 
 instance ToJSON RoleAssignments where
-        toJSON RoleAssignments{..}
+        toJSON RoleAssignments'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _raEtag,
@@ -494,7 +494,7 @@
 -- | JSON template for privilege resource in Directory API.
 --
 -- /See:/ 'privilege' smart constructor.
-data Privilege = Privilege
+data Privilege = Privilege'
     { _priEtag            :: !(Maybe Text)
     , _priIsOuScopable    :: !(Maybe Bool)
     , _priKind            :: !Text
@@ -524,7 +524,7 @@
 privilege
     :: Privilege
 privilege =
-    Privilege
+    Privilege'
     { _priEtag = Nothing
     , _priIsOuScopable = Nothing
     , _priKind = "admin#directory#privilege"
@@ -579,7 +579,7 @@
         parseJSON
           = withObject "Privilege"
               (\ o ->
-                 Privilege <$>
+                 Privilege' <$>
                    (o .:? "etag") <*> (o .:? "isOuScopable") <*>
                      (o .:? "kind" .!= "admin#directory#privilege")
                      <*> (o .:? "serviceName")
@@ -588,7 +588,7 @@
                      <*> (o .:? "childPrivileges" .!= mempty))
 
 instance ToJSON Privilege where
-        toJSON Privilege{..}
+        toJSON Privilege'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _priEtag,
@@ -602,7 +602,7 @@
 -- | JSON response template for List roles operation in Directory API.
 --
 -- /See:/ 'roles' smart constructor.
-data Roles = Roles
+data Roles = Roles'
     { _rEtag          :: !(Maybe Text)
     , _rNextPageToken :: !(Maybe Text)
     , _rKind          :: !Text
@@ -623,7 +623,7 @@
 roles
     :: Roles
 roles =
-    Roles
+    Roles'
     { _rEtag = Nothing
     , _rNextPageToken = Nothing
     , _rKind = "admin#directory#roles"
@@ -653,13 +653,13 @@
         parseJSON
           = withObject "Roles"
               (\ o ->
-                 Roles <$>
+                 Roles' <$>
                    (o .:? "etag") <*> (o .:? "nextPageToken") <*>
                      (o .:? "kind" .!= "admin#directory#roles")
                      <*> (o .:? "items" .!= mempty))
 
 instance ToJSON Roles where
-        toJSON Roles{..}
+        toJSON Roles'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _rEtag,
@@ -669,7 +669,7 @@
 -- | JSON template for address.
 --
 -- /See:/ 'userAddress' smart constructor.
-data UserAddress = UserAddress
+data UserAddress = UserAddress'
     { _uaStreetAddress      :: !(Maybe Text)
     , _uaPoBox              :: !(Maybe Text)
     , _uaCountry            :: !(Maybe Text)
@@ -717,7 +717,7 @@
 userAddress
     :: UserAddress
 userAddress =
-    UserAddress
+    UserAddress'
     { _uaStreetAddress = Nothing
     , _uaPoBox = Nothing
     , _uaCountry = Nothing
@@ -810,7 +810,7 @@
         parseJSON
           = withObject "UserAddress"
               (\ o ->
-                 UserAddress <$>
+                 UserAddress' <$>
                    (o .:? "streetAddress") <*> (o .:? "poBox") <*>
                      (o .:? "country")
                      <*> (o .:? "postalCode")
@@ -825,7 +825,7 @@
                      <*> (o .:? "sourceIsStructured"))
 
 instance ToJSON UserAddress where
-        toJSON UserAddress{..}
+        toJSON UserAddress'{..}
           = object
               (catMaybes
                  [("streetAddress" .=) <$> _uaStreetAddress,
@@ -844,7 +844,7 @@
 -- | JSON template for postal address of a customer.
 --
 -- /See:/ 'customerPostalAddress' smart constructor.
-data CustomerPostalAddress = CustomerPostalAddress
+data CustomerPostalAddress = CustomerPostalAddress'
     { _cpaOrganizationName :: !(Maybe Text)
     , _cpaPostalCode       :: !(Maybe Text)
     , _cpaAddressLine1     :: !(Maybe Text)
@@ -880,7 +880,7 @@
 customerPostalAddress
     :: CustomerPostalAddress
 customerPostalAddress =
-    CustomerPostalAddress
+    CustomerPostalAddress'
     { _cpaOrganizationName = Nothing
     , _cpaPostalCode = Nothing
     , _cpaAddressLine1 = Nothing
@@ -954,7 +954,7 @@
         parseJSON
           = withObject "CustomerPostalAddress"
               (\ o ->
-                 CustomerPostalAddress <$>
+                 CustomerPostalAddress' <$>
                    (o .:? "organizationName") <*> (o .:? "postalCode")
                      <*> (o .:? "addressLine1")
                      <*> (o .:? "locality")
@@ -965,7 +965,7 @@
                      <*> (o .:? "addressLine3"))
 
 instance ToJSON CustomerPostalAddress where
-        toJSON CustomerPostalAddress{..}
+        toJSON CustomerPostalAddress'{..}
           = object
               (catMaybes
                  [("organizationName" .=) <$> _cpaOrganizationName,
@@ -981,7 +981,7 @@
 -- | JSON template for roleAssignment resource in Directory API.
 --
 -- /See:/ 'roleAssignment' smart constructor.
-data RoleAssignment = RoleAssignment
+data RoleAssignment = RoleAssignment'
     { _rolEtag             :: !(Maybe Text)
     , _rolScopeType        :: !(Maybe Text)
     , _rolKind             :: !Text
@@ -1011,7 +1011,7 @@
 roleAssignment
     :: RoleAssignment
 roleAssignment =
-    RoleAssignment
+    RoleAssignment'
     { _rolEtag = Nothing
     , _rolScopeType = Nothing
     , _rolKind = "admin#directory#roleAssignment"
@@ -1065,7 +1065,7 @@
         parseJSON
           = withObject "RoleAssignment"
               (\ o ->
-                 RoleAssignment <$>
+                 RoleAssignment' <$>
                    (o .:? "etag") <*> (o .:? "scopeType") <*>
                      (o .:? "kind" .!= "admin#directory#roleAssignment")
                      <*> (o .:? "assignedTo")
@@ -1074,7 +1074,7 @@
                      <*> (o .:? "orgUnitId"))
 
 instance ToJSON RoleAssignment where
-        toJSON RoleAssignment{..}
+        toJSON RoleAssignment'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _rolEtag,
@@ -1088,7 +1088,7 @@
 -- | JSON template for Group resource in Directory API.
 --
 -- /See:/ 'group'' smart constructor.
-data Group = Group
+data Group = Group'
     { _groEmail              :: !(Maybe Text)
     , _groEtag               :: !(Maybe Text)
     , _groDirectMembersCount :: !(Maybe (Textual Int64))
@@ -1127,7 +1127,7 @@
 group'
     :: Group
 group' =
-    Group
+    Group'
     { _groEmail = Nothing
     , _groEtag = Nothing
     , _groDirectMembersCount = Nothing
@@ -1198,7 +1198,7 @@
         parseJSON
           = withObject "Group"
               (\ o ->
-                 Group <$>
+                 Group' <$>
                    (o .:? "email") <*> (o .:? "etag") <*>
                      (o .:? "directMembersCount")
                      <*> (o .:? "kind" .!= "admin#directory#group")
@@ -1210,7 +1210,7 @@
                      <*> (o .:? "description"))
 
 instance ToJSON Group where
-        toJSON Group{..}
+        toJSON Group'{..}
           = object
               (catMaybes
                  [("email" .=) <$> _groEmail,
@@ -1227,7 +1227,7 @@
 -- | JSON template for Chrome Os Device resource in Directory API.
 --
 -- /See:/ 'chromeOSDevice' smart constructor.
-data ChromeOSDevice = ChromeOSDevice
+data ChromeOSDevice = ChromeOSDevice'
     { _codStatus             :: !(Maybe Text)
     , _codEtag               :: !(Maybe Text)
     , _codAnnotatedUser      :: !(Maybe Text)
@@ -1311,7 +1311,7 @@
 chromeOSDevice
     :: ChromeOSDevice
 chromeOSDevice =
-    ChromeOSDevice
+    ChromeOSDevice'
     { _codStatus = Nothing
     , _codEtag = Nothing
     , _codAnnotatedUser = Nothing
@@ -1488,7 +1488,7 @@
         parseJSON
           = withObject "ChromeOSDevice"
               (\ o ->
-                 ChromeOSDevice <$>
+                 ChromeOSDevice' <$>
                    (o .:? "status") <*> (o .:? "etag") <*>
                      (o .:? "annotatedUser")
                      <*> (o .:? "platformVersion")
@@ -1516,7 +1516,7 @@
                      <*> (o .:? "osVersion"))
 
 instance ToJSON ChromeOSDevice where
-        toJSON ChromeOSDevice{..}
+        toJSON ChromeOSDevice'{..}
           = object
               (catMaybes
                  [("status" .=) <$> _codStatus,
@@ -1548,7 +1548,7 @@
 -- | JSON response template for List Users operation in Apps Directory API.
 --
 -- /See:/ 'users' smart constructor.
-data Users = Users
+data Users = Users'
     { _uEtag          :: !(Maybe Text)
     , _uNextPageToken :: !(Maybe Text)
     , _uUsers         :: !(Maybe [User])
@@ -1572,7 +1572,7 @@
 users
     :: Users
 users =
-    Users
+    Users'
     { _uEtag = Nothing
     , _uNextPageToken = Nothing
     , _uUsers = Nothing
@@ -1610,14 +1610,14 @@
         parseJSON
           = withObject "Users"
               (\ o ->
-                 Users <$>
+                 Users' <$>
                    (o .:? "etag") <*> (o .:? "nextPageToken") <*>
                      (o .:? "users" .!= mempty)
                      <*> (o .:? "kind" .!= "admin#directory#users")
                      <*> (o .:? "trigger_event"))
 
 instance ToJSON Users where
-        toJSON Users{..}
+        toJSON Users'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _uEtag,
@@ -1628,7 +1628,7 @@
 -- | The template that returns individual ASP (Access Code) data.
 --
 -- /See:/ 'asp' smart constructor.
-data Asp = Asp
+data Asp = Asp'
     { _aCreationTime :: !(Maybe (Textual Int64))
     , _aEtag         :: !(Maybe Text)
     , _aCodeId       :: !(Maybe (Textual Int32))
@@ -1658,7 +1658,7 @@
 asp
     :: Asp
 asp =
-    Asp
+    Asp'
     { _aCreationTime = Nothing
     , _aEtag = Nothing
     , _aCodeId = Nothing
@@ -1709,7 +1709,7 @@
         parseJSON
           = withObject "Asp"
               (\ o ->
-                 Asp <$>
+                 Asp' <$>
                    (o .:? "creationTime") <*> (o .:? "etag") <*>
                      (o .:? "codeId")
                      <*> (o .:? "kind" .!= "admin#directory#asp")
@@ -1718,7 +1718,7 @@
                      <*> (o .:? "userKey"))
 
 instance ToJSON Asp where
-        toJSON Asp{..}
+        toJSON Asp'{..}
           = object
               (catMaybes
                  [("creationTime" .=) <$> _aCreationTime,
@@ -1730,7 +1730,7 @@
 -- | JSON response template for List Schema operation in Directory API.
 --
 -- /See:/ 'schemas' smart constructor.
-data Schemas = Schemas
+data Schemas = Schemas'
     { _sEtag    :: !(Maybe Text)
     , _sSchemas :: !(Maybe [Schema])
     , _sKind    :: !Text
@@ -1748,7 +1748,7 @@
 schemas
     :: Schemas
 schemas =
-    Schemas
+    Schemas'
     { _sEtag = Nothing
     , _sSchemas = Nothing
     , _sKind = "admin#directory#schemas"
@@ -1773,12 +1773,12 @@
         parseJSON
           = withObject "Schemas"
               (\ o ->
-                 Schemas <$>
+                 Schemas' <$>
                    (o .:? "etag") <*> (o .:? "schemas" .!= mempty) <*>
                      (o .:? "kind" .!= "admin#directory#schemas"))
 
 instance ToJSON Schemas where
-        toJSON Schemas{..}
+        toJSON Schemas'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _sEtag,
@@ -1788,7 +1788,7 @@
 -- | Template for a notification resource.
 --
 -- /See:/ 'notification' smart constructor.
-data Notification = Notification
+data Notification = Notification'
     { _nSubject        :: !(Maybe Text)
     , _nEtag           :: !(Maybe Text)
     , _nKind           :: !Text
@@ -1821,7 +1821,7 @@
 notification
     :: Notification
 notification =
-    Notification
+    Notification'
     { _nSubject = Nothing
     , _nEtag = Nothing
     , _nKind = "admin#directory#notification"
@@ -1873,7 +1873,7 @@
         parseJSON
           = withObject "Notification"
               (\ o ->
-                 Notification <$>
+                 Notification' <$>
                    (o .:? "subject") <*> (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#notification")
                      <*> (o .:? "body")
@@ -1883,7 +1883,7 @@
                      <*> (o .:? "sendTime"))
 
 instance ToJSON Notification where
-        toJSON Notification{..}
+        toJSON Notification'{..}
           = object
               (catMaybes
                  [("subject" .=) <$> _nSubject,
@@ -1897,7 +1897,7 @@
 -- | JSON template for instant messenger of an user.
 --
 -- /See:/ 'userIm' smart constructor.
-data UserIm = UserIm
+data UserIm = UserIm'
     { _uiIm             :: !(Maybe Text)
     , _uiProtocol       :: !(Maybe Text)
     , _uiPrimary        :: !(Maybe Bool)
@@ -1924,7 +1924,7 @@
 userIm
     :: UserIm
 userIm =
-    UserIm
+    UserIm'
     { _uiIm = Nothing
     , _uiProtocol = Nothing
     , _uiPrimary = Nothing
@@ -1973,7 +1973,7 @@
         parseJSON
           = withObject "UserIm"
               (\ o ->
-                 UserIm <$>
+                 UserIm' <$>
                    (o .:? "im") <*> (o .:? "protocol") <*>
                      (o .:? "primary")
                      <*> (o .:? "customProtocol")
@@ -1981,7 +1981,7 @@
                      <*> (o .:? "customType"))
 
 instance ToJSON UserIm where
-        toJSON UserIm{..}
+        toJSON UserIm'{..}
           = object
               (catMaybes
                  [("im" .=) <$> _uiIm,
@@ -1994,7 +1994,7 @@
 -- | JSON response template for List tokens operation in Directory API.
 --
 -- /See:/ 'tokens' smart constructor.
-data Tokens = Tokens
+data Tokens = Tokens'
     { _tEtag  :: !(Maybe Text)
     , _tKind  :: !Text
     , _tItems :: !(Maybe [Token])
@@ -2012,7 +2012,7 @@
 tokens
     :: Tokens
 tokens =
-    Tokens
+    Tokens'
     { _tEtag = Nothing
     , _tKind = "admin#directory#tokenList"
     , _tItems = Nothing
@@ -2036,13 +2036,13 @@
         parseJSON
           = withObject "Tokens"
               (\ o ->
-                 Tokens <$>
+                 Tokens' <$>
                    (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#tokenList")
                      <*> (o .:? "items" .!= mempty))
 
 instance ToJSON Tokens where
-        toJSON Tokens{..}
+        toJSON Tokens'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _tEtag, Just ("kind" .= _tKind),
@@ -2051,7 +2051,7 @@
 -- | Custom fields of the user.
 --
 -- /See:/ 'userCustomSchemas' smart constructor.
-newtype UserCustomSchemas = UserCustomSchemas
+newtype UserCustomSchemas = UserCustomSchemas'
     { _ucsAddtional :: HashMap Text UserCustomProperties
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -2064,7 +2064,7 @@
     :: HashMap Text UserCustomProperties -- ^ 'ucsAddtional'
     -> UserCustomSchemas
 userCustomSchemas pUcsAddtional_ =
-    UserCustomSchemas
+    UserCustomSchemas'
     { _ucsAddtional = _Coerce # pUcsAddtional_
     }
 
@@ -2076,7 +2076,7 @@
 instance FromJSON UserCustomSchemas where
         parseJSON
           = withObject "UserCustomSchemas"
-              (\ o -> UserCustomSchemas <$> (parseJSONObject o))
+              (\ o -> UserCustomSchemas' <$> (parseJSONObject o))
 
 instance ToJSON UserCustomSchemas where
         toJSON = toJSON . _ucsAddtional
@@ -2084,7 +2084,7 @@
 -- | JSON response template to list domain aliases in Directory API.
 --
 -- /See:/ 'domainAliases' smart constructor.
-data DomainAliases = DomainAliases
+data DomainAliases = DomainAliases'
     { _daEtag          :: !(Maybe Text)
     , _daKind          :: !Text
     , _daDomainAliases :: !(Maybe [DomainAlias])
@@ -2102,7 +2102,7 @@
 domainAliases
     :: DomainAliases
 domainAliases =
-    DomainAliases
+    DomainAliases'
     { _daEtag = Nothing
     , _daKind = "admin#directory#domainAliases"
     , _daDomainAliases = Nothing
@@ -2128,13 +2128,13 @@
         parseJSON
           = withObject "DomainAliases"
               (\ o ->
-                 DomainAliases <$>
+                 DomainAliases' <$>
                    (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#domainAliases")
                      <*> (o .:? "domainAliases" .!= mempty))
 
 instance ToJSON DomainAliases where
-        toJSON DomainAliases{..}
+        toJSON DomainAliases'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _daEtag, Just ("kind" .= _daKind),
@@ -2143,10 +2143,10 @@
 -- | JSON response template to list aliases in Directory API.
 --
 -- /See:/ 'aliases' smart constructor.
-data Aliases = Aliases
+data Aliases = Aliases'
     { _aliEtag    :: !(Maybe Text)
     , _aliKind    :: !Text
-    , _aliAliases :: !(Maybe [Alias])
+    , _aliAliases :: !(Maybe [JSONValue])
     } deriving (Eq,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'Aliases' with the minimum fields required to make a request.
@@ -2161,7 +2161,7 @@
 aliases
     :: Aliases
 aliases =
-    Aliases
+    Aliases'
     { _aliEtag = Nothing
     , _aliKind = "admin#directory#aliases"
     , _aliAliases = Nothing
@@ -2176,7 +2176,7 @@
 aliKind = lens _aliKind (\ s a -> s{_aliKind = a})
 
 -- | List of alias objects.
-aliAliases :: Lens' Aliases [Alias]
+aliAliases :: Lens' Aliases [JSONValue]
 aliAliases
   = lens _aliAliases (\ s a -> s{_aliAliases = a}) .
       _Default
@@ -2186,22 +2186,132 @@
         parseJSON
           = withObject "Aliases"
               (\ o ->
-                 Aliases <$>
+                 Aliases' <$>
                    (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#aliases")
                      <*> (o .:? "aliases" .!= mempty))
 
 instance ToJSON Aliases where
-        toJSON Aliases{..}
+        toJSON Aliases'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _aliEtag, Just ("kind" .= _aliKind),
                   ("aliases" .=) <$> _aliAliases])
 
+-- | JSON template for Calendar Resource object in Directory API.
+--
+-- /See:/ 'calendarResource' smart constructor.
+data CalendarResource = CalendarResource'
+    { _crEtags               :: !(Maybe Text)
+    , _crResourceId          :: !(Maybe Text)
+    , _crResourceType        :: !(Maybe Text)
+    , _crResourceName        :: !(Maybe Text)
+    , _crKind                :: !Text
+    , _crResourceEmail       :: !(Maybe Text)
+    , _crResourceDescription :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CalendarResource' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'crEtags'
+--
+-- * 'crResourceId'
+--
+-- * 'crResourceType'
+--
+-- * 'crResourceName'
+--
+-- * 'crKind'
+--
+-- * 'crResourceEmail'
+--
+-- * 'crResourceDescription'
+calendarResource
+    :: CalendarResource
+calendarResource =
+    CalendarResource'
+    { _crEtags = Nothing
+    , _crResourceId = Nothing
+    , _crResourceType = Nothing
+    , _crResourceName = Nothing
+    , _crKind = "admin#directory#resources#calendars#CalendarResource"
+    , _crResourceEmail = Nothing
+    , _crResourceDescription = Nothing
+    }
+
+-- | ETag of the resource.
+crEtags :: Lens' CalendarResource (Maybe Text)
+crEtags = lens _crEtags (\ s a -> s{_crEtags = a})
+
+-- | The unique ID for the calendar resource.
+crResourceId :: Lens' CalendarResource (Maybe Text)
+crResourceId
+  = lens _crResourceId (\ s a -> s{_crResourceId = a})
+
+-- | The type of the calendar resource. Used for grouping resources in the
+-- calendar user interface.
+crResourceType :: Lens' CalendarResource (Maybe Text)
+crResourceType
+  = lens _crResourceType
+      (\ s a -> s{_crResourceType = a})
+
+-- | The name of the calendar resource. For example, Training Room 1A
+crResourceName :: Lens' CalendarResource (Maybe Text)
+crResourceName
+  = lens _crResourceName
+      (\ s a -> s{_crResourceName = a})
+
+-- | The type of the resource. For calendar resources, the value is
+-- admin#directory#resources#calendars#CalendarResource.
+crKind :: Lens' CalendarResource Text
+crKind = lens _crKind (\ s a -> s{_crKind = a})
+
+-- | The read-only email ID for the calendar resource. Generated as part of
+-- creating a new calendar resource.
+crResourceEmail :: Lens' CalendarResource (Maybe Text)
+crResourceEmail
+  = lens _crResourceEmail
+      (\ s a -> s{_crResourceEmail = a})
+
+-- | The brief description of the calendar resource.
+crResourceDescription :: Lens' CalendarResource (Maybe Text)
+crResourceDescription
+  = lens _crResourceDescription
+      (\ s a -> s{_crResourceDescription = a})
+
+instance FromJSON CalendarResource where
+        parseJSON
+          = withObject "CalendarResource"
+              (\ o ->
+                 CalendarResource' <$>
+                   (o .:? "etags") <*> (o .:? "resourceId") <*>
+                     (o .:? "resourceType")
+                     <*> (o .:? "resourceName")
+                     <*>
+                     (o .:? "kind" .!=
+                        "admin#directory#resources#calendars#CalendarResource")
+                     <*> (o .:? "resourceEmail")
+                     <*> (o .:? "resourceDescription"))
+
+instance ToJSON CalendarResource where
+        toJSON CalendarResource'{..}
+          = object
+              (catMaybes
+                 [("etags" .=) <$> _crEtags,
+                  ("resourceId" .=) <$> _crResourceId,
+                  ("resourceType" .=) <$> _crResourceType,
+                  ("resourceName" .=) <$> _crResourceName,
+                  Just ("kind" .= _crKind),
+                  ("resourceEmail" .=) <$> _crResourceEmail,
+                  ("resourceDescription" .=) <$>
+                    _crResourceDescription])
+
 -- | JSON request template to undelete a user in Directory API.
 --
 -- /See:/ 'userUndelete' smart constructor.
-newtype UserUndelete = UserUndelete
+newtype UserUndelete = UserUndelete'
     { _uuOrgUnitPath :: Maybe Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -2213,7 +2323,7 @@
 userUndelete
     :: UserUndelete
 userUndelete =
-    UserUndelete
+    UserUndelete'
     { _uuOrgUnitPath = Nothing
     }
 
@@ -2226,17 +2336,17 @@
 instance FromJSON UserUndelete where
         parseJSON
           = withObject "UserUndelete"
-              (\ o -> UserUndelete <$> (o .:? "orgUnitPath"))
+              (\ o -> UserUndelete' <$> (o .:? "orgUnitPath"))
 
 instance ToJSON UserUndelete where
-        toJSON UserUndelete{..}
+        toJSON UserUndelete'{..}
           = object
               (catMaybes [("orgUnitPath" .=) <$> _uuOrgUnitPath])
 
 -- | JSON response template for List Members operation in Directory API.
 --
 -- /See:/ 'members' smart constructor.
-data Members = Members
+data Members = Members'
     { _mEtag          :: !(Maybe Text)
     , _mNextPageToken :: !(Maybe Text)
     , _mKind          :: !Text
@@ -2257,7 +2367,7 @@
 members
     :: Members
 members =
-    Members
+    Members'
     { _mEtag = Nothing
     , _mNextPageToken = Nothing
     , _mKind = "admin#directory#members"
@@ -2289,13 +2399,13 @@
         parseJSON
           = withObject "Members"
               (\ o ->
-                 Members <$>
+                 Members' <$>
                    (o .:? "etag") <*> (o .:? "nextPageToken") <*>
                      (o .:? "kind" .!= "admin#directory#members")
                      <*> (o .:? "members" .!= mempty))
 
 instance ToJSON Members where
-        toJSON Members{..}
+        toJSON Members'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _mEtag,
@@ -2306,7 +2416,7 @@
 -- | An notification channel used to watch for resource changes.
 --
 -- /See:/ 'channel' smart constructor.
-data Channel = Channel
+data Channel = Channel'
     { _cResourceURI :: !(Maybe Text)
     , _cResourceId  :: !(Maybe Text)
     , _cKind        :: !Text
@@ -2345,7 +2455,7 @@
 channel
     :: Channel
 channel =
-    Channel
+    Channel'
     { _cResourceURI = Nothing
     , _cResourceId = Nothing
     , _cKind = "api#channel"
@@ -2410,7 +2520,7 @@
         parseJSON
           = withObject "Channel"
               (\ o ->
-                 Channel <$>
+                 Channel' <$>
                    (o .:? "resourceUri") <*> (o .:? "resourceId") <*>
                      (o .:? "kind" .!= "api#channel")
                      <*> (o .:? "expiration")
@@ -2422,7 +2532,7 @@
                      <*> (o .:? "type"))
 
 instance ToJSON Channel where
-        toJSON Channel{..}
+        toJSON Channel'{..}
           = object
               (catMaybes
                  [("resourceUri" .=) <$> _cResourceURI,
@@ -2439,7 +2549,7 @@
 -- API.
 --
 -- /See:/ 'mobileDevices' smart constructor.
-data MobileDevices = MobileDevices
+data MobileDevices = MobileDevices'
     { _mdEtag          :: !(Maybe Text)
     , _mdNextPageToken :: !(Maybe Text)
     , _mdKind          :: !Text
@@ -2460,7 +2570,7 @@
 mobileDevices
     :: MobileDevices
 mobileDevices =
-    MobileDevices
+    MobileDevices'
     { _mdEtag = Nothing
     , _mdNextPageToken = Nothing
     , _mdKind = "admin#directory#mobiledevices"
@@ -2493,13 +2603,13 @@
         parseJSON
           = withObject "MobileDevices"
               (\ o ->
-                 MobileDevices <$>
+                 MobileDevices' <$>
                    (o .:? "etag") <*> (o .:? "nextPageToken") <*>
                      (o .:? "kind" .!= "admin#directory#mobiledevices")
                      <*> (o .:? "mobiledevices" .!= mempty))
 
 instance ToJSON MobileDevices where
-        toJSON MobileDevices{..}
+        toJSON MobileDevices'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _mdEtag,
@@ -2510,7 +2620,7 @@
 -- | JSON template for token resource in Directory API.
 --
 -- /See:/ 'token' smart constructor.
-data Token = Token
+data Token = Token'
     { _tokClientId    :: !(Maybe Text)
     , _tokEtag        :: !(Maybe Text)
     , _tokDisplayText :: !(Maybe Text)
@@ -2543,7 +2653,7 @@
 token
     :: Token
 token =
-    Token
+    Token'
     { _tokClientId = Nothing
     , _tokEtag = Nothing
     , _tokDisplayText = Nothing
@@ -2601,7 +2711,7 @@
         parseJSON
           = withObject "Token"
               (\ o ->
-                 Token <$>
+                 Token' <$>
                    (o .:? "clientId") <*> (o .:? "etag") <*>
                      (o .:? "displayText")
                      <*> (o .:? "kind" .!= "admin#directory#token")
@@ -2611,7 +2721,7 @@
                      <*> (o .:? "userKey"))
 
 instance ToJSON Token where
-        toJSON Token{..}
+        toJSON Token'{..}
           = object
               (catMaybes
                  [("clientId" .=) <$> _tokClientId,
@@ -2626,7 +2736,7 @@
 -- | JSON template for name of a user in Directory API.
 --
 -- /See:/ 'userName' smart constructor.
-data UserName = UserName
+data UserName = UserName'
     { _unGivenName  :: !(Maybe Text)
     , _unFullName   :: !(Maybe Text)
     , _unFamilyName :: !(Maybe Text)
@@ -2644,7 +2754,7 @@
 userName
     :: UserName
 userName =
-    UserName
+    UserName'
     { _unGivenName = Nothing
     , _unFullName = Nothing
     , _unFamilyName = Nothing
@@ -2669,12 +2779,12 @@
         parseJSON
           = withObject "UserName"
               (\ o ->
-                 UserName <$>
+                 UserName' <$>
                    (o .:? "givenName") <*> (o .:? "fullName") <*>
                      (o .:? "familyName"))
 
 instance ToJSON UserName where
-        toJSON UserName{..}
+        toJSON UserName'{..}
           = object
               (catMaybes
                  [("givenName" .=) <$> _unGivenName,
@@ -2683,7 +2793,7 @@
 
 --
 -- /See:/ 'chromeOSDeviceRecentUsersItem' smart constructor.
-data ChromeOSDeviceRecentUsersItem = ChromeOSDeviceRecentUsersItem
+data ChromeOSDeviceRecentUsersItem = ChromeOSDeviceRecentUsersItem'
     { _codruiEmail :: !(Maybe Text)
     , _codruiType  :: !(Maybe Text)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -2698,7 +2808,7 @@
 chromeOSDeviceRecentUsersItem
     :: ChromeOSDeviceRecentUsersItem
 chromeOSDeviceRecentUsersItem =
-    ChromeOSDeviceRecentUsersItem
+    ChromeOSDeviceRecentUsersItem'
     { _codruiEmail = Nothing
     , _codruiType = Nothing
     }
@@ -2717,11 +2827,11 @@
         parseJSON
           = withObject "ChromeOSDeviceRecentUsersItem"
               (\ o ->
-                 ChromeOSDeviceRecentUsersItem <$>
+                 ChromeOSDeviceRecentUsersItem' <$>
                    (o .:? "email") <*> (o .:? "type"))
 
 instance ToJSON ChromeOSDeviceRecentUsersItem where
-        toJSON ChromeOSDeviceRecentUsersItem{..}
+        toJSON ChromeOSDeviceRecentUsersItem'{..}
           = object
               (catMaybes
                  [("email" .=) <$> _codruiEmail,
@@ -2730,7 +2840,7 @@
 -- | JSON template for Domain Alias object in Directory API.
 --
 -- /See:/ 'domainAlias' smart constructor.
-data DomainAlias = DomainAlias
+data DomainAlias = DomainAlias'
     { _dCreationTime     :: !(Maybe (Textual Int64))
     , _dEtag             :: !(Maybe Text)
     , _dKind             :: !Text
@@ -2757,7 +2867,7 @@
 domainAlias
     :: DomainAlias
 domainAlias =
-    DomainAlias
+    DomainAlias'
     { _dCreationTime = Nothing
     , _dEtag = Nothing
     , _dKind = "admin#directory#domainAlias"
@@ -2803,7 +2913,7 @@
         parseJSON
           = withObject "DomainAlias"
               (\ o ->
-                 DomainAlias <$>
+                 DomainAlias' <$>
                    (o .:? "creationTime") <*> (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#domainAlias")
                      <*> (o .:? "verified")
@@ -2811,7 +2921,7 @@
                      <*> (o .:? "parentDomainName"))
 
 instance ToJSON DomainAlias where
-        toJSON DomainAlias{..}
+        toJSON DomainAlias'{..}
           = object
               (catMaybes
                  [("creationTime" .=) <$> _dCreationTime,
@@ -2823,7 +2933,7 @@
 -- | JSON template for Alias object in Directory API.
 --
 -- /See:/ 'alias' smart constructor.
-data Alias = Alias
+data Alias = Alias'
     { _aaEtag         :: !(Maybe Text)
     , _aaKind         :: !Text
     , _aaAlias        :: !(Maybe Text)
@@ -2847,7 +2957,7 @@
 alias
     :: Alias
 alias =
-    Alias
+    Alias'
     { _aaEtag = Nothing
     , _aaKind = "admin#directory#alias"
     , _aaAlias = Nothing
@@ -2881,7 +2991,7 @@
         parseJSON
           = withObject "Alias"
               (\ o ->
-                 Alias <$>
+                 Alias' <$>
                    (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#alias")
                      <*> (o .:? "alias")
@@ -2889,7 +2999,7 @@
                      <*> (o .:? "primaryEmail"))
 
 instance ToJSON Alias where
-        toJSON Alias{..}
+        toJSON Alias'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _aaEtag, Just ("kind" .= _aaKind),
@@ -2899,7 +3009,7 @@
 -- | JSON template for Schema resource in Directory API.
 --
 -- /See:/ 'schema' smart constructor.
-data Schema = Schema
+data Schema = Schema'
     { _schEtag       :: !(Maybe Text)
     , _schKind       :: !Text
     , _schSchemaName :: !(Maybe Text)
@@ -2923,7 +3033,7 @@
 schema
     :: Schema
 schema =
-    Schema
+    Schema'
     { _schEtag = Nothing
     , _schKind = "admin#directory#schema"
     , _schSchemaName = Nothing
@@ -2961,7 +3071,7 @@
         parseJSON
           = withObject "Schema"
               (\ o ->
-                 Schema <$>
+                 Schema' <$>
                    (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#schema")
                      <*> (o .:? "schemaName")
@@ -2969,7 +3079,7 @@
                      <*> (o .:? "fields" .!= mempty))
 
 instance ToJSON Schema where
-        toJSON Schema{..}
+        toJSON Schema'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _schEtag, Just ("kind" .= _schKind),
@@ -2980,7 +3090,7 @@
 -- | JSON template for User object in Directory API.
 --
 -- /See:/ 'user' smart constructor.
-data User = User
+data User = User'
     { _useCreationTime               :: !(Maybe DateTime')
     , _useLastLoginTime              :: !(Maybe DateTime')
     , _useThumbnailPhotoEtag         :: !(Maybe Text)
@@ -3094,7 +3204,7 @@
 user
     :: User
 user =
-    User
+    User'
     { _useCreationTime = Nothing
     , _useLastLoginTime = Nothing
     , _useThumbnailPhotoEtag = Nothing
@@ -3322,7 +3432,7 @@
         parseJSON
           = withObject "User"
               (\ o ->
-                 User <$>
+                 User' <$>
                    (o .:? "creationTime") <*> (o .:? "lastLoginTime")
                      <*> (o .:? "thumbnailPhotoEtag")
                      <*> (o .:? "etag")
@@ -3359,7 +3469,7 @@
                      <*> (o .:? "suspensionReason"))
 
 instance ToJSON User where
-        toJSON User{..}
+        toJSON User'{..}
           = object
               (catMaybes
                  [("creationTime" .=) <$> _useCreationTime,
@@ -3400,8 +3510,8 @@
 
 -- | JSON template for role resource in Directory API.
 --
--- /See:/ 'role' smart constructor.
-data Role = Role
+-- /See:/ 'role'' smart constructor.
+data Role = Role'
     { _rrEtag             :: !(Maybe Text)
     , _rrKind             :: !Text
     , _rrRoleName         :: !(Maybe Text)
@@ -3431,10 +3541,10 @@
 -- * 'rrIsSuperAdminRole'
 --
 -- * 'rrRolePrivileges'
-role
+role'
     :: Role
-role =
-    Role
+role' =
+    Role'
     { _rrEtag = Nothing
     , _rrKind = "admin#directory#role"
     , _rrRoleName = Nothing
@@ -3494,7 +3604,7 @@
         parseJSON
           = withObject "Role"
               (\ o ->
-                 Role <$>
+                 Role' <$>
                    (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#role")
                      <*> (o .:? "roleName")
@@ -3505,7 +3615,7 @@
                      <*> (o .:? "rolePrivileges" .!= mempty))
 
 instance ToJSON Role where
-        toJSON Role{..}
+        toJSON Role'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _rrEtag, Just ("kind" .= _rrKind),
@@ -3519,7 +3629,7 @@
 -- | JSON template for Customer Resource object in Directory API.
 --
 -- /See:/ 'customer' smart constructor.
-data Customer = Customer
+data Customer = Customer'
     { _cusEtag                 :: !(Maybe Text)
     , _cusKind                 :: !Text
     , _cusAlternateEmail       :: !(Maybe Text)
@@ -3555,7 +3665,7 @@
 customer
     :: Customer
 customer =
-    Customer
+    Customer'
     { _cusEtag = Nothing
     , _cusKind = "admin#directory#customer"
     , _cusAlternateEmail = Nothing
@@ -3621,7 +3731,7 @@
         parseJSON
           = withObject "Customer"
               (\ o ->
-                 Customer <$>
+                 Customer' <$>
                    (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#customer")
                      <*> (o .:? "alternateEmail")
@@ -3633,7 +3743,7 @@
                      <*> (o .:? "postalAddress"))
 
 instance ToJSON Customer where
-        toJSON Customer{..}
+        toJSON Customer'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _cusEtag, Just ("kind" .= _cusKind),
@@ -3648,7 +3758,7 @@
 
 --
 -- /See:/ 'mobileDeviceApplicationsItem' smart constructor.
-data MobileDeviceApplicationsItem = MobileDeviceApplicationsItem
+data MobileDeviceApplicationsItem = MobileDeviceApplicationsItem'
     { _mdaiVersionCode :: !(Maybe (Textual Int32))
     , _mdaiVersionName :: !(Maybe Text)
     , _mdaiPackageName :: !(Maybe Text)
@@ -3672,7 +3782,7 @@
 mobileDeviceApplicationsItem
     :: MobileDeviceApplicationsItem
 mobileDeviceApplicationsItem =
-    MobileDeviceApplicationsItem
+    MobileDeviceApplicationsItem'
     { _mdaiVersionCode = Nothing
     , _mdaiVersionName = Nothing
     , _mdaiPackageName = Nothing
@@ -3717,14 +3827,14 @@
         parseJSON
           = withObject "MobileDeviceApplicationsItem"
               (\ o ->
-                 MobileDeviceApplicationsItem <$>
+                 MobileDeviceApplicationsItem' <$>
                    (o .:? "versionCode") <*> (o .:? "versionName") <*>
                      (o .:? "packageName")
                      <*> (o .:? "displayName")
                      <*> (o .:? "permission" .!= mempty))
 
 instance ToJSON MobileDeviceApplicationsItem where
-        toJSON MobileDeviceApplicationsItem{..}
+        toJSON MobileDeviceApplicationsItem'{..}
           = object
               (catMaybes
                  [("versionCode" .=) <$> _mdaiVersionCode,
@@ -3737,7 +3847,7 @@
 -- Directory API.
 --
 -- /See:/ 'orgUnits' smart constructor.
-data OrgUnits = OrgUnits
+data OrgUnits = OrgUnits'
     { _oEtag              :: !(Maybe Text)
     , _oKind              :: !Text
     , _oOrganizationUnits :: !(Maybe [OrgUnit])
@@ -3755,7 +3865,7 @@
 orgUnits
     :: OrgUnits
 orgUnits =
-    OrgUnits
+    OrgUnits'
     { _oEtag = Nothing
     , _oKind = "admin#directory#orgUnits"
     , _oOrganizationUnits = Nothing
@@ -3781,13 +3891,13 @@
         parseJSON
           = withObject "OrgUnits"
               (\ o ->
-                 OrgUnits <$>
+                 OrgUnits' <$>
                    (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#orgUnits")
                      <*> (o .:? "organizationUnits" .!= mempty))
 
 instance ToJSON OrgUnits where
-        toJSON OrgUnits{..}
+        toJSON OrgUnits'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _oEtag, Just ("kind" .= _oKind),
@@ -3797,7 +3907,7 @@
 -- Directory API.
 --
 -- /See:/ 'verificationCodes' smart constructor.
-data VerificationCodes = VerificationCodes
+data VerificationCodes = VerificationCodes'
     { _vEtag  :: !(Maybe Text)
     , _vKind  :: !Text
     , _vItems :: !(Maybe [VerificationCode])
@@ -3815,7 +3925,7 @@
 verificationCodes
     :: VerificationCodes
 verificationCodes =
-    VerificationCodes
+    VerificationCodes'
     { _vEtag = Nothing
     , _vKind = "admin#directory#verificationCodesList"
     , _vItems = Nothing
@@ -3840,14 +3950,14 @@
         parseJSON
           = withObject "VerificationCodes"
               (\ o ->
-                 VerificationCodes <$>
+                 VerificationCodes' <$>
                    (o .:? "etag") <*>
                      (o .:? "kind" .!=
                         "admin#directory#verificationCodesList")
                      <*> (o .:? "items" .!= mempty))
 
 instance ToJSON VerificationCodes where
-        toJSON VerificationCodes{..}
+        toJSON VerificationCodes'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _vEtag, Just ("kind" .= _vKind),
@@ -3856,7 +3966,7 @@
 -- | JSON template for a relation entry.
 --
 -- /See:/ 'userRelation' smart constructor.
-data UserRelation = UserRelation
+data UserRelation = UserRelation'
     { _urValue      :: !(Maybe Text)
     , _urType       :: !(Maybe Text)
     , _urCustomType :: !(Maybe Text)
@@ -3874,7 +3984,7 @@
 userRelation
     :: UserRelation
 userRelation =
-    UserRelation
+    UserRelation'
     { _urValue = Nothing
     , _urType = Nothing
     , _urCustomType = Nothing
@@ -3898,12 +4008,12 @@
         parseJSON
           = withObject "UserRelation"
               (\ o ->
-                 UserRelation <$>
+                 UserRelation' <$>
                    (o .:? "value") <*> (o .:? "type") <*>
                      (o .:? "customType"))
 
 instance ToJSON UserRelation where
-        toJSON UserRelation{..}
+        toJSON UserRelation'{..}
           = object
               (catMaybes
                  [("value" .=) <$> _urValue, ("type" .=) <$> _urType,
@@ -3912,7 +4022,7 @@
 -- | Additional parameters controlling delivery channel behavior. Optional.
 --
 -- /See:/ 'channelParams' smart constructor.
-newtype ChannelParams = ChannelParams
+newtype ChannelParams = ChannelParams'
     { _cpAddtional :: HashMap Text Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -3925,7 +4035,7 @@
     :: HashMap Text Text -- ^ 'cpAddtional'
     -> ChannelParams
 channelParams pCpAddtional_ =
-    ChannelParams
+    ChannelParams'
     { _cpAddtional = _Coerce # pCpAddtional_
     }
 
@@ -3938,7 +4048,7 @@
 instance FromJSON ChannelParams where
         parseJSON
           = withObject "ChannelParams"
-              (\ o -> ChannelParams <$> (parseJSONObject o))
+              (\ o -> ChannelParams' <$> (parseJSONObject o))
 
 instance ToJSON ChannelParams where
         toJSON = toJSON . _cpAddtional
@@ -3946,7 +4056,7 @@
 -- | JSON template for an organization entry.
 --
 -- /See:/ 'userOrganization' smart constructor.
-data UserOrganization = UserOrganization
+data UserOrganization = UserOrganization'
     { _uoDePartment  :: !(Maybe Text)
     , _uoLocation    :: !(Maybe Text)
     , _uoCostCenter  :: !(Maybe Text)
@@ -3988,7 +4098,7 @@
 userOrganization
     :: UserOrganization
 userOrganization =
-    UserOrganization
+    UserOrganization'
     { _uoDePartment = Nothing
     , _uoLocation = Nothing
     , _uoCostCenter = Nothing
@@ -4061,7 +4171,7 @@
         parseJSON
           = withObject "UserOrganization"
               (\ o ->
-                 UserOrganization <$>
+                 UserOrganization' <$>
                    (o .:? "department") <*> (o .:? "location") <*>
                      (o .:? "costCenter")
                      <*> (o .:? "domain")
@@ -4074,7 +4184,7 @@
                      <*> (o .:? "description"))
 
 instance ToJSON UserOrganization where
-        toJSON UserOrganization{..}
+        toJSON UserOrganization'{..}
           = object
               (catMaybes
                  [("department" .=) <$> _uoDePartment,
@@ -4091,7 +4201,7 @@
 -- | JSON template for a website entry.
 --
 -- /See:/ 'userWebsite' smart constructor.
-data UserWebsite = UserWebsite
+data UserWebsite = UserWebsite'
     { _uwValue      :: !(Maybe Text)
     , _uwPrimary    :: !(Maybe Bool)
     , _uwType       :: !(Maybe Text)
@@ -4112,7 +4222,7 @@
 userWebsite
     :: UserWebsite
 userWebsite =
-    UserWebsite
+    UserWebsite'
     { _uwValue = Nothing
     , _uwPrimary = Nothing
     , _uwType = Nothing
@@ -4145,13 +4255,13 @@
         parseJSON
           = withObject "UserWebsite"
               (\ o ->
-                 UserWebsite <$>
+                 UserWebsite' <$>
                    (o .:? "value") <*> (o .:? "primary") <*>
                      (o .:? "type")
                      <*> (o .:? "customType"))
 
 instance ToJSON UserWebsite where
-        toJSON UserWebsite{..}
+        toJSON UserWebsite'{..}
           = object
               (catMaybes
                  [("value" .=) <$> _uwValue,
@@ -4161,7 +4271,7 @@
 
 --
 -- /See:/ 'chromeOSDeviceActiveTimeRangesItem' smart constructor.
-data ChromeOSDeviceActiveTimeRangesItem = ChromeOSDeviceActiveTimeRangesItem
+data ChromeOSDeviceActiveTimeRangesItem = ChromeOSDeviceActiveTimeRangesItem'
     { _codatriDate       :: !(Maybe Date')
     , _codatriActiveTime :: !(Maybe (Textual Int32))
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -4176,7 +4286,7 @@
 chromeOSDeviceActiveTimeRangesItem
     :: ChromeOSDeviceActiveTimeRangesItem
 chromeOSDeviceActiveTimeRangesItem =
-    ChromeOSDeviceActiveTimeRangesItem
+    ChromeOSDeviceActiveTimeRangesItem'
     { _codatriDate = Nothing
     , _codatriActiveTime = Nothing
     }
@@ -4199,12 +4309,12 @@
         parseJSON
           = withObject "ChromeOSDeviceActiveTimeRangesItem"
               (\ o ->
-                 ChromeOSDeviceActiveTimeRangesItem <$>
+                 ChromeOSDeviceActiveTimeRangesItem' <$>
                    (o .:? "date") <*> (o .:? "activeTime"))
 
 instance ToJSON ChromeOSDeviceActiveTimeRangesItem
          where
-        toJSON ChromeOSDeviceActiveTimeRangesItem{..}
+        toJSON ChromeOSDeviceActiveTimeRangesItem'{..}
           = object
               (catMaybes
                  [("date" .=) <$> _codatriDate,
@@ -4213,7 +4323,7 @@
 -- | JSON template for an email.
 --
 -- /See:/ 'userEmail' smart constructor.
-data UserEmail = UserEmail
+data UserEmail = UserEmail'
     { _ueAddress    :: !(Maybe Text)
     , _uePrimary    :: !(Maybe Bool)
     , _ueType       :: !(Maybe Text)
@@ -4234,7 +4344,7 @@
 userEmail
     :: UserEmail
 userEmail =
-    UserEmail
+    UserEmail'
     { _ueAddress = Nothing
     , _uePrimary = Nothing
     , _ueType = Nothing
@@ -4269,13 +4379,13 @@
         parseJSON
           = withObject "UserEmail"
               (\ o ->
-                 UserEmail <$>
+                 UserEmail' <$>
                    (o .:? "address") <*> (o .:? "primary") <*>
                      (o .:? "type")
                      <*> (o .:? "customType"))
 
 instance ToJSON UserEmail where
-        toJSON UserEmail{..}
+        toJSON UserEmail'{..}
           = object
               (catMaybes
                  [("address" .=) <$> _ueAddress,
@@ -4286,7 +4396,7 @@
 -- | JSON template for a phone entry.
 --
 -- /See:/ 'userPhone' smart constructor.
-data UserPhone = UserPhone
+data UserPhone = UserPhone'
     { _upValue      :: !(Maybe Text)
     , _upPrimary    :: !(Maybe Bool)
     , _upType       :: !(Maybe Text)
@@ -4307,7 +4417,7 @@
 userPhone
     :: UserPhone
 userPhone =
-    UserPhone
+    UserPhone'
     { _upValue = Nothing
     , _upPrimary = Nothing
     , _upType = Nothing
@@ -4340,13 +4450,13 @@
         parseJSON
           = withObject "UserPhone"
               (\ o ->
-                 UserPhone <$>
+                 UserPhone' <$>
                    (o .:? "value") <*> (o .:? "primary") <*>
                      (o .:? "type")
                      <*> (o .:? "customType"))
 
 instance ToJSON UserPhone where
-        toJSON UserPhone{..}
+        toJSON UserPhone'{..}
           = object
               (catMaybes
                  [("value" .=) <$> _upValue,
@@ -4357,8 +4467,8 @@
 -- | JSON template for Photo object in Directory API.
 --
 -- /See:/ 'userPhoto' smart constructor.
-data UserPhoto = UserPhoto
-    { _upPhotoData    :: !(Maybe (Textual Word8))
+data UserPhoto = UserPhoto'
+    { _upPhotoData    :: !(Maybe Base64)
     , _upEtag         :: !(Maybe Text)
     , _upHeight       :: !(Maybe (Textual Int32))
     , _upKind         :: !Text
@@ -4390,7 +4500,7 @@
 userPhoto
     :: UserPhoto
 userPhoto =
-    UserPhoto
+    UserPhoto'
     { _upPhotoData = Nothing
     , _upEtag = Nothing
     , _upHeight = Nothing
@@ -4402,10 +4512,10 @@
     }
 
 -- | Base64 encoded photo data
-upPhotoData :: Lens' UserPhoto (Maybe Word8)
+upPhotoData :: Lens' UserPhoto (Maybe ByteString)
 upPhotoData
   = lens _upPhotoData (\ s a -> s{_upPhotoData = a}) .
-      mapping _Coerce
+      mapping _Base64
 
 -- | ETag of the resource.
 upEtag :: Lens' UserPhoto (Maybe Text)
@@ -4446,7 +4556,7 @@
         parseJSON
           = withObject "UserPhoto"
               (\ o ->
-                 UserPhoto <$>
+                 UserPhoto' <$>
                    (o .:? "photoData") <*> (o .:? "etag") <*>
                      (o .:? "height")
                      <*> (o .:? "kind" .!= "admin#directory#user#photo")
@@ -4456,7 +4566,7 @@
                      <*> (o .:? "primaryEmail"))
 
 instance ToJSON UserPhoto where
-        toJSON UserPhoto{..}
+        toJSON UserPhoto'{..}
           = object
               (catMaybes
                  [("photoData" .=) <$> _upPhotoData,
@@ -4468,7 +4578,7 @@
 -- | JSON template for Mobile Device resource in Directory API.
 --
 -- /See:/ 'mobileDevice' smart constructor.
-data MobileDevice = MobileDevice
+data MobileDevice = MobileDevice'
     { _mobEmail                          :: !(Maybe [Text])
     , _mobStatus                         :: !(Maybe Text)
     , _mobEtag                           :: !(Maybe Text)
@@ -4570,7 +4680,7 @@
 mobileDevice
     :: MobileDevice
 mobileDevice =
-    MobileDevice
+    MobileDevice'
     { _mobEmail = Nothing
     , _mobStatus = Nothing
     , _mobEtag = Nothing
@@ -4784,7 +4894,7 @@
         parseJSON
           = withObject "MobileDevice"
               (\ o ->
-                 MobileDevice <$>
+                 MobileDevice' <$>
                    (o .:? "email" .!= mempty) <*> (o .:? "status") <*>
                      (o .:? "etag")
                      <*> (o .:? "resourceId")
@@ -4817,7 +4927,7 @@
                      <*> (o .:? "defaultLanguage"))
 
 instance ToJSON MobileDevice where
-        toJSON MobileDevice{..}
+        toJSON MobileDevice'{..}
           = object
               (catMaybes
                  [("email" .=) <$> _mobEmail,
@@ -4858,7 +4968,7 @@
 -- | JSON template for Member resource in Directory API.
 --
 -- /See:/ 'member' smart constructor.
-data Member = Member
+data Member = Member'
     { _memEmail :: !(Maybe Text)
     , _memEtag  :: !(Maybe Text)
     , _memKind  :: !Text
@@ -4885,7 +4995,7 @@
 member
     :: Member
 member =
-    Member
+    Member'
     { _memEmail = Nothing
     , _memEtag = Nothing
     , _memKind = "admin#directory#member"
@@ -4923,7 +5033,7 @@
         parseJSON
           = withObject "Member"
               (\ o ->
-                 Member <$>
+                 Member' <$>
                    (o .:? "email") <*> (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#member")
                      <*> (o .:? "role")
@@ -4931,7 +5041,7 @@
                      <*> (o .:? "type"))
 
 instance ToJSON Member where
-        toJSON Member{..}
+        toJSON Member'{..}
           = object
               (catMaybes
                  [("email" .=) <$> _memEmail,
@@ -4943,7 +5053,7 @@
 -- particular schema)
 --
 -- /See:/ 'userCustomProperties' smart constructor.
-newtype UserCustomProperties = UserCustomProperties
+newtype UserCustomProperties = UserCustomProperties'
     { _ucpAddtional :: HashMap Text JSONValue
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -4956,7 +5066,7 @@
     :: HashMap Text JSONValue -- ^ 'ucpAddtional'
     -> UserCustomProperties
 userCustomProperties pUcpAddtional_ =
-    UserCustomProperties
+    UserCustomProperties'
     { _ucpAddtional = _Coerce # pUcpAddtional_
     }
 
@@ -4968,7 +5078,8 @@
 instance FromJSON UserCustomProperties where
         parseJSON
           = withObject "UserCustomProperties"
-              (\ o -> UserCustomProperties <$> (parseJSONObject o))
+              (\ o ->
+                 UserCustomProperties' <$> (parseJSONObject o))
 
 instance ToJSON UserCustomProperties where
         toJSON = toJSON . _ucpAddtional
@@ -4976,7 +5087,7 @@
 -- | JSON template for Domain object in Directory API.
 --
 -- /See:/ 'domains' smart constructor.
-data Domains = Domains
+data Domains = Domains'
     { _domCreationTime  :: !(Maybe (Textual Int64))
     , _domEtag          :: !(Maybe Text)
     , _domKind          :: !Text
@@ -5006,7 +5117,7 @@
 domains
     :: Domains
 domains =
-    Domains
+    Domains'
     { _domCreationTime = Nothing
     , _domEtag = Nothing
     , _domKind = "admin#directory#domain"
@@ -5059,7 +5170,7 @@
         parseJSON
           = withObject "Domains"
               (\ o ->
-                 Domains <$>
+                 Domains' <$>
                    (o .:? "creationTime") <*> (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#domain")
                      <*> (o .:? "domainAliases" .!= mempty)
@@ -5068,7 +5179,7 @@
                      <*> (o .:? "isPrimary"))
 
 instance ToJSON Domains where
-        toJSON Domains{..}
+        toJSON Domains'{..}
           = object
               (catMaybes
                  [("creationTime" .=) <$> _domCreationTime,
@@ -5078,10 +5189,84 @@
                   ("domainName" .=) <$> _domDomainName,
                   ("isPrimary" .=) <$> _domIsPrimary])
 
+-- | JSON template for Calendar Resource List Response object in Directory
+-- API.
+--
+-- /See:/ 'calendarResources' smart constructor.
+data CalendarResources = CalendarResources'
+    { _crsEtag          :: !(Maybe Text)
+    , _crsNextPageToken :: !(Maybe Text)
+    , _crsKind          :: !Text
+    , _crsItems         :: !(Maybe [CalendarResource])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CalendarResources' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'crsEtag'
+--
+-- * 'crsNextPageToken'
+--
+-- * 'crsKind'
+--
+-- * 'crsItems'
+calendarResources
+    :: CalendarResources
+calendarResources =
+    CalendarResources'
+    { _crsEtag = Nothing
+    , _crsNextPageToken = Nothing
+    , _crsKind = "admin#directory#resources#calendars#calendarResourcesList"
+    , _crsItems = Nothing
+    }
+
+-- | ETag of the resource.
+crsEtag :: Lens' CalendarResources (Maybe Text)
+crsEtag = lens _crsEtag (\ s a -> s{_crsEtag = a})
+
+-- | The continuation token, used to page through large result sets. Provide
+-- this value in a subsequent request to return the next page of results.
+crsNextPageToken :: Lens' CalendarResources (Maybe Text)
+crsNextPageToken
+  = lens _crsNextPageToken
+      (\ s a -> s{_crsNextPageToken = a})
+
+-- | Identifies this as a collection of CalendarResources. This is always
+-- admin#directory#resources#calendars#calendarResourcesList.
+crsKind :: Lens' CalendarResources Text
+crsKind = lens _crsKind (\ s a -> s{_crsKind = a})
+
+-- | The CalendarResources in this page of results.
+crsItems :: Lens' CalendarResources [CalendarResource]
+crsItems
+  = lens _crsItems (\ s a -> s{_crsItems = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON CalendarResources where
+        parseJSON
+          = withObject "CalendarResources"
+              (\ o ->
+                 CalendarResources' <$>
+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!=
+                        "admin#directory#resources#calendars#calendarResourcesList")
+                     <*> (o .:? "items" .!= mempty))
+
+instance ToJSON CalendarResources where
+        toJSON CalendarResources'{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _crsEtag,
+                  ("nextPageToken" .=) <$> _crsNextPageToken,
+                  Just ("kind" .= _crsKind),
+                  ("items" .=) <$> _crsItems])
+
 -- | Template for notifications list response.
 --
 -- /See:/ 'notifications' smart constructor.
-data Notifications = Notifications
+data Notifications = Notifications'
     { _notEtag                     :: !(Maybe Text)
     , _notNextPageToken            :: !(Maybe Text)
     , _notKind                     :: !Text
@@ -5105,7 +5290,7 @@
 notifications
     :: Notifications
 notifications =
-    Notifications
+    Notifications'
     { _notEtag = Nothing
     , _notNextPageToken = Nothing
     , _notKind = "admin#directory#notifications"
@@ -5145,14 +5330,14 @@
         parseJSON
           = withObject "Notifications"
               (\ o ->
-                 Notifications <$>
+                 Notifications' <$>
                    (o .:? "etag") <*> (o .:? "nextPageToken") <*>
                      (o .:? "kind" .!= "admin#directory#notifications")
                      <*> (o .:? "items" .!= mempty)
                      <*> (o .:? "unreadNotificationsCount"))
 
 instance ToJSON Notifications where
-        toJSON Notifications{..}
+        toJSON Notifications'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _notEtag,
@@ -5167,7 +5352,7 @@
 -- allows range queries to be supported.
 --
 -- /See:/ 'schemaFieldSpecNumericIndexingSpec' smart constructor.
-data SchemaFieldSpecNumericIndexingSpec = SchemaFieldSpecNumericIndexingSpec
+data SchemaFieldSpecNumericIndexingSpec = SchemaFieldSpecNumericIndexingSpec'
     { _sfsnisMaxValue :: !(Maybe (Textual Double))
     , _sfsnisMinValue :: !(Maybe (Textual Double))
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -5182,7 +5367,7 @@
 schemaFieldSpecNumericIndexingSpec
     :: SchemaFieldSpecNumericIndexingSpec
 schemaFieldSpecNumericIndexingSpec =
-    SchemaFieldSpecNumericIndexingSpec
+    SchemaFieldSpecNumericIndexingSpec'
     { _sfsnisMaxValue = Nothing
     , _sfsnisMinValue = Nothing
     }
@@ -5210,12 +5395,12 @@
         parseJSON
           = withObject "SchemaFieldSpecNumericIndexingSpec"
               (\ o ->
-                 SchemaFieldSpecNumericIndexingSpec <$>
+                 SchemaFieldSpecNumericIndexingSpec' <$>
                    (o .:? "maxValue") <*> (o .:? "minValue"))
 
 instance ToJSON SchemaFieldSpecNumericIndexingSpec
          where
-        toJSON SchemaFieldSpecNumericIndexingSpec{..}
+        toJSON SchemaFieldSpecNumericIndexingSpec'{..}
           = object
               (catMaybes
                  [("maxValue" .=) <$> _sfsnisMaxValue,
@@ -5225,7 +5410,7 @@
 -- Devices API.
 --
 -- /See:/ 'mobileDeviceAction' smart constructor.
-newtype MobileDeviceAction = MobileDeviceAction
+newtype MobileDeviceAction = MobileDeviceAction'
     { _mdaAction :: Maybe Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -5237,7 +5422,7 @@
 mobileDeviceAction
     :: MobileDeviceAction
 mobileDeviceAction =
-    MobileDeviceAction
+    MobileDeviceAction'
     { _mdaAction = Nothing
     }
 
@@ -5249,16 +5434,16 @@
 instance FromJSON MobileDeviceAction where
         parseJSON
           = withObject "MobileDeviceAction"
-              (\ o -> MobileDeviceAction <$> (o .:? "action"))
+              (\ o -> MobileDeviceAction' <$> (o .:? "action"))
 
 instance ToJSON MobileDeviceAction where
-        toJSON MobileDeviceAction{..}
+        toJSON MobileDeviceAction'{..}
           = object (catMaybes [("action" .=) <$> _mdaAction])
 
 -- | JSON template for FieldSpec resource for Schemas in Directory API.
 --
 -- /See:/ 'schemaFieldSpec' smart constructor.
-data SchemaFieldSpec = SchemaFieldSpec
+data SchemaFieldSpec = SchemaFieldSpec'
     { _sfsEtag                :: !(Maybe Text)
     , _sfsKind                :: !Text
     , _sfsNumericIndexingSpec :: !(Maybe SchemaFieldSpecNumericIndexingSpec)
@@ -5294,7 +5479,7 @@
 schemaFieldSpec
     :: SchemaFieldSpec
 schemaFieldSpec =
-    SchemaFieldSpec
+    SchemaFieldSpec'
     { _sfsEtag = Nothing
     , _sfsKind = "admin#directory#schema#fieldspec"
     , _sfsNumericIndexingSpec = Nothing
@@ -5359,7 +5544,7 @@
         parseJSON
           = withObject "SchemaFieldSpec"
               (\ o ->
-                 SchemaFieldSpec <$>
+                 SchemaFieldSpec' <$>
                    (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#schema#fieldspec")
                      <*> (o .:? "numericIndexingSpec")
@@ -5371,7 +5556,7 @@
                      <*> (o .:? "multiValued"))
 
 instance ToJSON SchemaFieldSpec where
-        toJSON SchemaFieldSpec{..}
+        toJSON SchemaFieldSpec'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _sfsEtag, Just ("kind" .= _sfsKind),
@@ -5388,7 +5573,7 @@
 -- API.
 --
 -- /See:/ 'chromeOSDevices' smart constructor.
-data ChromeOSDevices = ChromeOSDevices
+data ChromeOSDevices = ChromeOSDevices'
     { _cosdEtag            :: !(Maybe Text)
     , _cosdNextPageToken   :: !(Maybe Text)
     , _cosdKind            :: !Text
@@ -5409,7 +5594,7 @@
 chromeOSDevices
     :: ChromeOSDevices
 chromeOSDevices =
-    ChromeOSDevices
+    ChromeOSDevices'
     { _cosdEtag = Nothing
     , _cosdNextPageToken = Nothing
     , _cosdKind = "admin#directory#chromeosdevices"
@@ -5442,13 +5627,13 @@
         parseJSON
           = withObject "ChromeOSDevices"
               (\ o ->
-                 ChromeOSDevices <$>
+                 ChromeOSDevices' <$>
                    (o .:? "etag") <*> (o .:? "nextPageToken") <*>
                      (o .:? "kind" .!= "admin#directory#chromeosdevices")
                      <*> (o .:? "chromeosdevices" .!= mempty))
 
 instance ToJSON ChromeOSDevices where
-        toJSON ChromeOSDevices{..}
+        toJSON ChromeOSDevices'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _cosdEtag,
@@ -5459,7 +5644,7 @@
 -- | JSON template for an externalId entry.
 --
 -- /See:/ 'userExternalId' smart constructor.
-data UserExternalId = UserExternalId
+data UserExternalId = UserExternalId'
     { _ueiValue      :: !(Maybe Text)
     , _ueiType       :: !(Maybe Text)
     , _ueiCustomType :: !(Maybe Text)
@@ -5477,7 +5662,7 @@
 userExternalId
     :: UserExternalId
 userExternalId =
-    UserExternalId
+    UserExternalId'
     { _ueiValue = Nothing
     , _ueiType = Nothing
     , _ueiCustomType = Nothing
@@ -5501,12 +5686,12 @@
         parseJSON
           = withObject "UserExternalId"
               (\ o ->
-                 UserExternalId <$>
+                 UserExternalId' <$>
                    (o .:? "value") <*> (o .:? "type") <*>
                      (o .:? "customType"))
 
 instance ToJSON UserExternalId where
-        toJSON UserExternalId{..}
+        toJSON UserExternalId'{..}
           = object
               (catMaybes
                  [("value" .=) <$> _ueiValue,
@@ -5515,7 +5700,7 @@
 
 --
 -- /See:/ 'asps' smart constructor.
-data Asps = Asps
+data Asps = Asps'
     { _aspEtag  :: !(Maybe Text)
     , _aspKind  :: !Text
     , _aspItems :: !(Maybe [Asp])
@@ -5533,7 +5718,7 @@
 asps
     :: Asps
 asps =
-    Asps
+    Asps'
     { _aspEtag = Nothing
     , _aspKind = "admin#directory#aspList"
     , _aspItems = Nothing
@@ -5558,13 +5743,13 @@
         parseJSON
           = withObject "Asps"
               (\ o ->
-                 Asps <$>
+                 Asps' <$>
                    (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#aspList")
                      <*> (o .:? "items" .!= mempty))
 
 instance ToJSON Asps where
-        toJSON Asps{..}
+        toJSON Asps'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _aspEtag, Just ("kind" .= _aspKind),
@@ -5572,7 +5757,7 @@
 
 --
 -- /See:/ 'roleRolePrivilegesItem' smart constructor.
-data RoleRolePrivilegesItem = RoleRolePrivilegesItem
+data RoleRolePrivilegesItem = RoleRolePrivilegesItem'
     { _rrpiServiceId     :: !(Maybe Text)
     , _rrpiPrivilegeName :: !(Maybe Text)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -5587,7 +5772,7 @@
 roleRolePrivilegesItem
     :: RoleRolePrivilegesItem
 roleRolePrivilegesItem =
-    RoleRolePrivilegesItem
+    RoleRolePrivilegesItem'
     { _rrpiServiceId = Nothing
     , _rrpiPrivilegeName = Nothing
     }
@@ -5608,11 +5793,11 @@
         parseJSON
           = withObject "RoleRolePrivilegesItem"
               (\ o ->
-                 RoleRolePrivilegesItem <$>
+                 RoleRolePrivilegesItem' <$>
                    (o .:? "serviceId") <*> (o .:? "privilegeName"))
 
 instance ToJSON RoleRolePrivilegesItem where
-        toJSON RoleRolePrivilegesItem{..}
+        toJSON RoleRolePrivilegesItem'{..}
           = object
               (catMaybes
                  [("serviceId" .=) <$> _rrpiServiceId,
@@ -5621,7 +5806,7 @@
 -- | JSON response template to list Domains in Directory API.
 --
 -- /See:/ 'domains2' smart constructor.
-data Domains2 = Domains2
+data Domains2 = Domains2'
     { _ddEtag    :: !(Maybe Text)
     , _ddKind    :: !Text
     , _ddDomains :: !(Maybe [Domains])
@@ -5639,7 +5824,7 @@
 domains2
     :: Domains2
 domains2 =
-    Domains2
+    Domains2'
     { _ddEtag = Nothing
     , _ddKind = "admin#directory#domains"
     , _ddDomains = Nothing
@@ -5664,13 +5849,13 @@
         parseJSON
           = withObject "Domains2"
               (\ o ->
-                 Domains2 <$>
+                 Domains2' <$>
                    (o .:? "etag") <*>
                      (o .:? "kind" .!= "admin#directory#domains")
                      <*> (o .:? "domains" .!= mempty))
 
 instance ToJSON Domains2 where
-        toJSON Domains2{..}
+        toJSON Domains2'{..}
           = object
               (catMaybes
                  [("etag" .=) <$> _ddEtag, Just ("kind" .= _ddKind),
diff --git a/gen/Network/Google/Directory/Types/Sum.hs b/gen/Network/Google/Directory/Types/Sum.hs
--- a/gen/Network/Google/Directory/Types/Sum.hs
+++ b/gen/Network/Google/Directory/Types/Sum.hs
@@ -8,7 +8,7 @@
 
 -- |
 -- Module      : Network.Google.Directory.Types.Sum
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -35,21 +35,21 @@
     | Update
       -- ^ @update@
       -- User Updated Event
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersListEvent
 
-instance FromText UsersListEvent where
-    fromText = \case
-        "add" -> Just Add
-        "delete" -> Just Delete'
-        "makeAdmin" -> Just MakeAdmin
-        "undelete" -> Just Undelete
-        "update" -> Just Update
-        _ -> Nothing
+instance FromHttpApiData UsersListEvent where
+    parseQueryParam = \case
+        "add" -> Right Add
+        "delete" -> Right Delete'
+        "makeAdmin" -> Right MakeAdmin
+        "undelete" -> Right Undelete
+        "update" -> Right Update
+        x -> Left ("Unable to parse UsersListEvent from: " <> x)
 
-instance ToText UsersListEvent where
-    toText = \case
+instance ToHttpApiData UsersListEvent where
+    toQueryParam = \case
         Add -> "add"
         Delete' -> "delete"
         MakeAdmin -> "makeAdmin"
@@ -70,18 +70,18 @@
     | UALEDelete'
       -- ^ @delete@
       -- Alias Deleted Event
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersAliasesListEvent
 
-instance FromText UsersAliasesListEvent where
-    fromText = \case
-        "add" -> Just UALEAdd
-        "delete" -> Just UALEDelete'
-        _ -> Nothing
+instance FromHttpApiData UsersAliasesListEvent where
+    parseQueryParam = \case
+        "add" -> Right UALEAdd
+        "delete" -> Right UALEDelete'
+        x -> Left ("Unable to parse UsersAliasesListEvent from: " <> x)
 
-instance ToText UsersAliasesListEvent where
-    toText = \case
+instance ToHttpApiData UsersAliasesListEvent where
+    toQueryParam = \case
         UALEAdd -> "add"
         UALEDelete' -> "delete"
 
@@ -99,18 +99,18 @@
     | UAWEDelete'
       -- ^ @delete@
       -- Alias Deleted Event
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersAliasesWatchEvent
 
-instance FromText UsersAliasesWatchEvent where
-    fromText = \case
-        "add" -> Just UAWEAdd
-        "delete" -> Just UAWEDelete'
-        _ -> Nothing
+instance FromHttpApiData UsersAliasesWatchEvent where
+    parseQueryParam = \case
+        "add" -> Right UAWEAdd
+        "delete" -> Right UAWEDelete'
+        x -> Left ("Unable to parse UsersAliasesWatchEvent from: " <> x)
 
-instance ToText UsersAliasesWatchEvent where
-    toText = \case
+instance ToHttpApiData UsersAliasesWatchEvent where
+    toQueryParam = \case
         UAWEAdd -> "add"
         UAWEDelete' -> "delete"
 
@@ -137,21 +137,21 @@
     | UWEUpdate
       -- ^ @update@
       -- User Updated Event
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersWatchEvent
 
-instance FromText UsersWatchEvent where
-    fromText = \case
-        "add" -> Just UWEAdd
-        "delete" -> Just UWEDelete'
-        "makeAdmin" -> Just UWEMakeAdmin
-        "undelete" -> Just UWEUndelete
-        "update" -> Just UWEUpdate
-        _ -> Nothing
+instance FromHttpApiData UsersWatchEvent where
+    parseQueryParam = \case
+        "add" -> Right UWEAdd
+        "delete" -> Right UWEDelete'
+        "makeAdmin" -> Right UWEMakeAdmin
+        "undelete" -> Right UWEUndelete
+        "update" -> Right UWEUpdate
+        x -> Left ("Unable to parse UsersWatchEvent from: " <> x)
 
-instance ToText UsersWatchEvent where
-    toText = \case
+instance ToHttpApiData UsersWatchEvent where
+    toQueryParam = \case
         UWEAdd -> "add"
         UWEDelete' -> "delete"
         UWEMakeAdmin -> "makeAdmin"
@@ -173,18 +173,18 @@
     | Full
       -- ^ @FULL@
       -- Includes all metadata fields
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable ChromeosDevicesPatchProjection
 
-instance FromText ChromeosDevicesPatchProjection where
-    fromText = \case
-        "BASIC" -> Just Basic
-        "FULL" -> Just Full
-        _ -> Nothing
+instance FromHttpApiData ChromeosDevicesPatchProjection where
+    parseQueryParam = \case
+        "BASIC" -> Right Basic
+        "FULL" -> Right Full
+        x -> Left ("Unable to parse ChromeosDevicesPatchProjection from: " <> x)
 
-instance ToText ChromeosDevicesPatchProjection where
-    toText = \case
+instance ToHttpApiData ChromeosDevicesPatchProjection where
+    toQueryParam = \case
         Basic -> "BASIC"
         Full -> "FULL"
 
@@ -203,18 +203,18 @@
     | CDGPFull
       -- ^ @FULL@
       -- Includes all metadata fields
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable ChromeosDevicesGetProjection
 
-instance FromText ChromeosDevicesGetProjection where
-    fromText = \case
-        "BASIC" -> Just CDGPBasic
-        "FULL" -> Just CDGPFull
-        _ -> Nothing
+instance FromHttpApiData ChromeosDevicesGetProjection where
+    parseQueryParam = \case
+        "BASIC" -> Right CDGPBasic
+        "FULL" -> Right CDGPFull
+        x -> Left ("Unable to parse ChromeosDevicesGetProjection from: " <> x)
 
-instance ToText ChromeosDevicesGetProjection where
-    toText = \case
+instance ToHttpApiData ChromeosDevicesGetProjection where
+    toQueryParam = \case
         CDGPBasic -> "BASIC"
         CDGPFull -> "FULL"
 
@@ -232,18 +232,18 @@
     | DomainPublic
       -- ^ @domain_public@
       -- Fetches the DOMAIN_PUBLIC view of the user.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersListViewType
 
-instance FromText UsersListViewType where
-    fromText = \case
-        "admin_view" -> Just AdminView
-        "domain_public" -> Just DomainPublic
-        _ -> Nothing
+instance FromHttpApiData UsersListViewType where
+    parseQueryParam = \case
+        "admin_view" -> Right AdminView
+        "domain_public" -> Right DomainPublic
+        x -> Left ("Unable to parse UsersListViewType from: " <> x)
 
-instance ToText UsersListViewType where
-    toText = \case
+instance ToHttpApiData UsersListViewType where
+    toQueryParam = \case
         AdminView -> "admin_view"
         DomainPublic -> "domain_public"
 
@@ -261,18 +261,18 @@
     | Children
       -- ^ @children@
       -- Immediate children only (default).
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable OrgUnitsListType
 
-instance FromText OrgUnitsListType where
-    fromText = \case
-        "all" -> Just All
-        "children" -> Just Children
-        _ -> Nothing
+instance FromHttpApiData OrgUnitsListType where
+    parseQueryParam = \case
+        "all" -> Right All
+        "children" -> Right Children
+        x -> Left ("Unable to parse OrgUnitsListType from: " <> x)
 
-instance ToText OrgUnitsListType where
-    toText = \case
+instance ToHttpApiData OrgUnitsListType where
+    toQueryParam = \case
         All -> "all"
         Children -> "children"
 
@@ -291,18 +291,18 @@
     | Descending
       -- ^ @DESCENDING@
       -- Descending order.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable MobileDevicesListSortOrder
 
-instance FromText MobileDevicesListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just Ascending
-        "DESCENDING" -> Just Descending
-        _ -> Nothing
+instance FromHttpApiData MobileDevicesListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right Ascending
+        "DESCENDING" -> Right Descending
+        x -> Left ("Unable to parse MobileDevicesListSortOrder from: " <> x)
 
-instance ToText MobileDevicesListSortOrder where
-    toText = \case
+instance ToHttpApiData MobileDevicesListSortOrder where
+    toQueryParam = \case
         Ascending -> "ASCENDING"
         Descending -> "DESCENDING"
 
@@ -323,19 +323,19 @@
     | GivenName
       -- ^ @givenName@
       -- User\'s given name.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersListOrderBy
 
-instance FromText UsersListOrderBy where
-    fromText = \case
-        "email" -> Just Email
-        "familyName" -> Just FamilyName
-        "givenName" -> Just GivenName
-        _ -> Nothing
+instance FromHttpApiData UsersListOrderBy where
+    parseQueryParam = \case
+        "email" -> Right Email
+        "familyName" -> Right FamilyName
+        "givenName" -> Right GivenName
+        x -> Left ("Unable to parse UsersListOrderBy from: " <> x)
 
-instance ToText UsersListOrderBy where
-    toText = \case
+instance ToHttpApiData UsersListOrderBy where
+    toQueryParam = \case
         Email -> "email"
         FamilyName -> "familyName"
         GivenName -> "givenName"
@@ -354,18 +354,18 @@
     | UWVTDomainPublic
       -- ^ @domain_public@
       -- Fetches the DOMAIN_PUBLIC view of the user.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersWatchViewType
 
-instance FromText UsersWatchViewType where
-    fromText = \case
-        "admin_view" -> Just UWVTAdminView
-        "domain_public" -> Just UWVTDomainPublic
-        _ -> Nothing
+instance FromHttpApiData UsersWatchViewType where
+    parseQueryParam = \case
+        "admin_view" -> Right UWVTAdminView
+        "domain_public" -> Right UWVTDomainPublic
+        x -> Left ("Unable to parse UsersWatchViewType from: " <> x)
 
-instance ToText UsersWatchViewType where
-    toText = \case
+instance ToHttpApiData UsersWatchViewType where
+    toQueryParam = \case
         UWVTAdminView -> "admin_view"
         UWVTDomainPublic -> "domain_public"
 
@@ -386,19 +386,19 @@
     | UGPFull
       -- ^ @full@
       -- Include all fields associated with this user.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersGetProjection
 
-instance FromText UsersGetProjection where
-    fromText = \case
-        "basic" -> Just UGPBasic
-        "custom" -> Just UGPCustom
-        "full" -> Just UGPFull
-        _ -> Nothing
+instance FromHttpApiData UsersGetProjection where
+    parseQueryParam = \case
+        "basic" -> Right UGPBasic
+        "custom" -> Right UGPCustom
+        "full" -> Right UGPFull
+        x -> Left ("Unable to parse UsersGetProjection from: " <> x)
 
-instance ToText UsersGetProjection where
-    toText = \case
+instance ToHttpApiData UsersGetProjection where
+    toQueryParam = \case
         UGPBasic -> "basic"
         UGPCustom -> "custom"
         UGPFull -> "full"
@@ -418,18 +418,18 @@
     | MDLPFull
       -- ^ @FULL@
       -- Includes all metadata fields
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable MobileDevicesListProjection
 
-instance FromText MobileDevicesListProjection where
-    fromText = \case
-        "BASIC" -> Just MDLPBasic
-        "FULL" -> Just MDLPFull
-        _ -> Nothing
+instance FromHttpApiData MobileDevicesListProjection where
+    parseQueryParam = \case
+        "BASIC" -> Right MDLPBasic
+        "FULL" -> Right MDLPFull
+        x -> Left ("Unable to parse MobileDevicesListProjection from: " <> x)
 
-instance ToText MobileDevicesListProjection where
-    toText = \case
+instance ToHttpApiData MobileDevicesListProjection where
+    toQueryParam = \case
         MDLPBasic -> "BASIC"
         MDLPFull -> "FULL"
 
@@ -465,24 +465,24 @@
     | MDLOBType
       -- ^ @type@
       -- Type of the device.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable MobileDevicesListOrderBy
 
-instance FromText MobileDevicesListOrderBy where
-    fromText = \case
-        "deviceId" -> Just MDLOBDeviceId
-        "email" -> Just MDLOBEmail
-        "lastSync" -> Just MDLOBLastSync
-        "model" -> Just MDLOBModel
-        "name" -> Just MDLOBName
-        "os" -> Just MDLOBOS
-        "status" -> Just MDLOBStatus
-        "type" -> Just MDLOBType
-        _ -> Nothing
+instance FromHttpApiData MobileDevicesListOrderBy where
+    parseQueryParam = \case
+        "deviceId" -> Right MDLOBDeviceId
+        "email" -> Right MDLOBEmail
+        "lastSync" -> Right MDLOBLastSync
+        "model" -> Right MDLOBModel
+        "name" -> Right MDLOBName
+        "os" -> Right MDLOBOS
+        "status" -> Right MDLOBStatus
+        "type" -> Right MDLOBType
+        x -> Left ("Unable to parse MobileDevicesListOrderBy from: " <> x)
 
-instance ToText MobileDevicesListOrderBy where
-    toText = \case
+instance ToHttpApiData MobileDevicesListOrderBy where
+    toQueryParam = \case
         MDLOBDeviceId -> "deviceId"
         MDLOBEmail -> "email"
         MDLOBLastSync -> "lastSync"
@@ -506,18 +506,18 @@
     | ULSODescending
       -- ^ @DESCENDING@
       -- Descending order.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersListSortOrder
 
-instance FromText UsersListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just ULSOAscending
-        "DESCENDING" -> Just ULSODescending
-        _ -> Nothing
+instance FromHttpApiData UsersListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right ULSOAscending
+        "DESCENDING" -> Right ULSODescending
+        x -> Left ("Unable to parse UsersListSortOrder from: " <> x)
 
-instance ToText UsersListSortOrder where
-    toText = \case
+instance ToHttpApiData UsersListSortOrder where
+    toQueryParam = \case
         ULSOAscending -> "ASCENDING"
         ULSODescending -> "DESCENDING"
 
@@ -536,18 +536,18 @@
     | CDLSODescending
       -- ^ @DESCENDING@
       -- Descending order.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable ChromeosDevicesListSortOrder
 
-instance FromText ChromeosDevicesListSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just CDLSOAscending
-        "DESCENDING" -> Just CDLSODescending
-        _ -> Nothing
+instance FromHttpApiData ChromeosDevicesListSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right CDLSOAscending
+        "DESCENDING" -> Right CDLSODescending
+        x -> Left ("Unable to parse ChromeosDevicesListSortOrder from: " <> x)
 
-instance ToText ChromeosDevicesListSortOrder where
-    toText = \case
+instance ToHttpApiData ChromeosDevicesListSortOrder where
+    toQueryParam = \case
         CDLSOAscending -> "ASCENDING"
         CDLSODescending -> "DESCENDING"
 
@@ -565,18 +565,18 @@
     | UWSODescending
       -- ^ @DESCENDING@
       -- Descending order.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersWatchSortOrder
 
-instance FromText UsersWatchSortOrder where
-    fromText = \case
-        "ASCENDING" -> Just UWSOAscending
-        "DESCENDING" -> Just UWSODescending
-        _ -> Nothing
+instance FromHttpApiData UsersWatchSortOrder where
+    parseQueryParam = \case
+        "ASCENDING" -> Right UWSOAscending
+        "DESCENDING" -> Right UWSODescending
+        x -> Left ("Unable to parse UsersWatchSortOrder from: " <> x)
 
-instance ToText UsersWatchSortOrder where
-    toText = \case
+instance ToHttpApiData UsersWatchSortOrder where
+    toQueryParam = \case
         UWSOAscending -> "ASCENDING"
         UWSODescending -> "DESCENDING"
 
@@ -597,19 +597,19 @@
     | ULPFull
       -- ^ @full@
       -- Include all fields associated with this user.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersListProjection
 
-instance FromText UsersListProjection where
-    fromText = \case
-        "basic" -> Just ULPBasic
-        "custom" -> Just ULPCustom
-        "full" -> Just ULPFull
-        _ -> Nothing
+instance FromHttpApiData UsersListProjection where
+    parseQueryParam = \case
+        "basic" -> Right ULPBasic
+        "custom" -> Right ULPCustom
+        "full" -> Right ULPFull
+        x -> Left ("Unable to parse UsersListProjection from: " <> x)
 
-instance ToText UsersListProjection where
-    toText = \case
+instance ToHttpApiData UsersListProjection where
+    toQueryParam = \case
         ULPBasic -> "basic"
         ULPCustom -> "custom"
         ULPFull -> "full"
@@ -629,18 +629,18 @@
     | CDUPFull
       -- ^ @FULL@
       -- Includes all metadata fields
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable ChromeosDevicesUpdateProjection
 
-instance FromText ChromeosDevicesUpdateProjection where
-    fromText = \case
-        "BASIC" -> Just CDUPBasic
-        "FULL" -> Just CDUPFull
-        _ -> Nothing
+instance FromHttpApiData ChromeosDevicesUpdateProjection where
+    parseQueryParam = \case
+        "BASIC" -> Right CDUPBasic
+        "FULL" -> Right CDUPFull
+        x -> Left ("Unable to parse ChromeosDevicesUpdateProjection from: " <> x)
 
-instance ToText ChromeosDevicesUpdateProjection where
-    toText = \case
+instance ToHttpApiData ChromeosDevicesUpdateProjection where
+    toQueryParam = \case
         CDUPBasic -> "BASIC"
         CDUPFull -> "FULL"
 
@@ -659,18 +659,18 @@
     | MDGPFull
       -- ^ @FULL@
       -- Includes all metadata fields
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable MobileDevicesGetProjection
 
-instance FromText MobileDevicesGetProjection where
-    fromText = \case
-        "BASIC" -> Just MDGPBasic
-        "FULL" -> Just MDGPFull
-        _ -> Nothing
+instance FromHttpApiData MobileDevicesGetProjection where
+    parseQueryParam = \case
+        "BASIC" -> Right MDGPBasic
+        "FULL" -> Right MDGPFull
+        x -> Left ("Unable to parse MobileDevicesGetProjection from: " <> x)
 
-instance ToText MobileDevicesGetProjection where
-    toText = \case
+instance ToHttpApiData MobileDevicesGetProjection where
+    toQueryParam = \case
         MDGPBasic -> "BASIC"
         MDGPFull -> "FULL"
 
@@ -703,23 +703,23 @@
     | SupportEndDate
       -- ^ @supportEndDate@
       -- Chromebook support end date.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable ChromeosDevicesListOrderBy
 
-instance FromText ChromeosDevicesListOrderBy where
-    fromText = \case
-        "annotatedLocation" -> Just AnnotatedLocation
-        "annotatedUser" -> Just AnnotatedUser
-        "lastSync" -> Just LastSync
-        "notes" -> Just Notes
-        "serialNumber" -> Just SerialNumber
-        "status" -> Just Status
-        "supportEndDate" -> Just SupportEndDate
-        _ -> Nothing
+instance FromHttpApiData ChromeosDevicesListOrderBy where
+    parseQueryParam = \case
+        "annotatedLocation" -> Right AnnotatedLocation
+        "annotatedUser" -> Right AnnotatedUser
+        "lastSync" -> Right LastSync
+        "notes" -> Right Notes
+        "serialNumber" -> Right SerialNumber
+        "status" -> Right Status
+        "supportEndDate" -> Right SupportEndDate
+        x -> Left ("Unable to parse ChromeosDevicesListOrderBy from: " <> x)
 
-instance ToText ChromeosDevicesListOrderBy where
-    toText = \case
+instance ToHttpApiData ChromeosDevicesListOrderBy where
+    toQueryParam = \case
         AnnotatedLocation -> "annotatedLocation"
         AnnotatedUser -> "annotatedUser"
         LastSync -> "lastSync"
@@ -745,19 +745,19 @@
     | UWPFull
       -- ^ @full@
       -- Include all fields associated with this user.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersWatchProjection
 
-instance FromText UsersWatchProjection where
-    fromText = \case
-        "basic" -> Just UWPBasic
-        "custom" -> Just UWPCustom
-        "full" -> Just UWPFull
-        _ -> Nothing
+instance FromHttpApiData UsersWatchProjection where
+    parseQueryParam = \case
+        "basic" -> Right UWPBasic
+        "custom" -> Right UWPCustom
+        "full" -> Right UWPFull
+        x -> Left ("Unable to parse UsersWatchProjection from: " <> x)
 
-instance ToText UsersWatchProjection where
-    toText = \case
+instance ToHttpApiData UsersWatchProjection where
+    toQueryParam = \case
         UWPBasic -> "basic"
         UWPCustom -> "custom"
         UWPFull -> "full"
@@ -779,19 +779,19 @@
     | UWOBGivenName
       -- ^ @givenName@
       -- User\'s given name.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersWatchOrderBy
 
-instance FromText UsersWatchOrderBy where
-    fromText = \case
-        "email" -> Just UWOBEmail
-        "familyName" -> Just UWOBFamilyName
-        "givenName" -> Just UWOBGivenName
-        _ -> Nothing
+instance FromHttpApiData UsersWatchOrderBy where
+    parseQueryParam = \case
+        "email" -> Right UWOBEmail
+        "familyName" -> Right UWOBFamilyName
+        "givenName" -> Right UWOBGivenName
+        x -> Left ("Unable to parse UsersWatchOrderBy from: " <> x)
 
-instance ToText UsersWatchOrderBy where
-    toText = \case
+instance ToHttpApiData UsersWatchOrderBy where
+    toQueryParam = \case
         UWOBEmail -> "email"
         UWOBFamilyName -> "familyName"
         UWOBGivenName -> "givenName"
@@ -811,18 +811,18 @@
     | CDLPFull
       -- ^ @FULL@
       -- Includes all metadata fields
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable ChromeosDevicesListProjection
 
-instance FromText ChromeosDevicesListProjection where
-    fromText = \case
-        "BASIC" -> Just CDLPBasic
-        "FULL" -> Just CDLPFull
-        _ -> Nothing
+instance FromHttpApiData ChromeosDevicesListProjection where
+    parseQueryParam = \case
+        "BASIC" -> Right CDLPBasic
+        "FULL" -> Right CDLPFull
+        x -> Left ("Unable to parse ChromeosDevicesListProjection from: " <> x)
 
-instance ToText ChromeosDevicesListProjection where
-    toText = \case
+instance ToHttpApiData ChromeosDevicesListProjection where
+    toQueryParam = \case
         CDLPBasic -> "BASIC"
         CDLPFull -> "FULL"
 
@@ -840,18 +840,18 @@
     | UGVTDomainPublic
       -- ^ @domain_public@
       -- Fetches the DOMAIN_PUBLIC view of the user.
-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
 
 instance Hashable UsersGetViewType
 
-instance FromText UsersGetViewType where
-    fromText = \case
-        "admin_view" -> Just UGVTAdminView
-        "domain_public" -> Just UGVTDomainPublic
-        _ -> Nothing
+instance FromHttpApiData UsersGetViewType where
+    parseQueryParam = \case
+        "admin_view" -> Right UGVTAdminView
+        "domain_public" -> Right UGVTDomainPublic
+        x -> Left ("Unable to parse UsersGetViewType from: " <> x)
 
-instance ToText UsersGetViewType where
-    toText = \case
+instance ToHttpApiData UsersGetViewType where
+    toQueryParam = \case
         UGVTAdminView -> "admin_view"
         UGVTDomainPublic -> "domain_public"
 
diff --git a/gen/Network/Google/Resource/Admin/Channels/Stop.hs b/gen/Network/Google/Resource/Admin/Channels/Stop.hs
--- a/gen/Network/Google/Resource/Admin/Channels/Stop.hs
+++ b/gen/Network/Google/Resource/Admin/Channels/Stop.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Admin.Channels.Stop
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Stop watching resources through this channel
 --
 -- /See:/ 'channelsStop' smart constructor.
-newtype ChannelsStop = ChannelsStop
+newtype ChannelsStop = ChannelsStop'
     { _csPayload :: Channel
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -68,7 +68,7 @@
     :: Channel -- ^ 'csPayload'
     -> ChannelsStop
 channelsStop pCsPayload_ =
-    ChannelsStop
+    ChannelsStop'
     { _csPayload = pCsPayload_
     }
 
@@ -79,7 +79,12 @@
 
 instance GoogleRequest ChannelsStop where
         type Rs ChannelsStop = ()
-        requestClient ChannelsStop{..}
+        type Scopes ChannelsStop =
+             '["https://www.googleapis.com/auth/admin.directory.user",
+               "https://www.googleapis.com/auth/admin.directory.user.alias",
+               "https://www.googleapis.com/auth/admin.directory.user.alias.readonly",
+               "https://www.googleapis.com/auth/admin.directory.user.readonly"]
+        requestClient ChannelsStop'{..}
           = go (Just AltJSON) _csPayload directoryService
           where go
                   = buildClient (Proxy :: Proxy ChannelsStopResource)
diff --git a/gen/Network/Google/Resource/Directory/Asps/Delete.hs b/gen/Network/Google/Resource/Directory/Asps/Delete.hs
--- a/gen/Network/Google/Resource/Directory/Asps/Delete.hs
+++ b/gen/Network/Google/Resource/Directory/Asps/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Asps.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Delete an ASP issued by a user.
 --
 -- /See:/ 'aspsDelete' smart constructor.
-data AspsDelete = AspsDelete
+data AspsDelete = AspsDelete'
     { _adCodeId  :: !(Textual Int32)
     , _adUserKey :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'adUserKey'
     -> AspsDelete
 aspsDelete pAdCodeId_ pAdUserKey_ =
-    AspsDelete
+    AspsDelete'
     { _adCodeId = _Coerce # pAdCodeId_
     , _adUserKey = pAdUserKey_
     }
@@ -91,7 +91,9 @@
 
 instance GoogleRequest AspsDelete where
         type Rs AspsDelete = ()
-        requestClient AspsDelete{..}
+        type Scopes AspsDelete =
+             '["https://www.googleapis.com/auth/admin.directory.user.security"]
+        requestClient AspsDelete'{..}
           = go _adUserKey _adCodeId (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Asps/Get.hs b/gen/Network/Google/Resource/Directory/Asps/Get.hs
--- a/gen/Network/Google/Resource/Directory/Asps/Get.hs
+++ b/gen/Network/Google/Resource/Directory/Asps/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Asps.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Get information about an ASP issued by a user.
 --
 -- /See:/ 'aspsGet' smart constructor.
-data AspsGet = AspsGet
+data AspsGet = AspsGet'
     { _agCodeId  :: !(Textual Int32)
     , _agUserKey :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'agUserKey'
     -> AspsGet
 aspsGet pAgCodeId_ pAgUserKey_ =
-    AspsGet
+    AspsGet'
     { _agCodeId = _Coerce # pAgCodeId_
     , _agUserKey = pAgUserKey_
     }
@@ -91,7 +91,9 @@
 
 instance GoogleRequest AspsGet where
         type Rs AspsGet = Asp
-        requestClient AspsGet{..}
+        type Scopes AspsGet =
+             '["https://www.googleapis.com/auth/admin.directory.user.security"]
+        requestClient AspsGet'{..}
           = go _agUserKey _agCodeId (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Asps/List.hs b/gen/Network/Google/Resource/Directory/Asps/List.hs
--- a/gen/Network/Google/Resource/Directory/Asps/List.hs
+++ b/gen/Network/Google/Resource/Directory/Asps/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Asps.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -53,7 +53,7 @@
 -- | List the ASPs issued by a user.
 --
 -- /See:/ 'aspsList' smart constructor.
-newtype AspsList = AspsList
+newtype AspsList = AspsList'
     { _alUserKey :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Text -- ^ 'alUserKey'
     -> AspsList
 aspsList pAlUserKey_ =
-    AspsList
+    AspsList'
     { _alUserKey = pAlUserKey_
     }
 
@@ -78,7 +78,9 @@
 
 instance GoogleRequest AspsList where
         type Rs AspsList = Asps
-        requestClient AspsList{..}
+        type Scopes AspsList =
+             '["https://www.googleapis.com/auth/admin.directory.user.security"]
+        requestClient AspsList'{..}
           = go _alUserKey (Just AltJSON) directoryService
           where go
                   = buildClient (Proxy :: Proxy AspsListResource)
diff --git a/gen/Network/Google/Resource/Directory/ChromeosDevices/Get.hs b/gen/Network/Google/Resource/Directory/ChromeosDevices/Get.hs
--- a/gen/Network/Google/Resource/Directory/ChromeosDevices/Get.hs
+++ b/gen/Network/Google/Resource/Directory/ChromeosDevices/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.ChromeosDevices.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -60,7 +60,7 @@
 -- | Retrieve Chrome OS Device
 --
 -- /See:/ 'chromeosDevicesGet' smart constructor.
-data ChromeosDevicesGet = ChromeosDevicesGet
+data ChromeosDevicesGet = ChromeosDevicesGet'
     { _cdgCustomerId :: !Text
     , _cdgDeviceId   :: !Text
     , _cdgProjection :: !(Maybe ChromeosDevicesGetProjection)
@@ -80,7 +80,7 @@
     -> Text -- ^ 'cdgDeviceId'
     -> ChromeosDevicesGet
 chromeosDevicesGet pCdgCustomerId_ pCdgDeviceId_ =
-    ChromeosDevicesGet
+    ChromeosDevicesGet'
     { _cdgCustomerId = pCdgCustomerId_
     , _cdgDeviceId = pCdgDeviceId_
     , _cdgProjection = Nothing
@@ -105,7 +105,10 @@
 
 instance GoogleRequest ChromeosDevicesGet where
         type Rs ChromeosDevicesGet = ChromeOSDevice
-        requestClient ChromeosDevicesGet{..}
+        type Scopes ChromeosDevicesGet =
+             '["https://www.googleapis.com/auth/admin.directory.device.chromeos",
+               "https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly"]
+        requestClient ChromeosDevicesGet'{..}
           = go _cdgCustomerId _cdgDeviceId _cdgProjection
               (Just AltJSON)
               directoryService
diff --git a/gen/Network/Google/Resource/Directory/ChromeosDevices/List.hs b/gen/Network/Google/Resource/Directory/ChromeosDevices/List.hs
--- a/gen/Network/Google/Resource/Directory/ChromeosDevices/List.hs
+++ b/gen/Network/Google/Resource/Directory/ChromeosDevices/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.ChromeosDevices.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -69,7 +69,7 @@
 -- | Retrieve all Chrome OS Devices of a customer (paginated)
 --
 -- /See:/ 'chromeosDevicesList' smart constructor.
-data ChromeosDevicesList = ChromeosDevicesList
+data ChromeosDevicesList = ChromeosDevicesList'
     { _cdlOrderBy    :: !(Maybe ChromeosDevicesListOrderBy)
     , _cdlCustomerId :: !Text
     , _cdlSortOrder  :: !(Maybe ChromeosDevicesListSortOrder)
@@ -100,7 +100,7 @@
     :: Text -- ^ 'cdlCustomerId'
     -> ChromeosDevicesList
 chromeosDevicesList pCdlCustomerId_ =
-    ChromeosDevicesList
+    ChromeosDevicesList'
     { _cdlOrderBy = Nothing
     , _cdlCustomerId = pCdlCustomerId_
     , _cdlSortOrder = Nothing
@@ -152,7 +152,10 @@
 
 instance GoogleRequest ChromeosDevicesList where
         type Rs ChromeosDevicesList = ChromeOSDevices
-        requestClient ChromeosDevicesList{..}
+        type Scopes ChromeosDevicesList =
+             '["https://www.googleapis.com/auth/admin.directory.device.chromeos",
+               "https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly"]
+        requestClient ChromeosDevicesList'{..}
           = go _cdlCustomerId _cdlOrderBy _cdlSortOrder
               _cdlQuery
               _cdlProjection
diff --git a/gen/Network/Google/Resource/Directory/ChromeosDevices/Patch.hs b/gen/Network/Google/Resource/Directory/ChromeosDevices/Patch.hs
--- a/gen/Network/Google/Resource/Directory/ChromeosDevices/Patch.hs
+++ b/gen/Network/Google/Resource/Directory/ChromeosDevices/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.ChromeosDevices.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -63,7 +63,7 @@
 -- | Update Chrome OS Device. This method supports patch semantics.
 --
 -- /See:/ 'chromeosDevicesPatch' smart constructor.
-data ChromeosDevicesPatch = ChromeosDevicesPatch
+data ChromeosDevicesPatch = ChromeosDevicesPatch'
     { _cdpPayload    :: !ChromeOSDevice
     , _cdpCustomerId :: !Text
     , _cdpDeviceId   :: !Text
@@ -87,7 +87,7 @@
     -> Text -- ^ 'cdpDeviceId'
     -> ChromeosDevicesPatch
 chromeosDevicesPatch pCdpPayload_ pCdpCustomerId_ pCdpDeviceId_ =
-    ChromeosDevicesPatch
+    ChromeosDevicesPatch'
     { _cdpPayload = pCdpPayload_
     , _cdpCustomerId = pCdpCustomerId_
     , _cdpDeviceId = pCdpDeviceId_
@@ -118,7 +118,9 @@
 
 instance GoogleRequest ChromeosDevicesPatch where
         type Rs ChromeosDevicesPatch = ChromeOSDevice
-        requestClient ChromeosDevicesPatch{..}
+        type Scopes ChromeosDevicesPatch =
+             '["https://www.googleapis.com/auth/admin.directory.device.chromeos"]
+        requestClient ChromeosDevicesPatch'{..}
           = go _cdpCustomerId _cdpDeviceId _cdpProjection
               (Just AltJSON)
               _cdpPayload
diff --git a/gen/Network/Google/Resource/Directory/ChromeosDevices/Update.hs b/gen/Network/Google/Resource/Directory/ChromeosDevices/Update.hs
--- a/gen/Network/Google/Resource/Directory/ChromeosDevices/Update.hs
+++ b/gen/Network/Google/Resource/Directory/ChromeosDevices/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.ChromeosDevices.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -63,7 +63,7 @@
 -- | Update Chrome OS Device
 --
 -- /See:/ 'chromeosDevicesUpdate' smart constructor.
-data ChromeosDevicesUpdate = ChromeosDevicesUpdate
+data ChromeosDevicesUpdate = ChromeosDevicesUpdate'
     { _cduPayload    :: !ChromeOSDevice
     , _cduCustomerId :: !Text
     , _cduDeviceId   :: !Text
@@ -87,7 +87,7 @@
     -> Text -- ^ 'cduDeviceId'
     -> ChromeosDevicesUpdate
 chromeosDevicesUpdate pCduPayload_ pCduCustomerId_ pCduDeviceId_ =
-    ChromeosDevicesUpdate
+    ChromeosDevicesUpdate'
     { _cduPayload = pCduPayload_
     , _cduCustomerId = pCduCustomerId_
     , _cduDeviceId = pCduDeviceId_
@@ -118,7 +118,9 @@
 
 instance GoogleRequest ChromeosDevicesUpdate where
         type Rs ChromeosDevicesUpdate = ChromeOSDevice
-        requestClient ChromeosDevicesUpdate{..}
+        type Scopes ChromeosDevicesUpdate =
+             '["https://www.googleapis.com/auth/admin.directory.device.chromeos"]
+        requestClient ChromeosDevicesUpdate'{..}
           = go _cduCustomerId _cduDeviceId _cduProjection
               (Just AltJSON)
               _cduPayload
diff --git a/gen/Network/Google/Resource/Directory/Customers/Get.hs b/gen/Network/Google/Resource/Directory/Customers/Get.hs
--- a/gen/Network/Google/Resource/Directory/Customers/Get.hs
+++ b/gen/Network/Google/Resource/Directory/Customers/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Customers.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -52,7 +52,7 @@
 -- | Retrives a customer.
 --
 -- /See:/ 'customersGet' smart constructor.
-newtype CustomersGet = CustomersGet
+newtype CustomersGet = CustomersGet'
     { _cgCustomerKey :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -65,7 +65,7 @@
     :: Text -- ^ 'cgCustomerKey'
     -> CustomersGet
 customersGet pCgCustomerKey_ =
-    CustomersGet
+    CustomersGet'
     { _cgCustomerKey = pCgCustomerKey_
     }
 
@@ -77,7 +77,10 @@
 
 instance GoogleRequest CustomersGet where
         type Rs CustomersGet = Customer
-        requestClient CustomersGet{..}
+        type Scopes CustomersGet =
+             '["https://www.googleapis.com/auth/admin.directory.customer",
+               "https://www.googleapis.com/auth/admin.directory.customer.readonly"]
+        requestClient CustomersGet'{..}
           = go _cgCustomerKey (Just AltJSON) directoryService
           where go
                   = buildClient (Proxy :: Proxy CustomersGetResource)
diff --git a/gen/Network/Google/Resource/Directory/Customers/Patch.hs b/gen/Network/Google/Resource/Directory/Customers/Patch.hs
--- a/gen/Network/Google/Resource/Directory/Customers/Patch.hs
+++ b/gen/Network/Google/Resource/Directory/Customers/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Customers.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -54,7 +54,7 @@
 -- | Updates a customer. This method supports patch semantics.
 --
 -- /See:/ 'customersPatch' smart constructor.
-data CustomersPatch = CustomersPatch
+data CustomersPatch = CustomersPatch'
     { _cpCustomerKey :: !Text
     , _cpPayload     :: !Customer
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Customer -- ^ 'cpPayload'
     -> CustomersPatch
 customersPatch pCpCustomerKey_ pCpPayload_ =
-    CustomersPatch
+    CustomersPatch'
     { _cpCustomerKey = pCpCustomerKey_
     , _cpPayload = pCpPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest CustomersPatch where
         type Rs CustomersPatch = Customer
-        requestClient CustomersPatch{..}
+        type Scopes CustomersPatch =
+             '["https://www.googleapis.com/auth/admin.directory.customer"]
+        requestClient CustomersPatch'{..}
           = go _cpCustomerKey (Just AltJSON) _cpPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Customers/Update.hs b/gen/Network/Google/Resource/Directory/Customers/Update.hs
--- a/gen/Network/Google/Resource/Directory/Customers/Update.hs
+++ b/gen/Network/Google/Resource/Directory/Customers/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Customers.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -54,7 +54,7 @@
 -- | Updates a customer.
 --
 -- /See:/ 'customersUpdate' smart constructor.
-data CustomersUpdate = CustomersUpdate
+data CustomersUpdate = CustomersUpdate'
     { _cuCustomerKey :: !Text
     , _cuPayload     :: !Customer
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Customer -- ^ 'cuPayload'
     -> CustomersUpdate
 customersUpdate pCuCustomerKey_ pCuPayload_ =
-    CustomersUpdate
+    CustomersUpdate'
     { _cuCustomerKey = pCuCustomerKey_
     , _cuPayload = pCuPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest CustomersUpdate where
         type Rs CustomersUpdate = Customer
-        requestClient CustomersUpdate{..}
+        type Scopes CustomersUpdate =
+             '["https://www.googleapis.com/auth/admin.directory.customer"]
+        requestClient CustomersUpdate'{..}
           = go _cuCustomerKey (Just AltJSON) _cuPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/DomainAliases/Delete.hs b/gen/Network/Google/Resource/Directory/DomainAliases/Delete.hs
--- a/gen/Network/Google/Resource/Directory/DomainAliases/Delete.hs
+++ b/gen/Network/Google/Resource/Directory/DomainAliases/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.DomainAliases.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Deletes a Domain Alias of the customer.
 --
 -- /See:/ 'domainAliasesDelete' smart constructor.
-data DomainAliasesDelete = DomainAliasesDelete
+data DomainAliasesDelete = DomainAliasesDelete'
     { _dadDomainAliasName :: !Text
     , _dadCustomer        :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'dadCustomer'
     -> DomainAliasesDelete
 domainAliasesDelete pDadDomainAliasName_ pDadCustomer_ =
-    DomainAliasesDelete
+    DomainAliasesDelete'
     { _dadDomainAliasName = pDadDomainAliasName_
     , _dadCustomer = pDadCustomer_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest DomainAliasesDelete where
         type Rs DomainAliasesDelete = ()
-        requestClient DomainAliasesDelete{..}
+        type Scopes DomainAliasesDelete =
+             '["https://www.googleapis.com/auth/admin.directory.domain"]
+        requestClient DomainAliasesDelete'{..}
           = go _dadCustomer _dadDomainAliasName (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/DomainAliases/Get.hs b/gen/Network/Google/Resource/Directory/DomainAliases/Get.hs
--- a/gen/Network/Google/Resource/Directory/DomainAliases/Get.hs
+++ b/gen/Network/Google/Resource/Directory/DomainAliases/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.DomainAliases.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Retrieves a domain alias of the customer.
 --
 -- /See:/ 'domainAliasesGet' smart constructor.
-data DomainAliasesGet = DomainAliasesGet
+data DomainAliasesGet = DomainAliasesGet'
     { _dagDomainAliasName :: !Text
     , _dagCustomer        :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'dagCustomer'
     -> DomainAliasesGet
 domainAliasesGet pDagDomainAliasName_ pDagCustomer_ =
-    DomainAliasesGet
+    DomainAliasesGet'
     { _dagDomainAliasName = pDagDomainAliasName_
     , _dagCustomer = pDagCustomer_
     }
@@ -90,7 +90,10 @@
 
 instance GoogleRequest DomainAliasesGet where
         type Rs DomainAliasesGet = DomainAlias
-        requestClient DomainAliasesGet{..}
+        type Scopes DomainAliasesGet =
+             '["https://www.googleapis.com/auth/admin.directory.domain",
+               "https://www.googleapis.com/auth/admin.directory.domain.readonly"]
+        requestClient DomainAliasesGet'{..}
           = go _dagCustomer _dagDomainAliasName (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/DomainAliases/Insert.hs b/gen/Network/Google/Resource/Directory/DomainAliases/Insert.hs
--- a/gen/Network/Google/Resource/Directory/DomainAliases/Insert.hs
+++ b/gen/Network/Google/Resource/Directory/DomainAliases/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.DomainAliases.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- | Inserts a Domain alias of the customer.
 --
 -- /See:/ 'domainAliasesInsert' smart constructor.
-data DomainAliasesInsert = DomainAliasesInsert
+data DomainAliasesInsert = DomainAliasesInsert'
     { _daiPayload  :: !DomainAlias
     , _daiCustomer :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -73,7 +73,7 @@
     -> Text -- ^ 'daiCustomer'
     -> DomainAliasesInsert
 domainAliasesInsert pDaiPayload_ pDaiCustomer_ =
-    DomainAliasesInsert
+    DomainAliasesInsert'
     { _daiPayload = pDaiPayload_
     , _daiCustomer = pDaiCustomer_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest DomainAliasesInsert where
         type Rs DomainAliasesInsert = DomainAlias
-        requestClient DomainAliasesInsert{..}
+        type Scopes DomainAliasesInsert =
+             '["https://www.googleapis.com/auth/admin.directory.domain"]
+        requestClient DomainAliasesInsert'{..}
           = go _daiCustomer (Just AltJSON) _daiPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/DomainAliases/List.hs b/gen/Network/Google/Resource/Directory/DomainAliases/List.hs
--- a/gen/Network/Google/Resource/Directory/DomainAliases/List.hs
+++ b/gen/Network/Google/Resource/Directory/DomainAliases/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.DomainAliases.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Lists the domain aliases of the customer.
 --
 -- /See:/ 'domainAliasesList' smart constructor.
-data DomainAliasesList = DomainAliasesList
+data DomainAliasesList = DomainAliasesList'
     { _dalCustomer         :: !Text
     , _dalParentDomainName :: !(Maybe Text)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     :: Text -- ^ 'dalCustomer'
     -> DomainAliasesList
 domainAliasesList pDalCustomer_ =
-    DomainAliasesList
+    DomainAliasesList'
     { _dalCustomer = pDalCustomer_
     , _dalParentDomainName = Nothing
     }
@@ -89,7 +89,10 @@
 
 instance GoogleRequest DomainAliasesList where
         type Rs DomainAliasesList = DomainAliases
-        requestClient DomainAliasesList{..}
+        type Scopes DomainAliasesList =
+             '["https://www.googleapis.com/auth/admin.directory.domain",
+               "https://www.googleapis.com/auth/admin.directory.domain.readonly"]
+        requestClient DomainAliasesList'{..}
           = go _dalCustomer _dalParentDomainName (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Domains/Delete.hs b/gen/Network/Google/Resource/Directory/Domains/Delete.hs
--- a/gen/Network/Google/Resource/Directory/Domains/Delete.hs
+++ b/gen/Network/Google/Resource/Directory/Domains/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Domains.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Deletes a domain of the customer.
 --
 -- /See:/ 'domainsDelete' smart constructor.
-data DomainsDelete = DomainsDelete
+data DomainsDelete = DomainsDelete'
     { _ddCustomer   :: !Text
     , _ddDomainName :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'ddDomainName'
     -> DomainsDelete
 domainsDelete pDdCustomer_ pDdDomainName_ =
-    DomainsDelete
+    DomainsDelete'
     { _ddCustomer = pDdCustomer_
     , _ddDomainName = pDdDomainName_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest DomainsDelete where
         type Rs DomainsDelete = ()
-        requestClient DomainsDelete{..}
+        type Scopes DomainsDelete =
+             '["https://www.googleapis.com/auth/admin.directory.domain"]
+        requestClient DomainsDelete'{..}
           = go _ddCustomer _ddDomainName (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Domains/Get.hs b/gen/Network/Google/Resource/Directory/Domains/Get.hs
--- a/gen/Network/Google/Resource/Directory/Domains/Get.hs
+++ b/gen/Network/Google/Resource/Directory/Domains/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Domains.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Retrives a domain of the customer.
 --
 -- /See:/ 'domainsGet' smart constructor.
-data DomainsGet = DomainsGet
+data DomainsGet = DomainsGet'
     { _dgCustomer   :: !Text
     , _dgDomainName :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'dgDomainName'
     -> DomainsGet
 domainsGet pDgCustomer_ pDgDomainName_ =
-    DomainsGet
+    DomainsGet'
     { _dgCustomer = pDgCustomer_
     , _dgDomainName = pDgDomainName_
     }
@@ -89,7 +89,10 @@
 
 instance GoogleRequest DomainsGet where
         type Rs DomainsGet = Domains
-        requestClient DomainsGet{..}
+        type Scopes DomainsGet =
+             '["https://www.googleapis.com/auth/admin.directory.domain",
+               "https://www.googleapis.com/auth/admin.directory.domain.readonly"]
+        requestClient DomainsGet'{..}
           = go _dgCustomer _dgDomainName (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Domains/Insert.hs b/gen/Network/Google/Resource/Directory/Domains/Insert.hs
--- a/gen/Network/Google/Resource/Directory/Domains/Insert.hs
+++ b/gen/Network/Google/Resource/Directory/Domains/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Domains.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Inserts a domain of the customer.
 --
 -- /See:/ 'domainsInsert' smart constructor.
-data DomainsInsert = DomainsInsert
+data DomainsInsert = DomainsInsert'
     { _diPayload  :: !Domains
     , _diCustomer :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'diCustomer'
     -> DomainsInsert
 domainsInsert pDiPayload_ pDiCustomer_ =
-    DomainsInsert
+    DomainsInsert'
     { _diPayload = pDiPayload_
     , _diCustomer = pDiCustomer_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest DomainsInsert where
         type Rs DomainsInsert = Domains
-        requestClient DomainsInsert{..}
+        type Scopes DomainsInsert =
+             '["https://www.googleapis.com/auth/admin.directory.domain"]
+        requestClient DomainsInsert'{..}
           = go _diCustomer (Just AltJSON) _diPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Domains/List.hs b/gen/Network/Google/Resource/Directory/Domains/List.hs
--- a/gen/Network/Google/Resource/Directory/Domains/List.hs
+++ b/gen/Network/Google/Resource/Directory/Domains/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Domains.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -53,7 +53,7 @@
 -- | Lists the domains of the customer.
 --
 -- /See:/ 'domainsList' smart constructor.
-newtype DomainsList = DomainsList
+newtype DomainsList = DomainsList'
     { _dlCustomer :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Text -- ^ 'dlCustomer'
     -> DomainsList
 domainsList pDlCustomer_ =
-    DomainsList
+    DomainsList'
     { _dlCustomer = pDlCustomer_
     }
 
@@ -77,7 +77,10 @@
 
 instance GoogleRequest DomainsList where
         type Rs DomainsList = Domains2
-        requestClient DomainsList{..}
+        type Scopes DomainsList =
+             '["https://www.googleapis.com/auth/admin.directory.domain",
+               "https://www.googleapis.com/auth/admin.directory.domain.readonly"]
+        requestClient DomainsList'{..}
           = go _dlCustomer (Just AltJSON) directoryService
           where go
                   = buildClient (Proxy :: Proxy DomainsListResource)
diff --git a/gen/Network/Google/Resource/Directory/Groups/Aliases/Delete.hs b/gen/Network/Google/Resource/Directory/Groups/Aliases/Delete.hs
--- a/gen/Network/Google/Resource/Directory/Groups/Aliases/Delete.hs
+++ b/gen/Network/Google/Resource/Directory/Groups/Aliases/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Groups.Aliases.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Remove a alias for the group
 --
 -- /See:/ 'groupsAliasesDelete' smart constructor.
-data GroupsAliasesDelete = GroupsAliasesDelete
+data GroupsAliasesDelete = GroupsAliasesDelete'
     { _gadGroupKey :: !Text
     , _gadAlias    :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'gadAlias'
     -> GroupsAliasesDelete
 groupsAliasesDelete pGadGroupKey_ pGadAlias_ =
-    GroupsAliasesDelete
+    GroupsAliasesDelete'
     { _gadGroupKey = pGadGroupKey_
     , _gadAlias = pGadAlias_
     }
@@ -88,7 +88,9 @@
 
 instance GoogleRequest GroupsAliasesDelete where
         type Rs GroupsAliasesDelete = ()
-        requestClient GroupsAliasesDelete{..}
+        type Scopes GroupsAliasesDelete =
+             '["https://www.googleapis.com/auth/admin.directory.group"]
+        requestClient GroupsAliasesDelete'{..}
           = go _gadGroupKey _gadAlias (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Groups/Aliases/Insert.hs b/gen/Network/Google/Resource/Directory/Groups/Aliases/Insert.hs
--- a/gen/Network/Google/Resource/Directory/Groups/Aliases/Insert.hs
+++ b/gen/Network/Google/Resource/Directory/Groups/Aliases/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Groups.Aliases.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Add a alias for the group
 --
 -- /See:/ 'groupsAliasesInsert' smart constructor.
-data GroupsAliasesInsert = GroupsAliasesInsert
+data GroupsAliasesInsert = GroupsAliasesInsert'
     { _gaiGroupKey :: !Text
     , _gaiPayload  :: !Alias
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Alias -- ^ 'gaiPayload'
     -> GroupsAliasesInsert
 groupsAliasesInsert pGaiGroupKey_ pGaiPayload_ =
-    GroupsAliasesInsert
+    GroupsAliasesInsert'
     { _gaiGroupKey = pGaiGroupKey_
     , _gaiPayload = pGaiPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest GroupsAliasesInsert where
         type Rs GroupsAliasesInsert = Alias
-        requestClient GroupsAliasesInsert{..}
+        type Scopes GroupsAliasesInsert =
+             '["https://www.googleapis.com/auth/admin.directory.group"]
+        requestClient GroupsAliasesInsert'{..}
           = go _gaiGroupKey (Just AltJSON) _gaiPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Groups/Aliases/List.hs b/gen/Network/Google/Resource/Directory/Groups/Aliases/List.hs
--- a/gen/Network/Google/Resource/Directory/Groups/Aliases/List.hs
+++ b/gen/Network/Google/Resource/Directory/Groups/Aliases/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Groups.Aliases.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -53,7 +53,7 @@
 -- | List all aliases for a group
 --
 -- /See:/ 'groupsAliasesList' smart constructor.
-newtype GroupsAliasesList = GroupsAliasesList
+newtype GroupsAliasesList = GroupsAliasesList'
     { _galGroupKey :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Text -- ^ 'galGroupKey'
     -> GroupsAliasesList
 groupsAliasesList pGalGroupKey_ =
-    GroupsAliasesList
+    GroupsAliasesList'
     { _galGroupKey = pGalGroupKey_
     }
 
@@ -77,7 +77,10 @@
 
 instance GoogleRequest GroupsAliasesList where
         type Rs GroupsAliasesList = Aliases
-        requestClient GroupsAliasesList{..}
+        type Scopes GroupsAliasesList =
+             '["https://www.googleapis.com/auth/admin.directory.group",
+               "https://www.googleapis.com/auth/admin.directory.group.readonly"]
+        requestClient GroupsAliasesList'{..}
           = go _galGroupKey (Just AltJSON) directoryService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/Directory/Groups/Delete.hs b/gen/Network/Google/Resource/Directory/Groups/Delete.hs
--- a/gen/Network/Google/Resource/Directory/Groups/Delete.hs
+++ b/gen/Network/Google/Resource/Directory/Groups/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Groups.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -52,7 +52,7 @@
 -- | Delete Group
 --
 -- /See:/ 'groupsDelete' smart constructor.
-newtype GroupsDelete = GroupsDelete
+newtype GroupsDelete = GroupsDelete'
     { _gdGroupKey :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -65,7 +65,7 @@
     :: Text -- ^ 'gdGroupKey'
     -> GroupsDelete
 groupsDelete pGdGroupKey_ =
-    GroupsDelete
+    GroupsDelete'
     { _gdGroupKey = pGdGroupKey_
     }
 
@@ -76,7 +76,9 @@
 
 instance GoogleRequest GroupsDelete where
         type Rs GroupsDelete = ()
-        requestClient GroupsDelete{..}
+        type Scopes GroupsDelete =
+             '["https://www.googleapis.com/auth/admin.directory.group"]
+        requestClient GroupsDelete'{..}
           = go _gdGroupKey (Just AltJSON) directoryService
           where go
                   = buildClient (Proxy :: Proxy GroupsDeleteResource)
diff --git a/gen/Network/Google/Resource/Directory/Groups/Get.hs b/gen/Network/Google/Resource/Directory/Groups/Get.hs
--- a/gen/Network/Google/Resource/Directory/Groups/Get.hs
+++ b/gen/Network/Google/Resource/Directory/Groups/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Groups.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -52,7 +52,7 @@
 -- | Retrieve Group
 --
 -- /See:/ 'groupsGet' smart constructor.
-newtype GroupsGet = GroupsGet
+newtype GroupsGet = GroupsGet'
     { _ggGroupKey :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -65,7 +65,7 @@
     :: Text -- ^ 'ggGroupKey'
     -> GroupsGet
 groupsGet pGgGroupKey_ =
-    GroupsGet
+    GroupsGet'
     { _ggGroupKey = pGgGroupKey_
     }
 
@@ -76,7 +76,10 @@
 
 instance GoogleRequest GroupsGet where
         type Rs GroupsGet = Group
-        requestClient GroupsGet{..}
+        type Scopes GroupsGet =
+             '["https://www.googleapis.com/auth/admin.directory.group",
+               "https://www.googleapis.com/auth/admin.directory.group.readonly"]
+        requestClient GroupsGet'{..}
           = go _ggGroupKey (Just AltJSON) directoryService
           where go
                   = buildClient (Proxy :: Proxy GroupsGetResource)
diff --git a/gen/Network/Google/Resource/Directory/Groups/Insert.hs b/gen/Network/Google/Resource/Directory/Groups/Insert.hs
--- a/gen/Network/Google/Resource/Directory/Groups/Insert.hs
+++ b/gen/Network/Google/Resource/Directory/Groups/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Groups.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -52,7 +52,7 @@
 -- | Create Group
 --
 -- /See:/ 'groupsInsert' smart constructor.
-newtype GroupsInsert = GroupsInsert
+newtype GroupsInsert = GroupsInsert'
     { _giPayload :: Group
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -65,7 +65,7 @@
     :: Group -- ^ 'giPayload'
     -> GroupsInsert
 groupsInsert pGiPayload_ =
-    GroupsInsert
+    GroupsInsert'
     { _giPayload = pGiPayload_
     }
 
@@ -76,7 +76,9 @@
 
 instance GoogleRequest GroupsInsert where
         type Rs GroupsInsert = Group
-        requestClient GroupsInsert{..}
+        type Scopes GroupsInsert =
+             '["https://www.googleapis.com/auth/admin.directory.group"]
+        requestClient GroupsInsert'{..}
           = go (Just AltJSON) _giPayload directoryService
           where go
                   = buildClient (Proxy :: Proxy GroupsInsertResource)
diff --git a/gen/Network/Google/Resource/Directory/Groups/List.hs b/gen/Network/Google/Resource/Directory/Groups/List.hs
--- a/gen/Network/Google/Resource/Directory/Groups/List.hs
+++ b/gen/Network/Google/Resource/Directory/Groups/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Groups.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -60,7 +60,7 @@
 -- | Retrieve all groups in a domain (paginated)
 --
 -- /See:/ 'groupsList' smart constructor.
-data GroupsList = GroupsList
+data GroupsList = GroupsList'
     { _glDomain     :: !(Maybe Text)
     , _glCustomer   :: !(Maybe Text)
     , _glPageToken  :: !(Maybe Text)
@@ -84,7 +84,7 @@
 groupsList
     :: GroupsList
 groupsList =
-    GroupsList
+    GroupsList'
     { _glDomain = Nothing
     , _glCustomer = Nothing
     , _glPageToken = Nothing
@@ -123,7 +123,10 @@
 
 instance GoogleRequest GroupsList where
         type Rs GroupsList = Groups
-        requestClient GroupsList{..}
+        type Scopes GroupsList =
+             '["https://www.googleapis.com/auth/admin.directory.group",
+               "https://www.googleapis.com/auth/admin.directory.group.readonly"]
+        requestClient GroupsList'{..}
           = go _glDomain _glCustomer _glPageToken _glUserKey
               _glMaxResults
               (Just AltJSON)
diff --git a/gen/Network/Google/Resource/Directory/Groups/Patch.hs b/gen/Network/Google/Resource/Directory/Groups/Patch.hs
--- a/gen/Network/Google/Resource/Directory/Groups/Patch.hs
+++ b/gen/Network/Google/Resource/Directory/Groups/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Groups.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -54,7 +54,7 @@
 -- | Update Group. This method supports patch semantics.
 --
 -- /See:/ 'groupsPatch' smart constructor.
-data GroupsPatch = GroupsPatch
+data GroupsPatch = GroupsPatch'
     { _gpGroupKey :: !Text
     , _gpPayload  :: !Group
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Group -- ^ 'gpPayload'
     -> GroupsPatch
 groupsPatch pGpGroupKey_ pGpPayload_ =
-    GroupsPatch
+    GroupsPatch'
     { _gpGroupKey = pGpGroupKey_
     , _gpPayload = pGpPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest GroupsPatch where
         type Rs GroupsPatch = Group
-        requestClient GroupsPatch{..}
+        type Scopes GroupsPatch =
+             '["https://www.googleapis.com/auth/admin.directory.group"]
+        requestClient GroupsPatch'{..}
           = go _gpGroupKey (Just AltJSON) _gpPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Groups/Update.hs b/gen/Network/Google/Resource/Directory/Groups/Update.hs
--- a/gen/Network/Google/Resource/Directory/Groups/Update.hs
+++ b/gen/Network/Google/Resource/Directory/Groups/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Groups.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -54,7 +54,7 @@
 -- | Update Group
 --
 -- /See:/ 'groupsUpdate' smart constructor.
-data GroupsUpdate = GroupsUpdate
+data GroupsUpdate = GroupsUpdate'
     { _guGroupKey :: !Text
     , _guPayload  :: !Group
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Group -- ^ 'guPayload'
     -> GroupsUpdate
 groupsUpdate pGuGroupKey_ pGuPayload_ =
-    GroupsUpdate
+    GroupsUpdate'
     { _guGroupKey = pGuGroupKey_
     , _guPayload = pGuPayload_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest GroupsUpdate where
         type Rs GroupsUpdate = Group
-        requestClient GroupsUpdate{..}
+        type Scopes GroupsUpdate =
+             '["https://www.googleapis.com/auth/admin.directory.group"]
+        requestClient GroupsUpdate'{..}
           = go _guGroupKey (Just AltJSON) _guPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Members/Delete.hs b/gen/Network/Google/Resource/Directory/Members/Delete.hs
--- a/gen/Network/Google/Resource/Directory/Members/Delete.hs
+++ b/gen/Network/Google/Resource/Directory/Members/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Members.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Remove membership.
 --
 -- /See:/ 'membersDelete' smart constructor.
-data MembersDelete = MembersDelete
+data MembersDelete = MembersDelete'
     { _mdMemberKey :: !Text
     , _mdGroupKey  :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'mdGroupKey'
     -> MembersDelete
 membersDelete pMdMemberKey_ pMdGroupKey_ =
-    MembersDelete
+    MembersDelete'
     { _mdMemberKey = pMdMemberKey_
     , _mdGroupKey = pMdGroupKey_
     }
@@ -89,7 +89,10 @@
 
 instance GoogleRequest MembersDelete where
         type Rs MembersDelete = ()
-        requestClient MembersDelete{..}
+        type Scopes MembersDelete =
+             '["https://www.googleapis.com/auth/admin.directory.group",
+               "https://www.googleapis.com/auth/admin.directory.group.member"]
+        requestClient MembersDelete'{..}
           = go _mdGroupKey _mdMemberKey (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Members/Get.hs b/gen/Network/Google/Resource/Directory/Members/Get.hs
--- a/gen/Network/Google/Resource/Directory/Members/Get.hs
+++ b/gen/Network/Google/Resource/Directory/Members/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Members.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Retrieve Group Member
 --
 -- /See:/ 'membersGet' smart constructor.
-data MembersGet = MembersGet
+data MembersGet = MembersGet'
     { _mgMemberKey :: !Text
     , _mgGroupKey  :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'mgGroupKey'
     -> MembersGet
 membersGet pMgMemberKey_ pMgGroupKey_ =
-    MembersGet
+    MembersGet'
     { _mgMemberKey = pMgMemberKey_
     , _mgGroupKey = pMgGroupKey_
     }
@@ -89,7 +89,12 @@
 
 instance GoogleRequest MembersGet where
         type Rs MembersGet = Member
-        requestClient MembersGet{..}
+        type Scopes MembersGet =
+             '["https://www.googleapis.com/auth/admin.directory.group",
+               "https://www.googleapis.com/auth/admin.directory.group.member",
+               "https://www.googleapis.com/auth/admin.directory.group.member.readonly",
+               "https://www.googleapis.com/auth/admin.directory.group.readonly"]
+        requestClient MembersGet'{..}
           = go _mgGroupKey _mgMemberKey (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Members/Insert.hs b/gen/Network/Google/Resource/Directory/Members/Insert.hs
--- a/gen/Network/Google/Resource/Directory/Members/Insert.hs
+++ b/gen/Network/Google/Resource/Directory/Members/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Members.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Add user to the specified group.
 --
 -- /See:/ 'membersInsert' smart constructor.
-data MembersInsert = MembersInsert
+data MembersInsert = MembersInsert'
     { _miGroupKey :: !Text
     , _miPayload  :: !Member
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Member -- ^ 'miPayload'
     -> MembersInsert
 membersInsert pMiGroupKey_ pMiPayload_ =
-    MembersInsert
+    MembersInsert'
     { _miGroupKey = pMiGroupKey_
     , _miPayload = pMiPayload_
     }
@@ -89,7 +89,10 @@
 
 instance GoogleRequest MembersInsert where
         type Rs MembersInsert = Member
-        requestClient MembersInsert{..}
+        type Scopes MembersInsert =
+             '["https://www.googleapis.com/auth/admin.directory.group",
+               "https://www.googleapis.com/auth/admin.directory.group.member"]
+        requestClient MembersInsert'{..}
           = go _miGroupKey (Just AltJSON) _miPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Members/List.hs b/gen/Network/Google/Resource/Directory/Members/List.hs
--- a/gen/Network/Google/Resource/Directory/Members/List.hs
+++ b/gen/Network/Google/Resource/Directory/Members/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Members.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -59,7 +59,7 @@
 -- | Retrieve all members in a group (paginated)
 --
 -- /See:/ 'membersList' smart constructor.
-data MembersList = MembersList
+data MembersList = MembersList'
     { _mlRoles      :: !(Maybe Text)
     , _mlGroupKey   :: !Text
     , _mlPageToken  :: !(Maybe Text)
@@ -81,7 +81,7 @@
     :: Text -- ^ 'mlGroupKey'
     -> MembersList
 membersList pMlGroupKey_ =
-    MembersList
+    MembersList'
     { _mlRoles = Nothing
     , _mlGroupKey = pMlGroupKey_
     , _mlPageToken = Nothing
@@ -110,7 +110,12 @@
 
 instance GoogleRequest MembersList where
         type Rs MembersList = Members
-        requestClient MembersList{..}
+        type Scopes MembersList =
+             '["https://www.googleapis.com/auth/admin.directory.group",
+               "https://www.googleapis.com/auth/admin.directory.group.member",
+               "https://www.googleapis.com/auth/admin.directory.group.member.readonly",
+               "https://www.googleapis.com/auth/admin.directory.group.readonly"]
+        requestClient MembersList'{..}
           = go _mlGroupKey _mlRoles _mlPageToken _mlMaxResults
               (Just AltJSON)
               directoryService
diff --git a/gen/Network/Google/Resource/Directory/Members/Patch.hs b/gen/Network/Google/Resource/Directory/Members/Patch.hs
--- a/gen/Network/Google/Resource/Directory/Members/Patch.hs
+++ b/gen/Network/Google/Resource/Directory/Members/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Members.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -59,7 +59,7 @@
 -- patch semantics.
 --
 -- /See:/ 'membersPatch' smart constructor.
-data MembersPatch = MembersPatch
+data MembersPatch = MembersPatch'
     { _mpMemberKey :: !Text
     , _mpGroupKey  :: !Text
     , _mpPayload   :: !Member
@@ -80,7 +80,7 @@
     -> Member -- ^ 'mpPayload'
     -> MembersPatch
 membersPatch pMpMemberKey_ pMpGroupKey_ pMpPayload_ =
-    MembersPatch
+    MembersPatch'
     { _mpMemberKey = pMpMemberKey_
     , _mpGroupKey = pMpGroupKey_
     , _mpPayload = pMpPayload_
@@ -105,7 +105,10 @@
 
 instance GoogleRequest MembersPatch where
         type Rs MembersPatch = Member
-        requestClient MembersPatch{..}
+        type Scopes MembersPatch =
+             '["https://www.googleapis.com/auth/admin.directory.group",
+               "https://www.googleapis.com/auth/admin.directory.group.member"]
+        requestClient MembersPatch'{..}
           = go _mpGroupKey _mpMemberKey (Just AltJSON)
               _mpPayload
               directoryService
diff --git a/gen/Network/Google/Resource/Directory/Members/Update.hs b/gen/Network/Google/Resource/Directory/Members/Update.hs
--- a/gen/Network/Google/Resource/Directory/Members/Update.hs
+++ b/gen/Network/Google/Resource/Directory/Members/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Members.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -57,7 +57,7 @@
 -- | Update membership of a user in the specified group.
 --
 -- /See:/ 'membersUpdate' smart constructor.
-data MembersUpdate = MembersUpdate
+data MembersUpdate = MembersUpdate'
     { _muMemberKey :: !Text
     , _muGroupKey  :: !Text
     , _muPayload   :: !Member
@@ -78,7 +78,7 @@
     -> Member -- ^ 'muPayload'
     -> MembersUpdate
 membersUpdate pMuMemberKey_ pMuGroupKey_ pMuPayload_ =
-    MembersUpdate
+    MembersUpdate'
     { _muMemberKey = pMuMemberKey_
     , _muGroupKey = pMuGroupKey_
     , _muPayload = pMuPayload_
@@ -103,7 +103,10 @@
 
 instance GoogleRequest MembersUpdate where
         type Rs MembersUpdate = Member
-        requestClient MembersUpdate{..}
+        type Scopes MembersUpdate =
+             '["https://www.googleapis.com/auth/admin.directory.group",
+               "https://www.googleapis.com/auth/admin.directory.group.member"]
+        requestClient MembersUpdate'{..}
           = go _muGroupKey _muMemberKey (Just AltJSON)
               _muPayload
               directoryService
diff --git a/gen/Network/Google/Resource/Directory/MobileDevices/Action.hs b/gen/Network/Google/Resource/Directory/MobileDevices/Action.hs
--- a/gen/Network/Google/Resource/Directory/MobileDevices/Action.hs
+++ b/gen/Network/Google/Resource/Directory/MobileDevices/Action.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.MobileDevices.Action
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -59,7 +59,7 @@
 -- | Take action on Mobile Device
 --
 -- /See:/ 'mobileDevicesAction' smart constructor.
-data MobileDevicesAction = MobileDevicesAction
+data MobileDevicesAction = MobileDevicesAction'
     { _mdaResourceId :: !Text
     , _mdaPayload    :: !MobileDeviceAction
     , _mdaCustomerId :: !Text
@@ -80,7 +80,7 @@
     -> Text -- ^ 'mdaCustomerId'
     -> MobileDevicesAction
 mobileDevicesAction pMdaResourceId_ pMdaPayload_ pMdaCustomerId_ =
-    MobileDevicesAction
+    MobileDevicesAction'
     { _mdaResourceId = pMdaResourceId_
     , _mdaPayload = pMdaPayload_
     , _mdaCustomerId = pMdaCustomerId_
@@ -105,7 +105,10 @@
 
 instance GoogleRequest MobileDevicesAction where
         type Rs MobileDevicesAction = ()
-        requestClient MobileDevicesAction{..}
+        type Scopes MobileDevicesAction =
+             '["https://www.googleapis.com/auth/admin.directory.device.mobile",
+               "https://www.googleapis.com/auth/admin.directory.device.mobile.action"]
+        requestClient MobileDevicesAction'{..}
           = go _mdaCustomerId _mdaResourceId (Just AltJSON)
               _mdaPayload
               directoryService
diff --git a/gen/Network/Google/Resource/Directory/MobileDevices/Delete.hs b/gen/Network/Google/Resource/Directory/MobileDevices/Delete.hs
--- a/gen/Network/Google/Resource/Directory/MobileDevices/Delete.hs
+++ b/gen/Network/Google/Resource/Directory/MobileDevices/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.MobileDevices.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- | Delete Mobile Device
 --
 -- /See:/ 'mobileDevicesDelete' smart constructor.
-data MobileDevicesDelete = MobileDevicesDelete
+data MobileDevicesDelete = MobileDevicesDelete'
     { _mddResourceId :: !Text
     , _mddCustomerId :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -73,7 +73,7 @@
     -> Text -- ^ 'mddCustomerId'
     -> MobileDevicesDelete
 mobileDevicesDelete pMddResourceId_ pMddCustomerId_ =
-    MobileDevicesDelete
+    MobileDevicesDelete'
     { _mddResourceId = pMddResourceId_
     , _mddCustomerId = pMddCustomerId_
     }
@@ -92,7 +92,9 @@
 
 instance GoogleRequest MobileDevicesDelete where
         type Rs MobileDevicesDelete = ()
-        requestClient MobileDevicesDelete{..}
+        type Scopes MobileDevicesDelete =
+             '["https://www.googleapis.com/auth/admin.directory.device.mobile"]
+        requestClient MobileDevicesDelete'{..}
           = go _mddCustomerId _mddResourceId (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/MobileDevices/Get.hs b/gen/Network/Google/Resource/Directory/MobileDevices/Get.hs
--- a/gen/Network/Google/Resource/Directory/MobileDevices/Get.hs
+++ b/gen/Network/Google/Resource/Directory/MobileDevices/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.MobileDevices.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -58,7 +58,7 @@
 -- | Retrieve Mobile Device
 --
 -- /See:/ 'mobileDevicesGet' smart constructor.
-data MobileDevicesGet = MobileDevicesGet
+data MobileDevicesGet = MobileDevicesGet'
     { _mdgResourceId :: !Text
     , _mdgCustomerId :: !Text
     , _mdgProjection :: !(Maybe MobileDevicesGetProjection)
@@ -78,7 +78,7 @@
     -> Text -- ^ 'mdgCustomerId'
     -> MobileDevicesGet
 mobileDevicesGet pMdgResourceId_ pMdgCustomerId_ =
-    MobileDevicesGet
+    MobileDevicesGet'
     { _mdgResourceId = pMdgResourceId_
     , _mdgCustomerId = pMdgCustomerId_
     , _mdgProjection = Nothing
@@ -104,7 +104,11 @@
 
 instance GoogleRequest MobileDevicesGet where
         type Rs MobileDevicesGet = MobileDevice
-        requestClient MobileDevicesGet{..}
+        type Scopes MobileDevicesGet =
+             '["https://www.googleapis.com/auth/admin.directory.device.mobile",
+               "https://www.googleapis.com/auth/admin.directory.device.mobile.action",
+               "https://www.googleapis.com/auth/admin.directory.device.mobile.readonly"]
+        requestClient MobileDevicesGet'{..}
           = go _mdgCustomerId _mdgResourceId _mdgProjection
               (Just AltJSON)
               directoryService
diff --git a/gen/Network/Google/Resource/Directory/MobileDevices/List.hs b/gen/Network/Google/Resource/Directory/MobileDevices/List.hs
--- a/gen/Network/Google/Resource/Directory/MobileDevices/List.hs
+++ b/gen/Network/Google/Resource/Directory/MobileDevices/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.MobileDevices.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -68,7 +68,7 @@
 -- | Retrieve all Mobile Devices of a customer (paginated)
 --
 -- /See:/ 'mobileDevicesList' smart constructor.
-data MobileDevicesList = MobileDevicesList
+data MobileDevicesList = MobileDevicesList'
     { _mdlOrderBy    :: !(Maybe MobileDevicesListOrderBy)
     , _mdlCustomerId :: !Text
     , _mdlSortOrder  :: !(Maybe MobileDevicesListSortOrder)
@@ -99,7 +99,7 @@
     :: Text -- ^ 'mdlCustomerId'
     -> MobileDevicesList
 mobileDevicesList pMdlCustomerId_ =
-    MobileDevicesList
+    MobileDevicesList'
     { _mdlOrderBy = Nothing
     , _mdlCustomerId = pMdlCustomerId_
     , _mdlSortOrder = Nothing
@@ -151,7 +151,11 @@
 
 instance GoogleRequest MobileDevicesList where
         type Rs MobileDevicesList = MobileDevices
-        requestClient MobileDevicesList{..}
+        type Scopes MobileDevicesList =
+             '["https://www.googleapis.com/auth/admin.directory.device.mobile",
+               "https://www.googleapis.com/auth/admin.directory.device.mobile.action",
+               "https://www.googleapis.com/auth/admin.directory.device.mobile.readonly"]
+        requestClient MobileDevicesList'{..}
           = go _mdlCustomerId _mdlOrderBy _mdlSortOrder
               _mdlQuery
               _mdlProjection
diff --git a/gen/Network/Google/Resource/Directory/Notifications/Delete.hs b/gen/Network/Google/Resource/Directory/Notifications/Delete.hs
--- a/gen/Network/Google/Resource/Directory/Notifications/Delete.hs
+++ b/gen/Network/Google/Resource/Directory/Notifications/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Notifications.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Deletes a notification
 --
 -- /See:/ 'notificationsDelete' smart constructor.
-data NotificationsDelete = NotificationsDelete
+data NotificationsDelete = NotificationsDelete'
     { _ndCustomer       :: !Text
     , _ndNotificationId :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'ndNotificationId'
     -> NotificationsDelete
 notificationsDelete pNdCustomer_ pNdNotificationId_ =
-    NotificationsDelete
+    NotificationsDelete'
     { _ndCustomer = pNdCustomer_
     , _ndNotificationId = pNdNotificationId_
     }
@@ -91,7 +91,9 @@
 
 instance GoogleRequest NotificationsDelete where
         type Rs NotificationsDelete = ()
-        requestClient NotificationsDelete{..}
+        type Scopes NotificationsDelete =
+             '["https://www.googleapis.com/auth/admin.directory.notifications"]
+        requestClient NotificationsDelete'{..}
           = go _ndCustomer _ndNotificationId (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Notifications/Get.hs b/gen/Network/Google/Resource/Directory/Notifications/Get.hs
--- a/gen/Network/Google/Resource/Directory/Notifications/Get.hs
+++ b/gen/Network/Google/Resource/Directory/Notifications/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Notifications.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Retrieves a notification.
 --
 -- /See:/ 'notificationsGet' smart constructor.
-data NotificationsGet = NotificationsGet
+data NotificationsGet = NotificationsGet'
     { _ngCustomer       :: !Text
     , _ngNotificationId :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'ngNotificationId'
     -> NotificationsGet
 notificationsGet pNgCustomer_ pNgNotificationId_ =
-    NotificationsGet
+    NotificationsGet'
     { _ngCustomer = pNgCustomer_
     , _ngNotificationId = pNgNotificationId_
     }
@@ -91,7 +91,9 @@
 
 instance GoogleRequest NotificationsGet where
         type Rs NotificationsGet = Notification
-        requestClient NotificationsGet{..}
+        type Scopes NotificationsGet =
+             '["https://www.googleapis.com/auth/admin.directory.notifications"]
+        requestClient NotificationsGet'{..}
           = go _ngCustomer _ngNotificationId (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Notifications/List.hs b/gen/Network/Google/Resource/Directory/Notifications/List.hs
--- a/gen/Network/Google/Resource/Directory/Notifications/List.hs
+++ b/gen/Network/Google/Resource/Directory/Notifications/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Notifications.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -59,7 +59,7 @@
 -- | Retrieves a list of notifications.
 --
 -- /See:/ 'notificationsList' smart constructor.
-data NotificationsList = NotificationsList
+data NotificationsList = NotificationsList'
     { _nlCustomer   :: !Text
     , _nlLanguage   :: !(Maybe Text)
     , _nlPageToken  :: !(Maybe Text)
@@ -81,7 +81,7 @@
     :: Text -- ^ 'nlCustomer'
     -> NotificationsList
 notificationsList pNlCustomer_ =
-    NotificationsList
+    NotificationsList'
     { _nlCustomer = pNlCustomer_
     , _nlLanguage = Nothing
     , _nlPageToken = Nothing
@@ -112,7 +112,9 @@
 
 instance GoogleRequest NotificationsList where
         type Rs NotificationsList = Notifications
-        requestClient NotificationsList{..}
+        type Scopes NotificationsList =
+             '["https://www.googleapis.com/auth/admin.directory.notifications"]
+        requestClient NotificationsList'{..}
           = go _nlCustomer _nlLanguage _nlPageToken
               _nlMaxResults
               (Just AltJSON)
diff --git a/gen/Network/Google/Resource/Directory/Notifications/Patch.hs b/gen/Network/Google/Resource/Directory/Notifications/Patch.hs
--- a/gen/Network/Google/Resource/Directory/Notifications/Patch.hs
+++ b/gen/Network/Google/Resource/Directory/Notifications/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Notifications.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -58,7 +58,7 @@
 -- | Updates a notification. This method supports patch semantics.
 --
 -- /See:/ 'notificationsPatch' smart constructor.
-data NotificationsPatch = NotificationsPatch
+data NotificationsPatch = NotificationsPatch'
     { _npPayload        :: !Notification
     , _npCustomer       :: !Text
     , _npNotificationId :: !Text
@@ -79,7 +79,7 @@
     -> Text -- ^ 'npNotificationId'
     -> NotificationsPatch
 notificationsPatch pNpPayload_ pNpCustomer_ pNpNotificationId_ =
-    NotificationsPatch
+    NotificationsPatch'
     { _npPayload = pNpPayload_
     , _npCustomer = pNpCustomer_
     , _npNotificationId = pNpNotificationId_
@@ -103,7 +103,9 @@
 
 instance GoogleRequest NotificationsPatch where
         type Rs NotificationsPatch = Notification
-        requestClient NotificationsPatch{..}
+        type Scopes NotificationsPatch =
+             '["https://www.googleapis.com/auth/admin.directory.notifications"]
+        requestClient NotificationsPatch'{..}
           = go _npCustomer _npNotificationId (Just AltJSON)
               _npPayload
               directoryService
diff --git a/gen/Network/Google/Resource/Directory/Notifications/Update.hs b/gen/Network/Google/Resource/Directory/Notifications/Update.hs
--- a/gen/Network/Google/Resource/Directory/Notifications/Update.hs
+++ b/gen/Network/Google/Resource/Directory/Notifications/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Notifications.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -58,7 +58,7 @@
 -- | Updates a notification.
 --
 -- /See:/ 'notificationsUpdate' smart constructor.
-data NotificationsUpdate = NotificationsUpdate
+data NotificationsUpdate = NotificationsUpdate'
     { _nuPayload        :: !Notification
     , _nuCustomer       :: !Text
     , _nuNotificationId :: !Text
@@ -79,7 +79,7 @@
     -> Text -- ^ 'nuNotificationId'
     -> NotificationsUpdate
 notificationsUpdate pNuPayload_ pNuCustomer_ pNuNotificationId_ =
-    NotificationsUpdate
+    NotificationsUpdate'
     { _nuPayload = pNuPayload_
     , _nuCustomer = pNuCustomer_
     , _nuNotificationId = pNuNotificationId_
@@ -103,7 +103,9 @@
 
 instance GoogleRequest NotificationsUpdate where
         type Rs NotificationsUpdate = Notification
-        requestClient NotificationsUpdate{..}
+        type Scopes NotificationsUpdate =
+             '["https://www.googleapis.com/auth/admin.directory.notifications"]
+        requestClient NotificationsUpdate'{..}
           = go _nuCustomer _nuNotificationId (Just AltJSON)
               _nuPayload
               directoryService
diff --git a/gen/Network/Google/Resource/Directory/OrgUnits/Delete.hs b/gen/Network/Google/Resource/Directory/OrgUnits/Delete.hs
--- a/gen/Network/Google/Resource/Directory/OrgUnits/Delete.hs
+++ b/gen/Network/Google/Resource/Directory/OrgUnits/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.OrgUnits.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Remove Organization Unit
 --
 -- /See:/ 'orgUnitsDelete' smart constructor.
-data OrgUnitsDelete = OrgUnitsDelete
+data OrgUnitsDelete = OrgUnitsDelete'
     { _oudOrgUnitPath :: ![Text]
     , _oudCustomerId  :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'oudCustomerId'
     -> OrgUnitsDelete
 orgUnitsDelete pOudOrgUnitPath_ pOudCustomerId_ =
-    OrgUnitsDelete
+    OrgUnitsDelete'
     { _oudOrgUnitPath = _Coerce # pOudOrgUnitPath_
     , _oudCustomerId = pOudCustomerId_
     }
@@ -92,7 +92,9 @@
 
 instance GoogleRequest OrgUnitsDelete where
         type Rs OrgUnitsDelete = ()
-        requestClient OrgUnitsDelete{..}
+        type Scopes OrgUnitsDelete =
+             '["https://www.googleapis.com/auth/admin.directory.orgunit"]
+        requestClient OrgUnitsDelete'{..}
           = go _oudCustomerId _oudOrgUnitPath (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/OrgUnits/Get.hs b/gen/Network/Google/Resource/Directory/OrgUnits/Get.hs
--- a/gen/Network/Google/Resource/Directory/OrgUnits/Get.hs
+++ b/gen/Network/Google/Resource/Directory/OrgUnits/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.OrgUnits.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Retrieve Organization Unit
 --
 -- /See:/ 'orgUnitsGet' smart constructor.
-data OrgUnitsGet = OrgUnitsGet
+data OrgUnitsGet = OrgUnitsGet'
     { _ougOrgUnitPath :: ![Text]
     , _ougCustomerId  :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'ougCustomerId'
     -> OrgUnitsGet
 orgUnitsGet pOugOrgUnitPath_ pOugCustomerId_ =
-    OrgUnitsGet
+    OrgUnitsGet'
     { _ougOrgUnitPath = _Coerce # pOugOrgUnitPath_
     , _ougCustomerId = pOugCustomerId_
     }
@@ -92,7 +92,10 @@
 
 instance GoogleRequest OrgUnitsGet where
         type Rs OrgUnitsGet = OrgUnit
-        requestClient OrgUnitsGet{..}
+        type Scopes OrgUnitsGet =
+             '["https://www.googleapis.com/auth/admin.directory.orgunit",
+               "https://www.googleapis.com/auth/admin.directory.orgunit.readonly"]
+        requestClient OrgUnitsGet'{..}
           = go _ougCustomerId _ougOrgUnitPath (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/OrgUnits/Insert.hs b/gen/Network/Google/Resource/Directory/OrgUnits/Insert.hs
--- a/gen/Network/Google/Resource/Directory/OrgUnits/Insert.hs
+++ b/gen/Network/Google/Resource/Directory/OrgUnits/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.OrgUnits.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Add Organization Unit
 --
 -- /See:/ 'orgUnitsInsert' smart constructor.
-data OrgUnitsInsert = OrgUnitsInsert
+data OrgUnitsInsert = OrgUnitsInsert'
     { _ouiPayload    :: !OrgUnit
     , _ouiCustomerId :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'ouiCustomerId'
     -> OrgUnitsInsert
 orgUnitsInsert pOuiPayload_ pOuiCustomerId_ =
-    OrgUnitsInsert
+    OrgUnitsInsert'
     { _ouiPayload = pOuiPayload_
     , _ouiCustomerId = pOuiCustomerId_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest OrgUnitsInsert where
         type Rs OrgUnitsInsert = OrgUnit
-        requestClient OrgUnitsInsert{..}
+        type Scopes OrgUnitsInsert =
+             '["https://www.googleapis.com/auth/admin.directory.orgunit"]
+        requestClient OrgUnitsInsert'{..}
           = go _ouiCustomerId (Just AltJSON) _ouiPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/OrgUnits/List.hs b/gen/Network/Google/Resource/Directory/OrgUnits/List.hs
--- a/gen/Network/Google/Resource/Directory/OrgUnits/List.hs
+++ b/gen/Network/Google/Resource/Directory/OrgUnits/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.OrgUnits.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -57,7 +57,7 @@
 -- | Retrieve all Organization Units
 --
 -- /See:/ 'orgUnitsList' smart constructor.
-data OrgUnitsList = OrgUnitsList
+data OrgUnitsList = OrgUnitsList'
     { _oulOrgUnitPath :: !Text
     , _oulCustomerId  :: !Text
     , _oulType        :: !(Maybe OrgUnitsListType)
@@ -76,7 +76,7 @@
     :: Text -- ^ 'oulCustomerId'
     -> OrgUnitsList
 orgUnitsList pOulCustomerId_ =
-    OrgUnitsList
+    OrgUnitsList'
     { _oulOrgUnitPath = ""
     , _oulCustomerId = pOulCustomerId_
     , _oulType = Nothing
@@ -100,7 +100,10 @@
 
 instance GoogleRequest OrgUnitsList where
         type Rs OrgUnitsList = OrgUnits
-        requestClient OrgUnitsList{..}
+        type Scopes OrgUnitsList =
+             '["https://www.googleapis.com/auth/admin.directory.orgunit",
+               "https://www.googleapis.com/auth/admin.directory.orgunit.readonly"]
+        requestClient OrgUnitsList'{..}
           = go _oulCustomerId (Just _oulOrgUnitPath) _oulType
               (Just AltJSON)
               directoryService
diff --git a/gen/Network/Google/Resource/Directory/OrgUnits/Patch.hs b/gen/Network/Google/Resource/Directory/OrgUnits/Patch.hs
--- a/gen/Network/Google/Resource/Directory/OrgUnits/Patch.hs
+++ b/gen/Network/Google/Resource/Directory/OrgUnits/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.OrgUnits.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -57,7 +57,7 @@
 -- | Update Organization Unit. This method supports patch semantics.
 --
 -- /See:/ 'orgUnitsPatch' smart constructor.
-data OrgUnitsPatch = OrgUnitsPatch
+data OrgUnitsPatch = OrgUnitsPatch'
     { _oupPayload     :: !OrgUnit
     , _oupOrgUnitPath :: ![Text]
     , _oupCustomerId  :: !Text
@@ -78,7 +78,7 @@
     -> Text -- ^ 'oupCustomerId'
     -> OrgUnitsPatch
 orgUnitsPatch pOupPayload_ pOupOrgUnitPath_ pOupCustomerId_ =
-    OrgUnitsPatch
+    OrgUnitsPatch'
     { _oupPayload = pOupPayload_
     , _oupOrgUnitPath = _Coerce # pOupOrgUnitPath_
     , _oupCustomerId = pOupCustomerId_
@@ -104,7 +104,9 @@
 
 instance GoogleRequest OrgUnitsPatch where
         type Rs OrgUnitsPatch = OrgUnit
-        requestClient OrgUnitsPatch{..}
+        type Scopes OrgUnitsPatch =
+             '["https://www.googleapis.com/auth/admin.directory.orgunit"]
+        requestClient OrgUnitsPatch'{..}
           = go _oupCustomerId _oupOrgUnitPath (Just AltJSON)
               _oupPayload
               directoryService
diff --git a/gen/Network/Google/Resource/Directory/OrgUnits/Update.hs b/gen/Network/Google/Resource/Directory/OrgUnits/Update.hs
--- a/gen/Network/Google/Resource/Directory/OrgUnits/Update.hs
+++ b/gen/Network/Google/Resource/Directory/OrgUnits/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.OrgUnits.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -57,7 +57,7 @@
 -- | Update Organization Unit
 --
 -- /See:/ 'orgUnitsUpdate' smart constructor.
-data OrgUnitsUpdate = OrgUnitsUpdate
+data OrgUnitsUpdate = OrgUnitsUpdate'
     { _ouuPayload     :: !OrgUnit
     , _ouuOrgUnitPath :: ![Text]
     , _ouuCustomerId  :: !Text
@@ -78,7 +78,7 @@
     -> Text -- ^ 'ouuCustomerId'
     -> OrgUnitsUpdate
 orgUnitsUpdate pOuuPayload_ pOuuOrgUnitPath_ pOuuCustomerId_ =
-    OrgUnitsUpdate
+    OrgUnitsUpdate'
     { _ouuPayload = pOuuPayload_
     , _ouuOrgUnitPath = _Coerce # pOuuOrgUnitPath_
     , _ouuCustomerId = pOuuCustomerId_
@@ -104,7 +104,9 @@
 
 instance GoogleRequest OrgUnitsUpdate where
         type Rs OrgUnitsUpdate = OrgUnit
-        requestClient OrgUnitsUpdate{..}
+        type Scopes OrgUnitsUpdate =
+             '["https://www.googleapis.com/auth/admin.directory.orgunit"]
+        requestClient OrgUnitsUpdate'{..}
           = go _ouuCustomerId _ouuOrgUnitPath (Just AltJSON)
               _ouuPayload
               directoryService
diff --git a/gen/Network/Google/Resource/Directory/Privileges/List.hs b/gen/Network/Google/Resource/Directory/Privileges/List.hs
--- a/gen/Network/Google/Resource/Directory/Privileges/List.hs
+++ b/gen/Network/Google/Resource/Directory/Privileges/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Privileges.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Retrieves a paginated list of all privileges for a customer.
 --
 -- /See:/ 'privilegesList' smart constructor.
-newtype PrivilegesList = PrivilegesList
+newtype PrivilegesList = PrivilegesList'
     { _plCustomer :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -68,7 +68,7 @@
     :: Text -- ^ 'plCustomer'
     -> PrivilegesList
 privilegesList pPlCustomer_ =
-    PrivilegesList
+    PrivilegesList'
     { _plCustomer = pPlCustomer_
     }
 
@@ -79,7 +79,10 @@
 
 instance GoogleRequest PrivilegesList where
         type Rs PrivilegesList = Privileges
-        requestClient PrivilegesList{..}
+        type Scopes PrivilegesList =
+             '["https://www.googleapis.com/auth/admin.directory.rolemanagement",
+               "https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly"]
+        requestClient PrivilegesList'{..}
           = go _plCustomer (Just AltJSON) directoryService
           where go
                   = buildClient (Proxy :: Proxy PrivilegesListResource)
diff --git a/gen/Network/Google/Resource/Directory/Resources/Calendars/Delete.hs b/gen/Network/Google/Resource/Directory/Resources/Calendars/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Directory/Resources/Calendars/Delete.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.Directory.Resources.Calendars.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 calendar resource.
+--
+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.calendars.delete@.
+module Network.Google.Resource.Directory.Resources.Calendars.Delete
+    (
+    -- * REST Resource
+      ResourcesCalendarsDeleteResource
+
+    -- * Creating a Request
+    , resourcesCalendarsDelete
+    , ResourcesCalendarsDelete
+
+    -- * Request Lenses
+    , rcdCustomer
+    , rcdCalendarResourceId
+    ) where
+
+import           Network.Google.Directory.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @directory.resources.calendars.delete@ method which the
+-- 'ResourcesCalendarsDelete' request conforms to.
+type ResourcesCalendarsDeleteResource =
+     "admin" :>
+       "directory" :>
+         "v1" :>
+           "customer" :>
+             Capture "customer" Text :>
+               "resources" :>
+                 "calendars" :>
+                   Capture "calendarResourceId" Text :>
+                     QueryParam "alt" AltJSON :> Delete '[JSON] ()
+
+-- | Deletes a calendar resource.
+--
+-- /See:/ 'resourcesCalendarsDelete' smart constructor.
+data ResourcesCalendarsDelete = ResourcesCalendarsDelete'
+    { _rcdCustomer           :: !Text
+    , _rcdCalendarResourceId :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourcesCalendarsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcdCustomer'
+--
+-- * 'rcdCalendarResourceId'
+resourcesCalendarsDelete
+    :: Text -- ^ 'rcdCustomer'
+    -> Text -- ^ 'rcdCalendarResourceId'
+    -> ResourcesCalendarsDelete
+resourcesCalendarsDelete pRcdCustomer_ pRcdCalendarResourceId_ =
+    ResourcesCalendarsDelete'
+    { _rcdCustomer = pRcdCustomer_
+    , _rcdCalendarResourceId = pRcdCalendarResourceId_
+    }
+
+-- | The unique ID for the customer\'s Google account. As an account
+-- administrator, you can also use the my_customer alias to represent your
+-- account\'s customer ID.
+rcdCustomer :: Lens' ResourcesCalendarsDelete Text
+rcdCustomer
+  = lens _rcdCustomer (\ s a -> s{_rcdCustomer = a})
+
+-- | The unique ID of the calendar resource to delete.
+rcdCalendarResourceId :: Lens' ResourcesCalendarsDelete Text
+rcdCalendarResourceId
+  = lens _rcdCalendarResourceId
+      (\ s a -> s{_rcdCalendarResourceId = a})
+
+instance GoogleRequest ResourcesCalendarsDelete where
+        type Rs ResourcesCalendarsDelete = ()
+        type Scopes ResourcesCalendarsDelete =
+             '["https://www.googleapis.com/auth/admin.directory.resource.calendar"]
+        requestClient ResourcesCalendarsDelete'{..}
+          = go _rcdCustomer _rcdCalendarResourceId
+              (Just AltJSON)
+              directoryService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ResourcesCalendarsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Directory/Resources/Calendars/Get.hs b/gen/Network/Google/Resource/Directory/Resources/Calendars/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Directory/Resources/Calendars/Get.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.Directory.Resources.Calendars.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)
+--
+-- Retrieves a calendar resource.
+--
+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.calendars.get@.
+module Network.Google.Resource.Directory.Resources.Calendars.Get
+    (
+    -- * REST Resource
+      ResourcesCalendarsGetResource
+
+    -- * Creating a Request
+    , resourcesCalendarsGet
+    , ResourcesCalendarsGet
+
+    -- * Request Lenses
+    , rcgCustomer
+    , rcgCalendarResourceId
+    ) where
+
+import           Network.Google.Directory.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @directory.resources.calendars.get@ method which the
+-- 'ResourcesCalendarsGet' request conforms to.
+type ResourcesCalendarsGetResource =
+     "admin" :>
+       "directory" :>
+         "v1" :>
+           "customer" :>
+             Capture "customer" Text :>
+               "resources" :>
+                 "calendars" :>
+                   Capture "calendarResourceId" Text :>
+                     QueryParam "alt" AltJSON :>
+                       Get '[JSON] CalendarResource
+
+-- | Retrieves a calendar resource.
+--
+-- /See:/ 'resourcesCalendarsGet' smart constructor.
+data ResourcesCalendarsGet = ResourcesCalendarsGet'
+    { _rcgCustomer           :: !Text
+    , _rcgCalendarResourceId :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourcesCalendarsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcgCustomer'
+--
+-- * 'rcgCalendarResourceId'
+resourcesCalendarsGet
+    :: Text -- ^ 'rcgCustomer'
+    -> Text -- ^ 'rcgCalendarResourceId'
+    -> ResourcesCalendarsGet
+resourcesCalendarsGet pRcgCustomer_ pRcgCalendarResourceId_ =
+    ResourcesCalendarsGet'
+    { _rcgCustomer = pRcgCustomer_
+    , _rcgCalendarResourceId = pRcgCalendarResourceId_
+    }
+
+-- | The unique ID for the customer\'s Google account. As an account
+-- administrator, you can also use the my_customer alias to represent your
+-- account\'s customer ID.
+rcgCustomer :: Lens' ResourcesCalendarsGet Text
+rcgCustomer
+  = lens _rcgCustomer (\ s a -> s{_rcgCustomer = a})
+
+-- | The unique ID of the calendar resource to retrieve.
+rcgCalendarResourceId :: Lens' ResourcesCalendarsGet Text
+rcgCalendarResourceId
+  = lens _rcgCalendarResourceId
+      (\ s a -> s{_rcgCalendarResourceId = a})
+
+instance GoogleRequest ResourcesCalendarsGet where
+        type Rs ResourcesCalendarsGet = CalendarResource
+        type Scopes ResourcesCalendarsGet =
+             '["https://www.googleapis.com/auth/admin.directory.resource.calendar",
+               "https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly"]
+        requestClient ResourcesCalendarsGet'{..}
+          = go _rcgCustomer _rcgCalendarResourceId
+              (Just AltJSON)
+              directoryService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ResourcesCalendarsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Directory/Resources/Calendars/Insert.hs b/gen/Network/Google/Resource/Directory/Resources/Calendars/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Directory/Resources/Calendars/Insert.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.Directory.Resources.Calendars.Insert
+-- 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)
+--
+-- Inserts a calendar resource.
+--
+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.calendars.insert@.
+module Network.Google.Resource.Directory.Resources.Calendars.Insert
+    (
+    -- * REST Resource
+      ResourcesCalendarsInsertResource
+
+    -- * Creating a Request
+    , resourcesCalendarsInsert
+    , ResourcesCalendarsInsert
+
+    -- * Request Lenses
+    , rciPayload
+    , rciCustomer
+    ) where
+
+import           Network.Google.Directory.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @directory.resources.calendars.insert@ method which the
+-- 'ResourcesCalendarsInsert' request conforms to.
+type ResourcesCalendarsInsertResource =
+     "admin" :>
+       "directory" :>
+         "v1" :>
+           "customer" :>
+             Capture "customer" Text :>
+               "resources" :>
+                 "calendars" :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] CalendarResource :>
+                       Post '[JSON] CalendarResource
+
+-- | Inserts a calendar resource.
+--
+-- /See:/ 'resourcesCalendarsInsert' smart constructor.
+data ResourcesCalendarsInsert = ResourcesCalendarsInsert'
+    { _rciPayload  :: !CalendarResource
+    , _rciCustomer :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourcesCalendarsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rciPayload'
+--
+-- * 'rciCustomer'
+resourcesCalendarsInsert
+    :: CalendarResource -- ^ 'rciPayload'
+    -> Text -- ^ 'rciCustomer'
+    -> ResourcesCalendarsInsert
+resourcesCalendarsInsert pRciPayload_ pRciCustomer_ =
+    ResourcesCalendarsInsert'
+    { _rciPayload = pRciPayload_
+    , _rciCustomer = pRciCustomer_
+    }
+
+-- | Multipart request metadata.
+rciPayload :: Lens' ResourcesCalendarsInsert CalendarResource
+rciPayload
+  = lens _rciPayload (\ s a -> s{_rciPayload = a})
+
+-- | The unique ID for the customer\'s Google account. As an account
+-- administrator, you can also use the my_customer alias to represent your
+-- account\'s customer ID.
+rciCustomer :: Lens' ResourcesCalendarsInsert Text
+rciCustomer
+  = lens _rciCustomer (\ s a -> s{_rciCustomer = a})
+
+instance GoogleRequest ResourcesCalendarsInsert where
+        type Rs ResourcesCalendarsInsert = CalendarResource
+        type Scopes ResourcesCalendarsInsert =
+             '["https://www.googleapis.com/auth/admin.directory.resource.calendar"]
+        requestClient ResourcesCalendarsInsert'{..}
+          = go _rciCustomer (Just AltJSON) _rciPayload
+              directoryService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ResourcesCalendarsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Directory/Resources/Calendars/List.hs b/gen/Network/Google/Resource/Directory/Resources/Calendars/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Directory/Resources/Calendars/List.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.Directory.Resources.Calendars.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)
+--
+-- Retrieves a list of calendar resources for an account.
+--
+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.calendars.list@.
+module Network.Google.Resource.Directory.Resources.Calendars.List
+    (
+    -- * REST Resource
+      ResourcesCalendarsListResource
+
+    -- * Creating a Request
+    , resourcesCalendarsList
+    , ResourcesCalendarsList
+
+    -- * Request Lenses
+    , rclCustomer
+    , rclPageToken
+    , rclMaxResults
+    ) where
+
+import           Network.Google.Directory.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @directory.resources.calendars.list@ method which the
+-- 'ResourcesCalendarsList' request conforms to.
+type ResourcesCalendarsListResource =
+     "admin" :>
+       "directory" :>
+         "v1" :>
+           "customer" :>
+             Capture "customer" Text :>
+               "resources" :>
+                 "calendars" :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "maxResults" (Textual Int32) :>
+                       QueryParam "alt" AltJSON :>
+                         Get '[JSON] CalendarResources
+
+-- | Retrieves a list of calendar resources for an account.
+--
+-- /See:/ 'resourcesCalendarsList' smart constructor.
+data ResourcesCalendarsList = ResourcesCalendarsList'
+    { _rclCustomer   :: !Text
+    , _rclPageToken  :: !(Maybe Text)
+    , _rclMaxResults :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourcesCalendarsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rclCustomer'
+--
+-- * 'rclPageToken'
+--
+-- * 'rclMaxResults'
+resourcesCalendarsList
+    :: Text -- ^ 'rclCustomer'
+    -> ResourcesCalendarsList
+resourcesCalendarsList pRclCustomer_ =
+    ResourcesCalendarsList'
+    { _rclCustomer = pRclCustomer_
+    , _rclPageToken = Nothing
+    , _rclMaxResults = Nothing
+    }
+
+-- | The unique ID for the customer\'s Google account. As an account
+-- administrator, you can also use the my_customer alias to represent your
+-- account\'s customer ID.
+rclCustomer :: Lens' ResourcesCalendarsList Text
+rclCustomer
+  = lens _rclCustomer (\ s a -> s{_rclCustomer = a})
+
+-- | Token to specify the next page in the list.
+rclPageToken :: Lens' ResourcesCalendarsList (Maybe Text)
+rclPageToken
+  = lens _rclPageToken (\ s a -> s{_rclPageToken = a})
+
+-- | Maximum number of results to return.
+rclMaxResults :: Lens' ResourcesCalendarsList (Maybe Int32)
+rclMaxResults
+  = lens _rclMaxResults
+      (\ s a -> s{_rclMaxResults = a})
+      . mapping _Coerce
+
+instance GoogleRequest ResourcesCalendarsList where
+        type Rs ResourcesCalendarsList = CalendarResources
+        type Scopes ResourcesCalendarsList =
+             '["https://www.googleapis.com/auth/admin.directory.resource.calendar",
+               "https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly"]
+        requestClient ResourcesCalendarsList'{..}
+          = go _rclCustomer _rclPageToken _rclMaxResults
+              (Just AltJSON)
+              directoryService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ResourcesCalendarsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Directory/Resources/Calendars/Patch.hs b/gen/Network/Google/Resource/Directory/Resources/Calendars/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Directory/Resources/Calendars/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.Directory.Resources.Calendars.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 calendar resource. This method supports patch semantics.
+--
+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.calendars.patch@.
+module Network.Google.Resource.Directory.Resources.Calendars.Patch
+    (
+    -- * REST Resource
+      ResourcesCalendarsPatchResource
+
+    -- * Creating a Request
+    , resourcesCalendarsPatch
+    , ResourcesCalendarsPatch
+
+    -- * Request Lenses
+    , rcpPayload
+    , rcpCustomer
+    , rcpCalendarResourceId
+    ) where
+
+import           Network.Google.Directory.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @directory.resources.calendars.patch@ method which the
+-- 'ResourcesCalendarsPatch' request conforms to.
+type ResourcesCalendarsPatchResource =
+     "admin" :>
+       "directory" :>
+         "v1" :>
+           "customer" :>
+             Capture "customer" Text :>
+               "resources" :>
+                 "calendars" :>
+                   Capture "calendarResourceId" Text :>
+                     QueryParam "alt" AltJSON :>
+                       ReqBody '[JSON] CalendarResource :>
+                         Patch '[JSON] CalendarResource
+
+-- | Updates a calendar resource. This method supports patch semantics.
+--
+-- /See:/ 'resourcesCalendarsPatch' smart constructor.
+data ResourcesCalendarsPatch = ResourcesCalendarsPatch'
+    { _rcpPayload            :: !CalendarResource
+    , _rcpCustomer           :: !Text
+    , _rcpCalendarResourceId :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourcesCalendarsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcpPayload'
+--
+-- * 'rcpCustomer'
+--
+-- * 'rcpCalendarResourceId'
+resourcesCalendarsPatch
+    :: CalendarResource -- ^ 'rcpPayload'
+    -> Text -- ^ 'rcpCustomer'
+    -> Text -- ^ 'rcpCalendarResourceId'
+    -> ResourcesCalendarsPatch
+resourcesCalendarsPatch pRcpPayload_ pRcpCustomer_ pRcpCalendarResourceId_ =
+    ResourcesCalendarsPatch'
+    { _rcpPayload = pRcpPayload_
+    , _rcpCustomer = pRcpCustomer_
+    , _rcpCalendarResourceId = pRcpCalendarResourceId_
+    }
+
+-- | Multipart request metadata.
+rcpPayload :: Lens' ResourcesCalendarsPatch CalendarResource
+rcpPayload
+  = lens _rcpPayload (\ s a -> s{_rcpPayload = a})
+
+-- | The unique ID for the customer\'s Google account. As an account
+-- administrator, you can also use the my_customer alias to represent your
+-- account\'s customer ID.
+rcpCustomer :: Lens' ResourcesCalendarsPatch Text
+rcpCustomer
+  = lens _rcpCustomer (\ s a -> s{_rcpCustomer = a})
+
+-- | The unique ID of the calendar resource to update.
+rcpCalendarResourceId :: Lens' ResourcesCalendarsPatch Text
+rcpCalendarResourceId
+  = lens _rcpCalendarResourceId
+      (\ s a -> s{_rcpCalendarResourceId = a})
+
+instance GoogleRequest ResourcesCalendarsPatch where
+        type Rs ResourcesCalendarsPatch = CalendarResource
+        type Scopes ResourcesCalendarsPatch =
+             '["https://www.googleapis.com/auth/admin.directory.resource.calendar"]
+        requestClient ResourcesCalendarsPatch'{..}
+          = go _rcpCustomer _rcpCalendarResourceId
+              (Just AltJSON)
+              _rcpPayload
+              directoryService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ResourcesCalendarsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Directory/Resources/Calendars/Update.hs b/gen/Network/Google/Resource/Directory/Resources/Calendars/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Directory/Resources/Calendars/Update.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.Directory.Resources.Calendars.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 calendar resource.
+--
+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.calendars.update@.
+module Network.Google.Resource.Directory.Resources.Calendars.Update
+    (
+    -- * REST Resource
+      ResourcesCalendarsUpdateResource
+
+    -- * Creating a Request
+    , resourcesCalendarsUpdate
+    , ResourcesCalendarsUpdate
+
+    -- * Request Lenses
+    , rcuPayload
+    , rcuCustomer
+    , rcuCalendarResourceId
+    ) where
+
+import           Network.Google.Directory.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @directory.resources.calendars.update@ method which the
+-- 'ResourcesCalendarsUpdate' request conforms to.
+type ResourcesCalendarsUpdateResource =
+     "admin" :>
+       "directory" :>
+         "v1" :>
+           "customer" :>
+             Capture "customer" Text :>
+               "resources" :>
+                 "calendars" :>
+                   Capture "calendarResourceId" Text :>
+                     QueryParam "alt" AltJSON :>
+                       ReqBody '[JSON] CalendarResource :>
+                         Put '[JSON] CalendarResource
+
+-- | Updates a calendar resource.
+--
+-- /See:/ 'resourcesCalendarsUpdate' smart constructor.
+data ResourcesCalendarsUpdate = ResourcesCalendarsUpdate'
+    { _rcuPayload            :: !CalendarResource
+    , _rcuCustomer           :: !Text
+    , _rcuCalendarResourceId :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourcesCalendarsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcuPayload'
+--
+-- * 'rcuCustomer'
+--
+-- * 'rcuCalendarResourceId'
+resourcesCalendarsUpdate
+    :: CalendarResource -- ^ 'rcuPayload'
+    -> Text -- ^ 'rcuCustomer'
+    -> Text -- ^ 'rcuCalendarResourceId'
+    -> ResourcesCalendarsUpdate
+resourcesCalendarsUpdate pRcuPayload_ pRcuCustomer_ pRcuCalendarResourceId_ =
+    ResourcesCalendarsUpdate'
+    { _rcuPayload = pRcuPayload_
+    , _rcuCustomer = pRcuCustomer_
+    , _rcuCalendarResourceId = pRcuCalendarResourceId_
+    }
+
+-- | Multipart request metadata.
+rcuPayload :: Lens' ResourcesCalendarsUpdate CalendarResource
+rcuPayload
+  = lens _rcuPayload (\ s a -> s{_rcuPayload = a})
+
+-- | The unique ID for the customer\'s Google account. As an account
+-- administrator, you can also use the my_customer alias to represent your
+-- account\'s customer ID.
+rcuCustomer :: Lens' ResourcesCalendarsUpdate Text
+rcuCustomer
+  = lens _rcuCustomer (\ s a -> s{_rcuCustomer = a})
+
+-- | The unique ID of the calendar resource to update.
+rcuCalendarResourceId :: Lens' ResourcesCalendarsUpdate Text
+rcuCalendarResourceId
+  = lens _rcuCalendarResourceId
+      (\ s a -> s{_rcuCalendarResourceId = a})
+
+instance GoogleRequest ResourcesCalendarsUpdate where
+        type Rs ResourcesCalendarsUpdate = CalendarResource
+        type Scopes ResourcesCalendarsUpdate =
+             '["https://www.googleapis.com/auth/admin.directory.resource.calendar"]
+        requestClient ResourcesCalendarsUpdate'{..}
+          = go _rcuCustomer _rcuCalendarResourceId
+              (Just AltJSON)
+              _rcuPayload
+              directoryService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ResourcesCalendarsUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Directory/RoleAssignments/Delete.hs b/gen/Network/Google/Resource/Directory/RoleAssignments/Delete.hs
--- a/gen/Network/Google/Resource/Directory/RoleAssignments/Delete.hs
+++ b/gen/Network/Google/Resource/Directory/RoleAssignments/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.RoleAssignments.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Deletes a role assignment.
 --
 -- /See:/ 'roleAssignmentsDelete' smart constructor.
-data RoleAssignmentsDelete = RoleAssignmentsDelete
+data RoleAssignmentsDelete = RoleAssignmentsDelete'
     { _radCustomer         :: !Text
     , _radRoleAssignmentId :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'radRoleAssignmentId'
     -> RoleAssignmentsDelete
 roleAssignmentsDelete pRadCustomer_ pRadRoleAssignmentId_ =
-    RoleAssignmentsDelete
+    RoleAssignmentsDelete'
     { _radCustomer = pRadCustomer_
     , _radRoleAssignmentId = pRadRoleAssignmentId_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest RoleAssignmentsDelete where
         type Rs RoleAssignmentsDelete = ()
-        requestClient RoleAssignmentsDelete{..}
+        type Scopes RoleAssignmentsDelete =
+             '["https://www.googleapis.com/auth/admin.directory.rolemanagement"]
+        requestClient RoleAssignmentsDelete'{..}
           = go _radCustomer _radRoleAssignmentId (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/RoleAssignments/Get.hs b/gen/Network/Google/Resource/Directory/RoleAssignments/Get.hs
--- a/gen/Network/Google/Resource/Directory/RoleAssignments/Get.hs
+++ b/gen/Network/Google/Resource/Directory/RoleAssignments/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.RoleAssignments.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- | Retrieve a role assignment.
 --
 -- /See:/ 'roleAssignmentsGet' smart constructor.
-data RoleAssignmentsGet = RoleAssignmentsGet
+data RoleAssignmentsGet = RoleAssignmentsGet'
     { _ragCustomer         :: !Text
     , _ragRoleAssignmentId :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -73,7 +73,7 @@
     -> Text -- ^ 'ragRoleAssignmentId'
     -> RoleAssignmentsGet
 roleAssignmentsGet pRagCustomer_ pRagRoleAssignmentId_ =
-    RoleAssignmentsGet
+    RoleAssignmentsGet'
     { _ragCustomer = pRagCustomer_
     , _ragRoleAssignmentId = pRagRoleAssignmentId_
     }
@@ -91,7 +91,10 @@
 
 instance GoogleRequest RoleAssignmentsGet where
         type Rs RoleAssignmentsGet = RoleAssignment
-        requestClient RoleAssignmentsGet{..}
+        type Scopes RoleAssignmentsGet =
+             '["https://www.googleapis.com/auth/admin.directory.rolemanagement",
+               "https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly"]
+        requestClient RoleAssignmentsGet'{..}
           = go _ragCustomer _ragRoleAssignmentId (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/RoleAssignments/Insert.hs b/gen/Network/Google/Resource/Directory/RoleAssignments/Insert.hs
--- a/gen/Network/Google/Resource/Directory/RoleAssignments/Insert.hs
+++ b/gen/Network/Google/Resource/Directory/RoleAssignments/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.RoleAssignments.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- | Creates a role assignment.
 --
 -- /See:/ 'roleAssignmentsInsert' smart constructor.
-data RoleAssignmentsInsert = RoleAssignmentsInsert
+data RoleAssignmentsInsert = RoleAssignmentsInsert'
     { _raiPayload  :: !RoleAssignment
     , _raiCustomer :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -73,7 +73,7 @@
     -> Text -- ^ 'raiCustomer'
     -> RoleAssignmentsInsert
 roleAssignmentsInsert pRaiPayload_ pRaiCustomer_ =
-    RoleAssignmentsInsert
+    RoleAssignmentsInsert'
     { _raiPayload = pRaiPayload_
     , _raiCustomer = pRaiCustomer_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest RoleAssignmentsInsert where
         type Rs RoleAssignmentsInsert = RoleAssignment
-        requestClient RoleAssignmentsInsert{..}
+        type Scopes RoleAssignmentsInsert =
+             '["https://www.googleapis.com/auth/admin.directory.rolemanagement"]
+        requestClient RoleAssignmentsInsert'{..}
           = go _raiCustomer (Just AltJSON) _raiPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/RoleAssignments/List.hs b/gen/Network/Google/Resource/Directory/RoleAssignments/List.hs
--- a/gen/Network/Google/Resource/Directory/RoleAssignments/List.hs
+++ b/gen/Network/Google/Resource/Directory/RoleAssignments/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.RoleAssignments.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -62,7 +62,7 @@
 -- | Retrieves a paginated list of all roleAssignments.
 --
 -- /See:/ 'roleAssignmentsList' smart constructor.
-data RoleAssignmentsList = RoleAssignmentsList
+data RoleAssignmentsList = RoleAssignmentsList'
     { _ralRoleId     :: !(Maybe Text)
     , _ralCustomer   :: !Text
     , _ralPageToken  :: !(Maybe Text)
@@ -87,7 +87,7 @@
     :: Text -- ^ 'ralCustomer'
     -> RoleAssignmentsList
 roleAssignmentsList pRalCustomer_ =
-    RoleAssignmentsList
+    RoleAssignmentsList'
     { _ralRoleId = Nothing
     , _ralCustomer = pRalCustomer_
     , _ralPageToken = Nothing
@@ -127,7 +127,10 @@
 
 instance GoogleRequest RoleAssignmentsList where
         type Rs RoleAssignmentsList = RoleAssignments
-        requestClient RoleAssignmentsList{..}
+        type Scopes RoleAssignmentsList =
+             '["https://www.googleapis.com/auth/admin.directory.rolemanagement",
+               "https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly"]
+        requestClient RoleAssignmentsList'{..}
           = go _ralCustomer _ralRoleId _ralPageToken
               _ralUserKey
               _ralMaxResults
diff --git a/gen/Network/Google/Resource/Directory/Roles/Delete.hs b/gen/Network/Google/Resource/Directory/Roles/Delete.hs
--- a/gen/Network/Google/Resource/Directory/Roles/Delete.hs
+++ b/gen/Network/Google/Resource/Directory/Roles/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Roles.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Deletes a role.
 --
 -- /See:/ 'rolesDelete' smart constructor.
-data RolesDelete = RolesDelete
+data RolesDelete = RolesDelete'
     { _rdRoleId   :: !Text
     , _rdCustomer :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'rdCustomer'
     -> RolesDelete
 rolesDelete pRdRoleId_ pRdCustomer_ =
-    RolesDelete
+    RolesDelete'
     { _rdRoleId = pRdRoleId_
     , _rdCustomer = pRdCustomer_
     }
@@ -88,7 +88,9 @@
 
 instance GoogleRequest RolesDelete where
         type Rs RolesDelete = ()
-        requestClient RolesDelete{..}
+        type Scopes RolesDelete =
+             '["https://www.googleapis.com/auth/admin.directory.rolemanagement"]
+        requestClient RolesDelete'{..}
           = go _rdCustomer _rdRoleId (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Roles/Get.hs b/gen/Network/Google/Resource/Directory/Roles/Get.hs
--- a/gen/Network/Google/Resource/Directory/Roles/Get.hs
+++ b/gen/Network/Google/Resource/Directory/Roles/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Roles.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Retrieves a role.
 --
 -- /See:/ 'rolesGet' smart constructor.
-data RolesGet = RolesGet
+data RolesGet = RolesGet'
     { _rgRoleId   :: !Text
     , _rgCustomer :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'rgCustomer'
     -> RolesGet
 rolesGet pRgRoleId_ pRgCustomer_ =
-    RolesGet
+    RolesGet'
     { _rgRoleId = pRgRoleId_
     , _rgCustomer = pRgCustomer_
     }
@@ -88,7 +88,10 @@
 
 instance GoogleRequest RolesGet where
         type Rs RolesGet = Role
-        requestClient RolesGet{..}
+        type Scopes RolesGet =
+             '["https://www.googleapis.com/auth/admin.directory.rolemanagement",
+               "https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly"]
+        requestClient RolesGet'{..}
           = go _rgCustomer _rgRoleId (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Roles/Insert.hs b/gen/Network/Google/Resource/Directory/Roles/Insert.hs
--- a/gen/Network/Google/Resource/Directory/Roles/Insert.hs
+++ b/gen/Network/Google/Resource/Directory/Roles/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Roles.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Creates a role.
 --
 -- /See:/ 'rolesInsert' smart constructor.
-data RolesInsert = RolesInsert
+data RolesInsert = RolesInsert'
     { _riPayload  :: !Role
     , _riCustomer :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'riCustomer'
     -> RolesInsert
 rolesInsert pRiPayload_ pRiCustomer_ =
-    RolesInsert
+    RolesInsert'
     { _riPayload = pRiPayload_
     , _riCustomer = pRiCustomer_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest RolesInsert where
         type Rs RolesInsert = Role
-        requestClient RolesInsert{..}
+        type Scopes RolesInsert =
+             '["https://www.googleapis.com/auth/admin.directory.rolemanagement"]
+        requestClient RolesInsert'{..}
           = go _riCustomer (Just AltJSON) _riPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Roles/List.hs b/gen/Network/Google/Resource/Directory/Roles/List.hs
--- a/gen/Network/Google/Resource/Directory/Roles/List.hs
+++ b/gen/Network/Google/Resource/Directory/Roles/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Roles.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -57,7 +57,7 @@
 -- | Retrieves a paginated list of all the roles in a domain.
 --
 -- /See:/ 'rolesList' smart constructor.
-data RolesList = RolesList
+data RolesList = RolesList'
     { _rlCustomer   :: !Text
     , _rlPageToken  :: !(Maybe Text)
     , _rlMaxResults :: !(Maybe (Textual Int32))
@@ -76,7 +76,7 @@
     :: Text -- ^ 'rlCustomer'
     -> RolesList
 rolesList pRlCustomer_ =
-    RolesList
+    RolesList'
     { _rlCustomer = pRlCustomer_
     , _rlPageToken = Nothing
     , _rlMaxResults = Nothing
@@ -100,7 +100,10 @@
 
 instance GoogleRequest RolesList where
         type Rs RolesList = Roles
-        requestClient RolesList{..}
+        type Scopes RolesList =
+             '["https://www.googleapis.com/auth/admin.directory.rolemanagement",
+               "https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly"]
+        requestClient RolesList'{..}
           = go _rlCustomer _rlPageToken _rlMaxResults
               (Just AltJSON)
               directoryService
diff --git a/gen/Network/Google/Resource/Directory/Roles/Patch.hs b/gen/Network/Google/Resource/Directory/Roles/Patch.hs
--- a/gen/Network/Google/Resource/Directory/Roles/Patch.hs
+++ b/gen/Network/Google/Resource/Directory/Roles/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Roles.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -57,7 +57,7 @@
 -- | Updates a role. This method supports patch semantics.
 --
 -- /See:/ 'rolesPatch' smart constructor.
-data RolesPatch = RolesPatch
+data RolesPatch = RolesPatch'
     { _rpPayload  :: !Role
     , _rpRoleId   :: !Text
     , _rpCustomer :: !Text
@@ -78,7 +78,7 @@
     -> Text -- ^ 'rpCustomer'
     -> RolesPatch
 rolesPatch pRpPayload_ pRpRoleId_ pRpCustomer_ =
-    RolesPatch
+    RolesPatch'
     { _rpPayload = pRpPayload_
     , _rpRoleId = pRpRoleId_
     , _rpCustomer = pRpCustomer_
@@ -100,7 +100,9 @@
 
 instance GoogleRequest RolesPatch where
         type Rs RolesPatch = Role
-        requestClient RolesPatch{..}
+        type Scopes RolesPatch =
+             '["https://www.googleapis.com/auth/admin.directory.rolemanagement"]
+        requestClient RolesPatch'{..}
           = go _rpCustomer _rpRoleId (Just AltJSON) _rpPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Roles/Update.hs b/gen/Network/Google/Resource/Directory/Roles/Update.hs
--- a/gen/Network/Google/Resource/Directory/Roles/Update.hs
+++ b/gen/Network/Google/Resource/Directory/Roles/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Roles.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -57,7 +57,7 @@
 -- | Updates a role.
 --
 -- /See:/ 'rolesUpdate' smart constructor.
-data RolesUpdate = RolesUpdate
+data RolesUpdate = RolesUpdate'
     { _ruPayload  :: !Role
     , _ruRoleId   :: !Text
     , _ruCustomer :: !Text
@@ -78,7 +78,7 @@
     -> Text -- ^ 'ruCustomer'
     -> RolesUpdate
 rolesUpdate pRuPayload_ pRuRoleId_ pRuCustomer_ =
-    RolesUpdate
+    RolesUpdate'
     { _ruPayload = pRuPayload_
     , _ruRoleId = pRuRoleId_
     , _ruCustomer = pRuCustomer_
@@ -100,7 +100,9 @@
 
 instance GoogleRequest RolesUpdate where
         type Rs RolesUpdate = Role
-        requestClient RolesUpdate{..}
+        type Scopes RolesUpdate =
+             '["https://www.googleapis.com/auth/admin.directory.rolemanagement"]
+        requestClient RolesUpdate'{..}
           = go _ruCustomer _ruRoleId (Just AltJSON) _ruPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Schemas/Delete.hs b/gen/Network/Google/Resource/Directory/Schemas/Delete.hs
--- a/gen/Network/Google/Resource/Directory/Schemas/Delete.hs
+++ b/gen/Network/Google/Resource/Directory/Schemas/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Schemas.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Delete schema
 --
 -- /See:/ 'schemasDelete' smart constructor.
-data SchemasDelete = SchemasDelete
+data SchemasDelete = SchemasDelete'
     { _sdCustomerId :: !Text
     , _sdSchemaKey  :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'sdSchemaKey'
     -> SchemasDelete
 schemasDelete pSdCustomerId_ pSdSchemaKey_ =
-    SchemasDelete
+    SchemasDelete'
     { _sdCustomerId = pSdCustomerId_
     , _sdSchemaKey = pSdSchemaKey_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest SchemasDelete where
         type Rs SchemasDelete = ()
-        requestClient SchemasDelete{..}
+        type Scopes SchemasDelete =
+             '["https://www.googleapis.com/auth/admin.directory.userschema"]
+        requestClient SchemasDelete'{..}
           = go _sdCustomerId _sdSchemaKey (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Schemas/Get.hs b/gen/Network/Google/Resource/Directory/Schemas/Get.hs
--- a/gen/Network/Google/Resource/Directory/Schemas/Get.hs
+++ b/gen/Network/Google/Resource/Directory/Schemas/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Schemas.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Retrieve schema
 --
 -- /See:/ 'schemasGet' smart constructor.
-data SchemasGet = SchemasGet
+data SchemasGet = SchemasGet'
     { _sgCustomerId :: !Text
     , _sgSchemaKey  :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'sgSchemaKey'
     -> SchemasGet
 schemasGet pSgCustomerId_ pSgSchemaKey_ =
-    SchemasGet
+    SchemasGet'
     { _sgCustomerId = pSgCustomerId_
     , _sgSchemaKey = pSgSchemaKey_
     }
@@ -89,7 +89,10 @@
 
 instance GoogleRequest SchemasGet where
         type Rs SchemasGet = Schema
-        requestClient SchemasGet{..}
+        type Scopes SchemasGet =
+             '["https://www.googleapis.com/auth/admin.directory.userschema",
+               "https://www.googleapis.com/auth/admin.directory.userschema.readonly"]
+        requestClient SchemasGet'{..}
           = go _sgCustomerId _sgSchemaKey (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Schemas/Insert.hs b/gen/Network/Google/Resource/Directory/Schemas/Insert.hs
--- a/gen/Network/Google/Resource/Directory/Schemas/Insert.hs
+++ b/gen/Network/Google/Resource/Directory/Schemas/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Schemas.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Create schema.
 --
 -- /See:/ 'schemasInsert' smart constructor.
-data SchemasInsert = SchemasInsert
+data SchemasInsert = SchemasInsert'
     { _siPayload    :: !Schema
     , _siCustomerId :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'siCustomerId'
     -> SchemasInsert
 schemasInsert pSiPayload_ pSiCustomerId_ =
-    SchemasInsert
+    SchemasInsert'
     { _siPayload = pSiPayload_
     , _siCustomerId = pSiCustomerId_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest SchemasInsert where
         type Rs SchemasInsert = Schema
-        requestClient SchemasInsert{..}
+        type Scopes SchemasInsert =
+             '["https://www.googleapis.com/auth/admin.directory.userschema"]
+        requestClient SchemasInsert'{..}
           = go _siCustomerId (Just AltJSON) _siPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Schemas/List.hs b/gen/Network/Google/Resource/Directory/Schemas/List.hs
--- a/gen/Network/Google/Resource/Directory/Schemas/List.hs
+++ b/gen/Network/Google/Resource/Directory/Schemas/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Schemas.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -53,7 +53,7 @@
 -- | Retrieve all schemas for a customer
 --
 -- /See:/ 'schemasList' smart constructor.
-newtype SchemasList = SchemasList
+newtype SchemasList = SchemasList'
     { _slCustomerId :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -66,7 +66,7 @@
     :: Text -- ^ 'slCustomerId'
     -> SchemasList
 schemasList pSlCustomerId_ =
-    SchemasList
+    SchemasList'
     { _slCustomerId = pSlCustomerId_
     }
 
@@ -77,7 +77,10 @@
 
 instance GoogleRequest SchemasList where
         type Rs SchemasList = Schemas
-        requestClient SchemasList{..}
+        type Scopes SchemasList =
+             '["https://www.googleapis.com/auth/admin.directory.userschema",
+               "https://www.googleapis.com/auth/admin.directory.userschema.readonly"]
+        requestClient SchemasList'{..}
           = go _slCustomerId (Just AltJSON) directoryService
           where go
                   = buildClient (Proxy :: Proxy SchemasListResource)
diff --git a/gen/Network/Google/Resource/Directory/Schemas/Patch.hs b/gen/Network/Google/Resource/Directory/Schemas/Patch.hs
--- a/gen/Network/Google/Resource/Directory/Schemas/Patch.hs
+++ b/gen/Network/Google/Resource/Directory/Schemas/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Schemas.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -57,7 +57,7 @@
 -- | Update schema. This method supports patch semantics.
 --
 -- /See:/ 'schemasPatch' smart constructor.
-data SchemasPatch = SchemasPatch
+data SchemasPatch = SchemasPatch'
     { _spPayload    :: !Schema
     , _spCustomerId :: !Text
     , _spSchemaKey  :: !Text
@@ -78,7 +78,7 @@
     -> Text -- ^ 'spSchemaKey'
     -> SchemasPatch
 schemasPatch pSpPayload_ pSpCustomerId_ pSpSchemaKey_ =
-    SchemasPatch
+    SchemasPatch'
     { _spPayload = pSpPayload_
     , _spCustomerId = pSpCustomerId_
     , _spSchemaKey = pSpSchemaKey_
@@ -101,7 +101,9 @@
 
 instance GoogleRequest SchemasPatch where
         type Rs SchemasPatch = Schema
-        requestClient SchemasPatch{..}
+        type Scopes SchemasPatch =
+             '["https://www.googleapis.com/auth/admin.directory.userschema"]
+        requestClient SchemasPatch'{..}
           = go _spCustomerId _spSchemaKey (Just AltJSON)
               _spPayload
               directoryService
diff --git a/gen/Network/Google/Resource/Directory/Schemas/Update.hs b/gen/Network/Google/Resource/Directory/Schemas/Update.hs
--- a/gen/Network/Google/Resource/Directory/Schemas/Update.hs
+++ b/gen/Network/Google/Resource/Directory/Schemas/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Schemas.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -57,7 +57,7 @@
 -- | Update schema
 --
 -- /See:/ 'schemasUpdate' smart constructor.
-data SchemasUpdate = SchemasUpdate
+data SchemasUpdate = SchemasUpdate'
     { _suPayload    :: !Schema
     , _suCustomerId :: !Text
     , _suSchemaKey  :: !Text
@@ -78,7 +78,7 @@
     -> Text -- ^ 'suSchemaKey'
     -> SchemasUpdate
 schemasUpdate pSuPayload_ pSuCustomerId_ pSuSchemaKey_ =
-    SchemasUpdate
+    SchemasUpdate'
     { _suPayload = pSuPayload_
     , _suCustomerId = pSuCustomerId_
     , _suSchemaKey = pSuSchemaKey_
@@ -101,7 +101,9 @@
 
 instance GoogleRequest SchemasUpdate where
         type Rs SchemasUpdate = Schema
-        requestClient SchemasUpdate{..}
+        type Scopes SchemasUpdate =
+             '["https://www.googleapis.com/auth/admin.directory.userschema"]
+        requestClient SchemasUpdate'{..}
           = go _suCustomerId _suSchemaKey (Just AltJSON)
               _suPayload
               directoryService
diff --git a/gen/Network/Google/Resource/Directory/Tokens/Delete.hs b/gen/Network/Google/Resource/Directory/Tokens/Delete.hs
--- a/gen/Network/Google/Resource/Directory/Tokens/Delete.hs
+++ b/gen/Network/Google/Resource/Directory/Tokens/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Tokens.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Delete all access tokens issued by a user for an application.
 --
 -- /See:/ 'tokensDelete' smart constructor.
-data TokensDelete = TokensDelete
+data TokensDelete = TokensDelete'
     { _tdClientId :: !Text
     , _tdUserKey  :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'tdUserKey'
     -> TokensDelete
 tokensDelete pTdClientId_ pTdUserKey_ =
-    TokensDelete
+    TokensDelete'
     { _tdClientId = pTdClientId_
     , _tdUserKey = pTdUserKey_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest TokensDelete where
         type Rs TokensDelete = ()
-        requestClient TokensDelete{..}
+        type Scopes TokensDelete =
+             '["https://www.googleapis.com/auth/admin.directory.user.security"]
+        requestClient TokensDelete'{..}
           = go _tdUserKey _tdClientId (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Tokens/Get.hs b/gen/Network/Google/Resource/Directory/Tokens/Get.hs
--- a/gen/Network/Google/Resource/Directory/Tokens/Get.hs
+++ b/gen/Network/Google/Resource/Directory/Tokens/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Tokens.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Get information about an access token issued by a user.
 --
 -- /See:/ 'tokensGet' smart constructor.
-data TokensGet = TokensGet
+data TokensGet = TokensGet'
     { _tgClientId :: !Text
     , _tgUserKey  :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'tgUserKey'
     -> TokensGet
 tokensGet pTgClientId_ pTgUserKey_ =
-    TokensGet
+    TokensGet'
     { _tgClientId = pTgClientId_
     , _tgUserKey = pTgUserKey_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest TokensGet where
         type Rs TokensGet = Token
-        requestClient TokensGet{..}
+        type Scopes TokensGet =
+             '["https://www.googleapis.com/auth/admin.directory.user.security"]
+        requestClient TokensGet'{..}
           = go _tgUserKey _tgClientId (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Tokens/List.hs b/gen/Network/Google/Resource/Directory/Tokens/List.hs
--- a/gen/Network/Google/Resource/Directory/Tokens/List.hs
+++ b/gen/Network/Google/Resource/Directory/Tokens/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Tokens.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- applications.
 --
 -- /See:/ 'tokensList' smart constructor.
-newtype TokensList = TokensList
+newtype TokensList = TokensList'
     { _tlUserKey :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -68,7 +68,7 @@
     :: Text -- ^ 'tlUserKey'
     -> TokensList
 tokensList pTlUserKey_ =
-    TokensList
+    TokensList'
     { _tlUserKey = pTlUserKey_
     }
 
@@ -80,7 +80,9 @@
 
 instance GoogleRequest TokensList where
         type Rs TokensList = Tokens
-        requestClient TokensList{..}
+        type Scopes TokensList =
+             '["https://www.googleapis.com/auth/admin.directory.user.security"]
+        requestClient TokensList'{..}
           = go _tlUserKey (Just AltJSON) directoryService
           where go
                   = buildClient (Proxy :: Proxy TokensListResource)
diff --git a/gen/Network/Google/Resource/Directory/Users/Aliases/Delete.hs b/gen/Network/Google/Resource/Directory/Users/Aliases/Delete.hs
--- a/gen/Network/Google/Resource/Directory/Users/Aliases/Delete.hs
+++ b/gen/Network/Google/Resource/Directory/Users/Aliases/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.Aliases.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Remove a alias for the user
 --
 -- /See:/ 'usersAliasesDelete' smart constructor.
-data UsersAliasesDelete = UsersAliasesDelete
+data UsersAliasesDelete = UsersAliasesDelete'
     { _uadAlias   :: !Text
     , _uadUserKey :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'uadUserKey'
     -> UsersAliasesDelete
 usersAliasesDelete pUadAlias_ pUadUserKey_ =
-    UsersAliasesDelete
+    UsersAliasesDelete'
     { _uadAlias = pUadAlias_
     , _uadUserKey = pUadUserKey_
     }
@@ -88,7 +88,10 @@
 
 instance GoogleRequest UsersAliasesDelete where
         type Rs UsersAliasesDelete = ()
-        requestClient UsersAliasesDelete{..}
+        type Scopes UsersAliasesDelete =
+             '["https://www.googleapis.com/auth/admin.directory.user",
+               "https://www.googleapis.com/auth/admin.directory.user.alias"]
+        requestClient UsersAliasesDelete'{..}
           = go _uadUserKey _uadAlias (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Users/Aliases/Insert.hs b/gen/Network/Google/Resource/Directory/Users/Aliases/Insert.hs
--- a/gen/Network/Google/Resource/Directory/Users/Aliases/Insert.hs
+++ b/gen/Network/Google/Resource/Directory/Users/Aliases/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.Aliases.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Add a alias for the user
 --
 -- /See:/ 'usersAliasesInsert' smart constructor.
-data UsersAliasesInsert = UsersAliasesInsert
+data UsersAliasesInsert = UsersAliasesInsert'
     { _uaiPayload :: !Alias
     , _uaiUserKey :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'uaiUserKey'
     -> UsersAliasesInsert
 usersAliasesInsert pUaiPayload_ pUaiUserKey_ =
-    UsersAliasesInsert
+    UsersAliasesInsert'
     { _uaiPayload = pUaiPayload_
     , _uaiUserKey = pUaiUserKey_
     }
@@ -89,7 +89,10 @@
 
 instance GoogleRequest UsersAliasesInsert where
         type Rs UsersAliasesInsert = Alias
-        requestClient UsersAliasesInsert{..}
+        type Scopes UsersAliasesInsert =
+             '["https://www.googleapis.com/auth/admin.directory.user",
+               "https://www.googleapis.com/auth/admin.directory.user.alias"]
+        requestClient UsersAliasesInsert'{..}
           = go _uaiUserKey (Just AltJSON) _uaiPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Users/Aliases/List.hs b/gen/Network/Google/Resource/Directory/Users/Aliases/List.hs
--- a/gen/Network/Google/Resource/Directory/Users/Aliases/List.hs
+++ b/gen/Network/Google/Resource/Directory/Users/Aliases/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.Aliases.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | List all aliases for a user
 --
 -- /See:/ 'usersAliasesList' smart constructor.
-data UsersAliasesList = UsersAliasesList
+data UsersAliasesList = UsersAliasesList'
     { _ualEvent   :: !(Maybe UsersAliasesListEvent)
     , _ualUserKey :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     :: Text -- ^ 'ualUserKey'
     -> UsersAliasesList
 usersAliasesList pUalUserKey_ =
-    UsersAliasesList
+    UsersAliasesList'
     { _ualEvent = Nothing
     , _ualUserKey = pUalUserKey_
     }
@@ -87,7 +87,12 @@
 
 instance GoogleRequest UsersAliasesList where
         type Rs UsersAliasesList = Aliases
-        requestClient UsersAliasesList{..}
+        type Scopes UsersAliasesList =
+             '["https://www.googleapis.com/auth/admin.directory.user",
+               "https://www.googleapis.com/auth/admin.directory.user.alias",
+               "https://www.googleapis.com/auth/admin.directory.user.alias.readonly",
+               "https://www.googleapis.com/auth/admin.directory.user.readonly"]
+        requestClient UsersAliasesList'{..}
           = go _ualUserKey _ualEvent (Just AltJSON)
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Users/Aliases/Watch.hs b/gen/Network/Google/Resource/Directory/Users/Aliases/Watch.hs
--- a/gen/Network/Google/Resource/Directory/Users/Aliases/Watch.hs
+++ b/gen/Network/Google/Resource/Directory/Users/Aliases/Watch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.Aliases.Watch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -58,7 +58,7 @@
 -- | Watch for changes in user aliases list
 --
 -- /See:/ 'usersAliasesWatch' smart constructor.
-data UsersAliasesWatch = UsersAliasesWatch
+data UsersAliasesWatch = UsersAliasesWatch'
     { _uawEvent   :: !(Maybe UsersAliasesWatchEvent)
     , _uawPayload :: !Channel
     , _uawUserKey :: !Text
@@ -78,7 +78,7 @@
     -> Text -- ^ 'uawUserKey'
     -> UsersAliasesWatch
 usersAliasesWatch pUawPayload_ pUawUserKey_ =
-    UsersAliasesWatch
+    UsersAliasesWatch'
     { _uawEvent = Nothing
     , _uawPayload = pUawPayload_
     , _uawUserKey = pUawUserKey_
@@ -100,7 +100,12 @@
 
 instance GoogleRequest UsersAliasesWatch where
         type Rs UsersAliasesWatch = Channel
-        requestClient UsersAliasesWatch{..}
+        type Scopes UsersAliasesWatch =
+             '["https://www.googleapis.com/auth/admin.directory.user",
+               "https://www.googleapis.com/auth/admin.directory.user.alias",
+               "https://www.googleapis.com/auth/admin.directory.user.alias.readonly",
+               "https://www.googleapis.com/auth/admin.directory.user.readonly"]
+        requestClient UsersAliasesWatch'{..}
           = go _uawUserKey _uawEvent (Just AltJSON) _uawPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Users/Delete.hs b/gen/Network/Google/Resource/Directory/Users/Delete.hs
--- a/gen/Network/Google/Resource/Directory/Users/Delete.hs
+++ b/gen/Network/Google/Resource/Directory/Users/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -52,7 +52,7 @@
 -- | Delete user
 --
 -- /See:/ 'usersDelete' smart constructor.
-newtype UsersDelete = UsersDelete
+newtype UsersDelete = UsersDelete'
     { _udUserKey :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -65,7 +65,7 @@
     :: Text -- ^ 'udUserKey'
     -> UsersDelete
 usersDelete pUdUserKey_ =
-    UsersDelete
+    UsersDelete'
     { _udUserKey = pUdUserKey_
     }
 
@@ -76,7 +76,9 @@
 
 instance GoogleRequest UsersDelete where
         type Rs UsersDelete = ()
-        requestClient UsersDelete{..}
+        type Scopes UsersDelete =
+             '["https://www.googleapis.com/auth/admin.directory.user"]
+        requestClient UsersDelete'{..}
           = go _udUserKey (Just AltJSON) directoryService
           where go
                   = buildClient (Proxy :: Proxy UsersDeleteResource)
diff --git a/gen/Network/Google/Resource/Directory/Users/Get.hs b/gen/Network/Google/Resource/Directory/Users/Get.hs
--- a/gen/Network/Google/Resource/Directory/Users/Get.hs
+++ b/gen/Network/Google/Resource/Directory/Users/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -58,7 +58,7 @@
 -- | retrieve user
 --
 -- /See:/ 'usersGet' smart constructor.
-data UsersGet = UsersGet
+data UsersGet = UsersGet'
     { _ugViewType        :: !UsersGetViewType
     , _ugCustomFieldMask :: !(Maybe Text)
     , _ugProjection      :: !UsersGetProjection
@@ -80,7 +80,7 @@
     :: Text -- ^ 'ugUserKey'
     -> UsersGet
 usersGet pUgUserKey_ =
-    UsersGet
+    UsersGet'
     { _ugViewType = UGVTAdminView
     , _ugCustomFieldMask = Nothing
     , _ugProjection = UGPBasic
@@ -111,7 +111,10 @@
 
 instance GoogleRequest UsersGet where
         type Rs UsersGet = User
-        requestClient UsersGet{..}
+        type Scopes UsersGet =
+             '["https://www.googleapis.com/auth/admin.directory.user",
+               "https://www.googleapis.com/auth/admin.directory.user.readonly"]
+        requestClient UsersGet'{..}
           = go _ugUserKey (Just _ugViewType) _ugCustomFieldMask
               (Just _ugProjection)
               (Just AltJSON)
diff --git a/gen/Network/Google/Resource/Directory/Users/Insert.hs b/gen/Network/Google/Resource/Directory/Users/Insert.hs
--- a/gen/Network/Google/Resource/Directory/Users/Insert.hs
+++ b/gen/Network/Google/Resource/Directory/Users/Insert.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.Insert
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -52,7 +52,7 @@
 -- | create user.
 --
 -- /See:/ 'usersInsert' smart constructor.
-newtype UsersInsert = UsersInsert
+newtype UsersInsert = UsersInsert'
     { _uiPayload :: User
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -65,7 +65,7 @@
     :: User -- ^ 'uiPayload'
     -> UsersInsert
 usersInsert pUiPayload_ =
-    UsersInsert
+    UsersInsert'
     { _uiPayload = pUiPayload_
     }
 
@@ -76,7 +76,9 @@
 
 instance GoogleRequest UsersInsert where
         type Rs UsersInsert = User
-        requestClient UsersInsert{..}
+        type Scopes UsersInsert =
+             '["https://www.googleapis.com/auth/admin.directory.user"]
+        requestClient UsersInsert'{..}
           = go (Just AltJSON) _uiPayload directoryService
           where go
                   = buildClient (Proxy :: Proxy UsersInsertResource)
diff --git a/gen/Network/Google/Resource/Directory/Users/List.hs b/gen/Network/Google/Resource/Directory/Users/List.hs
--- a/gen/Network/Google/Resource/Directory/Users/List.hs
+++ b/gen/Network/Google/Resource/Directory/Users/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -75,7 +75,7 @@
 -- | Retrieve either deleted users or all users in a domain (paginated)
 --
 -- /See:/ 'usersList' smart constructor.
-data UsersList = UsersList
+data UsersList = UsersList'
     { _ulEvent           :: !(Maybe UsersListEvent)
     , _ulOrderBy         :: !(Maybe UsersListOrderBy)
     , _ulViewType        :: !UsersListViewType
@@ -120,7 +120,7 @@
 usersList
     :: UsersList
 usersList =
-    UsersList
+    UsersList'
     { _ulEvent = Nothing
     , _ulOrderBy = Nothing
     , _ulViewType = AdminView
@@ -202,7 +202,10 @@
 
 instance GoogleRequest UsersList where
         type Rs UsersList = Users
-        requestClient UsersList{..}
+        type Scopes UsersList =
+             '["https://www.googleapis.com/auth/admin.directory.user",
+               "https://www.googleapis.com/auth/admin.directory.user.readonly"]
+        requestClient UsersList'{..}
           = go _ulEvent _ulOrderBy (Just _ulViewType)
               _ulCustomFieldMask
               _ulDomain
diff --git a/gen/Network/Google/Resource/Directory/Users/MakeAdmin.hs b/gen/Network/Google/Resource/Directory/Users/MakeAdmin.hs
--- a/gen/Network/Google/Resource/Directory/Users/MakeAdmin.hs
+++ b/gen/Network/Google/Resource/Directory/Users/MakeAdmin.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.MakeAdmin
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | change admin status of a user
 --
 -- /See:/ 'usersMakeAdmin' smart constructor.
-data UsersMakeAdmin = UsersMakeAdmin
+data UsersMakeAdmin = UsersMakeAdmin'
     { _umaPayload :: !UserMakeAdmin
     , _umaUserKey :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'umaUserKey'
     -> UsersMakeAdmin
 usersMakeAdmin pUmaPayload_ pUmaUserKey_ =
-    UsersMakeAdmin
+    UsersMakeAdmin'
     { _umaPayload = pUmaPayload_
     , _umaUserKey = pUmaUserKey_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest UsersMakeAdmin where
         type Rs UsersMakeAdmin = ()
-        requestClient UsersMakeAdmin{..}
+        type Scopes UsersMakeAdmin =
+             '["https://www.googleapis.com/auth/admin.directory.user"]
+        requestClient UsersMakeAdmin'{..}
           = go _umaUserKey (Just AltJSON) _umaPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Users/Patch.hs b/gen/Network/Google/Resource/Directory/Users/Patch.hs
--- a/gen/Network/Google/Resource/Directory/Users/Patch.hs
+++ b/gen/Network/Google/Resource/Directory/Users/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -54,7 +54,7 @@
 -- | update user. This method supports patch semantics.
 --
 -- /See:/ 'usersPatch' smart constructor.
-data UsersPatch = UsersPatch
+data UsersPatch = UsersPatch'
     { _upPayload :: !User
     , _upUserKey :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Text -- ^ 'upUserKey'
     -> UsersPatch
 usersPatch pUpPayload_ pUpUserKey_ =
-    UsersPatch
+    UsersPatch'
     { _upPayload = pUpPayload_
     , _upUserKey = pUpUserKey_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest UsersPatch where
         type Rs UsersPatch = User
-        requestClient UsersPatch{..}
+        type Scopes UsersPatch =
+             '["https://www.googleapis.com/auth/admin.directory.user"]
+        requestClient UsersPatch'{..}
           = go _upUserKey (Just AltJSON) _upPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Users/Photos/Delete.hs b/gen/Network/Google/Resource/Directory/Users/Photos/Delete.hs
--- a/gen/Network/Google/Resource/Directory/Users/Photos/Delete.hs
+++ b/gen/Network/Google/Resource/Directory/Users/Photos/Delete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.Photos.Delete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -54,7 +54,7 @@
 -- | Remove photos for the user
 --
 -- /See:/ 'usersPhotosDelete' smart constructor.
-newtype UsersPhotosDelete = UsersPhotosDelete
+newtype UsersPhotosDelete = UsersPhotosDelete'
     { _updUserKey :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -67,7 +67,7 @@
     :: Text -- ^ 'updUserKey'
     -> UsersPhotosDelete
 usersPhotosDelete pUpdUserKey_ =
-    UsersPhotosDelete
+    UsersPhotosDelete'
     { _updUserKey = pUpdUserKey_
     }
 
@@ -78,7 +78,9 @@
 
 instance GoogleRequest UsersPhotosDelete where
         type Rs UsersPhotosDelete = ()
-        requestClient UsersPhotosDelete{..}
+        type Scopes UsersPhotosDelete =
+             '["https://www.googleapis.com/auth/admin.directory.user"]
+        requestClient UsersPhotosDelete'{..}
           = go _updUserKey (Just AltJSON) directoryService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/Directory/Users/Photos/Get.hs b/gen/Network/Google/Resource/Directory/Users/Photos/Get.hs
--- a/gen/Network/Google/Resource/Directory/Users/Photos/Get.hs
+++ b/gen/Network/Google/Resource/Directory/Users/Photos/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.Photos.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -54,7 +54,7 @@
 -- | Retrieve photo of a user
 --
 -- /See:/ 'usersPhotosGet' smart constructor.
-newtype UsersPhotosGet = UsersPhotosGet
+newtype UsersPhotosGet = UsersPhotosGet'
     { _upgUserKey :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -67,7 +67,7 @@
     :: Text -- ^ 'upgUserKey'
     -> UsersPhotosGet
 usersPhotosGet pUpgUserKey_ =
-    UsersPhotosGet
+    UsersPhotosGet'
     { _upgUserKey = pUpgUserKey_
     }
 
@@ -78,7 +78,10 @@
 
 instance GoogleRequest UsersPhotosGet where
         type Rs UsersPhotosGet = UserPhoto
-        requestClient UsersPhotosGet{..}
+        type Scopes UsersPhotosGet =
+             '["https://www.googleapis.com/auth/admin.directory.user",
+               "https://www.googleapis.com/auth/admin.directory.user.readonly"]
+        requestClient UsersPhotosGet'{..}
           = go _upgUserKey (Just AltJSON) directoryService
           where go
                   = buildClient (Proxy :: Proxy UsersPhotosGetResource)
diff --git a/gen/Network/Google/Resource/Directory/Users/Photos/Patch.hs b/gen/Network/Google/Resource/Directory/Users/Photos/Patch.hs
--- a/gen/Network/Google/Resource/Directory/Users/Photos/Patch.hs
+++ b/gen/Network/Google/Resource/Directory/Users/Photos/Patch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.Photos.Patch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- | Add a photo for the user. This method supports patch semantics.
 --
 -- /See:/ 'usersPhotosPatch' smart constructor.
-data UsersPhotosPatch = UsersPhotosPatch
+data UsersPhotosPatch = UsersPhotosPatch'
     { _uppPayload :: !UserPhoto
     , _uppUserKey :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -73,7 +73,7 @@
     -> Text -- ^ 'uppUserKey'
     -> UsersPhotosPatch
 usersPhotosPatch pUppPayload_ pUppUserKey_ =
-    UsersPhotosPatch
+    UsersPhotosPatch'
     { _uppPayload = pUppPayload_
     , _uppUserKey = pUppUserKey_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest UsersPhotosPatch where
         type Rs UsersPhotosPatch = UserPhoto
-        requestClient UsersPhotosPatch{..}
+        type Scopes UsersPhotosPatch =
+             '["https://www.googleapis.com/auth/admin.directory.user"]
+        requestClient UsersPhotosPatch'{..}
           = go _uppUserKey (Just AltJSON) _uppPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Users/Photos/Update.hs b/gen/Network/Google/Resource/Directory/Users/Photos/Update.hs
--- a/gen/Network/Google/Resource/Directory/Users/Photos/Update.hs
+++ b/gen/Network/Google/Resource/Directory/Users/Photos/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.Photos.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- | Add a photo for the user
 --
 -- /See:/ 'usersPhotosUpdate' smart constructor.
-data UsersPhotosUpdate = UsersPhotosUpdate
+data UsersPhotosUpdate = UsersPhotosUpdate'
     { _upuPayload :: !UserPhoto
     , _upuUserKey :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -73,7 +73,7 @@
     -> Text -- ^ 'upuUserKey'
     -> UsersPhotosUpdate
 usersPhotosUpdate pUpuPayload_ pUpuUserKey_ =
-    UsersPhotosUpdate
+    UsersPhotosUpdate'
     { _upuPayload = pUpuPayload_
     , _upuUserKey = pUpuUserKey_
     }
@@ -90,7 +90,9 @@
 
 instance GoogleRequest UsersPhotosUpdate where
         type Rs UsersPhotosUpdate = UserPhoto
-        requestClient UsersPhotosUpdate{..}
+        type Scopes UsersPhotosUpdate =
+             '["https://www.googleapis.com/auth/admin.directory.user"]
+        requestClient UsersPhotosUpdate'{..}
           = go _upuUserKey (Just AltJSON) _upuPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Users/Undelete.hs b/gen/Network/Google/Resource/Directory/Users/Undelete.hs
--- a/gen/Network/Google/Resource/Directory/Users/Undelete.hs
+++ b/gen/Network/Google/Resource/Directory/Users/Undelete.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.Undelete
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -55,7 +55,7 @@
 -- | Undelete a deleted user
 --
 -- /See:/ 'usersUndelete' smart constructor.
-data UsersUndelete = UsersUndelete
+data UsersUndelete = UsersUndelete'
     { _uuPayload :: !UserUndelete
     , _uuUserKey :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -72,7 +72,7 @@
     -> Text -- ^ 'uuUserKey'
     -> UsersUndelete
 usersUndelete pUuPayload_ pUuUserKey_ =
-    UsersUndelete
+    UsersUndelete'
     { _uuPayload = pUuPayload_
     , _uuUserKey = pUuUserKey_
     }
@@ -89,7 +89,9 @@
 
 instance GoogleRequest UsersUndelete where
         type Rs UsersUndelete = ()
-        requestClient UsersUndelete{..}
+        type Scopes UsersUndelete =
+             '["https://www.googleapis.com/auth/admin.directory.user"]
+        requestClient UsersUndelete'{..}
           = go _uuUserKey (Just AltJSON) _uuPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Users/Update.hs b/gen/Network/Google/Resource/Directory/Users/Update.hs
--- a/gen/Network/Google/Resource/Directory/Users/Update.hs
+++ b/gen/Network/Google/Resource/Directory/Users/Update.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.Update
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -54,7 +54,7 @@
 -- | update user
 --
 -- /See:/ 'usersUpdate' smart constructor.
-data UsersUpdate = UsersUpdate
+data UsersUpdate = UsersUpdate'
     { _uPayload :: !User
     , _uUserKey :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -71,7 +71,7 @@
     -> Text -- ^ 'uUserKey'
     -> UsersUpdate
 usersUpdate pUPayload_ pUUserKey_ =
-    UsersUpdate
+    UsersUpdate'
     { _uPayload = pUPayload_
     , _uUserKey = pUUserKey_
     }
@@ -87,7 +87,9 @@
 
 instance GoogleRequest UsersUpdate where
         type Rs UsersUpdate = User
-        requestClient UsersUpdate{..}
+        type Scopes UsersUpdate =
+             '["https://www.googleapis.com/auth/admin.directory.user"]
+        requestClient UsersUpdate'{..}
           = go _uUserKey (Just AltJSON) _uPayload
               directoryService
           where go
diff --git a/gen/Network/Google/Resource/Directory/Users/Watch.hs b/gen/Network/Google/Resource/Directory/Users/Watch.hs
--- a/gen/Network/Google/Resource/Directory/Users/Watch.hs
+++ b/gen/Network/Google/Resource/Directory/Users/Watch.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.Users.Watch
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -78,7 +78,7 @@
 -- | Watch for changes in users list
 --
 -- /See:/ 'usersWatch' smart constructor.
-data UsersWatch = UsersWatch
+data UsersWatch = UsersWatch'
     { _uwEvent           :: !(Maybe UsersWatchEvent)
     , _uwOrderBy         :: !(Maybe UsersWatchOrderBy)
     , _uwViewType        :: !UsersWatchViewType
@@ -127,7 +127,7 @@
     :: Channel -- ^ 'uwPayload'
     -> UsersWatch
 usersWatch pUwPayload_ =
-    UsersWatch
+    UsersWatch'
     { _uwEvent = Nothing
     , _uwOrderBy = Nothing
     , _uwViewType = UWVTAdminView
@@ -215,7 +215,10 @@
 
 instance GoogleRequest UsersWatch where
         type Rs UsersWatch = Channel
-        requestClient UsersWatch{..}
+        type Scopes UsersWatch =
+             '["https://www.googleapis.com/auth/admin.directory.user",
+               "https://www.googleapis.com/auth/admin.directory.user.readonly"]
+        requestClient UsersWatch'{..}
           = go _uwEvent _uwOrderBy (Just _uwViewType)
               _uwCustomFieldMask
               _uwDomain
diff --git a/gen/Network/Google/Resource/Directory/VerificationCodes/Generate.hs b/gen/Network/Google/Resource/Directory/VerificationCodes/Generate.hs
--- a/gen/Network/Google/Resource/Directory/VerificationCodes/Generate.hs
+++ b/gen/Network/Google/Resource/Directory/VerificationCodes/Generate.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.VerificationCodes.Generate
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -54,7 +54,7 @@
 -- | Generate new backup verification codes for the user.
 --
 -- /See:/ 'verificationCodesGenerate' smart constructor.
-newtype VerificationCodesGenerate = VerificationCodesGenerate
+newtype VerificationCodesGenerate = VerificationCodesGenerate'
     { _vcgUserKey :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -67,7 +67,7 @@
     :: Text -- ^ 'vcgUserKey'
     -> VerificationCodesGenerate
 verificationCodesGenerate pVcgUserKey_ =
-    VerificationCodesGenerate
+    VerificationCodesGenerate'
     { _vcgUserKey = pVcgUserKey_
     }
 
@@ -79,7 +79,9 @@
 instance GoogleRequest VerificationCodesGenerate
          where
         type Rs VerificationCodesGenerate = ()
-        requestClient VerificationCodesGenerate{..}
+        type Scopes VerificationCodesGenerate =
+             '["https://www.googleapis.com/auth/admin.directory.user.security"]
+        requestClient VerificationCodesGenerate'{..}
           = go _vcgUserKey (Just AltJSON) directoryService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/Directory/VerificationCodes/Invalidate.hs b/gen/Network/Google/Resource/Directory/VerificationCodes/Invalidate.hs
--- a/gen/Network/Google/Resource/Directory/VerificationCodes/Invalidate.hs
+++ b/gen/Network/Google/Resource/Directory/VerificationCodes/Invalidate.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.VerificationCodes.Invalidate
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -54,7 +54,7 @@
 -- | Invalidate the current backup verification codes for the user.
 --
 -- /See:/ 'verificationCodesInvalidate' smart constructor.
-newtype VerificationCodesInvalidate = VerificationCodesInvalidate
+newtype VerificationCodesInvalidate = VerificationCodesInvalidate'
     { _vciUserKey :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -67,7 +67,7 @@
     :: Text -- ^ 'vciUserKey'
     -> VerificationCodesInvalidate
 verificationCodesInvalidate pVciUserKey_ =
-    VerificationCodesInvalidate
+    VerificationCodesInvalidate'
     { _vciUserKey = pVciUserKey_
     }
 
@@ -79,7 +79,9 @@
 instance GoogleRequest VerificationCodesInvalidate
          where
         type Rs VerificationCodesInvalidate = ()
-        requestClient VerificationCodesInvalidate{..}
+        type Scopes VerificationCodesInvalidate =
+             '["https://www.googleapis.com/auth/admin.directory.user.security"]
+        requestClient VerificationCodesInvalidate'{..}
           = go _vciUserKey (Just AltJSON) directoryService
           where go
                   = buildClient
diff --git a/gen/Network/Google/Resource/Directory/VerificationCodes/List.hs b/gen/Network/Google/Resource/Directory/VerificationCodes/List.hs
--- a/gen/Network/Google/Resource/Directory/VerificationCodes/List.hs
+++ b/gen/Network/Google/Resource/Directory/VerificationCodes/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.Directory.VerificationCodes.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -56,7 +56,7 @@
 -- specified user.
 --
 -- /See:/ 'verificationCodesList' smart constructor.
-newtype VerificationCodesList = VerificationCodesList
+newtype VerificationCodesList = VerificationCodesList'
     { _vclUserKey :: Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -69,7 +69,7 @@
     :: Text -- ^ 'vclUserKey'
     -> VerificationCodesList
 verificationCodesList pVclUserKey_ =
-    VerificationCodesList
+    VerificationCodesList'
     { _vclUserKey = pVclUserKey_
     }
 
@@ -81,7 +81,9 @@
 
 instance GoogleRequest VerificationCodesList where
         type Rs VerificationCodesList = VerificationCodes
-        requestClient VerificationCodesList{..}
+        type Scopes VerificationCodesList =
+             '["https://www.googleapis.com/auth/admin.directory.user.security"]
+        requestClient VerificationCodesList'{..}
           = go _vclUserKey (Just AltJSON) directoryService
           where go
                   = buildClient
diff --git a/gogol-admin-directory.cabal b/gogol-admin-directory.cabal
--- a/gogol-admin-directory.cabal
+++ b/gogol-admin-directory.cabal
@@ -1,5 +1,5 @@
 name:                  gogol-admin-directory
-version:               0.0.1
+version:               0.1.0
 synopsis:              Google Admin Directory SDK.
 homepage:              https://github.com/brendanhay/gogol
 bug-reports:           https://github.com/brendanhay/gogol/issues
@@ -7,7 +7,7 @@
 license-file:          LICENSE
 author:                Brendan Hay
 maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2015 Brendan Hay
+copyright:             Copyright (c) 2015-2016 Brendan Hay
 category:              Network, Google, Cloud
 build-type:            Simple
 cabal-version:         >= 1.10
@@ -87,6 +87,12 @@
         , Network.Google.Resource.Directory.OrgUnits.Patch
         , Network.Google.Resource.Directory.OrgUnits.Update
         , Network.Google.Resource.Directory.Privileges.List
+        , Network.Google.Resource.Directory.Resources.Calendars.Delete
+        , Network.Google.Resource.Directory.Resources.Calendars.Get
+        , Network.Google.Resource.Directory.Resources.Calendars.Insert
+        , Network.Google.Resource.Directory.Resources.Calendars.List
+        , Network.Google.Resource.Directory.Resources.Calendars.Patch
+        , Network.Google.Resource.Directory.Resources.Calendars.Update
         , Network.Google.Resource.Directory.RoleAssignments.Delete
         , Network.Google.Resource.Directory.RoleAssignments.Get
         , Network.Google.Resource.Directory.RoleAssignments.Insert
@@ -132,5 +138,5 @@
         , Network.Google.Directory.Types.Sum
 
     build-depends:
-          gogol-core == 0.0.1.*
+          gogol-core == 0.1.0.*
         , base       >= 4.7 && < 5
