packages feed

gogol-admin-directory 0.4.0 → 0.5.0

raw patch · 119 files changed

+9481/−8612 lines, 119 filesdep ~gogol-corePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: gogol-core

API changes (from Hackage documentation)

+ Network.Google.Directory: ClientSpecified :: ResourcesBuildingsPatchCoordinatesSource
+ Network.Google.Directory: RBICSClientSpecified :: ResourcesBuildingsInsertCoordinatesSource
+ Network.Google.Directory: RBICSResolvedFromAddress :: ResourcesBuildingsInsertCoordinatesSource
+ Network.Google.Directory: RBICSSourceUnspecified :: ResourcesBuildingsInsertCoordinatesSource
+ Network.Google.Directory: RBUCSClientSpecified :: ResourcesBuildingsUpdateCoordinatesSource
+ Network.Google.Directory: RBUCSResolvedFromAddress :: ResourcesBuildingsUpdateCoordinatesSource
+ Network.Google.Directory: RBUCSSourceUnspecified :: ResourcesBuildingsUpdateCoordinatesSource
+ Network.Google.Directory: ResolvedFromAddress :: ResourcesBuildingsPatchCoordinatesSource
+ Network.Google.Directory: SourceUnspecified :: ResourcesBuildingsPatchCoordinatesSource
+ Network.Google.Directory: baAddressLines :: Lens' BuildingAddress [Text]
+ Network.Google.Directory: baAdministrativeArea :: Lens' BuildingAddress (Maybe Text)
+ Network.Google.Directory: baLanguageCode :: Lens' BuildingAddress (Maybe Text)
+ Network.Google.Directory: baLocality :: Lens' BuildingAddress (Maybe Text)
+ Network.Google.Directory: baPostalCode :: Lens' BuildingAddress (Maybe Text)
+ Network.Google.Directory: baRegionCode :: Lens' BuildingAddress (Maybe Text)
+ Network.Google.Directory: baSublocality :: Lens' BuildingAddress (Maybe Text)
+ Network.Google.Directory: buiAddress :: Lens' Building (Maybe BuildingAddress)
+ Network.Google.Directory: buildingAddress :: BuildingAddress
+ Network.Google.Directory: data BuildingAddress
+ Network.Google.Directory: data ResourcesBuildingsInsertCoordinatesSource
+ Network.Google.Directory: data ResourcesBuildingsPatchCoordinatesSource
+ Network.Google.Directory: data ResourcesBuildingsUpdateCoordinatesSource
+ Network.Google.Directory.Types: ClientSpecified :: ResourcesBuildingsPatchCoordinatesSource
+ Network.Google.Directory.Types: RBICSClientSpecified :: ResourcesBuildingsInsertCoordinatesSource
+ Network.Google.Directory.Types: RBICSResolvedFromAddress :: ResourcesBuildingsInsertCoordinatesSource
+ Network.Google.Directory.Types: RBICSSourceUnspecified :: ResourcesBuildingsInsertCoordinatesSource
+ Network.Google.Directory.Types: RBUCSClientSpecified :: ResourcesBuildingsUpdateCoordinatesSource
+ Network.Google.Directory.Types: RBUCSResolvedFromAddress :: ResourcesBuildingsUpdateCoordinatesSource
+ Network.Google.Directory.Types: RBUCSSourceUnspecified :: ResourcesBuildingsUpdateCoordinatesSource
+ Network.Google.Directory.Types: ResolvedFromAddress :: ResourcesBuildingsPatchCoordinatesSource
+ Network.Google.Directory.Types: SourceUnspecified :: ResourcesBuildingsPatchCoordinatesSource
+ Network.Google.Directory.Types: baAddressLines :: Lens' BuildingAddress [Text]
+ Network.Google.Directory.Types: baAdministrativeArea :: Lens' BuildingAddress (Maybe Text)
+ Network.Google.Directory.Types: baLanguageCode :: Lens' BuildingAddress (Maybe Text)
+ Network.Google.Directory.Types: baLocality :: Lens' BuildingAddress (Maybe Text)
+ Network.Google.Directory.Types: baPostalCode :: Lens' BuildingAddress (Maybe Text)
+ Network.Google.Directory.Types: baRegionCode :: Lens' BuildingAddress (Maybe Text)
+ Network.Google.Directory.Types: baSublocality :: Lens' BuildingAddress (Maybe Text)
+ Network.Google.Directory.Types: buiAddress :: Lens' Building (Maybe BuildingAddress)
+ Network.Google.Directory.Types: buildingAddress :: BuildingAddress
+ Network.Google.Directory.Types: data BuildingAddress
+ Network.Google.Directory.Types: data ResourcesBuildingsInsertCoordinatesSource
+ Network.Google.Directory.Types: data ResourcesBuildingsPatchCoordinatesSource
+ Network.Google.Directory.Types: data ResourcesBuildingsUpdateCoordinatesSource
+ Network.Google.Resource.Directory.Resources.Buildings.Insert: rbiCoordinatesSource :: Lens' ResourcesBuildingsInsert ResourcesBuildingsInsertCoordinatesSource
+ Network.Google.Resource.Directory.Resources.Buildings.Patch: rbpCoordinatesSource :: Lens' ResourcesBuildingsPatch ResourcesBuildingsPatchCoordinatesSource
+ Network.Google.Resource.Directory.Resources.Buildings.Update: rbuCoordinatesSource :: Lens' ResourcesBuildingsUpdate ResourcesBuildingsUpdateCoordinatesSource
- Network.Google.Resource.Directory.Resources.Buildings.Insert: type ResourcesBuildingsInsertResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "buildings" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Building :> Post '[JSON] Building
+ Network.Google.Resource.Directory.Resources.Buildings.Insert: type ResourcesBuildingsInsertResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "buildings" :> QueryParam "coordinatesSource" ResourcesBuildingsInsertCoordinatesSource :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Building :> Post '[JSON] Building
- Network.Google.Resource.Directory.Resources.Buildings.Patch: type ResourcesBuildingsPatchResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "buildings" :> Capture "buildingId" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Building :> Patch '[JSON] Building
+ Network.Google.Resource.Directory.Resources.Buildings.Patch: type ResourcesBuildingsPatchResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "buildings" :> Capture "buildingId" Text :> QueryParam "coordinatesSource" ResourcesBuildingsPatchCoordinatesSource :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Building :> Patch '[JSON] Building
- Network.Google.Resource.Directory.Resources.Buildings.Update: type ResourcesBuildingsUpdateResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "buildings" :> Capture "buildingId" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Building :> Put '[JSON] Building
+ Network.Google.Resource.Directory.Resources.Buildings.Update: type ResourcesBuildingsUpdateResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "buildings" :> Capture "buildingId" Text :> QueryParam "coordinatesSource" ResourcesBuildingsUpdateCoordinatesSource :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Building :> Put '[JSON] Building

Files

README.md view
@@ -8,7 +8,7 @@  ## Version -`0.3.0`+`0.5.0`   ## Description
gen/Network/Google/Directory.hs view
@@ -679,6 +679,17 @@     -- ** UsersListOrderBy     , UsersListOrderBy (..) +    -- ** BuildingAddress+    , BuildingAddress+    , buildingAddress+    , baLanguageCode+    , baRegionCode+    , baSublocality+    , baPostalCode+    , baLocality+    , baAdministrativeArea+    , baAddressLines+     -- ** Tokens     , Tokens     , tokens@@ -781,6 +792,9 @@     , tokAnonymous     , tokUserKey +    -- ** ResourcesBuildingsPatchCoordinatesSource+    , ResourcesBuildingsPatchCoordinatesSource (..)+     -- ** UserName     , UserName     , userName@@ -797,6 +811,7 @@     , buiEtags     , buiKind     , buiBuildingId+    , buiAddress     , buiCoordinates     , buiBuildingName     , buiFloorNames@@ -852,6 +867,9 @@     , chromeOSMoveDevicesToOu     , comdtoDeviceIds +    -- ** ResourcesBuildingsUpdateCoordinatesSource+    , ResourcesBuildingsUpdateCoordinatesSource (..)+     -- ** User     , User     , user@@ -960,6 +978,9 @@      -- ** UsersListSortOrder     , UsersListSortOrder (..)++    -- ** ResourcesBuildingsInsertCoordinatesSource+    , ResourcesBuildingsInsertCoordinatesSource (..)      -- ** OrgUnits     , OrgUnits
gen/Network/Google/Directory/Types.hs view
@@ -330,6 +330,17 @@     -- * UsersListOrderBy     , UsersListOrderBy (..) +    -- * BuildingAddress+    , BuildingAddress+    , buildingAddress+    , baLanguageCode+    , baRegionCode+    , baSublocality+    , baPostalCode+    , baLocality+    , baAdministrativeArea+    , baAddressLines+     -- * Tokens     , Tokens     , tokens@@ -432,6 +443,9 @@     , tokAnonymous     , tokUserKey +    -- * ResourcesBuildingsPatchCoordinatesSource+    , ResourcesBuildingsPatchCoordinatesSource (..)+     -- * UserName     , UserName     , userName@@ -448,6 +462,7 @@     , buiEtags     , buiKind     , buiBuildingId+    , buiAddress     , buiCoordinates     , buiBuildingName     , buiFloorNames@@ -503,6 +518,9 @@     , chromeOSMoveDevicesToOu     , comdtoDeviceIds +    -- * ResourcesBuildingsUpdateCoordinatesSource+    , ResourcesBuildingsUpdateCoordinatesSource (..)+     -- * User     , User     , user@@ -612,6 +630,9 @@     -- * UsersListSortOrder     , UsersListSortOrder (..) +    -- * ResourcesBuildingsInsertCoordinatesSource+    , ResourcesBuildingsInsertCoordinatesSource (..)+     -- * OrgUnits     , OrgUnits     , orgUnits@@ -1000,108 +1021,108 @@  -- | View delegated admin roles for your domain adminDirectoryRoleManagementReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly"]-adminDirectoryRoleManagementReadOnlyScope = Proxy;+adminDirectoryRoleManagementReadOnlyScope = Proxy  -- | View groups on your domain adminDirectoryGroupReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.group.readonly"]-adminDirectoryGroupReadOnlyScope = Proxy;+adminDirectoryGroupReadOnlyScope = Proxy  -- | View your Chrome OS devices\' metadata adminDirectoryDeviceChromeosReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly"]-adminDirectoryDeviceChromeosReadOnlyScope = Proxy;+adminDirectoryDeviceChromeosReadOnlyScope = Proxy  -- | View and manage your Chrome OS devices\' metadata adminDirectoryDeviceChromeosScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.device.chromeos"]-adminDirectoryDeviceChromeosScope = Proxy;+adminDirectoryDeviceChromeosScope = Proxy  -- | View and manage the provisioning of users on your domain adminDirectoryUserScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.user"]-adminDirectoryUserScope = Proxy;+adminDirectoryUserScope = Proxy  -- | View group subscriptions on your domain adminDirectoryGroupMemberReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.group.member.readonly"]-adminDirectoryGroupMemberReadOnlyScope = Proxy;+adminDirectoryGroupMemberReadOnlyScope = Proxy  -- | View and manage user aliases on your domain adminDirectoryUserAliasScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.user.alias"]-adminDirectoryUserAliasScope = Proxy;+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;+adminDirectoryResourceCalendarScope = Proxy  -- | Manage your mobile devices by performing administrative tasks adminDirectoryDeviceMobileActionScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.device.mobile.action"]-adminDirectoryDeviceMobileActionScope = Proxy;+adminDirectoryDeviceMobileActionScope = Proxy  -- | View calendar resources on your domain adminDirectoryResourceCalendarReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly"]-adminDirectoryResourceCalendarReadOnlyScope = Proxy;+adminDirectoryResourceCalendarReadOnlyScope = Proxy  -- | View domains related to your customers adminDirectoryDomainReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.domain.readonly"]-adminDirectoryDomainReadOnlyScope = Proxy;+adminDirectoryDomainReadOnlyScope = Proxy  -- | View and manage the provisioning of user schemas on your domain adminDirectoryUserschemaScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.userschema"]-adminDirectoryUserschemaScope = Proxy;+adminDirectoryUserschemaScope = Proxy  -- | View user schemas on your domain adminDirectoryUserschemaReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.userschema.readonly"]-adminDirectoryUserschemaReadOnlyScope = Proxy;+adminDirectoryUserschemaReadOnlyScope = Proxy  -- | View and manage the provisioning of domains for your customers adminDirectoryDomainScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.domain"]-adminDirectoryDomainScope = Proxy;+adminDirectoryDomainScope = Proxy  -- | Manage delegated admin roles for your domain adminDirectoryRoleManagementScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.rolemanagement"]-adminDirectoryRoleManagementScope = Proxy;+adminDirectoryRoleManagementScope = Proxy  -- | View and manage the provisioning of groups on your domain adminDirectoryGroupScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.group"]-adminDirectoryGroupScope = Proxy;+adminDirectoryGroupScope = Proxy  -- | View organization units on your domain adminDirectoryOrgUnitReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.orgunit.readonly"]-adminDirectoryOrgUnitReadOnlyScope = Proxy;+adminDirectoryOrgUnitReadOnlyScope = Proxy  -- | View and manage customer related information adminDirectoryCustomerScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.customer"]-adminDirectoryCustomerScope = Proxy;+adminDirectoryCustomerScope = Proxy  -- | View customer related information adminDirectoryCustomerReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.customer.readonly"]-adminDirectoryCustomerReadOnlyScope = Proxy;+adminDirectoryCustomerReadOnlyScope = Proxy  -- | View and manage organization units on your domain adminDirectoryOrgUnitScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.orgunit"]-adminDirectoryOrgUnitScope = Proxy;+adminDirectoryOrgUnitScope = Proxy  -- | View users on your domain adminDirectoryUserReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.user.readonly"]-adminDirectoryUserReadOnlyScope = Proxy;+adminDirectoryUserReadOnlyScope = Proxy  -- | View user aliases on your domain adminDirectoryUserAliasReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.user.alias.readonly"]-adminDirectoryUserAliasReadOnlyScope = Proxy;+adminDirectoryUserAliasReadOnlyScope = Proxy  -- | Manage data access permissions for users on your domain adminDirectoryUserSecurityScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.user.security"]-adminDirectoryUserSecurityScope = Proxy;+adminDirectoryUserSecurityScope = Proxy  -- | View and manage group subscriptions on your domain adminDirectoryGroupMemberScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.group.member"]-adminDirectoryGroupMemberScope = Proxy;+adminDirectoryGroupMemberScope = Proxy  -- | View and manage notifications received on your domain adminDirectoryNotificationsScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.notifications"]-adminDirectoryNotificationsScope = Proxy;+adminDirectoryNotificationsScope = Proxy  -- | View and manage your mobile devices\' metadata adminDirectoryDeviceMobileScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.device.mobile"]-adminDirectoryDeviceMobileScope = Proxy;+adminDirectoryDeviceMobileScope = Proxy  -- | View your mobile devices\' metadata adminDirectoryDeviceMobileReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/admin.directory.device.mobile.readonly"]-adminDirectoryDeviceMobileReadOnlyScope = Proxy;+adminDirectoryDeviceMobileReadOnlyScope = Proxy
gen/Network/Google/Directory/Types/Product.hs view
@@ -23,8030 +23,8433 @@ -- | JSON template for a location entry. -- -- /See:/ 'userLocation' smart constructor.-data UserLocation = UserLocation'-    { _ulArea         :: !(Maybe Text)-    , _ulBuildingId   :: !(Maybe Text)-    , _ulDeskCode     :: !(Maybe Text)-    , _ulFloorName    :: !(Maybe Text)-    , _ulType         :: !(Maybe Text)-    , _ulCustomType   :: !(Maybe Text)-    , _ulFloorSection :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserLocation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ulArea'------ * 'ulBuildingId'------ * 'ulDeskCode'------ * 'ulFloorName'------ * 'ulType'------ * 'ulCustomType'------ * 'ulFloorSection'-userLocation-    :: UserLocation-userLocation =-    UserLocation'-    { _ulArea = Nothing-    , _ulBuildingId = Nothing-    , _ulDeskCode = Nothing-    , _ulFloorName = Nothing-    , _ulType = Nothing-    , _ulCustomType = Nothing-    , _ulFloorSection = Nothing-    }---- | Textual location. This is most useful for display purposes to concisely--- describe the location. For example, \"Mountain View, CA\", \"Near--- Seattle\", \"US-NYC-9TH 9A209A\".-ulArea :: Lens' UserLocation (Maybe Text)-ulArea = lens _ulArea (\ s a -> s{_ulArea = a})---- | Building Identifier.-ulBuildingId :: Lens' UserLocation (Maybe Text)-ulBuildingId-  = lens _ulBuildingId (\ s a -> s{_ulBuildingId = a})---- | Most specific textual code of individual desk location.-ulDeskCode :: Lens' UserLocation (Maybe Text)-ulDeskCode-  = lens _ulDeskCode (\ s a -> s{_ulDeskCode = a})---- | Floor name\/number.-ulFloorName :: Lens' UserLocation (Maybe Text)-ulFloorName-  = lens _ulFloorName (\ s a -> s{_ulFloorName = a})---- | Each entry can have a type which indicates standard types of that entry.--- For example location could be of types default and desk. In addition to--- standard type, an entry can have a custom type and can give it any name.--- Such types should have \"custom\" as type and also have a customType--- value.-ulType :: Lens' UserLocation (Maybe Text)-ulType = lens _ulType (\ s a -> s{_ulType = a})---- | Custom Type.-ulCustomType :: Lens' UserLocation (Maybe Text)-ulCustomType-  = lens _ulCustomType (\ s a -> s{_ulCustomType = a})---- | Floor section. More specific location within the floor. For example, if--- a floor is divided into sections \"A\", \"B\", and \"C\", this field--- would identify one of those values.-ulFloorSection :: Lens' UserLocation (Maybe Text)-ulFloorSection-  = lens _ulFloorSection-      (\ s a -> s{_ulFloorSection = a})--instance FromJSON UserLocation where-        parseJSON-          = withObject "UserLocation"-              (\ o ->-                 UserLocation' <$>-                   (o .:? "area") <*> (o .:? "buildingId") <*>-                     (o .:? "deskCode")-                     <*> (o .:? "floorName")-                     <*> (o .:? "type")-                     <*> (o .:? "customType")-                     <*> (o .:? "floorSection"))--instance ToJSON UserLocation where-        toJSON UserLocation'{..}-          = object-              (catMaybes-                 [("area" .=) <$> _ulArea,-                  ("buildingId" .=) <$> _ulBuildingId,-                  ("deskCode" .=) <$> _ulDeskCode,-                  ("floorName" .=) <$> _ulFloorName,-                  ("type" .=) <$> _ulType,-                  ("customType" .=) <$> _ulCustomType,-                  ("floorSection" .=) <$> _ulFloorSection])---- | JSON template for verification codes in Directory API.------ /See:/ 'verificationCode' smart constructor.-data VerificationCode = VerificationCode'-    { _vcVerificationCode :: !(Maybe Text)-    , _vcEtag             :: !(Maybe Text)-    , _vcKind             :: !Text-    , _vcUserId           :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'VerificationCode' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vcVerificationCode'------ * 'vcEtag'------ * 'vcKind'------ * 'vcUserId'-verificationCode-    :: VerificationCode-verificationCode =-    VerificationCode'-    { _vcVerificationCode = Nothing-    , _vcEtag = Nothing-    , _vcKind = "admin#directory#verificationCode"-    , _vcUserId = Nothing-    }---- | A current verification code for the user. Invalidated or used--- verification codes are not returned as part of the result.-vcVerificationCode :: Lens' VerificationCode (Maybe Text)-vcVerificationCode-  = lens _vcVerificationCode-      (\ s a -> s{_vcVerificationCode = a})---- | ETag of the resource.-vcEtag :: Lens' VerificationCode (Maybe Text)-vcEtag = lens _vcEtag (\ s a -> s{_vcEtag = a})---- | The type of the resource. This is always--- admin#directory#verificationCode.-vcKind :: Lens' VerificationCode Text-vcKind = lens _vcKind (\ s a -> s{_vcKind = a})---- | The obfuscated unique ID of the user.-vcUserId :: Lens' VerificationCode (Maybe Text)-vcUserId = lens _vcUserId (\ s a -> s{_vcUserId = a})--instance FromJSON VerificationCode where-        parseJSON-          = withObject "VerificationCode"-              (\ o ->-                 VerificationCode' <$>-                   (o .:? "verificationCode") <*> (o .:? "etag") <*>-                     (o .:? "kind" .!= "admin#directory#verificationCode")-                     <*> (o .:? "userId"))--instance ToJSON VerificationCode where-        toJSON VerificationCode'{..}-          = object-              (catMaybes-                 [("verificationCode" .=) <$> _vcVerificationCode,-                  ("etag" .=) <$> _vcEtag, Just ("kind" .= _vcKind),-                  ("userId" .=) <$> _vcUserId])---- | JSON template for Feature object in Directory API.------ /See:/ 'feature' smart constructor.-data Feature = Feature'-    { _fEtags :: !(Maybe Text)-    , _fKind  :: !Text-    , _fName  :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Feature' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'fEtags'------ * 'fKind'------ * 'fName'-feature-    :: Feature-feature =-    Feature'-    { _fEtags = Nothing-    , _fKind = "admin#directory#resources#features#Feature"-    , _fName = Nothing-    }---- | ETag of the resource.-fEtags :: Lens' Feature (Maybe Text)-fEtags = lens _fEtags (\ s a -> s{_fEtags = a})---- | Kind of resource this is.-fKind :: Lens' Feature Text-fKind = lens _fKind (\ s a -> s{_fKind = a})---- | The name of the feature.-fName :: Lens' Feature (Maybe Text)-fName = lens _fName (\ s a -> s{_fName = a})--instance FromJSON Feature where-        parseJSON-          = withObject "Feature"-              (\ o ->-                 Feature' <$>-                   (o .:? "etags") <*>-                     (o .:? "kind" .!=-                        "admin#directory#resources#features#Feature")-                     <*> (o .:? "name"))--instance ToJSON Feature where-        toJSON Feature'{..}-          = object-              (catMaybes-                 [("etags" .=) <$> _fEtags, Just ("kind" .= _fKind),-                  ("name" .=) <$> _fName])---- | JSON template for Org Unit resource in Directory API.------ /See:/ 'orgUnit' smart constructor.-data OrgUnit = OrgUnit'-    { _ouEtag              :: !(Maybe Text)-    , _ouParentOrgUnitPath :: !(Maybe Text)-    , _ouKind              :: !Text-    , _ouOrgUnitPath       :: !(Maybe Text)-    , _ouName              :: !(Maybe Text)-    , _ouBlockInheritance  :: !(Maybe Bool)-    , _ouParentOrgUnitId   :: !(Maybe Text)-    , _ouDescription       :: !(Maybe Text)-    , _ouOrgUnitId         :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'OrgUnit' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ouEtag'------ * 'ouParentOrgUnitPath'------ * 'ouKind'------ * 'ouOrgUnitPath'------ * 'ouName'------ * 'ouBlockInheritance'------ * 'ouParentOrgUnitId'------ * 'ouDescription'------ * 'ouOrgUnitId'-orgUnit-    :: OrgUnit-orgUnit =-    OrgUnit'-    { _ouEtag = Nothing-    , _ouParentOrgUnitPath = Nothing-    , _ouKind = "admin#directory#orgUnit"-    , _ouOrgUnitPath = Nothing-    , _ouName = Nothing-    , _ouBlockInheritance = Nothing-    , _ouParentOrgUnitId = Nothing-    , _ouDescription = Nothing-    , _ouOrgUnitId = Nothing-    }---- | ETag of the resource.-ouEtag :: Lens' OrgUnit (Maybe Text)-ouEtag = lens _ouEtag (\ s a -> s{_ouEtag = a})---- | Path of parent OrgUnit-ouParentOrgUnitPath :: Lens' OrgUnit (Maybe Text)-ouParentOrgUnitPath-  = lens _ouParentOrgUnitPath-      (\ s a -> s{_ouParentOrgUnitPath = a})---- | Kind of resource this is.-ouKind :: Lens' OrgUnit Text-ouKind = lens _ouKind (\ s a -> s{_ouKind = a})---- | Path of OrgUnit-ouOrgUnitPath :: Lens' OrgUnit (Maybe Text)-ouOrgUnitPath-  = lens _ouOrgUnitPath-      (\ s a -> s{_ouOrgUnitPath = a})---- | Name of OrgUnit-ouName :: Lens' OrgUnit (Maybe Text)-ouName = lens _ouName (\ s a -> s{_ouName = a})---- | Should block inheritance-ouBlockInheritance :: Lens' OrgUnit (Maybe Bool)-ouBlockInheritance-  = lens _ouBlockInheritance-      (\ s a -> s{_ouBlockInheritance = a})---- | Id of parent OrgUnit-ouParentOrgUnitId :: Lens' OrgUnit (Maybe Text)-ouParentOrgUnitId-  = lens _ouParentOrgUnitId-      (\ s a -> s{_ouParentOrgUnitId = a})---- | Description of OrgUnit-ouDescription :: Lens' OrgUnit (Maybe Text)-ouDescription-  = lens _ouDescription-      (\ s a -> s{_ouDescription = a})---- | Id of OrgUnit-ouOrgUnitId :: Lens' OrgUnit (Maybe Text)-ouOrgUnitId-  = lens _ouOrgUnitId (\ s a -> s{_ouOrgUnitId = a})--instance FromJSON OrgUnit where-        parseJSON-          = withObject "OrgUnit"-              (\ o ->-                 OrgUnit' <$>-                   (o .:? "etag") <*> (o .:? "parentOrgUnitPath") <*>-                     (o .:? "kind" .!= "admin#directory#orgUnit")-                     <*> (o .:? "orgUnitPath")-                     <*> (o .:? "name")-                     <*> (o .:? "blockInheritance")-                     <*> (o .:? "parentOrgUnitId")-                     <*> (o .:? "description")-                     <*> (o .:? "orgUnitId"))--instance ToJSON OrgUnit where-        toJSON OrgUnit'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _ouEtag,-                  ("parentOrgUnitPath" .=) <$> _ouParentOrgUnitPath,-                  Just ("kind" .= _ouKind),-                  ("orgUnitPath" .=) <$> _ouOrgUnitPath,-                  ("name" .=) <$> _ouName,-                  ("blockInheritance" .=) <$> _ouBlockInheritance,-                  ("parentOrgUnitId" .=) <$> _ouParentOrgUnitId,-                  ("description" .=) <$> _ouDescription,-                  ("orgUnitId" .=) <$> _ouOrgUnitId])---- | JSON request template for setting\/revoking admin status of a user in--- Directory API.------ /See:/ 'userMakeAdmin' smart constructor.-newtype UserMakeAdmin = UserMakeAdmin'-    { _umaStatus :: Maybe Bool-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserMakeAdmin' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'umaStatus'-userMakeAdmin-    :: UserMakeAdmin-userMakeAdmin =-    UserMakeAdmin'-    { _umaStatus = Nothing-    }---- | Boolean indicating new admin status of the user-umaStatus :: Lens' UserMakeAdmin (Maybe Bool)-umaStatus-  = lens _umaStatus (\ s a -> s{_umaStatus = a})--instance FromJSON UserMakeAdmin where-        parseJSON-          = withObject "UserMakeAdmin"-              (\ o -> UserMakeAdmin' <$> (o .:? "status"))--instance ToJSON UserMakeAdmin where-        toJSON UserMakeAdmin'{..}-          = object (catMaybes [("status" .=) <$> _umaStatus])---- | JSON template for About (notes) of a user in Directory API.------ /See:/ 'userAbout' smart constructor.-data UserAbout = UserAbout'-    { _uaValue       :: !(Maybe Text)-    , _uaContentType :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserAbout' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uaValue'------ * 'uaContentType'-userAbout-    :: UserAbout-userAbout =-    UserAbout'-    { _uaValue = Nothing-    , _uaContentType = Nothing-    }---- | Actual value of notes.-uaValue :: Lens' UserAbout (Maybe Text)-uaValue = lens _uaValue (\ s a -> s{_uaValue = a})---- | About entry can have a type which indicates the content type. It can--- either be plain or html. By default, notes contents are assumed to--- contain plain text.-uaContentType :: Lens' UserAbout (Maybe Text)-uaContentType-  = lens _uaContentType-      (\ s a -> s{_uaContentType = a})--instance FromJSON UserAbout where-        parseJSON-          = withObject "UserAbout"-              (\ o ->-                 UserAbout' <$>-                   (o .:? "value") <*> (o .:? "contentType"))--instance ToJSON UserAbout where-        toJSON UserAbout'{..}-          = object-              (catMaybes-                 [("value" .=) <$> _uaValue,-                  ("contentType" .=) <$> _uaContentType])---- | JSON response template for List privileges operation in Directory API.------ /See:/ 'privileges' smart constructor.-data Privileges = Privileges'-    { _pEtag  :: !(Maybe Text)-    , _pKind  :: !Text-    , _pItems :: !(Maybe [Privilege])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Privileges' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pEtag'------ * 'pKind'------ * 'pItems'-privileges-    :: Privileges-privileges =-    Privileges'-    { _pEtag = Nothing-    , _pKind = "admin#directory#privileges"-    , _pItems = Nothing-    }---- | ETag of the resource.-pEtag :: Lens' Privileges (Maybe Text)-pEtag = lens _pEtag (\ s a -> s{_pEtag = a})---- | The type of the API resource. This is always admin#directory#privileges.-pKind :: Lens' Privileges Text-pKind = lens _pKind (\ s a -> s{_pKind = a})---- | A list of Privilege resources.-pItems :: Lens' Privileges [Privilege]-pItems-  = lens _pItems (\ s a -> s{_pItems = a}) . _Default .-      _Coerce--instance FromJSON Privileges where-        parseJSON-          = withObject "Privileges"-              (\ o ->-                 Privileges' <$>-                   (o .:? "etag") <*>-                     (o .:? "kind" .!= "admin#directory#privileges")-                     <*> (o .:? "items" .!= mempty))--instance ToJSON Privileges where-        toJSON Privileges'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _pEtag, Just ("kind" .= _pKind),-                  ("items" .=) <$> _pItems])---- | JSON response template for List Groups operation in Directory API.------ /See:/ 'groups' smart constructor.-data Groups = Groups'-    { _gGroups        :: !(Maybe [Group])-    , _gEtag          :: !(Maybe Text)-    , _gNextPageToken :: !(Maybe Text)-    , _gKind          :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Groups' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gGroups'------ * 'gEtag'------ * 'gNextPageToken'------ * 'gKind'-groups-    :: Groups-groups =-    Groups'-    { _gGroups = Nothing-    , _gEtag = Nothing-    , _gNextPageToken = Nothing-    , _gKind = "admin#directory#groups"-    }---- | List of group objects.-gGroups :: Lens' Groups [Group]-gGroups-  = lens _gGroups (\ s a -> s{_gGroups = a}) . _Default-      . _Coerce---- | ETag of the resource.-gEtag :: Lens' Groups (Maybe Text)-gEtag = lens _gEtag (\ s a -> s{_gEtag = a})---- | Token used to access next page of this result.-gNextPageToken :: Lens' Groups (Maybe Text)-gNextPageToken-  = lens _gNextPageToken-      (\ s a -> s{_gNextPageToken = a})---- | Kind of resource this is.-gKind :: Lens' Groups Text-gKind = lens _gKind (\ s a -> s{_gKind = a})--instance FromJSON Groups where-        parseJSON-          = withObject "Groups"-              (\ o ->-                 Groups' <$>-                   (o .:? "groups" .!= mempty) <*> (o .:? "etag") <*>-                     (o .:? "nextPageToken")-                     <*> (o .:? "kind" .!= "admin#directory#groups"))--instance ToJSON Groups where-        toJSON Groups'{..}-          = object-              (catMaybes-                 [("groups" .=) <$> _gGroups, ("etag" .=) <$> _gEtag,-                  ("nextPageToken" .=) <$> _gNextPageToken,-                  Just ("kind" .= _gKind)])---- | JSON response template for List roleAssignments operation in Directory--- API.------ /See:/ 'roleAssignments' smart constructor.-data RoleAssignments = RoleAssignments'-    { _raEtag          :: !(Maybe Text)-    , _raNextPageToken :: !(Maybe Text)-    , _raKind          :: !Text-    , _raItems         :: !(Maybe [RoleAssignment])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'RoleAssignments' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'raEtag'------ * 'raNextPageToken'------ * 'raKind'------ * 'raItems'-roleAssignments-    :: RoleAssignments-roleAssignments =-    RoleAssignments'-    { _raEtag = Nothing-    , _raNextPageToken = Nothing-    , _raKind = "admin#directory#roleAssignments"-    , _raItems = Nothing-    }---- | ETag of the resource.-raEtag :: Lens' RoleAssignments (Maybe Text)-raEtag = lens _raEtag (\ s a -> s{_raEtag = a})--raNextPageToken :: Lens' RoleAssignments (Maybe Text)-raNextPageToken-  = lens _raNextPageToken-      (\ s a -> s{_raNextPageToken = a})---- | The type of the API resource. This is always--- admin#directory#roleAssignments.-raKind :: Lens' RoleAssignments Text-raKind = lens _raKind (\ s a -> s{_raKind = a})---- | A list of RoleAssignment resources.-raItems :: Lens' RoleAssignments [RoleAssignment]-raItems-  = lens _raItems (\ s a -> s{_raItems = a}) . _Default-      . _Coerce--instance FromJSON RoleAssignments where-        parseJSON-          = withObject "RoleAssignments"-              (\ o ->-                 RoleAssignments' <$>-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>-                     (o .:? "kind" .!= "admin#directory#roleAssignments")-                     <*> (o .:? "items" .!= mempty))--instance ToJSON RoleAssignments where-        toJSON RoleAssignments'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _raEtag,-                  ("nextPageToken" .=) <$> _raNextPageToken,-                  Just ("kind" .= _raKind), ("items" .=) <$> _raItems])---- | JSON template for privilege resource in Directory API.------ /See:/ 'privilege' smart constructor.-data Privilege = Privilege'-    { _priEtag            :: !(Maybe Text)-    , _priIsOuScopable    :: !(Maybe Bool)-    , _priKind            :: !Text-    , _priServiceName     :: !(Maybe Text)-    , _priServiceId       :: !(Maybe Text)-    , _priPrivilegeName   :: !(Maybe Text)-    , _priChildPrivileges :: !(Maybe [Privilege])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Privilege' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'priEtag'------ * 'priIsOuScopable'------ * 'priKind'------ * 'priServiceName'------ * 'priServiceId'------ * 'priPrivilegeName'------ * 'priChildPrivileges'-privilege-    :: Privilege-privilege =-    Privilege'-    { _priEtag = Nothing-    , _priIsOuScopable = Nothing-    , _priKind = "admin#directory#privilege"-    , _priServiceName = Nothing-    , _priServiceId = Nothing-    , _priPrivilegeName = Nothing-    , _priChildPrivileges = Nothing-    }---- | ETag of the resource.-priEtag :: Lens' Privilege (Maybe Text)-priEtag = lens _priEtag (\ s a -> s{_priEtag = a})---- | If the privilege can be restricted to an organization unit.-priIsOuScopable :: Lens' Privilege (Maybe Bool)-priIsOuScopable-  = lens _priIsOuScopable-      (\ s a -> s{_priIsOuScopable = a})---- | The type of the API resource. This is always admin#directory#privilege.-priKind :: Lens' Privilege Text-priKind = lens _priKind (\ s a -> s{_priKind = a})---- | The name of the service this privilege is for.-priServiceName :: Lens' Privilege (Maybe Text)-priServiceName-  = lens _priServiceName-      (\ s a -> s{_priServiceName = a})---- | The obfuscated ID of the service this privilege is for.-priServiceId :: Lens' Privilege (Maybe Text)-priServiceId-  = lens _priServiceId (\ s a -> s{_priServiceId = a})---- | The name of the privilege.-priPrivilegeName :: Lens' Privilege (Maybe Text)-priPrivilegeName-  = lens _priPrivilegeName-      (\ s a -> s{_priPrivilegeName = a})---- | A list of child privileges. Privileges for a service form a tree. Each--- privilege can have a list of child privileges; this list is empty for a--- leaf privilege.-priChildPrivileges :: Lens' Privilege [Privilege]-priChildPrivileges-  = lens _priChildPrivileges-      (\ s a -> s{_priChildPrivileges = a})-      . _Default-      . _Coerce--instance FromJSON Privilege where-        parseJSON-          = withObject "Privilege"-              (\ o ->-                 Privilege' <$>-                   (o .:? "etag") <*> (o .:? "isOuScopable") <*>-                     (o .:? "kind" .!= "admin#directory#privilege")-                     <*> (o .:? "serviceName")-                     <*> (o .:? "serviceId")-                     <*> (o .:? "privilegeName")-                     <*> (o .:? "childPrivileges" .!= mempty))--instance ToJSON Privilege where-        toJSON Privilege'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _priEtag,-                  ("isOuScopable" .=) <$> _priIsOuScopable,-                  Just ("kind" .= _priKind),-                  ("serviceName" .=) <$> _priServiceName,-                  ("serviceId" .=) <$> _priServiceId,-                  ("privilegeName" .=) <$> _priPrivilegeName,-                  ("childPrivileges" .=) <$> _priChildPrivileges])---- | JSON response template for List roles operation in Directory API.------ /See:/ 'roles' smart constructor.-data Roles = Roles'-    { _rEtag          :: !(Maybe Text)-    , _rNextPageToken :: !(Maybe Text)-    , _rKind          :: !Text-    , _rItems         :: !(Maybe [Role])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Roles' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rEtag'------ * 'rNextPageToken'------ * 'rKind'------ * 'rItems'-roles-    :: Roles-roles =-    Roles'-    { _rEtag = Nothing-    , _rNextPageToken = Nothing-    , _rKind = "admin#directory#roles"-    , _rItems = Nothing-    }---- | ETag of the resource.-rEtag :: Lens' Roles (Maybe Text)-rEtag = lens _rEtag (\ s a -> s{_rEtag = a})--rNextPageToken :: Lens' Roles (Maybe Text)-rNextPageToken-  = lens _rNextPageToken-      (\ s a -> s{_rNextPageToken = a})---- | The type of the API resource. This is always admin#directory#roles.-rKind :: Lens' Roles Text-rKind = lens _rKind (\ s a -> s{_rKind = a})---- | A list of Role resources.-rItems :: Lens' Roles [Role]-rItems-  = lens _rItems (\ s a -> s{_rItems = a}) . _Default .-      _Coerce--instance FromJSON Roles where-        parseJSON-          = withObject "Roles"-              (\ o ->-                 Roles' <$>-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>-                     (o .:? "kind" .!= "admin#directory#roles")-                     <*> (o .:? "items" .!= mempty))--instance ToJSON Roles where-        toJSON Roles'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _rEtag,-                  ("nextPageToken" .=) <$> _rNextPageToken,-                  Just ("kind" .= _rKind), ("items" .=) <$> _rItems])------- /See:/ 'chromeOSDeviceDiskVolumeReportsItem' smart constructor.-newtype ChromeOSDeviceDiskVolumeReportsItem = ChromeOSDeviceDiskVolumeReportsItem'-    { _coddvriVolumeInfo :: Maybe [ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem]-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ChromeOSDeviceDiskVolumeReportsItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'coddvriVolumeInfo'-chromeOSDeviceDiskVolumeReportsItem-    :: ChromeOSDeviceDiskVolumeReportsItem-chromeOSDeviceDiskVolumeReportsItem =-    ChromeOSDeviceDiskVolumeReportsItem'-    { _coddvriVolumeInfo = Nothing-    }---- | Disk volumes-coddvriVolumeInfo :: Lens' ChromeOSDeviceDiskVolumeReportsItem [ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem]-coddvriVolumeInfo-  = lens _coddvriVolumeInfo-      (\ s a -> s{_coddvriVolumeInfo = a})-      . _Default-      . _Coerce--instance FromJSON ChromeOSDeviceDiskVolumeReportsItem-         where-        parseJSON-          = withObject "ChromeOSDeviceDiskVolumeReportsItem"-              (\ o ->-                 ChromeOSDeviceDiskVolumeReportsItem' <$>-                   (o .:? "volumeInfo" .!= mempty))--instance ToJSON ChromeOSDeviceDiskVolumeReportsItem-         where-        toJSON ChromeOSDeviceDiskVolumeReportsItem'{..}-          = object-              (catMaybes-                 [("volumeInfo" .=) <$> _coddvriVolumeInfo])---- | JSON template for address.------ /See:/ 'userAddress' smart constructor.-data UserAddress = UserAddress'-    { _uaStreetAddress      :: !(Maybe Text)-    , _uaPoBox              :: !(Maybe Text)-    , _uaCountry            :: !(Maybe Text)-    , _uaPostalCode         :: !(Maybe Text)-    , _uaFormatted          :: !(Maybe Text)-    , _uaExtendedAddress    :: !(Maybe Text)-    , _uaLocality           :: !(Maybe Text)-    , _uaPrimary            :: !(Maybe Bool)-    , _uaCountryCode        :: !(Maybe Text)-    , _uaRegion             :: !(Maybe Text)-    , _uaType               :: !(Maybe Text)-    , _uaCustomType         :: !(Maybe Text)-    , _uaSourceIsStructured :: !(Maybe Bool)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserAddress' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uaStreetAddress'------ * 'uaPoBox'------ * 'uaCountry'------ * 'uaPostalCode'------ * 'uaFormatted'------ * 'uaExtendedAddress'------ * 'uaLocality'------ * 'uaPrimary'------ * 'uaCountryCode'------ * 'uaRegion'------ * 'uaType'------ * 'uaCustomType'------ * 'uaSourceIsStructured'-userAddress-    :: UserAddress-userAddress =-    UserAddress'-    { _uaStreetAddress = Nothing-    , _uaPoBox = Nothing-    , _uaCountry = Nothing-    , _uaPostalCode = Nothing-    , _uaFormatted = Nothing-    , _uaExtendedAddress = Nothing-    , _uaLocality = Nothing-    , _uaPrimary = Nothing-    , _uaCountryCode = Nothing-    , _uaRegion = Nothing-    , _uaType = Nothing-    , _uaCustomType = Nothing-    , _uaSourceIsStructured = Nothing-    }---- | Street.-uaStreetAddress :: Lens' UserAddress (Maybe Text)-uaStreetAddress-  = lens _uaStreetAddress-      (\ s a -> s{_uaStreetAddress = a})---- | Other parts of address.-uaPoBox :: Lens' UserAddress (Maybe Text)-uaPoBox = lens _uaPoBox (\ s a -> s{_uaPoBox = a})---- | Country.-uaCountry :: Lens' UserAddress (Maybe Text)-uaCountry-  = lens _uaCountry (\ s a -> s{_uaCountry = a})---- | Postal code.-uaPostalCode :: Lens' UserAddress (Maybe Text)-uaPostalCode-  = lens _uaPostalCode (\ s a -> s{_uaPostalCode = a})---- | Formatted address.-uaFormatted :: Lens' UserAddress (Maybe Text)-uaFormatted-  = lens _uaFormatted (\ s a -> s{_uaFormatted = a})---- | Extended Address.-uaExtendedAddress :: Lens' UserAddress (Maybe Text)-uaExtendedAddress-  = lens _uaExtendedAddress-      (\ s a -> s{_uaExtendedAddress = a})---- | Locality.-uaLocality :: Lens' UserAddress (Maybe Text)-uaLocality-  = lens _uaLocality (\ s a -> s{_uaLocality = a})---- | If this is user\'s primary address. Only one entry could be marked as--- primary.-uaPrimary :: Lens' UserAddress (Maybe Bool)-uaPrimary-  = lens _uaPrimary (\ s a -> s{_uaPrimary = a})---- | Country code.-uaCountryCode :: Lens' UserAddress (Maybe Text)-uaCountryCode-  = lens _uaCountryCode-      (\ s a -> s{_uaCountryCode = a})---- | Region.-uaRegion :: Lens' UserAddress (Maybe Text)-uaRegion = lens _uaRegion (\ s a -> s{_uaRegion = a})---- | Each entry can have a type which indicates standard values of that--- entry. For example address could be of home, work etc. In addition to--- the standard type, an entry can have a custom type and can take any--- value. Such type should have the CUSTOM value as type and also have a--- customType value.-uaType :: Lens' UserAddress (Maybe Text)-uaType = lens _uaType (\ s a -> s{_uaType = a})---- | Custom type.-uaCustomType :: Lens' UserAddress (Maybe Text)-uaCustomType-  = lens _uaCustomType (\ s a -> s{_uaCustomType = a})---- | User supplied address was structured. Structured addresses are NOT--- supported at this time. You might be able to write structured addresses,--- but any values will eventually be clobbered.-uaSourceIsStructured :: Lens' UserAddress (Maybe Bool)-uaSourceIsStructured-  = lens _uaSourceIsStructured-      (\ s a -> s{_uaSourceIsStructured = a})--instance FromJSON UserAddress where-        parseJSON-          = withObject "UserAddress"-              (\ o ->-                 UserAddress' <$>-                   (o .:? "streetAddress") <*> (o .:? "poBox") <*>-                     (o .:? "country")-                     <*> (o .:? "postalCode")-                     <*> (o .:? "formatted")-                     <*> (o .:? "extendedAddress")-                     <*> (o .:? "locality")-                     <*> (o .:? "primary")-                     <*> (o .:? "countryCode")-                     <*> (o .:? "region")-                     <*> (o .:? "type")-                     <*> (o .:? "customType")-                     <*> (o .:? "sourceIsStructured"))--instance ToJSON UserAddress where-        toJSON UserAddress'{..}-          = object-              (catMaybes-                 [("streetAddress" .=) <$> _uaStreetAddress,-                  ("poBox" .=) <$> _uaPoBox,-                  ("country" .=) <$> _uaCountry,-                  ("postalCode" .=) <$> _uaPostalCode,-                  ("formatted" .=) <$> _uaFormatted,-                  ("extendedAddress" .=) <$> _uaExtendedAddress,-                  ("locality" .=) <$> _uaLocality,-                  ("primary" .=) <$> _uaPrimary,-                  ("countryCode" .=) <$> _uaCountryCode,-                  ("region" .=) <$> _uaRegion, ("type" .=) <$> _uaType,-                  ("customType" .=) <$> _uaCustomType,-                  ("sourceIsStructured" .=) <$> _uaSourceIsStructured])---- | JSON template for postal address of a customer.------ /See:/ 'customerPostalAddress' smart constructor.-data CustomerPostalAddress = CustomerPostalAddress'-    { _cpaOrganizationName :: !(Maybe Text)-    , _cpaPostalCode       :: !(Maybe Text)-    , _cpaAddressLine1     :: !(Maybe Text)-    , _cpaLocality         :: !(Maybe Text)-    , _cpaContactName      :: !(Maybe Text)-    , _cpaAddressLine2     :: !(Maybe Text)-    , _cpaCountryCode      :: !(Maybe Text)-    , _cpaRegion           :: !(Maybe Text)-    , _cpaAddressLine3     :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'CustomerPostalAddress' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cpaOrganizationName'------ * 'cpaPostalCode'------ * 'cpaAddressLine1'------ * 'cpaLocality'------ * 'cpaContactName'------ * 'cpaAddressLine2'------ * 'cpaCountryCode'------ * 'cpaRegion'------ * 'cpaAddressLine3'-customerPostalAddress-    :: CustomerPostalAddress-customerPostalAddress =-    CustomerPostalAddress'-    { _cpaOrganizationName = Nothing-    , _cpaPostalCode = Nothing-    , _cpaAddressLine1 = Nothing-    , _cpaLocality = Nothing-    , _cpaContactName = Nothing-    , _cpaAddressLine2 = Nothing-    , _cpaCountryCode = Nothing-    , _cpaRegion = Nothing-    , _cpaAddressLine3 = Nothing-    }---- | The company or company division name.-cpaOrganizationName :: Lens' CustomerPostalAddress (Maybe Text)-cpaOrganizationName-  = lens _cpaOrganizationName-      (\ s a -> s{_cpaOrganizationName = a})---- | The postal code. A postalCode example is a postal zip code such as--- 10009. This is in accordance with ---- http:\/\/portablecontacts.net\/draft-spec.html#address_element.-cpaPostalCode :: Lens' CustomerPostalAddress (Maybe Text)-cpaPostalCode-  = lens _cpaPostalCode-      (\ s a -> s{_cpaPostalCode = a})---- | A customer\'s physical address. The address can be composed of one to--- three lines.-cpaAddressLine1 :: Lens' CustomerPostalAddress (Maybe Text)-cpaAddressLine1-  = lens _cpaAddressLine1-      (\ s a -> s{_cpaAddressLine1 = a})---- | Name of the locality. An example of a locality value is the city of San--- Francisco.-cpaLocality :: Lens' CustomerPostalAddress (Maybe Text)-cpaLocality-  = lens _cpaLocality (\ s a -> s{_cpaLocality = a})---- | The customer contact\'s name.-cpaContactName :: Lens' CustomerPostalAddress (Maybe Text)-cpaContactName-  = lens _cpaContactName-      (\ s a -> s{_cpaContactName = a})---- | Address line 2 of the address.-cpaAddressLine2 :: Lens' CustomerPostalAddress (Maybe Text)-cpaAddressLine2-  = lens _cpaAddressLine2-      (\ s a -> s{_cpaAddressLine2 = a})---- | This is a required property. For countryCode information see the ISO--- 3166 country code elements.-cpaCountryCode :: Lens' CustomerPostalAddress (Maybe Text)-cpaCountryCode-  = lens _cpaCountryCode-      (\ s a -> s{_cpaCountryCode = a})---- | Name of the region. An example of a region value is NY for the state of--- New York.-cpaRegion :: Lens' CustomerPostalAddress (Maybe Text)-cpaRegion-  = lens _cpaRegion (\ s a -> s{_cpaRegion = a})---- | Address line 3 of the address.-cpaAddressLine3 :: Lens' CustomerPostalAddress (Maybe Text)-cpaAddressLine3-  = lens _cpaAddressLine3-      (\ s a -> s{_cpaAddressLine3 = a})--instance FromJSON CustomerPostalAddress where-        parseJSON-          = withObject "CustomerPostalAddress"-              (\ o ->-                 CustomerPostalAddress' <$>-                   (o .:? "organizationName") <*> (o .:? "postalCode")-                     <*> (o .:? "addressLine1")-                     <*> (o .:? "locality")-                     <*> (o .:? "contactName")-                     <*> (o .:? "addressLine2")-                     <*> (o .:? "countryCode")-                     <*> (o .:? "region")-                     <*> (o .:? "addressLine3"))--instance ToJSON CustomerPostalAddress where-        toJSON CustomerPostalAddress'{..}-          = object-              (catMaybes-                 [("organizationName" .=) <$> _cpaOrganizationName,-                  ("postalCode" .=) <$> _cpaPostalCode,-                  ("addressLine1" .=) <$> _cpaAddressLine1,-                  ("locality" .=) <$> _cpaLocality,-                  ("contactName" .=) <$> _cpaContactName,-                  ("addressLine2" .=) <$> _cpaAddressLine2,-                  ("countryCode" .=) <$> _cpaCountryCode,-                  ("region" .=) <$> _cpaRegion,-                  ("addressLine3" .=) <$> _cpaAddressLine3])---- | JSON template for roleAssignment resource in Directory API.------ /See:/ 'roleAssignment' smart constructor.-data RoleAssignment = RoleAssignment'-    { _rolEtag             :: !(Maybe Text)-    , _rolScopeType        :: !(Maybe Text)-    , _rolKind             :: !Text-    , _rolAssignedTo       :: !(Maybe Text)-    , _rolRoleId           :: !(Maybe (Textual Int64))-    , _rolRoleAssignmentId :: !(Maybe (Textual Int64))-    , _rolOrgUnitId        :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'RoleAssignment' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rolEtag'------ * 'rolScopeType'------ * 'rolKind'------ * 'rolAssignedTo'------ * 'rolRoleId'------ * 'rolRoleAssignmentId'------ * 'rolOrgUnitId'-roleAssignment-    :: RoleAssignment-roleAssignment =-    RoleAssignment'-    { _rolEtag = Nothing-    , _rolScopeType = Nothing-    , _rolKind = "admin#directory#roleAssignment"-    , _rolAssignedTo = Nothing-    , _rolRoleId = Nothing-    , _rolRoleAssignmentId = Nothing-    , _rolOrgUnitId = Nothing-    }---- | ETag of the resource.-rolEtag :: Lens' RoleAssignment (Maybe Text)-rolEtag = lens _rolEtag (\ s a -> s{_rolEtag = a})---- | The scope in which this role is assigned. Possible values are: ---- CUSTOMER - ORG_UNIT-rolScopeType :: Lens' RoleAssignment (Maybe Text)-rolScopeType-  = lens _rolScopeType (\ s a -> s{_rolScopeType = a})---- | The type of the API resource. This is always--- admin#directory#roleAssignment.-rolKind :: Lens' RoleAssignment Text-rolKind = lens _rolKind (\ s a -> s{_rolKind = a})---- | The unique ID of the user this role is assigned to.-rolAssignedTo :: Lens' RoleAssignment (Maybe Text)-rolAssignedTo-  = lens _rolAssignedTo-      (\ s a -> s{_rolAssignedTo = a})---- | The ID of the role that is assigned.-rolRoleId :: Lens' RoleAssignment (Maybe Int64)-rolRoleId-  = lens _rolRoleId (\ s a -> s{_rolRoleId = a}) .-      mapping _Coerce---- | ID of this roleAssignment.-rolRoleAssignmentId :: Lens' RoleAssignment (Maybe Int64)-rolRoleAssignmentId-  = lens _rolRoleAssignmentId-      (\ s a -> s{_rolRoleAssignmentId = a})-      . mapping _Coerce---- | If the role is restricted to an organization unit, this contains the ID--- for the organization unit the exercise of this role is restricted to.-rolOrgUnitId :: Lens' RoleAssignment (Maybe Text)-rolOrgUnitId-  = lens _rolOrgUnitId (\ s a -> s{_rolOrgUnitId = a})--instance FromJSON RoleAssignment where-        parseJSON-          = withObject "RoleAssignment"-              (\ o ->-                 RoleAssignment' <$>-                   (o .:? "etag") <*> (o .:? "scopeType") <*>-                     (o .:? "kind" .!= "admin#directory#roleAssignment")-                     <*> (o .:? "assignedTo")-                     <*> (o .:? "roleId")-                     <*> (o .:? "roleAssignmentId")-                     <*> (o .:? "orgUnitId"))--instance ToJSON RoleAssignment where-        toJSON RoleAssignment'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _rolEtag,-                  ("scopeType" .=) <$> _rolScopeType,-                  Just ("kind" .= _rolKind),-                  ("assignedTo" .=) <$> _rolAssignedTo,-                  ("roleId" .=) <$> _rolRoleId,-                  ("roleAssignmentId" .=) <$> _rolRoleAssignmentId,-                  ("orgUnitId" .=) <$> _rolOrgUnitId])---- | JSON template for Group resource in Directory API.------ /See:/ 'group'' smart constructor.-data Group = Group'-    { _groEmail              :: !(Maybe Text)-    , _groEtag               :: !(Maybe Text)-    , _groDirectMembersCount :: !(Maybe (Textual Int64))-    , _groKind               :: !Text-    , _groAliases            :: !(Maybe [Text])-    , _groNonEditableAliases :: !(Maybe [Text])-    , _groName               :: !(Maybe Text)-    , _groAdminCreated       :: !(Maybe Bool)-    , _groId                 :: !(Maybe Text)-    , _groDescription        :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Group' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'groEmail'------ * 'groEtag'------ * 'groDirectMembersCount'------ * 'groKind'------ * 'groAliases'------ * 'groNonEditableAliases'------ * 'groName'------ * 'groAdminCreated'------ * 'groId'------ * 'groDescription'-group'-    :: Group-group' =-    Group'-    { _groEmail = Nothing-    , _groEtag = Nothing-    , _groDirectMembersCount = Nothing-    , _groKind = "admin#directory#group"-    , _groAliases = Nothing-    , _groNonEditableAliases = Nothing-    , _groName = Nothing-    , _groAdminCreated = Nothing-    , _groId = Nothing-    , _groDescription = Nothing-    }---- | Email of Group-groEmail :: Lens' Group (Maybe Text)-groEmail = lens _groEmail (\ s a -> s{_groEmail = a})---- | ETag of the resource.-groEtag :: Lens' Group (Maybe Text)-groEtag = lens _groEtag (\ s a -> s{_groEtag = a})---- | Group direct members count-groDirectMembersCount :: Lens' Group (Maybe Int64)-groDirectMembersCount-  = lens _groDirectMembersCount-      (\ s a -> s{_groDirectMembersCount = a})-      . mapping _Coerce---- | Kind of resource this is.-groKind :: Lens' Group Text-groKind = lens _groKind (\ s a -> s{_groKind = a})---- | List of aliases (Read-only)-groAliases :: Lens' Group [Text]-groAliases-  = lens _groAliases (\ s a -> s{_groAliases = a}) .-      _Default-      . _Coerce---- | List of non editable aliases (Read-only)-groNonEditableAliases :: Lens' Group [Text]-groNonEditableAliases-  = lens _groNonEditableAliases-      (\ s a -> s{_groNonEditableAliases = a})-      . _Default-      . _Coerce---- | Group name-groName :: Lens' Group (Maybe Text)-groName = lens _groName (\ s a -> s{_groName = a})---- | Is the group created by admin (Read-only) *-groAdminCreated :: Lens' Group (Maybe Bool)-groAdminCreated-  = lens _groAdminCreated-      (\ s a -> s{_groAdminCreated = a})---- | Unique identifier of Group (Read-only)-groId :: Lens' Group (Maybe Text)-groId = lens _groId (\ s a -> s{_groId = a})---- | Description of the group-groDescription :: Lens' Group (Maybe Text)-groDescription-  = lens _groDescription-      (\ s a -> s{_groDescription = a})--instance FromJSON Group where-        parseJSON-          = withObject "Group"-              (\ o ->-                 Group' <$>-                   (o .:? "email") <*> (o .:? "etag") <*>-                     (o .:? "directMembersCount")-                     <*> (o .:? "kind" .!= "admin#directory#group")-                     <*> (o .:? "aliases" .!= mempty)-                     <*> (o .:? "nonEditableAliases" .!= mempty)-                     <*> (o .:? "name")-                     <*> (o .:? "adminCreated")-                     <*> (o .:? "id")-                     <*> (o .:? "description"))--instance ToJSON Group where-        toJSON Group'{..}-          = object-              (catMaybes-                 [("email" .=) <$> _groEmail,-                  ("etag" .=) <$> _groEtag,-                  ("directMembersCount" .=) <$> _groDirectMembersCount,-                  Just ("kind" .= _groKind),-                  ("aliases" .=) <$> _groAliases,-                  ("nonEditableAliases" .=) <$> _groNonEditableAliases,-                  ("name" .=) <$> _groName,-                  ("adminCreated" .=) <$> _groAdminCreated,-                  ("id" .=) <$> _groId,-                  ("description" .=) <$> _groDescription])---- | JSON template for Chrome Os Device resource in Directory API.------ /See:/ 'chromeOSDevice' smart constructor.-data ChromeOSDevice = ChromeOSDevice'-    { _codStatus               :: !(Maybe Text)-    , _codEtag                 :: !(Maybe Text)-    , _codCPUStatusReports     :: !(Maybe [ChromeOSDeviceCPUStatusReportsItem])-    , _codAnnotatedUser        :: !(Maybe Text)-    , _codSystemRamFreeReports :: !(Maybe [ChromeOSDeviceSystemRamFreeReportsItem])-    , _codPlatformVersion      :: !(Maybe Text)-    , _codLastSync             :: !(Maybe DateTime')-    , _codActiveTimeRanges     :: !(Maybe [ChromeOSDeviceActiveTimeRangesItem])-    , _codKind                 :: !Text-    , _codEthernetMACAddress   :: !(Maybe Text)-    , _codLastEnrollmentTime   :: !(Maybe DateTime')-    , _codAnnotatedLocation    :: !(Maybe Text)-    , _codMACAddress           :: !(Maybe Text)-    , _codOrgUnitPath          :: !(Maybe Text)-    , _codRecentUsers          :: !(Maybe [ChromeOSDeviceRecentUsersItem])-    , _codSupportEndDate       :: !(Maybe DateTime')-    , _codModel                :: !(Maybe Text)-    , _codWillAutoRenew        :: !(Maybe Bool)-    , _codMeid                 :: !(Maybe Text)-    , _codDeviceFiles          :: !(Maybe [ChromeOSDeviceDeviceFilesItem])-    , _codDeviceId             :: !(Maybe Text)-    , _codBootMode             :: !(Maybe Text)-    , _codTpmVersionInfo       :: !(Maybe ChromeOSDeviceTpmVersionInfo)-    , _codOrderNumber          :: !(Maybe Text)-    , _codDiskVolumeReports    :: !(Maybe [ChromeOSDeviceDiskVolumeReportsItem])-    , _codAnnotatedAssetId     :: !(Maybe Text)-    , _codNotes                :: !(Maybe Text)-    , _codSerialNumber         :: !(Maybe Text)-    , _codFirmwareVersion      :: !(Maybe Text)-    , _codOSVersion            :: !(Maybe Text)-    , _codSystemRamTotal       :: !(Maybe (Textual Int64))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ChromeOSDevice' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'codStatus'------ * 'codEtag'------ * 'codCPUStatusReports'------ * 'codAnnotatedUser'------ * 'codSystemRamFreeReports'------ * 'codPlatformVersion'------ * 'codLastSync'------ * 'codActiveTimeRanges'------ * 'codKind'------ * 'codEthernetMACAddress'------ * 'codLastEnrollmentTime'------ * 'codAnnotatedLocation'------ * 'codMACAddress'------ * 'codOrgUnitPath'------ * 'codRecentUsers'------ * 'codSupportEndDate'------ * 'codModel'------ * 'codWillAutoRenew'------ * 'codMeid'------ * 'codDeviceFiles'------ * 'codDeviceId'------ * 'codBootMode'------ * 'codTpmVersionInfo'------ * 'codOrderNumber'------ * 'codDiskVolumeReports'------ * 'codAnnotatedAssetId'------ * 'codNotes'------ * 'codSerialNumber'------ * 'codFirmwareVersion'------ * 'codOSVersion'------ * 'codSystemRamTotal'-chromeOSDevice-    :: ChromeOSDevice-chromeOSDevice =-    ChromeOSDevice'-    { _codStatus = Nothing-    , _codEtag = Nothing-    , _codCPUStatusReports = Nothing-    , _codAnnotatedUser = Nothing-    , _codSystemRamFreeReports = Nothing-    , _codPlatformVersion = Nothing-    , _codLastSync = Nothing-    , _codActiveTimeRanges = Nothing-    , _codKind = "admin#directory#chromeosdevice"-    , _codEthernetMACAddress = Nothing-    , _codLastEnrollmentTime = Nothing-    , _codAnnotatedLocation = Nothing-    , _codMACAddress = Nothing-    , _codOrgUnitPath = Nothing-    , _codRecentUsers = Nothing-    , _codSupportEndDate = Nothing-    , _codModel = Nothing-    , _codWillAutoRenew = Nothing-    , _codMeid = Nothing-    , _codDeviceFiles = Nothing-    , _codDeviceId = Nothing-    , _codBootMode = Nothing-    , _codTpmVersionInfo = Nothing-    , _codOrderNumber = Nothing-    , _codDiskVolumeReports = Nothing-    , _codAnnotatedAssetId = Nothing-    , _codNotes = Nothing-    , _codSerialNumber = Nothing-    , _codFirmwareVersion = Nothing-    , _codOSVersion = Nothing-    , _codSystemRamTotal = Nothing-    }---- | status of the device (Read-only)-codStatus :: Lens' ChromeOSDevice (Maybe Text)-codStatus-  = lens _codStatus (\ s a -> s{_codStatus = a})---- | ETag of the resource.-codEtag :: Lens' ChromeOSDevice (Maybe Text)-codEtag = lens _codEtag (\ s a -> s{_codEtag = a})---- | Reports of CPU utilization and temperature (Read-only)-codCPUStatusReports :: Lens' ChromeOSDevice [ChromeOSDeviceCPUStatusReportsItem]-codCPUStatusReports-  = lens _codCPUStatusReports-      (\ s a -> s{_codCPUStatusReports = a})-      . _Default-      . _Coerce---- | User of the device-codAnnotatedUser :: Lens' ChromeOSDevice (Maybe Text)-codAnnotatedUser-  = lens _codAnnotatedUser-      (\ s a -> s{_codAnnotatedUser = a})---- | Reports of amounts of available RAM memory (Read-only)-codSystemRamFreeReports :: Lens' ChromeOSDevice [ChromeOSDeviceSystemRamFreeReportsItem]-codSystemRamFreeReports-  = lens _codSystemRamFreeReports-      (\ s a -> s{_codSystemRamFreeReports = a})-      . _Default-      . _Coerce---- | Chromebook platform version (Read-only)-codPlatformVersion :: Lens' ChromeOSDevice (Maybe Text)-codPlatformVersion-  = lens _codPlatformVersion-      (\ s a -> s{_codPlatformVersion = a})---- | Date and time the device was last synchronized with the policy settings--- in the G Suite administrator control panel (Read-only)-codLastSync :: Lens' ChromeOSDevice (Maybe UTCTime)-codLastSync-  = lens _codLastSync (\ s a -> s{_codLastSync = a}) .-      mapping _DateTime---- | List of active time ranges (Read-only)-codActiveTimeRanges :: Lens' ChromeOSDevice [ChromeOSDeviceActiveTimeRangesItem]-codActiveTimeRanges-  = lens _codActiveTimeRanges-      (\ s a -> s{_codActiveTimeRanges = a})-      . _Default-      . _Coerce---- | Kind of resource this is.-codKind :: Lens' ChromeOSDevice Text-codKind = lens _codKind (\ s a -> s{_codKind = a})---- | Chromebook Mac Address on ethernet network interface (Read-only)-codEthernetMACAddress :: Lens' ChromeOSDevice (Maybe Text)-codEthernetMACAddress-  = lens _codEthernetMACAddress-      (\ s a -> s{_codEthernetMACAddress = a})---- | Date and time the device was last enrolled (Read-only)-codLastEnrollmentTime :: Lens' ChromeOSDevice (Maybe UTCTime)-codLastEnrollmentTime-  = lens _codLastEnrollmentTime-      (\ s a -> s{_codLastEnrollmentTime = a})-      . mapping _DateTime---- | Address or location of the device as noted by the administrator-codAnnotatedLocation :: Lens' ChromeOSDevice (Maybe Text)-codAnnotatedLocation-  = lens _codAnnotatedLocation-      (\ s a -> s{_codAnnotatedLocation = a})---- | Chromebook Mac Address on wifi network interface (Read-only)-codMACAddress :: Lens' ChromeOSDevice (Maybe Text)-codMACAddress-  = lens _codMACAddress-      (\ s a -> s{_codMACAddress = a})---- | OrgUnit of the device-codOrgUnitPath :: Lens' ChromeOSDevice (Maybe Text)-codOrgUnitPath-  = lens _codOrgUnitPath-      (\ s a -> s{_codOrgUnitPath = a})---- | List of recent device users, in descending order by last login time--- (Read-only)-codRecentUsers :: Lens' ChromeOSDevice [ChromeOSDeviceRecentUsersItem]-codRecentUsers-  = lens _codRecentUsers-      (\ s a -> s{_codRecentUsers = a})-      . _Default-      . _Coerce---- | Final date the device will be supported (Read-only)-codSupportEndDate :: Lens' ChromeOSDevice (Maybe UTCTime)-codSupportEndDate-  = lens _codSupportEndDate-      (\ s a -> s{_codSupportEndDate = a})-      . mapping _DateTime---- | Chromebook Model (Read-only)-codModel :: Lens' ChromeOSDevice (Maybe Text)-codModel = lens _codModel (\ s a -> s{_codModel = a})---- | Will Chromebook auto renew after support end date (Read-only)-codWillAutoRenew :: Lens' ChromeOSDevice (Maybe Bool)-codWillAutoRenew-  = lens _codWillAutoRenew-      (\ s a -> s{_codWillAutoRenew = a})---- | Mobile Equipment identifier for the 3G mobile card in the Chromebook--- (Read-only)-codMeid :: Lens' ChromeOSDevice (Maybe Text)-codMeid = lens _codMeid (\ s a -> s{_codMeid = a})---- | List of device files to download (Read-only)-codDeviceFiles :: Lens' ChromeOSDevice [ChromeOSDeviceDeviceFilesItem]-codDeviceFiles-  = lens _codDeviceFiles-      (\ s a -> s{_codDeviceFiles = a})-      . _Default-      . _Coerce---- | Unique identifier of Chrome OS Device (Read-only)-codDeviceId :: Lens' ChromeOSDevice (Maybe Text)-codDeviceId-  = lens _codDeviceId (\ s a -> s{_codDeviceId = a})---- | Chromebook boot mode (Read-only)-codBootMode :: Lens' ChromeOSDevice (Maybe Text)-codBootMode-  = lens _codBootMode (\ s a -> s{_codBootMode = a})---- | Trusted Platform Module (TPM) (Read-only)-codTpmVersionInfo :: Lens' ChromeOSDevice (Maybe ChromeOSDeviceTpmVersionInfo)-codTpmVersionInfo-  = lens _codTpmVersionInfo-      (\ s a -> s{_codTpmVersionInfo = a})---- | Chromebook order number (Read-only)-codOrderNumber :: Lens' ChromeOSDevice (Maybe Text)-codOrderNumber-  = lens _codOrderNumber-      (\ s a -> s{_codOrderNumber = a})---- | Reports of disk space and other info about mounted\/connected volumes.-codDiskVolumeReports :: Lens' ChromeOSDevice [ChromeOSDeviceDiskVolumeReportsItem]-codDiskVolumeReports-  = lens _codDiskVolumeReports-      (\ s a -> s{_codDiskVolumeReports = a})-      . _Default-      . _Coerce---- | AssetId specified during enrollment or through later annotation-codAnnotatedAssetId :: Lens' ChromeOSDevice (Maybe Text)-codAnnotatedAssetId-  = lens _codAnnotatedAssetId-      (\ s a -> s{_codAnnotatedAssetId = a})---- | Notes added by the administrator-codNotes :: Lens' ChromeOSDevice (Maybe Text)-codNotes = lens _codNotes (\ s a -> s{_codNotes = a})---- | Chromebook serial number (Read-only)-codSerialNumber :: Lens' ChromeOSDevice (Maybe Text)-codSerialNumber-  = lens _codSerialNumber-      (\ s a -> s{_codSerialNumber = a})---- | Chromebook firmware version (Read-only)-codFirmwareVersion :: Lens' ChromeOSDevice (Maybe Text)-codFirmwareVersion-  = lens _codFirmwareVersion-      (\ s a -> s{_codFirmwareVersion = a})---- | Chromebook Os Version (Read-only)-codOSVersion :: Lens' ChromeOSDevice (Maybe Text)-codOSVersion-  = lens _codOSVersion (\ s a -> s{_codOSVersion = a})---- | Total RAM on the device [in bytes] (Read-only)-codSystemRamTotal :: Lens' ChromeOSDevice (Maybe Int64)-codSystemRamTotal-  = lens _codSystemRamTotal-      (\ s a -> s{_codSystemRamTotal = a})-      . mapping _Coerce--instance FromJSON ChromeOSDevice where-        parseJSON-          = withObject "ChromeOSDevice"-              (\ o ->-                 ChromeOSDevice' <$>-                   (o .:? "status") <*> (o .:? "etag") <*>-                     (o .:? "cpuStatusReports" .!= mempty)-                     <*> (o .:? "annotatedUser")-                     <*> (o .:? "systemRamFreeReports" .!= mempty)-                     <*> (o .:? "platformVersion")-                     <*> (o .:? "lastSync")-                     <*> (o .:? "activeTimeRanges" .!= mempty)-                     <*>-                     (o .:? "kind" .!= "admin#directory#chromeosdevice")-                     <*> (o .:? "ethernetMacAddress")-                     <*> (o .:? "lastEnrollmentTime")-                     <*> (o .:? "annotatedLocation")-                     <*> (o .:? "macAddress")-                     <*> (o .:? "orgUnitPath")-                     <*> (o .:? "recentUsers" .!= mempty)-                     <*> (o .:? "supportEndDate")-                     <*> (o .:? "model")-                     <*> (o .:? "willAutoRenew")-                     <*> (o .:? "meid")-                     <*> (o .:? "deviceFiles" .!= mempty)-                     <*> (o .:? "deviceId")-                     <*> (o .:? "bootMode")-                     <*> (o .:? "tpmVersionInfo")-                     <*> (o .:? "orderNumber")-                     <*> (o .:? "diskVolumeReports" .!= mempty)-                     <*> (o .:? "annotatedAssetId")-                     <*> (o .:? "notes")-                     <*> (o .:? "serialNumber")-                     <*> (o .:? "firmwareVersion")-                     <*> (o .:? "osVersion")-                     <*> (o .:? "systemRamTotal"))--instance ToJSON ChromeOSDevice where-        toJSON ChromeOSDevice'{..}-          = object-              (catMaybes-                 [("status" .=) <$> _codStatus,-                  ("etag" .=) <$> _codEtag,-                  ("cpuStatusReports" .=) <$> _codCPUStatusReports,-                  ("annotatedUser" .=) <$> _codAnnotatedUser,-                  ("systemRamFreeReports" .=) <$>-                    _codSystemRamFreeReports,-                  ("platformVersion" .=) <$> _codPlatformVersion,-                  ("lastSync" .=) <$> _codLastSync,-                  ("activeTimeRanges" .=) <$> _codActiveTimeRanges,-                  Just ("kind" .= _codKind),-                  ("ethernetMacAddress" .=) <$> _codEthernetMACAddress,-                  ("lastEnrollmentTime" .=) <$> _codLastEnrollmentTime,-                  ("annotatedLocation" .=) <$> _codAnnotatedLocation,-                  ("macAddress" .=) <$> _codMACAddress,-                  ("orgUnitPath" .=) <$> _codOrgUnitPath,-                  ("recentUsers" .=) <$> _codRecentUsers,-                  ("supportEndDate" .=) <$> _codSupportEndDate,-                  ("model" .=) <$> _codModel,-                  ("willAutoRenew" .=) <$> _codWillAutoRenew,-                  ("meid" .=) <$> _codMeid,-                  ("deviceFiles" .=) <$> _codDeviceFiles,-                  ("deviceId" .=) <$> _codDeviceId,-                  ("bootMode" .=) <$> _codBootMode,-                  ("tpmVersionInfo" .=) <$> _codTpmVersionInfo,-                  ("orderNumber" .=) <$> _codOrderNumber,-                  ("diskVolumeReports" .=) <$> _codDiskVolumeReports,-                  ("annotatedAssetId" .=) <$> _codAnnotatedAssetId,-                  ("notes" .=) <$> _codNotes,-                  ("serialNumber" .=) <$> _codSerialNumber,-                  ("firmwareVersion" .=) <$> _codFirmwareVersion,-                  ("osVersion" .=) <$> _codOSVersion,-                  ("systemRamTotal" .=) <$> _codSystemRamTotal])---- | JSON response template for List Users operation in Apps Directory API.------ /See:/ 'users' smart constructor.-data Users = Users'-    { _uEtag          :: !(Maybe Text)-    , _uNextPageToken :: !(Maybe Text)-    , _uUsers         :: !(Maybe [User])-    , _uKind          :: !Text-    , _uTriggerEvent  :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Users' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uEtag'------ * 'uNextPageToken'------ * 'uUsers'------ * 'uKind'------ * 'uTriggerEvent'-users-    :: Users-users =-    Users'-    { _uEtag = Nothing-    , _uNextPageToken = Nothing-    , _uUsers = Nothing-    , _uKind = "admin#directory#users"-    , _uTriggerEvent = Nothing-    }---- | ETag of the resource.-uEtag :: Lens' Users (Maybe Text)-uEtag = lens _uEtag (\ s a -> s{_uEtag = a})---- | Token used to access next page of this result.-uNextPageToken :: Lens' Users (Maybe Text)-uNextPageToken-  = lens _uNextPageToken-      (\ s a -> s{_uNextPageToken = a})---- | List of user objects.-uUsers :: Lens' Users [User]-uUsers-  = lens _uUsers (\ s a -> s{_uUsers = a}) . _Default .-      _Coerce---- | Kind of resource this is.-uKind :: Lens' Users Text-uKind = lens _uKind (\ s a -> s{_uKind = a})---- | Event that triggered this response (only used in case of Push Response)-uTriggerEvent :: Lens' Users (Maybe Text)-uTriggerEvent-  = lens _uTriggerEvent-      (\ s a -> s{_uTriggerEvent = a})--instance FromJSON Users where-        parseJSON-          = withObject "Users"-              (\ o ->-                 Users' <$>-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>-                     (o .:? "users" .!= mempty)-                     <*> (o .:? "kind" .!= "admin#directory#users")-                     <*> (o .:? "trigger_event"))--instance ToJSON Users where-        toJSON Users'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _uEtag,-                  ("nextPageToken" .=) <$> _uNextPageToken,-                  ("users" .=) <$> _uUsers, Just ("kind" .= _uKind),-                  ("trigger_event" .=) <$> _uTriggerEvent])---- | The template that returns individual ASP (Access Code) data.------ /See:/ 'asp' smart constructor.-data Asp = Asp'-    { _aCreationTime :: !(Maybe (Textual Int64))-    , _aEtag         :: !(Maybe Text)-    , _aCodeId       :: !(Maybe (Textual Int32))-    , _aKind         :: !Text-    , _aName         :: !(Maybe Text)-    , _aLastTimeUsed :: !(Maybe (Textual Int64))-    , _aUserKey      :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Asp' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aCreationTime'------ * 'aEtag'------ * 'aCodeId'------ * 'aKind'------ * 'aName'------ * 'aLastTimeUsed'------ * 'aUserKey'-asp-    :: Asp-asp =-    Asp'-    { _aCreationTime = Nothing-    , _aEtag = Nothing-    , _aCodeId = Nothing-    , _aKind = "admin#directory#asp"-    , _aName = Nothing-    , _aLastTimeUsed = Nothing-    , _aUserKey = Nothing-    }---- | The time when the ASP was created. Expressed in Unix time format.-aCreationTime :: Lens' Asp (Maybe Int64)-aCreationTime-  = lens _aCreationTime-      (\ s a -> s{_aCreationTime = a})-      . mapping _Coerce---- | ETag of the ASP.-aEtag :: Lens' Asp (Maybe Text)-aEtag = lens _aEtag (\ s a -> s{_aEtag = a})---- | The unique ID of the ASP.-aCodeId :: Lens' Asp (Maybe Int32)-aCodeId-  = lens _aCodeId (\ s a -> s{_aCodeId = a}) .-      mapping _Coerce---- | The type of the API resource. This is always admin#directory#asp.-aKind :: Lens' Asp Text-aKind = lens _aKind (\ s a -> s{_aKind = a})---- | The name of the application that the user, represented by their userId,--- entered when the ASP was created.-aName :: Lens' Asp (Maybe Text)-aName = lens _aName (\ s a -> s{_aName = a})---- | The time when the ASP was last used. Expressed in Unix time format.-aLastTimeUsed :: Lens' Asp (Maybe Int64)-aLastTimeUsed-  = lens _aLastTimeUsed-      (\ s a -> s{_aLastTimeUsed = a})-      . mapping _Coerce---- | The unique ID of the user who issued the ASP.-aUserKey :: Lens' Asp (Maybe Text)-aUserKey = lens _aUserKey (\ s a -> s{_aUserKey = a})--instance FromJSON Asp where-        parseJSON-          = withObject "Asp"-              (\ o ->-                 Asp' <$>-                   (o .:? "creationTime") <*> (o .:? "etag") <*>-                     (o .:? "codeId")-                     <*> (o .:? "kind" .!= "admin#directory#asp")-                     <*> (o .:? "name")-                     <*> (o .:? "lastTimeUsed")-                     <*> (o .:? "userKey"))--instance ToJSON Asp where-        toJSON Asp'{..}-          = object-              (catMaybes-                 [("creationTime" .=) <$> _aCreationTime,-                  ("etag" .=) <$> _aEtag, ("codeId" .=) <$> _aCodeId,-                  Just ("kind" .= _aKind), ("name" .=) <$> _aName,-                  ("lastTimeUsed" .=) <$> _aLastTimeUsed,-                  ("userKey" .=) <$> _aUserKey])---- | JSON response template for List Schema operation in Directory API.------ /See:/ 'schemas' smart constructor.-data Schemas = Schemas'-    { _sEtag    :: !(Maybe Text)-    , _sSchemas :: !(Maybe [Schema])-    , _sKind    :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Schemas' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sEtag'------ * 'sSchemas'------ * 'sKind'-schemas-    :: Schemas-schemas =-    Schemas'-    { _sEtag = Nothing-    , _sSchemas = Nothing-    , _sKind = "admin#directory#schemas"-    }---- | ETag of the resource.-sEtag :: Lens' Schemas (Maybe Text)-sEtag = lens _sEtag (\ s a -> s{_sEtag = a})---- | List of UserSchema objects.-sSchemas :: Lens' Schemas [Schema]-sSchemas-  = lens _sSchemas (\ s a -> s{_sSchemas = a}) .-      _Default-      . _Coerce---- | Kind of resource this is.-sKind :: Lens' Schemas Text-sKind = lens _sKind (\ s a -> s{_sKind = a})--instance FromJSON Schemas where-        parseJSON-          = withObject "Schemas"-              (\ o ->-                 Schemas' <$>-                   (o .:? "etag") <*> (o .:? "schemas" .!= mempty) <*>-                     (o .:? "kind" .!= "admin#directory#schemas"))--instance ToJSON Schemas where-        toJSON Schemas'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _sEtag,-                  ("schemas" .=) <$> _sSchemas,-                  Just ("kind" .= _sKind)])------- /See:/ 'chromeOSDeviceDeviceFilesItem' smart constructor.-data ChromeOSDeviceDeviceFilesItem = ChromeOSDeviceDeviceFilesItem'-    { _coddfiName        :: !(Maybe Text)-    , _coddfiDownloadURL :: !(Maybe Text)-    , _coddfiType        :: !(Maybe Text)-    , _coddfiCreateTime  :: !(Maybe DateTime')-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ChromeOSDeviceDeviceFilesItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'coddfiName'------ * 'coddfiDownloadURL'------ * 'coddfiType'------ * 'coddfiCreateTime'-chromeOSDeviceDeviceFilesItem-    :: ChromeOSDeviceDeviceFilesItem-chromeOSDeviceDeviceFilesItem =-    ChromeOSDeviceDeviceFilesItem'-    { _coddfiName = Nothing-    , _coddfiDownloadURL = Nothing-    , _coddfiType = Nothing-    , _coddfiCreateTime = Nothing-    }---- | File name-coddfiName :: Lens' ChromeOSDeviceDeviceFilesItem (Maybe Text)-coddfiName-  = lens _coddfiName (\ s a -> s{_coddfiName = a})---- | File download URL-coddfiDownloadURL :: Lens' ChromeOSDeviceDeviceFilesItem (Maybe Text)-coddfiDownloadURL-  = lens _coddfiDownloadURL-      (\ s a -> s{_coddfiDownloadURL = a})---- | File type-coddfiType :: Lens' ChromeOSDeviceDeviceFilesItem (Maybe Text)-coddfiType-  = lens _coddfiType (\ s a -> s{_coddfiType = a})---- | Date and time the file was created-coddfiCreateTime :: Lens' ChromeOSDeviceDeviceFilesItem (Maybe UTCTime)-coddfiCreateTime-  = lens _coddfiCreateTime-      (\ s a -> s{_coddfiCreateTime = a})-      . mapping _DateTime--instance FromJSON ChromeOSDeviceDeviceFilesItem where-        parseJSON-          = withObject "ChromeOSDeviceDeviceFilesItem"-              (\ o ->-                 ChromeOSDeviceDeviceFilesItem' <$>-                   (o .:? "name") <*> (o .:? "downloadUrl") <*>-                     (o .:? "type")-                     <*> (o .:? "createTime"))--instance ToJSON ChromeOSDeviceDeviceFilesItem where-        toJSON ChromeOSDeviceDeviceFilesItem'{..}-          = object-              (catMaybes-                 [("name" .=) <$> _coddfiName,-                  ("downloadUrl" .=) <$> _coddfiDownloadURL,-                  ("type" .=) <$> _coddfiType,-                  ("createTime" .=) <$> _coddfiCreateTime])---- | JSON template for Building List Response object in Directory API.------ /See:/ 'buildings' smart constructor.-data Buildings = Buildings'-    { _bEtag          :: !(Maybe Text)-    , _bNextPageToken :: !(Maybe Text)-    , _bBuildings     :: !(Maybe [Building])-    , _bKind          :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Buildings' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bEtag'------ * 'bNextPageToken'------ * 'bBuildings'------ * 'bKind'-buildings-    :: Buildings-buildings =-    Buildings'-    { _bEtag = Nothing-    , _bNextPageToken = Nothing-    , _bBuildings = Nothing-    , _bKind = "admin#directory#resources#buildings#buildingsList"-    }---- | ETag of the resource.-bEtag :: Lens' Buildings (Maybe Text)-bEtag = lens _bEtag (\ s a -> s{_bEtag = 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.-bNextPageToken :: Lens' Buildings (Maybe Text)-bNextPageToken-  = lens _bNextPageToken-      (\ s a -> s{_bNextPageToken = a})---- | The Buildings in this page of results.-bBuildings :: Lens' Buildings [Building]-bBuildings-  = lens _bBuildings (\ s a -> s{_bBuildings = a}) .-      _Default-      . _Coerce---- | Kind of resource this is.-bKind :: Lens' Buildings Text-bKind = lens _bKind (\ s a -> s{_bKind = a})--instance FromJSON Buildings where-        parseJSON-          = withObject "Buildings"-              (\ o ->-                 Buildings' <$>-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>-                     (o .:? "buildings" .!= mempty)-                     <*>-                     (o .:? "kind" .!=-                        "admin#directory#resources#buildings#buildingsList"))--instance ToJSON Buildings where-        toJSON Buildings'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _bEtag,-                  ("nextPageToken" .=) <$> _bNextPageToken,-                  ("buildings" .=) <$> _bBuildings,-                  Just ("kind" .= _bKind)])---- | Template for a notification resource.------ /See:/ 'notification' smart constructor.-data Notification = Notification'-    { _nSubject        :: !(Maybe Text)-    , _nEtag           :: !(Maybe Text)-    , _nKind           :: !Text-    , _nBody           :: !(Maybe Text)-    , _nFromAddress    :: !(Maybe Text)-    , _nIsUnread       :: !(Maybe Bool)-    , _nNotificationId :: !(Maybe Text)-    , _nSendTime       :: !(Maybe DateTime')-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Notification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'nSubject'------ * 'nEtag'------ * 'nKind'------ * 'nBody'------ * 'nFromAddress'------ * 'nIsUnread'------ * 'nNotificationId'------ * 'nSendTime'-notification-    :: Notification-notification =-    Notification'-    { _nSubject = Nothing-    , _nEtag = Nothing-    , _nKind = "admin#directory#notification"-    , _nBody = Nothing-    , _nFromAddress = Nothing-    , _nIsUnread = Nothing-    , _nNotificationId = Nothing-    , _nSendTime = Nothing-    }---- | Subject of the notification (Read-only)-nSubject :: Lens' Notification (Maybe Text)-nSubject = lens _nSubject (\ s a -> s{_nSubject = a})---- | ETag of the resource.-nEtag :: Lens' Notification (Maybe Text)-nEtag = lens _nEtag (\ s a -> s{_nEtag = a})---- | The type of the resource.-nKind :: Lens' Notification Text-nKind = lens _nKind (\ s a -> s{_nKind = a})---- | Body of the notification (Read-only)-nBody :: Lens' Notification (Maybe Text)-nBody = lens _nBody (\ s a -> s{_nBody = a})---- | Address from which the notification is received (Read-only)-nFromAddress :: Lens' Notification (Maybe Text)-nFromAddress-  = lens _nFromAddress (\ s a -> s{_nFromAddress = a})---- | Boolean indicating whether the notification is unread or not.-nIsUnread :: Lens' Notification (Maybe Bool)-nIsUnread-  = lens _nIsUnread (\ s a -> s{_nIsUnread = a})--nNotificationId :: Lens' Notification (Maybe Text)-nNotificationId-  = lens _nNotificationId-      (\ s a -> s{_nNotificationId = a})---- | Time at which notification was sent (Read-only)-nSendTime :: Lens' Notification (Maybe UTCTime)-nSendTime-  = lens _nSendTime (\ s a -> s{_nSendTime = a}) .-      mapping _DateTime--instance FromJSON Notification where-        parseJSON-          = withObject "Notification"-              (\ o ->-                 Notification' <$>-                   (o .:? "subject") <*> (o .:? "etag") <*>-                     (o .:? "kind" .!= "admin#directory#notification")-                     <*> (o .:? "body")-                     <*> (o .:? "fromAddress")-                     <*> (o .:? "isUnread")-                     <*> (o .:? "notificationId")-                     <*> (o .:? "sendTime"))--instance ToJSON Notification where-        toJSON Notification'{..}-          = object-              (catMaybes-                 [("subject" .=) <$> _nSubject,-                  ("etag" .=) <$> _nEtag, Just ("kind" .= _nKind),-                  ("body" .=) <$> _nBody,-                  ("fromAddress" .=) <$> _nFromAddress,-                  ("isUnread" .=) <$> _nIsUnread,-                  ("notificationId" .=) <$> _nNotificationId,-                  ("sendTime" .=) <$> _nSendTime])---- | JSON template for instant messenger of an user.------ /See:/ 'userIm' smart constructor.-data UserIm = UserIm'-    { _uiIm             :: !(Maybe Text)-    , _uiProtocol       :: !(Maybe Text)-    , _uiPrimary        :: !(Maybe Bool)-    , _uiCustomProtocol :: !(Maybe Text)-    , _uiType           :: !(Maybe Text)-    , _uiCustomType     :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserIm' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uiIm'------ * 'uiProtocol'------ * 'uiPrimary'------ * 'uiCustomProtocol'------ * 'uiType'------ * 'uiCustomType'-userIm-    :: UserIm-userIm =-    UserIm'-    { _uiIm = Nothing-    , _uiProtocol = Nothing-    , _uiPrimary = Nothing-    , _uiCustomProtocol = Nothing-    , _uiType = Nothing-    , _uiCustomType = Nothing-    }---- | Instant messenger id.-uiIm :: Lens' UserIm (Maybe Text)-uiIm = lens _uiIm (\ s a -> s{_uiIm = a})---- | Protocol used in the instant messenger. It should be one of the values--- from ImProtocolTypes map. Similar to type, it can take a CUSTOM value--- and specify the custom name in customProtocol field.-uiProtocol :: Lens' UserIm (Maybe Text)-uiProtocol-  = lens _uiProtocol (\ s a -> s{_uiProtocol = a})---- | If this is user\'s primary im. Only one entry could be marked as--- primary.-uiPrimary :: Lens' UserIm (Maybe Bool)-uiPrimary-  = lens _uiPrimary (\ s a -> s{_uiPrimary = a})---- | Custom protocol.-uiCustomProtocol :: Lens' UserIm (Maybe Text)-uiCustomProtocol-  = lens _uiCustomProtocol-      (\ s a -> s{_uiCustomProtocol = a})---- | Each entry can have a type which indicates standard types of that entry.--- For example instant messengers could be of home, work etc. In addition--- to the standard type, an entry can have a custom type and can take any--- value. Such types should have the CUSTOM value as type and also have a--- customType value.-uiType :: Lens' UserIm (Maybe Text)-uiType = lens _uiType (\ s a -> s{_uiType = a})---- | Custom type.-uiCustomType :: Lens' UserIm (Maybe Text)-uiCustomType-  = lens _uiCustomType (\ s a -> s{_uiCustomType = a})--instance FromJSON UserIm where-        parseJSON-          = withObject "UserIm"-              (\ o ->-                 UserIm' <$>-                   (o .:? "im") <*> (o .:? "protocol") <*>-                     (o .:? "primary")-                     <*> (o .:? "customProtocol")-                     <*> (o .:? "type")-                     <*> (o .:? "customType"))--instance ToJSON UserIm where-        toJSON UserIm'{..}-          = object-              (catMaybes-                 [("im" .=) <$> _uiIm,-                  ("protocol" .=) <$> _uiProtocol,-                  ("primary" .=) <$> _uiPrimary,-                  ("customProtocol" .=) <$> _uiCustomProtocol,-                  ("type" .=) <$> _uiType,-                  ("customType" .=) <$> _uiCustomType])---- | JSON response template for List tokens operation in Directory API.------ /See:/ 'tokens' smart constructor.-data Tokens = Tokens'-    { _tEtag  :: !(Maybe Text)-    , _tKind  :: !Text-    , _tItems :: !(Maybe [Token])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Tokens' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tEtag'------ * 'tKind'------ * 'tItems'-tokens-    :: Tokens-tokens =-    Tokens'-    { _tEtag = Nothing-    , _tKind = "admin#directory#tokenList"-    , _tItems = Nothing-    }---- | ETag of the resource.-tEtag :: Lens' Tokens (Maybe Text)-tEtag = lens _tEtag (\ s a -> s{_tEtag = a})---- | The type of the API resource. This is always admin#directory#tokenList.-tKind :: Lens' Tokens Text-tKind = lens _tKind (\ s a -> s{_tKind = a})---- | A list of Token resources.-tItems :: Lens' Tokens [Token]-tItems-  = lens _tItems (\ s a -> s{_tItems = a}) . _Default .-      _Coerce--instance FromJSON Tokens where-        parseJSON-          = withObject "Tokens"-              (\ o ->-                 Tokens' <$>-                   (o .:? "etag") <*>-                     (o .:? "kind" .!= "admin#directory#tokenList")-                     <*> (o .:? "items" .!= mempty))--instance ToJSON Tokens where-        toJSON Tokens'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _tEtag, Just ("kind" .= _tKind),-                  ("items" .=) <$> _tItems])---- | Custom fields of the user.------ /See:/ 'userCustomSchemas' smart constructor.-newtype UserCustomSchemas = UserCustomSchemas'-    { _ucsAddtional :: HashMap Text UserCustomProperties-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserCustomSchemas' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ucsAddtional'-userCustomSchemas-    :: HashMap Text UserCustomProperties -- ^ 'ucsAddtional'-    -> UserCustomSchemas-userCustomSchemas pUcsAddtional_ =-    UserCustomSchemas'-    { _ucsAddtional = _Coerce # pUcsAddtional_-    }--ucsAddtional :: Lens' UserCustomSchemas (HashMap Text UserCustomProperties)-ucsAddtional-  = lens _ucsAddtional (\ s a -> s{_ucsAddtional = a})-      . _Coerce--instance FromJSON UserCustomSchemas where-        parseJSON-          = withObject "UserCustomSchemas"-              (\ o -> UserCustomSchemas' <$> (parseJSONObject o))--instance ToJSON UserCustomSchemas where-        toJSON = toJSON . _ucsAddtional---- | JSON template for a keyword entry.------ /See:/ 'userKeyword' smart constructor.-data UserKeyword = UserKeyword'-    { _ukValue      :: !(Maybe Text)-    , _ukType       :: !(Maybe Text)-    , _ukCustomType :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserKeyword' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ukValue'------ * 'ukType'------ * 'ukCustomType'-userKeyword-    :: UserKeyword-userKeyword =-    UserKeyword'-    { _ukValue = Nothing-    , _ukType = Nothing-    , _ukCustomType = Nothing-    }---- | Keyword.-ukValue :: Lens' UserKeyword (Maybe Text)-ukValue = lens _ukValue (\ s a -> s{_ukValue = a})---- | Each entry can have a type which indicates standard type of that entry.--- For example, keyword could be of type occupation or outlook. In addition--- to the standard type, an entry can have a custom type and can give it--- any name. Such types should have the CUSTOM value as type and also have--- a customType value.-ukType :: Lens' UserKeyword (Maybe Text)-ukType = lens _ukType (\ s a -> s{_ukType = a})---- | Custom Type.-ukCustomType :: Lens' UserKeyword (Maybe Text)-ukCustomType-  = lens _ukCustomType (\ s a -> s{_ukCustomType = a})--instance FromJSON UserKeyword where-        parseJSON-          = withObject "UserKeyword"-              (\ o ->-                 UserKeyword' <$>-                   (o .:? "value") <*> (o .:? "type") <*>-                     (o .:? "customType"))--instance ToJSON UserKeyword where-        toJSON UserKeyword'{..}-          = object-              (catMaybes-                 [("value" .=) <$> _ukValue, ("type" .=) <$> _ukType,-                  ("customType" .=) <$> _ukCustomType])---- | JSON response template to list domain aliases in Directory API.------ /See:/ 'domainAliases' smart constructor.-data DomainAliases = DomainAliases'-    { _daEtag          :: !(Maybe Text)-    , _daKind          :: !Text-    , _daDomainAliases :: !(Maybe [DomainAlias])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DomainAliases' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'daEtag'------ * 'daKind'------ * 'daDomainAliases'-domainAliases-    :: DomainAliases-domainAliases =-    DomainAliases'-    { _daEtag = Nothing-    , _daKind = "admin#directory#domainAliases"-    , _daDomainAliases = Nothing-    }---- | ETag of the resource.-daEtag :: Lens' DomainAliases (Maybe Text)-daEtag = lens _daEtag (\ s a -> s{_daEtag = a})---- | Kind of resource this is.-daKind :: Lens' DomainAliases Text-daKind = lens _daKind (\ s a -> s{_daKind = a})---- | List of domain alias objects.-daDomainAliases :: Lens' DomainAliases [DomainAlias]-daDomainAliases-  = lens _daDomainAliases-      (\ s a -> s{_daDomainAliases = a})-      . _Default-      . _Coerce--instance FromJSON DomainAliases where-        parseJSON-          = withObject "DomainAliases"-              (\ o ->-                 DomainAliases' <$>-                   (o .:? "etag") <*>-                     (o .:? "kind" .!= "admin#directory#domainAliases")-                     <*> (o .:? "domainAliases" .!= mempty))--instance ToJSON DomainAliases where-        toJSON DomainAliases'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _daEtag, Just ("kind" .= _daKind),-                  ("domainAliases" .=) <$> _daDomainAliases])---- | JSON response template to list aliases in Directory API.------ /See:/ 'aliases' smart constructor.-data Aliases = Aliases'-    { _aliEtag    :: !(Maybe Text)-    , _aliKind    :: !Text-    , _aliAliases :: !(Maybe [JSONValue])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Aliases' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aliEtag'------ * 'aliKind'------ * 'aliAliases'-aliases-    :: Aliases-aliases =-    Aliases'-    { _aliEtag = Nothing-    , _aliKind = "admin#directory#aliases"-    , _aliAliases = Nothing-    }---- | ETag of the resource.-aliEtag :: Lens' Aliases (Maybe Text)-aliEtag = lens _aliEtag (\ s a -> s{_aliEtag = a})---- | Kind of resource this is.-aliKind :: Lens' Aliases Text-aliKind = lens _aliKind (\ s a -> s{_aliKind = a})---- | List of alias objects.-aliAliases :: Lens' Aliases [JSONValue]-aliAliases-  = lens _aliAliases (\ s a -> s{_aliAliases = a}) .-      _Default-      . _Coerce--instance FromJSON Aliases where-        parseJSON-          = withObject "Aliases"-              (\ o ->-                 Aliases' <$>-                   (o .:? "etag") <*>-                     (o .:? "kind" .!= "admin#directory#aliases")-                     <*> (o .:? "aliases" .!= mempty))--instance ToJSON Aliases where-        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-    , _crBuildingId             :: !(Maybe Text)-    , _crFeatureInstances       :: !(Maybe JSONValue)-    , _crResourceEmail          :: !(Maybe Text)-    , _crCapacity               :: !(Maybe (Textual Int32))-    , _crResourceDescription    :: !(Maybe Text)-    , _crFloorName              :: !(Maybe Text)-    , _crGeneratedResourceName  :: !(Maybe Text)-    , _crResourceCategory       :: !(Maybe Text)-    , _crFloorSection           :: !(Maybe Text)-    , _crUserVisibleDescription :: !(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'------ * 'crBuildingId'------ * 'crFeatureInstances'------ * 'crResourceEmail'------ * 'crCapacity'------ * 'crResourceDescription'------ * 'crFloorName'------ * 'crGeneratedResourceName'------ * 'crResourceCategory'------ * 'crFloorSection'------ * 'crUserVisibleDescription'-calendarResource-    :: CalendarResource-calendarResource =-    CalendarResource'-    { _crEtags = Nothing-    , _crResourceId = Nothing-    , _crResourceType = Nothing-    , _crResourceName = Nothing-    , _crKind = "admin#directory#resources#calendars#CalendarResource"-    , _crBuildingId = Nothing-    , _crFeatureInstances = Nothing-    , _crResourceEmail = Nothing-    , _crCapacity = Nothing-    , _crResourceDescription = Nothing-    , _crFloorName = Nothing-    , _crGeneratedResourceName = Nothing-    , _crResourceCategory = Nothing-    , _crFloorSection = Nothing-    , _crUserVisibleDescription = 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, intended for non-room resources.-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})---- | Unique ID for the building a resource is located in.-crBuildingId :: Lens' CalendarResource (Maybe Text)-crBuildingId-  = lens _crBuildingId (\ s a -> s{_crBuildingId = a})--crFeatureInstances :: Lens' CalendarResource (Maybe JSONValue)-crFeatureInstances-  = lens _crFeatureInstances-      (\ s a -> s{_crFeatureInstances = a})---- | The read-only email 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})---- | Capacity of a resource, number of seats in a room.-crCapacity :: Lens' CalendarResource (Maybe Int32)-crCapacity-  = lens _crCapacity (\ s a -> s{_crCapacity = a}) .-      mapping _Coerce---- | Description of the resource, visible only to admins.-crResourceDescription :: Lens' CalendarResource (Maybe Text)-crResourceDescription-  = lens _crResourceDescription-      (\ s a -> s{_crResourceDescription = a})---- | Name of the floor a resource is located on.-crFloorName :: Lens' CalendarResource (Maybe Text)-crFloorName-  = lens _crFloorName (\ s a -> s{_crFloorName = a})---- | The read-only auto-generated name of the calendar resource which--- includes metadata about the resource such as building name, floor,--- capacity, etc. For example, \"NYC-2-Training Room 1A (16)\".-crGeneratedResourceName :: Lens' CalendarResource (Maybe Text)-crGeneratedResourceName-  = lens _crGeneratedResourceName-      (\ s a -> s{_crGeneratedResourceName = a})---- | The category of the calendar resource. Either CONFERENCE_ROOM or OTHER.--- Legacy data is set to CATEGORY_UNKNOWN.-crResourceCategory :: Lens' CalendarResource (Maybe Text)-crResourceCategory-  = lens _crResourceCategory-      (\ s a -> s{_crResourceCategory = a})---- | Name of the section within a floor a resource is located in.-crFloorSection :: Lens' CalendarResource (Maybe Text)-crFloorSection-  = lens _crFloorSection-      (\ s a -> s{_crFloorSection = a})---- | Description of the resource, visible to users and admins.-crUserVisibleDescription :: Lens' CalendarResource (Maybe Text)-crUserVisibleDescription-  = lens _crUserVisibleDescription-      (\ s a -> s{_crUserVisibleDescription = 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 .:? "buildingId")-                     <*> (o .:? "featureInstances")-                     <*> (o .:? "resourceEmail")-                     <*> (o .:? "capacity")-                     <*> (o .:? "resourceDescription")-                     <*> (o .:? "floorName")-                     <*> (o .:? "generatedResourceName")-                     <*> (o .:? "resourceCategory")-                     <*> (o .:? "floorSection")-                     <*> (o .:? "userVisibleDescription"))--instance ToJSON CalendarResource where-        toJSON CalendarResource'{..}-          = object-              (catMaybes-                 [("etags" .=) <$> _crEtags,-                  ("resourceId" .=) <$> _crResourceId,-                  ("resourceType" .=) <$> _crResourceType,-                  ("resourceName" .=) <$> _crResourceName,-                  Just ("kind" .= _crKind),-                  ("buildingId" .=) <$> _crBuildingId,-                  ("featureInstances" .=) <$> _crFeatureInstances,-                  ("resourceEmail" .=) <$> _crResourceEmail,-                  ("capacity" .=) <$> _crCapacity,-                  ("resourceDescription" .=) <$>-                    _crResourceDescription,-                  ("floorName" .=) <$> _crFloorName,-                  ("generatedResourceName" .=) <$>-                    _crGeneratedResourceName,-                  ("resourceCategory" .=) <$> _crResourceCategory,-                  ("floorSection" .=) <$> _crFloorSection,-                  ("userVisibleDescription" .=) <$>-                    _crUserVisibleDescription])---- | JSON request template to undelete a user in Directory API.------ /See:/ 'userUndelete' smart constructor.-newtype UserUndelete = UserUndelete'-    { _uuOrgUnitPath :: Maybe Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserUndelete' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uuOrgUnitPath'-userUndelete-    :: UserUndelete-userUndelete =-    UserUndelete'-    { _uuOrgUnitPath = Nothing-    }---- | OrgUnit of User-uuOrgUnitPath :: Lens' UserUndelete (Maybe Text)-uuOrgUnitPath-  = lens _uuOrgUnitPath-      (\ s a -> s{_uuOrgUnitPath = a})--instance FromJSON UserUndelete where-        parseJSON-          = withObject "UserUndelete"-              (\ o -> UserUndelete' <$> (o .:? "orgUnitPath"))--instance ToJSON UserUndelete where-        toJSON UserUndelete'{..}-          = object-              (catMaybes [("orgUnitPath" .=) <$> _uuOrgUnitPath])---- | JSON response template for List Members operation in Directory API.------ /See:/ 'members' smart constructor.-data Members = Members'-    { _mEtag          :: !(Maybe Text)-    , _mNextPageToken :: !(Maybe Text)-    , _mKind          :: !Text-    , _mMembers       :: !(Maybe [Member])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Members' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mEtag'------ * 'mNextPageToken'------ * 'mKind'------ * 'mMembers'-members-    :: Members-members =-    Members'-    { _mEtag = Nothing-    , _mNextPageToken = Nothing-    , _mKind = "admin#directory#members"-    , _mMembers = Nothing-    }---- | ETag of the resource.-mEtag :: Lens' Members (Maybe Text)-mEtag = lens _mEtag (\ s a -> s{_mEtag = a})---- | Token used to access next page of this result.-mNextPageToken :: Lens' Members (Maybe Text)-mNextPageToken-  = lens _mNextPageToken-      (\ s a -> s{_mNextPageToken = a})---- | Kind of resource this is.-mKind :: Lens' Members Text-mKind = lens _mKind (\ s a -> s{_mKind = a})---- | List of member objects.-mMembers :: Lens' Members [Member]-mMembers-  = lens _mMembers (\ s a -> s{_mMembers = a}) .-      _Default-      . _Coerce--instance FromJSON Members where-        parseJSON-          = withObject "Members"-              (\ o ->-                 Members' <$>-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>-                     (o .:? "kind" .!= "admin#directory#members")-                     <*> (o .:? "members" .!= mempty))--instance ToJSON Members where-        toJSON Members'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _mEtag,-                  ("nextPageToken" .=) <$> _mNextPageToken,-                  Just ("kind" .= _mKind),-                  ("members" .=) <$> _mMembers])---- | An notification channel used to watch for resource changes.------ /See:/ 'channel' smart constructor.-data Channel = Channel'-    { _cResourceURI :: !(Maybe Text)-    , _cResourceId  :: !(Maybe Text)-    , _cKind        :: !Text-    , _cExpiration  :: !(Maybe (Textual Int64))-    , _cToken       :: !(Maybe Text)-    , _cAddress     :: !(Maybe Text)-    , _cPayload     :: !(Maybe Bool)-    , _cParams      :: !(Maybe ChannelParams)-    , _cId          :: !(Maybe Text)-    , _cType        :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Channel' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cResourceURI'------ * 'cResourceId'------ * 'cKind'------ * 'cExpiration'------ * 'cToken'------ * 'cAddress'------ * 'cPayload'------ * 'cParams'------ * 'cId'------ * 'cType'-channel-    :: Channel-channel =-    Channel'-    { _cResourceURI = Nothing-    , _cResourceId = Nothing-    , _cKind = "api#channel"-    , _cExpiration = Nothing-    , _cToken = Nothing-    , _cAddress = Nothing-    , _cPayload = Nothing-    , _cParams = Nothing-    , _cId = Nothing-    , _cType = Nothing-    }---- | A version-specific identifier for the watched resource.-cResourceURI :: Lens' Channel (Maybe Text)-cResourceURI-  = lens _cResourceURI (\ s a -> s{_cResourceURI = a})---- | An opaque ID that identifies the resource being watched on this channel.--- Stable across different API versions.-cResourceId :: Lens' Channel (Maybe Text)-cResourceId-  = lens _cResourceId (\ s a -> s{_cResourceId = a})---- | Identifies this as a notification channel used to watch for changes to a--- resource. Value: the fixed string \"api#channel\".-cKind :: Lens' Channel Text-cKind = lens _cKind (\ s a -> s{_cKind = a})---- | Date and time of notification channel expiration, expressed as a Unix--- timestamp, in milliseconds. Optional.-cExpiration :: Lens' Channel (Maybe Int64)-cExpiration-  = lens _cExpiration (\ s a -> s{_cExpiration = a}) .-      mapping _Coerce---- | An arbitrary string delivered to the target address with each--- notification delivered over this channel. Optional.-cToken :: Lens' Channel (Maybe Text)-cToken = lens _cToken (\ s a -> s{_cToken = a})---- | The address where notifications are delivered for this channel.-cAddress :: Lens' Channel (Maybe Text)-cAddress = lens _cAddress (\ s a -> s{_cAddress = a})---- | A Boolean value to indicate whether payload is wanted. Optional.-cPayload :: Lens' Channel (Maybe Bool)-cPayload = lens _cPayload (\ s a -> s{_cPayload = a})---- | Additional parameters controlling delivery channel behavior. Optional.-cParams :: Lens' Channel (Maybe ChannelParams)-cParams = lens _cParams (\ s a -> s{_cParams = a})---- | A UUID or similar unique string that identifies this channel.-cId :: Lens' Channel (Maybe Text)-cId = lens _cId (\ s a -> s{_cId = a})---- | The type of delivery mechanism used for this channel.-cType :: Lens' Channel (Maybe Text)-cType = lens _cType (\ s a -> s{_cType = a})--instance FromJSON Channel where-        parseJSON-          = withObject "Channel"-              (\ o ->-                 Channel' <$>-                   (o .:? "resourceUri") <*> (o .:? "resourceId") <*>-                     (o .:? "kind" .!= "api#channel")-                     <*> (o .:? "expiration")-                     <*> (o .:? "token")-                     <*> (o .:? "address")-                     <*> (o .:? "payload")-                     <*> (o .:? "params")-                     <*> (o .:? "id")-                     <*> (o .:? "type"))--instance ToJSON Channel where-        toJSON Channel'{..}-          = object-              (catMaybes-                 [("resourceUri" .=) <$> _cResourceURI,-                  ("resourceId" .=) <$> _cResourceId,-                  Just ("kind" .= _cKind),-                  ("expiration" .=) <$> _cExpiration,-                  ("token" .=) <$> _cToken,-                  ("address" .=) <$> _cAddress,-                  ("payload" .=) <$> _cPayload,-                  ("params" .=) <$> _cParams, ("id" .=) <$> _cId,-                  ("type" .=) <$> _cType])---- | JSON response template for List Mobile Devices operation in Directory--- API.------ /See:/ 'mobileDevices' smart constructor.-data MobileDevices = MobileDevices'-    { _mdEtag          :: !(Maybe Text)-    , _mdNextPageToken :: !(Maybe Text)-    , _mdKind          :: !Text-    , _mdMobileDevices :: !(Maybe [MobileDevice])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'MobileDevices' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mdEtag'------ * 'mdNextPageToken'------ * 'mdKind'------ * 'mdMobileDevices'-mobileDevices-    :: MobileDevices-mobileDevices =-    MobileDevices'-    { _mdEtag = Nothing-    , _mdNextPageToken = Nothing-    , _mdKind = "admin#directory#mobiledevices"-    , _mdMobileDevices = Nothing-    }---- | ETag of the resource.-mdEtag :: Lens' MobileDevices (Maybe Text)-mdEtag = lens _mdEtag (\ s a -> s{_mdEtag = a})---- | Token used to access next page of this result.-mdNextPageToken :: Lens' MobileDevices (Maybe Text)-mdNextPageToken-  = lens _mdNextPageToken-      (\ s a -> s{_mdNextPageToken = a})---- | Kind of resource this is.-mdKind :: Lens' MobileDevices Text-mdKind = lens _mdKind (\ s a -> s{_mdKind = a})---- | List of Mobile Device objects.-mdMobileDevices :: Lens' MobileDevices [MobileDevice]-mdMobileDevices-  = lens _mdMobileDevices-      (\ s a -> s{_mdMobileDevices = a})-      . _Default-      . _Coerce--instance FromJSON MobileDevices where-        parseJSON-          = withObject "MobileDevices"-              (\ o ->-                 MobileDevices' <$>-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>-                     (o .:? "kind" .!= "admin#directory#mobiledevices")-                     <*> (o .:? "mobiledevices" .!= mempty))--instance ToJSON MobileDevices where-        toJSON MobileDevices'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _mdEtag,-                  ("nextPageToken" .=) <$> _mdNextPageToken,-                  Just ("kind" .= _mdKind),-                  ("mobiledevices" .=) <$> _mdMobileDevices])---- | JSON template for token resource in Directory API.------ /See:/ 'token' smart constructor.-data Token = Token'-    { _tokClientId    :: !(Maybe Text)-    , _tokEtag        :: !(Maybe Text)-    , _tokDisplayText :: !(Maybe Text)-    , _tokKind        :: !Text-    , _tokScopes      :: !(Maybe [Text])-    , _tokNATiveApp   :: !(Maybe Bool)-    , _tokAnonymous   :: !(Maybe Bool)-    , _tokUserKey     :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Token' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tokClientId'------ * 'tokEtag'------ * 'tokDisplayText'------ * 'tokKind'------ * 'tokScopes'------ * 'tokNATiveApp'------ * 'tokAnonymous'------ * 'tokUserKey'-token-    :: Token-token =-    Token'-    { _tokClientId = Nothing-    , _tokEtag = Nothing-    , _tokDisplayText = Nothing-    , _tokKind = "admin#directory#token"-    , _tokScopes = Nothing-    , _tokNATiveApp = Nothing-    , _tokAnonymous = Nothing-    , _tokUserKey = Nothing-    }---- | The Client ID of the application the token is issued to.-tokClientId :: Lens' Token (Maybe Text)-tokClientId-  = lens _tokClientId (\ s a -> s{_tokClientId = a})---- | ETag of the resource.-tokEtag :: Lens' Token (Maybe Text)-tokEtag = lens _tokEtag (\ s a -> s{_tokEtag = a})---- | The displayable name of the application the token is issued to.-tokDisplayText :: Lens' Token (Maybe Text)-tokDisplayText-  = lens _tokDisplayText-      (\ s a -> s{_tokDisplayText = a})---- | The type of the API resource. This is always admin#directory#token.-tokKind :: Lens' Token Text-tokKind = lens _tokKind (\ s a -> s{_tokKind = a})---- | A list of authorization scopes the application is granted.-tokScopes :: Lens' Token [Text]-tokScopes-  = lens _tokScopes (\ s a -> s{_tokScopes = a}) .-      _Default-      . _Coerce---- | Whether the token is issued to an installed application. The value is--- true if the application is installed to a desktop or mobile device.-tokNATiveApp :: Lens' Token (Maybe Bool)-tokNATiveApp-  = lens _tokNATiveApp (\ s a -> s{_tokNATiveApp = a})---- | Whether the application is registered with Google. The value is true if--- the application has an anonymous Client ID.-tokAnonymous :: Lens' Token (Maybe Bool)-tokAnonymous-  = lens _tokAnonymous (\ s a -> s{_tokAnonymous = a})---- | The unique ID of the user that issued the token.-tokUserKey :: Lens' Token (Maybe Text)-tokUserKey-  = lens _tokUserKey (\ s a -> s{_tokUserKey = a})--instance FromJSON Token where-        parseJSON-          = withObject "Token"-              (\ o ->-                 Token' <$>-                   (o .:? "clientId") <*> (o .:? "etag") <*>-                     (o .:? "displayText")-                     <*> (o .:? "kind" .!= "admin#directory#token")-                     <*> (o .:? "scopes" .!= mempty)-                     <*> (o .:? "nativeApp")-                     <*> (o .:? "anonymous")-                     <*> (o .:? "userKey"))--instance ToJSON Token where-        toJSON Token'{..}-          = object-              (catMaybes-                 [("clientId" .=) <$> _tokClientId,-                  ("etag" .=) <$> _tokEtag,-                  ("displayText" .=) <$> _tokDisplayText,-                  Just ("kind" .= _tokKind),-                  ("scopes" .=) <$> _tokScopes,-                  ("nativeApp" .=) <$> _tokNATiveApp,-                  ("anonymous" .=) <$> _tokAnonymous,-                  ("userKey" .=) <$> _tokUserKey])---- | JSON template for name of a user in Directory API.------ /See:/ 'userName' smart constructor.-data UserName = UserName'-    { _unGivenName  :: !(Maybe Text)-    , _unFullName   :: !(Maybe Text)-    , _unFamilyName :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserName' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'unGivenName'------ * 'unFullName'------ * 'unFamilyName'-userName-    :: UserName-userName =-    UserName'-    { _unGivenName = Nothing-    , _unFullName = Nothing-    , _unFamilyName = Nothing-    }---- | First Name-unGivenName :: Lens' UserName (Maybe Text)-unGivenName-  = lens _unGivenName (\ s a -> s{_unGivenName = a})---- | Full Name-unFullName :: Lens' UserName (Maybe Text)-unFullName-  = lens _unFullName (\ s a -> s{_unFullName = a})---- | Last Name-unFamilyName :: Lens' UserName (Maybe Text)-unFamilyName-  = lens _unFamilyName (\ s a -> s{_unFamilyName = a})--instance FromJSON UserName where-        parseJSON-          = withObject "UserName"-              (\ o ->-                 UserName' <$>-                   (o .:? "givenName") <*> (o .:? "fullName") <*>-                     (o .:? "familyName"))--instance ToJSON UserName where-        toJSON UserName'{..}-          = object-              (catMaybes-                 [("givenName" .=) <$> _unGivenName,-                  ("fullName" .=) <$> _unFullName,-                  ("familyName" .=) <$> _unFamilyName])---- | JSON template for Building object in Directory API.------ /See:/ 'building' smart constructor.-data Building = Building'-    { _buiEtags        :: !(Maybe Text)-    , _buiKind         :: !Text-    , _buiBuildingId   :: !(Maybe Text)-    , _buiCoordinates  :: !(Maybe BuildingCoordinates)-    , _buiBuildingName :: !(Maybe Text)-    , _buiFloorNames   :: !(Maybe [Text])-    , _buiDescription  :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Building' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'buiEtags'------ * 'buiKind'------ * 'buiBuildingId'------ * 'buiCoordinates'------ * 'buiBuildingName'------ * 'buiFloorNames'------ * 'buiDescription'-building-    :: Building-building =-    Building'-    { _buiEtags = Nothing-    , _buiKind = "admin#directory#resources#buildings#Building"-    , _buiBuildingId = Nothing-    , _buiCoordinates = Nothing-    , _buiBuildingName = Nothing-    , _buiFloorNames = Nothing-    , _buiDescription = Nothing-    }---- | ETag of the resource.-buiEtags :: Lens' Building (Maybe Text)-buiEtags = lens _buiEtags (\ s a -> s{_buiEtags = a})---- | Kind of resource this is.-buiKind :: Lens' Building Text-buiKind = lens _buiKind (\ s a -> s{_buiKind = a})---- | Unique identifier for the building. The maximum length is 100--- characters.-buiBuildingId :: Lens' Building (Maybe Text)-buiBuildingId-  = lens _buiBuildingId-      (\ s a -> s{_buiBuildingId = a})---- | The geographic coordinates of the center of the building, expressed as--- latitude and longitude in decimal degrees.-buiCoordinates :: Lens' Building (Maybe BuildingCoordinates)-buiCoordinates-  = lens _buiCoordinates-      (\ s a -> s{_buiCoordinates = a})---- | The building name as seen by users in Calendar. Must be unique for the--- customer. For example, \"NYC-CHEL\". The maximum length is 100--- characters.-buiBuildingName :: Lens' Building (Maybe Text)-buiBuildingName-  = lens _buiBuildingName-      (\ s a -> s{_buiBuildingName = a})---- | The display names for all floors in this building. The floors are--- expected to be sorted in ascending order, from lowest floor to highest--- floor. For example, [\"B2\", \"B1\", \"L\", \"1\", \"2\", \"2M\", \"3\",--- \"PH\"] Must contain at least one entry.-buiFloorNames :: Lens' Building [Text]-buiFloorNames-  = lens _buiFloorNames-      (\ s a -> s{_buiFloorNames = a})-      . _Default-      . _Coerce---- | A brief description of the building. For example, \"Chelsea Market\".-buiDescription :: Lens' Building (Maybe Text)-buiDescription-  = lens _buiDescription-      (\ s a -> s{_buiDescription = a})--instance FromJSON Building where-        parseJSON-          = withObject "Building"-              (\ o ->-                 Building' <$>-                   (o .:? "etags") <*>-                     (o .:? "kind" .!=-                        "admin#directory#resources#buildings#Building")-                     <*> (o .:? "buildingId")-                     <*> (o .:? "coordinates")-                     <*> (o .:? "buildingName")-                     <*> (o .:? "floorNames" .!= mempty)-                     <*> (o .:? "description"))--instance ToJSON Building where-        toJSON Building'{..}-          = object-              (catMaybes-                 [("etags" .=) <$> _buiEtags,-                  Just ("kind" .= _buiKind),-                  ("buildingId" .=) <$> _buiBuildingId,-                  ("coordinates" .=) <$> _buiCoordinates,-                  ("buildingName" .=) <$> _buiBuildingName,-                  ("floorNames" .=) <$> _buiFloorNames,-                  ("description" .=) <$> _buiDescription])------- /See:/ 'chromeOSDeviceRecentUsersItem' smart constructor.-data ChromeOSDeviceRecentUsersItem = ChromeOSDeviceRecentUsersItem'-    { _codruiEmail :: !(Maybe Text)-    , _codruiType  :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ChromeOSDeviceRecentUsersItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'codruiEmail'------ * 'codruiType'-chromeOSDeviceRecentUsersItem-    :: ChromeOSDeviceRecentUsersItem-chromeOSDeviceRecentUsersItem =-    ChromeOSDeviceRecentUsersItem'-    { _codruiEmail = Nothing-    , _codruiType = Nothing-    }---- | Email address of the user. Present only if the user type is managed-codruiEmail :: Lens' ChromeOSDeviceRecentUsersItem (Maybe Text)-codruiEmail-  = lens _codruiEmail (\ s a -> s{_codruiEmail = a})---- | The type of the user-codruiType :: Lens' ChromeOSDeviceRecentUsersItem (Maybe Text)-codruiType-  = lens _codruiType (\ s a -> s{_codruiType = a})--instance FromJSON ChromeOSDeviceRecentUsersItem where-        parseJSON-          = withObject "ChromeOSDeviceRecentUsersItem"-              (\ o ->-                 ChromeOSDeviceRecentUsersItem' <$>-                   (o .:? "email") <*> (o .:? "type"))--instance ToJSON ChromeOSDeviceRecentUsersItem where-        toJSON ChromeOSDeviceRecentUsersItem'{..}-          = object-              (catMaybes-                 [("email" .=) <$> _codruiEmail,-                  ("type" .=) <$> _codruiType])---- | JSON template for Domain Alias object in Directory API.------ /See:/ 'domainAlias' smart constructor.-data DomainAlias = DomainAlias'-    { _dCreationTime     :: !(Maybe (Textual Int64))-    , _dEtag             :: !(Maybe Text)-    , _dKind             :: !Text-    , _dVerified         :: !(Maybe Bool)-    , _dDomainAliasName  :: !(Maybe Text)-    , _dParentDomainName :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DomainAlias' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dCreationTime'------ * 'dEtag'------ * 'dKind'------ * 'dVerified'------ * 'dDomainAliasName'------ * 'dParentDomainName'-domainAlias-    :: DomainAlias-domainAlias =-    DomainAlias'-    { _dCreationTime = Nothing-    , _dEtag = Nothing-    , _dKind = "admin#directory#domainAlias"-    , _dVerified = Nothing-    , _dDomainAliasName = Nothing-    , _dParentDomainName = Nothing-    }---- | The creation time of the domain alias. (Read-only).-dCreationTime :: Lens' DomainAlias (Maybe Int64)-dCreationTime-  = lens _dCreationTime-      (\ s a -> s{_dCreationTime = a})-      . mapping _Coerce---- | ETag of the resource.-dEtag :: Lens' DomainAlias (Maybe Text)-dEtag = lens _dEtag (\ s a -> s{_dEtag = a})---- | Kind of resource this is.-dKind :: Lens' DomainAlias Text-dKind = lens _dKind (\ s a -> s{_dKind = a})---- | Indicates the verification state of a domain alias. (Read-only)-dVerified :: Lens' DomainAlias (Maybe Bool)-dVerified-  = lens _dVerified (\ s a -> s{_dVerified = a})---- | The domain alias name.-dDomainAliasName :: Lens' DomainAlias (Maybe Text)-dDomainAliasName-  = lens _dDomainAliasName-      (\ s a -> s{_dDomainAliasName = a})---- | The parent domain name that the domain alias is associated with. This--- can either be a primary or secondary domain name within a customer.-dParentDomainName :: Lens' DomainAlias (Maybe Text)-dParentDomainName-  = lens _dParentDomainName-      (\ s a -> s{_dParentDomainName = a})--instance FromJSON DomainAlias where-        parseJSON-          = withObject "DomainAlias"-              (\ o ->-                 DomainAlias' <$>-                   (o .:? "creationTime") <*> (o .:? "etag") <*>-                     (o .:? "kind" .!= "admin#directory#domainAlias")-                     <*> (o .:? "verified")-                     <*> (o .:? "domainAliasName")-                     <*> (o .:? "parentDomainName"))--instance ToJSON DomainAlias where-        toJSON DomainAlias'{..}-          = object-              (catMaybes-                 [("creationTime" .=) <$> _dCreationTime,-                  ("etag" .=) <$> _dEtag, Just ("kind" .= _dKind),-                  ("verified" .=) <$> _dVerified,-                  ("domainAliasName" .=) <$> _dDomainAliasName,-                  ("parentDomainName" .=) <$> _dParentDomainName])------- /See:/ 'userGender' smart constructor.-data UserGender = UserGender'-    { _ugAddressMeAs  :: !(Maybe Text)-    , _ugCustomGender :: !(Maybe Text)-    , _ugType         :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserGender' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ugAddressMeAs'------ * 'ugCustomGender'------ * 'ugType'-userGender-    :: UserGender-userGender =-    UserGender'-    { _ugAddressMeAs = Nothing-    , _ugCustomGender = Nothing-    , _ugType = Nothing-    }---- | AddressMeAs. A human-readable string containing the proper way to refer--- to the profile owner by humans, for example \"he\/him\/his\" or--- \"they\/them\/their\".-ugAddressMeAs :: Lens' UserGender (Maybe Text)-ugAddressMeAs-  = lens _ugAddressMeAs-      (\ s a -> s{_ugAddressMeAs = a})---- | Custom gender.-ugCustomGender :: Lens' UserGender (Maybe Text)-ugCustomGender-  = lens _ugCustomGender-      (\ s a -> s{_ugCustomGender = a})---- | Gender.-ugType :: Lens' UserGender (Maybe Text)-ugType = lens _ugType (\ s a -> s{_ugType = a})--instance FromJSON UserGender where-        parseJSON-          = withObject "UserGender"-              (\ o ->-                 UserGender' <$>-                   (o .:? "addressMeAs") <*> (o .:? "customGender") <*>-                     (o .:? "type"))--instance ToJSON UserGender where-        toJSON UserGender'{..}-          = object-              (catMaybes-                 [("addressMeAs" .=) <$> _ugAddressMeAs,-                  ("customGender" .=) <$> _ugCustomGender,-                  ("type" .=) <$> _ugType])---- | JSON template for Alias object in Directory API.------ /See:/ 'alias' smart constructor.-data Alias = Alias'-    { _aaEtag         :: !(Maybe Text)-    , _aaKind         :: !Text-    , _aaAlias        :: !(Maybe Text)-    , _aaId           :: !(Maybe Text)-    , _aaPrimaryEmail :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Alias' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aaEtag'------ * 'aaKind'------ * 'aaAlias'------ * 'aaId'------ * 'aaPrimaryEmail'-alias-    :: Alias-alias =-    Alias'-    { _aaEtag = Nothing-    , _aaKind = "admin#directory#alias"-    , _aaAlias = Nothing-    , _aaId = Nothing-    , _aaPrimaryEmail = Nothing-    }---- | ETag of the resource.-aaEtag :: Lens' Alias (Maybe Text)-aaEtag = lens _aaEtag (\ s a -> s{_aaEtag = a})---- | Kind of resource this is.-aaKind :: Lens' Alias Text-aaKind = lens _aaKind (\ s a -> s{_aaKind = a})---- | A alias email-aaAlias :: Lens' Alias (Maybe Text)-aaAlias = lens _aaAlias (\ s a -> s{_aaAlias = a})---- | Unique id of the group (Read-only) Unique id of the user (Read-only)-aaId :: Lens' Alias (Maybe Text)-aaId = lens _aaId (\ s a -> s{_aaId = a})---- | Group\'s primary email (Read-only) User\'s primary email (Read-only)-aaPrimaryEmail :: Lens' Alias (Maybe Text)-aaPrimaryEmail-  = lens _aaPrimaryEmail-      (\ s a -> s{_aaPrimaryEmail = a})--instance FromJSON Alias where-        parseJSON-          = withObject "Alias"-              (\ o ->-                 Alias' <$>-                   (o .:? "etag") <*>-                     (o .:? "kind" .!= "admin#directory#alias")-                     <*> (o .:? "alias")-                     <*> (o .:? "id")-                     <*> (o .:? "primaryEmail"))--instance ToJSON Alias where-        toJSON Alias'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _aaEtag, Just ("kind" .= _aaKind),-                  ("alias" .=) <$> _aaAlias, ("id" .=) <$> _aaId,-                  ("primaryEmail" .=) <$> _aaPrimaryEmail])---- | JSON template for Schema resource in Directory API.------ /See:/ 'schema' smart constructor.-data Schema = Schema'-    { _schEtag        :: !(Maybe Text)-    , _schKind        :: !Text-    , _schSchemaName  :: !(Maybe Text)-    , _schSchemaId    :: !(Maybe Text)-    , _schDisplayName :: !(Maybe Text)-    , _schFields      :: !(Maybe [SchemaFieldSpec])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Schema' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'schEtag'------ * 'schKind'------ * 'schSchemaName'------ * 'schSchemaId'------ * 'schDisplayName'------ * 'schFields'-schema-    :: Schema-schema =-    Schema'-    { _schEtag = Nothing-    , _schKind = "admin#directory#schema"-    , _schSchemaName = Nothing-    , _schSchemaId = Nothing-    , _schDisplayName = Nothing-    , _schFields = Nothing-    }---- | ETag of the resource.-schEtag :: Lens' Schema (Maybe Text)-schEtag = lens _schEtag (\ s a -> s{_schEtag = a})---- | Kind of resource this is.-schKind :: Lens' Schema Text-schKind = lens _schKind (\ s a -> s{_schKind = a})---- | Schema name-schSchemaName :: Lens' Schema (Maybe Text)-schSchemaName-  = lens _schSchemaName-      (\ s a -> s{_schSchemaName = a})---- | Unique identifier of Schema (Read-only)-schSchemaId :: Lens' Schema (Maybe Text)-schSchemaId-  = lens _schSchemaId (\ s a -> s{_schSchemaId = a})---- | Display name for the schema.-schDisplayName :: Lens' Schema (Maybe Text)-schDisplayName-  = lens _schDisplayName-      (\ s a -> s{_schDisplayName = a})---- | Fields of Schema-schFields :: Lens' Schema [SchemaFieldSpec]-schFields-  = lens _schFields (\ s a -> s{_schFields = a}) .-      _Default-      . _Coerce--instance FromJSON Schema where-        parseJSON-          = withObject "Schema"-              (\ o ->-                 Schema' <$>-                   (o .:? "etag") <*>-                     (o .:? "kind" .!= "admin#directory#schema")-                     <*> (o .:? "schemaName")-                     <*> (o .:? "schemaId")-                     <*> (o .:? "displayName")-                     <*> (o .:? "fields" .!= mempty))--instance ToJSON Schema where-        toJSON Schema'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _schEtag, Just ("kind" .= _schKind),-                  ("schemaName" .=) <$> _schSchemaName,-                  ("schemaId" .=) <$> _schSchemaId,-                  ("displayName" .=) <$> _schDisplayName,-                  ("fields" .=) <$> _schFields])---- | JSON request template for moving ChromeOs Device to given OU in--- Directory Devices API.------ /See:/ 'chromeOSMoveDevicesToOu' smart constructor.-newtype ChromeOSMoveDevicesToOu = ChromeOSMoveDevicesToOu'-    { _comdtoDeviceIds :: Maybe [Text]-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ChromeOSMoveDevicesToOu' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'comdtoDeviceIds'-chromeOSMoveDevicesToOu-    :: ChromeOSMoveDevicesToOu-chromeOSMoveDevicesToOu =-    ChromeOSMoveDevicesToOu'-    { _comdtoDeviceIds = Nothing-    }---- | ChromeOs Devices to be moved to OU-comdtoDeviceIds :: Lens' ChromeOSMoveDevicesToOu [Text]-comdtoDeviceIds-  = lens _comdtoDeviceIds-      (\ s a -> s{_comdtoDeviceIds = a})-      . _Default-      . _Coerce--instance FromJSON ChromeOSMoveDevicesToOu where-        parseJSON-          = withObject "ChromeOSMoveDevicesToOu"-              (\ o ->-                 ChromeOSMoveDevicesToOu' <$>-                   (o .:? "deviceIds" .!= mempty))--instance ToJSON ChromeOSMoveDevicesToOu where-        toJSON ChromeOSMoveDevicesToOu'{..}-          = object-              (catMaybes [("deviceIds" .=) <$> _comdtoDeviceIds])---- | JSON template for User object in Directory API.------ /See:/ 'user' smart constructor.-data User = User'-    { _useCreationTime               :: !(Maybe DateTime')-    , _useLastLoginTime              :: !(Maybe DateTime')-    , _useThumbnailPhotoEtag         :: !(Maybe Text)-    , _useEtag                       :: !(Maybe Text)-    , _usePosixAccounts              :: !(Maybe JSONValue)-    , _useIPWhiteListed              :: !(Maybe Bool)-    , _useRelations                  :: !(Maybe JSONValue)-    , _useSSHPublicKeys              :: !(Maybe JSONValue)-    , _useHashFunction               :: !(Maybe Text)-    , _useKind                       :: !Text-    , _useChangePasswordAtNextLogin  :: !(Maybe Bool)-    , _useWebsites                   :: !(Maybe JSONValue)-    , _useAddresses                  :: !(Maybe JSONValue)-    , _useAliases                    :: !(Maybe [Text])-    , _useThumbnailPhotoURL          :: !(Maybe Text)-    , _useExternalIds                :: !(Maybe JSONValue)-    , _useSuspended                  :: !(Maybe Bool)-    , _useAgreedToTerms              :: !(Maybe Bool)-    , _useDeletionTime               :: !(Maybe DateTime')-    , _useNonEditableAliases         :: !(Maybe [Text])-    , _useOrgUnitPath                :: !(Maybe Text)-    , _useCustomerId                 :: !(Maybe Text)-    , _useLanguages                  :: !(Maybe JSONValue)-    , _useIncludeInGlobalAddressList :: !(Maybe Bool)-    , _useGender                     :: !(Maybe JSONValue)-    , _usePhones                     :: !(Maybe JSONValue)-    , _useName                       :: !(Maybe UserName)-    , _usePassword                   :: !(Maybe Text)-    , _useEmails                     :: !(Maybe JSONValue)-    , _useIms                        :: !(Maybe JSONValue)-    , _useKeywords                   :: !(Maybe JSONValue)-    , _useIsAdmin                    :: !(Maybe Bool)-    , _useIsEnrolledIn2Sv            :: !(Maybe Bool)-    , _useId                         :: !(Maybe Text)-    , _useOrganizations              :: !(Maybe JSONValue)-    , _usePrimaryEmail               :: !(Maybe Text)-    , _useIsEnforcedIn2Sv            :: !(Maybe Bool)-    , _useNotes                      :: !(Maybe JSONValue)-    , _useIsDelegatedAdmin           :: !(Maybe Bool)-    , _useLocations                  :: !(Maybe JSONValue)-    , _useArchived                   :: !(Maybe Bool)-    , _useIsMailboxSetup             :: !(Maybe Bool)-    , _useCustomSchemas              :: !(Maybe UserCustomSchemas)-    , _useSuspensionReason           :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'User' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'useCreationTime'------ * 'useLastLoginTime'------ * 'useThumbnailPhotoEtag'------ * 'useEtag'------ * 'usePosixAccounts'------ * 'useIPWhiteListed'------ * 'useRelations'------ * 'useSSHPublicKeys'------ * 'useHashFunction'------ * 'useKind'------ * 'useChangePasswordAtNextLogin'------ * 'useWebsites'------ * 'useAddresses'------ * 'useAliases'------ * 'useThumbnailPhotoURL'------ * 'useExternalIds'------ * 'useSuspended'------ * 'useAgreedToTerms'------ * 'useDeletionTime'------ * 'useNonEditableAliases'------ * 'useOrgUnitPath'------ * 'useCustomerId'------ * 'useLanguages'------ * 'useIncludeInGlobalAddressList'------ * 'useGender'------ * 'usePhones'------ * 'useName'------ * 'usePassword'------ * 'useEmails'------ * 'useIms'------ * 'useKeywords'------ * 'useIsAdmin'------ * 'useIsEnrolledIn2Sv'------ * 'useId'------ * 'useOrganizations'------ * 'usePrimaryEmail'------ * 'useIsEnforcedIn2Sv'------ * 'useNotes'------ * 'useIsDelegatedAdmin'------ * 'useLocations'------ * 'useArchived'------ * 'useIsMailboxSetup'------ * 'useCustomSchemas'------ * 'useSuspensionReason'-user-    :: User-user =-    User'-    { _useCreationTime = Nothing-    , _useLastLoginTime = Nothing-    , _useThumbnailPhotoEtag = Nothing-    , _useEtag = Nothing-    , _usePosixAccounts = Nothing-    , _useIPWhiteListed = Nothing-    , _useRelations = Nothing-    , _useSSHPublicKeys = Nothing-    , _useHashFunction = Nothing-    , _useKind = "admin#directory#user"-    , _useChangePasswordAtNextLogin = Nothing-    , _useWebsites = Nothing-    , _useAddresses = Nothing-    , _useAliases = Nothing-    , _useThumbnailPhotoURL = Nothing-    , _useExternalIds = Nothing-    , _useSuspended = Nothing-    , _useAgreedToTerms = Nothing-    , _useDeletionTime = Nothing-    , _useNonEditableAliases = Nothing-    , _useOrgUnitPath = Nothing-    , _useCustomerId = Nothing-    , _useLanguages = Nothing-    , _useIncludeInGlobalAddressList = Nothing-    , _useGender = Nothing-    , _usePhones = Nothing-    , _useName = Nothing-    , _usePassword = Nothing-    , _useEmails = Nothing-    , _useIms = Nothing-    , _useKeywords = Nothing-    , _useIsAdmin = Nothing-    , _useIsEnrolledIn2Sv = Nothing-    , _useId = Nothing-    , _useOrganizations = Nothing-    , _usePrimaryEmail = Nothing-    , _useIsEnforcedIn2Sv = Nothing-    , _useNotes = Nothing-    , _useIsDelegatedAdmin = Nothing-    , _useLocations = Nothing-    , _useArchived = Nothing-    , _useIsMailboxSetup = Nothing-    , _useCustomSchemas = Nothing-    , _useSuspensionReason = Nothing-    }---- | User\'s G Suite account creation time. (Read-only)-useCreationTime :: Lens' User (Maybe UTCTime)-useCreationTime-  = lens _useCreationTime-      (\ s a -> s{_useCreationTime = a})-      . mapping _DateTime---- | User\'s last login time. (Read-only)-useLastLoginTime :: Lens' User (Maybe UTCTime)-useLastLoginTime-  = lens _useLastLoginTime-      (\ s a -> s{_useLastLoginTime = a})-      . mapping _DateTime---- | ETag of the user\'s photo (Read-only)-useThumbnailPhotoEtag :: Lens' User (Maybe Text)-useThumbnailPhotoEtag-  = lens _useThumbnailPhotoEtag-      (\ s a -> s{_useThumbnailPhotoEtag = a})---- | ETag of the resource.-useEtag :: Lens' User (Maybe Text)-useEtag = lens _useEtag (\ s a -> s{_useEtag = a})--usePosixAccounts :: Lens' User (Maybe JSONValue)-usePosixAccounts-  = lens _usePosixAccounts-      (\ s a -> s{_usePosixAccounts = a})---- | Boolean indicating if ip is whitelisted-useIPWhiteListed :: Lens' User (Maybe Bool)-useIPWhiteListed-  = lens _useIPWhiteListed-      (\ s a -> s{_useIPWhiteListed = a})--useRelations :: Lens' User (Maybe JSONValue)-useRelations-  = lens _useRelations (\ s a -> s{_useRelations = a})--useSSHPublicKeys :: Lens' User (Maybe JSONValue)-useSSHPublicKeys-  = lens _useSSHPublicKeys-      (\ s a -> s{_useSSHPublicKeys = a})---- | Hash function name for password. Supported are MD5, SHA-1 and crypt-useHashFunction :: Lens' User (Maybe Text)-useHashFunction-  = lens _useHashFunction-      (\ s a -> s{_useHashFunction = a})---- | Kind of resource this is.-useKind :: Lens' User Text-useKind = lens _useKind (\ s a -> s{_useKind = a})---- | Boolean indicating if the user should change password in next login-useChangePasswordAtNextLogin :: Lens' User (Maybe Bool)-useChangePasswordAtNextLogin-  = lens _useChangePasswordAtNextLogin-      (\ s a -> s{_useChangePasswordAtNextLogin = a})--useWebsites :: Lens' User (Maybe JSONValue)-useWebsites-  = lens _useWebsites (\ s a -> s{_useWebsites = a})--useAddresses :: Lens' User (Maybe JSONValue)-useAddresses-  = lens _useAddresses (\ s a -> s{_useAddresses = a})---- | List of aliases (Read-only)-useAliases :: Lens' User [Text]-useAliases-  = lens _useAliases (\ s a -> s{_useAliases = a}) .-      _Default-      . _Coerce---- | Photo Url of the user (Read-only)-useThumbnailPhotoURL :: Lens' User (Maybe Text)-useThumbnailPhotoURL-  = lens _useThumbnailPhotoURL-      (\ s a -> s{_useThumbnailPhotoURL = a})--useExternalIds :: Lens' User (Maybe JSONValue)-useExternalIds-  = lens _useExternalIds-      (\ s a -> s{_useExternalIds = a})---- | Indicates if user is suspended.-useSuspended :: Lens' User (Maybe Bool)-useSuspended-  = lens _useSuspended (\ s a -> s{_useSuspended = a})---- | Indicates if user has agreed to terms (Read-only)-useAgreedToTerms :: Lens' User (Maybe Bool)-useAgreedToTerms-  = lens _useAgreedToTerms-      (\ s a -> s{_useAgreedToTerms = a})--useDeletionTime :: Lens' User (Maybe UTCTime)-useDeletionTime-  = lens _useDeletionTime-      (\ s a -> s{_useDeletionTime = a})-      . mapping _DateTime---- | List of non editable aliases (Read-only)-useNonEditableAliases :: Lens' User [Text]-useNonEditableAliases-  = lens _useNonEditableAliases-      (\ s a -> s{_useNonEditableAliases = a})-      . _Default-      . _Coerce---- | OrgUnit of User-useOrgUnitPath :: Lens' User (Maybe Text)-useOrgUnitPath-  = lens _useOrgUnitPath-      (\ s a -> s{_useOrgUnitPath = a})---- | CustomerId of User (Read-only)-useCustomerId :: Lens' User (Maybe Text)-useCustomerId-  = lens _useCustomerId-      (\ s a -> s{_useCustomerId = a})--useLanguages :: Lens' User (Maybe JSONValue)-useLanguages-  = lens _useLanguages (\ s a -> s{_useLanguages = a})---- | Boolean indicating if user is included in Global Address List-useIncludeInGlobalAddressList :: Lens' User (Maybe Bool)-useIncludeInGlobalAddressList-  = lens _useIncludeInGlobalAddressList-      (\ s a -> s{_useIncludeInGlobalAddressList = a})--useGender :: Lens' User (Maybe JSONValue)-useGender-  = lens _useGender (\ s a -> s{_useGender = a})--usePhones :: Lens' User (Maybe JSONValue)-usePhones-  = lens _usePhones (\ s a -> s{_usePhones = a})---- | User\'s name-useName :: Lens' User (Maybe UserName)-useName = lens _useName (\ s a -> s{_useName = a})---- | User\'s password-usePassword :: Lens' User (Maybe Text)-usePassword-  = lens _usePassword (\ s a -> s{_usePassword = a})--useEmails :: Lens' User (Maybe JSONValue)-useEmails-  = lens _useEmails (\ s a -> s{_useEmails = a})--useIms :: Lens' User (Maybe JSONValue)-useIms = lens _useIms (\ s a -> s{_useIms = a})--useKeywords :: Lens' User (Maybe JSONValue)-useKeywords-  = lens _useKeywords (\ s a -> s{_useKeywords = a})---- | Boolean indicating if the user is admin (Read-only)-useIsAdmin :: Lens' User (Maybe Bool)-useIsAdmin-  = lens _useIsAdmin (\ s a -> s{_useIsAdmin = a})---- | Is enrolled in 2-step verification (Read-only)-useIsEnrolledIn2Sv :: Lens' User (Maybe Bool)-useIsEnrolledIn2Sv-  = lens _useIsEnrolledIn2Sv-      (\ s a -> s{_useIsEnrolledIn2Sv = a})---- | Unique identifier of User (Read-only)-useId :: Lens' User (Maybe Text)-useId = lens _useId (\ s a -> s{_useId = a})--useOrganizations :: Lens' User (Maybe JSONValue)-useOrganizations-  = lens _useOrganizations-      (\ s a -> s{_useOrganizations = a})---- | username of User-usePrimaryEmail :: Lens' User (Maybe Text)-usePrimaryEmail-  = lens _usePrimaryEmail-      (\ s a -> s{_usePrimaryEmail = a})---- | Is 2-step verification enforced (Read-only)-useIsEnforcedIn2Sv :: Lens' User (Maybe Bool)-useIsEnforcedIn2Sv-  = lens _useIsEnforcedIn2Sv-      (\ s a -> s{_useIsEnforcedIn2Sv = a})--useNotes :: Lens' User (Maybe JSONValue)-useNotes = lens _useNotes (\ s a -> s{_useNotes = a})---- | Boolean indicating if the user is delegated admin (Read-only)-useIsDelegatedAdmin :: Lens' User (Maybe Bool)-useIsDelegatedAdmin-  = lens _useIsDelegatedAdmin-      (\ s a -> s{_useIsDelegatedAdmin = a})--useLocations :: Lens' User (Maybe JSONValue)-useLocations-  = lens _useLocations (\ s a -> s{_useLocations = a})---- | Indicates if user is archived.-useArchived :: Lens' User (Maybe Bool)-useArchived-  = lens _useArchived (\ s a -> s{_useArchived = a})---- | Is mailbox setup (Read-only)-useIsMailboxSetup :: Lens' User (Maybe Bool)-useIsMailboxSetup-  = lens _useIsMailboxSetup-      (\ s a -> s{_useIsMailboxSetup = a})---- | Custom fields of the user.-useCustomSchemas :: Lens' User (Maybe UserCustomSchemas)-useCustomSchemas-  = lens _useCustomSchemas-      (\ s a -> s{_useCustomSchemas = a})---- | Suspension reason if user is suspended (Read-only)-useSuspensionReason :: Lens' User (Maybe Text)-useSuspensionReason-  = lens _useSuspensionReason-      (\ s a -> s{_useSuspensionReason = a})--instance FromJSON User where-        parseJSON-          = withObject "User"-              (\ o ->-                 User' <$>-                   (o .:? "creationTime") <*> (o .:? "lastLoginTime")-                     <*> (o .:? "thumbnailPhotoEtag")-                     <*> (o .:? "etag")-                     <*> (o .:? "posixAccounts")-                     <*> (o .:? "ipWhitelisted")-                     <*> (o .:? "relations")-                     <*> (o .:? "sshPublicKeys")-                     <*> (o .:? "hashFunction")-                     <*> (o .:? "kind" .!= "admin#directory#user")-                     <*> (o .:? "changePasswordAtNextLogin")-                     <*> (o .:? "websites")-                     <*> (o .:? "addresses")-                     <*> (o .:? "aliases" .!= mempty)-                     <*> (o .:? "thumbnailPhotoUrl")-                     <*> (o .:? "externalIds")-                     <*> (o .:? "suspended")-                     <*> (o .:? "agreedToTerms")-                     <*> (o .:? "deletionTime")-                     <*> (o .:? "nonEditableAliases" .!= mempty)-                     <*> (o .:? "orgUnitPath")-                     <*> (o .:? "customerId")-                     <*> (o .:? "languages")-                     <*> (o .:? "includeInGlobalAddressList")-                     <*> (o .:? "gender")-                     <*> (o .:? "phones")-                     <*> (o .:? "name")-                     <*> (o .:? "password")-                     <*> (o .:? "emails")-                     <*> (o .:? "ims")-                     <*> (o .:? "keywords")-                     <*> (o .:? "isAdmin")-                     <*> (o .:? "isEnrolledIn2Sv")-                     <*> (o .:? "id")-                     <*> (o .:? "organizations")-                     <*> (o .:? "primaryEmail")-                     <*> (o .:? "isEnforcedIn2Sv")-                     <*> (o .:? "notes")-                     <*> (o .:? "isDelegatedAdmin")-                     <*> (o .:? "locations")-                     <*> (o .:? "archived")-                     <*> (o .:? "isMailboxSetup")-                     <*> (o .:? "customSchemas")-                     <*> (o .:? "suspensionReason"))--instance ToJSON User where-        toJSON User'{..}-          = object-              (catMaybes-                 [("creationTime" .=) <$> _useCreationTime,-                  ("lastLoginTime" .=) <$> _useLastLoginTime,-                  ("thumbnailPhotoEtag" .=) <$> _useThumbnailPhotoEtag,-                  ("etag" .=) <$> _useEtag,-                  ("posixAccounts" .=) <$> _usePosixAccounts,-                  ("ipWhitelisted" .=) <$> _useIPWhiteListed,-                  ("relations" .=) <$> _useRelations,-                  ("sshPublicKeys" .=) <$> _useSSHPublicKeys,-                  ("hashFunction" .=) <$> _useHashFunction,-                  Just ("kind" .= _useKind),-                  ("changePasswordAtNextLogin" .=) <$>-                    _useChangePasswordAtNextLogin,-                  ("websites" .=) <$> _useWebsites,-                  ("addresses" .=) <$> _useAddresses,-                  ("aliases" .=) <$> _useAliases,-                  ("thumbnailPhotoUrl" .=) <$> _useThumbnailPhotoURL,-                  ("externalIds" .=) <$> _useExternalIds,-                  ("suspended" .=) <$> _useSuspended,-                  ("agreedToTerms" .=) <$> _useAgreedToTerms,-                  ("deletionTime" .=) <$> _useDeletionTime,-                  ("nonEditableAliases" .=) <$> _useNonEditableAliases,-                  ("orgUnitPath" .=) <$> _useOrgUnitPath,-                  ("customerId" .=) <$> _useCustomerId,-                  ("languages" .=) <$> _useLanguages,-                  ("includeInGlobalAddressList" .=) <$>-                    _useIncludeInGlobalAddressList,-                  ("gender" .=) <$> _useGender,-                  ("phones" .=) <$> _usePhones,-                  ("name" .=) <$> _useName,-                  ("password" .=) <$> _usePassword,-                  ("emails" .=) <$> _useEmails, ("ims" .=) <$> _useIms,-                  ("keywords" .=) <$> _useKeywords,-                  ("isAdmin" .=) <$> _useIsAdmin,-                  ("isEnrolledIn2Sv" .=) <$> _useIsEnrolledIn2Sv,-                  ("id" .=) <$> _useId,-                  ("organizations" .=) <$> _useOrganizations,-                  ("primaryEmail" .=) <$> _usePrimaryEmail,-                  ("isEnforcedIn2Sv" .=) <$> _useIsEnforcedIn2Sv,-                  ("notes" .=) <$> _useNotes,-                  ("isDelegatedAdmin" .=) <$> _useIsDelegatedAdmin,-                  ("locations" .=) <$> _useLocations,-                  ("archived" .=) <$> _useArchived,-                  ("isMailboxSetup" .=) <$> _useIsMailboxSetup,-                  ("customSchemas" .=) <$> _useCustomSchemas,-                  ("suspensionReason" .=) <$> _useSuspensionReason])---- | JSON request template for firing actions on ChromeOs Device in Directory--- Devices API.------ /See:/ 'chromeOSDeviceAction' smart constructor.-data ChromeOSDeviceAction = ChromeOSDeviceAction'-    { _codaAction            :: !(Maybe Text)-    , _codaDeprovisionReason :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ChromeOSDeviceAction' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'codaAction'------ * 'codaDeprovisionReason'-chromeOSDeviceAction-    :: ChromeOSDeviceAction-chromeOSDeviceAction =-    ChromeOSDeviceAction'-    { _codaAction = Nothing-    , _codaDeprovisionReason = Nothing-    }---- | Action to be taken on the ChromeOs Device-codaAction :: Lens' ChromeOSDeviceAction (Maybe Text)-codaAction-  = lens _codaAction (\ s a -> s{_codaAction = a})--codaDeprovisionReason :: Lens' ChromeOSDeviceAction (Maybe Text)-codaDeprovisionReason-  = lens _codaDeprovisionReason-      (\ s a -> s{_codaDeprovisionReason = a})--instance FromJSON ChromeOSDeviceAction where-        parseJSON-          = withObject "ChromeOSDeviceAction"-              (\ o ->-                 ChromeOSDeviceAction' <$>-                   (o .:? "action") <*> (o .:? "deprovisionReason"))--instance ToJSON ChromeOSDeviceAction where-        toJSON ChromeOSDeviceAction'{..}-          = object-              (catMaybes-                 [("action" .=) <$> _codaAction,-                  ("deprovisionReason" .=) <$> _codaDeprovisionReason])---- | JSON request template for renaming a feature.------ /See:/ 'featureRename' smart constructor.-newtype FeatureRename = FeatureRename'-    { _frNewName :: Maybe Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'FeatureRename' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'frNewName'-featureRename-    :: FeatureRename-featureRename =-    FeatureRename'-    { _frNewName = Nothing-    }---- | New name of the feature.-frNewName :: Lens' FeatureRename (Maybe Text)-frNewName-  = lens _frNewName (\ s a -> s{_frNewName = a})--instance FromJSON FeatureRename where-        parseJSON-          = withObject "FeatureRename"-              (\ o -> FeatureRename' <$> (o .:? "newName"))--instance ToJSON FeatureRename where-        toJSON FeatureRename'{..}-          = object (catMaybes [("newName" .=) <$> _frNewName])---- | JSON template for role resource in Directory API.------ /See:/ 'role'' smart constructor.-data Role = Role'-    { _rrEtag             :: !(Maybe Text)-    , _rrKind             :: !Text-    , _rrRoleName         :: !(Maybe Text)-    , _rrIsSystemRole     :: !(Maybe Bool)-    , _rrRoleId           :: !(Maybe (Textual Int64))-    , _rrRoleDescription  :: !(Maybe Text)-    , _rrIsSuperAdminRole :: !(Maybe Bool)-    , _rrRolePrivileges   :: !(Maybe [RoleRolePrivilegesItem])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Role' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rrEtag'------ * 'rrKind'------ * 'rrRoleName'------ * 'rrIsSystemRole'------ * 'rrRoleId'------ * 'rrRoleDescription'------ * 'rrIsSuperAdminRole'------ * 'rrRolePrivileges'-role'-    :: Role-role' =-    Role'-    { _rrEtag = Nothing-    , _rrKind = "admin#directory#role"-    , _rrRoleName = Nothing-    , _rrIsSystemRole = Nothing-    , _rrRoleId = Nothing-    , _rrRoleDescription = Nothing-    , _rrIsSuperAdminRole = Nothing-    , _rrRolePrivileges = Nothing-    }---- | ETag of the resource.-rrEtag :: Lens' Role (Maybe Text)-rrEtag = lens _rrEtag (\ s a -> s{_rrEtag = a})---- | The type of the API resource. This is always admin#directory#role.-rrKind :: Lens' Role Text-rrKind = lens _rrKind (\ s a -> s{_rrKind = a})---- | Name of the role.-rrRoleName :: Lens' Role (Maybe Text)-rrRoleName-  = lens _rrRoleName (\ s a -> s{_rrRoleName = a})---- | Returns true if this is a pre-defined system role.-rrIsSystemRole :: Lens' Role (Maybe Bool)-rrIsSystemRole-  = lens _rrIsSystemRole-      (\ s a -> s{_rrIsSystemRole = a})---- | ID of the role.-rrRoleId :: Lens' Role (Maybe Int64)-rrRoleId-  = lens _rrRoleId (\ s a -> s{_rrRoleId = a}) .-      mapping _Coerce---- | A short description of the role.-rrRoleDescription :: Lens' Role (Maybe Text)-rrRoleDescription-  = lens _rrRoleDescription-      (\ s a -> s{_rrRoleDescription = a})---- | Returns true if the role is a super admin role.-rrIsSuperAdminRole :: Lens' Role (Maybe Bool)-rrIsSuperAdminRole-  = lens _rrIsSuperAdminRole-      (\ s a -> s{_rrIsSuperAdminRole = a})---- | The set of privileges that are granted to this role.-rrRolePrivileges :: Lens' Role [RoleRolePrivilegesItem]-rrRolePrivileges-  = lens _rrRolePrivileges-      (\ s a -> s{_rrRolePrivileges = a})-      . _Default-      . _Coerce--instance FromJSON Role where-        parseJSON-          = withObject "Role"-              (\ o ->-                 Role' <$>-                   (o .:? "etag") <*>-                     (o .:? "kind" .!= "admin#directory#role")-                     <*> (o .:? "roleName")-                     <*> (o .:? "isSystemRole")-                     <*> (o .:? "roleId")-                     <*> (o .:? "roleDescription")-                     <*> (o .:? "isSuperAdminRole")-                     <*> (o .:? "rolePrivileges" .!= mempty))--instance ToJSON Role where-        toJSON Role'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _rrEtag, Just ("kind" .= _rrKind),-                  ("roleName" .=) <$> _rrRoleName,-                  ("isSystemRole" .=) <$> _rrIsSystemRole,-                  ("roleId" .=) <$> _rrRoleId,-                  ("roleDescription" .=) <$> _rrRoleDescription,-                  ("isSuperAdminRole" .=) <$> _rrIsSuperAdminRole,-                  ("rolePrivileges" .=) <$> _rrRolePrivileges])---- | JSON template for Customer Resource object in Directory API.------ /See:/ 'customer' smart constructor.-data Customer = Customer'-    { _cusEtag                 :: !(Maybe Text)-    , _cusKind                 :: !Text-    , _cusAlternateEmail       :: !(Maybe Text)-    , _cusCustomerDomain       :: !(Maybe Text)-    , _cusPhoneNumber          :: !(Maybe Text)-    , _cusLanguage             :: !(Maybe Text)-    , _cusId                   :: !(Maybe Text)-    , _cusCustomerCreationTime :: !(Maybe DateTime')-    , _cusPostalAddress        :: !(Maybe CustomerPostalAddress)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Customer' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cusEtag'------ * 'cusKind'------ * 'cusAlternateEmail'------ * 'cusCustomerDomain'------ * 'cusPhoneNumber'------ * 'cusLanguage'------ * 'cusId'------ * 'cusCustomerCreationTime'------ * 'cusPostalAddress'-customer-    :: Customer-customer =-    Customer'-    { _cusEtag = Nothing-    , _cusKind = "admin#directory#customer"-    , _cusAlternateEmail = Nothing-    , _cusCustomerDomain = Nothing-    , _cusPhoneNumber = Nothing-    , _cusLanguage = Nothing-    , _cusId = Nothing-    , _cusCustomerCreationTime = Nothing-    , _cusPostalAddress = Nothing-    }---- | ETag of the resource.-cusEtag :: Lens' Customer (Maybe Text)-cusEtag = lens _cusEtag (\ s a -> s{_cusEtag = a})---- | Identifies the resource as a customer. Value: admin#directory#customer-cusKind :: Lens' Customer Text-cusKind = lens _cusKind (\ s a -> s{_cusKind = a})---- | The customer\'s secondary contact email address. This email address--- cannot be on the same domain as the customerDomain-cusAlternateEmail :: Lens' Customer (Maybe Text)-cusAlternateEmail-  = lens _cusAlternateEmail-      (\ s a -> s{_cusAlternateEmail = a})---- | The customer\'s primary domain name string. Do not include the www--- prefix when creating a new customer.-cusCustomerDomain :: Lens' Customer (Maybe Text)-cusCustomerDomain-  = lens _cusCustomerDomain-      (\ s a -> s{_cusCustomerDomain = a})---- | The customer\'s contact phone number in E.164 format.-cusPhoneNumber :: Lens' Customer (Maybe Text)-cusPhoneNumber-  = lens _cusPhoneNumber-      (\ s a -> s{_cusPhoneNumber = a})---- | The customer\'s ISO 639-2 language code. The default value is en-US-cusLanguage :: Lens' Customer (Maybe Text)-cusLanguage-  = lens _cusLanguage (\ s a -> s{_cusLanguage = a})---- | The unique ID for the customer\'s G Suite account. (Readonly)-cusId :: Lens' Customer (Maybe Text)-cusId = lens _cusId (\ s a -> s{_cusId = a})---- | The customer\'s creation time (Readonly)-cusCustomerCreationTime :: Lens' Customer (Maybe UTCTime)-cusCustomerCreationTime-  = lens _cusCustomerCreationTime-      (\ s a -> s{_cusCustomerCreationTime = a})-      . mapping _DateTime---- | The customer\'s postal address information.-cusPostalAddress :: Lens' Customer (Maybe CustomerPostalAddress)-cusPostalAddress-  = lens _cusPostalAddress-      (\ s a -> s{_cusPostalAddress = a})--instance FromJSON Customer where-        parseJSON-          = withObject "Customer"-              (\ o ->-                 Customer' <$>-                   (o .:? "etag") <*>-                     (o .:? "kind" .!= "admin#directory#customer")-                     <*> (o .:? "alternateEmail")-                     <*> (o .:? "customerDomain")-                     <*> (o .:? "phoneNumber")-                     <*> (o .:? "language")-                     <*> (o .:? "id")-                     <*> (o .:? "customerCreationTime")-                     <*> (o .:? "postalAddress"))--instance ToJSON Customer where-        toJSON Customer'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _cusEtag, Just ("kind" .= _cusKind),-                  ("alternateEmail" .=) <$> _cusAlternateEmail,-                  ("customerDomain" .=) <$> _cusCustomerDomain,-                  ("phoneNumber" .=) <$> _cusPhoneNumber,-                  ("language" .=) <$> _cusLanguage,-                  ("id" .=) <$> _cusId,-                  ("customerCreationTime" .=) <$>-                    _cusCustomerCreationTime,-                  ("postalAddress" .=) <$> _cusPostalAddress])------- /See:/ 'mobileDeviceApplicationsItem' smart constructor.-data MobileDeviceApplicationsItem = MobileDeviceApplicationsItem'-    { _mdaiVersionCode :: !(Maybe (Textual Int32))-    , _mdaiVersionName :: !(Maybe Text)-    , _mdaiPackageName :: !(Maybe Text)-    , _mdaiDisplayName :: !(Maybe Text)-    , _mdaiPermission  :: !(Maybe [Text])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'MobileDeviceApplicationsItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mdaiVersionCode'------ * 'mdaiVersionName'------ * 'mdaiPackageName'------ * 'mdaiDisplayName'------ * 'mdaiPermission'-mobileDeviceApplicationsItem-    :: MobileDeviceApplicationsItem-mobileDeviceApplicationsItem =-    MobileDeviceApplicationsItem'-    { _mdaiVersionCode = Nothing-    , _mdaiVersionName = Nothing-    , _mdaiPackageName = Nothing-    , _mdaiDisplayName = Nothing-    , _mdaiPermission = Nothing-    }---- | Version code of application-mdaiVersionCode :: Lens' MobileDeviceApplicationsItem (Maybe Int32)-mdaiVersionCode-  = lens _mdaiVersionCode-      (\ s a -> s{_mdaiVersionCode = a})-      . mapping _Coerce---- | Version name of application-mdaiVersionName :: Lens' MobileDeviceApplicationsItem (Maybe Text)-mdaiVersionName-  = lens _mdaiVersionName-      (\ s a -> s{_mdaiVersionName = a})---- | Package name of application-mdaiPackageName :: Lens' MobileDeviceApplicationsItem (Maybe Text)-mdaiPackageName-  = lens _mdaiPackageName-      (\ s a -> s{_mdaiPackageName = a})---- | Display name of application-mdaiDisplayName :: Lens' MobileDeviceApplicationsItem (Maybe Text)-mdaiDisplayName-  = lens _mdaiDisplayName-      (\ s a -> s{_mdaiDisplayName = a})---- | List of Permissions for application-mdaiPermission :: Lens' MobileDeviceApplicationsItem [Text]-mdaiPermission-  = lens _mdaiPermission-      (\ s a -> s{_mdaiPermission = a})-      . _Default-      . _Coerce--instance FromJSON MobileDeviceApplicationsItem where-        parseJSON-          = withObject "MobileDeviceApplicationsItem"-              (\ o ->-                 MobileDeviceApplicationsItem' <$>-                   (o .:? "versionCode") <*> (o .:? "versionName") <*>-                     (o .:? "packageName")-                     <*> (o .:? "displayName")-                     <*> (o .:? "permission" .!= mempty))--instance ToJSON MobileDeviceApplicationsItem where-        toJSON MobileDeviceApplicationsItem'{..}-          = object-              (catMaybes-                 [("versionCode" .=) <$> _mdaiVersionCode,-                  ("versionName" .=) <$> _mdaiVersionName,-                  ("packageName" .=) <$> _mdaiPackageName,-                  ("displayName" .=) <$> _mdaiDisplayName,-                  ("permission" .=) <$> _mdaiPermission])------- /See:/ 'chromeOSDeviceDiskVolumeReportsItemVolumeInfoItem' smart constructor.-data ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem = ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem'-    { _coddvriviiStorageFree  :: !(Maybe (Textual Int64))-    , _coddvriviiStorageTotal :: !(Maybe (Textual Int64))-    , _coddvriviiVolumeId     :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'coddvriviiStorageFree'------ * 'coddvriviiStorageTotal'------ * 'coddvriviiVolumeId'-chromeOSDeviceDiskVolumeReportsItemVolumeInfoItem-    :: ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem-chromeOSDeviceDiskVolumeReportsItemVolumeInfoItem =-    ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem'-    { _coddvriviiStorageFree = Nothing-    , _coddvriviiStorageTotal = Nothing-    , _coddvriviiVolumeId = Nothing-    }---- | Free disk space [in bytes]-coddvriviiStorageFree :: Lens' ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem (Maybe Int64)-coddvriviiStorageFree-  = lens _coddvriviiStorageFree-      (\ s a -> s{_coddvriviiStorageFree = a})-      . mapping _Coerce---- | Total disk space [in bytes]-coddvriviiStorageTotal :: Lens' ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem (Maybe Int64)-coddvriviiStorageTotal-  = lens _coddvriviiStorageTotal-      (\ s a -> s{_coddvriviiStorageTotal = a})-      . mapping _Coerce---- | Volume id-coddvriviiVolumeId :: Lens' ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem (Maybe Text)-coddvriviiVolumeId-  = lens _coddvriviiVolumeId-      (\ s a -> s{_coddvriviiVolumeId = a})--instance FromJSON-         ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem-         where-        parseJSON-          = withObject-              "ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem"-              (\ o ->-                 ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem'-                   <$>-                   (o .:? "storageFree") <*> (o .:? "storageTotal") <*>-                     (o .:? "volumeId"))--instance ToJSON-         ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem-         where-        toJSON-          ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem'{..}-          = object-              (catMaybes-                 [("storageFree" .=) <$> _coddvriviiStorageFree,-                  ("storageTotal" .=) <$> _coddvriviiStorageTotal,-                  ("volumeId" .=) <$> _coddvriviiVolumeId])---- | JSON response template for List Organization Units operation in--- Directory API.------ /See:/ 'orgUnits' smart constructor.-data OrgUnits = OrgUnits'-    { _oEtag              :: !(Maybe Text)-    , _oKind              :: !Text-    , _oOrganizationUnits :: !(Maybe [OrgUnit])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'OrgUnits' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'oEtag'------ * 'oKind'------ * 'oOrganizationUnits'-orgUnits-    :: OrgUnits-orgUnits =-    OrgUnits'-    { _oEtag = Nothing-    , _oKind = "admin#directory#orgUnits"-    , _oOrganizationUnits = Nothing-    }---- | ETag of the resource.-oEtag :: Lens' OrgUnits (Maybe Text)-oEtag = lens _oEtag (\ s a -> s{_oEtag = a})---- | Kind of resource this is.-oKind :: Lens' OrgUnits Text-oKind = lens _oKind (\ s a -> s{_oKind = a})---- | List of user objects.-oOrganizationUnits :: Lens' OrgUnits [OrgUnit]-oOrganizationUnits-  = lens _oOrganizationUnits-      (\ s a -> s{_oOrganizationUnits = a})-      . _Default-      . _Coerce--instance FromJSON OrgUnits where-        parseJSON-          = withObject "OrgUnits"-              (\ o ->-                 OrgUnits' <$>-                   (o .:? "etag") <*>-                     (o .:? "kind" .!= "admin#directory#orgUnits")-                     <*> (o .:? "organizationUnits" .!= mempty))--instance ToJSON OrgUnits where-        toJSON OrgUnits'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _oEtag, Just ("kind" .= _oKind),-                  ("organizationUnits" .=) <$> _oOrganizationUnits])---- | JSON template for a POSIX account entry.------ /See:/ 'userSSHPublicKey' smart constructor.-data UserSSHPublicKey = UserSSHPublicKey'-    { _uspkFingerprint        :: !(Maybe Text)-    , _uspkKey                :: !(Maybe Text)-    , _uspkExpirationTimeUsec :: !(Maybe (Textual Int64))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserSSHPublicKey' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uspkFingerprint'------ * 'uspkKey'------ * 'uspkExpirationTimeUsec'-userSSHPublicKey-    :: UserSSHPublicKey-userSSHPublicKey =-    UserSSHPublicKey'-    { _uspkFingerprint = Nothing-    , _uspkKey = Nothing-    , _uspkExpirationTimeUsec = Nothing-    }---- | A SHA-256 fingerprint of the SSH public key. (Read-only)-uspkFingerprint :: Lens' UserSSHPublicKey (Maybe Text)-uspkFingerprint-  = lens _uspkFingerprint-      (\ s a -> s{_uspkFingerprint = a})---- | An SSH public key.-uspkKey :: Lens' UserSSHPublicKey (Maybe Text)-uspkKey = lens _uspkKey (\ s a -> s{_uspkKey = a})---- | An expiration time in microseconds since epoch.-uspkExpirationTimeUsec :: Lens' UserSSHPublicKey (Maybe Int64)-uspkExpirationTimeUsec-  = lens _uspkExpirationTimeUsec-      (\ s a -> s{_uspkExpirationTimeUsec = a})-      . mapping _Coerce--instance FromJSON UserSSHPublicKey where-        parseJSON-          = withObject "UserSSHPublicKey"-              (\ o ->-                 UserSSHPublicKey' <$>-                   (o .:? "fingerprint") <*> (o .:? "key") <*>-                     (o .:? "expirationTimeUsec"))--instance ToJSON UserSSHPublicKey where-        toJSON UserSSHPublicKey'{..}-          = object-              (catMaybes-                 [("fingerprint" .=) <$> _uspkFingerprint,-                  ("key" .=) <$> _uspkKey,-                  ("expirationTimeUsec" .=) <$>-                    _uspkExpirationTimeUsec])---- | JSON response template for List verification codes operation in--- Directory API.------ /See:/ 'verificationCodes' smart constructor.-data VerificationCodes = VerificationCodes'-    { _vEtag  :: !(Maybe Text)-    , _vKind  :: !Text-    , _vItems :: !(Maybe [VerificationCode])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'VerificationCodes' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vEtag'------ * 'vKind'------ * 'vItems'-verificationCodes-    :: VerificationCodes-verificationCodes =-    VerificationCodes'-    { _vEtag = Nothing-    , _vKind = "admin#directory#verificationCodesList"-    , _vItems = Nothing-    }---- | ETag of the resource.-vEtag :: Lens' VerificationCodes (Maybe Text)-vEtag = lens _vEtag (\ s a -> s{_vEtag = a})---- | The type of the resource. This is always--- admin#directory#verificationCodesList.-vKind :: Lens' VerificationCodes Text-vKind = lens _vKind (\ s a -> s{_vKind = a})---- | A list of verification code resources.-vItems :: Lens' VerificationCodes [VerificationCode]-vItems-  = lens _vItems (\ s a -> s{_vItems = a}) . _Default .-      _Coerce--instance FromJSON VerificationCodes where-        parseJSON-          = withObject "VerificationCodes"-              (\ o ->-                 VerificationCodes' <$>-                   (o .:? "etag") <*>-                     (o .:? "kind" .!=-                        "admin#directory#verificationCodesList")-                     <*> (o .:? "items" .!= mempty))--instance ToJSON VerificationCodes where-        toJSON VerificationCodes'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _vEtag, Just ("kind" .= _vKind),-                  ("items" .=) <$> _vItems])---- | JSON template for coordinates of a building in Directory API.------ /See:/ 'buildingCoordinates' smart constructor.-data BuildingCoordinates = BuildingCoordinates'-    { _bcLatitude  :: !(Maybe (Textual Double))-    , _bcLongitude :: !(Maybe (Textual Double))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'BuildingCoordinates' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bcLatitude'------ * 'bcLongitude'-buildingCoordinates-    :: BuildingCoordinates-buildingCoordinates =-    BuildingCoordinates'-    { _bcLatitude = Nothing-    , _bcLongitude = Nothing-    }---- | Latitude in decimal degrees.-bcLatitude :: Lens' BuildingCoordinates (Maybe Double)-bcLatitude-  = lens _bcLatitude (\ s a -> s{_bcLatitude = a}) .-      mapping _Coerce---- | Longitude in decimal degrees.-bcLongitude :: Lens' BuildingCoordinates (Maybe Double)-bcLongitude-  = lens _bcLongitude (\ s a -> s{_bcLongitude = a}) .-      mapping _Coerce--instance FromJSON BuildingCoordinates where-        parseJSON-          = withObject "BuildingCoordinates"-              (\ o ->-                 BuildingCoordinates' <$>-                   (o .:? "latitude") <*> (o .:? "longitude"))--instance ToJSON BuildingCoordinates where-        toJSON BuildingCoordinates'{..}-          = object-              (catMaybes-                 [("latitude" .=) <$> _bcLatitude,-                  ("longitude" .=) <$> _bcLongitude])---- | JSON template for a relation entry.------ /See:/ 'userRelation' smart constructor.-data UserRelation = UserRelation'-    { _urValue      :: !(Maybe Text)-    , _urType       :: !(Maybe Text)-    , _urCustomType :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserRelation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'urValue'------ * 'urType'------ * 'urCustomType'-userRelation-    :: UserRelation-userRelation =-    UserRelation'-    { _urValue = Nothing-    , _urType = Nothing-    , _urCustomType = Nothing-    }---- | The name of the relation.-urValue :: Lens' UserRelation (Maybe Text)-urValue = lens _urValue (\ s a -> s{_urValue = a})---- | The relation of the user. Some of the possible values are mother,--- father, sister, brother, manager, assistant, partner.-urType :: Lens' UserRelation (Maybe Text)-urType = lens _urType (\ s a -> s{_urType = a})---- | Custom Type.-urCustomType :: Lens' UserRelation (Maybe Text)-urCustomType-  = lens _urCustomType (\ s a -> s{_urCustomType = a})--instance FromJSON UserRelation where-        parseJSON-          = withObject "UserRelation"-              (\ o ->-                 UserRelation' <$>-                   (o .:? "value") <*> (o .:? "type") <*>-                     (o .:? "customType"))--instance ToJSON UserRelation where-        toJSON UserRelation'{..}-          = object-              (catMaybes-                 [("value" .=) <$> _urValue, ("type" .=) <$> _urType,-                  ("customType" .=) <$> _urCustomType])---- | JSON template for Trusted Apps response object of a user in Directory--- API.------ /See:/ 'trustedApps' smart constructor.-data TrustedApps = TrustedApps'-    { _taEtag          :: !(Maybe Text)-    , _taNextPageToken :: !(Maybe Text)-    , _taKind          :: !Text-    , _taTrustedApps   :: !(Maybe [TrustedAppId])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TrustedApps' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'taEtag'------ * 'taNextPageToken'------ * 'taKind'------ * 'taTrustedApps'-trustedApps-    :: TrustedApps-trustedApps =-    TrustedApps'-    { _taEtag = Nothing-    , _taNextPageToken = Nothing-    , _taKind = "admin#directory#trustedapplist"-    , _taTrustedApps = Nothing-    }---- | ETag of the resource.-taEtag :: Lens' TrustedApps (Maybe Text)-taEtag = lens _taEtag (\ s a -> s{_taEtag = a})--taNextPageToken :: Lens' TrustedApps (Maybe Text)-taNextPageToken-  = lens _taNextPageToken-      (\ s a -> s{_taNextPageToken = a})---- | Identifies the resource as trusted apps response.-taKind :: Lens' TrustedApps Text-taKind = lens _taKind (\ s a -> s{_taKind = a})---- | Trusted Apps list.-taTrustedApps :: Lens' TrustedApps [TrustedAppId]-taTrustedApps-  = lens _taTrustedApps-      (\ s a -> s{_taTrustedApps = a})-      . _Default-      . _Coerce--instance FromJSON TrustedApps where-        parseJSON-          = withObject "TrustedApps"-              (\ o ->-                 TrustedApps' <$>-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>-                     (o .:? "kind" .!= "admin#directory#trustedapplist")-                     <*> (o .:? "trustedApps" .!= mempty))--instance ToJSON TrustedApps where-        toJSON TrustedApps'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _taEtag,-                  ("nextPageToken" .=) <$> _taNextPageToken,-                  Just ("kind" .= _taKind),-                  ("trustedApps" .=) <$> _taTrustedApps])---- | JSON template for Feature List Response object in Directory API.------ /See:/ 'features' smart constructor.-data Features = Features'-    { _feaEtag          :: !(Maybe Text)-    , _feaNextPageToken :: !(Maybe Text)-    , _feaKind          :: !Text-    , _feaFeatures      :: !(Maybe [Feature])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Features' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'feaEtag'------ * 'feaNextPageToken'------ * 'feaKind'------ * 'feaFeatures'-features-    :: Features-features =-    Features'-    { _feaEtag = Nothing-    , _feaNextPageToken = Nothing-    , _feaKind = "admin#directory#resources#features#featuresList"-    , _feaFeatures = Nothing-    }---- | ETag of the resource.-feaEtag :: Lens' Features (Maybe Text)-feaEtag = lens _feaEtag (\ s a -> s{_feaEtag = 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.-feaNextPageToken :: Lens' Features (Maybe Text)-feaNextPageToken-  = lens _feaNextPageToken-      (\ s a -> s{_feaNextPageToken = a})---- | Kind of resource this is.-feaKind :: Lens' Features Text-feaKind = lens _feaKind (\ s a -> s{_feaKind = a})---- | The Features in this page of results.-feaFeatures :: Lens' Features [Feature]-feaFeatures-  = lens _feaFeatures (\ s a -> s{_feaFeatures = a}) .-      _Default-      . _Coerce--instance FromJSON Features where-        parseJSON-          = withObject "Features"-              (\ o ->-                 Features' <$>-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>-                     (o .:? "kind" .!=-                        "admin#directory#resources#features#featuresList")-                     <*> (o .:? "features" .!= mempty))--instance ToJSON Features where-        toJSON Features'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _feaEtag,-                  ("nextPageToken" .=) <$> _feaNextPageToken,-                  Just ("kind" .= _feaKind),-                  ("features" .=) <$> _feaFeatures])---- | Additional parameters controlling delivery channel behavior. Optional.------ /See:/ 'channelParams' smart constructor.-newtype ChannelParams = ChannelParams'-    { _cpAddtional :: HashMap Text Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ChannelParams' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cpAddtional'-channelParams-    :: HashMap Text Text -- ^ 'cpAddtional'-    -> ChannelParams-channelParams pCpAddtional_ =-    ChannelParams'-    { _cpAddtional = _Coerce # pCpAddtional_-    }---- | Declares a new parameter by name.-cpAddtional :: Lens' ChannelParams (HashMap Text Text)-cpAddtional-  = lens _cpAddtional (\ s a -> s{_cpAddtional = a}) .-      _Coerce--instance FromJSON ChannelParams where-        parseJSON-          = withObject "ChannelParams"-              (\ o -> ChannelParams' <$> (parseJSONObject o))--instance ToJSON ChannelParams where-        toJSON = toJSON . _cpAddtional---- | Trusted Platform Module (TPM) (Read-only)------ /See:/ 'chromeOSDeviceTpmVersionInfo' smart constructor.-data ChromeOSDeviceTpmVersionInfo = ChromeOSDeviceTpmVersionInfo'-    { _codtviVendorSpecific  :: !(Maybe Text)-    , _codtviManufacturer    :: !(Maybe Text)-    , _codtviSpecLevel       :: !(Maybe Text)-    , _codtviTpmModel        :: !(Maybe Text)-    , _codtviFamily          :: !(Maybe Text)-    , _codtviFirmwareVersion :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ChromeOSDeviceTpmVersionInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'codtviVendorSpecific'------ * 'codtviManufacturer'------ * 'codtviSpecLevel'------ * 'codtviTpmModel'------ * 'codtviFamily'------ * 'codtviFirmwareVersion'-chromeOSDeviceTpmVersionInfo-    :: ChromeOSDeviceTpmVersionInfo-chromeOSDeviceTpmVersionInfo =-    ChromeOSDeviceTpmVersionInfo'-    { _codtviVendorSpecific = Nothing-    , _codtviManufacturer = Nothing-    , _codtviSpecLevel = Nothing-    , _codtviTpmModel = Nothing-    , _codtviFamily = Nothing-    , _codtviFirmwareVersion = Nothing-    }---- | Vendor-specific information such as Vendor ID.-codtviVendorSpecific :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)-codtviVendorSpecific-  = lens _codtviVendorSpecific-      (\ s a -> s{_codtviVendorSpecific = a})---- | TPM manufacturer code.-codtviManufacturer :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)-codtviManufacturer-  = lens _codtviManufacturer-      (\ s a -> s{_codtviManufacturer = a})---- | TPM specification level.-codtviSpecLevel :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)-codtviSpecLevel-  = lens _codtviSpecLevel-      (\ s a -> s{_codtviSpecLevel = a})---- | TPM model number.-codtviTpmModel :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)-codtviTpmModel-  = lens _codtviTpmModel-      (\ s a -> s{_codtviTpmModel = a})---- | TPM family.-codtviFamily :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)-codtviFamily-  = lens _codtviFamily (\ s a -> s{_codtviFamily = a})---- | TPM firmware version.-codtviFirmwareVersion :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)-codtviFirmwareVersion-  = lens _codtviFirmwareVersion-      (\ s a -> s{_codtviFirmwareVersion = a})--instance FromJSON ChromeOSDeviceTpmVersionInfo where-        parseJSON-          = withObject "ChromeOSDeviceTpmVersionInfo"-              (\ o ->-                 ChromeOSDeviceTpmVersionInfo' <$>-                   (o .:? "vendorSpecific") <*> (o .:? "manufacturer")-                     <*> (o .:? "specLevel")-                     <*> (o .:? "tpmModel")-                     <*> (o .:? "family")-                     <*> (o .:? "firmwareVersion"))--instance ToJSON ChromeOSDeviceTpmVersionInfo where-        toJSON ChromeOSDeviceTpmVersionInfo'{..}-          = object-              (catMaybes-                 [("vendorSpecific" .=) <$> _codtviVendorSpecific,-                  ("manufacturer" .=) <$> _codtviManufacturer,-                  ("specLevel" .=) <$> _codtviSpecLevel,-                  ("tpmModel" .=) <$> _codtviTpmModel,-                  ("family" .=) <$> _codtviFamily,-                  ("firmwareVersion" .=) <$> _codtviFirmwareVersion])---- | JSON template for an organization entry.------ /See:/ 'userOrganization' smart constructor.-data UserOrganization = UserOrganization'-    { _uoDePartment         :: !(Maybe Text)-    , _uoLocation           :: !(Maybe Text)-    , _uoCostCenter         :: !(Maybe Text)-    , _uoDomain             :: !(Maybe Text)-    , _uoSymbol             :: !(Maybe Text)-    , _uoPrimary            :: !(Maybe Bool)-    , _uoName               :: !(Maybe Text)-    , _uoFullTimeEquivalent :: !(Maybe (Textual Int32))-    , _uoTitle              :: !(Maybe Text)-    , _uoType               :: !(Maybe Text)-    , _uoCustomType         :: !(Maybe Text)-    , _uoDescription        :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserOrganization' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uoDePartment'------ * 'uoLocation'------ * 'uoCostCenter'------ * 'uoDomain'------ * 'uoSymbol'------ * 'uoPrimary'------ * 'uoName'------ * 'uoFullTimeEquivalent'------ * 'uoTitle'------ * 'uoType'------ * 'uoCustomType'------ * 'uoDescription'-userOrganization-    :: UserOrganization-userOrganization =-    UserOrganization'-    { _uoDePartment = Nothing-    , _uoLocation = Nothing-    , _uoCostCenter = Nothing-    , _uoDomain = Nothing-    , _uoSymbol = Nothing-    , _uoPrimary = Nothing-    , _uoName = Nothing-    , _uoFullTimeEquivalent = Nothing-    , _uoTitle = Nothing-    , _uoType = Nothing-    , _uoCustomType = Nothing-    , _uoDescription = Nothing-    }---- | Department within the organization.-uoDePartment :: Lens' UserOrganization (Maybe Text)-uoDePartment-  = lens _uoDePartment (\ s a -> s{_uoDePartment = a})---- | Location of the organization. This need not be fully qualified address.-uoLocation :: Lens' UserOrganization (Maybe Text)-uoLocation-  = lens _uoLocation (\ s a -> s{_uoLocation = a})---- | The cost center of the users department.-uoCostCenter :: Lens' UserOrganization (Maybe Text)-uoCostCenter-  = lens _uoCostCenter (\ s a -> s{_uoCostCenter = a})---- | The domain to which the organization belongs to.-uoDomain :: Lens' UserOrganization (Maybe Text)-uoDomain = lens _uoDomain (\ s a -> s{_uoDomain = a})---- | Symbol of the organization.-uoSymbol :: Lens' UserOrganization (Maybe Text)-uoSymbol = lens _uoSymbol (\ s a -> s{_uoSymbol = a})---- | If it user\'s primary organization.-uoPrimary :: Lens' UserOrganization (Maybe Bool)-uoPrimary-  = lens _uoPrimary (\ s a -> s{_uoPrimary = a})---- | Name of the organization-uoName :: Lens' UserOrganization (Maybe Text)-uoName = lens _uoName (\ s a -> s{_uoName = a})---- | The full-time equivalent percent within the organization (100000 =--- 100%).-uoFullTimeEquivalent :: Lens' UserOrganization (Maybe Int32)-uoFullTimeEquivalent-  = lens _uoFullTimeEquivalent-      (\ s a -> s{_uoFullTimeEquivalent = a})-      . mapping _Coerce---- | Title (designation) of the user in the organization.-uoTitle :: Lens' UserOrganization (Maybe Text)-uoTitle = lens _uoTitle (\ s a -> s{_uoTitle = a})---- | Each entry can have a type which indicates standard types of that entry.--- For example organization could be of school, work etc. In addition to--- the standard type, an entry can have a custom type and can give it any--- name. Such types should have the CUSTOM value as type and also have a--- CustomType value.-uoType :: Lens' UserOrganization (Maybe Text)-uoType = lens _uoType (\ s a -> s{_uoType = a})---- | Custom type.-uoCustomType :: Lens' UserOrganization (Maybe Text)-uoCustomType-  = lens _uoCustomType (\ s a -> s{_uoCustomType = a})---- | Description of the organization.-uoDescription :: Lens' UserOrganization (Maybe Text)-uoDescription-  = lens _uoDescription-      (\ s a -> s{_uoDescription = a})--instance FromJSON UserOrganization where-        parseJSON-          = withObject "UserOrganization"-              (\ o ->-                 UserOrganization' <$>-                   (o .:? "department") <*> (o .:? "location") <*>-                     (o .:? "costCenter")-                     <*> (o .:? "domain")-                     <*> (o .:? "symbol")-                     <*> (o .:? "primary")-                     <*> (o .:? "name")-                     <*> (o .:? "fullTimeEquivalent")-                     <*> (o .:? "title")-                     <*> (o .:? "type")-                     <*> (o .:? "customType")-                     <*> (o .:? "description"))--instance ToJSON UserOrganization where-        toJSON UserOrganization'{..}-          = object-              (catMaybes-                 [("department" .=) <$> _uoDePartment,-                  ("location" .=) <$> _uoLocation,-                  ("costCenter" .=) <$> _uoCostCenter,-                  ("domain" .=) <$> _uoDomain,-                  ("symbol" .=) <$> _uoSymbol,-                  ("primary" .=) <$> _uoPrimary,-                  ("name" .=) <$> _uoName,-                  ("fullTimeEquivalent" .=) <$> _uoFullTimeEquivalent,-                  ("title" .=) <$> _uoTitle, ("type" .=) <$> _uoType,-                  ("customType" .=) <$> _uoCustomType,-                  ("description" .=) <$> _uoDescription])---- | JSON template for a website entry.------ /See:/ 'userWebsite' smart constructor.-data UserWebsite = UserWebsite'-    { _uwValue      :: !(Maybe Text)-    , _uwPrimary    :: !(Maybe Bool)-    , _uwType       :: !(Maybe Text)-    , _uwCustomType :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserWebsite' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uwValue'------ * 'uwPrimary'------ * 'uwType'------ * 'uwCustomType'-userWebsite-    :: UserWebsite-userWebsite =-    UserWebsite'-    { _uwValue = Nothing-    , _uwPrimary = Nothing-    , _uwType = Nothing-    , _uwCustomType = Nothing-    }---- | Website.-uwValue :: Lens' UserWebsite (Maybe Text)-uwValue = lens _uwValue (\ s a -> s{_uwValue = a})---- | If this is user\'s primary website or not.-uwPrimary :: Lens' UserWebsite (Maybe Bool)-uwPrimary-  = lens _uwPrimary (\ s a -> s{_uwPrimary = a})---- | Each entry can have a type which indicates standard types of that entry.--- For example website could be of home, work, blog etc. In addition to the--- standard type, an entry can have a custom type and can give it any name.--- Such types should have the CUSTOM value as type and also have a--- customType value.-uwType :: Lens' UserWebsite (Maybe Text)-uwType = lens _uwType (\ s a -> s{_uwType = a})---- | Custom Type.-uwCustomType :: Lens' UserWebsite (Maybe Text)-uwCustomType-  = lens _uwCustomType (\ s a -> s{_uwCustomType = a})--instance FromJSON UserWebsite where-        parseJSON-          = withObject "UserWebsite"-              (\ o ->-                 UserWebsite' <$>-                   (o .:? "value") <*> (o .:? "primary") <*>-                     (o .:? "type")-                     <*> (o .:? "customType"))--instance ToJSON UserWebsite where-        toJSON UserWebsite'{..}-          = object-              (catMaybes-                 [("value" .=) <$> _uwValue,-                  ("primary" .=) <$> _uwPrimary,-                  ("type" .=) <$> _uwType,-                  ("customType" .=) <$> _uwCustomType])------- /See:/ 'chromeOSDeviceActiveTimeRangesItem' smart constructor.-data ChromeOSDeviceActiveTimeRangesItem = ChromeOSDeviceActiveTimeRangesItem'-    { _codatriDate       :: !(Maybe Date')-    , _codatriActiveTime :: !(Maybe (Textual Int32))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ChromeOSDeviceActiveTimeRangesItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'codatriDate'------ * 'codatriActiveTime'-chromeOSDeviceActiveTimeRangesItem-    :: ChromeOSDeviceActiveTimeRangesItem-chromeOSDeviceActiveTimeRangesItem =-    ChromeOSDeviceActiveTimeRangesItem'-    { _codatriDate = Nothing-    , _codatriActiveTime = Nothing-    }---- | Date of usage-codatriDate :: Lens' ChromeOSDeviceActiveTimeRangesItem (Maybe Day)-codatriDate-  = lens _codatriDate (\ s a -> s{_codatriDate = a}) .-      mapping _Date---- | Duration in milliseconds-codatriActiveTime :: Lens' ChromeOSDeviceActiveTimeRangesItem (Maybe Int32)-codatriActiveTime-  = lens _codatriActiveTime-      (\ s a -> s{_codatriActiveTime = a})-      . mapping _Coerce--instance FromJSON ChromeOSDeviceActiveTimeRangesItem-         where-        parseJSON-          = withObject "ChromeOSDeviceActiveTimeRangesItem"-              (\ o ->-                 ChromeOSDeviceActiveTimeRangesItem' <$>-                   (o .:? "date") <*> (o .:? "activeTime"))--instance ToJSON ChromeOSDeviceActiveTimeRangesItem-         where-        toJSON ChromeOSDeviceActiveTimeRangesItem'{..}-          = object-              (catMaybes-                 [("date" .=) <$> _codatriDate,-                  ("activeTime" .=) <$> _codatriActiveTime])---- | JSON template for an email.------ /See:/ 'userEmail' smart constructor.-data UserEmail = UserEmail'-    { _ueAddress    :: !(Maybe Text)-    , _uePrimary    :: !(Maybe Bool)-    , _ueType       :: !(Maybe Text)-    , _ueCustomType :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserEmail' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ueAddress'------ * 'uePrimary'------ * 'ueType'------ * 'ueCustomType'-userEmail-    :: UserEmail-userEmail =-    UserEmail'-    { _ueAddress = Nothing-    , _uePrimary = Nothing-    , _ueType = Nothing-    , _ueCustomType = Nothing-    }---- | Email id of the user.-ueAddress :: Lens' UserEmail (Maybe Text)-ueAddress-  = lens _ueAddress (\ s a -> s{_ueAddress = a})---- | If this is user\'s primary email. Only one entry could be marked as--- primary.-uePrimary :: Lens' UserEmail (Maybe Bool)-uePrimary-  = lens _uePrimary (\ s a -> s{_uePrimary = a})---- | Each entry can have a type which indicates standard types of that entry.--- For example email could be of home, work etc. In addition to the--- standard type, an entry can have a custom type and can take any value--- Such types should have the CUSTOM value as type and also have a--- customType value.-ueType :: Lens' UserEmail (Maybe Text)-ueType = lens _ueType (\ s a -> s{_ueType = a})---- | Custom Type.-ueCustomType :: Lens' UserEmail (Maybe Text)-ueCustomType-  = lens _ueCustomType (\ s a -> s{_ueCustomType = a})--instance FromJSON UserEmail where-        parseJSON-          = withObject "UserEmail"-              (\ o ->-                 UserEmail' <$>-                   (o .:? "address") <*> (o .:? "primary") <*>-                     (o .:? "type")-                     <*> (o .:? "customType"))--instance ToJSON UserEmail where-        toJSON UserEmail'{..}-          = object-              (catMaybes-                 [("address" .=) <$> _ueAddress,-                  ("primary" .=) <$> _uePrimary,-                  ("type" .=) <$> _ueType,-                  ("customType" .=) <$> _ueCustomType])---- | JSON template for a phone entry.------ /See:/ 'userPhone' smart constructor.-data UserPhone = UserPhone'-    { _upValue      :: !(Maybe Text)-    , _upPrimary    :: !(Maybe Bool)-    , _upType       :: !(Maybe Text)-    , _upCustomType :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserPhone' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'upValue'------ * 'upPrimary'------ * 'upType'------ * 'upCustomType'-userPhone-    :: UserPhone-userPhone =-    UserPhone'-    { _upValue = Nothing-    , _upPrimary = Nothing-    , _upType = Nothing-    , _upCustomType = Nothing-    }---- | Phone number.-upValue :: Lens' UserPhone (Maybe Text)-upValue = lens _upValue (\ s a -> s{_upValue = a})---- | If this is user\'s primary phone or not.-upPrimary :: Lens' UserPhone (Maybe Bool)-upPrimary-  = lens _upPrimary (\ s a -> s{_upPrimary = a})---- | Each entry can have a type which indicates standard types of that entry.--- For example phone could be of home_fax, work, mobile etc. In addition to--- the standard type, an entry can have a custom type and can give it any--- name. Such types should have the CUSTOM value as type and also have a--- customType value.-upType :: Lens' UserPhone (Maybe Text)-upType = lens _upType (\ s a -> s{_upType = a})---- | Custom Type.-upCustomType :: Lens' UserPhone (Maybe Text)-upCustomType-  = lens _upCustomType (\ s a -> s{_upCustomType = a})--instance FromJSON UserPhone where-        parseJSON-          = withObject "UserPhone"-              (\ o ->-                 UserPhone' <$>-                   (o .:? "value") <*> (o .:? "primary") <*>-                     (o .:? "type")-                     <*> (o .:? "customType"))--instance ToJSON UserPhone where-        toJSON UserPhone'{..}-          = object-              (catMaybes-                 [("value" .=) <$> _upValue,-                  ("primary" .=) <$> _upPrimary,-                  ("type" .=) <$> _upType,-                  ("customType" .=) <$> _upCustomType])---- | JSON template for Photo object in Directory API.------ /See:/ 'userPhoto' smart constructor.-data UserPhoto = UserPhoto'-    { _upPhotoData    :: !(Maybe Bytes)-    , _upEtag         :: !(Maybe Text)-    , _upHeight       :: !(Maybe (Textual Int32))-    , _upKind         :: !Text-    , _upWidth        :: !(Maybe (Textual Int32))-    , _upMimeType     :: !(Maybe Text)-    , _upId           :: !(Maybe Text)-    , _upPrimaryEmail :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserPhoto' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'upPhotoData'------ * 'upEtag'------ * 'upHeight'------ * 'upKind'------ * 'upWidth'------ * 'upMimeType'------ * 'upId'------ * 'upPrimaryEmail'-userPhoto-    :: UserPhoto-userPhoto =-    UserPhoto'-    { _upPhotoData = Nothing-    , _upEtag = Nothing-    , _upHeight = Nothing-    , _upKind = "admin#directory#user#photo"-    , _upWidth = Nothing-    , _upMimeType = Nothing-    , _upId = Nothing-    , _upPrimaryEmail = Nothing-    }---- | Base64 encoded photo data-upPhotoData :: Lens' UserPhoto (Maybe ByteString)-upPhotoData-  = lens _upPhotoData (\ s a -> s{_upPhotoData = a}) .-      mapping _Bytes---- | ETag of the resource.-upEtag :: Lens' UserPhoto (Maybe Text)-upEtag = lens _upEtag (\ s a -> s{_upEtag = a})---- | Height in pixels of the photo-upHeight :: Lens' UserPhoto (Maybe Int32)-upHeight-  = lens _upHeight (\ s a -> s{_upHeight = a}) .-      mapping _Coerce---- | Kind of resource this is.-upKind :: Lens' UserPhoto Text-upKind = lens _upKind (\ s a -> s{_upKind = a})---- | Width in pixels of the photo-upWidth :: Lens' UserPhoto (Maybe Int32)-upWidth-  = lens _upWidth (\ s a -> s{_upWidth = a}) .-      mapping _Coerce---- | Mime Type of the photo-upMimeType :: Lens' UserPhoto (Maybe Text)-upMimeType-  = lens _upMimeType (\ s a -> s{_upMimeType = a})---- | Unique identifier of User (Read-only)-upId :: Lens' UserPhoto (Maybe Text)-upId = lens _upId (\ s a -> s{_upId = a})---- | Primary email of User (Read-only)-upPrimaryEmail :: Lens' UserPhoto (Maybe Text)-upPrimaryEmail-  = lens _upPrimaryEmail-      (\ s a -> s{_upPrimaryEmail = a})--instance FromJSON UserPhoto where-        parseJSON-          = withObject "UserPhoto"-              (\ o ->-                 UserPhoto' <$>-                   (o .:? "photoData") <*> (o .:? "etag") <*>-                     (o .:? "height")-                     <*> (o .:? "kind" .!= "admin#directory#user#photo")-                     <*> (o .:? "width")-                     <*> (o .:? "mimeType")-                     <*> (o .:? "id")-                     <*> (o .:? "primaryEmail"))--instance ToJSON UserPhoto where-        toJSON UserPhoto'{..}-          = object-              (catMaybes-                 [("photoData" .=) <$> _upPhotoData,-                  ("etag" .=) <$> _upEtag, ("height" .=) <$> _upHeight,-                  Just ("kind" .= _upKind), ("width" .=) <$> _upWidth,-                  ("mimeType" .=) <$> _upMimeType, ("id" .=) <$> _upId,-                  ("primaryEmail" .=) <$> _upPrimaryEmail])------- /See:/ 'chromeOSDeviceSystemRamFreeReportsItem' smart constructor.-data ChromeOSDeviceSystemRamFreeReportsItem = ChromeOSDeviceSystemRamFreeReportsItem'-    { _codsrfriReportTime        :: !(Maybe DateTime')-    , _codsrfriSystemRamFreeInfo :: !(Maybe [Textual Int64])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ChromeOSDeviceSystemRamFreeReportsItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'codsrfriReportTime'------ * 'codsrfriSystemRamFreeInfo'-chromeOSDeviceSystemRamFreeReportsItem-    :: ChromeOSDeviceSystemRamFreeReportsItem-chromeOSDeviceSystemRamFreeReportsItem =-    ChromeOSDeviceSystemRamFreeReportsItem'-    { _codsrfriReportTime = Nothing-    , _codsrfriSystemRamFreeInfo = Nothing-    }---- | Date and time the report was received.-codsrfriReportTime :: Lens' ChromeOSDeviceSystemRamFreeReportsItem (Maybe UTCTime)-codsrfriReportTime-  = lens _codsrfriReportTime-      (\ s a -> s{_codsrfriReportTime = a})-      . mapping _DateTime--codsrfriSystemRamFreeInfo :: Lens' ChromeOSDeviceSystemRamFreeReportsItem [Int64]-codsrfriSystemRamFreeInfo-  = lens _codsrfriSystemRamFreeInfo-      (\ s a -> s{_codsrfriSystemRamFreeInfo = a})-      . _Default-      . _Coerce--instance FromJSON-         ChromeOSDeviceSystemRamFreeReportsItem where-        parseJSON-          = withObject "ChromeOSDeviceSystemRamFreeReportsItem"-              (\ o ->-                 ChromeOSDeviceSystemRamFreeReportsItem' <$>-                   (o .:? "reportTime") <*>-                     (o .:? "systemRamFreeInfo" .!= mempty))--instance ToJSON-         ChromeOSDeviceSystemRamFreeReportsItem where-        toJSON ChromeOSDeviceSystemRamFreeReportsItem'{..}-          = object-              (catMaybes-                 [("reportTime" .=) <$> _codsrfriReportTime,-                  ("systemRamFreeInfo" .=) <$>-                    _codsrfriSystemRamFreeInfo])---- | JSON template for a POSIX account entry. Description of the field--- family: go\/fbs-posix.------ /See:/ 'userPosixAccount' smart constructor.-data UserPosixAccount = UserPosixAccount'-    { _upaGecos               :: !(Maybe Text)-    , _upaUid                 :: !(Maybe (Textual Word64))-    , _upaUsername            :: !(Maybe Text)-    , _upaShell               :: !(Maybe Text)-    , _upaPrimary             :: !(Maybe Bool)-    , _upaAccountId           :: !(Maybe Text)-    , _upaGid                 :: !(Maybe (Textual Word64))-    , _upaOperatingSystemType :: !(Maybe Text)-    , _upaSystemId            :: !(Maybe Text)-    , _upaHomeDirectory       :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserPosixAccount' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'upaGecos'------ * 'upaUid'------ * 'upaUsername'------ * 'upaShell'------ * 'upaPrimary'------ * 'upaAccountId'------ * 'upaGid'------ * 'upaOperatingSystemType'------ * 'upaSystemId'------ * 'upaHomeDirectory'-userPosixAccount-    :: UserPosixAccount-userPosixAccount =-    UserPosixAccount'-    { _upaGecos = Nothing-    , _upaUid = Nothing-    , _upaUsername = Nothing-    , _upaShell = Nothing-    , _upaPrimary = Nothing-    , _upaAccountId = Nothing-    , _upaGid = Nothing-    , _upaOperatingSystemType = Nothing-    , _upaSystemId = Nothing-    , _upaHomeDirectory = Nothing-    }---- | The GECOS (user information) for this account.-upaGecos :: Lens' UserPosixAccount (Maybe Text)-upaGecos = lens _upaGecos (\ s a -> s{_upaGecos = a})---- | The POSIX compliant user ID.-upaUid :: Lens' UserPosixAccount (Maybe Word64)-upaUid-  = lens _upaUid (\ s a -> s{_upaUid = a}) .-      mapping _Coerce---- | The username of the account.-upaUsername :: Lens' UserPosixAccount (Maybe Text)-upaUsername-  = lens _upaUsername (\ s a -> s{_upaUsername = a})---- | The path to the login shell for this account.-upaShell :: Lens' UserPosixAccount (Maybe Text)-upaShell = lens _upaShell (\ s a -> s{_upaShell = a})---- | If this is user\'s primary account within the SystemId.-upaPrimary :: Lens' UserPosixAccount (Maybe Bool)-upaPrimary-  = lens _upaPrimary (\ s a -> s{_upaPrimary = a})---- | A POSIX account field identifier. (Read-only)-upaAccountId :: Lens' UserPosixAccount (Maybe Text)-upaAccountId-  = lens _upaAccountId (\ s a -> s{_upaAccountId = a})---- | The default group ID.-upaGid :: Lens' UserPosixAccount (Maybe Word64)-upaGid-  = lens _upaGid (\ s a -> s{_upaGid = a}) .-      mapping _Coerce---- | The operating system type for this account.-upaOperatingSystemType :: Lens' UserPosixAccount (Maybe Text)-upaOperatingSystemType-  = lens _upaOperatingSystemType-      (\ s a -> s{_upaOperatingSystemType = a})---- | System identifier for which account Username or Uid apply to.-upaSystemId :: Lens' UserPosixAccount (Maybe Text)-upaSystemId-  = lens _upaSystemId (\ s a -> s{_upaSystemId = a})---- | The path to the home directory for this account.-upaHomeDirectory :: Lens' UserPosixAccount (Maybe Text)-upaHomeDirectory-  = lens _upaHomeDirectory-      (\ s a -> s{_upaHomeDirectory = a})--instance FromJSON UserPosixAccount where-        parseJSON-          = withObject "UserPosixAccount"-              (\ o ->-                 UserPosixAccount' <$>-                   (o .:? "gecos") <*> (o .:? "uid") <*>-                     (o .:? "username")-                     <*> (o .:? "shell")-                     <*> (o .:? "primary")-                     <*> (o .:? "accountId")-                     <*> (o .:? "gid")-                     <*> (o .:? "operatingSystemType")-                     <*> (o .:? "systemId")-                     <*> (o .:? "homeDirectory"))--instance ToJSON UserPosixAccount where-        toJSON UserPosixAccount'{..}-          = object-              (catMaybes-                 [("gecos" .=) <$> _upaGecos, ("uid" .=) <$> _upaUid,-                  ("username" .=) <$> _upaUsername,-                  ("shell" .=) <$> _upaShell,-                  ("primary" .=) <$> _upaPrimary,-                  ("accountId" .=) <$> _upaAccountId,-                  ("gid" .=) <$> _upaGid,-                  ("operatingSystemType" .=) <$>-                    _upaOperatingSystemType,-                  ("systemId" .=) <$> _upaSystemId,-                  ("homeDirectory" .=) <$> _upaHomeDirectory])---- | JSON template for a \"feature instance\".------ /See:/ 'featureInstance' smart constructor.-newtype FeatureInstance = FeatureInstance'-    { _fiFeature :: Maybe Feature-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'FeatureInstance' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'fiFeature'-featureInstance-    :: FeatureInstance-featureInstance =-    FeatureInstance'-    { _fiFeature = Nothing-    }---- | The feature that this is an instance of. A calendar resource may have--- multiple instances of a feature.-fiFeature :: Lens' FeatureInstance (Maybe Feature)-fiFeature-  = lens _fiFeature (\ s a -> s{_fiFeature = a})--instance FromJSON FeatureInstance where-        parseJSON-          = withObject "FeatureInstance"-              (\ o -> FeatureInstance' <$> (o .:? "feature"))--instance ToJSON FeatureInstance where-        toJSON FeatureInstance'{..}-          = object (catMaybes [("feature" .=) <$> _fiFeature])---- | JSON template for Mobile Device resource in Directory API.------ /See:/ 'mobileDevice' smart constructor.-data MobileDevice = MobileDevice'-    { _mobEmail                          :: !(Maybe [Text])-    , _mobStatus                         :: !(Maybe Text)-    , _mobPrivilege                      :: !(Maybe Text)-    , _mobEtag                           :: !(Maybe Text)-    , _mobResourceId                     :: !(Maybe Text)-    , _mobManufacturer                   :: !(Maybe Text)-    , _mobBuildNumber                    :: !(Maybe Text)-    , _mobManagedAccountIsOnOwnerProFile :: !(Maybe Bool)-    , _mobLastSync                       :: !(Maybe DateTime')-    , _mobOtherAccountsInfo              :: !(Maybe [Text])-    , _mobKind                           :: !Text-    , _mobAdbStatus                      :: !(Maybe Bool)-    , _mobReleaseVersion                 :: !(Maybe Text)-    , _mobBrand                          :: !(Maybe Text)-    , _mobSecurityPatchLevel             :: !(Maybe (Textual Int64))-    , _mobNetworkOperator                :: !(Maybe Text)-    , _mobKernelVersion                  :: !(Maybe Text)-    , _mobOS                             :: !(Maybe Text)-    , _mobName                           :: !(Maybe [Text])-    , _mobModel                          :: !(Maybe Text)-    , _mobDeveloperOptionsStatus         :: !(Maybe Bool)-    , _mobUnknownSourcesStatus           :: !(Maybe Bool)-    , _mobMeid                           :: !(Maybe Text)-    , _mobBootLoaderVersion              :: !(Maybe Text)-    , _mobDeviceId                       :: !(Maybe Text)-    , _mobFirstSync                      :: !(Maybe DateTime')-    , _mobUserAgent                      :: !(Maybe Text)-    , _mobImei                           :: !(Maybe Text)-    , _mobType                           :: !(Maybe Text)-    , _mobWifiMACAddress                 :: !(Maybe Text)-    , _mobEncryptionStatus               :: !(Maybe Text)-    , _mobSerialNumber                   :: !(Maybe Text)-    , _mobDevicePasswordStatus           :: !(Maybe Text)-    , _mobHardwareId                     :: !(Maybe Text)-    , _mobBasebandVersion                :: !(Maybe Text)-    , _mobSupportsWorkProFile            :: !(Maybe Bool)-    , _mobHardware                       :: !(Maybe Text)-    , _mobDeviceCompromisedStatus        :: !(Maybe Text)-    , _mobApplications                   :: !(Maybe [MobileDeviceApplicationsItem])-    , _mobDefaultLanguage                :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'MobileDevice' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mobEmail'------ * 'mobStatus'------ * 'mobPrivilege'------ * 'mobEtag'------ * 'mobResourceId'------ * 'mobManufacturer'------ * 'mobBuildNumber'------ * 'mobManagedAccountIsOnOwnerProFile'------ * 'mobLastSync'------ * 'mobOtherAccountsInfo'------ * 'mobKind'------ * 'mobAdbStatus'------ * 'mobReleaseVersion'------ * 'mobBrand'------ * 'mobSecurityPatchLevel'------ * 'mobNetworkOperator'------ * 'mobKernelVersion'------ * 'mobOS'------ * 'mobName'------ * 'mobModel'------ * 'mobDeveloperOptionsStatus'------ * 'mobUnknownSourcesStatus'------ * 'mobMeid'------ * 'mobBootLoaderVersion'------ * 'mobDeviceId'------ * 'mobFirstSync'------ * 'mobUserAgent'------ * 'mobImei'------ * 'mobType'------ * 'mobWifiMACAddress'------ * 'mobEncryptionStatus'------ * 'mobSerialNumber'------ * 'mobDevicePasswordStatus'------ * 'mobHardwareId'------ * 'mobBasebandVersion'------ * 'mobSupportsWorkProFile'------ * 'mobHardware'------ * 'mobDeviceCompromisedStatus'------ * 'mobApplications'------ * 'mobDefaultLanguage'-mobileDevice-    :: MobileDevice-mobileDevice =-    MobileDevice'-    { _mobEmail = Nothing-    , _mobStatus = Nothing-    , _mobPrivilege = Nothing-    , _mobEtag = Nothing-    , _mobResourceId = Nothing-    , _mobManufacturer = Nothing-    , _mobBuildNumber = Nothing-    , _mobManagedAccountIsOnOwnerProFile = Nothing-    , _mobLastSync = Nothing-    , _mobOtherAccountsInfo = Nothing-    , _mobKind = "admin#directory#mobiledevice"-    , _mobAdbStatus = Nothing-    , _mobReleaseVersion = Nothing-    , _mobBrand = Nothing-    , _mobSecurityPatchLevel = Nothing-    , _mobNetworkOperator = Nothing-    , _mobKernelVersion = Nothing-    , _mobOS = Nothing-    , _mobName = Nothing-    , _mobModel = Nothing-    , _mobDeveloperOptionsStatus = Nothing-    , _mobUnknownSourcesStatus = Nothing-    , _mobMeid = Nothing-    , _mobBootLoaderVersion = Nothing-    , _mobDeviceId = Nothing-    , _mobFirstSync = Nothing-    , _mobUserAgent = Nothing-    , _mobImei = Nothing-    , _mobType = Nothing-    , _mobWifiMACAddress = Nothing-    , _mobEncryptionStatus = Nothing-    , _mobSerialNumber = Nothing-    , _mobDevicePasswordStatus = Nothing-    , _mobHardwareId = Nothing-    , _mobBasebandVersion = Nothing-    , _mobSupportsWorkProFile = Nothing-    , _mobHardware = Nothing-    , _mobDeviceCompromisedStatus = Nothing-    , _mobApplications = Nothing-    , _mobDefaultLanguage = Nothing-    }---- | List of owner user\'s email addresses (Read-only)-mobEmail :: Lens' MobileDevice [Text]-mobEmail-  = lens _mobEmail (\ s a -> s{_mobEmail = a}) .-      _Default-      . _Coerce---- | Status of the device (Read-only)-mobStatus :: Lens' MobileDevice (Maybe Text)-mobStatus-  = lens _mobStatus (\ s a -> s{_mobStatus = a})---- | DMAgentPermission (Read-only)-mobPrivilege :: Lens' MobileDevice (Maybe Text)-mobPrivilege-  = lens _mobPrivilege (\ s a -> s{_mobPrivilege = a})---- | ETag of the resource.-mobEtag :: Lens' MobileDevice (Maybe Text)-mobEtag = lens _mobEtag (\ s a -> s{_mobEtag = a})---- | Unique identifier of Mobile Device (Read-only)-mobResourceId :: Lens' MobileDevice (Maybe Text)-mobResourceId-  = lens _mobResourceId-      (\ s a -> s{_mobResourceId = a})---- | Mobile Device manufacturer (Read-only)-mobManufacturer :: Lens' MobileDevice (Maybe Text)-mobManufacturer-  = lens _mobManufacturer-      (\ s a -> s{_mobManufacturer = a})---- | Mobile Device Build number (Read-only)-mobBuildNumber :: Lens' MobileDevice (Maybe Text)-mobBuildNumber-  = lens _mobBuildNumber-      (\ s a -> s{_mobBuildNumber = a})---- | Boolean indicating if this account is on owner\/primary profile or not--- (Read-only)-mobManagedAccountIsOnOwnerProFile :: Lens' MobileDevice (Maybe Bool)-mobManagedAccountIsOnOwnerProFile-  = lens _mobManagedAccountIsOnOwnerProFile-      (\ s a -> s{_mobManagedAccountIsOnOwnerProFile = a})---- | Date and time the device was last synchronized with the policy settings--- in the G Suite administrator control panel (Read-only)-mobLastSync :: Lens' MobileDevice (Maybe UTCTime)-mobLastSync-  = lens _mobLastSync (\ s a -> s{_mobLastSync = a}) .-      mapping _DateTime---- | List of accounts added on device (Read-only)-mobOtherAccountsInfo :: Lens' MobileDevice [Text]-mobOtherAccountsInfo-  = lens _mobOtherAccountsInfo-      (\ s a -> s{_mobOtherAccountsInfo = a})-      . _Default-      . _Coerce---- | Kind of resource this is.-mobKind :: Lens' MobileDevice Text-mobKind = lens _mobKind (\ s a -> s{_mobKind = a})---- | Adb (USB debugging) enabled or disabled on device (Read-only)-mobAdbStatus :: Lens' MobileDevice (Maybe Bool)-mobAdbStatus-  = lens _mobAdbStatus (\ s a -> s{_mobAdbStatus = a})---- | Mobile Device release version version (Read-only)-mobReleaseVersion :: Lens' MobileDevice (Maybe Text)-mobReleaseVersion-  = lens _mobReleaseVersion-      (\ s a -> s{_mobReleaseVersion = a})---- | Mobile Device Brand (Read-only)-mobBrand :: Lens' MobileDevice (Maybe Text)-mobBrand = lens _mobBrand (\ s a -> s{_mobBrand = a})---- | Mobile Device Security patch level (Read-only)-mobSecurityPatchLevel :: Lens' MobileDevice (Maybe Int64)-mobSecurityPatchLevel-  = lens _mobSecurityPatchLevel-      (\ s a -> s{_mobSecurityPatchLevel = a})-      . mapping _Coerce---- | Mobile Device mobile or network operator (if available) (Read-only)-mobNetworkOperator :: Lens' MobileDevice (Maybe Text)-mobNetworkOperator-  = lens _mobNetworkOperator-      (\ s a -> s{_mobNetworkOperator = a})---- | Mobile Device Kernel version (Read-only)-mobKernelVersion :: Lens' MobileDevice (Maybe Text)-mobKernelVersion-  = lens _mobKernelVersion-      (\ s a -> s{_mobKernelVersion = a})---- | Name of the mobile operating system-mobOS :: Lens' MobileDevice (Maybe Text)-mobOS = lens _mobOS (\ s a -> s{_mobOS = a})---- | List of owner user\'s names (Read-only)-mobName :: Lens' MobileDevice [Text]-mobName-  = lens _mobName (\ s a -> s{_mobName = a}) . _Default-      . _Coerce---- | Name of the model of the device-mobModel :: Lens' MobileDevice (Maybe Text)-mobModel = lens _mobModel (\ s a -> s{_mobModel = a})---- | Developer options enabled or disabled on device (Read-only)-mobDeveloperOptionsStatus :: Lens' MobileDevice (Maybe Bool)-mobDeveloperOptionsStatus-  = lens _mobDeveloperOptionsStatus-      (\ s a -> s{_mobDeveloperOptionsStatus = a})---- | Unknown sources enabled or disabled on device (Read-only)-mobUnknownSourcesStatus :: Lens' MobileDevice (Maybe Bool)-mobUnknownSourcesStatus-  = lens _mobUnknownSourcesStatus-      (\ s a -> s{_mobUnknownSourcesStatus = a})---- | Mobile Device MEID number (Read-only)-mobMeid :: Lens' MobileDevice (Maybe Text)-mobMeid = lens _mobMeid (\ s a -> s{_mobMeid = a})---- | Mobile Device Bootloader version (Read-only)-mobBootLoaderVersion :: Lens' MobileDevice (Maybe Text)-mobBootLoaderVersion-  = lens _mobBootLoaderVersion-      (\ s a -> s{_mobBootLoaderVersion = a})---- | Mobile Device serial number (Read-only)-mobDeviceId :: Lens' MobileDevice (Maybe Text)-mobDeviceId-  = lens _mobDeviceId (\ s a -> s{_mobDeviceId = a})---- | Date and time the device was first synchronized with the policy settings--- in the G Suite administrator control panel (Read-only)-mobFirstSync :: Lens' MobileDevice (Maybe UTCTime)-mobFirstSync-  = lens _mobFirstSync (\ s a -> s{_mobFirstSync = a})-      . mapping _DateTime---- | Mobile Device user agent-mobUserAgent :: Lens' MobileDevice (Maybe Text)-mobUserAgent-  = lens _mobUserAgent (\ s a -> s{_mobUserAgent = a})---- | Mobile Device IMEI number (Read-only)-mobImei :: Lens' MobileDevice (Maybe Text)-mobImei = lens _mobImei (\ s a -> s{_mobImei = a})---- | The type of device (Read-only)-mobType :: Lens' MobileDevice (Maybe Text)-mobType = lens _mobType (\ s a -> s{_mobType = a})---- | Mobile Device WiFi MAC address (Read-only)-mobWifiMACAddress :: Lens' MobileDevice (Maybe Text)-mobWifiMACAddress-  = lens _mobWifiMACAddress-      (\ s a -> s{_mobWifiMACAddress = a})---- | Mobile Device Encryption Status (Read-only)-mobEncryptionStatus :: Lens' MobileDevice (Maybe Text)-mobEncryptionStatus-  = lens _mobEncryptionStatus-      (\ s a -> s{_mobEncryptionStatus = a})---- | Mobile Device SSN or Serial Number (Read-only)-mobSerialNumber :: Lens' MobileDevice (Maybe Text)-mobSerialNumber-  = lens _mobSerialNumber-      (\ s a -> s{_mobSerialNumber = a})---- | DevicePasswordStatus (Read-only)-mobDevicePasswordStatus :: Lens' MobileDevice (Maybe Text)-mobDevicePasswordStatus-  = lens _mobDevicePasswordStatus-      (\ s a -> s{_mobDevicePasswordStatus = a})---- | Mobile Device Hardware Id (Read-only)-mobHardwareId :: Lens' MobileDevice (Maybe Text)-mobHardwareId-  = lens _mobHardwareId-      (\ s a -> s{_mobHardwareId = a})---- | Mobile Device Baseband version (Read-only)-mobBasebandVersion :: Lens' MobileDevice (Maybe Text)-mobBasebandVersion-  = lens _mobBasebandVersion-      (\ s a -> s{_mobBasebandVersion = a})---- | Work profile supported on device (Read-only)-mobSupportsWorkProFile :: Lens' MobileDevice (Maybe Bool)-mobSupportsWorkProFile-  = lens _mobSupportsWorkProFile-      (\ s a -> s{_mobSupportsWorkProFile = a})---- | Mobile Device Hardware (Read-only)-mobHardware :: Lens' MobileDevice (Maybe Text)-mobHardware-  = lens _mobHardware (\ s a -> s{_mobHardware = a})---- | Mobile Device compromised status (Read-only)-mobDeviceCompromisedStatus :: Lens' MobileDevice (Maybe Text)-mobDeviceCompromisedStatus-  = lens _mobDeviceCompromisedStatus-      (\ s a -> s{_mobDeviceCompromisedStatus = a})---- | List of applications installed on Mobile Device-mobApplications :: Lens' MobileDevice [MobileDeviceApplicationsItem]-mobApplications-  = lens _mobApplications-      (\ s a -> s{_mobApplications = a})-      . _Default-      . _Coerce---- | The default locale used on the Mobile Device (Read-only)-mobDefaultLanguage :: Lens' MobileDevice (Maybe Text)-mobDefaultLanguage-  = lens _mobDefaultLanguage-      (\ s a -> s{_mobDefaultLanguage = a})--instance FromJSON MobileDevice where-        parseJSON-          = withObject "MobileDevice"-              (\ o ->-                 MobileDevice' <$>-                   (o .:? "email" .!= mempty) <*> (o .:? "status") <*>-                     (o .:? "privilege")-                     <*> (o .:? "etag")-                     <*> (o .:? "resourceId")-                     <*> (o .:? "manufacturer")-                     <*> (o .:? "buildNumber")-                     <*> (o .:? "managedAccountIsOnOwnerProfile")-                     <*> (o .:? "lastSync")-                     <*> (o .:? "otherAccountsInfo" .!= mempty)-                     <*> (o .:? "kind" .!= "admin#directory#mobiledevice")-                     <*> (o .:? "adbStatus")-                     <*> (o .:? "releaseVersion")-                     <*> (o .:? "brand")-                     <*> (o .:? "securityPatchLevel")-                     <*> (o .:? "networkOperator")-                     <*> (o .:? "kernelVersion")-                     <*> (o .:? "os")-                     <*> (o .:? "name" .!= mempty)-                     <*> (o .:? "model")-                     <*> (o .:? "developerOptionsStatus")-                     <*> (o .:? "unknownSourcesStatus")-                     <*> (o .:? "meid")-                     <*> (o .:? "bootloaderVersion")-                     <*> (o .:? "deviceId")-                     <*> (o .:? "firstSync")-                     <*> (o .:? "userAgent")-                     <*> (o .:? "imei")-                     <*> (o .:? "type")-                     <*> (o .:? "wifiMacAddress")-                     <*> (o .:? "encryptionStatus")-                     <*> (o .:? "serialNumber")-                     <*> (o .:? "devicePasswordStatus")-                     <*> (o .:? "hardwareId")-                     <*> (o .:? "basebandVersion")-                     <*> (o .:? "supportsWorkProfile")-                     <*> (o .:? "hardware")-                     <*> (o .:? "deviceCompromisedStatus")-                     <*> (o .:? "applications" .!= mempty)-                     <*> (o .:? "defaultLanguage"))--instance ToJSON MobileDevice where-        toJSON MobileDevice'{..}-          = object-              (catMaybes-                 [("email" .=) <$> _mobEmail,-                  ("status" .=) <$> _mobStatus,-                  ("privilege" .=) <$> _mobPrivilege,-                  ("etag" .=) <$> _mobEtag,-                  ("resourceId" .=) <$> _mobResourceId,-                  ("manufacturer" .=) <$> _mobManufacturer,-                  ("buildNumber" .=) <$> _mobBuildNumber,-                  ("managedAccountIsOnOwnerProfile" .=) <$>-                    _mobManagedAccountIsOnOwnerProFile,-                  ("lastSync" .=) <$> _mobLastSync,-                  ("otherAccountsInfo" .=) <$> _mobOtherAccountsInfo,-                  Just ("kind" .= _mobKind),-                  ("adbStatus" .=) <$> _mobAdbStatus,-                  ("releaseVersion" .=) <$> _mobReleaseVersion,-                  ("brand" .=) <$> _mobBrand,-                  ("securityPatchLevel" .=) <$> _mobSecurityPatchLevel,-                  ("networkOperator" .=) <$> _mobNetworkOperator,-                  ("kernelVersion" .=) <$> _mobKernelVersion,-                  ("os" .=) <$> _mobOS, ("name" .=) <$> _mobName,-                  ("model" .=) <$> _mobModel,-                  ("developerOptionsStatus" .=) <$>-                    _mobDeveloperOptionsStatus,-                  ("unknownSourcesStatus" .=) <$>-                    _mobUnknownSourcesStatus,-                  ("meid" .=) <$> _mobMeid,-                  ("bootloaderVersion" .=) <$> _mobBootLoaderVersion,-                  ("deviceId" .=) <$> _mobDeviceId,-                  ("firstSync" .=) <$> _mobFirstSync,-                  ("userAgent" .=) <$> _mobUserAgent,-                  ("imei" .=) <$> _mobImei, ("type" .=) <$> _mobType,-                  ("wifiMacAddress" .=) <$> _mobWifiMACAddress,-                  ("encryptionStatus" .=) <$> _mobEncryptionStatus,-                  ("serialNumber" .=) <$> _mobSerialNumber,-                  ("devicePasswordStatus" .=) <$>-                    _mobDevicePasswordStatus,-                  ("hardwareId" .=) <$> _mobHardwareId,-                  ("basebandVersion" .=) <$> _mobBasebandVersion,-                  ("supportsWorkProfile" .=) <$>-                    _mobSupportsWorkProFile,-                  ("hardware" .=) <$> _mobHardware,-                  ("deviceCompromisedStatus" .=) <$>-                    _mobDeviceCompromisedStatus,-                  ("applications" .=) <$> _mobApplications,-                  ("defaultLanguage" .=) <$> _mobDefaultLanguage])------- /See:/ 'chromeOSDeviceCPUStatusReportsItem' smart constructor.-data ChromeOSDeviceCPUStatusReportsItem = ChromeOSDeviceCPUStatusReportsItem'-    { _codcsriCPUUtilizationPercentageInfo :: !(Maybe [Textual Int32])-    , _codcsriCPUTemperatureInfo           :: !(Maybe [ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem])-    , _codcsriReportTime                   :: !(Maybe DateTime')-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ChromeOSDeviceCPUStatusReportsItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'codcsriCPUUtilizationPercentageInfo'------ * 'codcsriCPUTemperatureInfo'------ * 'codcsriReportTime'-chromeOSDeviceCPUStatusReportsItem-    :: ChromeOSDeviceCPUStatusReportsItem-chromeOSDeviceCPUStatusReportsItem =-    ChromeOSDeviceCPUStatusReportsItem'-    { _codcsriCPUUtilizationPercentageInfo = Nothing-    , _codcsriCPUTemperatureInfo = Nothing-    , _codcsriReportTime = Nothing-    }--codcsriCPUUtilizationPercentageInfo :: Lens' ChromeOSDeviceCPUStatusReportsItem [Int32]-codcsriCPUUtilizationPercentageInfo-  = lens _codcsriCPUUtilizationPercentageInfo-      (\ s a ->-         s{_codcsriCPUUtilizationPercentageInfo = a})-      . _Default-      . _Coerce---- | List of CPU temperature samples.-codcsriCPUTemperatureInfo :: Lens' ChromeOSDeviceCPUStatusReportsItem [ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem]-codcsriCPUTemperatureInfo-  = lens _codcsriCPUTemperatureInfo-      (\ s a -> s{_codcsriCPUTemperatureInfo = a})-      . _Default-      . _Coerce---- | Date and time the report was received.-codcsriReportTime :: Lens' ChromeOSDeviceCPUStatusReportsItem (Maybe UTCTime)-codcsriReportTime-  = lens _codcsriReportTime-      (\ s a -> s{_codcsriReportTime = a})-      . mapping _DateTime--instance FromJSON ChromeOSDeviceCPUStatusReportsItem-         where-        parseJSON-          = withObject "ChromeOSDeviceCPUStatusReportsItem"-              (\ o ->-                 ChromeOSDeviceCPUStatusReportsItem' <$>-                   (o .:? "cpuUtilizationPercentageInfo" .!= mempty) <*>-                     (o .:? "cpuTemperatureInfo" .!= mempty)-                     <*> (o .:? "reportTime"))--instance ToJSON ChromeOSDeviceCPUStatusReportsItem-         where-        toJSON ChromeOSDeviceCPUStatusReportsItem'{..}-          = object-              (catMaybes-                 [("cpuUtilizationPercentageInfo" .=) <$>-                    _codcsriCPUUtilizationPercentageInfo,-                  ("cpuTemperatureInfo" .=) <$>-                    _codcsriCPUTemperatureInfo,-                  ("reportTime" .=) <$> _codcsriReportTime])---- | JSON template for Member resource in Directory API.------ /See:/ 'member' smart constructor.-data Member = Member'-    { _memEmail            :: !(Maybe Text)-    , _memStatus           :: !(Maybe Text)-    , _memEtag             :: !(Maybe Text)-    , _memKind             :: !Text-    , _memDeliverySettings :: !(Maybe Text)-    , _memRole             :: !(Maybe Text)-    , _memId               :: !(Maybe Text)-    , _memType             :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Member' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'memEmail'------ * 'memStatus'------ * 'memEtag'------ * 'memKind'------ * 'memDeliverySettings'------ * 'memRole'------ * 'memId'------ * 'memType'-member-    :: Member-member =-    Member'-    { _memEmail = Nothing-    , _memStatus = Nothing-    , _memEtag = Nothing-    , _memKind = "admin#directory#member"-    , _memDeliverySettings = Nothing-    , _memRole = Nothing-    , _memId = Nothing-    , _memType = Nothing-    }---- | Email of member (Read-only)-memEmail :: Lens' Member (Maybe Text)-memEmail = lens _memEmail (\ s a -> s{_memEmail = a})---- | Status of member (Immutable)-memStatus :: Lens' Member (Maybe Text)-memStatus-  = lens _memStatus (\ s a -> s{_memStatus = a})---- | ETag of the resource.-memEtag :: Lens' Member (Maybe Text)-memEtag = lens _memEtag (\ s a -> s{_memEtag = a})---- | Kind of resource this is.-memKind :: Lens' Member Text-memKind = lens _memKind (\ s a -> s{_memKind = a})---- | Delivery settings of member-memDeliverySettings :: Lens' Member (Maybe Text)-memDeliverySettings-  = lens _memDeliverySettings-      (\ s a -> s{_memDeliverySettings = a})---- | Role of member-memRole :: Lens' Member (Maybe Text)-memRole = lens _memRole (\ s a -> s{_memRole = a})---- | Unique identifier of customer member (Read-only) Unique identifier of--- group (Read-only) Unique identifier of member (Read-only)-memId :: Lens' Member (Maybe Text)-memId = lens _memId (\ s a -> s{_memId = a})---- | Type of member (Immutable)-memType :: Lens' Member (Maybe Text)-memType = lens _memType (\ s a -> s{_memType = a})--instance FromJSON Member where-        parseJSON-          = withObject "Member"-              (\ o ->-                 Member' <$>-                   (o .:? "email") <*> (o .:? "status") <*>-                     (o .:? "etag")-                     <*> (o .:? "kind" .!= "admin#directory#member")-                     <*> (o .:? "delivery_settings")-                     <*> (o .:? "role")-                     <*> (o .:? "id")-                     <*> (o .:? "type"))--instance ToJSON Member where-        toJSON Member'{..}-          = object-              (catMaybes-                 [("email" .=) <$> _memEmail,-                  ("status" .=) <$> _memStatus,-                  ("etag" .=) <$> _memEtag, Just ("kind" .= _memKind),-                  ("delivery_settings" .=) <$> _memDeliverySettings,-                  ("role" .=) <$> _memRole, ("id" .=) <$> _memId,-                  ("type" .=) <$> _memType])---- | JSON template for App Access Collections Resource object in Directory--- API.------ /See:/ 'appAccessCollections' smart constructor.-data AppAccessCollections = AppAccessCollections'-    { _aacEtag                           :: !(Maybe Text)-    , _aacResourceId                     :: !(Maybe (Textual Int64))-    , _aacEnforceSettingsForAndroidDrive :: !(Maybe Bool)-    , _aacResourceName                   :: !(Maybe Text)-    , _aacKind                           :: !Text-    , _aacTrustDomainOwnedApps           :: !(Maybe Bool)-    , _aacBlockedAPIAccessBuckets        :: !(Maybe [Text])-    , _aacErrorMessage                   :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AppAccessCollections' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aacEtag'------ * 'aacResourceId'------ * 'aacEnforceSettingsForAndroidDrive'------ * 'aacResourceName'------ * 'aacKind'------ * 'aacTrustDomainOwnedApps'------ * 'aacBlockedAPIAccessBuckets'------ * 'aacErrorMessage'-appAccessCollections-    :: AppAccessCollections-appAccessCollections =-    AppAccessCollections'-    { _aacEtag = Nothing-    , _aacResourceId = Nothing-    , _aacEnforceSettingsForAndroidDrive = Nothing-    , _aacResourceName = Nothing-    , _aacKind = "admin#directory#appaccesscollection"-    , _aacTrustDomainOwnedApps = Nothing-    , _aacBlockedAPIAccessBuckets = Nothing-    , _aacErrorMessage = Nothing-    }---- | ETag of the resource.-aacEtag :: Lens' AppAccessCollections (Maybe Text)-aacEtag = lens _aacEtag (\ s a -> s{_aacEtag = a})---- | Unique ID of app access collection. (Readonly)-aacResourceId :: Lens' AppAccessCollections (Maybe Int64)-aacResourceId-  = lens _aacResourceId-      (\ s a -> s{_aacResourceId = a})-      . mapping _Coerce---- | Boolean to indicate whether to enforce app access settings on Android--- Drive or not.-aacEnforceSettingsForAndroidDrive :: Lens' AppAccessCollections (Maybe Bool)-aacEnforceSettingsForAndroidDrive-  = lens _aacEnforceSettingsForAndroidDrive-      (\ s a -> s{_aacEnforceSettingsForAndroidDrive = a})---- | Resource name given by the customer while creating\/updating. Should be--- unique under given customer.-aacResourceName :: Lens' AppAccessCollections (Maybe Text)-aacResourceName-  = lens _aacResourceName-      (\ s a -> s{_aacResourceName = a})---- | Identifies the resource as an app access collection. Value:--- admin#directory#appaccesscollection-aacKind :: Lens' AppAccessCollections Text-aacKind = lens _aacKind (\ s a -> s{_aacKind = a})---- | Boolean that indicates whether to trust domain owned apps.-aacTrustDomainOwnedApps :: Lens' AppAccessCollections (Maybe Bool)-aacTrustDomainOwnedApps-  = lens _aacTrustDomainOwnedApps-      (\ s a -> s{_aacTrustDomainOwnedApps = a})---- | List of blocked api access buckets.-aacBlockedAPIAccessBuckets :: Lens' AppAccessCollections [Text]-aacBlockedAPIAccessBuckets-  = lens _aacBlockedAPIAccessBuckets-      (\ s a -> s{_aacBlockedAPIAccessBuckets = a})-      . _Default-      . _Coerce---- | Error message provided by the Admin that will be shown to the user when--- an app is blocked.-aacErrorMessage :: Lens' AppAccessCollections (Maybe Text)-aacErrorMessage-  = lens _aacErrorMessage-      (\ s a -> s{_aacErrorMessage = a})--instance FromJSON AppAccessCollections where-        parseJSON-          = withObject "AppAccessCollections"-              (\ o ->-                 AppAccessCollections' <$>-                   (o .:? "etag") <*> (o .:? "resourceId") <*>-                     (o .:? "enforceSettingsForAndroidDrive")-                     <*> (o .:? "resourceName")-                     <*>-                     (o .:? "kind" .!=-                        "admin#directory#appaccesscollection")-                     <*> (o .:? "trustDomainOwnedApps")-                     <*> (o .:? "blockedApiAccessBuckets" .!= mempty)-                     <*> (o .:? "errorMessage"))--instance ToJSON AppAccessCollections where-        toJSON AppAccessCollections'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _aacEtag,-                  ("resourceId" .=) <$> _aacResourceId,-                  ("enforceSettingsForAndroidDrive" .=) <$>-                    _aacEnforceSettingsForAndroidDrive,-                  ("resourceName" .=) <$> _aacResourceName,-                  Just ("kind" .= _aacKind),-                  ("trustDomainOwnedApps" .=) <$>-                    _aacTrustDomainOwnedApps,-                  ("blockedApiAccessBuckets" .=) <$>-                    _aacBlockedAPIAccessBuckets,-                  ("errorMessage" .=) <$> _aacErrorMessage])---- | JSON template for a set of custom properties (i.e. all fields in a--- particular schema)------ /See:/ 'userCustomProperties' smart constructor.-newtype UserCustomProperties = UserCustomProperties'-    { _ucpAddtional :: HashMap Text JSONValue-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserCustomProperties' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ucpAddtional'-userCustomProperties-    :: HashMap Text JSONValue -- ^ 'ucpAddtional'-    -> UserCustomProperties-userCustomProperties pUcpAddtional_ =-    UserCustomProperties'-    { _ucpAddtional = _Coerce # pUcpAddtional_-    }--ucpAddtional :: Lens' UserCustomProperties (HashMap Text JSONValue)-ucpAddtional-  = lens _ucpAddtional (\ s a -> s{_ucpAddtional = a})-      . _Coerce--instance FromJSON UserCustomProperties where-        parseJSON-          = withObject "UserCustomProperties"-              (\ o ->-                 UserCustomProperties' <$> (parseJSONObject o))--instance ToJSON UserCustomProperties where-        toJSON = toJSON . _ucpAddtional---- | JSON template for a language entry.------ /See:/ 'userLanguage' smart constructor.-data UserLanguage = UserLanguage'-    { _ulLanguageCode   :: !(Maybe Text)-    , _ulCustomLanguage :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserLanguage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ulLanguageCode'------ * 'ulCustomLanguage'-userLanguage-    :: UserLanguage-userLanguage =-    UserLanguage'-    { _ulLanguageCode = Nothing-    , _ulCustomLanguage = Nothing-    }---- | Language Code. Should be used for storing Google III LanguageCode string--- representation for language. Illegal values cause SchemaException.-ulLanguageCode :: Lens' UserLanguage (Maybe Text)-ulLanguageCode-  = lens _ulLanguageCode-      (\ s a -> s{_ulLanguageCode = a})---- | Other language. User can provide own language name if there is no--- corresponding Google III language code. If this is set LanguageCode--- can\'t be set-ulCustomLanguage :: Lens' UserLanguage (Maybe Text)-ulCustomLanguage-  = lens _ulCustomLanguage-      (\ s a -> s{_ulCustomLanguage = a})--instance FromJSON UserLanguage where-        parseJSON-          = withObject "UserLanguage"-              (\ o ->-                 UserLanguage' <$>-                   (o .:? "languageCode") <*> (o .:? "customLanguage"))--instance ToJSON UserLanguage where-        toJSON UserLanguage'{..}-          = object-              (catMaybes-                 [("languageCode" .=) <$> _ulLanguageCode,-                  ("customLanguage" .=) <$> _ulCustomLanguage])---- | JSON template for Domain object in Directory API.------ /See:/ 'domains' smart constructor.-data Domains = Domains'-    { _domCreationTime  :: !(Maybe (Textual Int64))-    , _domEtag          :: !(Maybe Text)-    , _domKind          :: !Text-    , _domDomainAliases :: !(Maybe [DomainAlias])-    , _domVerified      :: !(Maybe Bool)-    , _domDomainName    :: !(Maybe Text)-    , _domIsPrimary     :: !(Maybe Bool)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Domains' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'domCreationTime'------ * 'domEtag'------ * 'domKind'------ * 'domDomainAliases'------ * 'domVerified'------ * 'domDomainName'------ * 'domIsPrimary'-domains-    :: Domains-domains =-    Domains'-    { _domCreationTime = Nothing-    , _domEtag = Nothing-    , _domKind = "admin#directory#domain"-    , _domDomainAliases = Nothing-    , _domVerified = Nothing-    , _domDomainName = Nothing-    , _domIsPrimary = Nothing-    }---- | Creation time of the domain. (Read-only).-domCreationTime :: Lens' Domains (Maybe Int64)-domCreationTime-  = lens _domCreationTime-      (\ s a -> s{_domCreationTime = a})-      . mapping _Coerce---- | ETag of the resource.-domEtag :: Lens' Domains (Maybe Text)-domEtag = lens _domEtag (\ s a -> s{_domEtag = a})---- | Kind of resource this is.-domKind :: Lens' Domains Text-domKind = lens _domKind (\ s a -> s{_domKind = a})---- | List of domain alias objects. (Read-only)-domDomainAliases :: Lens' Domains [DomainAlias]-domDomainAliases-  = lens _domDomainAliases-      (\ s a -> s{_domDomainAliases = a})-      . _Default-      . _Coerce---- | Indicates the verification state of a domain. (Read-only).-domVerified :: Lens' Domains (Maybe Bool)-domVerified-  = lens _domVerified (\ s a -> s{_domVerified = a})---- | The domain name of the customer.-domDomainName :: Lens' Domains (Maybe Text)-domDomainName-  = lens _domDomainName-      (\ s a -> s{_domDomainName = a})---- | Indicates if the domain is a primary domain (Read-only).-domIsPrimary :: Lens' Domains (Maybe Bool)-domIsPrimary-  = lens _domIsPrimary (\ s a -> s{_domIsPrimary = a})--instance FromJSON Domains where-        parseJSON-          = withObject "Domains"-              (\ o ->-                 Domains' <$>-                   (o .:? "creationTime") <*> (o .:? "etag") <*>-                     (o .:? "kind" .!= "admin#directory#domain")-                     <*> (o .:? "domainAliases" .!= mempty)-                     <*> (o .:? "verified")-                     <*> (o .:? "domainName")-                     <*> (o .:? "isPrimary"))--instance ToJSON Domains where-        toJSON Domains'{..}-          = object-              (catMaybes-                 [("creationTime" .=) <$> _domCreationTime,-                  ("etag" .=) <$> _domEtag, Just ("kind" .= _domKind),-                  ("domainAliases" .=) <$> _domDomainAliases,-                  ("verified" .=) <$> _domVerified,-                  ("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'-    { _notEtag                     :: !(Maybe Text)-    , _notNextPageToken            :: !(Maybe Text)-    , _notKind                     :: !Text-    , _notItems                    :: !(Maybe [Notification])-    , _notUnreadNotificationsCount :: !(Maybe (Textual Int32))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Notifications' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'notEtag'------ * 'notNextPageToken'------ * 'notKind'------ * 'notItems'------ * 'notUnreadNotificationsCount'-notifications-    :: Notifications-notifications =-    Notifications'-    { _notEtag = Nothing-    , _notNextPageToken = Nothing-    , _notKind = "admin#directory#notifications"-    , _notItems = Nothing-    , _notUnreadNotificationsCount = Nothing-    }---- | ETag of the resource.-notEtag :: Lens' Notifications (Maybe Text)-notEtag = lens _notEtag (\ s a -> s{_notEtag = a})---- | Token for fetching the next page of notifications.-notNextPageToken :: Lens' Notifications (Maybe Text)-notNextPageToken-  = lens _notNextPageToken-      (\ s a -> s{_notNextPageToken = a})---- | The type of the resource.-notKind :: Lens' Notifications Text-notKind = lens _notKind (\ s a -> s{_notKind = a})---- | List of notifications in this page.-notItems :: Lens' Notifications [Notification]-notItems-  = lens _notItems (\ s a -> s{_notItems = a}) .-      _Default-      . _Coerce---- | Number of unread notification for the domain.-notUnreadNotificationsCount :: Lens' Notifications (Maybe Int32)-notUnreadNotificationsCount-  = lens _notUnreadNotificationsCount-      (\ s a -> s{_notUnreadNotificationsCount = a})-      . mapping _Coerce--instance FromJSON Notifications where-        parseJSON-          = withObject "Notifications"-              (\ o ->-                 Notifications' <$>-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>-                     (o .:? "kind" .!= "admin#directory#notifications")-                     <*> (o .:? "items" .!= mempty)-                     <*> (o .:? "unreadNotificationsCount"))--instance ToJSON Notifications where-        toJSON Notifications'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _notEtag,-                  ("nextPageToken" .=) <$> _notNextPageToken,-                  Just ("kind" .= _notKind),-                  ("items" .=) <$> _notItems,-                  ("unreadNotificationsCount" .=) <$>-                    _notUnreadNotificationsCount])---- | Indexing spec for a numeric field. By default, only exact match queries--- will be supported for numeric fields. Setting the numericIndexingSpec--- allows range queries to be supported.------ /See:/ 'schemaFieldSpecNumericIndexingSpec' smart constructor.-data SchemaFieldSpecNumericIndexingSpec = SchemaFieldSpecNumericIndexingSpec'-    { _sfsnisMaxValue :: !(Maybe (Textual Double))-    , _sfsnisMinValue :: !(Maybe (Textual Double))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'SchemaFieldSpecNumericIndexingSpec' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sfsnisMaxValue'------ * 'sfsnisMinValue'-schemaFieldSpecNumericIndexingSpec-    :: SchemaFieldSpecNumericIndexingSpec-schemaFieldSpecNumericIndexingSpec =-    SchemaFieldSpecNumericIndexingSpec'-    { _sfsnisMaxValue = Nothing-    , _sfsnisMinValue = Nothing-    }---- | Maximum value of this field. This is meant to be indicative rather than--- enforced. Values outside this range will still be indexed, but search--- may not be as performant.-sfsnisMaxValue :: Lens' SchemaFieldSpecNumericIndexingSpec (Maybe Double)-sfsnisMaxValue-  = lens _sfsnisMaxValue-      (\ s a -> s{_sfsnisMaxValue = a})-      . mapping _Coerce---- | Minimum value of this field. This is meant to be indicative rather than--- enforced. Values outside this range will still be indexed, but search--- may not be as performant.-sfsnisMinValue :: Lens' SchemaFieldSpecNumericIndexingSpec (Maybe Double)-sfsnisMinValue-  = lens _sfsnisMinValue-      (\ s a -> s{_sfsnisMinValue = a})-      . mapping _Coerce--instance FromJSON SchemaFieldSpecNumericIndexingSpec-         where-        parseJSON-          = withObject "SchemaFieldSpecNumericIndexingSpec"-              (\ o ->-                 SchemaFieldSpecNumericIndexingSpec' <$>-                   (o .:? "maxValue") <*> (o .:? "minValue"))--instance ToJSON SchemaFieldSpecNumericIndexingSpec-         where-        toJSON SchemaFieldSpecNumericIndexingSpec'{..}-          = object-              (catMaybes-                 [("maxValue" .=) <$> _sfsnisMaxValue,-                  ("minValue" .=) <$> _sfsnisMinValue])---- | JSON request template for firing commands on Mobile Device in Directory--- Devices API.------ /See:/ 'mobileDeviceAction' smart constructor.-newtype MobileDeviceAction = MobileDeviceAction'-    { _mdaAction :: Maybe Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'MobileDeviceAction' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mdaAction'-mobileDeviceAction-    :: MobileDeviceAction-mobileDeviceAction =-    MobileDeviceAction'-    { _mdaAction = Nothing-    }---- | Action to be taken on the Mobile Device-mdaAction :: Lens' MobileDeviceAction (Maybe Text)-mdaAction-  = lens _mdaAction (\ s a -> s{_mdaAction = a})--instance FromJSON MobileDeviceAction where-        parseJSON-          = withObject "MobileDeviceAction"-              (\ o -> MobileDeviceAction' <$> (o .:? "action"))--instance ToJSON MobileDeviceAction where-        toJSON MobileDeviceAction'{..}-          = object (catMaybes [("action" .=) <$> _mdaAction])---- | JSON template for FieldSpec resource for Schemas in Directory API.------ /See:/ 'schemaFieldSpec' smart constructor.-data SchemaFieldSpec = SchemaFieldSpec'-    { _sfsEtag                :: !(Maybe Text)-    , _sfsKind                :: !Text-    , _sfsNumericIndexingSpec :: !(Maybe SchemaFieldSpecNumericIndexingSpec)-    , _sfsReadAccessType      :: !Text-    , _sfsFieldId             :: !(Maybe Text)-    , _sfsIndexed             :: !Bool-    , _sfsFieldType           :: !(Maybe Text)-    , _sfsFieldName           :: !(Maybe Text)-    , _sfsDisplayName         :: !(Maybe Text)-    , _sfsMultiValued         :: !(Maybe Bool)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'SchemaFieldSpec' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sfsEtag'------ * 'sfsKind'------ * 'sfsNumericIndexingSpec'------ * 'sfsReadAccessType'------ * 'sfsFieldId'------ * 'sfsIndexed'------ * 'sfsFieldType'------ * 'sfsFieldName'------ * 'sfsDisplayName'------ * 'sfsMultiValued'-schemaFieldSpec-    :: SchemaFieldSpec-schemaFieldSpec =-    SchemaFieldSpec'-    { _sfsEtag = Nothing-    , _sfsKind = "admin#directory#schema#fieldspec"-    , _sfsNumericIndexingSpec = Nothing-    , _sfsReadAccessType = "ALL_DOMAIN_USERS"-    , _sfsFieldId = Nothing-    , _sfsIndexed = True-    , _sfsFieldType = Nothing-    , _sfsFieldName = Nothing-    , _sfsDisplayName = Nothing-    , _sfsMultiValued = Nothing-    }---- | ETag of the resource.-sfsEtag :: Lens' SchemaFieldSpec (Maybe Text)-sfsEtag = lens _sfsEtag (\ s a -> s{_sfsEtag = a})---- | Kind of resource this is.-sfsKind :: Lens' SchemaFieldSpec Text-sfsKind = lens _sfsKind (\ s a -> s{_sfsKind = a})---- | Indexing spec for a numeric field. By default, only exact match queries--- will be supported for numeric fields. Setting the numericIndexingSpec--- allows range queries to be supported.-sfsNumericIndexingSpec :: Lens' SchemaFieldSpec (Maybe SchemaFieldSpecNumericIndexingSpec)-sfsNumericIndexingSpec-  = lens _sfsNumericIndexingSpec-      (\ s a -> s{_sfsNumericIndexingSpec = a})---- | Read ACLs on the field specifying who can view values of this field.--- Valid values are \"ALL_DOMAIN_USERS\" and \"ADMINS_AND_SELF\".-sfsReadAccessType :: Lens' SchemaFieldSpec Text-sfsReadAccessType-  = lens _sfsReadAccessType-      (\ s a -> s{_sfsReadAccessType = a})---- | Unique identifier of Field (Read-only)-sfsFieldId :: Lens' SchemaFieldSpec (Maybe Text)-sfsFieldId-  = lens _sfsFieldId (\ s a -> s{_sfsFieldId = a})---- | Boolean specifying whether the field is indexed or not.-sfsIndexed :: Lens' SchemaFieldSpec Bool-sfsIndexed-  = lens _sfsIndexed (\ s a -> s{_sfsIndexed = a})---- | Type of the field.-sfsFieldType :: Lens' SchemaFieldSpec (Maybe Text)-sfsFieldType-  = lens _sfsFieldType (\ s a -> s{_sfsFieldType = a})---- | Name of the field.-sfsFieldName :: Lens' SchemaFieldSpec (Maybe Text)-sfsFieldName-  = lens _sfsFieldName (\ s a -> s{_sfsFieldName = a})---- | Display Name of the field.-sfsDisplayName :: Lens' SchemaFieldSpec (Maybe Text)-sfsDisplayName-  = lens _sfsDisplayName-      (\ s a -> s{_sfsDisplayName = a})---- | Boolean specifying whether this is a multi-valued field or not.-sfsMultiValued :: Lens' SchemaFieldSpec (Maybe Bool)-sfsMultiValued-  = lens _sfsMultiValued-      (\ s a -> s{_sfsMultiValued = a})--instance FromJSON SchemaFieldSpec where-        parseJSON-          = withObject "SchemaFieldSpec"-              (\ o ->-                 SchemaFieldSpec' <$>-                   (o .:? "etag") <*>-                     (o .:? "kind" .!= "admin#directory#schema#fieldspec")-                     <*> (o .:? "numericIndexingSpec")-                     <*> (o .:? "readAccessType" .!= "ALL_DOMAIN_USERS")-                     <*> (o .:? "fieldId")-                     <*> (o .:? "indexed" .!= True)-                     <*> (o .:? "fieldType")-                     <*> (o .:? "fieldName")-                     <*> (o .:? "displayName")-                     <*> (o .:? "multiValued"))--instance ToJSON SchemaFieldSpec where-        toJSON SchemaFieldSpec'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _sfsEtag, Just ("kind" .= _sfsKind),-                  ("numericIndexingSpec" .=) <$>-                    _sfsNumericIndexingSpec,-                  Just ("readAccessType" .= _sfsReadAccessType),-                  ("fieldId" .=) <$> _sfsFieldId,-                  Just ("indexed" .= _sfsIndexed),-                  ("fieldType" .=) <$> _sfsFieldType,-                  ("fieldName" .=) <$> _sfsFieldName,-                  ("displayName" .=) <$> _sfsDisplayName,-                  ("multiValued" .=) <$> _sfsMultiValued])---- | JSON response template for List Chrome OS Devices operation in Directory--- API.------ /See:/ 'chromeOSDevices' smart constructor.-data ChromeOSDevices = ChromeOSDevices'-    { _cosdEtag            :: !(Maybe Text)-    , _cosdNextPageToken   :: !(Maybe Text)-    , _cosdKind            :: !Text-    , _cosdChromeosDevices :: !(Maybe [ChromeOSDevice])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ChromeOSDevices' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cosdEtag'------ * 'cosdNextPageToken'------ * 'cosdKind'------ * 'cosdChromeosDevices'-chromeOSDevices-    :: ChromeOSDevices-chromeOSDevices =-    ChromeOSDevices'-    { _cosdEtag = Nothing-    , _cosdNextPageToken = Nothing-    , _cosdKind = "admin#directory#chromeosdevices"-    , _cosdChromeosDevices = Nothing-    }---- | ETag of the resource.-cosdEtag :: Lens' ChromeOSDevices (Maybe Text)-cosdEtag = lens _cosdEtag (\ s a -> s{_cosdEtag = a})---- | Token used to access next page of this result.-cosdNextPageToken :: Lens' ChromeOSDevices (Maybe Text)-cosdNextPageToken-  = lens _cosdNextPageToken-      (\ s a -> s{_cosdNextPageToken = a})---- | Kind of resource this is.-cosdKind :: Lens' ChromeOSDevices Text-cosdKind = lens _cosdKind (\ s a -> s{_cosdKind = a})---- | List of Chrome OS Device objects.-cosdChromeosDevices :: Lens' ChromeOSDevices [ChromeOSDevice]-cosdChromeosDevices-  = lens _cosdChromeosDevices-      (\ s a -> s{_cosdChromeosDevices = a})-      . _Default-      . _Coerce--instance FromJSON ChromeOSDevices where-        parseJSON-          = withObject "ChromeOSDevices"-              (\ o ->-                 ChromeOSDevices' <$>-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>-                     (o .:? "kind" .!= "admin#directory#chromeosdevices")-                     <*> (o .:? "chromeosdevices" .!= mempty))--instance ToJSON ChromeOSDevices where-        toJSON ChromeOSDevices'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _cosdEtag,-                  ("nextPageToken" .=) <$> _cosdNextPageToken,-                  Just ("kind" .= _cosdKind),-                  ("chromeosdevices" .=) <$> _cosdChromeosDevices])---- | JSON template for Has Member response in Directory API.------ /See:/ 'membersHasMember' smart constructor.-newtype MembersHasMember = MembersHasMember'-    { _mhmIsMember :: Maybe Bool-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'MembersHasMember' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mhmIsMember'-membersHasMember-    :: MembersHasMember-membersHasMember =-    MembersHasMember'-    { _mhmIsMember = Nothing-    }---- | Identifies whether the given user is a member of the group. Membership--- can be direct or nested.-mhmIsMember :: Lens' MembersHasMember (Maybe Bool)-mhmIsMember-  = lens _mhmIsMember (\ s a -> s{_mhmIsMember = a})--instance FromJSON MembersHasMember where-        parseJSON-          = withObject "MembersHasMember"-              (\ o -> MembersHasMember' <$> (o .:? "isMember"))--instance ToJSON MembersHasMember where-        toJSON MembersHasMember'{..}-          = object-              (catMaybes [("isMember" .=) <$> _mhmIsMember])---- | JSON template for Trusted App Ids Resource object in Directory API.------ /See:/ 'trustedAppId' smart constructor.-data TrustedAppId = TrustedAppId'-    { _taiCertificateHashSHA256 :: !(Maybe Text)-    , _taiEtag                  :: !(Maybe Text)-    , _taiKind                  :: !Text-    , _taiCertificateHashSHA1   :: !(Maybe Text)-    , _taiAndroidPackageName    :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TrustedAppId' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'taiCertificateHashSHA256'------ * 'taiEtag'------ * 'taiKind'------ * 'taiCertificateHashSHA1'------ * 'taiAndroidPackageName'-trustedAppId-    :: TrustedAppId-trustedAppId =-    TrustedAppId'-    { _taiCertificateHashSHA256 = Nothing-    , _taiEtag = Nothing-    , _taiKind = "admin#directory#trustedappid"-    , _taiCertificateHashSHA1 = Nothing-    , _taiAndroidPackageName = Nothing-    }---- | SHA256 signature of the app certificate.-taiCertificateHashSHA256 :: Lens' TrustedAppId (Maybe Text)-taiCertificateHashSHA256-  = lens _taiCertificateHashSHA256-      (\ s a -> s{_taiCertificateHashSHA256 = a})--taiEtag :: Lens' TrustedAppId (Maybe Text)-taiEtag = lens _taiEtag (\ s a -> s{_taiEtag = a})---- | Identifies the resource as a trusted AppId.-taiKind :: Lens' TrustedAppId Text-taiKind = lens _taiKind (\ s a -> s{_taiKind = a})---- | SHA1 signature of the app certificate.-taiCertificateHashSHA1 :: Lens' TrustedAppId (Maybe Text)-taiCertificateHashSHA1-  = lens _taiCertificateHashSHA1-      (\ s a -> s{_taiCertificateHashSHA1 = a})---- | Android package name.-taiAndroidPackageName :: Lens' TrustedAppId (Maybe Text)-taiAndroidPackageName-  = lens _taiAndroidPackageName-      (\ s a -> s{_taiAndroidPackageName = a})--instance FromJSON TrustedAppId where-        parseJSON-          = withObject "TrustedAppId"-              (\ o ->-                 TrustedAppId' <$>-                   (o .:? "certificateHashSHA256") <*> (o .:? "etag")-                     <*> (o .:? "kind" .!= "admin#directory#trustedappid")-                     <*> (o .:? "certificateHashSHA1")-                     <*> (o .:? "androidPackageName"))--instance ToJSON TrustedAppId where-        toJSON TrustedAppId'{..}-          = object-              (catMaybes-                 [("certificateHashSHA256" .=) <$>-                    _taiCertificateHashSHA256,-                  ("etag" .=) <$> _taiEtag, Just ("kind" .= _taiKind),-                  ("certificateHashSHA1" .=) <$>-                    _taiCertificateHashSHA1,-                  ("androidPackageName" .=) <$>-                    _taiAndroidPackageName])---- | JSON template for an externalId entry.------ /See:/ 'userExternalId' smart constructor.-data UserExternalId = UserExternalId'-    { _ueiValue      :: !(Maybe Text)-    , _ueiType       :: !(Maybe Text)-    , _ueiCustomType :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserExternalId' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ueiValue'------ * 'ueiType'------ * 'ueiCustomType'-userExternalId-    :: UserExternalId-userExternalId =-    UserExternalId'-    { _ueiValue = Nothing-    , _ueiType = Nothing-    , _ueiCustomType = Nothing-    }---- | The value of the id.-ueiValue :: Lens' UserExternalId (Maybe Text)-ueiValue = lens _ueiValue (\ s a -> s{_ueiValue = a})---- | The type of the Id.-ueiType :: Lens' UserExternalId (Maybe Text)-ueiType = lens _ueiType (\ s a -> s{_ueiType = a})---- | Custom type.-ueiCustomType :: Lens' UserExternalId (Maybe Text)-ueiCustomType-  = lens _ueiCustomType-      (\ s a -> s{_ueiCustomType = a})--instance FromJSON UserExternalId where-        parseJSON-          = withObject "UserExternalId"-              (\ o ->-                 UserExternalId' <$>-                   (o .:? "value") <*> (o .:? "type") <*>-                     (o .:? "customType"))--instance ToJSON UserExternalId where-        toJSON UserExternalId'{..}-          = object-              (catMaybes-                 [("value" .=) <$> _ueiValue,-                  ("type" .=) <$> _ueiType,-                  ("customType" .=) <$> _ueiCustomType])------- /See:/ 'asps' smart constructor.-data Asps = Asps'-    { _aspEtag  :: !(Maybe Text)-    , _aspKind  :: !Text-    , _aspItems :: !(Maybe [Asp])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Asps' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aspEtag'------ * 'aspKind'------ * 'aspItems'-asps-    :: Asps-asps =-    Asps'-    { _aspEtag = Nothing-    , _aspKind = "admin#directory#aspList"-    , _aspItems = Nothing-    }---- | ETag of the resource.-aspEtag :: Lens' Asps (Maybe Text)-aspEtag = lens _aspEtag (\ s a -> s{_aspEtag = a})---- | The type of the API resource. This is always admin#directory#aspList.-aspKind :: Lens' Asps Text-aspKind = lens _aspKind (\ s a -> s{_aspKind = a})---- | A list of ASP resources.-aspItems :: Lens' Asps [Asp]-aspItems-  = lens _aspItems (\ s a -> s{_aspItems = a}) .-      _Default-      . _Coerce--instance FromJSON Asps where-        parseJSON-          = withObject "Asps"-              (\ o ->-                 Asps' <$>-                   (o .:? "etag") <*>-                     (o .:? "kind" .!= "admin#directory#aspList")-                     <*> (o .:? "items" .!= mempty))--instance ToJSON Asps where-        toJSON Asps'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _aspEtag, Just ("kind" .= _aspKind),-                  ("items" .=) <$> _aspItems])------- /See:/ 'chromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem' smart constructor.-data ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem = ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem'-    { _codcsrictiiTemperature :: !(Maybe (Textual Int32))-    , _codcsrictiiLabel       :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'codcsrictiiTemperature'------ * 'codcsrictiiLabel'-chromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem-    :: ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem-chromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem =-    ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem'-    { _codcsrictiiTemperature = Nothing-    , _codcsrictiiLabel = Nothing-    }---- | Temperature in Celsius degrees.-codcsrictiiTemperature :: Lens' ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem (Maybe Int32)-codcsrictiiTemperature-  = lens _codcsrictiiTemperature-      (\ s a -> s{_codcsrictiiTemperature = a})-      . mapping _Coerce---- | CPU label-codcsrictiiLabel :: Lens' ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem (Maybe Text)-codcsrictiiLabel-  = lens _codcsrictiiLabel-      (\ s a -> s{_codcsrictiiLabel = a})--instance FromJSON-         ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem-         where-        parseJSON-          = withObject-              "ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem"-              (\ o ->-                 ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem'-                   <$> (o .:? "temperature") <*> (o .:? "label"))--instance ToJSON-         ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem-         where-        toJSON-          ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem'{..}-          = object-              (catMaybes-                 [("temperature" .=) <$> _codcsrictiiTemperature,-                  ("label" .=) <$> _codcsrictiiLabel])------- /See:/ 'roleRolePrivilegesItem' smart constructor.-data RoleRolePrivilegesItem = RoleRolePrivilegesItem'-    { _rrpiServiceId     :: !(Maybe Text)-    , _rrpiPrivilegeName :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'RoleRolePrivilegesItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rrpiServiceId'------ * 'rrpiPrivilegeName'-roleRolePrivilegesItem-    :: RoleRolePrivilegesItem-roleRolePrivilegesItem =-    RoleRolePrivilegesItem'-    { _rrpiServiceId = Nothing-    , _rrpiPrivilegeName = Nothing-    }---- | The obfuscated ID of the service this privilege is for.-rrpiServiceId :: Lens' RoleRolePrivilegesItem (Maybe Text)-rrpiServiceId-  = lens _rrpiServiceId-      (\ s a -> s{_rrpiServiceId = a})---- | The name of the privilege.-rrpiPrivilegeName :: Lens' RoleRolePrivilegesItem (Maybe Text)-rrpiPrivilegeName-  = lens _rrpiPrivilegeName-      (\ s a -> s{_rrpiPrivilegeName = a})--instance FromJSON RoleRolePrivilegesItem where-        parseJSON-          = withObject "RoleRolePrivilegesItem"-              (\ o ->-                 RoleRolePrivilegesItem' <$>-                   (o .:? "serviceId") <*> (o .:? "privilegeName"))--instance ToJSON RoleRolePrivilegesItem where-        toJSON RoleRolePrivilegesItem'{..}-          = object-              (catMaybes-                 [("serviceId" .=) <$> _rrpiServiceId,-                  ("privilegeName" .=) <$> _rrpiPrivilegeName])---- | JSON response template to list Domains in Directory API.------ /See:/ 'domains2' smart constructor.-data Domains2 = Domains2'-    { _ddEtag    :: !(Maybe Text)-    , _ddKind    :: !Text-    , _ddDomains :: !(Maybe [Domains])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Domains2' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ddEtag'------ * 'ddKind'------ * 'ddDomains'-domains2-    :: Domains2-domains2 =-    Domains2'-    { _ddEtag = Nothing-    , _ddKind = "admin#directory#domains"-    , _ddDomains = Nothing-    }+data UserLocation =+  UserLocation'+    { _ulArea         :: !(Maybe Text)+    , _ulBuildingId   :: !(Maybe Text)+    , _ulDeskCode     :: !(Maybe Text)+    , _ulFloorName    :: !(Maybe Text)+    , _ulType         :: !(Maybe Text)+    , _ulCustomType   :: !(Maybe Text)+    , _ulFloorSection :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserLocation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ulArea'+--+-- * 'ulBuildingId'+--+-- * 'ulDeskCode'+--+-- * 'ulFloorName'+--+-- * 'ulType'+--+-- * 'ulCustomType'+--+-- * 'ulFloorSection'+userLocation+    :: UserLocation+userLocation =+  UserLocation'+    { _ulArea = Nothing+    , _ulBuildingId = Nothing+    , _ulDeskCode = Nothing+    , _ulFloorName = Nothing+    , _ulType = Nothing+    , _ulCustomType = Nothing+    , _ulFloorSection = Nothing+    }+++-- | Textual location. This is most useful for display purposes to concisely+-- describe the location. For example, \"Mountain View, CA\", \"Near+-- Seattle\", \"US-NYC-9TH 9A209A\".+ulArea :: Lens' UserLocation (Maybe Text)+ulArea = lens _ulArea (\ s a -> s{_ulArea = a})++-- | Building Identifier.+ulBuildingId :: Lens' UserLocation (Maybe Text)+ulBuildingId+  = lens _ulBuildingId (\ s a -> s{_ulBuildingId = a})++-- | Most specific textual code of individual desk location.+ulDeskCode :: Lens' UserLocation (Maybe Text)+ulDeskCode+  = lens _ulDeskCode (\ s a -> s{_ulDeskCode = a})++-- | Floor name\/number.+ulFloorName :: Lens' UserLocation (Maybe Text)+ulFloorName+  = lens _ulFloorName (\ s a -> s{_ulFloorName = a})++-- | Each entry can have a type which indicates standard types of that entry.+-- For example location could be of types default and desk. In addition to+-- standard type, an entry can have a custom type and can give it any name.+-- Such types should have \"custom\" as type and also have a customType+-- value.+ulType :: Lens' UserLocation (Maybe Text)+ulType = lens _ulType (\ s a -> s{_ulType = a})++-- | Custom Type.+ulCustomType :: Lens' UserLocation (Maybe Text)+ulCustomType+  = lens _ulCustomType (\ s a -> s{_ulCustomType = a})++-- | Floor section. More specific location within the floor. For example, if+-- a floor is divided into sections \"A\", \"B\", and \"C\", this field+-- would identify one of those values.+ulFloorSection :: Lens' UserLocation (Maybe Text)+ulFloorSection+  = lens _ulFloorSection+      (\ s a -> s{_ulFloorSection = a})++instance FromJSON UserLocation where+        parseJSON+          = withObject "UserLocation"+              (\ o ->+                 UserLocation' <$>+                   (o .:? "area") <*> (o .:? "buildingId") <*>+                     (o .:? "deskCode")+                     <*> (o .:? "floorName")+                     <*> (o .:? "type")+                     <*> (o .:? "customType")+                     <*> (o .:? "floorSection"))++instance ToJSON UserLocation where+        toJSON UserLocation'{..}+          = object+              (catMaybes+                 [("area" .=) <$> _ulArea,+                  ("buildingId" .=) <$> _ulBuildingId,+                  ("deskCode" .=) <$> _ulDeskCode,+                  ("floorName" .=) <$> _ulFloorName,+                  ("type" .=) <$> _ulType,+                  ("customType" .=) <$> _ulCustomType,+                  ("floorSection" .=) <$> _ulFloorSection])++-- | JSON template for verification codes in Directory API.+--+-- /See:/ 'verificationCode' smart constructor.+data VerificationCode =+  VerificationCode'+    { _vcVerificationCode :: !(Maybe Text)+    , _vcEtag             :: !(Maybe Text)+    , _vcKind             :: !Text+    , _vcUserId           :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VerificationCode' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vcVerificationCode'+--+-- * 'vcEtag'+--+-- * 'vcKind'+--+-- * 'vcUserId'+verificationCode+    :: VerificationCode+verificationCode =+  VerificationCode'+    { _vcVerificationCode = Nothing+    , _vcEtag = Nothing+    , _vcKind = "admin#directory#verificationCode"+    , _vcUserId = Nothing+    }+++-- | A current verification code for the user. Invalidated or used+-- verification codes are not returned as part of the result.+vcVerificationCode :: Lens' VerificationCode (Maybe Text)+vcVerificationCode+  = lens _vcVerificationCode+      (\ s a -> s{_vcVerificationCode = a})++-- | ETag of the resource.+vcEtag :: Lens' VerificationCode (Maybe Text)+vcEtag = lens _vcEtag (\ s a -> s{_vcEtag = a})++-- | The type of the resource. This is always+-- admin#directory#verificationCode.+vcKind :: Lens' VerificationCode Text+vcKind = lens _vcKind (\ s a -> s{_vcKind = a})++-- | The obfuscated unique ID of the user.+vcUserId :: Lens' VerificationCode (Maybe Text)+vcUserId = lens _vcUserId (\ s a -> s{_vcUserId = a})++instance FromJSON VerificationCode where+        parseJSON+          = withObject "VerificationCode"+              (\ o ->+                 VerificationCode' <$>+                   (o .:? "verificationCode") <*> (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#verificationCode")+                     <*> (o .:? "userId"))++instance ToJSON VerificationCode where+        toJSON VerificationCode'{..}+          = object+              (catMaybes+                 [("verificationCode" .=) <$> _vcVerificationCode,+                  ("etag" .=) <$> _vcEtag, Just ("kind" .= _vcKind),+                  ("userId" .=) <$> _vcUserId])++-- | JSON template for Feature object in Directory API.+--+-- /See:/ 'feature' smart constructor.+data Feature =+  Feature'+    { _fEtags :: !(Maybe Text)+    , _fKind  :: !Text+    , _fName  :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Feature' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fEtags'+--+-- * 'fKind'+--+-- * 'fName'+feature+    :: Feature+feature =+  Feature'+    { _fEtags = Nothing+    , _fKind = "admin#directory#resources#features#Feature"+    , _fName = Nothing+    }+++-- | ETag of the resource.+fEtags :: Lens' Feature (Maybe Text)+fEtags = lens _fEtags (\ s a -> s{_fEtags = a})++-- | Kind of resource this is.+fKind :: Lens' Feature Text+fKind = lens _fKind (\ s a -> s{_fKind = a})++-- | The name of the feature.+fName :: Lens' Feature (Maybe Text)+fName = lens _fName (\ s a -> s{_fName = a})++instance FromJSON Feature where+        parseJSON+          = withObject "Feature"+              (\ o ->+                 Feature' <$>+                   (o .:? "etags") <*>+                     (o .:? "kind" .!=+                        "admin#directory#resources#features#Feature")+                     <*> (o .:? "name"))++instance ToJSON Feature where+        toJSON Feature'{..}+          = object+              (catMaybes+                 [("etags" .=) <$> _fEtags, Just ("kind" .= _fKind),+                  ("name" .=) <$> _fName])++-- | JSON template for Org Unit resource in Directory API.+--+-- /See:/ 'orgUnit' smart constructor.+data OrgUnit =+  OrgUnit'+    { _ouEtag              :: !(Maybe Text)+    , _ouParentOrgUnitPath :: !(Maybe Text)+    , _ouKind              :: !Text+    , _ouOrgUnitPath       :: !(Maybe Text)+    , _ouName              :: !(Maybe Text)+    , _ouBlockInheritance  :: !(Maybe Bool)+    , _ouParentOrgUnitId   :: !(Maybe Text)+    , _ouDescription       :: !(Maybe Text)+    , _ouOrgUnitId         :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'OrgUnit' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ouEtag'+--+-- * 'ouParentOrgUnitPath'+--+-- * 'ouKind'+--+-- * 'ouOrgUnitPath'+--+-- * 'ouName'+--+-- * 'ouBlockInheritance'+--+-- * 'ouParentOrgUnitId'+--+-- * 'ouDescription'+--+-- * 'ouOrgUnitId'+orgUnit+    :: OrgUnit+orgUnit =+  OrgUnit'+    { _ouEtag = Nothing+    , _ouParentOrgUnitPath = Nothing+    , _ouKind = "admin#directory#orgUnit"+    , _ouOrgUnitPath = Nothing+    , _ouName = Nothing+    , _ouBlockInheritance = Nothing+    , _ouParentOrgUnitId = Nothing+    , _ouDescription = Nothing+    , _ouOrgUnitId = Nothing+    }+++-- | ETag of the resource.+ouEtag :: Lens' OrgUnit (Maybe Text)+ouEtag = lens _ouEtag (\ s a -> s{_ouEtag = a})++-- | Path of parent OrgUnit+ouParentOrgUnitPath :: Lens' OrgUnit (Maybe Text)+ouParentOrgUnitPath+  = lens _ouParentOrgUnitPath+      (\ s a -> s{_ouParentOrgUnitPath = a})++-- | Kind of resource this is.+ouKind :: Lens' OrgUnit Text+ouKind = lens _ouKind (\ s a -> s{_ouKind = a})++-- | Path of OrgUnit+ouOrgUnitPath :: Lens' OrgUnit (Maybe Text)+ouOrgUnitPath+  = lens _ouOrgUnitPath+      (\ s a -> s{_ouOrgUnitPath = a})++-- | Name of OrgUnit+ouName :: Lens' OrgUnit (Maybe Text)+ouName = lens _ouName (\ s a -> s{_ouName = a})++-- | Should block inheritance+ouBlockInheritance :: Lens' OrgUnit (Maybe Bool)+ouBlockInheritance+  = lens _ouBlockInheritance+      (\ s a -> s{_ouBlockInheritance = a})++-- | Id of parent OrgUnit+ouParentOrgUnitId :: Lens' OrgUnit (Maybe Text)+ouParentOrgUnitId+  = lens _ouParentOrgUnitId+      (\ s a -> s{_ouParentOrgUnitId = a})++-- | Description of OrgUnit+ouDescription :: Lens' OrgUnit (Maybe Text)+ouDescription+  = lens _ouDescription+      (\ s a -> s{_ouDescription = a})++-- | Id of OrgUnit+ouOrgUnitId :: Lens' OrgUnit (Maybe Text)+ouOrgUnitId+  = lens _ouOrgUnitId (\ s a -> s{_ouOrgUnitId = a})++instance FromJSON OrgUnit where+        parseJSON+          = withObject "OrgUnit"+              (\ o ->+                 OrgUnit' <$>+                   (o .:? "etag") <*> (o .:? "parentOrgUnitPath") <*>+                     (o .:? "kind" .!= "admin#directory#orgUnit")+                     <*> (o .:? "orgUnitPath")+                     <*> (o .:? "name")+                     <*> (o .:? "blockInheritance")+                     <*> (o .:? "parentOrgUnitId")+                     <*> (o .:? "description")+                     <*> (o .:? "orgUnitId"))++instance ToJSON OrgUnit where+        toJSON OrgUnit'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _ouEtag,+                  ("parentOrgUnitPath" .=) <$> _ouParentOrgUnitPath,+                  Just ("kind" .= _ouKind),+                  ("orgUnitPath" .=) <$> _ouOrgUnitPath,+                  ("name" .=) <$> _ouName,+                  ("blockInheritance" .=) <$> _ouBlockInheritance,+                  ("parentOrgUnitId" .=) <$> _ouParentOrgUnitId,+                  ("description" .=) <$> _ouDescription,+                  ("orgUnitId" .=) <$> _ouOrgUnitId])++-- | JSON request template for setting\/revoking admin status of a user in+-- Directory API.+--+-- /See:/ 'userMakeAdmin' smart constructor.+newtype UserMakeAdmin =+  UserMakeAdmin'+    { _umaStatus :: Maybe Bool+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserMakeAdmin' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umaStatus'+userMakeAdmin+    :: UserMakeAdmin+userMakeAdmin = UserMakeAdmin' {_umaStatus = Nothing}+++-- | Boolean indicating new admin status of the user+umaStatus :: Lens' UserMakeAdmin (Maybe Bool)+umaStatus+  = lens _umaStatus (\ s a -> s{_umaStatus = a})++instance FromJSON UserMakeAdmin where+        parseJSON+          = withObject "UserMakeAdmin"+              (\ o -> UserMakeAdmin' <$> (o .:? "status"))++instance ToJSON UserMakeAdmin where+        toJSON UserMakeAdmin'{..}+          = object (catMaybes [("status" .=) <$> _umaStatus])++-- | JSON template for About (notes) of a user in Directory API.+--+-- /See:/ 'userAbout' smart constructor.+data UserAbout =+  UserAbout'+    { _uaValue       :: !(Maybe Text)+    , _uaContentType :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserAbout' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uaValue'+--+-- * 'uaContentType'+userAbout+    :: UserAbout+userAbout = UserAbout' {_uaValue = Nothing, _uaContentType = Nothing}+++-- | Actual value of notes.+uaValue :: Lens' UserAbout (Maybe Text)+uaValue = lens _uaValue (\ s a -> s{_uaValue = a})++-- | About entry can have a type which indicates the content type. It can+-- either be plain or html. By default, notes contents are assumed to+-- contain plain text.+uaContentType :: Lens' UserAbout (Maybe Text)+uaContentType+  = lens _uaContentType+      (\ s a -> s{_uaContentType = a})++instance FromJSON UserAbout where+        parseJSON+          = withObject "UserAbout"+              (\ o ->+                 UserAbout' <$>+                   (o .:? "value") <*> (o .:? "contentType"))++instance ToJSON UserAbout where+        toJSON UserAbout'{..}+          = object+              (catMaybes+                 [("value" .=) <$> _uaValue,+                  ("contentType" .=) <$> _uaContentType])++-- | JSON response template for List privileges operation in Directory API.+--+-- /See:/ 'privileges' smart constructor.+data Privileges =+  Privileges'+    { _pEtag  :: !(Maybe Text)+    , _pKind  :: !Text+    , _pItems :: !(Maybe [Privilege])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Privileges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pEtag'+--+-- * 'pKind'+--+-- * 'pItems'+privileges+    :: Privileges+privileges =+  Privileges'+    {_pEtag = Nothing, _pKind = "admin#directory#privileges", _pItems = Nothing}+++-- | ETag of the resource.+pEtag :: Lens' Privileges (Maybe Text)+pEtag = lens _pEtag (\ s a -> s{_pEtag = a})++-- | The type of the API resource. This is always admin#directory#privileges.+pKind :: Lens' Privileges Text+pKind = lens _pKind (\ s a -> s{_pKind = a})++-- | A list of Privilege resources.+pItems :: Lens' Privileges [Privilege]+pItems+  = lens _pItems (\ s a -> s{_pItems = a}) . _Default .+      _Coerce++instance FromJSON Privileges where+        parseJSON+          = withObject "Privileges"+              (\ o ->+                 Privileges' <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#privileges")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Privileges where+        toJSON Privileges'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _pEtag, Just ("kind" .= _pKind),+                  ("items" .=) <$> _pItems])++-- | JSON response template for List Groups operation in Directory API.+--+-- /See:/ 'groups' smart constructor.+data Groups =+  Groups'+    { _gGroups        :: !(Maybe [Group])+    , _gEtag          :: !(Maybe Text)+    , _gNextPageToken :: !(Maybe Text)+    , _gKind          :: !Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Groups' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gGroups'+--+-- * 'gEtag'+--+-- * 'gNextPageToken'+--+-- * 'gKind'+groups+    :: Groups+groups =+  Groups'+    { _gGroups = Nothing+    , _gEtag = Nothing+    , _gNextPageToken = Nothing+    , _gKind = "admin#directory#groups"+    }+++-- | List of group objects.+gGroups :: Lens' Groups [Group]+gGroups+  = lens _gGroups (\ s a -> s{_gGroups = a}) . _Default+      . _Coerce++-- | ETag of the resource.+gEtag :: Lens' Groups (Maybe Text)+gEtag = lens _gEtag (\ s a -> s{_gEtag = a})++-- | Token used to access next page of this result.+gNextPageToken :: Lens' Groups (Maybe Text)+gNextPageToken+  = lens _gNextPageToken+      (\ s a -> s{_gNextPageToken = a})++-- | Kind of resource this is.+gKind :: Lens' Groups Text+gKind = lens _gKind (\ s a -> s{_gKind = a})++instance FromJSON Groups where+        parseJSON+          = withObject "Groups"+              (\ o ->+                 Groups' <$>+                   (o .:? "groups" .!= mempty) <*> (o .:? "etag") <*>+                     (o .:? "nextPageToken")+                     <*> (o .:? "kind" .!= "admin#directory#groups"))++instance ToJSON Groups where+        toJSON Groups'{..}+          = object+              (catMaybes+                 [("groups" .=) <$> _gGroups, ("etag" .=) <$> _gEtag,+                  ("nextPageToken" .=) <$> _gNextPageToken,+                  Just ("kind" .= _gKind)])++-- | JSON response template for List roleAssignments operation in Directory+-- API.+--+-- /See:/ 'roleAssignments' smart constructor.+data RoleAssignments =+  RoleAssignments'+    { _raEtag          :: !(Maybe Text)+    , _raNextPageToken :: !(Maybe Text)+    , _raKind          :: !Text+    , _raItems         :: !(Maybe [RoleAssignment])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RoleAssignments' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'raEtag'+--+-- * 'raNextPageToken'+--+-- * 'raKind'+--+-- * 'raItems'+roleAssignments+    :: RoleAssignments+roleAssignments =+  RoleAssignments'+    { _raEtag = Nothing+    , _raNextPageToken = Nothing+    , _raKind = "admin#directory#roleAssignments"+    , _raItems = Nothing+    }+++-- | ETag of the resource.+raEtag :: Lens' RoleAssignments (Maybe Text)+raEtag = lens _raEtag (\ s a -> s{_raEtag = a})++raNextPageToken :: Lens' RoleAssignments (Maybe Text)+raNextPageToken+  = lens _raNextPageToken+      (\ s a -> s{_raNextPageToken = a})++-- | The type of the API resource. This is always+-- admin#directory#roleAssignments.+raKind :: Lens' RoleAssignments Text+raKind = lens _raKind (\ s a -> s{_raKind = a})++-- | A list of RoleAssignment resources.+raItems :: Lens' RoleAssignments [RoleAssignment]+raItems+  = lens _raItems (\ s a -> s{_raItems = a}) . _Default+      . _Coerce++instance FromJSON RoleAssignments where+        parseJSON+          = withObject "RoleAssignments"+              (\ o ->+                 RoleAssignments' <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "admin#directory#roleAssignments")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON RoleAssignments where+        toJSON RoleAssignments'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _raEtag,+                  ("nextPageToken" .=) <$> _raNextPageToken,+                  Just ("kind" .= _raKind), ("items" .=) <$> _raItems])++-- | JSON template for privilege resource in Directory API.+--+-- /See:/ 'privilege' smart constructor.+data Privilege =+  Privilege'+    { _priEtag            :: !(Maybe Text)+    , _priIsOuScopable    :: !(Maybe Bool)+    , _priKind            :: !Text+    , _priServiceName     :: !(Maybe Text)+    , _priServiceId       :: !(Maybe Text)+    , _priPrivilegeName   :: !(Maybe Text)+    , _priChildPrivileges :: !(Maybe [Privilege])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Privilege' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'priEtag'+--+-- * 'priIsOuScopable'+--+-- * 'priKind'+--+-- * 'priServiceName'+--+-- * 'priServiceId'+--+-- * 'priPrivilegeName'+--+-- * 'priChildPrivileges'+privilege+    :: Privilege+privilege =+  Privilege'+    { _priEtag = Nothing+    , _priIsOuScopable = Nothing+    , _priKind = "admin#directory#privilege"+    , _priServiceName = Nothing+    , _priServiceId = Nothing+    , _priPrivilegeName = Nothing+    , _priChildPrivileges = Nothing+    }+++-- | ETag of the resource.+priEtag :: Lens' Privilege (Maybe Text)+priEtag = lens _priEtag (\ s a -> s{_priEtag = a})++-- | If the privilege can be restricted to an organization unit.+priIsOuScopable :: Lens' Privilege (Maybe Bool)+priIsOuScopable+  = lens _priIsOuScopable+      (\ s a -> s{_priIsOuScopable = a})++-- | The type of the API resource. This is always admin#directory#privilege.+priKind :: Lens' Privilege Text+priKind = lens _priKind (\ s a -> s{_priKind = a})++-- | The name of the service this privilege is for.+priServiceName :: Lens' Privilege (Maybe Text)+priServiceName+  = lens _priServiceName+      (\ s a -> s{_priServiceName = a})++-- | The obfuscated ID of the service this privilege is for.+priServiceId :: Lens' Privilege (Maybe Text)+priServiceId+  = lens _priServiceId (\ s a -> s{_priServiceId = a})++-- | The name of the privilege.+priPrivilegeName :: Lens' Privilege (Maybe Text)+priPrivilegeName+  = lens _priPrivilegeName+      (\ s a -> s{_priPrivilegeName = a})++-- | A list of child privileges. Privileges for a service form a tree. Each+-- privilege can have a list of child privileges; this list is empty for a+-- leaf privilege.+priChildPrivileges :: Lens' Privilege [Privilege]+priChildPrivileges+  = lens _priChildPrivileges+      (\ s a -> s{_priChildPrivileges = a})+      . _Default+      . _Coerce++instance FromJSON Privilege where+        parseJSON+          = withObject "Privilege"+              (\ o ->+                 Privilege' <$>+                   (o .:? "etag") <*> (o .:? "isOuScopable") <*>+                     (o .:? "kind" .!= "admin#directory#privilege")+                     <*> (o .:? "serviceName")+                     <*> (o .:? "serviceId")+                     <*> (o .:? "privilegeName")+                     <*> (o .:? "childPrivileges" .!= mempty))++instance ToJSON Privilege where+        toJSON Privilege'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _priEtag,+                  ("isOuScopable" .=) <$> _priIsOuScopable,+                  Just ("kind" .= _priKind),+                  ("serviceName" .=) <$> _priServiceName,+                  ("serviceId" .=) <$> _priServiceId,+                  ("privilegeName" .=) <$> _priPrivilegeName,+                  ("childPrivileges" .=) <$> _priChildPrivileges])++-- | JSON response template for List roles operation in Directory API.+--+-- /See:/ 'roles' smart constructor.+data Roles =+  Roles'+    { _rEtag          :: !(Maybe Text)+    , _rNextPageToken :: !(Maybe Text)+    , _rKind          :: !Text+    , _rItems         :: !(Maybe [Role])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Roles' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rEtag'+--+-- * 'rNextPageToken'+--+-- * 'rKind'+--+-- * 'rItems'+roles+    :: Roles+roles =+  Roles'+    { _rEtag = Nothing+    , _rNextPageToken = Nothing+    , _rKind = "admin#directory#roles"+    , _rItems = Nothing+    }+++-- | ETag of the resource.+rEtag :: Lens' Roles (Maybe Text)+rEtag = lens _rEtag (\ s a -> s{_rEtag = a})++rNextPageToken :: Lens' Roles (Maybe Text)+rNextPageToken+  = lens _rNextPageToken+      (\ s a -> s{_rNextPageToken = a})++-- | The type of the API resource. This is always admin#directory#roles.+rKind :: Lens' Roles Text+rKind = lens _rKind (\ s a -> s{_rKind = a})++-- | A list of Role resources.+rItems :: Lens' Roles [Role]+rItems+  = lens _rItems (\ s a -> s{_rItems = a}) . _Default .+      _Coerce++instance FromJSON Roles where+        parseJSON+          = withObject "Roles"+              (\ o ->+                 Roles' <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "admin#directory#roles")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Roles where+        toJSON Roles'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _rEtag,+                  ("nextPageToken" .=) <$> _rNextPageToken,+                  Just ("kind" .= _rKind), ("items" .=) <$> _rItems])++--+-- /See:/ 'chromeOSDeviceDiskVolumeReportsItem' smart constructor.+newtype ChromeOSDeviceDiskVolumeReportsItem =+  ChromeOSDeviceDiskVolumeReportsItem'+    { _coddvriVolumeInfo :: Maybe [ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem]+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ChromeOSDeviceDiskVolumeReportsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'coddvriVolumeInfo'+chromeOSDeviceDiskVolumeReportsItem+    :: ChromeOSDeviceDiskVolumeReportsItem+chromeOSDeviceDiskVolumeReportsItem =+  ChromeOSDeviceDiskVolumeReportsItem' {_coddvriVolumeInfo = Nothing}+++-- | Disk volumes+coddvriVolumeInfo :: Lens' ChromeOSDeviceDiskVolumeReportsItem [ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem]+coddvriVolumeInfo+  = lens _coddvriVolumeInfo+      (\ s a -> s{_coddvriVolumeInfo = a})+      . _Default+      . _Coerce++instance FromJSON ChromeOSDeviceDiskVolumeReportsItem+         where+        parseJSON+          = withObject "ChromeOSDeviceDiskVolumeReportsItem"+              (\ o ->+                 ChromeOSDeviceDiskVolumeReportsItem' <$>+                   (o .:? "volumeInfo" .!= mempty))++instance ToJSON ChromeOSDeviceDiskVolumeReportsItem+         where+        toJSON ChromeOSDeviceDiskVolumeReportsItem'{..}+          = object+              (catMaybes+                 [("volumeInfo" .=) <$> _coddvriVolumeInfo])++-- | JSON template for address.+--+-- /See:/ 'userAddress' smart constructor.+data UserAddress =+  UserAddress'+    { _uaStreetAddress      :: !(Maybe Text)+    , _uaPoBox              :: !(Maybe Text)+    , _uaCountry            :: !(Maybe Text)+    , _uaPostalCode         :: !(Maybe Text)+    , _uaFormatted          :: !(Maybe Text)+    , _uaExtendedAddress    :: !(Maybe Text)+    , _uaLocality           :: !(Maybe Text)+    , _uaPrimary            :: !(Maybe Bool)+    , _uaCountryCode        :: !(Maybe Text)+    , _uaRegion             :: !(Maybe Text)+    , _uaType               :: !(Maybe Text)+    , _uaCustomType         :: !(Maybe Text)+    , _uaSourceIsStructured :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserAddress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uaStreetAddress'+--+-- * 'uaPoBox'+--+-- * 'uaCountry'+--+-- * 'uaPostalCode'+--+-- * 'uaFormatted'+--+-- * 'uaExtendedAddress'+--+-- * 'uaLocality'+--+-- * 'uaPrimary'+--+-- * 'uaCountryCode'+--+-- * 'uaRegion'+--+-- * 'uaType'+--+-- * 'uaCustomType'+--+-- * 'uaSourceIsStructured'+userAddress+    :: UserAddress+userAddress =+  UserAddress'+    { _uaStreetAddress = Nothing+    , _uaPoBox = Nothing+    , _uaCountry = Nothing+    , _uaPostalCode = Nothing+    , _uaFormatted = Nothing+    , _uaExtendedAddress = Nothing+    , _uaLocality = Nothing+    , _uaPrimary = Nothing+    , _uaCountryCode = Nothing+    , _uaRegion = Nothing+    , _uaType = Nothing+    , _uaCustomType = Nothing+    , _uaSourceIsStructured = Nothing+    }+++-- | Street.+uaStreetAddress :: Lens' UserAddress (Maybe Text)+uaStreetAddress+  = lens _uaStreetAddress+      (\ s a -> s{_uaStreetAddress = a})++-- | Other parts of address.+uaPoBox :: Lens' UserAddress (Maybe Text)+uaPoBox = lens _uaPoBox (\ s a -> s{_uaPoBox = a})++-- | Country.+uaCountry :: Lens' UserAddress (Maybe Text)+uaCountry+  = lens _uaCountry (\ s a -> s{_uaCountry = a})++-- | Postal code.+uaPostalCode :: Lens' UserAddress (Maybe Text)+uaPostalCode+  = lens _uaPostalCode (\ s a -> s{_uaPostalCode = a})++-- | Formatted address.+uaFormatted :: Lens' UserAddress (Maybe Text)+uaFormatted+  = lens _uaFormatted (\ s a -> s{_uaFormatted = a})++-- | Extended Address.+uaExtendedAddress :: Lens' UserAddress (Maybe Text)+uaExtendedAddress+  = lens _uaExtendedAddress+      (\ s a -> s{_uaExtendedAddress = a})++-- | Locality.+uaLocality :: Lens' UserAddress (Maybe Text)+uaLocality+  = lens _uaLocality (\ s a -> s{_uaLocality = a})++-- | If this is user\'s primary address. Only one entry could be marked as+-- primary.+uaPrimary :: Lens' UserAddress (Maybe Bool)+uaPrimary+  = lens _uaPrimary (\ s a -> s{_uaPrimary = a})++-- | Country code.+uaCountryCode :: Lens' UserAddress (Maybe Text)+uaCountryCode+  = lens _uaCountryCode+      (\ s a -> s{_uaCountryCode = a})++-- | Region.+uaRegion :: Lens' UserAddress (Maybe Text)+uaRegion = lens _uaRegion (\ s a -> s{_uaRegion = a})++-- | Each entry can have a type which indicates standard values of that+-- entry. For example address could be of home, work etc. In addition to+-- the standard type, an entry can have a custom type and can take any+-- value. Such type should have the CUSTOM value as type and also have a+-- customType value.+uaType :: Lens' UserAddress (Maybe Text)+uaType = lens _uaType (\ s a -> s{_uaType = a})++-- | Custom type.+uaCustomType :: Lens' UserAddress (Maybe Text)+uaCustomType+  = lens _uaCustomType (\ s a -> s{_uaCustomType = a})++-- | User supplied address was structured. Structured addresses are NOT+-- supported at this time. You might be able to write structured addresses,+-- but any values will eventually be clobbered.+uaSourceIsStructured :: Lens' UserAddress (Maybe Bool)+uaSourceIsStructured+  = lens _uaSourceIsStructured+      (\ s a -> s{_uaSourceIsStructured = a})++instance FromJSON UserAddress where+        parseJSON+          = withObject "UserAddress"+              (\ o ->+                 UserAddress' <$>+                   (o .:? "streetAddress") <*> (o .:? "poBox") <*>+                     (o .:? "country")+                     <*> (o .:? "postalCode")+                     <*> (o .:? "formatted")+                     <*> (o .:? "extendedAddress")+                     <*> (o .:? "locality")+                     <*> (o .:? "primary")+                     <*> (o .:? "countryCode")+                     <*> (o .:? "region")+                     <*> (o .:? "type")+                     <*> (o .:? "customType")+                     <*> (o .:? "sourceIsStructured"))++instance ToJSON UserAddress where+        toJSON UserAddress'{..}+          = object+              (catMaybes+                 [("streetAddress" .=) <$> _uaStreetAddress,+                  ("poBox" .=) <$> _uaPoBox,+                  ("country" .=) <$> _uaCountry,+                  ("postalCode" .=) <$> _uaPostalCode,+                  ("formatted" .=) <$> _uaFormatted,+                  ("extendedAddress" .=) <$> _uaExtendedAddress,+                  ("locality" .=) <$> _uaLocality,+                  ("primary" .=) <$> _uaPrimary,+                  ("countryCode" .=) <$> _uaCountryCode,+                  ("region" .=) <$> _uaRegion, ("type" .=) <$> _uaType,+                  ("customType" .=) <$> _uaCustomType,+                  ("sourceIsStructured" .=) <$> _uaSourceIsStructured])++-- | JSON template for postal address of a customer.+--+-- /See:/ 'customerPostalAddress' smart constructor.+data CustomerPostalAddress =+  CustomerPostalAddress'+    { _cpaOrganizationName :: !(Maybe Text)+    , _cpaPostalCode       :: !(Maybe Text)+    , _cpaAddressLine1     :: !(Maybe Text)+    , _cpaLocality         :: !(Maybe Text)+    , _cpaContactName      :: !(Maybe Text)+    , _cpaAddressLine2     :: !(Maybe Text)+    , _cpaCountryCode      :: !(Maybe Text)+    , _cpaRegion           :: !(Maybe Text)+    , _cpaAddressLine3     :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CustomerPostalAddress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpaOrganizationName'+--+-- * 'cpaPostalCode'+--+-- * 'cpaAddressLine1'+--+-- * 'cpaLocality'+--+-- * 'cpaContactName'+--+-- * 'cpaAddressLine2'+--+-- * 'cpaCountryCode'+--+-- * 'cpaRegion'+--+-- * 'cpaAddressLine3'+customerPostalAddress+    :: CustomerPostalAddress+customerPostalAddress =+  CustomerPostalAddress'+    { _cpaOrganizationName = Nothing+    , _cpaPostalCode = Nothing+    , _cpaAddressLine1 = Nothing+    , _cpaLocality = Nothing+    , _cpaContactName = Nothing+    , _cpaAddressLine2 = Nothing+    , _cpaCountryCode = Nothing+    , _cpaRegion = Nothing+    , _cpaAddressLine3 = Nothing+    }+++-- | The company or company division name.+cpaOrganizationName :: Lens' CustomerPostalAddress (Maybe Text)+cpaOrganizationName+  = lens _cpaOrganizationName+      (\ s a -> s{_cpaOrganizationName = a})++-- | The postal code. A postalCode example is a postal zip code such as+-- 10009. This is in accordance with -+-- http:\/\/portablecontacts.net\/draft-spec.html#address_element.+cpaPostalCode :: Lens' CustomerPostalAddress (Maybe Text)+cpaPostalCode+  = lens _cpaPostalCode+      (\ s a -> s{_cpaPostalCode = a})++-- | A customer\'s physical address. The address can be composed of one to+-- three lines.+cpaAddressLine1 :: Lens' CustomerPostalAddress (Maybe Text)+cpaAddressLine1+  = lens _cpaAddressLine1+      (\ s a -> s{_cpaAddressLine1 = a})++-- | Name of the locality. An example of a locality value is the city of San+-- Francisco.+cpaLocality :: Lens' CustomerPostalAddress (Maybe Text)+cpaLocality+  = lens _cpaLocality (\ s a -> s{_cpaLocality = a})++-- | The customer contact\'s name.+cpaContactName :: Lens' CustomerPostalAddress (Maybe Text)+cpaContactName+  = lens _cpaContactName+      (\ s a -> s{_cpaContactName = a})++-- | Address line 2 of the address.+cpaAddressLine2 :: Lens' CustomerPostalAddress (Maybe Text)+cpaAddressLine2+  = lens _cpaAddressLine2+      (\ s a -> s{_cpaAddressLine2 = a})++-- | This is a required property. For countryCode information see the ISO+-- 3166 country code elements.+cpaCountryCode :: Lens' CustomerPostalAddress (Maybe Text)+cpaCountryCode+  = lens _cpaCountryCode+      (\ s a -> s{_cpaCountryCode = a})++-- | Name of the region. An example of a region value is NY for the state of+-- New York.+cpaRegion :: Lens' CustomerPostalAddress (Maybe Text)+cpaRegion+  = lens _cpaRegion (\ s a -> s{_cpaRegion = a})++-- | Address line 3 of the address.+cpaAddressLine3 :: Lens' CustomerPostalAddress (Maybe Text)+cpaAddressLine3+  = lens _cpaAddressLine3+      (\ s a -> s{_cpaAddressLine3 = a})++instance FromJSON CustomerPostalAddress where+        parseJSON+          = withObject "CustomerPostalAddress"+              (\ o ->+                 CustomerPostalAddress' <$>+                   (o .:? "organizationName") <*> (o .:? "postalCode")+                     <*> (o .:? "addressLine1")+                     <*> (o .:? "locality")+                     <*> (o .:? "contactName")+                     <*> (o .:? "addressLine2")+                     <*> (o .:? "countryCode")+                     <*> (o .:? "region")+                     <*> (o .:? "addressLine3"))++instance ToJSON CustomerPostalAddress where+        toJSON CustomerPostalAddress'{..}+          = object+              (catMaybes+                 [("organizationName" .=) <$> _cpaOrganizationName,+                  ("postalCode" .=) <$> _cpaPostalCode,+                  ("addressLine1" .=) <$> _cpaAddressLine1,+                  ("locality" .=) <$> _cpaLocality,+                  ("contactName" .=) <$> _cpaContactName,+                  ("addressLine2" .=) <$> _cpaAddressLine2,+                  ("countryCode" .=) <$> _cpaCountryCode,+                  ("region" .=) <$> _cpaRegion,+                  ("addressLine3" .=) <$> _cpaAddressLine3])++-- | JSON template for roleAssignment resource in Directory API.+--+-- /See:/ 'roleAssignment' smart constructor.+data RoleAssignment =+  RoleAssignment'+    { _rolEtag             :: !(Maybe Text)+    , _rolScopeType        :: !(Maybe Text)+    , _rolKind             :: !Text+    , _rolAssignedTo       :: !(Maybe Text)+    , _rolRoleId           :: !(Maybe (Textual Int64))+    , _rolRoleAssignmentId :: !(Maybe (Textual Int64))+    , _rolOrgUnitId        :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RoleAssignment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rolEtag'+--+-- * 'rolScopeType'+--+-- * 'rolKind'+--+-- * 'rolAssignedTo'+--+-- * 'rolRoleId'+--+-- * 'rolRoleAssignmentId'+--+-- * 'rolOrgUnitId'+roleAssignment+    :: RoleAssignment+roleAssignment =+  RoleAssignment'+    { _rolEtag = Nothing+    , _rolScopeType = Nothing+    , _rolKind = "admin#directory#roleAssignment"+    , _rolAssignedTo = Nothing+    , _rolRoleId = Nothing+    , _rolRoleAssignmentId = Nothing+    , _rolOrgUnitId = Nothing+    }+++-- | ETag of the resource.+rolEtag :: Lens' RoleAssignment (Maybe Text)+rolEtag = lens _rolEtag (\ s a -> s{_rolEtag = a})++-- | The scope in which this role is assigned. Possible values are: -+-- CUSTOMER - ORG_UNIT+rolScopeType :: Lens' RoleAssignment (Maybe Text)+rolScopeType+  = lens _rolScopeType (\ s a -> s{_rolScopeType = a})++-- | The type of the API resource. This is always+-- admin#directory#roleAssignment.+rolKind :: Lens' RoleAssignment Text+rolKind = lens _rolKind (\ s a -> s{_rolKind = a})++-- | The unique ID of the user this role is assigned to.+rolAssignedTo :: Lens' RoleAssignment (Maybe Text)+rolAssignedTo+  = lens _rolAssignedTo+      (\ s a -> s{_rolAssignedTo = a})++-- | The ID of the role that is assigned.+rolRoleId :: Lens' RoleAssignment (Maybe Int64)+rolRoleId+  = lens _rolRoleId (\ s a -> s{_rolRoleId = a}) .+      mapping _Coerce++-- | ID of this roleAssignment.+rolRoleAssignmentId :: Lens' RoleAssignment (Maybe Int64)+rolRoleAssignmentId+  = lens _rolRoleAssignmentId+      (\ s a -> s{_rolRoleAssignmentId = a})+      . mapping _Coerce++-- | If the role is restricted to an organization unit, this contains the ID+-- for the organization unit the exercise of this role is restricted to.+rolOrgUnitId :: Lens' RoleAssignment (Maybe Text)+rolOrgUnitId+  = lens _rolOrgUnitId (\ s a -> s{_rolOrgUnitId = a})++instance FromJSON RoleAssignment where+        parseJSON+          = withObject "RoleAssignment"+              (\ o ->+                 RoleAssignment' <$>+                   (o .:? "etag") <*> (o .:? "scopeType") <*>+                     (o .:? "kind" .!= "admin#directory#roleAssignment")+                     <*> (o .:? "assignedTo")+                     <*> (o .:? "roleId")+                     <*> (o .:? "roleAssignmentId")+                     <*> (o .:? "orgUnitId"))++instance ToJSON RoleAssignment where+        toJSON RoleAssignment'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _rolEtag,+                  ("scopeType" .=) <$> _rolScopeType,+                  Just ("kind" .= _rolKind),+                  ("assignedTo" .=) <$> _rolAssignedTo,+                  ("roleId" .=) <$> _rolRoleId,+                  ("roleAssignmentId" .=) <$> _rolRoleAssignmentId,+                  ("orgUnitId" .=) <$> _rolOrgUnitId])++-- | JSON template for Group resource in Directory API.+--+-- /See:/ 'group'' smart constructor.+data Group =+  Group'+    { _groEmail              :: !(Maybe Text)+    , _groEtag               :: !(Maybe Text)+    , _groDirectMembersCount :: !(Maybe (Textual Int64))+    , _groKind               :: !Text+    , _groAliases            :: !(Maybe [Text])+    , _groNonEditableAliases :: !(Maybe [Text])+    , _groName               :: !(Maybe Text)+    , _groAdminCreated       :: !(Maybe Bool)+    , _groId                 :: !(Maybe Text)+    , _groDescription        :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Group' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'groEmail'+--+-- * 'groEtag'+--+-- * 'groDirectMembersCount'+--+-- * 'groKind'+--+-- * 'groAliases'+--+-- * 'groNonEditableAliases'+--+-- * 'groName'+--+-- * 'groAdminCreated'+--+-- * 'groId'+--+-- * 'groDescription'+group'+    :: Group+group' =+  Group'+    { _groEmail = Nothing+    , _groEtag = Nothing+    , _groDirectMembersCount = Nothing+    , _groKind = "admin#directory#group"+    , _groAliases = Nothing+    , _groNonEditableAliases = Nothing+    , _groName = Nothing+    , _groAdminCreated = Nothing+    , _groId = Nothing+    , _groDescription = Nothing+    }+++-- | Email of Group+groEmail :: Lens' Group (Maybe Text)+groEmail = lens _groEmail (\ s a -> s{_groEmail = a})++-- | ETag of the resource.+groEtag :: Lens' Group (Maybe Text)+groEtag = lens _groEtag (\ s a -> s{_groEtag = a})++-- | Group direct members count+groDirectMembersCount :: Lens' Group (Maybe Int64)+groDirectMembersCount+  = lens _groDirectMembersCount+      (\ s a -> s{_groDirectMembersCount = a})+      . mapping _Coerce++-- | Kind of resource this is.+groKind :: Lens' Group Text+groKind = lens _groKind (\ s a -> s{_groKind = a})++-- | List of aliases (Read-only)+groAliases :: Lens' Group [Text]+groAliases+  = lens _groAliases (\ s a -> s{_groAliases = a}) .+      _Default+      . _Coerce++-- | List of non editable aliases (Read-only)+groNonEditableAliases :: Lens' Group [Text]+groNonEditableAliases+  = lens _groNonEditableAliases+      (\ s a -> s{_groNonEditableAliases = a})+      . _Default+      . _Coerce++-- | Group name+groName :: Lens' Group (Maybe Text)+groName = lens _groName (\ s a -> s{_groName = a})++-- | Is the group created by admin (Read-only) *+groAdminCreated :: Lens' Group (Maybe Bool)+groAdminCreated+  = lens _groAdminCreated+      (\ s a -> s{_groAdminCreated = a})++-- | Unique identifier of Group (Read-only)+groId :: Lens' Group (Maybe Text)+groId = lens _groId (\ s a -> s{_groId = a})++-- | Description of the group+groDescription :: Lens' Group (Maybe Text)+groDescription+  = lens _groDescription+      (\ s a -> s{_groDescription = a})++instance FromJSON Group where+        parseJSON+          = withObject "Group"+              (\ o ->+                 Group' <$>+                   (o .:? "email") <*> (o .:? "etag") <*>+                     (o .:? "directMembersCount")+                     <*> (o .:? "kind" .!= "admin#directory#group")+                     <*> (o .:? "aliases" .!= mempty)+                     <*> (o .:? "nonEditableAliases" .!= mempty)+                     <*> (o .:? "name")+                     <*> (o .:? "adminCreated")+                     <*> (o .:? "id")+                     <*> (o .:? "description"))++instance ToJSON Group where+        toJSON Group'{..}+          = object+              (catMaybes+                 [("email" .=) <$> _groEmail,+                  ("etag" .=) <$> _groEtag,+                  ("directMembersCount" .=) <$> _groDirectMembersCount,+                  Just ("kind" .= _groKind),+                  ("aliases" .=) <$> _groAliases,+                  ("nonEditableAliases" .=) <$> _groNonEditableAliases,+                  ("name" .=) <$> _groName,+                  ("adminCreated" .=) <$> _groAdminCreated,+                  ("id" .=) <$> _groId,+                  ("description" .=) <$> _groDescription])++-- | JSON template for Chrome Os Device resource in Directory API.+--+-- /See:/ 'chromeOSDevice' smart constructor.+data ChromeOSDevice =+  ChromeOSDevice'+    { _codStatus               :: !(Maybe Text)+    , _codEtag                 :: !(Maybe Text)+    , _codCPUStatusReports     :: !(Maybe [ChromeOSDeviceCPUStatusReportsItem])+    , _codAnnotatedUser        :: !(Maybe Text)+    , _codSystemRamFreeReports :: !(Maybe [ChromeOSDeviceSystemRamFreeReportsItem])+    , _codPlatformVersion      :: !(Maybe Text)+    , _codLastSync             :: !(Maybe DateTime')+    , _codActiveTimeRanges     :: !(Maybe [ChromeOSDeviceActiveTimeRangesItem])+    , _codKind                 :: !Text+    , _codEthernetMACAddress   :: !(Maybe Text)+    , _codLastEnrollmentTime   :: !(Maybe DateTime')+    , _codAnnotatedLocation    :: !(Maybe Text)+    , _codMACAddress           :: !(Maybe Text)+    , _codOrgUnitPath          :: !(Maybe Text)+    , _codRecentUsers          :: !(Maybe [ChromeOSDeviceRecentUsersItem])+    , _codSupportEndDate       :: !(Maybe DateTime')+    , _codModel                :: !(Maybe Text)+    , _codWillAutoRenew        :: !(Maybe Bool)+    , _codMeid                 :: !(Maybe Text)+    , _codDeviceFiles          :: !(Maybe [ChromeOSDeviceDeviceFilesItem])+    , _codDeviceId             :: !(Maybe Text)+    , _codBootMode             :: !(Maybe Text)+    , _codTpmVersionInfo       :: !(Maybe ChromeOSDeviceTpmVersionInfo)+    , _codOrderNumber          :: !(Maybe Text)+    , _codDiskVolumeReports    :: !(Maybe [ChromeOSDeviceDiskVolumeReportsItem])+    , _codAnnotatedAssetId     :: !(Maybe Text)+    , _codNotes                :: !(Maybe Text)+    , _codSerialNumber         :: !(Maybe Text)+    , _codFirmwareVersion      :: !(Maybe Text)+    , _codOSVersion            :: !(Maybe Text)+    , _codSystemRamTotal       :: !(Maybe (Textual Int64))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ChromeOSDevice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'codStatus'+--+-- * 'codEtag'+--+-- * 'codCPUStatusReports'+--+-- * 'codAnnotatedUser'+--+-- * 'codSystemRamFreeReports'+--+-- * 'codPlatformVersion'+--+-- * 'codLastSync'+--+-- * 'codActiveTimeRanges'+--+-- * 'codKind'+--+-- * 'codEthernetMACAddress'+--+-- * 'codLastEnrollmentTime'+--+-- * 'codAnnotatedLocation'+--+-- * 'codMACAddress'+--+-- * 'codOrgUnitPath'+--+-- * 'codRecentUsers'+--+-- * 'codSupportEndDate'+--+-- * 'codModel'+--+-- * 'codWillAutoRenew'+--+-- * 'codMeid'+--+-- * 'codDeviceFiles'+--+-- * 'codDeviceId'+--+-- * 'codBootMode'+--+-- * 'codTpmVersionInfo'+--+-- * 'codOrderNumber'+--+-- * 'codDiskVolumeReports'+--+-- * 'codAnnotatedAssetId'+--+-- * 'codNotes'+--+-- * 'codSerialNumber'+--+-- * 'codFirmwareVersion'+--+-- * 'codOSVersion'+--+-- * 'codSystemRamTotal'+chromeOSDevice+    :: ChromeOSDevice+chromeOSDevice =+  ChromeOSDevice'+    { _codStatus = Nothing+    , _codEtag = Nothing+    , _codCPUStatusReports = Nothing+    , _codAnnotatedUser = Nothing+    , _codSystemRamFreeReports = Nothing+    , _codPlatformVersion = Nothing+    , _codLastSync = Nothing+    , _codActiveTimeRanges = Nothing+    , _codKind = "admin#directory#chromeosdevice"+    , _codEthernetMACAddress = Nothing+    , _codLastEnrollmentTime = Nothing+    , _codAnnotatedLocation = Nothing+    , _codMACAddress = Nothing+    , _codOrgUnitPath = Nothing+    , _codRecentUsers = Nothing+    , _codSupportEndDate = Nothing+    , _codModel = Nothing+    , _codWillAutoRenew = Nothing+    , _codMeid = Nothing+    , _codDeviceFiles = Nothing+    , _codDeviceId = Nothing+    , _codBootMode = Nothing+    , _codTpmVersionInfo = Nothing+    , _codOrderNumber = Nothing+    , _codDiskVolumeReports = Nothing+    , _codAnnotatedAssetId = Nothing+    , _codNotes = Nothing+    , _codSerialNumber = Nothing+    , _codFirmwareVersion = Nothing+    , _codOSVersion = Nothing+    , _codSystemRamTotal = Nothing+    }+++-- | status of the device (Read-only)+codStatus :: Lens' ChromeOSDevice (Maybe Text)+codStatus+  = lens _codStatus (\ s a -> s{_codStatus = a})++-- | ETag of the resource.+codEtag :: Lens' ChromeOSDevice (Maybe Text)+codEtag = lens _codEtag (\ s a -> s{_codEtag = a})++-- | Reports of CPU utilization and temperature (Read-only)+codCPUStatusReports :: Lens' ChromeOSDevice [ChromeOSDeviceCPUStatusReportsItem]+codCPUStatusReports+  = lens _codCPUStatusReports+      (\ s a -> s{_codCPUStatusReports = a})+      . _Default+      . _Coerce++-- | User of the device+codAnnotatedUser :: Lens' ChromeOSDevice (Maybe Text)+codAnnotatedUser+  = lens _codAnnotatedUser+      (\ s a -> s{_codAnnotatedUser = a})++-- | Reports of amounts of available RAM memory (Read-only)+codSystemRamFreeReports :: Lens' ChromeOSDevice [ChromeOSDeviceSystemRamFreeReportsItem]+codSystemRamFreeReports+  = lens _codSystemRamFreeReports+      (\ s a -> s{_codSystemRamFreeReports = a})+      . _Default+      . _Coerce++-- | Chromebook platform version (Read-only)+codPlatformVersion :: Lens' ChromeOSDevice (Maybe Text)+codPlatformVersion+  = lens _codPlatformVersion+      (\ s a -> s{_codPlatformVersion = a})++-- | Date and time the device was last synchronized with the policy settings+-- in the G Suite administrator control panel (Read-only)+codLastSync :: Lens' ChromeOSDevice (Maybe UTCTime)+codLastSync+  = lens _codLastSync (\ s a -> s{_codLastSync = a}) .+      mapping _DateTime++-- | List of active time ranges (Read-only)+codActiveTimeRanges :: Lens' ChromeOSDevice [ChromeOSDeviceActiveTimeRangesItem]+codActiveTimeRanges+  = lens _codActiveTimeRanges+      (\ s a -> s{_codActiveTimeRanges = a})+      . _Default+      . _Coerce++-- | Kind of resource this is.+codKind :: Lens' ChromeOSDevice Text+codKind = lens _codKind (\ s a -> s{_codKind = a})++-- | Chromebook Mac Address on ethernet network interface (Read-only)+codEthernetMACAddress :: Lens' ChromeOSDevice (Maybe Text)+codEthernetMACAddress+  = lens _codEthernetMACAddress+      (\ s a -> s{_codEthernetMACAddress = a})++-- | Date and time the device was last enrolled (Read-only)+codLastEnrollmentTime :: Lens' ChromeOSDevice (Maybe UTCTime)+codLastEnrollmentTime+  = lens _codLastEnrollmentTime+      (\ s a -> s{_codLastEnrollmentTime = a})+      . mapping _DateTime++-- | Address or location of the device as noted by the administrator+codAnnotatedLocation :: Lens' ChromeOSDevice (Maybe Text)+codAnnotatedLocation+  = lens _codAnnotatedLocation+      (\ s a -> s{_codAnnotatedLocation = a})++-- | Chromebook Mac Address on wifi network interface (Read-only)+codMACAddress :: Lens' ChromeOSDevice (Maybe Text)+codMACAddress+  = lens _codMACAddress+      (\ s a -> s{_codMACAddress = a})++-- | OrgUnit of the device+codOrgUnitPath :: Lens' ChromeOSDevice (Maybe Text)+codOrgUnitPath+  = lens _codOrgUnitPath+      (\ s a -> s{_codOrgUnitPath = a})++-- | List of recent device users, in descending order by last login time+-- (Read-only)+codRecentUsers :: Lens' ChromeOSDevice [ChromeOSDeviceRecentUsersItem]+codRecentUsers+  = lens _codRecentUsers+      (\ s a -> s{_codRecentUsers = a})+      . _Default+      . _Coerce++-- | Final date the device will be supported (Read-only)+codSupportEndDate :: Lens' ChromeOSDevice (Maybe UTCTime)+codSupportEndDate+  = lens _codSupportEndDate+      (\ s a -> s{_codSupportEndDate = a})+      . mapping _DateTime++-- | Chromebook Model (Read-only)+codModel :: Lens' ChromeOSDevice (Maybe Text)+codModel = lens _codModel (\ s a -> s{_codModel = a})++-- | Will Chromebook auto renew after support end date (Read-only)+codWillAutoRenew :: Lens' ChromeOSDevice (Maybe Bool)+codWillAutoRenew+  = lens _codWillAutoRenew+      (\ s a -> s{_codWillAutoRenew = a})++-- | Mobile Equipment identifier for the 3G mobile card in the Chromebook+-- (Read-only)+codMeid :: Lens' ChromeOSDevice (Maybe Text)+codMeid = lens _codMeid (\ s a -> s{_codMeid = a})++-- | List of device files to download (Read-only)+codDeviceFiles :: Lens' ChromeOSDevice [ChromeOSDeviceDeviceFilesItem]+codDeviceFiles+  = lens _codDeviceFiles+      (\ s a -> s{_codDeviceFiles = a})+      . _Default+      . _Coerce++-- | Unique identifier of Chrome OS Device (Read-only)+codDeviceId :: Lens' ChromeOSDevice (Maybe Text)+codDeviceId+  = lens _codDeviceId (\ s a -> s{_codDeviceId = a})++-- | Chromebook boot mode (Read-only)+codBootMode :: Lens' ChromeOSDevice (Maybe Text)+codBootMode+  = lens _codBootMode (\ s a -> s{_codBootMode = a})++-- | Trusted Platform Module (TPM) (Read-only)+codTpmVersionInfo :: Lens' ChromeOSDevice (Maybe ChromeOSDeviceTpmVersionInfo)+codTpmVersionInfo+  = lens _codTpmVersionInfo+      (\ s a -> s{_codTpmVersionInfo = a})++-- | Chromebook order number (Read-only)+codOrderNumber :: Lens' ChromeOSDevice (Maybe Text)+codOrderNumber+  = lens _codOrderNumber+      (\ s a -> s{_codOrderNumber = a})++-- | Reports of disk space and other info about mounted\/connected volumes.+codDiskVolumeReports :: Lens' ChromeOSDevice [ChromeOSDeviceDiskVolumeReportsItem]+codDiskVolumeReports+  = lens _codDiskVolumeReports+      (\ s a -> s{_codDiskVolumeReports = a})+      . _Default+      . _Coerce++-- | AssetId specified during enrollment or through later annotation+codAnnotatedAssetId :: Lens' ChromeOSDevice (Maybe Text)+codAnnotatedAssetId+  = lens _codAnnotatedAssetId+      (\ s a -> s{_codAnnotatedAssetId = a})++-- | Notes added by the administrator+codNotes :: Lens' ChromeOSDevice (Maybe Text)+codNotes = lens _codNotes (\ s a -> s{_codNotes = a})++-- | Chromebook serial number (Read-only)+codSerialNumber :: Lens' ChromeOSDevice (Maybe Text)+codSerialNumber+  = lens _codSerialNumber+      (\ s a -> s{_codSerialNumber = a})++-- | Chromebook firmware version (Read-only)+codFirmwareVersion :: Lens' ChromeOSDevice (Maybe Text)+codFirmwareVersion+  = lens _codFirmwareVersion+      (\ s a -> s{_codFirmwareVersion = a})++-- | Chromebook Os Version (Read-only)+codOSVersion :: Lens' ChromeOSDevice (Maybe Text)+codOSVersion+  = lens _codOSVersion (\ s a -> s{_codOSVersion = a})++-- | Total RAM on the device [in bytes] (Read-only)+codSystemRamTotal :: Lens' ChromeOSDevice (Maybe Int64)+codSystemRamTotal+  = lens _codSystemRamTotal+      (\ s a -> s{_codSystemRamTotal = a})+      . mapping _Coerce++instance FromJSON ChromeOSDevice where+        parseJSON+          = withObject "ChromeOSDevice"+              (\ o ->+                 ChromeOSDevice' <$>+                   (o .:? "status") <*> (o .:? "etag") <*>+                     (o .:? "cpuStatusReports" .!= mempty)+                     <*> (o .:? "annotatedUser")+                     <*> (o .:? "systemRamFreeReports" .!= mempty)+                     <*> (o .:? "platformVersion")+                     <*> (o .:? "lastSync")+                     <*> (o .:? "activeTimeRanges" .!= mempty)+                     <*>+                     (o .:? "kind" .!= "admin#directory#chromeosdevice")+                     <*> (o .:? "ethernetMacAddress")+                     <*> (o .:? "lastEnrollmentTime")+                     <*> (o .:? "annotatedLocation")+                     <*> (o .:? "macAddress")+                     <*> (o .:? "orgUnitPath")+                     <*> (o .:? "recentUsers" .!= mempty)+                     <*> (o .:? "supportEndDate")+                     <*> (o .:? "model")+                     <*> (o .:? "willAutoRenew")+                     <*> (o .:? "meid")+                     <*> (o .:? "deviceFiles" .!= mempty)+                     <*> (o .:? "deviceId")+                     <*> (o .:? "bootMode")+                     <*> (o .:? "tpmVersionInfo")+                     <*> (o .:? "orderNumber")+                     <*> (o .:? "diskVolumeReports" .!= mempty)+                     <*> (o .:? "annotatedAssetId")+                     <*> (o .:? "notes")+                     <*> (o .:? "serialNumber")+                     <*> (o .:? "firmwareVersion")+                     <*> (o .:? "osVersion")+                     <*> (o .:? "systemRamTotal"))++instance ToJSON ChromeOSDevice where+        toJSON ChromeOSDevice'{..}+          = object+              (catMaybes+                 [("status" .=) <$> _codStatus,+                  ("etag" .=) <$> _codEtag,+                  ("cpuStatusReports" .=) <$> _codCPUStatusReports,+                  ("annotatedUser" .=) <$> _codAnnotatedUser,+                  ("systemRamFreeReports" .=) <$>+                    _codSystemRamFreeReports,+                  ("platformVersion" .=) <$> _codPlatformVersion,+                  ("lastSync" .=) <$> _codLastSync,+                  ("activeTimeRanges" .=) <$> _codActiveTimeRanges,+                  Just ("kind" .= _codKind),+                  ("ethernetMacAddress" .=) <$> _codEthernetMACAddress,+                  ("lastEnrollmentTime" .=) <$> _codLastEnrollmentTime,+                  ("annotatedLocation" .=) <$> _codAnnotatedLocation,+                  ("macAddress" .=) <$> _codMACAddress,+                  ("orgUnitPath" .=) <$> _codOrgUnitPath,+                  ("recentUsers" .=) <$> _codRecentUsers,+                  ("supportEndDate" .=) <$> _codSupportEndDate,+                  ("model" .=) <$> _codModel,+                  ("willAutoRenew" .=) <$> _codWillAutoRenew,+                  ("meid" .=) <$> _codMeid,+                  ("deviceFiles" .=) <$> _codDeviceFiles,+                  ("deviceId" .=) <$> _codDeviceId,+                  ("bootMode" .=) <$> _codBootMode,+                  ("tpmVersionInfo" .=) <$> _codTpmVersionInfo,+                  ("orderNumber" .=) <$> _codOrderNumber,+                  ("diskVolumeReports" .=) <$> _codDiskVolumeReports,+                  ("annotatedAssetId" .=) <$> _codAnnotatedAssetId,+                  ("notes" .=) <$> _codNotes,+                  ("serialNumber" .=) <$> _codSerialNumber,+                  ("firmwareVersion" .=) <$> _codFirmwareVersion,+                  ("osVersion" .=) <$> _codOSVersion,+                  ("systemRamTotal" .=) <$> _codSystemRamTotal])++-- | JSON response template for List Users operation in Apps Directory API.+--+-- /See:/ 'users' smart constructor.+data Users =+  Users'+    { _uEtag          :: !(Maybe Text)+    , _uNextPageToken :: !(Maybe Text)+    , _uUsers         :: !(Maybe [User])+    , _uKind          :: !Text+    , _uTriggerEvent  :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Users' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uEtag'+--+-- * 'uNextPageToken'+--+-- * 'uUsers'+--+-- * 'uKind'+--+-- * 'uTriggerEvent'+users+    :: Users+users =+  Users'+    { _uEtag = Nothing+    , _uNextPageToken = Nothing+    , _uUsers = Nothing+    , _uKind = "admin#directory#users"+    , _uTriggerEvent = Nothing+    }+++-- | ETag of the resource.+uEtag :: Lens' Users (Maybe Text)+uEtag = lens _uEtag (\ s a -> s{_uEtag = a})++-- | Token used to access next page of this result.+uNextPageToken :: Lens' Users (Maybe Text)+uNextPageToken+  = lens _uNextPageToken+      (\ s a -> s{_uNextPageToken = a})++-- | List of user objects.+uUsers :: Lens' Users [User]+uUsers+  = lens _uUsers (\ s a -> s{_uUsers = a}) . _Default .+      _Coerce++-- | Kind of resource this is.+uKind :: Lens' Users Text+uKind = lens _uKind (\ s a -> s{_uKind = a})++-- | Event that triggered this response (only used in case of Push Response)+uTriggerEvent :: Lens' Users (Maybe Text)+uTriggerEvent+  = lens _uTriggerEvent+      (\ s a -> s{_uTriggerEvent = a})++instance FromJSON Users where+        parseJSON+          = withObject "Users"+              (\ o ->+                 Users' <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "users" .!= mempty)+                     <*> (o .:? "kind" .!= "admin#directory#users")+                     <*> (o .:? "trigger_event"))++instance ToJSON Users where+        toJSON Users'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _uEtag,+                  ("nextPageToken" .=) <$> _uNextPageToken,+                  ("users" .=) <$> _uUsers, Just ("kind" .= _uKind),+                  ("trigger_event" .=) <$> _uTriggerEvent])++-- | The template that returns individual ASP (Access Code) data.+--+-- /See:/ 'asp' smart constructor.+data Asp =+  Asp'+    { _aCreationTime :: !(Maybe (Textual Int64))+    , _aEtag         :: !(Maybe Text)+    , _aCodeId       :: !(Maybe (Textual Int32))+    , _aKind         :: !Text+    , _aName         :: !(Maybe Text)+    , _aLastTimeUsed :: !(Maybe (Textual Int64))+    , _aUserKey      :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Asp' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aCreationTime'+--+-- * 'aEtag'+--+-- * 'aCodeId'+--+-- * 'aKind'+--+-- * 'aName'+--+-- * 'aLastTimeUsed'+--+-- * 'aUserKey'+asp+    :: Asp+asp =+  Asp'+    { _aCreationTime = Nothing+    , _aEtag = Nothing+    , _aCodeId = Nothing+    , _aKind = "admin#directory#asp"+    , _aName = Nothing+    , _aLastTimeUsed = Nothing+    , _aUserKey = Nothing+    }+++-- | The time when the ASP was created. Expressed in Unix time format.+aCreationTime :: Lens' Asp (Maybe Int64)+aCreationTime+  = lens _aCreationTime+      (\ s a -> s{_aCreationTime = a})+      . mapping _Coerce++-- | ETag of the ASP.+aEtag :: Lens' Asp (Maybe Text)+aEtag = lens _aEtag (\ s a -> s{_aEtag = a})++-- | The unique ID of the ASP.+aCodeId :: Lens' Asp (Maybe Int32)+aCodeId+  = lens _aCodeId (\ s a -> s{_aCodeId = a}) .+      mapping _Coerce++-- | The type of the API resource. This is always admin#directory#asp.+aKind :: Lens' Asp Text+aKind = lens _aKind (\ s a -> s{_aKind = a})++-- | The name of the application that the user, represented by their userId,+-- entered when the ASP was created.+aName :: Lens' Asp (Maybe Text)+aName = lens _aName (\ s a -> s{_aName = a})++-- | The time when the ASP was last used. Expressed in Unix time format.+aLastTimeUsed :: Lens' Asp (Maybe Int64)+aLastTimeUsed+  = lens _aLastTimeUsed+      (\ s a -> s{_aLastTimeUsed = a})+      . mapping _Coerce++-- | The unique ID of the user who issued the ASP.+aUserKey :: Lens' Asp (Maybe Text)+aUserKey = lens _aUserKey (\ s a -> s{_aUserKey = a})++instance FromJSON Asp where+        parseJSON+          = withObject "Asp"+              (\ o ->+                 Asp' <$>+                   (o .:? "creationTime") <*> (o .:? "etag") <*>+                     (o .:? "codeId")+                     <*> (o .:? "kind" .!= "admin#directory#asp")+                     <*> (o .:? "name")+                     <*> (o .:? "lastTimeUsed")+                     <*> (o .:? "userKey"))++instance ToJSON Asp where+        toJSON Asp'{..}+          = object+              (catMaybes+                 [("creationTime" .=) <$> _aCreationTime,+                  ("etag" .=) <$> _aEtag, ("codeId" .=) <$> _aCodeId,+                  Just ("kind" .= _aKind), ("name" .=) <$> _aName,+                  ("lastTimeUsed" .=) <$> _aLastTimeUsed,+                  ("userKey" .=) <$> _aUserKey])++-- | JSON response template for List Schema operation in Directory API.+--+-- /See:/ 'schemas' smart constructor.+data Schemas =+  Schemas'+    { _sEtag    :: !(Maybe Text)+    , _sSchemas :: !(Maybe [Schema])+    , _sKind    :: !Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Schemas' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sEtag'+--+-- * 'sSchemas'+--+-- * 'sKind'+schemas+    :: Schemas+schemas =+  Schemas'+    {_sEtag = Nothing, _sSchemas = Nothing, _sKind = "admin#directory#schemas"}+++-- | ETag of the resource.+sEtag :: Lens' Schemas (Maybe Text)+sEtag = lens _sEtag (\ s a -> s{_sEtag = a})++-- | List of UserSchema objects.+sSchemas :: Lens' Schemas [Schema]+sSchemas+  = lens _sSchemas (\ s a -> s{_sSchemas = a}) .+      _Default+      . _Coerce++-- | Kind of resource this is.+sKind :: Lens' Schemas Text+sKind = lens _sKind (\ s a -> s{_sKind = a})++instance FromJSON Schemas where+        parseJSON+          = withObject "Schemas"+              (\ o ->+                 Schemas' <$>+                   (o .:? "etag") <*> (o .:? "schemas" .!= mempty) <*>+                     (o .:? "kind" .!= "admin#directory#schemas"))++instance ToJSON Schemas where+        toJSON Schemas'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _sEtag,+                  ("schemas" .=) <$> _sSchemas,+                  Just ("kind" .= _sKind)])++--+-- /See:/ 'chromeOSDeviceDeviceFilesItem' smart constructor.+data ChromeOSDeviceDeviceFilesItem =+  ChromeOSDeviceDeviceFilesItem'+    { _coddfiName        :: !(Maybe Text)+    , _coddfiDownloadURL :: !(Maybe Text)+    , _coddfiType        :: !(Maybe Text)+    , _coddfiCreateTime  :: !(Maybe DateTime')+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ChromeOSDeviceDeviceFilesItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'coddfiName'+--+-- * 'coddfiDownloadURL'+--+-- * 'coddfiType'+--+-- * 'coddfiCreateTime'+chromeOSDeviceDeviceFilesItem+    :: ChromeOSDeviceDeviceFilesItem+chromeOSDeviceDeviceFilesItem =+  ChromeOSDeviceDeviceFilesItem'+    { _coddfiName = Nothing+    , _coddfiDownloadURL = Nothing+    , _coddfiType = Nothing+    , _coddfiCreateTime = Nothing+    }+++-- | File name+coddfiName :: Lens' ChromeOSDeviceDeviceFilesItem (Maybe Text)+coddfiName+  = lens _coddfiName (\ s a -> s{_coddfiName = a})++-- | File download URL+coddfiDownloadURL :: Lens' ChromeOSDeviceDeviceFilesItem (Maybe Text)+coddfiDownloadURL+  = lens _coddfiDownloadURL+      (\ s a -> s{_coddfiDownloadURL = a})++-- | File type+coddfiType :: Lens' ChromeOSDeviceDeviceFilesItem (Maybe Text)+coddfiType+  = lens _coddfiType (\ s a -> s{_coddfiType = a})++-- | Date and time the file was created+coddfiCreateTime :: Lens' ChromeOSDeviceDeviceFilesItem (Maybe UTCTime)+coddfiCreateTime+  = lens _coddfiCreateTime+      (\ s a -> s{_coddfiCreateTime = a})+      . mapping _DateTime++instance FromJSON ChromeOSDeviceDeviceFilesItem where+        parseJSON+          = withObject "ChromeOSDeviceDeviceFilesItem"+              (\ o ->+                 ChromeOSDeviceDeviceFilesItem' <$>+                   (o .:? "name") <*> (o .:? "downloadUrl") <*>+                     (o .:? "type")+                     <*> (o .:? "createTime"))++instance ToJSON ChromeOSDeviceDeviceFilesItem where+        toJSON ChromeOSDeviceDeviceFilesItem'{..}+          = object+              (catMaybes+                 [("name" .=) <$> _coddfiName,+                  ("downloadUrl" .=) <$> _coddfiDownloadURL,+                  ("type" .=) <$> _coddfiType,+                  ("createTime" .=) <$> _coddfiCreateTime])++-- | JSON template for Building List Response object in Directory API.+--+-- /See:/ 'buildings' smart constructor.+data Buildings =+  Buildings'+    { _bEtag          :: !(Maybe Text)+    , _bNextPageToken :: !(Maybe Text)+    , _bBuildings     :: !(Maybe [Building])+    , _bKind          :: !Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Buildings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bEtag'+--+-- * 'bNextPageToken'+--+-- * 'bBuildings'+--+-- * 'bKind'+buildings+    :: Buildings+buildings =+  Buildings'+    { _bEtag = Nothing+    , _bNextPageToken = Nothing+    , _bBuildings = Nothing+    , _bKind = "admin#directory#resources#buildings#buildingsList"+    }+++-- | ETag of the resource.+bEtag :: Lens' Buildings (Maybe Text)+bEtag = lens _bEtag (\ s a -> s{_bEtag = 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.+bNextPageToken :: Lens' Buildings (Maybe Text)+bNextPageToken+  = lens _bNextPageToken+      (\ s a -> s{_bNextPageToken = a})++-- | The Buildings in this page of results.+bBuildings :: Lens' Buildings [Building]+bBuildings+  = lens _bBuildings (\ s a -> s{_bBuildings = a}) .+      _Default+      . _Coerce++-- | Kind of resource this is.+bKind :: Lens' Buildings Text+bKind = lens _bKind (\ s a -> s{_bKind = a})++instance FromJSON Buildings where+        parseJSON+          = withObject "Buildings"+              (\ o ->+                 Buildings' <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "buildings" .!= mempty)+                     <*>+                     (o .:? "kind" .!=+                        "admin#directory#resources#buildings#buildingsList"))++instance ToJSON Buildings where+        toJSON Buildings'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _bEtag,+                  ("nextPageToken" .=) <$> _bNextPageToken,+                  ("buildings" .=) <$> _bBuildings,+                  Just ("kind" .= _bKind)])++-- | Template for a notification resource.+--+-- /See:/ 'notification' smart constructor.+data Notification =+  Notification'+    { _nSubject        :: !(Maybe Text)+    , _nEtag           :: !(Maybe Text)+    , _nKind           :: !Text+    , _nBody           :: !(Maybe Text)+    , _nFromAddress    :: !(Maybe Text)+    , _nIsUnread       :: !(Maybe Bool)+    , _nNotificationId :: !(Maybe Text)+    , _nSendTime       :: !(Maybe DateTime')+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Notification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nSubject'+--+-- * 'nEtag'+--+-- * 'nKind'+--+-- * 'nBody'+--+-- * 'nFromAddress'+--+-- * 'nIsUnread'+--+-- * 'nNotificationId'+--+-- * 'nSendTime'+notification+    :: Notification+notification =+  Notification'+    { _nSubject = Nothing+    , _nEtag = Nothing+    , _nKind = "admin#directory#notification"+    , _nBody = Nothing+    , _nFromAddress = Nothing+    , _nIsUnread = Nothing+    , _nNotificationId = Nothing+    , _nSendTime = Nothing+    }+++-- | Subject of the notification (Read-only)+nSubject :: Lens' Notification (Maybe Text)+nSubject = lens _nSubject (\ s a -> s{_nSubject = a})++-- | ETag of the resource.+nEtag :: Lens' Notification (Maybe Text)+nEtag = lens _nEtag (\ s a -> s{_nEtag = a})++-- | The type of the resource.+nKind :: Lens' Notification Text+nKind = lens _nKind (\ s a -> s{_nKind = a})++-- | Body of the notification (Read-only)+nBody :: Lens' Notification (Maybe Text)+nBody = lens _nBody (\ s a -> s{_nBody = a})++-- | Address from which the notification is received (Read-only)+nFromAddress :: Lens' Notification (Maybe Text)+nFromAddress+  = lens _nFromAddress (\ s a -> s{_nFromAddress = a})++-- | Boolean indicating whether the notification is unread or not.+nIsUnread :: Lens' Notification (Maybe Bool)+nIsUnread+  = lens _nIsUnread (\ s a -> s{_nIsUnread = a})++nNotificationId :: Lens' Notification (Maybe Text)+nNotificationId+  = lens _nNotificationId+      (\ s a -> s{_nNotificationId = a})++-- | Time at which notification was sent (Read-only)+nSendTime :: Lens' Notification (Maybe UTCTime)+nSendTime+  = lens _nSendTime (\ s a -> s{_nSendTime = a}) .+      mapping _DateTime++instance FromJSON Notification where+        parseJSON+          = withObject "Notification"+              (\ o ->+                 Notification' <$>+                   (o .:? "subject") <*> (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#notification")+                     <*> (o .:? "body")+                     <*> (o .:? "fromAddress")+                     <*> (o .:? "isUnread")+                     <*> (o .:? "notificationId")+                     <*> (o .:? "sendTime"))++instance ToJSON Notification where+        toJSON Notification'{..}+          = object+              (catMaybes+                 [("subject" .=) <$> _nSubject,+                  ("etag" .=) <$> _nEtag, Just ("kind" .= _nKind),+                  ("body" .=) <$> _nBody,+                  ("fromAddress" .=) <$> _nFromAddress,+                  ("isUnread" .=) <$> _nIsUnread,+                  ("notificationId" .=) <$> _nNotificationId,+                  ("sendTime" .=) <$> _nSendTime])++-- | JSON template for instant messenger of an user.+--+-- /See:/ 'userIm' smart constructor.+data UserIm =+  UserIm'+    { _uiIm             :: !(Maybe Text)+    , _uiProtocol       :: !(Maybe Text)+    , _uiPrimary        :: !(Maybe Bool)+    , _uiCustomProtocol :: !(Maybe Text)+    , _uiType           :: !(Maybe Text)+    , _uiCustomType     :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserIm' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uiIm'+--+-- * 'uiProtocol'+--+-- * 'uiPrimary'+--+-- * 'uiCustomProtocol'+--+-- * 'uiType'+--+-- * 'uiCustomType'+userIm+    :: UserIm+userIm =+  UserIm'+    { _uiIm = Nothing+    , _uiProtocol = Nothing+    , _uiPrimary = Nothing+    , _uiCustomProtocol = Nothing+    , _uiType = Nothing+    , _uiCustomType = Nothing+    }+++-- | Instant messenger id.+uiIm :: Lens' UserIm (Maybe Text)+uiIm = lens _uiIm (\ s a -> s{_uiIm = a})++-- | Protocol used in the instant messenger. It should be one of the values+-- from ImProtocolTypes map. Similar to type, it can take a CUSTOM value+-- and specify the custom name in customProtocol field.+uiProtocol :: Lens' UserIm (Maybe Text)+uiProtocol+  = lens _uiProtocol (\ s a -> s{_uiProtocol = a})++-- | If this is user\'s primary im. Only one entry could be marked as+-- primary.+uiPrimary :: Lens' UserIm (Maybe Bool)+uiPrimary+  = lens _uiPrimary (\ s a -> s{_uiPrimary = a})++-- | Custom protocol.+uiCustomProtocol :: Lens' UserIm (Maybe Text)+uiCustomProtocol+  = lens _uiCustomProtocol+      (\ s a -> s{_uiCustomProtocol = a})++-- | Each entry can have a type which indicates standard types of that entry.+-- For example instant messengers could be of home, work etc. In addition+-- to the standard type, an entry can have a custom type and can take any+-- value. Such types should have the CUSTOM value as type and also have a+-- customType value.+uiType :: Lens' UserIm (Maybe Text)+uiType = lens _uiType (\ s a -> s{_uiType = a})++-- | Custom type.+uiCustomType :: Lens' UserIm (Maybe Text)+uiCustomType+  = lens _uiCustomType (\ s a -> s{_uiCustomType = a})++instance FromJSON UserIm where+        parseJSON+          = withObject "UserIm"+              (\ o ->+                 UserIm' <$>+                   (o .:? "im") <*> (o .:? "protocol") <*>+                     (o .:? "primary")+                     <*> (o .:? "customProtocol")+                     <*> (o .:? "type")+                     <*> (o .:? "customType"))++instance ToJSON UserIm where+        toJSON UserIm'{..}+          = object+              (catMaybes+                 [("im" .=) <$> _uiIm,+                  ("protocol" .=) <$> _uiProtocol,+                  ("primary" .=) <$> _uiPrimary,+                  ("customProtocol" .=) <$> _uiCustomProtocol,+                  ("type" .=) <$> _uiType,+                  ("customType" .=) <$> _uiCustomType])++-- | JSON template for the postal address of a building in Directory API.+--+-- /See:/ 'buildingAddress' smart constructor.+data BuildingAddress =+  BuildingAddress'+    { _baLanguageCode       :: !(Maybe Text)+    , _baRegionCode         :: !(Maybe Text)+    , _baSublocality        :: !(Maybe Text)+    , _baPostalCode         :: !(Maybe Text)+    , _baLocality           :: !(Maybe Text)+    , _baAdministrativeArea :: !(Maybe Text)+    , _baAddressLines       :: !(Maybe [Text])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BuildingAddress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'baLanguageCode'+--+-- * 'baRegionCode'+--+-- * 'baSublocality'+--+-- * 'baPostalCode'+--+-- * 'baLocality'+--+-- * 'baAdministrativeArea'+--+-- * 'baAddressLines'+buildingAddress+    :: BuildingAddress+buildingAddress =+  BuildingAddress'+    { _baLanguageCode = Nothing+    , _baRegionCode = Nothing+    , _baSublocality = Nothing+    , _baPostalCode = Nothing+    , _baLocality = Nothing+    , _baAdministrativeArea = Nothing+    , _baAddressLines = Nothing+    }+++-- | Optional. BCP-47 language code of the contents of this address (if+-- known).+baLanguageCode :: Lens' BuildingAddress (Maybe Text)+baLanguageCode+  = lens _baLanguageCode+      (\ s a -> s{_baLanguageCode = a})++-- | Required. CLDR region code of the country\/region of the address.+baRegionCode :: Lens' BuildingAddress (Maybe Text)+baRegionCode+  = lens _baRegionCode (\ s a -> s{_baRegionCode = a})++-- | Optional. Sublocality of the address.+baSublocality :: Lens' BuildingAddress (Maybe Text)+baSublocality+  = lens _baSublocality+      (\ s a -> s{_baSublocality = a})++-- | Optional. Postal code of the address.+baPostalCode :: Lens' BuildingAddress (Maybe Text)+baPostalCode+  = lens _baPostalCode (\ s a -> s{_baPostalCode = a})++-- | Optional. Generally refers to the city\/town portion of the address.+-- Examples: US city, IT comune, UK post town. In regions of the world+-- where localities are not well defined or do not fit into this structure+-- well, leave locality empty and use addressLines.+baLocality :: Lens' BuildingAddress (Maybe Text)+baLocality+  = lens _baLocality (\ s a -> s{_baLocality = a})++-- | Optional. Highest administrative subdivision which is used for postal+-- addresses of a country or region.+baAdministrativeArea :: Lens' BuildingAddress (Maybe Text)+baAdministrativeArea+  = lens _baAdministrativeArea+      (\ s a -> s{_baAdministrativeArea = a})++-- | Unstructured address lines describing the lower levels of an address.+baAddressLines :: Lens' BuildingAddress [Text]+baAddressLines+  = lens _baAddressLines+      (\ s a -> s{_baAddressLines = a})+      . _Default+      . _Coerce++instance FromJSON BuildingAddress where+        parseJSON+          = withObject "BuildingAddress"+              (\ o ->+                 BuildingAddress' <$>+                   (o .:? "languageCode") <*> (o .:? "regionCode") <*>+                     (o .:? "sublocality")+                     <*> (o .:? "postalCode")+                     <*> (o .:? "locality")+                     <*> (o .:? "administrativeArea")+                     <*> (o .:? "addressLines" .!= mempty))++instance ToJSON BuildingAddress where+        toJSON BuildingAddress'{..}+          = object+              (catMaybes+                 [("languageCode" .=) <$> _baLanguageCode,+                  ("regionCode" .=) <$> _baRegionCode,+                  ("sublocality" .=) <$> _baSublocality,+                  ("postalCode" .=) <$> _baPostalCode,+                  ("locality" .=) <$> _baLocality,+                  ("administrativeArea" .=) <$> _baAdministrativeArea,+                  ("addressLines" .=) <$> _baAddressLines])++-- | JSON response template for List tokens operation in Directory API.+--+-- /See:/ 'tokens' smart constructor.+data Tokens =+  Tokens'+    { _tEtag  :: !(Maybe Text)+    , _tKind  :: !Text+    , _tItems :: !(Maybe [Token])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Tokens' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tEtag'+--+-- * 'tKind'+--+-- * 'tItems'+tokens+    :: Tokens+tokens =+  Tokens'+    {_tEtag = Nothing, _tKind = "admin#directory#tokenList", _tItems = Nothing}+++-- | ETag of the resource.+tEtag :: Lens' Tokens (Maybe Text)+tEtag = lens _tEtag (\ s a -> s{_tEtag = a})++-- | The type of the API resource. This is always admin#directory#tokenList.+tKind :: Lens' Tokens Text+tKind = lens _tKind (\ s a -> s{_tKind = a})++-- | A list of Token resources.+tItems :: Lens' Tokens [Token]+tItems+  = lens _tItems (\ s a -> s{_tItems = a}) . _Default .+      _Coerce++instance FromJSON Tokens where+        parseJSON+          = withObject "Tokens"+              (\ o ->+                 Tokens' <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#tokenList")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Tokens where+        toJSON Tokens'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _tEtag, Just ("kind" .= _tKind),+                  ("items" .=) <$> _tItems])++-- | Custom fields of the user.+--+-- /See:/ 'userCustomSchemas' smart constructor.+newtype UserCustomSchemas =+  UserCustomSchemas'+    { _ucsAddtional :: HashMap Text UserCustomProperties+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserCustomSchemas' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ucsAddtional'+userCustomSchemas+    :: HashMap Text UserCustomProperties -- ^ 'ucsAddtional'+    -> UserCustomSchemas+userCustomSchemas pUcsAddtional_ =+  UserCustomSchemas' {_ucsAddtional = _Coerce # pUcsAddtional_}+++ucsAddtional :: Lens' UserCustomSchemas (HashMap Text UserCustomProperties)+ucsAddtional+  = lens _ucsAddtional (\ s a -> s{_ucsAddtional = a})+      . _Coerce++instance FromJSON UserCustomSchemas where+        parseJSON+          = withObject "UserCustomSchemas"+              (\ o -> UserCustomSchemas' <$> (parseJSONObject o))++instance ToJSON UserCustomSchemas where+        toJSON = toJSON . _ucsAddtional++-- | JSON template for a keyword entry.+--+-- /See:/ 'userKeyword' smart constructor.+data UserKeyword =+  UserKeyword'+    { _ukValue      :: !(Maybe Text)+    , _ukType       :: !(Maybe Text)+    , _ukCustomType :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserKeyword' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ukValue'+--+-- * 'ukType'+--+-- * 'ukCustomType'+userKeyword+    :: UserKeyword+userKeyword =+  UserKeyword' {_ukValue = Nothing, _ukType = Nothing, _ukCustomType = Nothing}+++-- | Keyword.+ukValue :: Lens' UserKeyword (Maybe Text)+ukValue = lens _ukValue (\ s a -> s{_ukValue = a})++-- | Each entry can have a type which indicates standard type of that entry.+-- For example, keyword could be of type occupation or outlook. In addition+-- to the standard type, an entry can have a custom type and can give it+-- any name. Such types should have the CUSTOM value as type and also have+-- a customType value.+ukType :: Lens' UserKeyword (Maybe Text)+ukType = lens _ukType (\ s a -> s{_ukType = a})++-- | Custom Type.+ukCustomType :: Lens' UserKeyword (Maybe Text)+ukCustomType+  = lens _ukCustomType (\ s a -> s{_ukCustomType = a})++instance FromJSON UserKeyword where+        parseJSON+          = withObject "UserKeyword"+              (\ o ->+                 UserKeyword' <$>+                   (o .:? "value") <*> (o .:? "type") <*>+                     (o .:? "customType"))++instance ToJSON UserKeyword where+        toJSON UserKeyword'{..}+          = object+              (catMaybes+                 [("value" .=) <$> _ukValue, ("type" .=) <$> _ukType,+                  ("customType" .=) <$> _ukCustomType])++-- | JSON response template to list domain aliases in Directory API.+--+-- /See:/ 'domainAliases' smart constructor.+data DomainAliases =+  DomainAliases'+    { _daEtag          :: !(Maybe Text)+    , _daKind          :: !Text+    , _daDomainAliases :: !(Maybe [DomainAlias])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DomainAliases' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'daEtag'+--+-- * 'daKind'+--+-- * 'daDomainAliases'+domainAliases+    :: DomainAliases+domainAliases =+  DomainAliases'+    { _daEtag = Nothing+    , _daKind = "admin#directory#domainAliases"+    , _daDomainAliases = Nothing+    }+++-- | ETag of the resource.+daEtag :: Lens' DomainAliases (Maybe Text)+daEtag = lens _daEtag (\ s a -> s{_daEtag = a})++-- | Kind of resource this is.+daKind :: Lens' DomainAliases Text+daKind = lens _daKind (\ s a -> s{_daKind = a})++-- | List of domain alias objects.+daDomainAliases :: Lens' DomainAliases [DomainAlias]+daDomainAliases+  = lens _daDomainAliases+      (\ s a -> s{_daDomainAliases = a})+      . _Default+      . _Coerce++instance FromJSON DomainAliases where+        parseJSON+          = withObject "DomainAliases"+              (\ o ->+                 DomainAliases' <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#domainAliases")+                     <*> (o .:? "domainAliases" .!= mempty))++instance ToJSON DomainAliases where+        toJSON DomainAliases'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _daEtag, Just ("kind" .= _daKind),+                  ("domainAliases" .=) <$> _daDomainAliases])++-- | JSON response template to list aliases in Directory API.+--+-- /See:/ 'aliases' smart constructor.+data Aliases =+  Aliases'+    { _aliEtag    :: !(Maybe Text)+    , _aliKind    :: !Text+    , _aliAliases :: !(Maybe [JSONValue])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Aliases' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aliEtag'+--+-- * 'aliKind'+--+-- * 'aliAliases'+aliases+    :: Aliases+aliases =+  Aliases'+    { _aliEtag = Nothing+    , _aliKind = "admin#directory#aliases"+    , _aliAliases = Nothing+    }+++-- | ETag of the resource.+aliEtag :: Lens' Aliases (Maybe Text)+aliEtag = lens _aliEtag (\ s a -> s{_aliEtag = a})++-- | Kind of resource this is.+aliKind :: Lens' Aliases Text+aliKind = lens _aliKind (\ s a -> s{_aliKind = a})++-- | List of alias objects.+aliAliases :: Lens' Aliases [JSONValue]+aliAliases+  = lens _aliAliases (\ s a -> s{_aliAliases = a}) .+      _Default+      . _Coerce++instance FromJSON Aliases where+        parseJSON+          = withObject "Aliases"+              (\ o ->+                 Aliases' <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#aliases")+                     <*> (o .:? "aliases" .!= mempty))++instance ToJSON Aliases where+        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+    , _crBuildingId             :: !(Maybe Text)+    , _crFeatureInstances       :: !(Maybe JSONValue)+    , _crResourceEmail          :: !(Maybe Text)+    , _crCapacity               :: !(Maybe (Textual Int32))+    , _crResourceDescription    :: !(Maybe Text)+    , _crFloorName              :: !(Maybe Text)+    , _crGeneratedResourceName  :: !(Maybe Text)+    , _crResourceCategory       :: !(Maybe Text)+    , _crFloorSection           :: !(Maybe Text)+    , _crUserVisibleDescription :: !(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'+--+-- * 'crBuildingId'+--+-- * 'crFeatureInstances'+--+-- * 'crResourceEmail'+--+-- * 'crCapacity'+--+-- * 'crResourceDescription'+--+-- * 'crFloorName'+--+-- * 'crGeneratedResourceName'+--+-- * 'crResourceCategory'+--+-- * 'crFloorSection'+--+-- * 'crUserVisibleDescription'+calendarResource+    :: CalendarResource+calendarResource =+  CalendarResource'+    { _crEtags = Nothing+    , _crResourceId = Nothing+    , _crResourceType = Nothing+    , _crResourceName = Nothing+    , _crKind = "admin#directory#resources#calendars#CalendarResource"+    , _crBuildingId = Nothing+    , _crFeatureInstances = Nothing+    , _crResourceEmail = Nothing+    , _crCapacity = Nothing+    , _crResourceDescription = Nothing+    , _crFloorName = Nothing+    , _crGeneratedResourceName = Nothing+    , _crResourceCategory = Nothing+    , _crFloorSection = Nothing+    , _crUserVisibleDescription = 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, intended for non-room resources.+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})++-- | Unique ID for the building a resource is located in.+crBuildingId :: Lens' CalendarResource (Maybe Text)+crBuildingId+  = lens _crBuildingId (\ s a -> s{_crBuildingId = a})++crFeatureInstances :: Lens' CalendarResource (Maybe JSONValue)+crFeatureInstances+  = lens _crFeatureInstances+      (\ s a -> s{_crFeatureInstances = a})++-- | The read-only email 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})++-- | Capacity of a resource, number of seats in a room.+crCapacity :: Lens' CalendarResource (Maybe Int32)+crCapacity+  = lens _crCapacity (\ s a -> s{_crCapacity = a}) .+      mapping _Coerce++-- | Description of the resource, visible only to admins.+crResourceDescription :: Lens' CalendarResource (Maybe Text)+crResourceDescription+  = lens _crResourceDescription+      (\ s a -> s{_crResourceDescription = a})++-- | Name of the floor a resource is located on.+crFloorName :: Lens' CalendarResource (Maybe Text)+crFloorName+  = lens _crFloorName (\ s a -> s{_crFloorName = a})++-- | The read-only auto-generated name of the calendar resource which+-- includes metadata about the resource such as building name, floor,+-- capacity, etc. For example, \"NYC-2-Training Room 1A (16)\".+crGeneratedResourceName :: Lens' CalendarResource (Maybe Text)+crGeneratedResourceName+  = lens _crGeneratedResourceName+      (\ s a -> s{_crGeneratedResourceName = a})++-- | The category of the calendar resource. Either CONFERENCE_ROOM or OTHER.+-- Legacy data is set to CATEGORY_UNKNOWN.+crResourceCategory :: Lens' CalendarResource (Maybe Text)+crResourceCategory+  = lens _crResourceCategory+      (\ s a -> s{_crResourceCategory = a})++-- | Name of the section within a floor a resource is located in.+crFloorSection :: Lens' CalendarResource (Maybe Text)+crFloorSection+  = lens _crFloorSection+      (\ s a -> s{_crFloorSection = a})++-- | Description of the resource, visible to users and admins.+crUserVisibleDescription :: Lens' CalendarResource (Maybe Text)+crUserVisibleDescription+  = lens _crUserVisibleDescription+      (\ s a -> s{_crUserVisibleDescription = 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 .:? "buildingId")+                     <*> (o .:? "featureInstances")+                     <*> (o .:? "resourceEmail")+                     <*> (o .:? "capacity")+                     <*> (o .:? "resourceDescription")+                     <*> (o .:? "floorName")+                     <*> (o .:? "generatedResourceName")+                     <*> (o .:? "resourceCategory")+                     <*> (o .:? "floorSection")+                     <*> (o .:? "userVisibleDescription"))++instance ToJSON CalendarResource where+        toJSON CalendarResource'{..}+          = object+              (catMaybes+                 [("etags" .=) <$> _crEtags,+                  ("resourceId" .=) <$> _crResourceId,+                  ("resourceType" .=) <$> _crResourceType,+                  ("resourceName" .=) <$> _crResourceName,+                  Just ("kind" .= _crKind),+                  ("buildingId" .=) <$> _crBuildingId,+                  ("featureInstances" .=) <$> _crFeatureInstances,+                  ("resourceEmail" .=) <$> _crResourceEmail,+                  ("capacity" .=) <$> _crCapacity,+                  ("resourceDescription" .=) <$>+                    _crResourceDescription,+                  ("floorName" .=) <$> _crFloorName,+                  ("generatedResourceName" .=) <$>+                    _crGeneratedResourceName,+                  ("resourceCategory" .=) <$> _crResourceCategory,+                  ("floorSection" .=) <$> _crFloorSection,+                  ("userVisibleDescription" .=) <$>+                    _crUserVisibleDescription])++-- | JSON request template to undelete a user in Directory API.+--+-- /See:/ 'userUndelete' smart constructor.+newtype UserUndelete =+  UserUndelete'+    { _uuOrgUnitPath :: Maybe Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserUndelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uuOrgUnitPath'+userUndelete+    :: UserUndelete+userUndelete = UserUndelete' {_uuOrgUnitPath = Nothing}+++-- | OrgUnit of User+uuOrgUnitPath :: Lens' UserUndelete (Maybe Text)+uuOrgUnitPath+  = lens _uuOrgUnitPath+      (\ s a -> s{_uuOrgUnitPath = a})++instance FromJSON UserUndelete where+        parseJSON+          = withObject "UserUndelete"+              (\ o -> UserUndelete' <$> (o .:? "orgUnitPath"))++instance ToJSON UserUndelete where+        toJSON UserUndelete'{..}+          = object+              (catMaybes [("orgUnitPath" .=) <$> _uuOrgUnitPath])++-- | JSON response template for List Members operation in Directory API.+--+-- /See:/ 'members' smart constructor.+data Members =+  Members'+    { _mEtag          :: !(Maybe Text)+    , _mNextPageToken :: !(Maybe Text)+    , _mKind          :: !Text+    , _mMembers       :: !(Maybe [Member])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Members' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mEtag'+--+-- * 'mNextPageToken'+--+-- * 'mKind'+--+-- * 'mMembers'+members+    :: Members+members =+  Members'+    { _mEtag = Nothing+    , _mNextPageToken = Nothing+    , _mKind = "admin#directory#members"+    , _mMembers = Nothing+    }+++-- | ETag of the resource.+mEtag :: Lens' Members (Maybe Text)+mEtag = lens _mEtag (\ s a -> s{_mEtag = a})++-- | Token used to access next page of this result.+mNextPageToken :: Lens' Members (Maybe Text)+mNextPageToken+  = lens _mNextPageToken+      (\ s a -> s{_mNextPageToken = a})++-- | Kind of resource this is.+mKind :: Lens' Members Text+mKind = lens _mKind (\ s a -> s{_mKind = a})++-- | List of member objects.+mMembers :: Lens' Members [Member]+mMembers+  = lens _mMembers (\ s a -> s{_mMembers = a}) .+      _Default+      . _Coerce++instance FromJSON Members where+        parseJSON+          = withObject "Members"+              (\ o ->+                 Members' <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "admin#directory#members")+                     <*> (o .:? "members" .!= mempty))++instance ToJSON Members where+        toJSON Members'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _mEtag,+                  ("nextPageToken" .=) <$> _mNextPageToken,+                  Just ("kind" .= _mKind),+                  ("members" .=) <$> _mMembers])++-- | An notification channel used to watch for resource changes.+--+-- /See:/ 'channel' smart constructor.+data Channel =+  Channel'+    { _cResourceURI :: !(Maybe Text)+    , _cResourceId  :: !(Maybe Text)+    , _cKind        :: !Text+    , _cExpiration  :: !(Maybe (Textual Int64))+    , _cToken       :: !(Maybe Text)+    , _cAddress     :: !(Maybe Text)+    , _cPayload     :: !(Maybe Bool)+    , _cParams      :: !(Maybe ChannelParams)+    , _cId          :: !(Maybe Text)+    , _cType        :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Channel' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cResourceURI'+--+-- * 'cResourceId'+--+-- * 'cKind'+--+-- * 'cExpiration'+--+-- * 'cToken'+--+-- * 'cAddress'+--+-- * 'cPayload'+--+-- * 'cParams'+--+-- * 'cId'+--+-- * 'cType'+channel+    :: Channel+channel =+  Channel'+    { _cResourceURI = Nothing+    , _cResourceId = Nothing+    , _cKind = "api#channel"+    , _cExpiration = Nothing+    , _cToken = Nothing+    , _cAddress = Nothing+    , _cPayload = Nothing+    , _cParams = Nothing+    , _cId = Nothing+    , _cType = Nothing+    }+++-- | A version-specific identifier for the watched resource.+cResourceURI :: Lens' Channel (Maybe Text)+cResourceURI+  = lens _cResourceURI (\ s a -> s{_cResourceURI = a})++-- | An opaque ID that identifies the resource being watched on this channel.+-- Stable across different API versions.+cResourceId :: Lens' Channel (Maybe Text)+cResourceId+  = lens _cResourceId (\ s a -> s{_cResourceId = a})++-- | Identifies this as a notification channel used to watch for changes to a+-- resource. Value: the fixed string \"api#channel\".+cKind :: Lens' Channel Text+cKind = lens _cKind (\ s a -> s{_cKind = a})++-- | Date and time of notification channel expiration, expressed as a Unix+-- timestamp, in milliseconds. Optional.+cExpiration :: Lens' Channel (Maybe Int64)+cExpiration+  = lens _cExpiration (\ s a -> s{_cExpiration = a}) .+      mapping _Coerce++-- | An arbitrary string delivered to the target address with each+-- notification delivered over this channel. Optional.+cToken :: Lens' Channel (Maybe Text)+cToken = lens _cToken (\ s a -> s{_cToken = a})++-- | The address where notifications are delivered for this channel.+cAddress :: Lens' Channel (Maybe Text)+cAddress = lens _cAddress (\ s a -> s{_cAddress = a})++-- | A Boolean value to indicate whether payload is wanted. Optional.+cPayload :: Lens' Channel (Maybe Bool)+cPayload = lens _cPayload (\ s a -> s{_cPayload = a})++-- | Additional parameters controlling delivery channel behavior. Optional.+cParams :: Lens' Channel (Maybe ChannelParams)+cParams = lens _cParams (\ s a -> s{_cParams = a})++-- | A UUID or similar unique string that identifies this channel.+cId :: Lens' Channel (Maybe Text)+cId = lens _cId (\ s a -> s{_cId = a})++-- | The type of delivery mechanism used for this channel.+cType :: Lens' Channel (Maybe Text)+cType = lens _cType (\ s a -> s{_cType = a})++instance FromJSON Channel where+        parseJSON+          = withObject "Channel"+              (\ o ->+                 Channel' <$>+                   (o .:? "resourceUri") <*> (o .:? "resourceId") <*>+                     (o .:? "kind" .!= "api#channel")+                     <*> (o .:? "expiration")+                     <*> (o .:? "token")+                     <*> (o .:? "address")+                     <*> (o .:? "payload")+                     <*> (o .:? "params")+                     <*> (o .:? "id")+                     <*> (o .:? "type"))++instance ToJSON Channel where+        toJSON Channel'{..}+          = object+              (catMaybes+                 [("resourceUri" .=) <$> _cResourceURI,+                  ("resourceId" .=) <$> _cResourceId,+                  Just ("kind" .= _cKind),+                  ("expiration" .=) <$> _cExpiration,+                  ("token" .=) <$> _cToken,+                  ("address" .=) <$> _cAddress,+                  ("payload" .=) <$> _cPayload,+                  ("params" .=) <$> _cParams, ("id" .=) <$> _cId,+                  ("type" .=) <$> _cType])++-- | JSON response template for List Mobile Devices operation in Directory+-- API.+--+-- /See:/ 'mobileDevices' smart constructor.+data MobileDevices =+  MobileDevices'+    { _mdEtag          :: !(Maybe Text)+    , _mdNextPageToken :: !(Maybe Text)+    , _mdKind          :: !Text+    , _mdMobileDevices :: !(Maybe [MobileDevice])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'MobileDevices' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdEtag'+--+-- * 'mdNextPageToken'+--+-- * 'mdKind'+--+-- * 'mdMobileDevices'+mobileDevices+    :: MobileDevices+mobileDevices =+  MobileDevices'+    { _mdEtag = Nothing+    , _mdNextPageToken = Nothing+    , _mdKind = "admin#directory#mobiledevices"+    , _mdMobileDevices = Nothing+    }+++-- | ETag of the resource.+mdEtag :: Lens' MobileDevices (Maybe Text)+mdEtag = lens _mdEtag (\ s a -> s{_mdEtag = a})++-- | Token used to access next page of this result.+mdNextPageToken :: Lens' MobileDevices (Maybe Text)+mdNextPageToken+  = lens _mdNextPageToken+      (\ s a -> s{_mdNextPageToken = a})++-- | Kind of resource this is.+mdKind :: Lens' MobileDevices Text+mdKind = lens _mdKind (\ s a -> s{_mdKind = a})++-- | List of Mobile Device objects.+mdMobileDevices :: Lens' MobileDevices [MobileDevice]+mdMobileDevices+  = lens _mdMobileDevices+      (\ s a -> s{_mdMobileDevices = a})+      . _Default+      . _Coerce++instance FromJSON MobileDevices where+        parseJSON+          = withObject "MobileDevices"+              (\ o ->+                 MobileDevices' <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "admin#directory#mobiledevices")+                     <*> (o .:? "mobiledevices" .!= mempty))++instance ToJSON MobileDevices where+        toJSON MobileDevices'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _mdEtag,+                  ("nextPageToken" .=) <$> _mdNextPageToken,+                  Just ("kind" .= _mdKind),+                  ("mobiledevices" .=) <$> _mdMobileDevices])++-- | JSON template for token resource in Directory API.+--+-- /See:/ 'token' smart constructor.+data Token =+  Token'+    { _tokClientId    :: !(Maybe Text)+    , _tokEtag        :: !(Maybe Text)+    , _tokDisplayText :: !(Maybe Text)+    , _tokKind        :: !Text+    , _tokScopes      :: !(Maybe [Text])+    , _tokNATiveApp   :: !(Maybe Bool)+    , _tokAnonymous   :: !(Maybe Bool)+    , _tokUserKey     :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Token' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tokClientId'+--+-- * 'tokEtag'+--+-- * 'tokDisplayText'+--+-- * 'tokKind'+--+-- * 'tokScopes'+--+-- * 'tokNATiveApp'+--+-- * 'tokAnonymous'+--+-- * 'tokUserKey'+token+    :: Token+token =+  Token'+    { _tokClientId = Nothing+    , _tokEtag = Nothing+    , _tokDisplayText = Nothing+    , _tokKind = "admin#directory#token"+    , _tokScopes = Nothing+    , _tokNATiveApp = Nothing+    , _tokAnonymous = Nothing+    , _tokUserKey = Nothing+    }+++-- | The Client ID of the application the token is issued to.+tokClientId :: Lens' Token (Maybe Text)+tokClientId+  = lens _tokClientId (\ s a -> s{_tokClientId = a})++-- | ETag of the resource.+tokEtag :: Lens' Token (Maybe Text)+tokEtag = lens _tokEtag (\ s a -> s{_tokEtag = a})++-- | The displayable name of the application the token is issued to.+tokDisplayText :: Lens' Token (Maybe Text)+tokDisplayText+  = lens _tokDisplayText+      (\ s a -> s{_tokDisplayText = a})++-- | The type of the API resource. This is always admin#directory#token.+tokKind :: Lens' Token Text+tokKind = lens _tokKind (\ s a -> s{_tokKind = a})++-- | A list of authorization scopes the application is granted.+tokScopes :: Lens' Token [Text]+tokScopes+  = lens _tokScopes (\ s a -> s{_tokScopes = a}) .+      _Default+      . _Coerce++-- | Whether the token is issued to an installed application. The value is+-- true if the application is installed to a desktop or mobile device.+tokNATiveApp :: Lens' Token (Maybe Bool)+tokNATiveApp+  = lens _tokNATiveApp (\ s a -> s{_tokNATiveApp = a})++-- | Whether the application is registered with Google. The value is true if+-- the application has an anonymous Client ID.+tokAnonymous :: Lens' Token (Maybe Bool)+tokAnonymous+  = lens _tokAnonymous (\ s a -> s{_tokAnonymous = a})++-- | The unique ID of the user that issued the token.+tokUserKey :: Lens' Token (Maybe Text)+tokUserKey+  = lens _tokUserKey (\ s a -> s{_tokUserKey = a})++instance FromJSON Token where+        parseJSON+          = withObject "Token"+              (\ o ->+                 Token' <$>+                   (o .:? "clientId") <*> (o .:? "etag") <*>+                     (o .:? "displayText")+                     <*> (o .:? "kind" .!= "admin#directory#token")+                     <*> (o .:? "scopes" .!= mempty)+                     <*> (o .:? "nativeApp")+                     <*> (o .:? "anonymous")+                     <*> (o .:? "userKey"))++instance ToJSON Token where+        toJSON Token'{..}+          = object+              (catMaybes+                 [("clientId" .=) <$> _tokClientId,+                  ("etag" .=) <$> _tokEtag,+                  ("displayText" .=) <$> _tokDisplayText,+                  Just ("kind" .= _tokKind),+                  ("scopes" .=) <$> _tokScopes,+                  ("nativeApp" .=) <$> _tokNATiveApp,+                  ("anonymous" .=) <$> _tokAnonymous,+                  ("userKey" .=) <$> _tokUserKey])++-- | JSON template for name of a user in Directory API.+--+-- /See:/ 'userName' smart constructor.+data UserName =+  UserName'+    { _unGivenName  :: !(Maybe Text)+    , _unFullName   :: !(Maybe Text)+    , _unFamilyName :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserName' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'unGivenName'+--+-- * 'unFullName'+--+-- * 'unFamilyName'+userName+    :: UserName+userName =+  UserName'+    {_unGivenName = Nothing, _unFullName = Nothing, _unFamilyName = Nothing}+++-- | First Name+unGivenName :: Lens' UserName (Maybe Text)+unGivenName+  = lens _unGivenName (\ s a -> s{_unGivenName = a})++-- | Full Name+unFullName :: Lens' UserName (Maybe Text)+unFullName+  = lens _unFullName (\ s a -> s{_unFullName = a})++-- | Last Name+unFamilyName :: Lens' UserName (Maybe Text)+unFamilyName+  = lens _unFamilyName (\ s a -> s{_unFamilyName = a})++instance FromJSON UserName where+        parseJSON+          = withObject "UserName"+              (\ o ->+                 UserName' <$>+                   (o .:? "givenName") <*> (o .:? "fullName") <*>+                     (o .:? "familyName"))++instance ToJSON UserName where+        toJSON UserName'{..}+          = object+              (catMaybes+                 [("givenName" .=) <$> _unGivenName,+                  ("fullName" .=) <$> _unFullName,+                  ("familyName" .=) <$> _unFamilyName])++-- | JSON template for Building object in Directory API.+--+-- /See:/ 'building' smart constructor.+data Building =+  Building'+    { _buiEtags        :: !(Maybe Text)+    , _buiKind         :: !Text+    , _buiBuildingId   :: !(Maybe Text)+    , _buiAddress      :: !(Maybe BuildingAddress)+    , _buiCoordinates  :: !(Maybe BuildingCoordinates)+    , _buiBuildingName :: !(Maybe Text)+    , _buiFloorNames   :: !(Maybe [Text])+    , _buiDescription  :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Building' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'buiEtags'+--+-- * 'buiKind'+--+-- * 'buiBuildingId'+--+-- * 'buiAddress'+--+-- * 'buiCoordinates'+--+-- * 'buiBuildingName'+--+-- * 'buiFloorNames'+--+-- * 'buiDescription'+building+    :: Building+building =+  Building'+    { _buiEtags = Nothing+    , _buiKind = "admin#directory#resources#buildings#Building"+    , _buiBuildingId = Nothing+    , _buiAddress = Nothing+    , _buiCoordinates = Nothing+    , _buiBuildingName = Nothing+    , _buiFloorNames = Nothing+    , _buiDescription = Nothing+    }+++-- | ETag of the resource.+buiEtags :: Lens' Building (Maybe Text)+buiEtags = lens _buiEtags (\ s a -> s{_buiEtags = a})++-- | Kind of resource this is.+buiKind :: Lens' Building Text+buiKind = lens _buiKind (\ s a -> s{_buiKind = a})++-- | Unique identifier for the building. The maximum length is 100+-- characters.+buiBuildingId :: Lens' Building (Maybe Text)+buiBuildingId+  = lens _buiBuildingId+      (\ s a -> s{_buiBuildingId = a})++-- | The postal address of the building. See PostalAddress for details. Note+-- that only a single address line and region code are required.+buiAddress :: Lens' Building (Maybe BuildingAddress)+buiAddress+  = lens _buiAddress (\ s a -> s{_buiAddress = a})++-- | The geographic coordinates of the center of the building, expressed as+-- latitude and longitude in decimal degrees.+buiCoordinates :: Lens' Building (Maybe BuildingCoordinates)+buiCoordinates+  = lens _buiCoordinates+      (\ s a -> s{_buiCoordinates = a})++-- | The building name as seen by users in Calendar. Must be unique for the+-- customer. For example, \"NYC-CHEL\". The maximum length is 100+-- characters.+buiBuildingName :: Lens' Building (Maybe Text)+buiBuildingName+  = lens _buiBuildingName+      (\ s a -> s{_buiBuildingName = a})++-- | The display names for all floors in this building. The floors are+-- expected to be sorted in ascending order, from lowest floor to highest+-- floor. For example, [\"B2\", \"B1\", \"L\", \"1\", \"2\", \"2M\", \"3\",+-- \"PH\"] Must contain at least one entry.+buiFloorNames :: Lens' Building [Text]+buiFloorNames+  = lens _buiFloorNames+      (\ s a -> s{_buiFloorNames = a})+      . _Default+      . _Coerce++-- | A brief description of the building. For example, \"Chelsea Market\".+buiDescription :: Lens' Building (Maybe Text)+buiDescription+  = lens _buiDescription+      (\ s a -> s{_buiDescription = a})++instance FromJSON Building where+        parseJSON+          = withObject "Building"+              (\ o ->+                 Building' <$>+                   (o .:? "etags") <*>+                     (o .:? "kind" .!=+                        "admin#directory#resources#buildings#Building")+                     <*> (o .:? "buildingId")+                     <*> (o .:? "address")+                     <*> (o .:? "coordinates")+                     <*> (o .:? "buildingName")+                     <*> (o .:? "floorNames" .!= mempty)+                     <*> (o .:? "description"))++instance ToJSON Building where+        toJSON Building'{..}+          = object+              (catMaybes+                 [("etags" .=) <$> _buiEtags,+                  Just ("kind" .= _buiKind),+                  ("buildingId" .=) <$> _buiBuildingId,+                  ("address" .=) <$> _buiAddress,+                  ("coordinates" .=) <$> _buiCoordinates,+                  ("buildingName" .=) <$> _buiBuildingName,+                  ("floorNames" .=) <$> _buiFloorNames,+                  ("description" .=) <$> _buiDescription])++--+-- /See:/ 'chromeOSDeviceRecentUsersItem' smart constructor.+data ChromeOSDeviceRecentUsersItem =+  ChromeOSDeviceRecentUsersItem'+    { _codruiEmail :: !(Maybe Text)+    , _codruiType  :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ChromeOSDeviceRecentUsersItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'codruiEmail'+--+-- * 'codruiType'+chromeOSDeviceRecentUsersItem+    :: ChromeOSDeviceRecentUsersItem+chromeOSDeviceRecentUsersItem =+  ChromeOSDeviceRecentUsersItem' {_codruiEmail = Nothing, _codruiType = Nothing}+++-- | Email address of the user. Present only if the user type is managed+codruiEmail :: Lens' ChromeOSDeviceRecentUsersItem (Maybe Text)+codruiEmail+  = lens _codruiEmail (\ s a -> s{_codruiEmail = a})++-- | The type of the user+codruiType :: Lens' ChromeOSDeviceRecentUsersItem (Maybe Text)+codruiType+  = lens _codruiType (\ s a -> s{_codruiType = a})++instance FromJSON ChromeOSDeviceRecentUsersItem where+        parseJSON+          = withObject "ChromeOSDeviceRecentUsersItem"+              (\ o ->+                 ChromeOSDeviceRecentUsersItem' <$>+                   (o .:? "email") <*> (o .:? "type"))++instance ToJSON ChromeOSDeviceRecentUsersItem where+        toJSON ChromeOSDeviceRecentUsersItem'{..}+          = object+              (catMaybes+                 [("email" .=) <$> _codruiEmail,+                  ("type" .=) <$> _codruiType])++-- | JSON template for Domain Alias object in Directory API.+--+-- /See:/ 'domainAlias' smart constructor.+data DomainAlias =+  DomainAlias'+    { _dCreationTime     :: !(Maybe (Textual Int64))+    , _dEtag             :: !(Maybe Text)+    , _dKind             :: !Text+    , _dVerified         :: !(Maybe Bool)+    , _dDomainAliasName  :: !(Maybe Text)+    , _dParentDomainName :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DomainAlias' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dCreationTime'+--+-- * 'dEtag'+--+-- * 'dKind'+--+-- * 'dVerified'+--+-- * 'dDomainAliasName'+--+-- * 'dParentDomainName'+domainAlias+    :: DomainAlias+domainAlias =+  DomainAlias'+    { _dCreationTime = Nothing+    , _dEtag = Nothing+    , _dKind = "admin#directory#domainAlias"+    , _dVerified = Nothing+    , _dDomainAliasName = Nothing+    , _dParentDomainName = Nothing+    }+++-- | The creation time of the domain alias. (Read-only).+dCreationTime :: Lens' DomainAlias (Maybe Int64)+dCreationTime+  = lens _dCreationTime+      (\ s a -> s{_dCreationTime = a})+      . mapping _Coerce++-- | ETag of the resource.+dEtag :: Lens' DomainAlias (Maybe Text)+dEtag = lens _dEtag (\ s a -> s{_dEtag = a})++-- | Kind of resource this is.+dKind :: Lens' DomainAlias Text+dKind = lens _dKind (\ s a -> s{_dKind = a})++-- | Indicates the verification state of a domain alias. (Read-only)+dVerified :: Lens' DomainAlias (Maybe Bool)+dVerified+  = lens _dVerified (\ s a -> s{_dVerified = a})++-- | The domain alias name.+dDomainAliasName :: Lens' DomainAlias (Maybe Text)+dDomainAliasName+  = lens _dDomainAliasName+      (\ s a -> s{_dDomainAliasName = a})++-- | The parent domain name that the domain alias is associated with. This+-- can either be a primary or secondary domain name within a customer.+dParentDomainName :: Lens' DomainAlias (Maybe Text)+dParentDomainName+  = lens _dParentDomainName+      (\ s a -> s{_dParentDomainName = a})++instance FromJSON DomainAlias where+        parseJSON+          = withObject "DomainAlias"+              (\ o ->+                 DomainAlias' <$>+                   (o .:? "creationTime") <*> (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#domainAlias")+                     <*> (o .:? "verified")+                     <*> (o .:? "domainAliasName")+                     <*> (o .:? "parentDomainName"))++instance ToJSON DomainAlias where+        toJSON DomainAlias'{..}+          = object+              (catMaybes+                 [("creationTime" .=) <$> _dCreationTime,+                  ("etag" .=) <$> _dEtag, Just ("kind" .= _dKind),+                  ("verified" .=) <$> _dVerified,+                  ("domainAliasName" .=) <$> _dDomainAliasName,+                  ("parentDomainName" .=) <$> _dParentDomainName])++--+-- /See:/ 'userGender' smart constructor.+data UserGender =+  UserGender'+    { _ugAddressMeAs  :: !(Maybe Text)+    , _ugCustomGender :: !(Maybe Text)+    , _ugType         :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserGender' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ugAddressMeAs'+--+-- * 'ugCustomGender'+--+-- * 'ugType'+userGender+    :: UserGender+userGender =+  UserGender'+    {_ugAddressMeAs = Nothing, _ugCustomGender = Nothing, _ugType = Nothing}+++-- | AddressMeAs. A human-readable string containing the proper way to refer+-- to the profile owner by humans, for example \"he\/him\/his\" or+-- \"they\/them\/their\".+ugAddressMeAs :: Lens' UserGender (Maybe Text)+ugAddressMeAs+  = lens _ugAddressMeAs+      (\ s a -> s{_ugAddressMeAs = a})++-- | Custom gender.+ugCustomGender :: Lens' UserGender (Maybe Text)+ugCustomGender+  = lens _ugCustomGender+      (\ s a -> s{_ugCustomGender = a})++-- | Gender.+ugType :: Lens' UserGender (Maybe Text)+ugType = lens _ugType (\ s a -> s{_ugType = a})++instance FromJSON UserGender where+        parseJSON+          = withObject "UserGender"+              (\ o ->+                 UserGender' <$>+                   (o .:? "addressMeAs") <*> (o .:? "customGender") <*>+                     (o .:? "type"))++instance ToJSON UserGender where+        toJSON UserGender'{..}+          = object+              (catMaybes+                 [("addressMeAs" .=) <$> _ugAddressMeAs,+                  ("customGender" .=) <$> _ugCustomGender,+                  ("type" .=) <$> _ugType])++-- | JSON template for Alias object in Directory API.+--+-- /See:/ 'alias' smart constructor.+data Alias =+  Alias'+    { _aaEtag         :: !(Maybe Text)+    , _aaKind         :: !Text+    , _aaAlias        :: !(Maybe Text)+    , _aaId           :: !(Maybe Text)+    , _aaPrimaryEmail :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Alias' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aaEtag'+--+-- * 'aaKind'+--+-- * 'aaAlias'+--+-- * 'aaId'+--+-- * 'aaPrimaryEmail'+alias+    :: Alias+alias =+  Alias'+    { _aaEtag = Nothing+    , _aaKind = "admin#directory#alias"+    , _aaAlias = Nothing+    , _aaId = Nothing+    , _aaPrimaryEmail = Nothing+    }+++-- | ETag of the resource.+aaEtag :: Lens' Alias (Maybe Text)+aaEtag = lens _aaEtag (\ s a -> s{_aaEtag = a})++-- | Kind of resource this is.+aaKind :: Lens' Alias Text+aaKind = lens _aaKind (\ s a -> s{_aaKind = a})++-- | A alias email+aaAlias :: Lens' Alias (Maybe Text)+aaAlias = lens _aaAlias (\ s a -> s{_aaAlias = a})++-- | Unique id of the group (Read-only) Unique id of the user (Read-only)+aaId :: Lens' Alias (Maybe Text)+aaId = lens _aaId (\ s a -> s{_aaId = a})++-- | Group\'s primary email (Read-only) User\'s primary email (Read-only)+aaPrimaryEmail :: Lens' Alias (Maybe Text)+aaPrimaryEmail+  = lens _aaPrimaryEmail+      (\ s a -> s{_aaPrimaryEmail = a})++instance FromJSON Alias where+        parseJSON+          = withObject "Alias"+              (\ o ->+                 Alias' <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#alias")+                     <*> (o .:? "alias")+                     <*> (o .:? "id")+                     <*> (o .:? "primaryEmail"))++instance ToJSON Alias where+        toJSON Alias'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _aaEtag, Just ("kind" .= _aaKind),+                  ("alias" .=) <$> _aaAlias, ("id" .=) <$> _aaId,+                  ("primaryEmail" .=) <$> _aaPrimaryEmail])++-- | JSON template for Schema resource in Directory API.+--+-- /See:/ 'schema' smart constructor.+data Schema =+  Schema'+    { _schEtag        :: !(Maybe Text)+    , _schKind        :: !Text+    , _schSchemaName  :: !(Maybe Text)+    , _schSchemaId    :: !(Maybe Text)+    , _schDisplayName :: !(Maybe Text)+    , _schFields      :: !(Maybe [SchemaFieldSpec])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Schema' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'schEtag'+--+-- * 'schKind'+--+-- * 'schSchemaName'+--+-- * 'schSchemaId'+--+-- * 'schDisplayName'+--+-- * 'schFields'+schema+    :: Schema+schema =+  Schema'+    { _schEtag = Nothing+    , _schKind = "admin#directory#schema"+    , _schSchemaName = Nothing+    , _schSchemaId = Nothing+    , _schDisplayName = Nothing+    , _schFields = Nothing+    }+++-- | ETag of the resource.+schEtag :: Lens' Schema (Maybe Text)+schEtag = lens _schEtag (\ s a -> s{_schEtag = a})++-- | Kind of resource this is.+schKind :: Lens' Schema Text+schKind = lens _schKind (\ s a -> s{_schKind = a})++-- | Schema name+schSchemaName :: Lens' Schema (Maybe Text)+schSchemaName+  = lens _schSchemaName+      (\ s a -> s{_schSchemaName = a})++-- | Unique identifier of Schema (Read-only)+schSchemaId :: Lens' Schema (Maybe Text)+schSchemaId+  = lens _schSchemaId (\ s a -> s{_schSchemaId = a})++-- | Display name for the schema.+schDisplayName :: Lens' Schema (Maybe Text)+schDisplayName+  = lens _schDisplayName+      (\ s a -> s{_schDisplayName = a})++-- | Fields of Schema+schFields :: Lens' Schema [SchemaFieldSpec]+schFields+  = lens _schFields (\ s a -> s{_schFields = a}) .+      _Default+      . _Coerce++instance FromJSON Schema where+        parseJSON+          = withObject "Schema"+              (\ o ->+                 Schema' <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#schema")+                     <*> (o .:? "schemaName")+                     <*> (o .:? "schemaId")+                     <*> (o .:? "displayName")+                     <*> (o .:? "fields" .!= mempty))++instance ToJSON Schema where+        toJSON Schema'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _schEtag, Just ("kind" .= _schKind),+                  ("schemaName" .=) <$> _schSchemaName,+                  ("schemaId" .=) <$> _schSchemaId,+                  ("displayName" .=) <$> _schDisplayName,+                  ("fields" .=) <$> _schFields])++-- | JSON request template for moving ChromeOs Device to given OU in+-- Directory Devices API.+--+-- /See:/ 'chromeOSMoveDevicesToOu' smart constructor.+newtype ChromeOSMoveDevicesToOu =+  ChromeOSMoveDevicesToOu'+    { _comdtoDeviceIds :: Maybe [Text]+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ChromeOSMoveDevicesToOu' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'comdtoDeviceIds'+chromeOSMoveDevicesToOu+    :: ChromeOSMoveDevicesToOu+chromeOSMoveDevicesToOu = ChromeOSMoveDevicesToOu' {_comdtoDeviceIds = Nothing}+++-- | ChromeOs Devices to be moved to OU+comdtoDeviceIds :: Lens' ChromeOSMoveDevicesToOu [Text]+comdtoDeviceIds+  = lens _comdtoDeviceIds+      (\ s a -> s{_comdtoDeviceIds = a})+      . _Default+      . _Coerce++instance FromJSON ChromeOSMoveDevicesToOu where+        parseJSON+          = withObject "ChromeOSMoveDevicesToOu"+              (\ o ->+                 ChromeOSMoveDevicesToOu' <$>+                   (o .:? "deviceIds" .!= mempty))++instance ToJSON ChromeOSMoveDevicesToOu where+        toJSON ChromeOSMoveDevicesToOu'{..}+          = object+              (catMaybes [("deviceIds" .=) <$> _comdtoDeviceIds])++-- | JSON template for User object in Directory API.+--+-- /See:/ 'user' smart constructor.+data User =+  User'+    { _useCreationTime               :: !(Maybe DateTime')+    , _useLastLoginTime              :: !(Maybe DateTime')+    , _useThumbnailPhotoEtag         :: !(Maybe Text)+    , _useEtag                       :: !(Maybe Text)+    , _usePosixAccounts              :: !(Maybe JSONValue)+    , _useIPWhiteListed              :: !(Maybe Bool)+    , _useRelations                  :: !(Maybe JSONValue)+    , _useSSHPublicKeys              :: !(Maybe JSONValue)+    , _useHashFunction               :: !(Maybe Text)+    , _useKind                       :: !Text+    , _useChangePasswordAtNextLogin  :: !(Maybe Bool)+    , _useWebsites                   :: !(Maybe JSONValue)+    , _useAddresses                  :: !(Maybe JSONValue)+    , _useAliases                    :: !(Maybe [Text])+    , _useThumbnailPhotoURL          :: !(Maybe Text)+    , _useExternalIds                :: !(Maybe JSONValue)+    , _useSuspended                  :: !(Maybe Bool)+    , _useAgreedToTerms              :: !(Maybe Bool)+    , _useDeletionTime               :: !(Maybe DateTime')+    , _useNonEditableAliases         :: !(Maybe [Text])+    , _useOrgUnitPath                :: !(Maybe Text)+    , _useCustomerId                 :: !(Maybe Text)+    , _useLanguages                  :: !(Maybe JSONValue)+    , _useIncludeInGlobalAddressList :: !(Maybe Bool)+    , _useGender                     :: !(Maybe JSONValue)+    , _usePhones                     :: !(Maybe JSONValue)+    , _useName                       :: !(Maybe UserName)+    , _usePassword                   :: !(Maybe Text)+    , _useEmails                     :: !(Maybe JSONValue)+    , _useIms                        :: !(Maybe JSONValue)+    , _useKeywords                   :: !(Maybe JSONValue)+    , _useIsAdmin                    :: !(Maybe Bool)+    , _useIsEnrolledIn2Sv            :: !(Maybe Bool)+    , _useId                         :: !(Maybe Text)+    , _useOrganizations              :: !(Maybe JSONValue)+    , _usePrimaryEmail               :: !(Maybe Text)+    , _useIsEnforcedIn2Sv            :: !(Maybe Bool)+    , _useNotes                      :: !(Maybe JSONValue)+    , _useIsDelegatedAdmin           :: !(Maybe Bool)+    , _useLocations                  :: !(Maybe JSONValue)+    , _useArchived                   :: !(Maybe Bool)+    , _useIsMailboxSetup             :: !(Maybe Bool)+    , _useCustomSchemas              :: !(Maybe UserCustomSchemas)+    , _useSuspensionReason           :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'User' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'useCreationTime'+--+-- * 'useLastLoginTime'+--+-- * 'useThumbnailPhotoEtag'+--+-- * 'useEtag'+--+-- * 'usePosixAccounts'+--+-- * 'useIPWhiteListed'+--+-- * 'useRelations'+--+-- * 'useSSHPublicKeys'+--+-- * 'useHashFunction'+--+-- * 'useKind'+--+-- * 'useChangePasswordAtNextLogin'+--+-- * 'useWebsites'+--+-- * 'useAddresses'+--+-- * 'useAliases'+--+-- * 'useThumbnailPhotoURL'+--+-- * 'useExternalIds'+--+-- * 'useSuspended'+--+-- * 'useAgreedToTerms'+--+-- * 'useDeletionTime'+--+-- * 'useNonEditableAliases'+--+-- * 'useOrgUnitPath'+--+-- * 'useCustomerId'+--+-- * 'useLanguages'+--+-- * 'useIncludeInGlobalAddressList'+--+-- * 'useGender'+--+-- * 'usePhones'+--+-- * 'useName'+--+-- * 'usePassword'+--+-- * 'useEmails'+--+-- * 'useIms'+--+-- * 'useKeywords'+--+-- * 'useIsAdmin'+--+-- * 'useIsEnrolledIn2Sv'+--+-- * 'useId'+--+-- * 'useOrganizations'+--+-- * 'usePrimaryEmail'+--+-- * 'useIsEnforcedIn2Sv'+--+-- * 'useNotes'+--+-- * 'useIsDelegatedAdmin'+--+-- * 'useLocations'+--+-- * 'useArchived'+--+-- * 'useIsMailboxSetup'+--+-- * 'useCustomSchemas'+--+-- * 'useSuspensionReason'+user+    :: User+user =+  User'+    { _useCreationTime = Nothing+    , _useLastLoginTime = Nothing+    , _useThumbnailPhotoEtag = Nothing+    , _useEtag = Nothing+    , _usePosixAccounts = Nothing+    , _useIPWhiteListed = Nothing+    , _useRelations = Nothing+    , _useSSHPublicKeys = Nothing+    , _useHashFunction = Nothing+    , _useKind = "admin#directory#user"+    , _useChangePasswordAtNextLogin = Nothing+    , _useWebsites = Nothing+    , _useAddresses = Nothing+    , _useAliases = Nothing+    , _useThumbnailPhotoURL = Nothing+    , _useExternalIds = Nothing+    , _useSuspended = Nothing+    , _useAgreedToTerms = Nothing+    , _useDeletionTime = Nothing+    , _useNonEditableAliases = Nothing+    , _useOrgUnitPath = Nothing+    , _useCustomerId = Nothing+    , _useLanguages = Nothing+    , _useIncludeInGlobalAddressList = Nothing+    , _useGender = Nothing+    , _usePhones = Nothing+    , _useName = Nothing+    , _usePassword = Nothing+    , _useEmails = Nothing+    , _useIms = Nothing+    , _useKeywords = Nothing+    , _useIsAdmin = Nothing+    , _useIsEnrolledIn2Sv = Nothing+    , _useId = Nothing+    , _useOrganizations = Nothing+    , _usePrimaryEmail = Nothing+    , _useIsEnforcedIn2Sv = Nothing+    , _useNotes = Nothing+    , _useIsDelegatedAdmin = Nothing+    , _useLocations = Nothing+    , _useArchived = Nothing+    , _useIsMailboxSetup = Nothing+    , _useCustomSchemas = Nothing+    , _useSuspensionReason = Nothing+    }+++-- | User\'s G Suite account creation time. (Read-only)+useCreationTime :: Lens' User (Maybe UTCTime)+useCreationTime+  = lens _useCreationTime+      (\ s a -> s{_useCreationTime = a})+      . mapping _DateTime++-- | User\'s last login time. (Read-only)+useLastLoginTime :: Lens' User (Maybe UTCTime)+useLastLoginTime+  = lens _useLastLoginTime+      (\ s a -> s{_useLastLoginTime = a})+      . mapping _DateTime++-- | ETag of the user\'s photo (Read-only)+useThumbnailPhotoEtag :: Lens' User (Maybe Text)+useThumbnailPhotoEtag+  = lens _useThumbnailPhotoEtag+      (\ s a -> s{_useThumbnailPhotoEtag = a})++-- | ETag of the resource.+useEtag :: Lens' User (Maybe Text)+useEtag = lens _useEtag (\ s a -> s{_useEtag = a})++usePosixAccounts :: Lens' User (Maybe JSONValue)+usePosixAccounts+  = lens _usePosixAccounts+      (\ s a -> s{_usePosixAccounts = a})++-- | Boolean indicating if ip is whitelisted+useIPWhiteListed :: Lens' User (Maybe Bool)+useIPWhiteListed+  = lens _useIPWhiteListed+      (\ s a -> s{_useIPWhiteListed = a})++useRelations :: Lens' User (Maybe JSONValue)+useRelations+  = lens _useRelations (\ s a -> s{_useRelations = a})++useSSHPublicKeys :: Lens' User (Maybe JSONValue)+useSSHPublicKeys+  = lens _useSSHPublicKeys+      (\ s a -> s{_useSSHPublicKeys = a})++-- | Hash function name for password. Supported are MD5, SHA-1 and crypt+useHashFunction :: Lens' User (Maybe Text)+useHashFunction+  = lens _useHashFunction+      (\ s a -> s{_useHashFunction = a})++-- | Kind of resource this is.+useKind :: Lens' User Text+useKind = lens _useKind (\ s a -> s{_useKind = a})++-- | Boolean indicating if the user should change password in next login+useChangePasswordAtNextLogin :: Lens' User (Maybe Bool)+useChangePasswordAtNextLogin+  = lens _useChangePasswordAtNextLogin+      (\ s a -> s{_useChangePasswordAtNextLogin = a})++useWebsites :: Lens' User (Maybe JSONValue)+useWebsites+  = lens _useWebsites (\ s a -> s{_useWebsites = a})++useAddresses :: Lens' User (Maybe JSONValue)+useAddresses+  = lens _useAddresses (\ s a -> s{_useAddresses = a})++-- | List of aliases (Read-only)+useAliases :: Lens' User [Text]+useAliases+  = lens _useAliases (\ s a -> s{_useAliases = a}) .+      _Default+      . _Coerce++-- | Photo Url of the user (Read-only)+useThumbnailPhotoURL :: Lens' User (Maybe Text)+useThumbnailPhotoURL+  = lens _useThumbnailPhotoURL+      (\ s a -> s{_useThumbnailPhotoURL = a})++useExternalIds :: Lens' User (Maybe JSONValue)+useExternalIds+  = lens _useExternalIds+      (\ s a -> s{_useExternalIds = a})++-- | Indicates if user is suspended.+useSuspended :: Lens' User (Maybe Bool)+useSuspended+  = lens _useSuspended (\ s a -> s{_useSuspended = a})++-- | Indicates if user has agreed to terms (Read-only)+useAgreedToTerms :: Lens' User (Maybe Bool)+useAgreedToTerms+  = lens _useAgreedToTerms+      (\ s a -> s{_useAgreedToTerms = a})++useDeletionTime :: Lens' User (Maybe UTCTime)+useDeletionTime+  = lens _useDeletionTime+      (\ s a -> s{_useDeletionTime = a})+      . mapping _DateTime++-- | List of non editable aliases (Read-only)+useNonEditableAliases :: Lens' User [Text]+useNonEditableAliases+  = lens _useNonEditableAliases+      (\ s a -> s{_useNonEditableAliases = a})+      . _Default+      . _Coerce++-- | OrgUnit of User+useOrgUnitPath :: Lens' User (Maybe Text)+useOrgUnitPath+  = lens _useOrgUnitPath+      (\ s a -> s{_useOrgUnitPath = a})++-- | CustomerId of User (Read-only)+useCustomerId :: Lens' User (Maybe Text)+useCustomerId+  = lens _useCustomerId+      (\ s a -> s{_useCustomerId = a})++useLanguages :: Lens' User (Maybe JSONValue)+useLanguages+  = lens _useLanguages (\ s a -> s{_useLanguages = a})++-- | Boolean indicating if user is included in Global Address List+useIncludeInGlobalAddressList :: Lens' User (Maybe Bool)+useIncludeInGlobalAddressList+  = lens _useIncludeInGlobalAddressList+      (\ s a -> s{_useIncludeInGlobalAddressList = a})++useGender :: Lens' User (Maybe JSONValue)+useGender+  = lens _useGender (\ s a -> s{_useGender = a})++usePhones :: Lens' User (Maybe JSONValue)+usePhones+  = lens _usePhones (\ s a -> s{_usePhones = a})++-- | User\'s name+useName :: Lens' User (Maybe UserName)+useName = lens _useName (\ s a -> s{_useName = a})++-- | User\'s password+usePassword :: Lens' User (Maybe Text)+usePassword+  = lens _usePassword (\ s a -> s{_usePassword = a})++useEmails :: Lens' User (Maybe JSONValue)+useEmails+  = lens _useEmails (\ s a -> s{_useEmails = a})++useIms :: Lens' User (Maybe JSONValue)+useIms = lens _useIms (\ s a -> s{_useIms = a})++useKeywords :: Lens' User (Maybe JSONValue)+useKeywords+  = lens _useKeywords (\ s a -> s{_useKeywords = a})++-- | Boolean indicating if the user is admin (Read-only)+useIsAdmin :: Lens' User (Maybe Bool)+useIsAdmin+  = lens _useIsAdmin (\ s a -> s{_useIsAdmin = a})++-- | Is enrolled in 2-step verification (Read-only)+useIsEnrolledIn2Sv :: Lens' User (Maybe Bool)+useIsEnrolledIn2Sv+  = lens _useIsEnrolledIn2Sv+      (\ s a -> s{_useIsEnrolledIn2Sv = a})++-- | Unique identifier of User (Read-only)+useId :: Lens' User (Maybe Text)+useId = lens _useId (\ s a -> s{_useId = a})++useOrganizations :: Lens' User (Maybe JSONValue)+useOrganizations+  = lens _useOrganizations+      (\ s a -> s{_useOrganizations = a})++-- | username of User+usePrimaryEmail :: Lens' User (Maybe Text)+usePrimaryEmail+  = lens _usePrimaryEmail+      (\ s a -> s{_usePrimaryEmail = a})++-- | Is 2-step verification enforced (Read-only)+useIsEnforcedIn2Sv :: Lens' User (Maybe Bool)+useIsEnforcedIn2Sv+  = lens _useIsEnforcedIn2Sv+      (\ s a -> s{_useIsEnforcedIn2Sv = a})++useNotes :: Lens' User (Maybe JSONValue)+useNotes = lens _useNotes (\ s a -> s{_useNotes = a})++-- | Boolean indicating if the user is delegated admin (Read-only)+useIsDelegatedAdmin :: Lens' User (Maybe Bool)+useIsDelegatedAdmin+  = lens _useIsDelegatedAdmin+      (\ s a -> s{_useIsDelegatedAdmin = a})++useLocations :: Lens' User (Maybe JSONValue)+useLocations+  = lens _useLocations (\ s a -> s{_useLocations = a})++-- | Indicates if user is archived.+useArchived :: Lens' User (Maybe Bool)+useArchived+  = lens _useArchived (\ s a -> s{_useArchived = a})++-- | Is mailbox setup (Read-only)+useIsMailboxSetup :: Lens' User (Maybe Bool)+useIsMailboxSetup+  = lens _useIsMailboxSetup+      (\ s a -> s{_useIsMailboxSetup = a})++-- | Custom fields of the user.+useCustomSchemas :: Lens' User (Maybe UserCustomSchemas)+useCustomSchemas+  = lens _useCustomSchemas+      (\ s a -> s{_useCustomSchemas = a})++-- | Suspension reason if user is suspended (Read-only)+useSuspensionReason :: Lens' User (Maybe Text)+useSuspensionReason+  = lens _useSuspensionReason+      (\ s a -> s{_useSuspensionReason = a})++instance FromJSON User where+        parseJSON+          = withObject "User"+              (\ o ->+                 User' <$>+                   (o .:? "creationTime") <*> (o .:? "lastLoginTime")+                     <*> (o .:? "thumbnailPhotoEtag")+                     <*> (o .:? "etag")+                     <*> (o .:? "posixAccounts")+                     <*> (o .:? "ipWhitelisted")+                     <*> (o .:? "relations")+                     <*> (o .:? "sshPublicKeys")+                     <*> (o .:? "hashFunction")+                     <*> (o .:? "kind" .!= "admin#directory#user")+                     <*> (o .:? "changePasswordAtNextLogin")+                     <*> (o .:? "websites")+                     <*> (o .:? "addresses")+                     <*> (o .:? "aliases" .!= mempty)+                     <*> (o .:? "thumbnailPhotoUrl")+                     <*> (o .:? "externalIds")+                     <*> (o .:? "suspended")+                     <*> (o .:? "agreedToTerms")+                     <*> (o .:? "deletionTime")+                     <*> (o .:? "nonEditableAliases" .!= mempty)+                     <*> (o .:? "orgUnitPath")+                     <*> (o .:? "customerId")+                     <*> (o .:? "languages")+                     <*> (o .:? "includeInGlobalAddressList")+                     <*> (o .:? "gender")+                     <*> (o .:? "phones")+                     <*> (o .:? "name")+                     <*> (o .:? "password")+                     <*> (o .:? "emails")+                     <*> (o .:? "ims")+                     <*> (o .:? "keywords")+                     <*> (o .:? "isAdmin")+                     <*> (o .:? "isEnrolledIn2Sv")+                     <*> (o .:? "id")+                     <*> (o .:? "organizations")+                     <*> (o .:? "primaryEmail")+                     <*> (o .:? "isEnforcedIn2Sv")+                     <*> (o .:? "notes")+                     <*> (o .:? "isDelegatedAdmin")+                     <*> (o .:? "locations")+                     <*> (o .:? "archived")+                     <*> (o .:? "isMailboxSetup")+                     <*> (o .:? "customSchemas")+                     <*> (o .:? "suspensionReason"))++instance ToJSON User where+        toJSON User'{..}+          = object+              (catMaybes+                 [("creationTime" .=) <$> _useCreationTime,+                  ("lastLoginTime" .=) <$> _useLastLoginTime,+                  ("thumbnailPhotoEtag" .=) <$> _useThumbnailPhotoEtag,+                  ("etag" .=) <$> _useEtag,+                  ("posixAccounts" .=) <$> _usePosixAccounts,+                  ("ipWhitelisted" .=) <$> _useIPWhiteListed,+                  ("relations" .=) <$> _useRelations,+                  ("sshPublicKeys" .=) <$> _useSSHPublicKeys,+                  ("hashFunction" .=) <$> _useHashFunction,+                  Just ("kind" .= _useKind),+                  ("changePasswordAtNextLogin" .=) <$>+                    _useChangePasswordAtNextLogin,+                  ("websites" .=) <$> _useWebsites,+                  ("addresses" .=) <$> _useAddresses,+                  ("aliases" .=) <$> _useAliases,+                  ("thumbnailPhotoUrl" .=) <$> _useThumbnailPhotoURL,+                  ("externalIds" .=) <$> _useExternalIds,+                  ("suspended" .=) <$> _useSuspended,+                  ("agreedToTerms" .=) <$> _useAgreedToTerms,+                  ("deletionTime" .=) <$> _useDeletionTime,+                  ("nonEditableAliases" .=) <$> _useNonEditableAliases,+                  ("orgUnitPath" .=) <$> _useOrgUnitPath,+                  ("customerId" .=) <$> _useCustomerId,+                  ("languages" .=) <$> _useLanguages,+                  ("includeInGlobalAddressList" .=) <$>+                    _useIncludeInGlobalAddressList,+                  ("gender" .=) <$> _useGender,+                  ("phones" .=) <$> _usePhones,+                  ("name" .=) <$> _useName,+                  ("password" .=) <$> _usePassword,+                  ("emails" .=) <$> _useEmails, ("ims" .=) <$> _useIms,+                  ("keywords" .=) <$> _useKeywords,+                  ("isAdmin" .=) <$> _useIsAdmin,+                  ("isEnrolledIn2Sv" .=) <$> _useIsEnrolledIn2Sv,+                  ("id" .=) <$> _useId,+                  ("organizations" .=) <$> _useOrganizations,+                  ("primaryEmail" .=) <$> _usePrimaryEmail,+                  ("isEnforcedIn2Sv" .=) <$> _useIsEnforcedIn2Sv,+                  ("notes" .=) <$> _useNotes,+                  ("isDelegatedAdmin" .=) <$> _useIsDelegatedAdmin,+                  ("locations" .=) <$> _useLocations,+                  ("archived" .=) <$> _useArchived,+                  ("isMailboxSetup" .=) <$> _useIsMailboxSetup,+                  ("customSchemas" .=) <$> _useCustomSchemas,+                  ("suspensionReason" .=) <$> _useSuspensionReason])++-- | JSON request template for firing actions on ChromeOs Device in Directory+-- Devices API.+--+-- /See:/ 'chromeOSDeviceAction' smart constructor.+data ChromeOSDeviceAction =+  ChromeOSDeviceAction'+    { _codaAction            :: !(Maybe Text)+    , _codaDeprovisionReason :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ChromeOSDeviceAction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'codaAction'+--+-- * 'codaDeprovisionReason'+chromeOSDeviceAction+    :: ChromeOSDeviceAction+chromeOSDeviceAction =+  ChromeOSDeviceAction'+    {_codaAction = Nothing, _codaDeprovisionReason = Nothing}+++-- | Action to be taken on the ChromeOs Device+codaAction :: Lens' ChromeOSDeviceAction (Maybe Text)+codaAction+  = lens _codaAction (\ s a -> s{_codaAction = a})++codaDeprovisionReason :: Lens' ChromeOSDeviceAction (Maybe Text)+codaDeprovisionReason+  = lens _codaDeprovisionReason+      (\ s a -> s{_codaDeprovisionReason = a})++instance FromJSON ChromeOSDeviceAction where+        parseJSON+          = withObject "ChromeOSDeviceAction"+              (\ o ->+                 ChromeOSDeviceAction' <$>+                   (o .:? "action") <*> (o .:? "deprovisionReason"))++instance ToJSON ChromeOSDeviceAction where+        toJSON ChromeOSDeviceAction'{..}+          = object+              (catMaybes+                 [("action" .=) <$> _codaAction,+                  ("deprovisionReason" .=) <$> _codaDeprovisionReason])++-- | JSON request template for renaming a feature.+--+-- /See:/ 'featureRename' smart constructor.+newtype FeatureRename =+  FeatureRename'+    { _frNewName :: Maybe Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FeatureRename' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'frNewName'+featureRename+    :: FeatureRename+featureRename = FeatureRename' {_frNewName = Nothing}+++-- | New name of the feature.+frNewName :: Lens' FeatureRename (Maybe Text)+frNewName+  = lens _frNewName (\ s a -> s{_frNewName = a})++instance FromJSON FeatureRename where+        parseJSON+          = withObject "FeatureRename"+              (\ o -> FeatureRename' <$> (o .:? "newName"))++instance ToJSON FeatureRename where+        toJSON FeatureRename'{..}+          = object (catMaybes [("newName" .=) <$> _frNewName])++-- | JSON template for role resource in Directory API.+--+-- /See:/ 'role'' smart constructor.+data Role =+  Role'+    { _rrEtag             :: !(Maybe Text)+    , _rrKind             :: !Text+    , _rrRoleName         :: !(Maybe Text)+    , _rrIsSystemRole     :: !(Maybe Bool)+    , _rrRoleId           :: !(Maybe (Textual Int64))+    , _rrRoleDescription  :: !(Maybe Text)+    , _rrIsSuperAdminRole :: !(Maybe Bool)+    , _rrRolePrivileges   :: !(Maybe [RoleRolePrivilegesItem])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Role' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rrEtag'+--+-- * 'rrKind'+--+-- * 'rrRoleName'+--+-- * 'rrIsSystemRole'+--+-- * 'rrRoleId'+--+-- * 'rrRoleDescription'+--+-- * 'rrIsSuperAdminRole'+--+-- * 'rrRolePrivileges'+role'+    :: Role+role' =+  Role'+    { _rrEtag = Nothing+    , _rrKind = "admin#directory#role"+    , _rrRoleName = Nothing+    , _rrIsSystemRole = Nothing+    , _rrRoleId = Nothing+    , _rrRoleDescription = Nothing+    , _rrIsSuperAdminRole = Nothing+    , _rrRolePrivileges = Nothing+    }+++-- | ETag of the resource.+rrEtag :: Lens' Role (Maybe Text)+rrEtag = lens _rrEtag (\ s a -> s{_rrEtag = a})++-- | The type of the API resource. This is always admin#directory#role.+rrKind :: Lens' Role Text+rrKind = lens _rrKind (\ s a -> s{_rrKind = a})++-- | Name of the role.+rrRoleName :: Lens' Role (Maybe Text)+rrRoleName+  = lens _rrRoleName (\ s a -> s{_rrRoleName = a})++-- | Returns true if this is a pre-defined system role.+rrIsSystemRole :: Lens' Role (Maybe Bool)+rrIsSystemRole+  = lens _rrIsSystemRole+      (\ s a -> s{_rrIsSystemRole = a})++-- | ID of the role.+rrRoleId :: Lens' Role (Maybe Int64)+rrRoleId+  = lens _rrRoleId (\ s a -> s{_rrRoleId = a}) .+      mapping _Coerce++-- | A short description of the role.+rrRoleDescription :: Lens' Role (Maybe Text)+rrRoleDescription+  = lens _rrRoleDescription+      (\ s a -> s{_rrRoleDescription = a})++-- | Returns true if the role is a super admin role.+rrIsSuperAdminRole :: Lens' Role (Maybe Bool)+rrIsSuperAdminRole+  = lens _rrIsSuperAdminRole+      (\ s a -> s{_rrIsSuperAdminRole = a})++-- | The set of privileges that are granted to this role.+rrRolePrivileges :: Lens' Role [RoleRolePrivilegesItem]+rrRolePrivileges+  = lens _rrRolePrivileges+      (\ s a -> s{_rrRolePrivileges = a})+      . _Default+      . _Coerce++instance FromJSON Role where+        parseJSON+          = withObject "Role"+              (\ o ->+                 Role' <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#role")+                     <*> (o .:? "roleName")+                     <*> (o .:? "isSystemRole")+                     <*> (o .:? "roleId")+                     <*> (o .:? "roleDescription")+                     <*> (o .:? "isSuperAdminRole")+                     <*> (o .:? "rolePrivileges" .!= mempty))++instance ToJSON Role where+        toJSON Role'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _rrEtag, Just ("kind" .= _rrKind),+                  ("roleName" .=) <$> _rrRoleName,+                  ("isSystemRole" .=) <$> _rrIsSystemRole,+                  ("roleId" .=) <$> _rrRoleId,+                  ("roleDescription" .=) <$> _rrRoleDescription,+                  ("isSuperAdminRole" .=) <$> _rrIsSuperAdminRole,+                  ("rolePrivileges" .=) <$> _rrRolePrivileges])++-- | JSON template for Customer Resource object in Directory API.+--+-- /See:/ 'customer' smart constructor.+data Customer =+  Customer'+    { _cusEtag                 :: !(Maybe Text)+    , _cusKind                 :: !Text+    , _cusAlternateEmail       :: !(Maybe Text)+    , _cusCustomerDomain       :: !(Maybe Text)+    , _cusPhoneNumber          :: !(Maybe Text)+    , _cusLanguage             :: !(Maybe Text)+    , _cusId                   :: !(Maybe Text)+    , _cusCustomerCreationTime :: !(Maybe DateTime')+    , _cusPostalAddress        :: !(Maybe CustomerPostalAddress)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Customer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cusEtag'+--+-- * 'cusKind'+--+-- * 'cusAlternateEmail'+--+-- * 'cusCustomerDomain'+--+-- * 'cusPhoneNumber'+--+-- * 'cusLanguage'+--+-- * 'cusId'+--+-- * 'cusCustomerCreationTime'+--+-- * 'cusPostalAddress'+customer+    :: Customer+customer =+  Customer'+    { _cusEtag = Nothing+    , _cusKind = "admin#directory#customer"+    , _cusAlternateEmail = Nothing+    , _cusCustomerDomain = Nothing+    , _cusPhoneNumber = Nothing+    , _cusLanguage = Nothing+    , _cusId = Nothing+    , _cusCustomerCreationTime = Nothing+    , _cusPostalAddress = Nothing+    }+++-- | ETag of the resource.+cusEtag :: Lens' Customer (Maybe Text)+cusEtag = lens _cusEtag (\ s a -> s{_cusEtag = a})++-- | Identifies the resource as a customer. Value: admin#directory#customer+cusKind :: Lens' Customer Text+cusKind = lens _cusKind (\ s a -> s{_cusKind = a})++-- | The customer\'s secondary contact email address. This email address+-- cannot be on the same domain as the customerDomain+cusAlternateEmail :: Lens' Customer (Maybe Text)+cusAlternateEmail+  = lens _cusAlternateEmail+      (\ s a -> s{_cusAlternateEmail = a})++-- | The customer\'s primary domain name string. Do not include the www+-- prefix when creating a new customer.+cusCustomerDomain :: Lens' Customer (Maybe Text)+cusCustomerDomain+  = lens _cusCustomerDomain+      (\ s a -> s{_cusCustomerDomain = a})++-- | The customer\'s contact phone number in E.164 format.+cusPhoneNumber :: Lens' Customer (Maybe Text)+cusPhoneNumber+  = lens _cusPhoneNumber+      (\ s a -> s{_cusPhoneNumber = a})++-- | The customer\'s ISO 639-2 language code. The default value is en-US+cusLanguage :: Lens' Customer (Maybe Text)+cusLanguage+  = lens _cusLanguage (\ s a -> s{_cusLanguage = a})++-- | The unique ID for the customer\'s G Suite account. (Readonly)+cusId :: Lens' Customer (Maybe Text)+cusId = lens _cusId (\ s a -> s{_cusId = a})++-- | The customer\'s creation time (Readonly)+cusCustomerCreationTime :: Lens' Customer (Maybe UTCTime)+cusCustomerCreationTime+  = lens _cusCustomerCreationTime+      (\ s a -> s{_cusCustomerCreationTime = a})+      . mapping _DateTime++-- | The customer\'s postal address information.+cusPostalAddress :: Lens' Customer (Maybe CustomerPostalAddress)+cusPostalAddress+  = lens _cusPostalAddress+      (\ s a -> s{_cusPostalAddress = a})++instance FromJSON Customer where+        parseJSON+          = withObject "Customer"+              (\ o ->+                 Customer' <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#customer")+                     <*> (o .:? "alternateEmail")+                     <*> (o .:? "customerDomain")+                     <*> (o .:? "phoneNumber")+                     <*> (o .:? "language")+                     <*> (o .:? "id")+                     <*> (o .:? "customerCreationTime")+                     <*> (o .:? "postalAddress"))++instance ToJSON Customer where+        toJSON Customer'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _cusEtag, Just ("kind" .= _cusKind),+                  ("alternateEmail" .=) <$> _cusAlternateEmail,+                  ("customerDomain" .=) <$> _cusCustomerDomain,+                  ("phoneNumber" .=) <$> _cusPhoneNumber,+                  ("language" .=) <$> _cusLanguage,+                  ("id" .=) <$> _cusId,+                  ("customerCreationTime" .=) <$>+                    _cusCustomerCreationTime,+                  ("postalAddress" .=) <$> _cusPostalAddress])++--+-- /See:/ 'mobileDeviceApplicationsItem' smart constructor.+data MobileDeviceApplicationsItem =+  MobileDeviceApplicationsItem'+    { _mdaiVersionCode :: !(Maybe (Textual Int32))+    , _mdaiVersionName :: !(Maybe Text)+    , _mdaiPackageName :: !(Maybe Text)+    , _mdaiDisplayName :: !(Maybe Text)+    , _mdaiPermission  :: !(Maybe [Text])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'MobileDeviceApplicationsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdaiVersionCode'+--+-- * 'mdaiVersionName'+--+-- * 'mdaiPackageName'+--+-- * 'mdaiDisplayName'+--+-- * 'mdaiPermission'+mobileDeviceApplicationsItem+    :: MobileDeviceApplicationsItem+mobileDeviceApplicationsItem =+  MobileDeviceApplicationsItem'+    { _mdaiVersionCode = Nothing+    , _mdaiVersionName = Nothing+    , _mdaiPackageName = Nothing+    , _mdaiDisplayName = Nothing+    , _mdaiPermission = Nothing+    }+++-- | Version code of application+mdaiVersionCode :: Lens' MobileDeviceApplicationsItem (Maybe Int32)+mdaiVersionCode+  = lens _mdaiVersionCode+      (\ s a -> s{_mdaiVersionCode = a})+      . mapping _Coerce++-- | Version name of application+mdaiVersionName :: Lens' MobileDeviceApplicationsItem (Maybe Text)+mdaiVersionName+  = lens _mdaiVersionName+      (\ s a -> s{_mdaiVersionName = a})++-- | Package name of application+mdaiPackageName :: Lens' MobileDeviceApplicationsItem (Maybe Text)+mdaiPackageName+  = lens _mdaiPackageName+      (\ s a -> s{_mdaiPackageName = a})++-- | Display name of application+mdaiDisplayName :: Lens' MobileDeviceApplicationsItem (Maybe Text)+mdaiDisplayName+  = lens _mdaiDisplayName+      (\ s a -> s{_mdaiDisplayName = a})++-- | List of Permissions for application+mdaiPermission :: Lens' MobileDeviceApplicationsItem [Text]+mdaiPermission+  = lens _mdaiPermission+      (\ s a -> s{_mdaiPermission = a})+      . _Default+      . _Coerce++instance FromJSON MobileDeviceApplicationsItem where+        parseJSON+          = withObject "MobileDeviceApplicationsItem"+              (\ o ->+                 MobileDeviceApplicationsItem' <$>+                   (o .:? "versionCode") <*> (o .:? "versionName") <*>+                     (o .:? "packageName")+                     <*> (o .:? "displayName")+                     <*> (o .:? "permission" .!= mempty))++instance ToJSON MobileDeviceApplicationsItem where+        toJSON MobileDeviceApplicationsItem'{..}+          = object+              (catMaybes+                 [("versionCode" .=) <$> _mdaiVersionCode,+                  ("versionName" .=) <$> _mdaiVersionName,+                  ("packageName" .=) <$> _mdaiPackageName,+                  ("displayName" .=) <$> _mdaiDisplayName,+                  ("permission" .=) <$> _mdaiPermission])++--+-- /See:/ 'chromeOSDeviceDiskVolumeReportsItemVolumeInfoItem' smart constructor.+data ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem =+  ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem'+    { _coddvriviiStorageFree  :: !(Maybe (Textual Int64))+    , _coddvriviiStorageTotal :: !(Maybe (Textual Int64))+    , _coddvriviiVolumeId     :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'coddvriviiStorageFree'+--+-- * 'coddvriviiStorageTotal'+--+-- * 'coddvriviiVolumeId'+chromeOSDeviceDiskVolumeReportsItemVolumeInfoItem+    :: ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem+chromeOSDeviceDiskVolumeReportsItemVolumeInfoItem =+  ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem'+    { _coddvriviiStorageFree = Nothing+    , _coddvriviiStorageTotal = Nothing+    , _coddvriviiVolumeId = Nothing+    }+++-- | Free disk space [in bytes]+coddvriviiStorageFree :: Lens' ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem (Maybe Int64)+coddvriviiStorageFree+  = lens _coddvriviiStorageFree+      (\ s a -> s{_coddvriviiStorageFree = a})+      . mapping _Coerce++-- | Total disk space [in bytes]+coddvriviiStorageTotal :: Lens' ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem (Maybe Int64)+coddvriviiStorageTotal+  = lens _coddvriviiStorageTotal+      (\ s a -> s{_coddvriviiStorageTotal = a})+      . mapping _Coerce++-- | Volume id+coddvriviiVolumeId :: Lens' ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem (Maybe Text)+coddvriviiVolumeId+  = lens _coddvriviiVolumeId+      (\ s a -> s{_coddvriviiVolumeId = a})++instance FromJSON+           ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem+         where+        parseJSON+          = withObject+              "ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem"+              (\ o ->+                 ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem'+                   <$>+                   (o .:? "storageFree") <*> (o .:? "storageTotal") <*>+                     (o .:? "volumeId"))++instance ToJSON+           ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem+         where+        toJSON+          ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem'{..}+          = object+              (catMaybes+                 [("storageFree" .=) <$> _coddvriviiStorageFree,+                  ("storageTotal" .=) <$> _coddvriviiStorageTotal,+                  ("volumeId" .=) <$> _coddvriviiVolumeId])++-- | JSON response template for List Organization Units operation in+-- Directory API.+--+-- /See:/ 'orgUnits' smart constructor.+data OrgUnits =+  OrgUnits'+    { _oEtag              :: !(Maybe Text)+    , _oKind              :: !Text+    , _oOrganizationUnits :: !(Maybe [OrgUnit])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'OrgUnits' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oEtag'+--+-- * 'oKind'+--+-- * 'oOrganizationUnits'+orgUnits+    :: OrgUnits+orgUnits =+  OrgUnits'+    { _oEtag = Nothing+    , _oKind = "admin#directory#orgUnits"+    , _oOrganizationUnits = Nothing+    }+++-- | ETag of the resource.+oEtag :: Lens' OrgUnits (Maybe Text)+oEtag = lens _oEtag (\ s a -> s{_oEtag = a})++-- | Kind of resource this is.+oKind :: Lens' OrgUnits Text+oKind = lens _oKind (\ s a -> s{_oKind = a})++-- | List of user objects.+oOrganizationUnits :: Lens' OrgUnits [OrgUnit]+oOrganizationUnits+  = lens _oOrganizationUnits+      (\ s a -> s{_oOrganizationUnits = a})+      . _Default+      . _Coerce++instance FromJSON OrgUnits where+        parseJSON+          = withObject "OrgUnits"+              (\ o ->+                 OrgUnits' <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#orgUnits")+                     <*> (o .:? "organizationUnits" .!= mempty))++instance ToJSON OrgUnits where+        toJSON OrgUnits'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _oEtag, Just ("kind" .= _oKind),+                  ("organizationUnits" .=) <$> _oOrganizationUnits])++-- | JSON template for a POSIX account entry.+--+-- /See:/ 'userSSHPublicKey' smart constructor.+data UserSSHPublicKey =+  UserSSHPublicKey'+    { _uspkFingerprint        :: !(Maybe Text)+    , _uspkKey                :: !(Maybe Text)+    , _uspkExpirationTimeUsec :: !(Maybe (Textual Int64))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserSSHPublicKey' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uspkFingerprint'+--+-- * 'uspkKey'+--+-- * 'uspkExpirationTimeUsec'+userSSHPublicKey+    :: UserSSHPublicKey+userSSHPublicKey =+  UserSSHPublicKey'+    { _uspkFingerprint = Nothing+    , _uspkKey = Nothing+    , _uspkExpirationTimeUsec = Nothing+    }+++-- | A SHA-256 fingerprint of the SSH public key. (Read-only)+uspkFingerprint :: Lens' UserSSHPublicKey (Maybe Text)+uspkFingerprint+  = lens _uspkFingerprint+      (\ s a -> s{_uspkFingerprint = a})++-- | An SSH public key.+uspkKey :: Lens' UserSSHPublicKey (Maybe Text)+uspkKey = lens _uspkKey (\ s a -> s{_uspkKey = a})++-- | An expiration time in microseconds since epoch.+uspkExpirationTimeUsec :: Lens' UserSSHPublicKey (Maybe Int64)+uspkExpirationTimeUsec+  = lens _uspkExpirationTimeUsec+      (\ s a -> s{_uspkExpirationTimeUsec = a})+      . mapping _Coerce++instance FromJSON UserSSHPublicKey where+        parseJSON+          = withObject "UserSSHPublicKey"+              (\ o ->+                 UserSSHPublicKey' <$>+                   (o .:? "fingerprint") <*> (o .:? "key") <*>+                     (o .:? "expirationTimeUsec"))++instance ToJSON UserSSHPublicKey where+        toJSON UserSSHPublicKey'{..}+          = object+              (catMaybes+                 [("fingerprint" .=) <$> _uspkFingerprint,+                  ("key" .=) <$> _uspkKey,+                  ("expirationTimeUsec" .=) <$>+                    _uspkExpirationTimeUsec])++-- | JSON response template for List verification codes operation in+-- Directory API.+--+-- /See:/ 'verificationCodes' smart constructor.+data VerificationCodes =+  VerificationCodes'+    { _vEtag  :: !(Maybe Text)+    , _vKind  :: !Text+    , _vItems :: !(Maybe [VerificationCode])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VerificationCodes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vEtag'+--+-- * 'vKind'+--+-- * 'vItems'+verificationCodes+    :: VerificationCodes+verificationCodes =+  VerificationCodes'+    { _vEtag = Nothing+    , _vKind = "admin#directory#verificationCodesList"+    , _vItems = Nothing+    }+++-- | ETag of the resource.+vEtag :: Lens' VerificationCodes (Maybe Text)+vEtag = lens _vEtag (\ s a -> s{_vEtag = a})++-- | The type of the resource. This is always+-- admin#directory#verificationCodesList.+vKind :: Lens' VerificationCodes Text+vKind = lens _vKind (\ s a -> s{_vKind = a})++-- | A list of verification code resources.+vItems :: Lens' VerificationCodes [VerificationCode]+vItems+  = lens _vItems (\ s a -> s{_vItems = a}) . _Default .+      _Coerce++instance FromJSON VerificationCodes where+        parseJSON+          = withObject "VerificationCodes"+              (\ o ->+                 VerificationCodes' <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!=+                        "admin#directory#verificationCodesList")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON VerificationCodes where+        toJSON VerificationCodes'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _vEtag, Just ("kind" .= _vKind),+                  ("items" .=) <$> _vItems])++-- | JSON template for coordinates of a building in Directory API.+--+-- /See:/ 'buildingCoordinates' smart constructor.+data BuildingCoordinates =+  BuildingCoordinates'+    { _bcLatitude  :: !(Maybe (Textual Double))+    , _bcLongitude :: !(Maybe (Textual Double))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BuildingCoordinates' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcLatitude'+--+-- * 'bcLongitude'+buildingCoordinates+    :: BuildingCoordinates+buildingCoordinates =+  BuildingCoordinates' {_bcLatitude = Nothing, _bcLongitude = Nothing}+++-- | Latitude in decimal degrees.+bcLatitude :: Lens' BuildingCoordinates (Maybe Double)+bcLatitude+  = lens _bcLatitude (\ s a -> s{_bcLatitude = a}) .+      mapping _Coerce++-- | Longitude in decimal degrees.+bcLongitude :: Lens' BuildingCoordinates (Maybe Double)+bcLongitude+  = lens _bcLongitude (\ s a -> s{_bcLongitude = a}) .+      mapping _Coerce++instance FromJSON BuildingCoordinates where+        parseJSON+          = withObject "BuildingCoordinates"+              (\ o ->+                 BuildingCoordinates' <$>+                   (o .:? "latitude") <*> (o .:? "longitude"))++instance ToJSON BuildingCoordinates where+        toJSON BuildingCoordinates'{..}+          = object+              (catMaybes+                 [("latitude" .=) <$> _bcLatitude,+                  ("longitude" .=) <$> _bcLongitude])++-- | JSON template for a relation entry.+--+-- /See:/ 'userRelation' smart constructor.+data UserRelation =+  UserRelation'+    { _urValue      :: !(Maybe Text)+    , _urType       :: !(Maybe Text)+    , _urCustomType :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserRelation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'urValue'+--+-- * 'urType'+--+-- * 'urCustomType'+userRelation+    :: UserRelation+userRelation =+  UserRelation' {_urValue = Nothing, _urType = Nothing, _urCustomType = Nothing}+++-- | The name of the relation.+urValue :: Lens' UserRelation (Maybe Text)+urValue = lens _urValue (\ s a -> s{_urValue = a})++-- | The relation of the user. Some of the possible values are mother,+-- father, sister, brother, manager, assistant, partner.+urType :: Lens' UserRelation (Maybe Text)+urType = lens _urType (\ s a -> s{_urType = a})++-- | Custom Type.+urCustomType :: Lens' UserRelation (Maybe Text)+urCustomType+  = lens _urCustomType (\ s a -> s{_urCustomType = a})++instance FromJSON UserRelation where+        parseJSON+          = withObject "UserRelation"+              (\ o ->+                 UserRelation' <$>+                   (o .:? "value") <*> (o .:? "type") <*>+                     (o .:? "customType"))++instance ToJSON UserRelation where+        toJSON UserRelation'{..}+          = object+              (catMaybes+                 [("value" .=) <$> _urValue, ("type" .=) <$> _urType,+                  ("customType" .=) <$> _urCustomType])++-- | JSON template for Trusted Apps response object of a user in Directory+-- API.+--+-- /See:/ 'trustedApps' smart constructor.+data TrustedApps =+  TrustedApps'+    { _taEtag          :: !(Maybe Text)+    , _taNextPageToken :: !(Maybe Text)+    , _taKind          :: !Text+    , _taTrustedApps   :: !(Maybe [TrustedAppId])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TrustedApps' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'taEtag'+--+-- * 'taNextPageToken'+--+-- * 'taKind'+--+-- * 'taTrustedApps'+trustedApps+    :: TrustedApps+trustedApps =+  TrustedApps'+    { _taEtag = Nothing+    , _taNextPageToken = Nothing+    , _taKind = "admin#directory#trustedapplist"+    , _taTrustedApps = Nothing+    }+++-- | ETag of the resource.+taEtag :: Lens' TrustedApps (Maybe Text)+taEtag = lens _taEtag (\ s a -> s{_taEtag = a})++taNextPageToken :: Lens' TrustedApps (Maybe Text)+taNextPageToken+  = lens _taNextPageToken+      (\ s a -> s{_taNextPageToken = a})++-- | Identifies the resource as trusted apps response.+taKind :: Lens' TrustedApps Text+taKind = lens _taKind (\ s a -> s{_taKind = a})++-- | Trusted Apps list.+taTrustedApps :: Lens' TrustedApps [TrustedAppId]+taTrustedApps+  = lens _taTrustedApps+      (\ s a -> s{_taTrustedApps = a})+      . _Default+      . _Coerce++instance FromJSON TrustedApps where+        parseJSON+          = withObject "TrustedApps"+              (\ o ->+                 TrustedApps' <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "admin#directory#trustedapplist")+                     <*> (o .:? "trustedApps" .!= mempty))++instance ToJSON TrustedApps where+        toJSON TrustedApps'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _taEtag,+                  ("nextPageToken" .=) <$> _taNextPageToken,+                  Just ("kind" .= _taKind),+                  ("trustedApps" .=) <$> _taTrustedApps])++-- | JSON template for Feature List Response object in Directory API.+--+-- /See:/ 'features' smart constructor.+data Features =+  Features'+    { _feaEtag          :: !(Maybe Text)+    , _feaNextPageToken :: !(Maybe Text)+    , _feaKind          :: !Text+    , _feaFeatures      :: !(Maybe [Feature])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Features' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'feaEtag'+--+-- * 'feaNextPageToken'+--+-- * 'feaKind'+--+-- * 'feaFeatures'+features+    :: Features+features =+  Features'+    { _feaEtag = Nothing+    , _feaNextPageToken = Nothing+    , _feaKind = "admin#directory#resources#features#featuresList"+    , _feaFeatures = Nothing+    }+++-- | ETag of the resource.+feaEtag :: Lens' Features (Maybe Text)+feaEtag = lens _feaEtag (\ s a -> s{_feaEtag = 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.+feaNextPageToken :: Lens' Features (Maybe Text)+feaNextPageToken+  = lens _feaNextPageToken+      (\ s a -> s{_feaNextPageToken = a})++-- | Kind of resource this is.+feaKind :: Lens' Features Text+feaKind = lens _feaKind (\ s a -> s{_feaKind = a})++-- | The Features in this page of results.+feaFeatures :: Lens' Features [Feature]+feaFeatures+  = lens _feaFeatures (\ s a -> s{_feaFeatures = a}) .+      _Default+      . _Coerce++instance FromJSON Features where+        parseJSON+          = withObject "Features"+              (\ o ->+                 Features' <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!=+                        "admin#directory#resources#features#featuresList")+                     <*> (o .:? "features" .!= mempty))++instance ToJSON Features where+        toJSON Features'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _feaEtag,+                  ("nextPageToken" .=) <$> _feaNextPageToken,+                  Just ("kind" .= _feaKind),+                  ("features" .=) <$> _feaFeatures])++-- | Additional parameters controlling delivery channel behavior. Optional.+--+-- /See:/ 'channelParams' smart constructor.+newtype ChannelParams =+  ChannelParams'+    { _cpAddtional :: HashMap Text Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ChannelParams' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpAddtional'+channelParams+    :: HashMap Text Text -- ^ 'cpAddtional'+    -> ChannelParams+channelParams pCpAddtional_ =+  ChannelParams' {_cpAddtional = _Coerce # pCpAddtional_}+++-- | Declares a new parameter by name.+cpAddtional :: Lens' ChannelParams (HashMap Text Text)+cpAddtional+  = lens _cpAddtional (\ s a -> s{_cpAddtional = a}) .+      _Coerce++instance FromJSON ChannelParams where+        parseJSON+          = withObject "ChannelParams"+              (\ o -> ChannelParams' <$> (parseJSONObject o))++instance ToJSON ChannelParams where+        toJSON = toJSON . _cpAddtional++-- | Trusted Platform Module (TPM) (Read-only)+--+-- /See:/ 'chromeOSDeviceTpmVersionInfo' smart constructor.+data ChromeOSDeviceTpmVersionInfo =+  ChromeOSDeviceTpmVersionInfo'+    { _codtviVendorSpecific  :: !(Maybe Text)+    , _codtviManufacturer    :: !(Maybe Text)+    , _codtviSpecLevel       :: !(Maybe Text)+    , _codtviTpmModel        :: !(Maybe Text)+    , _codtviFamily          :: !(Maybe Text)+    , _codtviFirmwareVersion :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ChromeOSDeviceTpmVersionInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'codtviVendorSpecific'+--+-- * 'codtviManufacturer'+--+-- * 'codtviSpecLevel'+--+-- * 'codtviTpmModel'+--+-- * 'codtviFamily'+--+-- * 'codtviFirmwareVersion'+chromeOSDeviceTpmVersionInfo+    :: ChromeOSDeviceTpmVersionInfo+chromeOSDeviceTpmVersionInfo =+  ChromeOSDeviceTpmVersionInfo'+    { _codtviVendorSpecific = Nothing+    , _codtviManufacturer = Nothing+    , _codtviSpecLevel = Nothing+    , _codtviTpmModel = Nothing+    , _codtviFamily = Nothing+    , _codtviFirmwareVersion = Nothing+    }+++-- | Vendor-specific information such as Vendor ID.+codtviVendorSpecific :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)+codtviVendorSpecific+  = lens _codtviVendorSpecific+      (\ s a -> s{_codtviVendorSpecific = a})++-- | TPM manufacturer code.+codtviManufacturer :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)+codtviManufacturer+  = lens _codtviManufacturer+      (\ s a -> s{_codtviManufacturer = a})++-- | TPM specification level.+codtviSpecLevel :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)+codtviSpecLevel+  = lens _codtviSpecLevel+      (\ s a -> s{_codtviSpecLevel = a})++-- | TPM model number.+codtviTpmModel :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)+codtviTpmModel+  = lens _codtviTpmModel+      (\ s a -> s{_codtviTpmModel = a})++-- | TPM family.+codtviFamily :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)+codtviFamily+  = lens _codtviFamily (\ s a -> s{_codtviFamily = a})++-- | TPM firmware version.+codtviFirmwareVersion :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)+codtviFirmwareVersion+  = lens _codtviFirmwareVersion+      (\ s a -> s{_codtviFirmwareVersion = a})++instance FromJSON ChromeOSDeviceTpmVersionInfo where+        parseJSON+          = withObject "ChromeOSDeviceTpmVersionInfo"+              (\ o ->+                 ChromeOSDeviceTpmVersionInfo' <$>+                   (o .:? "vendorSpecific") <*> (o .:? "manufacturer")+                     <*> (o .:? "specLevel")+                     <*> (o .:? "tpmModel")+                     <*> (o .:? "family")+                     <*> (o .:? "firmwareVersion"))++instance ToJSON ChromeOSDeviceTpmVersionInfo where+        toJSON ChromeOSDeviceTpmVersionInfo'{..}+          = object+              (catMaybes+                 [("vendorSpecific" .=) <$> _codtviVendorSpecific,+                  ("manufacturer" .=) <$> _codtviManufacturer,+                  ("specLevel" .=) <$> _codtviSpecLevel,+                  ("tpmModel" .=) <$> _codtviTpmModel,+                  ("family" .=) <$> _codtviFamily,+                  ("firmwareVersion" .=) <$> _codtviFirmwareVersion])++-- | JSON template for an organization entry.+--+-- /See:/ 'userOrganization' smart constructor.+data UserOrganization =+  UserOrganization'+    { _uoDePartment         :: !(Maybe Text)+    , _uoLocation           :: !(Maybe Text)+    , _uoCostCenter         :: !(Maybe Text)+    , _uoDomain             :: !(Maybe Text)+    , _uoSymbol             :: !(Maybe Text)+    , _uoPrimary            :: !(Maybe Bool)+    , _uoName               :: !(Maybe Text)+    , _uoFullTimeEquivalent :: !(Maybe (Textual Int32))+    , _uoTitle              :: !(Maybe Text)+    , _uoType               :: !(Maybe Text)+    , _uoCustomType         :: !(Maybe Text)+    , _uoDescription        :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserOrganization' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uoDePartment'+--+-- * 'uoLocation'+--+-- * 'uoCostCenter'+--+-- * 'uoDomain'+--+-- * 'uoSymbol'+--+-- * 'uoPrimary'+--+-- * 'uoName'+--+-- * 'uoFullTimeEquivalent'+--+-- * 'uoTitle'+--+-- * 'uoType'+--+-- * 'uoCustomType'+--+-- * 'uoDescription'+userOrganization+    :: UserOrganization+userOrganization =+  UserOrganization'+    { _uoDePartment = Nothing+    , _uoLocation = Nothing+    , _uoCostCenter = Nothing+    , _uoDomain = Nothing+    , _uoSymbol = Nothing+    , _uoPrimary = Nothing+    , _uoName = Nothing+    , _uoFullTimeEquivalent = Nothing+    , _uoTitle = Nothing+    , _uoType = Nothing+    , _uoCustomType = Nothing+    , _uoDescription = Nothing+    }+++-- | Department within the organization.+uoDePartment :: Lens' UserOrganization (Maybe Text)+uoDePartment+  = lens _uoDePartment (\ s a -> s{_uoDePartment = a})++-- | Location of the organization. This need not be fully qualified address.+uoLocation :: Lens' UserOrganization (Maybe Text)+uoLocation+  = lens _uoLocation (\ s a -> s{_uoLocation = a})++-- | The cost center of the users department.+uoCostCenter :: Lens' UserOrganization (Maybe Text)+uoCostCenter+  = lens _uoCostCenter (\ s a -> s{_uoCostCenter = a})++-- | The domain to which the organization belongs to.+uoDomain :: Lens' UserOrganization (Maybe Text)+uoDomain = lens _uoDomain (\ s a -> s{_uoDomain = a})++-- | Symbol of the organization.+uoSymbol :: Lens' UserOrganization (Maybe Text)+uoSymbol = lens _uoSymbol (\ s a -> s{_uoSymbol = a})++-- | If it user\'s primary organization.+uoPrimary :: Lens' UserOrganization (Maybe Bool)+uoPrimary+  = lens _uoPrimary (\ s a -> s{_uoPrimary = a})++-- | Name of the organization+uoName :: Lens' UserOrganization (Maybe Text)+uoName = lens _uoName (\ s a -> s{_uoName = a})++-- | The full-time equivalent percent within the organization (100000 =+-- 100%).+uoFullTimeEquivalent :: Lens' UserOrganization (Maybe Int32)+uoFullTimeEquivalent+  = lens _uoFullTimeEquivalent+      (\ s a -> s{_uoFullTimeEquivalent = a})+      . mapping _Coerce++-- | Title (designation) of the user in the organization.+uoTitle :: Lens' UserOrganization (Maybe Text)+uoTitle = lens _uoTitle (\ s a -> s{_uoTitle = a})++-- | Each entry can have a type which indicates standard types of that entry.+-- For example organization could be of school, work etc. In addition to+-- the standard type, an entry can have a custom type and can give it any+-- name. Such types should have the CUSTOM value as type and also have a+-- CustomType value.+uoType :: Lens' UserOrganization (Maybe Text)+uoType = lens _uoType (\ s a -> s{_uoType = a})++-- | Custom type.+uoCustomType :: Lens' UserOrganization (Maybe Text)+uoCustomType+  = lens _uoCustomType (\ s a -> s{_uoCustomType = a})++-- | Description of the organization.+uoDescription :: Lens' UserOrganization (Maybe Text)+uoDescription+  = lens _uoDescription+      (\ s a -> s{_uoDescription = a})++instance FromJSON UserOrganization where+        parseJSON+          = withObject "UserOrganization"+              (\ o ->+                 UserOrganization' <$>+                   (o .:? "department") <*> (o .:? "location") <*>+                     (o .:? "costCenter")+                     <*> (o .:? "domain")+                     <*> (o .:? "symbol")+                     <*> (o .:? "primary")+                     <*> (o .:? "name")+                     <*> (o .:? "fullTimeEquivalent")+                     <*> (o .:? "title")+                     <*> (o .:? "type")+                     <*> (o .:? "customType")+                     <*> (o .:? "description"))++instance ToJSON UserOrganization where+        toJSON UserOrganization'{..}+          = object+              (catMaybes+                 [("department" .=) <$> _uoDePartment,+                  ("location" .=) <$> _uoLocation,+                  ("costCenter" .=) <$> _uoCostCenter,+                  ("domain" .=) <$> _uoDomain,+                  ("symbol" .=) <$> _uoSymbol,+                  ("primary" .=) <$> _uoPrimary,+                  ("name" .=) <$> _uoName,+                  ("fullTimeEquivalent" .=) <$> _uoFullTimeEquivalent,+                  ("title" .=) <$> _uoTitle, ("type" .=) <$> _uoType,+                  ("customType" .=) <$> _uoCustomType,+                  ("description" .=) <$> _uoDescription])++-- | JSON template for a website entry.+--+-- /See:/ 'userWebsite' smart constructor.+data UserWebsite =+  UserWebsite'+    { _uwValue      :: !(Maybe Text)+    , _uwPrimary    :: !(Maybe Bool)+    , _uwType       :: !(Maybe Text)+    , _uwCustomType :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserWebsite' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uwValue'+--+-- * 'uwPrimary'+--+-- * 'uwType'+--+-- * 'uwCustomType'+userWebsite+    :: UserWebsite+userWebsite =+  UserWebsite'+    { _uwValue = Nothing+    , _uwPrimary = Nothing+    , _uwType = Nothing+    , _uwCustomType = Nothing+    }+++-- | Website.+uwValue :: Lens' UserWebsite (Maybe Text)+uwValue = lens _uwValue (\ s a -> s{_uwValue = a})++-- | If this is user\'s primary website or not.+uwPrimary :: Lens' UserWebsite (Maybe Bool)+uwPrimary+  = lens _uwPrimary (\ s a -> s{_uwPrimary = a})++-- | Each entry can have a type which indicates standard types of that entry.+-- For example website could be of home, work, blog etc. In addition to the+-- standard type, an entry can have a custom type and can give it any name.+-- Such types should have the CUSTOM value as type and also have a+-- customType value.+uwType :: Lens' UserWebsite (Maybe Text)+uwType = lens _uwType (\ s a -> s{_uwType = a})++-- | Custom Type.+uwCustomType :: Lens' UserWebsite (Maybe Text)+uwCustomType+  = lens _uwCustomType (\ s a -> s{_uwCustomType = a})++instance FromJSON UserWebsite where+        parseJSON+          = withObject "UserWebsite"+              (\ o ->+                 UserWebsite' <$>+                   (o .:? "value") <*> (o .:? "primary") <*>+                     (o .:? "type")+                     <*> (o .:? "customType"))++instance ToJSON UserWebsite where+        toJSON UserWebsite'{..}+          = object+              (catMaybes+                 [("value" .=) <$> _uwValue,+                  ("primary" .=) <$> _uwPrimary,+                  ("type" .=) <$> _uwType,+                  ("customType" .=) <$> _uwCustomType])++--+-- /See:/ 'chromeOSDeviceActiveTimeRangesItem' smart constructor.+data ChromeOSDeviceActiveTimeRangesItem =+  ChromeOSDeviceActiveTimeRangesItem'+    { _codatriDate       :: !(Maybe Date')+    , _codatriActiveTime :: !(Maybe (Textual Int32))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ChromeOSDeviceActiveTimeRangesItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'codatriDate'+--+-- * 'codatriActiveTime'+chromeOSDeviceActiveTimeRangesItem+    :: ChromeOSDeviceActiveTimeRangesItem+chromeOSDeviceActiveTimeRangesItem =+  ChromeOSDeviceActiveTimeRangesItem'+    {_codatriDate = Nothing, _codatriActiveTime = Nothing}+++-- | Date of usage+codatriDate :: Lens' ChromeOSDeviceActiveTimeRangesItem (Maybe Day)+codatriDate+  = lens _codatriDate (\ s a -> s{_codatriDate = a}) .+      mapping _Date++-- | Duration in milliseconds+codatriActiveTime :: Lens' ChromeOSDeviceActiveTimeRangesItem (Maybe Int32)+codatriActiveTime+  = lens _codatriActiveTime+      (\ s a -> s{_codatriActiveTime = a})+      . mapping _Coerce++instance FromJSON ChromeOSDeviceActiveTimeRangesItem+         where+        parseJSON+          = withObject "ChromeOSDeviceActiveTimeRangesItem"+              (\ o ->+                 ChromeOSDeviceActiveTimeRangesItem' <$>+                   (o .:? "date") <*> (o .:? "activeTime"))++instance ToJSON ChromeOSDeviceActiveTimeRangesItem+         where+        toJSON ChromeOSDeviceActiveTimeRangesItem'{..}+          = object+              (catMaybes+                 [("date" .=) <$> _codatriDate,+                  ("activeTime" .=) <$> _codatriActiveTime])++-- | JSON template for an email.+--+-- /See:/ 'userEmail' smart constructor.+data UserEmail =+  UserEmail'+    { _ueAddress    :: !(Maybe Text)+    , _uePrimary    :: !(Maybe Bool)+    , _ueType       :: !(Maybe Text)+    , _ueCustomType :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserEmail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ueAddress'+--+-- * 'uePrimary'+--+-- * 'ueType'+--+-- * 'ueCustomType'+userEmail+    :: UserEmail+userEmail =+  UserEmail'+    { _ueAddress = Nothing+    , _uePrimary = Nothing+    , _ueType = Nothing+    , _ueCustomType = Nothing+    }+++-- | Email id of the user.+ueAddress :: Lens' UserEmail (Maybe Text)+ueAddress+  = lens _ueAddress (\ s a -> s{_ueAddress = a})++-- | If this is user\'s primary email. Only one entry could be marked as+-- primary.+uePrimary :: Lens' UserEmail (Maybe Bool)+uePrimary+  = lens _uePrimary (\ s a -> s{_uePrimary = a})++-- | Each entry can have a type which indicates standard types of that entry.+-- For example email could be of home, work etc. In addition to the+-- standard type, an entry can have a custom type and can take any value+-- Such types should have the CUSTOM value as type and also have a+-- customType value.+ueType :: Lens' UserEmail (Maybe Text)+ueType = lens _ueType (\ s a -> s{_ueType = a})++-- | Custom Type.+ueCustomType :: Lens' UserEmail (Maybe Text)+ueCustomType+  = lens _ueCustomType (\ s a -> s{_ueCustomType = a})++instance FromJSON UserEmail where+        parseJSON+          = withObject "UserEmail"+              (\ o ->+                 UserEmail' <$>+                   (o .:? "address") <*> (o .:? "primary") <*>+                     (o .:? "type")+                     <*> (o .:? "customType"))++instance ToJSON UserEmail where+        toJSON UserEmail'{..}+          = object+              (catMaybes+                 [("address" .=) <$> _ueAddress,+                  ("primary" .=) <$> _uePrimary,+                  ("type" .=) <$> _ueType,+                  ("customType" .=) <$> _ueCustomType])++-- | JSON template for a phone entry.+--+-- /See:/ 'userPhone' smart constructor.+data UserPhone =+  UserPhone'+    { _upValue      :: !(Maybe Text)+    , _upPrimary    :: !(Maybe Bool)+    , _upType       :: !(Maybe Text)+    , _upCustomType :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserPhone' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'upValue'+--+-- * 'upPrimary'+--+-- * 'upType'+--+-- * 'upCustomType'+userPhone+    :: UserPhone+userPhone =+  UserPhone'+    { _upValue = Nothing+    , _upPrimary = Nothing+    , _upType = Nothing+    , _upCustomType = Nothing+    }+++-- | Phone number.+upValue :: Lens' UserPhone (Maybe Text)+upValue = lens _upValue (\ s a -> s{_upValue = a})++-- | If this is user\'s primary phone or not.+upPrimary :: Lens' UserPhone (Maybe Bool)+upPrimary+  = lens _upPrimary (\ s a -> s{_upPrimary = a})++-- | Each entry can have a type which indicates standard types of that entry.+-- For example phone could be of home_fax, work, mobile etc. In addition to+-- the standard type, an entry can have a custom type and can give it any+-- name. Such types should have the CUSTOM value as type and also have a+-- customType value.+upType :: Lens' UserPhone (Maybe Text)+upType = lens _upType (\ s a -> s{_upType = a})++-- | Custom Type.+upCustomType :: Lens' UserPhone (Maybe Text)+upCustomType+  = lens _upCustomType (\ s a -> s{_upCustomType = a})++instance FromJSON UserPhone where+        parseJSON+          = withObject "UserPhone"+              (\ o ->+                 UserPhone' <$>+                   (o .:? "value") <*> (o .:? "primary") <*>+                     (o .:? "type")+                     <*> (o .:? "customType"))++instance ToJSON UserPhone where+        toJSON UserPhone'{..}+          = object+              (catMaybes+                 [("value" .=) <$> _upValue,+                  ("primary" .=) <$> _upPrimary,+                  ("type" .=) <$> _upType,+                  ("customType" .=) <$> _upCustomType])++-- | JSON template for Photo object in Directory API.+--+-- /See:/ 'userPhoto' smart constructor.+data UserPhoto =+  UserPhoto'+    { _upPhotoData    :: !(Maybe Bytes)+    , _upEtag         :: !(Maybe Text)+    , _upHeight       :: !(Maybe (Textual Int32))+    , _upKind         :: !Text+    , _upWidth        :: !(Maybe (Textual Int32))+    , _upMimeType     :: !(Maybe Text)+    , _upId           :: !(Maybe Text)+    , _upPrimaryEmail :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserPhoto' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'upPhotoData'+--+-- * 'upEtag'+--+-- * 'upHeight'+--+-- * 'upKind'+--+-- * 'upWidth'+--+-- * 'upMimeType'+--+-- * 'upId'+--+-- * 'upPrimaryEmail'+userPhoto+    :: UserPhoto+userPhoto =+  UserPhoto'+    { _upPhotoData = Nothing+    , _upEtag = Nothing+    , _upHeight = Nothing+    , _upKind = "admin#directory#user#photo"+    , _upWidth = Nothing+    , _upMimeType = Nothing+    , _upId = Nothing+    , _upPrimaryEmail = Nothing+    }+++-- | Base64 encoded photo data+upPhotoData :: Lens' UserPhoto (Maybe ByteString)+upPhotoData+  = lens _upPhotoData (\ s a -> s{_upPhotoData = a}) .+      mapping _Bytes++-- | ETag of the resource.+upEtag :: Lens' UserPhoto (Maybe Text)+upEtag = lens _upEtag (\ s a -> s{_upEtag = a})++-- | Height in pixels of the photo+upHeight :: Lens' UserPhoto (Maybe Int32)+upHeight+  = lens _upHeight (\ s a -> s{_upHeight = a}) .+      mapping _Coerce++-- | Kind of resource this is.+upKind :: Lens' UserPhoto Text+upKind = lens _upKind (\ s a -> s{_upKind = a})++-- | Width in pixels of the photo+upWidth :: Lens' UserPhoto (Maybe Int32)+upWidth+  = lens _upWidth (\ s a -> s{_upWidth = a}) .+      mapping _Coerce++-- | Mime Type of the photo+upMimeType :: Lens' UserPhoto (Maybe Text)+upMimeType+  = lens _upMimeType (\ s a -> s{_upMimeType = a})++-- | Unique identifier of User (Read-only)+upId :: Lens' UserPhoto (Maybe Text)+upId = lens _upId (\ s a -> s{_upId = a})++-- | Primary email of User (Read-only)+upPrimaryEmail :: Lens' UserPhoto (Maybe Text)+upPrimaryEmail+  = lens _upPrimaryEmail+      (\ s a -> s{_upPrimaryEmail = a})++instance FromJSON UserPhoto where+        parseJSON+          = withObject "UserPhoto"+              (\ o ->+                 UserPhoto' <$>+                   (o .:? "photoData") <*> (o .:? "etag") <*>+                     (o .:? "height")+                     <*> (o .:? "kind" .!= "admin#directory#user#photo")+                     <*> (o .:? "width")+                     <*> (o .:? "mimeType")+                     <*> (o .:? "id")+                     <*> (o .:? "primaryEmail"))++instance ToJSON UserPhoto where+        toJSON UserPhoto'{..}+          = object+              (catMaybes+                 [("photoData" .=) <$> _upPhotoData,+                  ("etag" .=) <$> _upEtag, ("height" .=) <$> _upHeight,+                  Just ("kind" .= _upKind), ("width" .=) <$> _upWidth,+                  ("mimeType" .=) <$> _upMimeType, ("id" .=) <$> _upId,+                  ("primaryEmail" .=) <$> _upPrimaryEmail])++--+-- /See:/ 'chromeOSDeviceSystemRamFreeReportsItem' smart constructor.+data ChromeOSDeviceSystemRamFreeReportsItem =+  ChromeOSDeviceSystemRamFreeReportsItem'+    { _codsrfriReportTime        :: !(Maybe DateTime')+    , _codsrfriSystemRamFreeInfo :: !(Maybe [Textual Int64])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ChromeOSDeviceSystemRamFreeReportsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'codsrfriReportTime'+--+-- * 'codsrfriSystemRamFreeInfo'+chromeOSDeviceSystemRamFreeReportsItem+    :: ChromeOSDeviceSystemRamFreeReportsItem+chromeOSDeviceSystemRamFreeReportsItem =+  ChromeOSDeviceSystemRamFreeReportsItem'+    {_codsrfriReportTime = Nothing, _codsrfriSystemRamFreeInfo = Nothing}+++-- | Date and time the report was received.+codsrfriReportTime :: Lens' ChromeOSDeviceSystemRamFreeReportsItem (Maybe UTCTime)+codsrfriReportTime+  = lens _codsrfriReportTime+      (\ s a -> s{_codsrfriReportTime = a})+      . mapping _DateTime++codsrfriSystemRamFreeInfo :: Lens' ChromeOSDeviceSystemRamFreeReportsItem [Int64]+codsrfriSystemRamFreeInfo+  = lens _codsrfriSystemRamFreeInfo+      (\ s a -> s{_codsrfriSystemRamFreeInfo = a})+      . _Default+      . _Coerce++instance FromJSON+           ChromeOSDeviceSystemRamFreeReportsItem+         where+        parseJSON+          = withObject "ChromeOSDeviceSystemRamFreeReportsItem"+              (\ o ->+                 ChromeOSDeviceSystemRamFreeReportsItem' <$>+                   (o .:? "reportTime") <*>+                     (o .:? "systemRamFreeInfo" .!= mempty))++instance ToJSON+           ChromeOSDeviceSystemRamFreeReportsItem+         where+        toJSON ChromeOSDeviceSystemRamFreeReportsItem'{..}+          = object+              (catMaybes+                 [("reportTime" .=) <$> _codsrfriReportTime,+                  ("systemRamFreeInfo" .=) <$>+                    _codsrfriSystemRamFreeInfo])++-- | JSON template for a POSIX account entry. Description of the field+-- family: go\/fbs-posix.+--+-- /See:/ 'userPosixAccount' smart constructor.+data UserPosixAccount =+  UserPosixAccount'+    { _upaGecos               :: !(Maybe Text)+    , _upaUid                 :: !(Maybe (Textual Word64))+    , _upaUsername            :: !(Maybe Text)+    , _upaShell               :: !(Maybe Text)+    , _upaPrimary             :: !(Maybe Bool)+    , _upaAccountId           :: !(Maybe Text)+    , _upaGid                 :: !(Maybe (Textual Word64))+    , _upaOperatingSystemType :: !(Maybe Text)+    , _upaSystemId            :: !(Maybe Text)+    , _upaHomeDirectory       :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserPosixAccount' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'upaGecos'+--+-- * 'upaUid'+--+-- * 'upaUsername'+--+-- * 'upaShell'+--+-- * 'upaPrimary'+--+-- * 'upaAccountId'+--+-- * 'upaGid'+--+-- * 'upaOperatingSystemType'+--+-- * 'upaSystemId'+--+-- * 'upaHomeDirectory'+userPosixAccount+    :: UserPosixAccount+userPosixAccount =+  UserPosixAccount'+    { _upaGecos = Nothing+    , _upaUid = Nothing+    , _upaUsername = Nothing+    , _upaShell = Nothing+    , _upaPrimary = Nothing+    , _upaAccountId = Nothing+    , _upaGid = Nothing+    , _upaOperatingSystemType = Nothing+    , _upaSystemId = Nothing+    , _upaHomeDirectory = Nothing+    }+++-- | The GECOS (user information) for this account.+upaGecos :: Lens' UserPosixAccount (Maybe Text)+upaGecos = lens _upaGecos (\ s a -> s{_upaGecos = a})++-- | The POSIX compliant user ID.+upaUid :: Lens' UserPosixAccount (Maybe Word64)+upaUid+  = lens _upaUid (\ s a -> s{_upaUid = a}) .+      mapping _Coerce++-- | The username of the account.+upaUsername :: Lens' UserPosixAccount (Maybe Text)+upaUsername+  = lens _upaUsername (\ s a -> s{_upaUsername = a})++-- | The path to the login shell for this account.+upaShell :: Lens' UserPosixAccount (Maybe Text)+upaShell = lens _upaShell (\ s a -> s{_upaShell = a})++-- | If this is user\'s primary account within the SystemId.+upaPrimary :: Lens' UserPosixAccount (Maybe Bool)+upaPrimary+  = lens _upaPrimary (\ s a -> s{_upaPrimary = a})++-- | A POSIX account field identifier.+upaAccountId :: Lens' UserPosixAccount (Maybe Text)+upaAccountId+  = lens _upaAccountId (\ s a -> s{_upaAccountId = a})++-- | The default group ID.+upaGid :: Lens' UserPosixAccount (Maybe Word64)+upaGid+  = lens _upaGid (\ s a -> s{_upaGid = a}) .+      mapping _Coerce++-- | The operating system type for this account.+upaOperatingSystemType :: Lens' UserPosixAccount (Maybe Text)+upaOperatingSystemType+  = lens _upaOperatingSystemType+      (\ s a -> s{_upaOperatingSystemType = a})++-- | System identifier for which account Username or Uid apply to.+upaSystemId :: Lens' UserPosixAccount (Maybe Text)+upaSystemId+  = lens _upaSystemId (\ s a -> s{_upaSystemId = a})++-- | The path to the home directory for this account.+upaHomeDirectory :: Lens' UserPosixAccount (Maybe Text)+upaHomeDirectory+  = lens _upaHomeDirectory+      (\ s a -> s{_upaHomeDirectory = a})++instance FromJSON UserPosixAccount where+        parseJSON+          = withObject "UserPosixAccount"+              (\ o ->+                 UserPosixAccount' <$>+                   (o .:? "gecos") <*> (o .:? "uid") <*>+                     (o .:? "username")+                     <*> (o .:? "shell")+                     <*> (o .:? "primary")+                     <*> (o .:? "accountId")+                     <*> (o .:? "gid")+                     <*> (o .:? "operatingSystemType")+                     <*> (o .:? "systemId")+                     <*> (o .:? "homeDirectory"))++instance ToJSON UserPosixAccount where+        toJSON UserPosixAccount'{..}+          = object+              (catMaybes+                 [("gecos" .=) <$> _upaGecos, ("uid" .=) <$> _upaUid,+                  ("username" .=) <$> _upaUsername,+                  ("shell" .=) <$> _upaShell,+                  ("primary" .=) <$> _upaPrimary,+                  ("accountId" .=) <$> _upaAccountId,+                  ("gid" .=) <$> _upaGid,+                  ("operatingSystemType" .=) <$>+                    _upaOperatingSystemType,+                  ("systemId" .=) <$> _upaSystemId,+                  ("homeDirectory" .=) <$> _upaHomeDirectory])++-- | JSON template for a \"feature instance\".+--+-- /See:/ 'featureInstance' smart constructor.+newtype FeatureInstance =+  FeatureInstance'+    { _fiFeature :: Maybe Feature+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FeatureInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fiFeature'+featureInstance+    :: FeatureInstance+featureInstance = FeatureInstance' {_fiFeature = Nothing}+++-- | The feature that this is an instance of. A calendar resource may have+-- multiple instances of a feature.+fiFeature :: Lens' FeatureInstance (Maybe Feature)+fiFeature+  = lens _fiFeature (\ s a -> s{_fiFeature = a})++instance FromJSON FeatureInstance where+        parseJSON+          = withObject "FeatureInstance"+              (\ o -> FeatureInstance' <$> (o .:? "feature"))++instance ToJSON FeatureInstance where+        toJSON FeatureInstance'{..}+          = object (catMaybes [("feature" .=) <$> _fiFeature])++-- | JSON template for Mobile Device resource in Directory API.+--+-- /See:/ 'mobileDevice' smart constructor.+data MobileDevice =+  MobileDevice'+    { _mobEmail                          :: !(Maybe [Text])+    , _mobStatus                         :: !(Maybe Text)+    , _mobPrivilege                      :: !(Maybe Text)+    , _mobEtag                           :: !(Maybe Text)+    , _mobResourceId                     :: !(Maybe Text)+    , _mobManufacturer                   :: !(Maybe Text)+    , _mobBuildNumber                    :: !(Maybe Text)+    , _mobManagedAccountIsOnOwnerProFile :: !(Maybe Bool)+    , _mobLastSync                       :: !(Maybe DateTime')+    , _mobOtherAccountsInfo              :: !(Maybe [Text])+    , _mobKind                           :: !Text+    , _mobAdbStatus                      :: !(Maybe Bool)+    , _mobReleaseVersion                 :: !(Maybe Text)+    , _mobBrand                          :: !(Maybe Text)+    , _mobSecurityPatchLevel             :: !(Maybe (Textual Int64))+    , _mobNetworkOperator                :: !(Maybe Text)+    , _mobKernelVersion                  :: !(Maybe Text)+    , _mobOS                             :: !(Maybe Text)+    , _mobName                           :: !(Maybe [Text])+    , _mobModel                          :: !(Maybe Text)+    , _mobDeveloperOptionsStatus         :: !(Maybe Bool)+    , _mobUnknownSourcesStatus           :: !(Maybe Bool)+    , _mobMeid                           :: !(Maybe Text)+    , _mobBootLoaderVersion              :: !(Maybe Text)+    , _mobDeviceId                       :: !(Maybe Text)+    , _mobFirstSync                      :: !(Maybe DateTime')+    , _mobUserAgent                      :: !(Maybe Text)+    , _mobImei                           :: !(Maybe Text)+    , _mobType                           :: !(Maybe Text)+    , _mobWifiMACAddress                 :: !(Maybe Text)+    , _mobEncryptionStatus               :: !(Maybe Text)+    , _mobSerialNumber                   :: !(Maybe Text)+    , _mobDevicePasswordStatus           :: !(Maybe Text)+    , _mobHardwareId                     :: !(Maybe Text)+    , _mobBasebandVersion                :: !(Maybe Text)+    , _mobSupportsWorkProFile            :: !(Maybe Bool)+    , _mobHardware                       :: !(Maybe Text)+    , _mobDeviceCompromisedStatus        :: !(Maybe Text)+    , _mobApplications                   :: !(Maybe [MobileDeviceApplicationsItem])+    , _mobDefaultLanguage                :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'MobileDevice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mobEmail'+--+-- * 'mobStatus'+--+-- * 'mobPrivilege'+--+-- * 'mobEtag'+--+-- * 'mobResourceId'+--+-- * 'mobManufacturer'+--+-- * 'mobBuildNumber'+--+-- * 'mobManagedAccountIsOnOwnerProFile'+--+-- * 'mobLastSync'+--+-- * 'mobOtherAccountsInfo'+--+-- * 'mobKind'+--+-- * 'mobAdbStatus'+--+-- * 'mobReleaseVersion'+--+-- * 'mobBrand'+--+-- * 'mobSecurityPatchLevel'+--+-- * 'mobNetworkOperator'+--+-- * 'mobKernelVersion'+--+-- * 'mobOS'+--+-- * 'mobName'+--+-- * 'mobModel'+--+-- * 'mobDeveloperOptionsStatus'+--+-- * 'mobUnknownSourcesStatus'+--+-- * 'mobMeid'+--+-- * 'mobBootLoaderVersion'+--+-- * 'mobDeviceId'+--+-- * 'mobFirstSync'+--+-- * 'mobUserAgent'+--+-- * 'mobImei'+--+-- * 'mobType'+--+-- * 'mobWifiMACAddress'+--+-- * 'mobEncryptionStatus'+--+-- * 'mobSerialNumber'+--+-- * 'mobDevicePasswordStatus'+--+-- * 'mobHardwareId'+--+-- * 'mobBasebandVersion'+--+-- * 'mobSupportsWorkProFile'+--+-- * 'mobHardware'+--+-- * 'mobDeviceCompromisedStatus'+--+-- * 'mobApplications'+--+-- * 'mobDefaultLanguage'+mobileDevice+    :: MobileDevice+mobileDevice =+  MobileDevice'+    { _mobEmail = Nothing+    , _mobStatus = Nothing+    , _mobPrivilege = Nothing+    , _mobEtag = Nothing+    , _mobResourceId = Nothing+    , _mobManufacturer = Nothing+    , _mobBuildNumber = Nothing+    , _mobManagedAccountIsOnOwnerProFile = Nothing+    , _mobLastSync = Nothing+    , _mobOtherAccountsInfo = Nothing+    , _mobKind = "admin#directory#mobiledevice"+    , _mobAdbStatus = Nothing+    , _mobReleaseVersion = Nothing+    , _mobBrand = Nothing+    , _mobSecurityPatchLevel = Nothing+    , _mobNetworkOperator = Nothing+    , _mobKernelVersion = Nothing+    , _mobOS = Nothing+    , _mobName = Nothing+    , _mobModel = Nothing+    , _mobDeveloperOptionsStatus = Nothing+    , _mobUnknownSourcesStatus = Nothing+    , _mobMeid = Nothing+    , _mobBootLoaderVersion = Nothing+    , _mobDeviceId = Nothing+    , _mobFirstSync = Nothing+    , _mobUserAgent = Nothing+    , _mobImei = Nothing+    , _mobType = Nothing+    , _mobWifiMACAddress = Nothing+    , _mobEncryptionStatus = Nothing+    , _mobSerialNumber = Nothing+    , _mobDevicePasswordStatus = Nothing+    , _mobHardwareId = Nothing+    , _mobBasebandVersion = Nothing+    , _mobSupportsWorkProFile = Nothing+    , _mobHardware = Nothing+    , _mobDeviceCompromisedStatus = Nothing+    , _mobApplications = Nothing+    , _mobDefaultLanguage = Nothing+    }+++-- | List of owner user\'s email addresses (Read-only)+mobEmail :: Lens' MobileDevice [Text]+mobEmail+  = lens _mobEmail (\ s a -> s{_mobEmail = a}) .+      _Default+      . _Coerce++-- | Status of the device (Read-only)+mobStatus :: Lens' MobileDevice (Maybe Text)+mobStatus+  = lens _mobStatus (\ s a -> s{_mobStatus = a})++-- | DMAgentPermission (Read-only)+mobPrivilege :: Lens' MobileDevice (Maybe Text)+mobPrivilege+  = lens _mobPrivilege (\ s a -> s{_mobPrivilege = a})++-- | ETag of the resource.+mobEtag :: Lens' MobileDevice (Maybe Text)+mobEtag = lens _mobEtag (\ s a -> s{_mobEtag = a})++-- | Unique identifier of Mobile Device (Read-only)+mobResourceId :: Lens' MobileDevice (Maybe Text)+mobResourceId+  = lens _mobResourceId+      (\ s a -> s{_mobResourceId = a})++-- | Mobile Device manufacturer (Read-only)+mobManufacturer :: Lens' MobileDevice (Maybe Text)+mobManufacturer+  = lens _mobManufacturer+      (\ s a -> s{_mobManufacturer = a})++-- | Mobile Device Build number (Read-only)+mobBuildNumber :: Lens' MobileDevice (Maybe Text)+mobBuildNumber+  = lens _mobBuildNumber+      (\ s a -> s{_mobBuildNumber = a})++-- | Boolean indicating if this account is on owner\/primary profile or not+-- (Read-only)+mobManagedAccountIsOnOwnerProFile :: Lens' MobileDevice (Maybe Bool)+mobManagedAccountIsOnOwnerProFile+  = lens _mobManagedAccountIsOnOwnerProFile+      (\ s a -> s{_mobManagedAccountIsOnOwnerProFile = a})++-- | Date and time the device was last synchronized with the policy settings+-- in the G Suite administrator control panel (Read-only)+mobLastSync :: Lens' MobileDevice (Maybe UTCTime)+mobLastSync+  = lens _mobLastSync (\ s a -> s{_mobLastSync = a}) .+      mapping _DateTime++-- | List of accounts added on device (Read-only)+mobOtherAccountsInfo :: Lens' MobileDevice [Text]+mobOtherAccountsInfo+  = lens _mobOtherAccountsInfo+      (\ s a -> s{_mobOtherAccountsInfo = a})+      . _Default+      . _Coerce++-- | Kind of resource this is.+mobKind :: Lens' MobileDevice Text+mobKind = lens _mobKind (\ s a -> s{_mobKind = a})++-- | Adb (USB debugging) enabled or disabled on device (Read-only)+mobAdbStatus :: Lens' MobileDevice (Maybe Bool)+mobAdbStatus+  = lens _mobAdbStatus (\ s a -> s{_mobAdbStatus = a})++-- | Mobile Device release version version (Read-only)+mobReleaseVersion :: Lens' MobileDevice (Maybe Text)+mobReleaseVersion+  = lens _mobReleaseVersion+      (\ s a -> s{_mobReleaseVersion = a})++-- | Mobile Device Brand (Read-only)+mobBrand :: Lens' MobileDevice (Maybe Text)+mobBrand = lens _mobBrand (\ s a -> s{_mobBrand = a})++-- | Mobile Device Security patch level (Read-only)+mobSecurityPatchLevel :: Lens' MobileDevice (Maybe Int64)+mobSecurityPatchLevel+  = lens _mobSecurityPatchLevel+      (\ s a -> s{_mobSecurityPatchLevel = a})+      . mapping _Coerce++-- | Mobile Device mobile or network operator (if available) (Read-only)+mobNetworkOperator :: Lens' MobileDevice (Maybe Text)+mobNetworkOperator+  = lens _mobNetworkOperator+      (\ s a -> s{_mobNetworkOperator = a})++-- | Mobile Device Kernel version (Read-only)+mobKernelVersion :: Lens' MobileDevice (Maybe Text)+mobKernelVersion+  = lens _mobKernelVersion+      (\ s a -> s{_mobKernelVersion = a})++-- | Name of the mobile operating system+mobOS :: Lens' MobileDevice (Maybe Text)+mobOS = lens _mobOS (\ s a -> s{_mobOS = a})++-- | List of owner user\'s names (Read-only)+mobName :: Lens' MobileDevice [Text]+mobName+  = lens _mobName (\ s a -> s{_mobName = a}) . _Default+      . _Coerce++-- | Name of the model of the device+mobModel :: Lens' MobileDevice (Maybe Text)+mobModel = lens _mobModel (\ s a -> s{_mobModel = a})++-- | Developer options enabled or disabled on device (Read-only)+mobDeveloperOptionsStatus :: Lens' MobileDevice (Maybe Bool)+mobDeveloperOptionsStatus+  = lens _mobDeveloperOptionsStatus+      (\ s a -> s{_mobDeveloperOptionsStatus = a})++-- | Unknown sources enabled or disabled on device (Read-only)+mobUnknownSourcesStatus :: Lens' MobileDevice (Maybe Bool)+mobUnknownSourcesStatus+  = lens _mobUnknownSourcesStatus+      (\ s a -> s{_mobUnknownSourcesStatus = a})++-- | Mobile Device MEID number (Read-only)+mobMeid :: Lens' MobileDevice (Maybe Text)+mobMeid = lens _mobMeid (\ s a -> s{_mobMeid = a})++-- | Mobile Device Bootloader version (Read-only)+mobBootLoaderVersion :: Lens' MobileDevice (Maybe Text)+mobBootLoaderVersion+  = lens _mobBootLoaderVersion+      (\ s a -> s{_mobBootLoaderVersion = a})++-- | Mobile Device serial number (Read-only)+mobDeviceId :: Lens' MobileDevice (Maybe Text)+mobDeviceId+  = lens _mobDeviceId (\ s a -> s{_mobDeviceId = a})++-- | Date and time the device was first synchronized with the policy settings+-- in the G Suite administrator control panel (Read-only)+mobFirstSync :: Lens' MobileDevice (Maybe UTCTime)+mobFirstSync+  = lens _mobFirstSync (\ s a -> s{_mobFirstSync = a})+      . mapping _DateTime++-- | Mobile Device user agent+mobUserAgent :: Lens' MobileDevice (Maybe Text)+mobUserAgent+  = lens _mobUserAgent (\ s a -> s{_mobUserAgent = a})++-- | Mobile Device IMEI number (Read-only)+mobImei :: Lens' MobileDevice (Maybe Text)+mobImei = lens _mobImei (\ s a -> s{_mobImei = a})++-- | The type of device (Read-only)+mobType :: Lens' MobileDevice (Maybe Text)+mobType = lens _mobType (\ s a -> s{_mobType = a})++-- | Mobile Device WiFi MAC address (Read-only)+mobWifiMACAddress :: Lens' MobileDevice (Maybe Text)+mobWifiMACAddress+  = lens _mobWifiMACAddress+      (\ s a -> s{_mobWifiMACAddress = a})++-- | Mobile Device Encryption Status (Read-only)+mobEncryptionStatus :: Lens' MobileDevice (Maybe Text)+mobEncryptionStatus+  = lens _mobEncryptionStatus+      (\ s a -> s{_mobEncryptionStatus = a})++-- | Mobile Device SSN or Serial Number (Read-only)+mobSerialNumber :: Lens' MobileDevice (Maybe Text)+mobSerialNumber+  = lens _mobSerialNumber+      (\ s a -> s{_mobSerialNumber = a})++-- | DevicePasswordStatus (Read-only)+mobDevicePasswordStatus :: Lens' MobileDevice (Maybe Text)+mobDevicePasswordStatus+  = lens _mobDevicePasswordStatus+      (\ s a -> s{_mobDevicePasswordStatus = a})++-- | Mobile Device Hardware Id (Read-only)+mobHardwareId :: Lens' MobileDevice (Maybe Text)+mobHardwareId+  = lens _mobHardwareId+      (\ s a -> s{_mobHardwareId = a})++-- | Mobile Device Baseband version (Read-only)+mobBasebandVersion :: Lens' MobileDevice (Maybe Text)+mobBasebandVersion+  = lens _mobBasebandVersion+      (\ s a -> s{_mobBasebandVersion = a})++-- | Work profile supported on device (Read-only)+mobSupportsWorkProFile :: Lens' MobileDevice (Maybe Bool)+mobSupportsWorkProFile+  = lens _mobSupportsWorkProFile+      (\ s a -> s{_mobSupportsWorkProFile = a})++-- | Mobile Device Hardware (Read-only)+mobHardware :: Lens' MobileDevice (Maybe Text)+mobHardware+  = lens _mobHardware (\ s a -> s{_mobHardware = a})++-- | Mobile Device compromised status (Read-only)+mobDeviceCompromisedStatus :: Lens' MobileDevice (Maybe Text)+mobDeviceCompromisedStatus+  = lens _mobDeviceCompromisedStatus+      (\ s a -> s{_mobDeviceCompromisedStatus = a})++-- | List of applications installed on Mobile Device+mobApplications :: Lens' MobileDevice [MobileDeviceApplicationsItem]+mobApplications+  = lens _mobApplications+      (\ s a -> s{_mobApplications = a})+      . _Default+      . _Coerce++-- | The default locale used on the Mobile Device (Read-only)+mobDefaultLanguage :: Lens' MobileDevice (Maybe Text)+mobDefaultLanguage+  = lens _mobDefaultLanguage+      (\ s a -> s{_mobDefaultLanguage = a})++instance FromJSON MobileDevice where+        parseJSON+          = withObject "MobileDevice"+              (\ o ->+                 MobileDevice' <$>+                   (o .:? "email" .!= mempty) <*> (o .:? "status") <*>+                     (o .:? "privilege")+                     <*> (o .:? "etag")+                     <*> (o .:? "resourceId")+                     <*> (o .:? "manufacturer")+                     <*> (o .:? "buildNumber")+                     <*> (o .:? "managedAccountIsOnOwnerProfile")+                     <*> (o .:? "lastSync")+                     <*> (o .:? "otherAccountsInfo" .!= mempty)+                     <*> (o .:? "kind" .!= "admin#directory#mobiledevice")+                     <*> (o .:? "adbStatus")+                     <*> (o .:? "releaseVersion")+                     <*> (o .:? "brand")+                     <*> (o .:? "securityPatchLevel")+                     <*> (o .:? "networkOperator")+                     <*> (o .:? "kernelVersion")+                     <*> (o .:? "os")+                     <*> (o .:? "name" .!= mempty)+                     <*> (o .:? "model")+                     <*> (o .:? "developerOptionsStatus")+                     <*> (o .:? "unknownSourcesStatus")+                     <*> (o .:? "meid")+                     <*> (o .:? "bootloaderVersion")+                     <*> (o .:? "deviceId")+                     <*> (o .:? "firstSync")+                     <*> (o .:? "userAgent")+                     <*> (o .:? "imei")+                     <*> (o .:? "type")+                     <*> (o .:? "wifiMacAddress")+                     <*> (o .:? "encryptionStatus")+                     <*> (o .:? "serialNumber")+                     <*> (o .:? "devicePasswordStatus")+                     <*> (o .:? "hardwareId")+                     <*> (o .:? "basebandVersion")+                     <*> (o .:? "supportsWorkProfile")+                     <*> (o .:? "hardware")+                     <*> (o .:? "deviceCompromisedStatus")+                     <*> (o .:? "applications" .!= mempty)+                     <*> (o .:? "defaultLanguage"))++instance ToJSON MobileDevice where+        toJSON MobileDevice'{..}+          = object+              (catMaybes+                 [("email" .=) <$> _mobEmail,+                  ("status" .=) <$> _mobStatus,+                  ("privilege" .=) <$> _mobPrivilege,+                  ("etag" .=) <$> _mobEtag,+                  ("resourceId" .=) <$> _mobResourceId,+                  ("manufacturer" .=) <$> _mobManufacturer,+                  ("buildNumber" .=) <$> _mobBuildNumber,+                  ("managedAccountIsOnOwnerProfile" .=) <$>+                    _mobManagedAccountIsOnOwnerProFile,+                  ("lastSync" .=) <$> _mobLastSync,+                  ("otherAccountsInfo" .=) <$> _mobOtherAccountsInfo,+                  Just ("kind" .= _mobKind),+                  ("adbStatus" .=) <$> _mobAdbStatus,+                  ("releaseVersion" .=) <$> _mobReleaseVersion,+                  ("brand" .=) <$> _mobBrand,+                  ("securityPatchLevel" .=) <$> _mobSecurityPatchLevel,+                  ("networkOperator" .=) <$> _mobNetworkOperator,+                  ("kernelVersion" .=) <$> _mobKernelVersion,+                  ("os" .=) <$> _mobOS, ("name" .=) <$> _mobName,+                  ("model" .=) <$> _mobModel,+                  ("developerOptionsStatus" .=) <$>+                    _mobDeveloperOptionsStatus,+                  ("unknownSourcesStatus" .=) <$>+                    _mobUnknownSourcesStatus,+                  ("meid" .=) <$> _mobMeid,+                  ("bootloaderVersion" .=) <$> _mobBootLoaderVersion,+                  ("deviceId" .=) <$> _mobDeviceId,+                  ("firstSync" .=) <$> _mobFirstSync,+                  ("userAgent" .=) <$> _mobUserAgent,+                  ("imei" .=) <$> _mobImei, ("type" .=) <$> _mobType,+                  ("wifiMacAddress" .=) <$> _mobWifiMACAddress,+                  ("encryptionStatus" .=) <$> _mobEncryptionStatus,+                  ("serialNumber" .=) <$> _mobSerialNumber,+                  ("devicePasswordStatus" .=) <$>+                    _mobDevicePasswordStatus,+                  ("hardwareId" .=) <$> _mobHardwareId,+                  ("basebandVersion" .=) <$> _mobBasebandVersion,+                  ("supportsWorkProfile" .=) <$>+                    _mobSupportsWorkProFile,+                  ("hardware" .=) <$> _mobHardware,+                  ("deviceCompromisedStatus" .=) <$>+                    _mobDeviceCompromisedStatus,+                  ("applications" .=) <$> _mobApplications,+                  ("defaultLanguage" .=) <$> _mobDefaultLanguage])++--+-- /See:/ 'chromeOSDeviceCPUStatusReportsItem' smart constructor.+data ChromeOSDeviceCPUStatusReportsItem =+  ChromeOSDeviceCPUStatusReportsItem'+    { _codcsriCPUUtilizationPercentageInfo :: !(Maybe [Textual Int32])+    , _codcsriCPUTemperatureInfo           :: !(Maybe [ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem])+    , _codcsriReportTime                   :: !(Maybe DateTime')+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ChromeOSDeviceCPUStatusReportsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'codcsriCPUUtilizationPercentageInfo'+--+-- * 'codcsriCPUTemperatureInfo'+--+-- * 'codcsriReportTime'+chromeOSDeviceCPUStatusReportsItem+    :: ChromeOSDeviceCPUStatusReportsItem+chromeOSDeviceCPUStatusReportsItem =+  ChromeOSDeviceCPUStatusReportsItem'+    { _codcsriCPUUtilizationPercentageInfo = Nothing+    , _codcsriCPUTemperatureInfo = Nothing+    , _codcsriReportTime = Nothing+    }+++codcsriCPUUtilizationPercentageInfo :: Lens' ChromeOSDeviceCPUStatusReportsItem [Int32]+codcsriCPUUtilizationPercentageInfo+  = lens _codcsriCPUUtilizationPercentageInfo+      (\ s a ->+         s{_codcsriCPUUtilizationPercentageInfo = a})+      . _Default+      . _Coerce++-- | List of CPU temperature samples.+codcsriCPUTemperatureInfo :: Lens' ChromeOSDeviceCPUStatusReportsItem [ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem]+codcsriCPUTemperatureInfo+  = lens _codcsriCPUTemperatureInfo+      (\ s a -> s{_codcsriCPUTemperatureInfo = a})+      . _Default+      . _Coerce++-- | Date and time the report was received.+codcsriReportTime :: Lens' ChromeOSDeviceCPUStatusReportsItem (Maybe UTCTime)+codcsriReportTime+  = lens _codcsriReportTime+      (\ s a -> s{_codcsriReportTime = a})+      . mapping _DateTime++instance FromJSON ChromeOSDeviceCPUStatusReportsItem+         where+        parseJSON+          = withObject "ChromeOSDeviceCPUStatusReportsItem"+              (\ o ->+                 ChromeOSDeviceCPUStatusReportsItem' <$>+                   (o .:? "cpuUtilizationPercentageInfo" .!= mempty) <*>+                     (o .:? "cpuTemperatureInfo" .!= mempty)+                     <*> (o .:? "reportTime"))++instance ToJSON ChromeOSDeviceCPUStatusReportsItem+         where+        toJSON ChromeOSDeviceCPUStatusReportsItem'{..}+          = object+              (catMaybes+                 [("cpuUtilizationPercentageInfo" .=) <$>+                    _codcsriCPUUtilizationPercentageInfo,+                  ("cpuTemperatureInfo" .=) <$>+                    _codcsriCPUTemperatureInfo,+                  ("reportTime" .=) <$> _codcsriReportTime])++-- | JSON template for Member resource in Directory API.+--+-- /See:/ 'member' smart constructor.+data Member =+  Member'+    { _memEmail            :: !(Maybe Text)+    , _memStatus           :: !(Maybe Text)+    , _memEtag             :: !(Maybe Text)+    , _memKind             :: !Text+    , _memDeliverySettings :: !(Maybe Text)+    , _memRole             :: !(Maybe Text)+    , _memId               :: !(Maybe Text)+    , _memType             :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Member' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'memEmail'+--+-- * 'memStatus'+--+-- * 'memEtag'+--+-- * 'memKind'+--+-- * 'memDeliverySettings'+--+-- * 'memRole'+--+-- * 'memId'+--+-- * 'memType'+member+    :: Member+member =+  Member'+    { _memEmail = Nothing+    , _memStatus = Nothing+    , _memEtag = Nothing+    , _memKind = "admin#directory#member"+    , _memDeliverySettings = Nothing+    , _memRole = Nothing+    , _memId = Nothing+    , _memType = Nothing+    }+++-- | Email of member (Read-only)+memEmail :: Lens' Member (Maybe Text)+memEmail = lens _memEmail (\ s a -> s{_memEmail = a})++-- | Status of member (Immutable)+memStatus :: Lens' Member (Maybe Text)+memStatus+  = lens _memStatus (\ s a -> s{_memStatus = a})++-- | ETag of the resource.+memEtag :: Lens' Member (Maybe Text)+memEtag = lens _memEtag (\ s a -> s{_memEtag = a})++-- | Kind of resource this is.+memKind :: Lens' Member Text+memKind = lens _memKind (\ s a -> s{_memKind = a})++-- | Delivery settings of member+memDeliverySettings :: Lens' Member (Maybe Text)+memDeliverySettings+  = lens _memDeliverySettings+      (\ s a -> s{_memDeliverySettings = a})++-- | Role of member+memRole :: Lens' Member (Maybe Text)+memRole = lens _memRole (\ s a -> s{_memRole = a})++-- | Unique identifier of customer member (Read-only) Unique identifier of+-- group (Read-only) Unique identifier of member (Read-only)+memId :: Lens' Member (Maybe Text)+memId = lens _memId (\ s a -> s{_memId = a})++-- | Type of member (Immutable)+memType :: Lens' Member (Maybe Text)+memType = lens _memType (\ s a -> s{_memType = a})++instance FromJSON Member where+        parseJSON+          = withObject "Member"+              (\ o ->+                 Member' <$>+                   (o .:? "email") <*> (o .:? "status") <*>+                     (o .:? "etag")+                     <*> (o .:? "kind" .!= "admin#directory#member")+                     <*> (o .:? "delivery_settings")+                     <*> (o .:? "role")+                     <*> (o .:? "id")+                     <*> (o .:? "type"))++instance ToJSON Member where+        toJSON Member'{..}+          = object+              (catMaybes+                 [("email" .=) <$> _memEmail,+                  ("status" .=) <$> _memStatus,+                  ("etag" .=) <$> _memEtag, Just ("kind" .= _memKind),+                  ("delivery_settings" .=) <$> _memDeliverySettings,+                  ("role" .=) <$> _memRole, ("id" .=) <$> _memId,+                  ("type" .=) <$> _memType])++-- | JSON template for App Access Collections Resource object in Directory+-- API.+--+-- /See:/ 'appAccessCollections' smart constructor.+data AppAccessCollections =+  AppAccessCollections'+    { _aacEtag                           :: !(Maybe Text)+    , _aacResourceId                     :: !(Maybe (Textual Int64))+    , _aacEnforceSettingsForAndroidDrive :: !(Maybe Bool)+    , _aacResourceName                   :: !(Maybe Text)+    , _aacKind                           :: !Text+    , _aacTrustDomainOwnedApps           :: !(Maybe Bool)+    , _aacBlockedAPIAccessBuckets        :: !(Maybe [Text])+    , _aacErrorMessage                   :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AppAccessCollections' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aacEtag'+--+-- * 'aacResourceId'+--+-- * 'aacEnforceSettingsForAndroidDrive'+--+-- * 'aacResourceName'+--+-- * 'aacKind'+--+-- * 'aacTrustDomainOwnedApps'+--+-- * 'aacBlockedAPIAccessBuckets'+--+-- * 'aacErrorMessage'+appAccessCollections+    :: AppAccessCollections+appAccessCollections =+  AppAccessCollections'+    { _aacEtag = Nothing+    , _aacResourceId = Nothing+    , _aacEnforceSettingsForAndroidDrive = Nothing+    , _aacResourceName = Nothing+    , _aacKind = "admin#directory#appaccesscollection"+    , _aacTrustDomainOwnedApps = Nothing+    , _aacBlockedAPIAccessBuckets = Nothing+    , _aacErrorMessage = Nothing+    }+++-- | ETag of the resource.+aacEtag :: Lens' AppAccessCollections (Maybe Text)+aacEtag = lens _aacEtag (\ s a -> s{_aacEtag = a})++-- | Unique ID of app access collection. (Readonly)+aacResourceId :: Lens' AppAccessCollections (Maybe Int64)+aacResourceId+  = lens _aacResourceId+      (\ s a -> s{_aacResourceId = a})+      . mapping _Coerce++-- | Boolean to indicate whether to enforce app access settings on Android+-- Drive or not.+aacEnforceSettingsForAndroidDrive :: Lens' AppAccessCollections (Maybe Bool)+aacEnforceSettingsForAndroidDrive+  = lens _aacEnforceSettingsForAndroidDrive+      (\ s a -> s{_aacEnforceSettingsForAndroidDrive = a})++-- | Resource name given by the customer while creating\/updating. Should be+-- unique under given customer.+aacResourceName :: Lens' AppAccessCollections (Maybe Text)+aacResourceName+  = lens _aacResourceName+      (\ s a -> s{_aacResourceName = a})++-- | Identifies the resource as an app access collection. Value:+-- admin#directory#appaccesscollection+aacKind :: Lens' AppAccessCollections Text+aacKind = lens _aacKind (\ s a -> s{_aacKind = a})++-- | Boolean that indicates whether to trust domain owned apps.+aacTrustDomainOwnedApps :: Lens' AppAccessCollections (Maybe Bool)+aacTrustDomainOwnedApps+  = lens _aacTrustDomainOwnedApps+      (\ s a -> s{_aacTrustDomainOwnedApps = a})++-- | List of blocked api access buckets.+aacBlockedAPIAccessBuckets :: Lens' AppAccessCollections [Text]+aacBlockedAPIAccessBuckets+  = lens _aacBlockedAPIAccessBuckets+      (\ s a -> s{_aacBlockedAPIAccessBuckets = a})+      . _Default+      . _Coerce++-- | Error message provided by the Admin that will be shown to the user when+-- an app is blocked.+aacErrorMessage :: Lens' AppAccessCollections (Maybe Text)+aacErrorMessage+  = lens _aacErrorMessage+      (\ s a -> s{_aacErrorMessage = a})++instance FromJSON AppAccessCollections where+        parseJSON+          = withObject "AppAccessCollections"+              (\ o ->+                 AppAccessCollections' <$>+                   (o .:? "etag") <*> (o .:? "resourceId") <*>+                     (o .:? "enforceSettingsForAndroidDrive")+                     <*> (o .:? "resourceName")+                     <*>+                     (o .:? "kind" .!=+                        "admin#directory#appaccesscollection")+                     <*> (o .:? "trustDomainOwnedApps")+                     <*> (o .:? "blockedApiAccessBuckets" .!= mempty)+                     <*> (o .:? "errorMessage"))++instance ToJSON AppAccessCollections where+        toJSON AppAccessCollections'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _aacEtag,+                  ("resourceId" .=) <$> _aacResourceId,+                  ("enforceSettingsForAndroidDrive" .=) <$>+                    _aacEnforceSettingsForAndroidDrive,+                  ("resourceName" .=) <$> _aacResourceName,+                  Just ("kind" .= _aacKind),+                  ("trustDomainOwnedApps" .=) <$>+                    _aacTrustDomainOwnedApps,+                  ("blockedApiAccessBuckets" .=) <$>+                    _aacBlockedAPIAccessBuckets,+                  ("errorMessage" .=) <$> _aacErrorMessage])++-- | JSON template for a set of custom properties (i.e. all fields in a+-- particular schema)+--+-- /See:/ 'userCustomProperties' smart constructor.+newtype UserCustomProperties =+  UserCustomProperties'+    { _ucpAddtional :: HashMap Text JSONValue+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserCustomProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ucpAddtional'+userCustomProperties+    :: HashMap Text JSONValue -- ^ 'ucpAddtional'+    -> UserCustomProperties+userCustomProperties pUcpAddtional_ =+  UserCustomProperties' {_ucpAddtional = _Coerce # pUcpAddtional_}+++ucpAddtional :: Lens' UserCustomProperties (HashMap Text JSONValue)+ucpAddtional+  = lens _ucpAddtional (\ s a -> s{_ucpAddtional = a})+      . _Coerce++instance FromJSON UserCustomProperties where+        parseJSON+          = withObject "UserCustomProperties"+              (\ o ->+                 UserCustomProperties' <$> (parseJSONObject o))++instance ToJSON UserCustomProperties where+        toJSON = toJSON . _ucpAddtional++-- | JSON template for a language entry.+--+-- /See:/ 'userLanguage' smart constructor.+data UserLanguage =+  UserLanguage'+    { _ulLanguageCode   :: !(Maybe Text)+    , _ulCustomLanguage :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserLanguage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ulLanguageCode'+--+-- * 'ulCustomLanguage'+userLanguage+    :: UserLanguage+userLanguage =+  UserLanguage' {_ulLanguageCode = Nothing, _ulCustomLanguage = Nothing}+++-- | Language Code. Should be used for storing Google III LanguageCode string+-- representation for language. Illegal values cause SchemaException.+ulLanguageCode :: Lens' UserLanguage (Maybe Text)+ulLanguageCode+  = lens _ulLanguageCode+      (\ s a -> s{_ulLanguageCode = a})++-- | Other language. User can provide own language name if there is no+-- corresponding Google III language code. If this is set LanguageCode+-- can\'t be set+ulCustomLanguage :: Lens' UserLanguage (Maybe Text)+ulCustomLanguage+  = lens _ulCustomLanguage+      (\ s a -> s{_ulCustomLanguage = a})++instance FromJSON UserLanguage where+        parseJSON+          = withObject "UserLanguage"+              (\ o ->+                 UserLanguage' <$>+                   (o .:? "languageCode") <*> (o .:? "customLanguage"))++instance ToJSON UserLanguage where+        toJSON UserLanguage'{..}+          = object+              (catMaybes+                 [("languageCode" .=) <$> _ulLanguageCode,+                  ("customLanguage" .=) <$> _ulCustomLanguage])++-- | JSON template for Domain object in Directory API.+--+-- /See:/ 'domains' smart constructor.+data Domains =+  Domains'+    { _domCreationTime  :: !(Maybe (Textual Int64))+    , _domEtag          :: !(Maybe Text)+    , _domKind          :: !Text+    , _domDomainAliases :: !(Maybe [DomainAlias])+    , _domVerified      :: !(Maybe Bool)+    , _domDomainName    :: !(Maybe Text)+    , _domIsPrimary     :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Domains' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'domCreationTime'+--+-- * 'domEtag'+--+-- * 'domKind'+--+-- * 'domDomainAliases'+--+-- * 'domVerified'+--+-- * 'domDomainName'+--+-- * 'domIsPrimary'+domains+    :: Domains+domains =+  Domains'+    { _domCreationTime = Nothing+    , _domEtag = Nothing+    , _domKind = "admin#directory#domain"+    , _domDomainAliases = Nothing+    , _domVerified = Nothing+    , _domDomainName = Nothing+    , _domIsPrimary = Nothing+    }+++-- | Creation time of the domain. (Read-only).+domCreationTime :: Lens' Domains (Maybe Int64)+domCreationTime+  = lens _domCreationTime+      (\ s a -> s{_domCreationTime = a})+      . mapping _Coerce++-- | ETag of the resource.+domEtag :: Lens' Domains (Maybe Text)+domEtag = lens _domEtag (\ s a -> s{_domEtag = a})++-- | Kind of resource this is.+domKind :: Lens' Domains Text+domKind = lens _domKind (\ s a -> s{_domKind = a})++-- | List of domain alias objects. (Read-only)+domDomainAliases :: Lens' Domains [DomainAlias]+domDomainAliases+  = lens _domDomainAliases+      (\ s a -> s{_domDomainAliases = a})+      . _Default+      . _Coerce++-- | Indicates the verification state of a domain. (Read-only).+domVerified :: Lens' Domains (Maybe Bool)+domVerified+  = lens _domVerified (\ s a -> s{_domVerified = a})++-- | The domain name of the customer.+domDomainName :: Lens' Domains (Maybe Text)+domDomainName+  = lens _domDomainName+      (\ s a -> s{_domDomainName = a})++-- | Indicates if the domain is a primary domain (Read-only).+domIsPrimary :: Lens' Domains (Maybe Bool)+domIsPrimary+  = lens _domIsPrimary (\ s a -> s{_domIsPrimary = a})++instance FromJSON Domains where+        parseJSON+          = withObject "Domains"+              (\ o ->+                 Domains' <$>+                   (o .:? "creationTime") <*> (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#domain")+                     <*> (o .:? "domainAliases" .!= mempty)+                     <*> (o .:? "verified")+                     <*> (o .:? "domainName")+                     <*> (o .:? "isPrimary"))++instance ToJSON Domains where+        toJSON Domains'{..}+          = object+              (catMaybes+                 [("creationTime" .=) <$> _domCreationTime,+                  ("etag" .=) <$> _domEtag, Just ("kind" .= _domKind),+                  ("domainAliases" .=) <$> _domDomainAliases,+                  ("verified" .=) <$> _domVerified,+                  ("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'+    { _notEtag                     :: !(Maybe Text)+    , _notNextPageToken            :: !(Maybe Text)+    , _notKind                     :: !Text+    , _notItems                    :: !(Maybe [Notification])+    , _notUnreadNotificationsCount :: !(Maybe (Textual Int32))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Notifications' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'notEtag'+--+-- * 'notNextPageToken'+--+-- * 'notKind'+--+-- * 'notItems'+--+-- * 'notUnreadNotificationsCount'+notifications+    :: Notifications+notifications =+  Notifications'+    { _notEtag = Nothing+    , _notNextPageToken = Nothing+    , _notKind = "admin#directory#notifications"+    , _notItems = Nothing+    , _notUnreadNotificationsCount = Nothing+    }+++-- | ETag of the resource.+notEtag :: Lens' Notifications (Maybe Text)+notEtag = lens _notEtag (\ s a -> s{_notEtag = a})++-- | Token for fetching the next page of notifications.+notNextPageToken :: Lens' Notifications (Maybe Text)+notNextPageToken+  = lens _notNextPageToken+      (\ s a -> s{_notNextPageToken = a})++-- | The type of the resource.+notKind :: Lens' Notifications Text+notKind = lens _notKind (\ s a -> s{_notKind = a})++-- | List of notifications in this page.+notItems :: Lens' Notifications [Notification]+notItems+  = lens _notItems (\ s a -> s{_notItems = a}) .+      _Default+      . _Coerce++-- | Number of unread notification for the domain.+notUnreadNotificationsCount :: Lens' Notifications (Maybe Int32)+notUnreadNotificationsCount+  = lens _notUnreadNotificationsCount+      (\ s a -> s{_notUnreadNotificationsCount = a})+      . mapping _Coerce++instance FromJSON Notifications where+        parseJSON+          = withObject "Notifications"+              (\ o ->+                 Notifications' <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "admin#directory#notifications")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "unreadNotificationsCount"))++instance ToJSON Notifications where+        toJSON Notifications'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _notEtag,+                  ("nextPageToken" .=) <$> _notNextPageToken,+                  Just ("kind" .= _notKind),+                  ("items" .=) <$> _notItems,+                  ("unreadNotificationsCount" .=) <$>+                    _notUnreadNotificationsCount])++-- | Indexing spec for a numeric field. By default, only exact match queries+-- will be supported for numeric fields. Setting the numericIndexingSpec+-- allows range queries to be supported.+--+-- /See:/ 'schemaFieldSpecNumericIndexingSpec' smart constructor.+data SchemaFieldSpecNumericIndexingSpec =+  SchemaFieldSpecNumericIndexingSpec'+    { _sfsnisMaxValue :: !(Maybe (Textual Double))+    , _sfsnisMinValue :: !(Maybe (Textual Double))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SchemaFieldSpecNumericIndexingSpec' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sfsnisMaxValue'+--+-- * 'sfsnisMinValue'+schemaFieldSpecNumericIndexingSpec+    :: SchemaFieldSpecNumericIndexingSpec+schemaFieldSpecNumericIndexingSpec =+  SchemaFieldSpecNumericIndexingSpec'+    {_sfsnisMaxValue = Nothing, _sfsnisMinValue = Nothing}+++-- | Maximum value of this field. This is meant to be indicative rather than+-- enforced. Values outside this range will still be indexed, but search+-- may not be as performant.+sfsnisMaxValue :: Lens' SchemaFieldSpecNumericIndexingSpec (Maybe Double)+sfsnisMaxValue+  = lens _sfsnisMaxValue+      (\ s a -> s{_sfsnisMaxValue = a})+      . mapping _Coerce++-- | Minimum value of this field. This is meant to be indicative rather than+-- enforced. Values outside this range will still be indexed, but search+-- may not be as performant.+sfsnisMinValue :: Lens' SchemaFieldSpecNumericIndexingSpec (Maybe Double)+sfsnisMinValue+  = lens _sfsnisMinValue+      (\ s a -> s{_sfsnisMinValue = a})+      . mapping _Coerce++instance FromJSON SchemaFieldSpecNumericIndexingSpec+         where+        parseJSON+          = withObject "SchemaFieldSpecNumericIndexingSpec"+              (\ o ->+                 SchemaFieldSpecNumericIndexingSpec' <$>+                   (o .:? "maxValue") <*> (o .:? "minValue"))++instance ToJSON SchemaFieldSpecNumericIndexingSpec+         where+        toJSON SchemaFieldSpecNumericIndexingSpec'{..}+          = object+              (catMaybes+                 [("maxValue" .=) <$> _sfsnisMaxValue,+                  ("minValue" .=) <$> _sfsnisMinValue])++-- | JSON request template for firing commands on Mobile Device in Directory+-- Devices API.+--+-- /See:/ 'mobileDeviceAction' smart constructor.+newtype MobileDeviceAction =+  MobileDeviceAction'+    { _mdaAction :: Maybe Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'MobileDeviceAction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdaAction'+mobileDeviceAction+    :: MobileDeviceAction+mobileDeviceAction = MobileDeviceAction' {_mdaAction = Nothing}+++-- | Action to be taken on the Mobile Device+mdaAction :: Lens' MobileDeviceAction (Maybe Text)+mdaAction+  = lens _mdaAction (\ s a -> s{_mdaAction = a})++instance FromJSON MobileDeviceAction where+        parseJSON+          = withObject "MobileDeviceAction"+              (\ o -> MobileDeviceAction' <$> (o .:? "action"))++instance ToJSON MobileDeviceAction where+        toJSON MobileDeviceAction'{..}+          = object (catMaybes [("action" .=) <$> _mdaAction])++-- | JSON template for FieldSpec resource for Schemas in Directory API.+--+-- /See:/ 'schemaFieldSpec' smart constructor.+data SchemaFieldSpec =+  SchemaFieldSpec'+    { _sfsEtag                :: !(Maybe Text)+    , _sfsKind                :: !Text+    , _sfsNumericIndexingSpec :: !(Maybe SchemaFieldSpecNumericIndexingSpec)+    , _sfsReadAccessType      :: !Text+    , _sfsFieldId             :: !(Maybe Text)+    , _sfsIndexed             :: !Bool+    , _sfsFieldType           :: !(Maybe Text)+    , _sfsFieldName           :: !(Maybe Text)+    , _sfsDisplayName         :: !(Maybe Text)+    , _sfsMultiValued         :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SchemaFieldSpec' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sfsEtag'+--+-- * 'sfsKind'+--+-- * 'sfsNumericIndexingSpec'+--+-- * 'sfsReadAccessType'+--+-- * 'sfsFieldId'+--+-- * 'sfsIndexed'+--+-- * 'sfsFieldType'+--+-- * 'sfsFieldName'+--+-- * 'sfsDisplayName'+--+-- * 'sfsMultiValued'+schemaFieldSpec+    :: SchemaFieldSpec+schemaFieldSpec =+  SchemaFieldSpec'+    { _sfsEtag = Nothing+    , _sfsKind = "admin#directory#schema#fieldspec"+    , _sfsNumericIndexingSpec = Nothing+    , _sfsReadAccessType = "ALL_DOMAIN_USERS"+    , _sfsFieldId = Nothing+    , _sfsIndexed = True+    , _sfsFieldType = Nothing+    , _sfsFieldName = Nothing+    , _sfsDisplayName = Nothing+    , _sfsMultiValued = Nothing+    }+++-- | ETag of the resource.+sfsEtag :: Lens' SchemaFieldSpec (Maybe Text)+sfsEtag = lens _sfsEtag (\ s a -> s{_sfsEtag = a})++-- | Kind of resource this is.+sfsKind :: Lens' SchemaFieldSpec Text+sfsKind = lens _sfsKind (\ s a -> s{_sfsKind = a})++-- | Indexing spec for a numeric field. By default, only exact match queries+-- will be supported for numeric fields. Setting the numericIndexingSpec+-- allows range queries to be supported.+sfsNumericIndexingSpec :: Lens' SchemaFieldSpec (Maybe SchemaFieldSpecNumericIndexingSpec)+sfsNumericIndexingSpec+  = lens _sfsNumericIndexingSpec+      (\ s a -> s{_sfsNumericIndexingSpec = a})++-- | Read ACLs on the field specifying who can view values of this field.+-- Valid values are \"ALL_DOMAIN_USERS\" and \"ADMINS_AND_SELF\".+sfsReadAccessType :: Lens' SchemaFieldSpec Text+sfsReadAccessType+  = lens _sfsReadAccessType+      (\ s a -> s{_sfsReadAccessType = a})++-- | Unique identifier of Field (Read-only)+sfsFieldId :: Lens' SchemaFieldSpec (Maybe Text)+sfsFieldId+  = lens _sfsFieldId (\ s a -> s{_sfsFieldId = a})++-- | Boolean specifying whether the field is indexed or not.+sfsIndexed :: Lens' SchemaFieldSpec Bool+sfsIndexed+  = lens _sfsIndexed (\ s a -> s{_sfsIndexed = a})++-- | Type of the field.+sfsFieldType :: Lens' SchemaFieldSpec (Maybe Text)+sfsFieldType+  = lens _sfsFieldType (\ s a -> s{_sfsFieldType = a})++-- | Name of the field.+sfsFieldName :: Lens' SchemaFieldSpec (Maybe Text)+sfsFieldName+  = lens _sfsFieldName (\ s a -> s{_sfsFieldName = a})++-- | Display Name of the field.+sfsDisplayName :: Lens' SchemaFieldSpec (Maybe Text)+sfsDisplayName+  = lens _sfsDisplayName+      (\ s a -> s{_sfsDisplayName = a})++-- | Boolean specifying whether this is a multi-valued field or not.+sfsMultiValued :: Lens' SchemaFieldSpec (Maybe Bool)+sfsMultiValued+  = lens _sfsMultiValued+      (\ s a -> s{_sfsMultiValued = a})++instance FromJSON SchemaFieldSpec where+        parseJSON+          = withObject "SchemaFieldSpec"+              (\ o ->+                 SchemaFieldSpec' <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#schema#fieldspec")+                     <*> (o .:? "numericIndexingSpec")+                     <*> (o .:? "readAccessType" .!= "ALL_DOMAIN_USERS")+                     <*> (o .:? "fieldId")+                     <*> (o .:? "indexed" .!= True)+                     <*> (o .:? "fieldType")+                     <*> (o .:? "fieldName")+                     <*> (o .:? "displayName")+                     <*> (o .:? "multiValued"))++instance ToJSON SchemaFieldSpec where+        toJSON SchemaFieldSpec'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _sfsEtag, Just ("kind" .= _sfsKind),+                  ("numericIndexingSpec" .=) <$>+                    _sfsNumericIndexingSpec,+                  Just ("readAccessType" .= _sfsReadAccessType),+                  ("fieldId" .=) <$> _sfsFieldId,+                  Just ("indexed" .= _sfsIndexed),+                  ("fieldType" .=) <$> _sfsFieldType,+                  ("fieldName" .=) <$> _sfsFieldName,+                  ("displayName" .=) <$> _sfsDisplayName,+                  ("multiValued" .=) <$> _sfsMultiValued])++-- | JSON response template for List Chrome OS Devices operation in Directory+-- API.+--+-- /See:/ 'chromeOSDevices' smart constructor.+data ChromeOSDevices =+  ChromeOSDevices'+    { _cosdEtag            :: !(Maybe Text)+    , _cosdNextPageToken   :: !(Maybe Text)+    , _cosdKind            :: !Text+    , _cosdChromeosDevices :: !(Maybe [ChromeOSDevice])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ChromeOSDevices' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cosdEtag'+--+-- * 'cosdNextPageToken'+--+-- * 'cosdKind'+--+-- * 'cosdChromeosDevices'+chromeOSDevices+    :: ChromeOSDevices+chromeOSDevices =+  ChromeOSDevices'+    { _cosdEtag = Nothing+    , _cosdNextPageToken = Nothing+    , _cosdKind = "admin#directory#chromeosdevices"+    , _cosdChromeosDevices = Nothing+    }+++-- | ETag of the resource.+cosdEtag :: Lens' ChromeOSDevices (Maybe Text)+cosdEtag = lens _cosdEtag (\ s a -> s{_cosdEtag = a})++-- | Token used to access next page of this result.+cosdNextPageToken :: Lens' ChromeOSDevices (Maybe Text)+cosdNextPageToken+  = lens _cosdNextPageToken+      (\ s a -> s{_cosdNextPageToken = a})++-- | Kind of resource this is.+cosdKind :: Lens' ChromeOSDevices Text+cosdKind = lens _cosdKind (\ s a -> s{_cosdKind = a})++-- | List of Chrome OS Device objects.+cosdChromeosDevices :: Lens' ChromeOSDevices [ChromeOSDevice]+cosdChromeosDevices+  = lens _cosdChromeosDevices+      (\ s a -> s{_cosdChromeosDevices = a})+      . _Default+      . _Coerce++instance FromJSON ChromeOSDevices where+        parseJSON+          = withObject "ChromeOSDevices"+              (\ o ->+                 ChromeOSDevices' <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "admin#directory#chromeosdevices")+                     <*> (o .:? "chromeosdevices" .!= mempty))++instance ToJSON ChromeOSDevices where+        toJSON ChromeOSDevices'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _cosdEtag,+                  ("nextPageToken" .=) <$> _cosdNextPageToken,+                  Just ("kind" .= _cosdKind),+                  ("chromeosdevices" .=) <$> _cosdChromeosDevices])++-- | JSON template for Has Member response in Directory API.+--+-- /See:/ 'membersHasMember' smart constructor.+newtype MembersHasMember =+  MembersHasMember'+    { _mhmIsMember :: Maybe Bool+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'MembersHasMember' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mhmIsMember'+membersHasMember+    :: MembersHasMember+membersHasMember = MembersHasMember' {_mhmIsMember = Nothing}+++-- | Identifies whether the given user is a member of the group. Membership+-- can be direct or nested.+mhmIsMember :: Lens' MembersHasMember (Maybe Bool)+mhmIsMember+  = lens _mhmIsMember (\ s a -> s{_mhmIsMember = a})++instance FromJSON MembersHasMember where+        parseJSON+          = withObject "MembersHasMember"+              (\ o -> MembersHasMember' <$> (o .:? "isMember"))++instance ToJSON MembersHasMember where+        toJSON MembersHasMember'{..}+          = object+              (catMaybes [("isMember" .=) <$> _mhmIsMember])++-- | JSON template for Trusted App Ids Resource object in Directory API.+--+-- /See:/ 'trustedAppId' smart constructor.+data TrustedAppId =+  TrustedAppId'+    { _taiCertificateHashSHA256 :: !(Maybe Text)+    , _taiEtag                  :: !(Maybe Text)+    , _taiKind                  :: !Text+    , _taiCertificateHashSHA1   :: !(Maybe Text)+    , _taiAndroidPackageName    :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TrustedAppId' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'taiCertificateHashSHA256'+--+-- * 'taiEtag'+--+-- * 'taiKind'+--+-- * 'taiCertificateHashSHA1'+--+-- * 'taiAndroidPackageName'+trustedAppId+    :: TrustedAppId+trustedAppId =+  TrustedAppId'+    { _taiCertificateHashSHA256 = Nothing+    , _taiEtag = Nothing+    , _taiKind = "admin#directory#trustedappid"+    , _taiCertificateHashSHA1 = Nothing+    , _taiAndroidPackageName = Nothing+    }+++-- | SHA256 signature of the app certificate.+taiCertificateHashSHA256 :: Lens' TrustedAppId (Maybe Text)+taiCertificateHashSHA256+  = lens _taiCertificateHashSHA256+      (\ s a -> s{_taiCertificateHashSHA256 = a})++taiEtag :: Lens' TrustedAppId (Maybe Text)+taiEtag = lens _taiEtag (\ s a -> s{_taiEtag = a})++-- | Identifies the resource as a trusted AppId.+taiKind :: Lens' TrustedAppId Text+taiKind = lens _taiKind (\ s a -> s{_taiKind = a})++-- | SHA1 signature of the app certificate.+taiCertificateHashSHA1 :: Lens' TrustedAppId (Maybe Text)+taiCertificateHashSHA1+  = lens _taiCertificateHashSHA1+      (\ s a -> s{_taiCertificateHashSHA1 = a})++-- | Android package name.+taiAndroidPackageName :: Lens' TrustedAppId (Maybe Text)+taiAndroidPackageName+  = lens _taiAndroidPackageName+      (\ s a -> s{_taiAndroidPackageName = a})++instance FromJSON TrustedAppId where+        parseJSON+          = withObject "TrustedAppId"+              (\ o ->+                 TrustedAppId' <$>+                   (o .:? "certificateHashSHA256") <*> (o .:? "etag")+                     <*> (o .:? "kind" .!= "admin#directory#trustedappid")+                     <*> (o .:? "certificateHashSHA1")+                     <*> (o .:? "androidPackageName"))++instance ToJSON TrustedAppId where+        toJSON TrustedAppId'{..}+          = object+              (catMaybes+                 [("certificateHashSHA256" .=) <$>+                    _taiCertificateHashSHA256,+                  ("etag" .=) <$> _taiEtag, Just ("kind" .= _taiKind),+                  ("certificateHashSHA1" .=) <$>+                    _taiCertificateHashSHA1,+                  ("androidPackageName" .=) <$>+                    _taiAndroidPackageName])++-- | JSON template for an externalId entry.+--+-- /See:/ 'userExternalId' smart constructor.+data UserExternalId =+  UserExternalId'+    { _ueiValue      :: !(Maybe Text)+    , _ueiType       :: !(Maybe Text)+    , _ueiCustomType :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserExternalId' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ueiValue'+--+-- * 'ueiType'+--+-- * 'ueiCustomType'+userExternalId+    :: UserExternalId+userExternalId =+  UserExternalId'+    {_ueiValue = Nothing, _ueiType = Nothing, _ueiCustomType = Nothing}+++-- | The value of the id.+ueiValue :: Lens' UserExternalId (Maybe Text)+ueiValue = lens _ueiValue (\ s a -> s{_ueiValue = a})++-- | The type of the Id.+ueiType :: Lens' UserExternalId (Maybe Text)+ueiType = lens _ueiType (\ s a -> s{_ueiType = a})++-- | Custom type.+ueiCustomType :: Lens' UserExternalId (Maybe Text)+ueiCustomType+  = lens _ueiCustomType+      (\ s a -> s{_ueiCustomType = a})++instance FromJSON UserExternalId where+        parseJSON+          = withObject "UserExternalId"+              (\ o ->+                 UserExternalId' <$>+                   (o .:? "value") <*> (o .:? "type") <*>+                     (o .:? "customType"))++instance ToJSON UserExternalId where+        toJSON UserExternalId'{..}+          = object+              (catMaybes+                 [("value" .=) <$> _ueiValue,+                  ("type" .=) <$> _ueiType,+                  ("customType" .=) <$> _ueiCustomType])++--+-- /See:/ 'asps' smart constructor.+data Asps =+  Asps'+    { _aspEtag  :: !(Maybe Text)+    , _aspKind  :: !Text+    , _aspItems :: !(Maybe [Asp])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Asps' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aspEtag'+--+-- * 'aspKind'+--+-- * 'aspItems'+asps+    :: Asps+asps =+  Asps'+    { _aspEtag = Nothing+    , _aspKind = "admin#directory#aspList"+    , _aspItems = Nothing+    }+++-- | ETag of the resource.+aspEtag :: Lens' Asps (Maybe Text)+aspEtag = lens _aspEtag (\ s a -> s{_aspEtag = a})++-- | The type of the API resource. This is always admin#directory#aspList.+aspKind :: Lens' Asps Text+aspKind = lens _aspKind (\ s a -> s{_aspKind = a})++-- | A list of ASP resources.+aspItems :: Lens' Asps [Asp]+aspItems+  = lens _aspItems (\ s a -> s{_aspItems = a}) .+      _Default+      . _Coerce++instance FromJSON Asps where+        parseJSON+          = withObject "Asps"+              (\ o ->+                 Asps' <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#aspList")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Asps where+        toJSON Asps'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _aspEtag, Just ("kind" .= _aspKind),+                  ("items" .=) <$> _aspItems])++--+-- /See:/ 'chromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem' smart constructor.+data ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem =+  ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem'+    { _codcsrictiiTemperature :: !(Maybe (Textual Int32))+    , _codcsrictiiLabel       :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'codcsrictiiTemperature'+--+-- * 'codcsrictiiLabel'+chromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem+    :: ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem+chromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem =+  ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem'+    {_codcsrictiiTemperature = Nothing, _codcsrictiiLabel = Nothing}+++-- | Temperature in Celsius degrees.+codcsrictiiTemperature :: Lens' ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem (Maybe Int32)+codcsrictiiTemperature+  = lens _codcsrictiiTemperature+      (\ s a -> s{_codcsrictiiTemperature = a})+      . mapping _Coerce++-- | CPU label+codcsrictiiLabel :: Lens' ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem (Maybe Text)+codcsrictiiLabel+  = lens _codcsrictiiLabel+      (\ s a -> s{_codcsrictiiLabel = a})++instance FromJSON+           ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem+         where+        parseJSON+          = withObject+              "ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem"+              (\ o ->+                 ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem'+                   <$> (o .:? "temperature") <*> (o .:? "label"))++instance ToJSON+           ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem+         where+        toJSON+          ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem'{..}+          = object+              (catMaybes+                 [("temperature" .=) <$> _codcsrictiiTemperature,+                  ("label" .=) <$> _codcsrictiiLabel])++--+-- /See:/ 'roleRolePrivilegesItem' smart constructor.+data RoleRolePrivilegesItem =+  RoleRolePrivilegesItem'+    { _rrpiServiceId     :: !(Maybe Text)+    , _rrpiPrivilegeName :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RoleRolePrivilegesItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rrpiServiceId'+--+-- * 'rrpiPrivilegeName'+roleRolePrivilegesItem+    :: RoleRolePrivilegesItem+roleRolePrivilegesItem =+  RoleRolePrivilegesItem'+    {_rrpiServiceId = Nothing, _rrpiPrivilegeName = Nothing}+++-- | The obfuscated ID of the service this privilege is for.+rrpiServiceId :: Lens' RoleRolePrivilegesItem (Maybe Text)+rrpiServiceId+  = lens _rrpiServiceId+      (\ s a -> s{_rrpiServiceId = a})++-- | The name of the privilege.+rrpiPrivilegeName :: Lens' RoleRolePrivilegesItem (Maybe Text)+rrpiPrivilegeName+  = lens _rrpiPrivilegeName+      (\ s a -> s{_rrpiPrivilegeName = a})++instance FromJSON RoleRolePrivilegesItem where+        parseJSON+          = withObject "RoleRolePrivilegesItem"+              (\ o ->+                 RoleRolePrivilegesItem' <$>+                   (o .:? "serviceId") <*> (o .:? "privilegeName"))++instance ToJSON RoleRolePrivilegesItem where+        toJSON RoleRolePrivilegesItem'{..}+          = object+              (catMaybes+                 [("serviceId" .=) <$> _rrpiServiceId,+                  ("privilegeName" .=) <$> _rrpiPrivilegeName])++-- | JSON response template to list Domains in Directory API.+--+-- /See:/ 'domains2' smart constructor.+data Domains2 =+  Domains2'+    { _ddEtag    :: !(Maybe Text)+    , _ddKind    :: !Text+    , _ddDomains :: !(Maybe [Domains])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Domains2' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddEtag'+--+-- * 'ddKind'+--+-- * 'ddDomains'+domains2+    :: Domains2+domains2 =+  Domains2'+    { _ddEtag = Nothing+    , _ddKind = "admin#directory#domains"+    , _ddDomains = Nothing+    }+  -- | ETag of the resource. ddEtag :: Lens' Domains2 (Maybe Text)
gen/Network/Google/Directory/Types/Sum.hs view
@@ -370,6 +370,42 @@ instance ToJSON GroupsListOrderBy where     toJSON = toJSONText +-- | Source from which Building.coordinates are derived.+data ResourcesBuildingsPatchCoordinatesSource+    = ClientSpecified+      -- ^ @CLIENT_SPECIFIED@+      -- Building.coordinates are set to the coordinates included in the request.+    | ResolvedFromAddress+      -- ^ @RESOLVED_FROM_ADDRESS@+      -- Building.coordinates are automatically populated based on the postal+      -- address.+    | SourceUnspecified+      -- ^ @SOURCE_UNSPECIFIED@+      -- Defaults to RESOLVED_FROM_ADDRESS if postal address is provided.+      -- Otherwise, defaults to CLIENT_SPECIFIED if coordinates are provided.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ResourcesBuildingsPatchCoordinatesSource++instance FromHttpApiData ResourcesBuildingsPatchCoordinatesSource where+    parseQueryParam = \case+        "CLIENT_SPECIFIED" -> Right ClientSpecified+        "RESOLVED_FROM_ADDRESS" -> Right ResolvedFromAddress+        "SOURCE_UNSPECIFIED" -> Right SourceUnspecified+        x -> Left ("Unable to parse ResourcesBuildingsPatchCoordinatesSource from: " <> x)++instance ToHttpApiData ResourcesBuildingsPatchCoordinatesSource where+    toQueryParam = \case+        ClientSpecified -> "CLIENT_SPECIFIED"+        ResolvedFromAddress -> "RESOLVED_FROM_ADDRESS"+        SourceUnspecified -> "SOURCE_UNSPECIFIED"++instance FromJSON ResourcesBuildingsPatchCoordinatesSource where+    parseJSON = parseJSONText "ResourcesBuildingsPatchCoordinatesSource"++instance ToJSON ResourcesBuildingsPatchCoordinatesSource where+    toJSON = toJSONText+ -- | Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user. data UsersWatchViewType     = UWVTAdminView@@ -433,6 +469,42 @@ instance ToJSON UsersGetProjection where     toJSON = toJSONText +-- | Source from which Building.coordinates are derived.+data ResourcesBuildingsUpdateCoordinatesSource+    = RBUCSClientSpecified+      -- ^ @CLIENT_SPECIFIED@+      -- Building.coordinates are set to the coordinates included in the request.+    | RBUCSResolvedFromAddress+      -- ^ @RESOLVED_FROM_ADDRESS@+      -- Building.coordinates are automatically populated based on the postal+      -- address.+    | RBUCSSourceUnspecified+      -- ^ @SOURCE_UNSPECIFIED@+      -- Defaults to RESOLVED_FROM_ADDRESS if postal address is provided.+      -- Otherwise, defaults to CLIENT_SPECIFIED if coordinates are provided.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ResourcesBuildingsUpdateCoordinatesSource++instance FromHttpApiData ResourcesBuildingsUpdateCoordinatesSource where+    parseQueryParam = \case+        "CLIENT_SPECIFIED" -> Right RBUCSClientSpecified+        "RESOLVED_FROM_ADDRESS" -> Right RBUCSResolvedFromAddress+        "SOURCE_UNSPECIFIED" -> Right RBUCSSourceUnspecified+        x -> Left ("Unable to parse ResourcesBuildingsUpdateCoordinatesSource from: " <> x)++instance ToHttpApiData ResourcesBuildingsUpdateCoordinatesSource where+    toQueryParam = \case+        RBUCSClientSpecified -> "CLIENT_SPECIFIED"+        RBUCSResolvedFromAddress -> "RESOLVED_FROM_ADDRESS"+        RBUCSSourceUnspecified -> "SOURCE_UNSPECIFIED"++instance FromJSON ResourcesBuildingsUpdateCoordinatesSource where+    parseJSON = parseJSONText "ResourcesBuildingsUpdateCoordinatesSource"++instance ToJSON ResourcesBuildingsUpdateCoordinatesSource where+    toJSON = toJSONText+ -- | Restrict information returned to a set of selected fields. data MobileDevicesListProjection     = MDLPBasic@@ -549,6 +621,42 @@     parseJSON = parseJSONText "UsersListSortOrder"  instance ToJSON UsersListSortOrder where+    toJSON = toJSONText++-- | Source from which Building.coordinates are derived.+data ResourcesBuildingsInsertCoordinatesSource+    = RBICSClientSpecified+      -- ^ @CLIENT_SPECIFIED@+      -- Building.coordinates are set to the coordinates included in the request.+    | RBICSResolvedFromAddress+      -- ^ @RESOLVED_FROM_ADDRESS@+      -- Building.coordinates are automatically populated based on the postal+      -- address.+    | RBICSSourceUnspecified+      -- ^ @SOURCE_UNSPECIFIED@+      -- Defaults to RESOLVED_FROM_ADDRESS if postal address is provided.+      -- Otherwise, defaults to CLIENT_SPECIFIED if coordinates are provided.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ResourcesBuildingsInsertCoordinatesSource++instance FromHttpApiData ResourcesBuildingsInsertCoordinatesSource where+    parseQueryParam = \case+        "CLIENT_SPECIFIED" -> Right RBICSClientSpecified+        "RESOLVED_FROM_ADDRESS" -> Right RBICSResolvedFromAddress+        "SOURCE_UNSPECIFIED" -> Right RBICSSourceUnspecified+        x -> Left ("Unable to parse ResourcesBuildingsInsertCoordinatesSource from: " <> x)++instance ToHttpApiData ResourcesBuildingsInsertCoordinatesSource where+    toQueryParam = \case+        RBICSClientSpecified -> "CLIENT_SPECIFIED"+        RBICSResolvedFromAddress -> "RESOLVED_FROM_ADDRESS"+        RBICSSourceUnspecified -> "SOURCE_UNSPECIFIED"++instance FromJSON ResourcesBuildingsInsertCoordinatesSource where+    parseJSON = parseJSONText "ResourcesBuildingsInsertCoordinatesSource"++instance ToJSON ResourcesBuildingsInsertCoordinatesSource where     toJSON = toJSONText  -- | Whether to return results in ascending or descending order. Only of use
gen/Network/Google/Resource/Admin/Channels/Stop.hs view
@@ -55,10 +55,13 @@ -- | Stop watching resources through this channel -- -- /See:/ 'channelsStop' smart constructor.-newtype ChannelsStop = ChannelsStop'+newtype ChannelsStop =+  ChannelsStop'     { _csPayload :: Channel-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ChannelsStop' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,10 +70,8 @@ channelsStop     :: Channel -- ^ 'csPayload'     -> ChannelsStop-channelsStop pCsPayload_ =-    ChannelsStop'-    { _csPayload = pCsPayload_-    }+channelsStop pCsPayload_ = ChannelsStop' {_csPayload = pCsPayload_}+  -- | Multipart request metadata. csPayload :: Lens' ChannelsStop Channel
gen/Network/Google/Resource/Directory/Asps/Delete.hs view
@@ -55,11 +55,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'AspsDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'adUserKey'     -> AspsDelete aspsDelete pAdCodeId_ pAdUserKey_ =-    AspsDelete'-    { _adCodeId = _Coerce # pAdCodeId_-    , _adUserKey = pAdUserKey_-    }+  AspsDelete' {_adCodeId = _Coerce # pAdCodeId_, _adUserKey = pAdUserKey_}+  -- | The unique ID of the ASP to be deleted. adCodeId :: Lens' AspsDelete Int32
gen/Network/Google/Resource/Directory/Asps/Get.hs view
@@ -55,11 +55,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'AspsGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'agUserKey'     -> AspsGet aspsGet pAgCodeId_ pAgUserKey_ =-    AspsGet'-    { _agCodeId = _Coerce # pAgCodeId_-    , _agUserKey = pAgUserKey_-    }+  AspsGet' {_agCodeId = _Coerce # pAgCodeId_, _agUserKey = pAgUserKey_}+  -- | The unique ID of the ASP. agCodeId :: Lens' AspsGet Int32
gen/Network/Google/Resource/Directory/Asps/List.hs view
@@ -53,10 +53,13 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'AspsList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,10 +68,8 @@ aspsList     :: Text -- ^ 'alUserKey'     -> AspsList-aspsList pAlUserKey_ =-    AspsList'-    { _alUserKey = pAlUserKey_-    }+aspsList pAlUserKey_ = AspsList' {_alUserKey = pAlUserKey_}+  -- | Identifies the user in the API request. The value can be the user\'s -- primary email address, alias email address, or unique user ID.
gen/Network/Google/Resource/Directory/ChromeosDevices/Action.hs view
@@ -60,12 +60,15 @@ -- | Take action on Chrome OS Device -- -- /See:/ 'chromeosDevicesAction' smart constructor.-data ChromeosDevicesAction = ChromeosDevicesAction'+data ChromeosDevicesAction =+  ChromeosDevicesAction'     { _cdaResourceId :: !Text     , _cdaPayload    :: !ChromeOSDeviceAction     , _cdaCustomerId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ChromeosDevicesAction' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -81,11 +84,12 @@     -> Text -- ^ 'cdaCustomerId'     -> ChromeosDevicesAction chromeosDevicesAction pCdaResourceId_ pCdaPayload_ pCdaCustomerId_ =-    ChromeosDevicesAction'+  ChromeosDevicesAction'     { _cdaResourceId = pCdaResourceId_     , _cdaPayload = pCdaPayload_     , _cdaCustomerId = pCdaCustomerId_     }+  -- | Immutable ID of Chrome OS Device cdaResourceId :: Lens' ChromeosDevicesAction Text
gen/Network/Google/Resource/Directory/ChromeosDevices/Get.hs view
@@ -60,12 +60,15 @@ -- | Retrieve Chrome OS Device -- -- /See:/ 'chromeosDevicesGet' smart constructor.-data ChromeosDevicesGet = ChromeosDevicesGet'+data ChromeosDevicesGet =+  ChromeosDevicesGet'     { _cdgCustomerId :: !Text     , _cdgDeviceId   :: !Text     , _cdgProjection :: !(Maybe ChromeosDevicesGetProjection)-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ChromeosDevicesGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -80,11 +83,12 @@     -> Text -- ^ 'cdgDeviceId'     -> ChromeosDevicesGet chromeosDevicesGet pCdgCustomerId_ pCdgDeviceId_ =-    ChromeosDevicesGet'+  ChromeosDevicesGet'     { _cdgCustomerId = pCdgCustomerId_     , _cdgDeviceId = pCdgDeviceId_     , _cdgProjection = Nothing     }+  -- | Immutable ID of the G Suite account cdgCustomerId :: Lens' ChromeosDevicesGet Text
gen/Network/Google/Resource/Directory/ChromeosDevices/List.hs view
@@ -71,7 +71,8 @@ -- | Retrieve all Chrome OS Devices of a customer (paginated) -- -- /See:/ 'chromeosDevicesList' smart constructor.-data ChromeosDevicesList = ChromeosDevicesList'+data ChromeosDevicesList =+  ChromeosDevicesList'     { _cdlOrderBy     :: !(Maybe ChromeosDevicesListOrderBy)     , _cdlOrgUnitPath :: !(Maybe Text)     , _cdlCustomerId  :: !Text@@ -80,8 +81,10 @@     , _cdlProjection  :: !(Maybe ChromeosDevicesListProjection)     , _cdlPageToken   :: !(Maybe Text)     , _cdlMaxResults  :: !(Maybe (Textual Int32))-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ChromeosDevicesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -105,7 +108,7 @@     :: Text -- ^ 'cdlCustomerId'     -> ChromeosDevicesList chromeosDevicesList pCdlCustomerId_ =-    ChromeosDevicesList'+  ChromeosDevicesList'     { _cdlOrderBy = Nothing     , _cdlOrgUnitPath = Nothing     , _cdlCustomerId = pCdlCustomerId_@@ -115,6 +118,7 @@     , _cdlPageToken = Nothing     , _cdlMaxResults = Nothing     }+  -- | Column to use for sorting results cdlOrderBy :: Lens' ChromeosDevicesList (Maybe ChromeosDevicesListOrderBy)
gen/Network/Google/Resource/Directory/ChromeosDevices/MoveDevicesToOu.hs view
@@ -60,12 +60,15 @@ -- | Move or insert multiple Chrome OS Devices to organizational unit -- -- /See:/ 'chromeosDevicesMoveDevicesToOu' smart constructor.-data ChromeosDevicesMoveDevicesToOu = ChromeosDevicesMoveDevicesToOu'+data ChromeosDevicesMoveDevicesToOu =+  ChromeosDevicesMoveDevicesToOu'     { _cdmdtoPayload     :: !ChromeOSMoveDevicesToOu     , _cdmdtoOrgUnitPath :: !Text     , _cdmdtoCustomerId  :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ChromeosDevicesMoveDevicesToOu' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -81,11 +84,12 @@     -> Text -- ^ 'cdmdtoCustomerId'     -> ChromeosDevicesMoveDevicesToOu chromeosDevicesMoveDevicesToOu pCdmdtoPayload_ pCdmdtoOrgUnitPath_ pCdmdtoCustomerId_ =-    ChromeosDevicesMoveDevicesToOu'+  ChromeosDevicesMoveDevicesToOu'     { _cdmdtoPayload = pCdmdtoPayload_     , _cdmdtoOrgUnitPath = pCdmdtoOrgUnitPath_     , _cdmdtoCustomerId = pCdmdtoCustomerId_     }+  -- | Multipart request metadata. cdmdtoPayload :: Lens' ChromeosDevicesMoveDevicesToOu ChromeOSMoveDevicesToOu
gen/Network/Google/Resource/Directory/ChromeosDevices/Patch.hs view
@@ -63,13 +63,16 @@ -- | 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     , _cdpProjection :: !(Maybe ChromeosDevicesPatchProjection)-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ChromeosDevicesPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -87,12 +90,13 @@     -> Text -- ^ 'cdpDeviceId'     -> ChromeosDevicesPatch chromeosDevicesPatch pCdpPayload_ pCdpCustomerId_ pCdpDeviceId_ =-    ChromeosDevicesPatch'+  ChromeosDevicesPatch'     { _cdpPayload = pCdpPayload_     , _cdpCustomerId = pCdpCustomerId_     , _cdpDeviceId = pCdpDeviceId_     , _cdpProjection = Nothing     }+  -- | Multipart request metadata. cdpPayload :: Lens' ChromeosDevicesPatch ChromeOSDevice
gen/Network/Google/Resource/Directory/ChromeosDevices/Update.hs view
@@ -63,13 +63,16 @@ -- | Update Chrome OS Device -- -- /See:/ 'chromeosDevicesUpdate' smart constructor.-data ChromeosDevicesUpdate = ChromeosDevicesUpdate'+data ChromeosDevicesUpdate =+  ChromeosDevicesUpdate'     { _cduPayload    :: !ChromeOSDevice     , _cduCustomerId :: !Text     , _cduDeviceId   :: !Text     , _cduProjection :: !(Maybe ChromeosDevicesUpdateProjection)-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ChromeosDevicesUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -87,12 +90,13 @@     -> Text -- ^ 'cduDeviceId'     -> ChromeosDevicesUpdate chromeosDevicesUpdate pCduPayload_ pCduCustomerId_ pCduDeviceId_ =-    ChromeosDevicesUpdate'+  ChromeosDevicesUpdate'     { _cduPayload = pCduPayload_     , _cduCustomerId = pCduCustomerId_     , _cduDeviceId = pCduDeviceId_     , _cduProjection = Nothing     }+  -- | Multipart request metadata. cduPayload :: Lens' ChromeosDevicesUpdate ChromeOSDevice
gen/Network/Google/Resource/Directory/Customers/Get.hs view
@@ -52,10 +52,13 @@ -- | Retrieves a customer. -- -- /See:/ 'customersGet' smart constructor.-newtype CustomersGet = CustomersGet'+newtype CustomersGet =+  CustomersGet'     { _cgCustomerKey :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'CustomersGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -64,10 +67,8 @@ customersGet     :: Text -- ^ 'cgCustomerKey'     -> CustomersGet-customersGet pCgCustomerKey_ =-    CustomersGet'-    { _cgCustomerKey = pCgCustomerKey_-    }+customersGet pCgCustomerKey_ = CustomersGet' {_cgCustomerKey = pCgCustomerKey_}+  -- | Id of the customer to be retrieved cgCustomerKey :: Lens' CustomersGet Text
gen/Network/Google/Resource/Directory/Customers/Patch.hs view
@@ -54,11 +54,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'CustomersPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,10 +74,8 @@     -> Customer -- ^ 'cpPayload'     -> CustomersPatch customersPatch pCpCustomerKey_ pCpPayload_ =-    CustomersPatch'-    { _cpCustomerKey = pCpCustomerKey_-    , _cpPayload = pCpPayload_-    }+  CustomersPatch' {_cpCustomerKey = pCpCustomerKey_, _cpPayload = pCpPayload_}+  -- | Id of the customer to be updated cpCustomerKey :: Lens' CustomersPatch Text
gen/Network/Google/Resource/Directory/Customers/Update.hs view
@@ -54,11 +54,14 @@ -- | Updates a customer. -- -- /See:/ 'customersUpdate' smart constructor.-data CustomersUpdate = CustomersUpdate'+data CustomersUpdate =+  CustomersUpdate'     { _cuCustomerKey :: !Text     , _cuPayload     :: !Customer-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'CustomersUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,10 +74,8 @@     -> Customer -- ^ 'cuPayload'     -> CustomersUpdate customersUpdate pCuCustomerKey_ pCuPayload_ =-    CustomersUpdate'-    { _cuCustomerKey = pCuCustomerKey_-    , _cuPayload = pCuPayload_-    }+  CustomersUpdate' {_cuCustomerKey = pCuCustomerKey_, _cuPayload = pCuPayload_}+  -- | Id of the customer to be updated cuCustomerKey :: Lens' CustomersUpdate Text
gen/Network/Google/Resource/Directory/DomainAliases/Delete.hs view
@@ -55,11 +55,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'DomainAliasesDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,9 @@     -> Text -- ^ 'dadCustomer'     -> DomainAliasesDelete domainAliasesDelete pDadDomainAliasName_ pDadCustomer_ =-    DomainAliasesDelete'-    { _dadDomainAliasName = pDadDomainAliasName_-    , _dadCustomer = pDadCustomer_-    }+  DomainAliasesDelete'+    {_dadDomainAliasName = pDadDomainAliasName_, _dadCustomer = pDadCustomer_}+  -- | Name of domain alias to be retrieved. dadDomainAliasName :: Lens' DomainAliasesDelete Text
gen/Network/Google/Resource/Directory/DomainAliases/Get.hs view
@@ -55,11 +55,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'DomainAliasesGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,9 @@     -> Text -- ^ 'dagCustomer'     -> DomainAliasesGet domainAliasesGet pDagDomainAliasName_ pDagCustomer_ =-    DomainAliasesGet'-    { _dagDomainAliasName = pDagDomainAliasName_-    , _dagCustomer = pDagCustomer_-    }+  DomainAliasesGet'+    {_dagDomainAliasName = pDagDomainAliasName_, _dagCustomer = pDagCustomer_}+  -- | Name of domain alias to be retrieved. dagDomainAliasName :: Lens' DomainAliasesGet Text
gen/Network/Google/Resource/Directory/DomainAliases/Insert.hs view
@@ -56,11 +56,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'DomainAliasesInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,10 +76,9 @@     -> Text -- ^ 'daiCustomer'     -> DomainAliasesInsert domainAliasesInsert pDaiPayload_ pDaiCustomer_ =-    DomainAliasesInsert'-    { _daiPayload = pDaiPayload_-    , _daiCustomer = pDaiCustomer_-    }+  DomainAliasesInsert'+    {_daiPayload = pDaiPayload_, _daiCustomer = pDaiCustomer_}+  -- | Multipart request metadata. daiPayload :: Lens' DomainAliasesInsert DomainAlias
gen/Network/Google/Resource/Directory/DomainAliases/List.hs view
@@ -55,11 +55,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'DomainAliasesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,10 +74,9 @@     :: Text -- ^ 'dalCustomer'     -> DomainAliasesList domainAliasesList pDalCustomer_ =-    DomainAliasesList'-    { _dalCustomer = pDalCustomer_-    , _dalParentDomainName = Nothing-    }+  DomainAliasesList'+    {_dalCustomer = pDalCustomer_, _dalParentDomainName = Nothing}+  -- | Immutable ID of the G Suite account. dalCustomer :: Lens' DomainAliasesList Text
gen/Network/Google/Resource/Directory/Domains/Delete.hs view
@@ -55,11 +55,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'DomainsDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'ddDomainName'     -> DomainsDelete domainsDelete pDdCustomer_ pDdDomainName_ =-    DomainsDelete'-    { _ddCustomer = pDdCustomer_-    , _ddDomainName = pDdDomainName_-    }+  DomainsDelete' {_ddCustomer = pDdCustomer_, _ddDomainName = pDdDomainName_}+  -- | Immutable ID of the G Suite account. ddCustomer :: Lens' DomainsDelete Text
gen/Network/Google/Resource/Directory/Domains/Get.hs view
@@ -55,11 +55,14 @@ -- | Retrieves 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'DomainsGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'dgDomainName'     -> DomainsGet domainsGet pDgCustomer_ pDgDomainName_ =-    DomainsGet'-    { _dgCustomer = pDgCustomer_-    , _dgDomainName = pDgDomainName_-    }+  DomainsGet' {_dgCustomer = pDgCustomer_, _dgDomainName = pDgDomainName_}+  -- | Immutable ID of the G Suite account. dgCustomer :: Lens' DomainsGet Text
gen/Network/Google/Resource/Directory/Domains/Insert.hs view
@@ -55,11 +55,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'DomainsInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'diCustomer'     -> DomainsInsert domainsInsert pDiPayload_ pDiCustomer_ =-    DomainsInsert'-    { _diPayload = pDiPayload_-    , _diCustomer = pDiCustomer_-    }+  DomainsInsert' {_diPayload = pDiPayload_, _diCustomer = pDiCustomer_}+  -- | Multipart request metadata. diPayload :: Lens' DomainsInsert Domains
gen/Network/Google/Resource/Directory/Domains/List.hs view
@@ -53,10 +53,13 @@ -- | Lists the domains of the customer. -- -- /See:/ 'domainsList' smart constructor.-newtype DomainsList = DomainsList'+newtype DomainsList =+  DomainsList'     { _dlCustomer :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'DomainsList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,10 +68,8 @@ domainsList     :: Text -- ^ 'dlCustomer'     -> DomainsList-domainsList pDlCustomer_ =-    DomainsList'-    { _dlCustomer = pDlCustomer_-    }+domainsList pDlCustomer_ = DomainsList' {_dlCustomer = pDlCustomer_}+  -- | Immutable ID of the G Suite account. dlCustomer :: Lens' DomainsList Text
gen/Network/Google/Resource/Directory/Groups/Aliases/Delete.hs view
@@ -55,11 +55,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'GroupsAliasesDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'gadAlias'     -> GroupsAliasesDelete groupsAliasesDelete pGadGroupKey_ pGadAlias_ =-    GroupsAliasesDelete'-    { _gadGroupKey = pGadGroupKey_-    , _gadAlias = pGadAlias_-    }+  GroupsAliasesDelete' {_gadGroupKey = pGadGroupKey_, _gadAlias = pGadAlias_}+  -- | Email or immutable ID of the group gadGroupKey :: Lens' GroupsAliasesDelete Text
gen/Network/Google/Resource/Directory/Groups/Aliases/Insert.hs view
@@ -55,11 +55,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'GroupsAliasesInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,9 @@     -> Alias -- ^ 'gaiPayload'     -> GroupsAliasesInsert groupsAliasesInsert pGaiGroupKey_ pGaiPayload_ =-    GroupsAliasesInsert'-    { _gaiGroupKey = pGaiGroupKey_-    , _gaiPayload = pGaiPayload_-    }+  GroupsAliasesInsert'+    {_gaiGroupKey = pGaiGroupKey_, _gaiPayload = pGaiPayload_}+  -- | Email or immutable ID of the group gaiGroupKey :: Lens' GroupsAliasesInsert Text
gen/Network/Google/Resource/Directory/Groups/Aliases/List.hs view
@@ -53,10 +53,13 @@ -- | List all aliases for a group -- -- /See:/ 'groupsAliasesList' smart constructor.-newtype GroupsAliasesList = GroupsAliasesList'+newtype GroupsAliasesList =+  GroupsAliasesList'     { _galGroupKey :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'GroupsAliasesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -66,9 +69,8 @@     :: Text -- ^ 'galGroupKey'     -> GroupsAliasesList groupsAliasesList pGalGroupKey_ =-    GroupsAliasesList'-    { _galGroupKey = pGalGroupKey_-    }+  GroupsAliasesList' {_galGroupKey = pGalGroupKey_}+  -- | Email or immutable ID of the group galGroupKey :: Lens' GroupsAliasesList Text
gen/Network/Google/Resource/Directory/Groups/Delete.hs view
@@ -52,10 +52,13 @@ -- | Delete Group -- -- /See:/ 'groupsDelete' smart constructor.-newtype GroupsDelete = GroupsDelete'+newtype GroupsDelete =+  GroupsDelete'     { _gdGroupKey :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'GroupsDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -64,10 +67,8 @@ groupsDelete     :: Text -- ^ 'gdGroupKey'     -> GroupsDelete-groupsDelete pGdGroupKey_ =-    GroupsDelete'-    { _gdGroupKey = pGdGroupKey_-    }+groupsDelete pGdGroupKey_ = GroupsDelete' {_gdGroupKey = pGdGroupKey_}+  -- | Email or immutable ID of the group gdGroupKey :: Lens' GroupsDelete Text
gen/Network/Google/Resource/Directory/Groups/Get.hs view
@@ -52,10 +52,13 @@ -- | Retrieve Group -- -- /See:/ 'groupsGet' smart constructor.-newtype GroupsGet = GroupsGet'+newtype GroupsGet =+  GroupsGet'     { _ggGroupKey :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'GroupsGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -64,10 +67,8 @@ groupsGet     :: Text -- ^ 'ggGroupKey'     -> GroupsGet-groupsGet pGgGroupKey_ =-    GroupsGet'-    { _ggGroupKey = pGgGroupKey_-    }+groupsGet pGgGroupKey_ = GroupsGet' {_ggGroupKey = pGgGroupKey_}+  -- | Email or immutable ID of the group ggGroupKey :: Lens' GroupsGet Text
gen/Network/Google/Resource/Directory/Groups/Insert.hs view
@@ -52,10 +52,13 @@ -- | Create Group -- -- /See:/ 'groupsInsert' smart constructor.-newtype GroupsInsert = GroupsInsert'+newtype GroupsInsert =+  GroupsInsert'     { _giPayload :: Group-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'GroupsInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -64,10 +67,8 @@ groupsInsert     :: Group -- ^ 'giPayload'     -> GroupsInsert-groupsInsert pGiPayload_ =-    GroupsInsert'-    { _giPayload = pGiPayload_-    }+groupsInsert pGiPayload_ = GroupsInsert' {_giPayload = pGiPayload_}+  -- | Multipart request metadata. giPayload :: Lens' GroupsInsert Group
gen/Network/Google/Resource/Directory/Groups/List.hs view
@@ -66,7 +66,8 @@ -- | Retrieve all groups of a domain or of a user given a userKey (paginated) -- -- /See:/ 'groupsList' smart constructor.-data GroupsList = GroupsList'+data GroupsList =+  GroupsList'     { _glOrderBy    :: !(Maybe GroupsListOrderBy)     , _glDomain     :: !(Maybe Text)     , _glSortOrder  :: !(Maybe GroupsListSortOrder)@@ -75,8 +76,10 @@     , _glPageToken  :: !(Maybe Text)     , _glUserKey    :: !(Maybe Text)     , _glMaxResults :: !(Maybe (Textual Int32))-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'GroupsList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -99,7 +102,7 @@ groupsList     :: GroupsList groupsList =-    GroupsList'+  GroupsList'     { _glOrderBy = Nothing     , _glDomain = Nothing     , _glSortOrder = Nothing@@ -109,6 +112,7 @@     , _glUserKey = Nothing     , _glMaxResults = Nothing     }+  -- | Column to use for sorting results glOrderBy :: Lens' GroupsList (Maybe GroupsListOrderBy)
gen/Network/Google/Resource/Directory/Groups/Patch.hs view
@@ -54,11 +54,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'GroupsPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,10 +74,8 @@     -> Group -- ^ 'gpPayload'     -> GroupsPatch groupsPatch pGpGroupKey_ pGpPayload_ =-    GroupsPatch'-    { _gpGroupKey = pGpGroupKey_-    , _gpPayload = pGpPayload_-    }+  GroupsPatch' {_gpGroupKey = pGpGroupKey_, _gpPayload = pGpPayload_}+  -- | Email or immutable ID of the group. If ID, it should match with id of -- group object
gen/Network/Google/Resource/Directory/Groups/Update.hs view
@@ -54,11 +54,14 @@ -- | Update Group -- -- /See:/ 'groupsUpdate' smart constructor.-data GroupsUpdate = GroupsUpdate'+data GroupsUpdate =+  GroupsUpdate'     { _guGroupKey :: !Text     , _guPayload  :: !Group-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'GroupsUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,10 +74,8 @@     -> Group -- ^ 'guPayload'     -> GroupsUpdate groupsUpdate pGuGroupKey_ pGuPayload_ =-    GroupsUpdate'-    { _guGroupKey = pGuGroupKey_-    , _guPayload = pGuPayload_-    }+  GroupsUpdate' {_guGroupKey = pGuGroupKey_, _guPayload = pGuPayload_}+  -- | Email or immutable ID of the group. If ID, it should match with id of -- group object
gen/Network/Google/Resource/Directory/Members/Delete.hs view
@@ -55,11 +55,14 @@ -- | Remove membership. -- -- /See:/ 'membersDelete' smart constructor.-data MembersDelete = MembersDelete'+data MembersDelete =+  MembersDelete'     { _mdMemberKey :: !Text     , _mdGroupKey  :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MembersDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'mdGroupKey'     -> MembersDelete membersDelete pMdMemberKey_ pMdGroupKey_ =-    MembersDelete'-    { _mdMemberKey = pMdMemberKey_-    , _mdGroupKey = pMdGroupKey_-    }+  MembersDelete' {_mdMemberKey = pMdMemberKey_, _mdGroupKey = pMdGroupKey_}+  -- | Email or immutable ID of the member mdMemberKey :: Lens' MembersDelete Text
gen/Network/Google/Resource/Directory/Members/Get.hs view
@@ -55,11 +55,14 @@ -- | Retrieve Group Member -- -- /See:/ 'membersGet' smart constructor.-data MembersGet = MembersGet'+data MembersGet =+  MembersGet'     { _mgMemberKey :: !Text     , _mgGroupKey  :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MembersGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'mgGroupKey'     -> MembersGet membersGet pMgMemberKey_ pMgGroupKey_ =-    MembersGet'-    { _mgMemberKey = pMgMemberKey_-    , _mgGroupKey = pMgGroupKey_-    }+  MembersGet' {_mgMemberKey = pMgMemberKey_, _mgGroupKey = pMgGroupKey_}+  -- | Email or immutable ID of the member mgMemberKey :: Lens' MembersGet Text
gen/Network/Google/Resource/Directory/Members/HasMember.hs view
@@ -58,11 +58,14 @@ -- be direct or nested. -- -- /See:/ 'membersHasMember'' smart constructor.-data MembersHasMember' = MembersHasMember''+data MembersHasMember' =+  MembersHasMember''     { _mhmMemberKey :: !Text     , _mhmGroupKey  :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MembersHasMember'' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,10 +78,9 @@     -> Text -- ^ 'mhmGroupKey'     -> MembersHasMember' membersHasMember' pMhmMemberKey_ pMhmGroupKey_ =-    MembersHasMember''-    { _mhmMemberKey = pMhmMemberKey_-    , _mhmGroupKey = pMhmGroupKey_-    }+  MembersHasMember''+    {_mhmMemberKey = pMhmMemberKey_, _mhmGroupKey = pMhmGroupKey_}+  -- | Identifies the user member in the API request. The value can be the -- user\'s primary email address, alias, or unique ID.
gen/Network/Google/Resource/Directory/Members/Insert.hs view
@@ -55,11 +55,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MembersInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Member -- ^ 'miPayload'     -> MembersInsert membersInsert pMiGroupKey_ pMiPayload_ =-    MembersInsert'-    { _miGroupKey = pMiGroupKey_-    , _miPayload = pMiPayload_-    }+  MembersInsert' {_miGroupKey = pMiGroupKey_, _miPayload = pMiPayload_}+  -- | Email or immutable ID of the group miGroupKey :: Lens' MembersInsert Text
gen/Network/Google/Resource/Directory/Members/List.hs view
@@ -61,14 +61,17 @@ -- | 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)     , _mlIncludeDerivedMembership :: !(Maybe Bool)     , _mlMaxResults               :: !(Maybe (Textual Int32))-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MembersList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -86,13 +89,14 @@     :: Text -- ^ 'mlGroupKey'     -> MembersList membersList pMlGroupKey_ =-    MembersList'+  MembersList'     { _mlRoles = Nothing     , _mlGroupKey = pMlGroupKey_     , _mlPageToken = Nothing     , _mlIncludeDerivedMembership = Nothing     , _mlMaxResults = Nothing     }+  -- | Comma separated role values to filter list results on. mlRoles :: Lens' MembersList (Maybe Text)
gen/Network/Google/Resource/Directory/Members/Patch.hs view
@@ -59,12 +59,15 @@ -- patch semantics. -- -- /See:/ 'membersPatch' smart constructor.-data MembersPatch = MembersPatch'+data MembersPatch =+  MembersPatch'     { _mpMemberKey :: !Text     , _mpGroupKey  :: !Text     , _mpPayload   :: !Member-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MembersPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -80,11 +83,12 @@     -> Member -- ^ 'mpPayload'     -> MembersPatch membersPatch pMpMemberKey_ pMpGroupKey_ pMpPayload_ =-    MembersPatch'+  MembersPatch'     { _mpMemberKey = pMpMemberKey_     , _mpGroupKey = pMpGroupKey_     , _mpPayload = pMpPayload_     }+  -- | Email or immutable ID of the user. If ID, it should match with id of -- member object
gen/Network/Google/Resource/Directory/Members/Update.hs view
@@ -57,12 +57,15 @@ -- | 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-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MembersUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,11 +81,12 @@     -> Member -- ^ 'muPayload'     -> MembersUpdate membersUpdate pMuMemberKey_ pMuGroupKey_ pMuPayload_ =-    MembersUpdate'+  MembersUpdate'     { _muMemberKey = pMuMemberKey_     , _muGroupKey = pMuGroupKey_     , _muPayload = pMuPayload_     }+  -- | Email or immutable ID of the user. If ID, it should match with id of -- member object
gen/Network/Google/Resource/Directory/MobileDevices/Action.hs view
@@ -59,12 +59,15 @@ -- | Take action on Mobile Device -- -- /See:/ 'mobileDevicesAction' smart constructor.-data MobileDevicesAction = MobileDevicesAction'+data MobileDevicesAction =+  MobileDevicesAction'     { _mdaResourceId :: !Text     , _mdaPayload    :: !MobileDeviceAction     , _mdaCustomerId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MobileDevicesAction' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -80,11 +83,12 @@     -> Text -- ^ 'mdaCustomerId'     -> MobileDevicesAction mobileDevicesAction pMdaResourceId_ pMdaPayload_ pMdaCustomerId_ =-    MobileDevicesAction'+  MobileDevicesAction'     { _mdaResourceId = pMdaResourceId_     , _mdaPayload = pMdaPayload_     , _mdaCustomerId = pMdaCustomerId_     }+  -- | Immutable ID of Mobile Device mdaResourceId :: Lens' MobileDevicesAction Text
gen/Network/Google/Resource/Directory/MobileDevices/Delete.hs view
@@ -56,11 +56,14 @@ -- | Delete Mobile Device -- -- /See:/ 'mobileDevicesDelete' smart constructor.-data MobileDevicesDelete = MobileDevicesDelete'+data MobileDevicesDelete =+  MobileDevicesDelete'     { _mddResourceId :: !Text     , _mddCustomerId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MobileDevicesDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,10 +76,9 @@     -> Text -- ^ 'mddCustomerId'     -> MobileDevicesDelete mobileDevicesDelete pMddResourceId_ pMddCustomerId_ =-    MobileDevicesDelete'-    { _mddResourceId = pMddResourceId_-    , _mddCustomerId = pMddCustomerId_-    }+  MobileDevicesDelete'+    {_mddResourceId = pMddResourceId_, _mddCustomerId = pMddCustomerId_}+  -- | Immutable ID of Mobile Device mddResourceId :: Lens' MobileDevicesDelete Text
gen/Network/Google/Resource/Directory/MobileDevices/Get.hs view
@@ -58,12 +58,15 @@ -- | Retrieve Mobile Device -- -- /See:/ 'mobileDevicesGet' smart constructor.-data MobileDevicesGet = MobileDevicesGet'+data MobileDevicesGet =+  MobileDevicesGet'     { _mdgResourceId :: !Text     , _mdgCustomerId :: !Text     , _mdgProjection :: !(Maybe MobileDevicesGetProjection)-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MobileDevicesGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,11 +81,12 @@     -> Text -- ^ 'mdgCustomerId'     -> MobileDevicesGet mobileDevicesGet pMdgResourceId_ pMdgCustomerId_ =-    MobileDevicesGet'+  MobileDevicesGet'     { _mdgResourceId = pMdgResourceId_     , _mdgCustomerId = pMdgCustomerId_     , _mdgProjection = Nothing     }+  -- | Immutable ID of Mobile Device mdgResourceId :: Lens' MobileDevicesGet Text
gen/Network/Google/Resource/Directory/MobileDevices/List.hs view
@@ -68,7 +68,8 @@ -- | 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)@@ -76,8 +77,10 @@     , _mdlProjection :: !(Maybe MobileDevicesListProjection)     , _mdlPageToken  :: !(Maybe Text)     , _mdlMaxResults :: !(Maybe (Textual Int32))-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MobileDevicesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -99,7 +102,7 @@     :: Text -- ^ 'mdlCustomerId'     -> MobileDevicesList mobileDevicesList pMdlCustomerId_ =-    MobileDevicesList'+  MobileDevicesList'     { _mdlOrderBy = Nothing     , _mdlCustomerId = pMdlCustomerId_     , _mdlSortOrder = Nothing@@ -108,6 +111,7 @@     , _mdlPageToken = Nothing     , _mdlMaxResults = Nothing     }+  -- | Column to use for sorting results mdlOrderBy :: Lens' MobileDevicesList (Maybe MobileDevicesListOrderBy)
gen/Network/Google/Resource/Directory/Notifications/Delete.hs view
@@ -55,11 +55,14 @@ -- | Deletes a notification -- -- /See:/ 'notificationsDelete' smart constructor.-data NotificationsDelete = NotificationsDelete'+data NotificationsDelete =+  NotificationsDelete'     { _ndCustomer       :: !Text     , _ndNotificationId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'NotificationsDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,9 @@     -> Text -- ^ 'ndNotificationId'     -> NotificationsDelete notificationsDelete pNdCustomer_ pNdNotificationId_ =-    NotificationsDelete'-    { _ndCustomer = pNdCustomer_-    , _ndNotificationId = pNdNotificationId_-    }+  NotificationsDelete'+    {_ndCustomer = pNdCustomer_, _ndNotificationId = pNdNotificationId_}+  -- | The unique ID for the customer\'s G Suite account. The customerId is -- also returned as part of the Users resource.
gen/Network/Google/Resource/Directory/Notifications/Get.hs view
@@ -55,11 +55,14 @@ -- | Retrieves a notification. -- -- /See:/ 'notificationsGet' smart constructor.-data NotificationsGet = NotificationsGet'+data NotificationsGet =+  NotificationsGet'     { _ngCustomer       :: !Text     , _ngNotificationId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'NotificationsGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,9 @@     -> Text -- ^ 'ngNotificationId'     -> NotificationsGet notificationsGet pNgCustomer_ pNgNotificationId_ =-    NotificationsGet'-    { _ngCustomer = pNgCustomer_-    , _ngNotificationId = pNgNotificationId_-    }+  NotificationsGet'+    {_ngCustomer = pNgCustomer_, _ngNotificationId = pNgNotificationId_}+  -- | The unique ID for the customer\'s G Suite account. The customerId is -- also returned as part of the Users resource.
gen/Network/Google/Resource/Directory/Notifications/List.hs view
@@ -59,13 +59,16 @@ -- | Retrieves a list of notifications. -- -- /See:/ 'notificationsList' smart constructor.-data NotificationsList = NotificationsList'+data NotificationsList =+  NotificationsList'     { _nlCustomer   :: !Text     , _nlLanguage   :: !(Maybe Text)     , _nlPageToken  :: !(Maybe Text)     , _nlMaxResults :: !(Maybe (Textual Word32))-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'NotificationsList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -81,12 +84,13 @@     :: Text -- ^ 'nlCustomer'     -> NotificationsList notificationsList pNlCustomer_ =-    NotificationsList'+  NotificationsList'     { _nlCustomer = pNlCustomer_     , _nlLanguage = Nothing     , _nlPageToken = Nothing     , _nlMaxResults = Nothing     }+  -- | The unique ID for the customer\'s G Suite account. nlCustomer :: Lens' NotificationsList Text
gen/Network/Google/Resource/Directory/Notifications/Patch.hs view
@@ -58,12 +58,15 @@ -- | Updates a notification. This method supports patch semantics. -- -- /See:/ 'notificationsPatch' smart constructor.-data NotificationsPatch = NotificationsPatch'+data NotificationsPatch =+  NotificationsPatch'     { _npPayload        :: !Notification     , _npCustomer       :: !Text     , _npNotificationId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'NotificationsPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,11 +82,12 @@     -> Text -- ^ 'npNotificationId'     -> NotificationsPatch notificationsPatch pNpPayload_ pNpCustomer_ pNpNotificationId_ =-    NotificationsPatch'+  NotificationsPatch'     { _npPayload = pNpPayload_     , _npCustomer = pNpCustomer_     , _npNotificationId = pNpNotificationId_     }+  -- | Multipart request metadata. npPayload :: Lens' NotificationsPatch Notification
gen/Network/Google/Resource/Directory/Notifications/Update.hs view
@@ -58,12 +58,15 @@ -- | Updates a notification. -- -- /See:/ 'notificationsUpdate' smart constructor.-data NotificationsUpdate = NotificationsUpdate'+data NotificationsUpdate =+  NotificationsUpdate'     { _nuPayload        :: !Notification     , _nuCustomer       :: !Text     , _nuNotificationId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'NotificationsUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,11 +82,12 @@     -> Text -- ^ 'nuNotificationId'     -> NotificationsUpdate notificationsUpdate pNuPayload_ pNuCustomer_ pNuNotificationId_ =-    NotificationsUpdate'+  NotificationsUpdate'     { _nuPayload = pNuPayload_     , _nuCustomer = pNuCustomer_     , _nuNotificationId = pNuNotificationId_     }+  -- | Multipart request metadata. nuPayload :: Lens' NotificationsUpdate Notification
gen/Network/Google/Resource/Directory/OrgUnits/Delete.hs view
@@ -55,11 +55,14 @@ -- | Remove organizational unit -- -- /See:/ 'orgUnitsDelete' smart constructor.-data OrgUnitsDelete = OrgUnitsDelete'+data OrgUnitsDelete =+  OrgUnitsDelete'     { _oudOrgUnitPath :: ![Text]     , _oudCustomerId  :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'OrgUnitsDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,11 @@     -> Text -- ^ 'oudCustomerId'     -> OrgUnitsDelete orgUnitsDelete pOudOrgUnitPath_ pOudCustomerId_ =-    OrgUnitsDelete'+  OrgUnitsDelete'     { _oudOrgUnitPath = _Coerce # pOudOrgUnitPath_     , _oudCustomerId = pOudCustomerId_     }+  -- | Full path of the organizational unit or its ID oudOrgUnitPath :: Lens' OrgUnitsDelete [Text]
gen/Network/Google/Resource/Directory/OrgUnits/Get.hs view
@@ -55,11 +55,14 @@ -- | Retrieve organizational unit -- -- /See:/ 'orgUnitsGet' smart constructor.-data OrgUnitsGet = OrgUnitsGet'+data OrgUnitsGet =+  OrgUnitsGet'     { _ougOrgUnitPath :: ![Text]     , _ougCustomerId  :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'OrgUnitsGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,11 @@     -> Text -- ^ 'ougCustomerId'     -> OrgUnitsGet orgUnitsGet pOugOrgUnitPath_ pOugCustomerId_ =-    OrgUnitsGet'+  OrgUnitsGet'     { _ougOrgUnitPath = _Coerce # pOugOrgUnitPath_     , _ougCustomerId = pOugCustomerId_     }+  -- | Full path of the organizational unit or its ID ougOrgUnitPath :: Lens' OrgUnitsGet [Text]
gen/Network/Google/Resource/Directory/OrgUnits/Insert.hs view
@@ -55,11 +55,14 @@ -- | Add organizational unit -- -- /See:/ 'orgUnitsInsert' smart constructor.-data OrgUnitsInsert = OrgUnitsInsert'+data OrgUnitsInsert =+  OrgUnitsInsert'     { _ouiPayload    :: !OrgUnit     , _ouiCustomerId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'OrgUnitsInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'ouiCustomerId'     -> OrgUnitsInsert orgUnitsInsert pOuiPayload_ pOuiCustomerId_ =-    OrgUnitsInsert'-    { _ouiPayload = pOuiPayload_-    , _ouiCustomerId = pOuiCustomerId_-    }+  OrgUnitsInsert' {_ouiPayload = pOuiPayload_, _ouiCustomerId = pOuiCustomerId_}+  -- | Multipart request metadata. ouiPayload :: Lens' OrgUnitsInsert OrgUnit
gen/Network/Google/Resource/Directory/OrgUnits/List.hs view
@@ -57,12 +57,15 @@ -- | Retrieve all organizational units -- -- /See:/ 'orgUnitsList' smart constructor.-data OrgUnitsList = OrgUnitsList'+data OrgUnitsList =+  OrgUnitsList'     { _oulOrgUnitPath :: !Text     , _oulCustomerId  :: !Text     , _oulType        :: !(Maybe OrgUnitsListType)-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'OrgUnitsList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -76,11 +79,9 @@     :: Text -- ^ 'oulCustomerId'     -> OrgUnitsList orgUnitsList pOulCustomerId_ =-    OrgUnitsList'-    { _oulOrgUnitPath = ""-    , _oulCustomerId = pOulCustomerId_-    , _oulType = Nothing-    }+  OrgUnitsList'+    {_oulOrgUnitPath = "", _oulCustomerId = pOulCustomerId_, _oulType = Nothing}+  -- | the URL-encoded organizational unit\'s path or its ID oulOrgUnitPath :: Lens' OrgUnitsList Text
gen/Network/Google/Resource/Directory/OrgUnits/Patch.hs view
@@ -57,12 +57,15 @@ -- | Update organizational unit. This method supports patch semantics. -- -- /See:/ 'orgUnitsPatch' smart constructor.-data OrgUnitsPatch = OrgUnitsPatch'+data OrgUnitsPatch =+  OrgUnitsPatch'     { _oupPayload     :: !OrgUnit     , _oupOrgUnitPath :: ![Text]     , _oupCustomerId  :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'OrgUnitsPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,11 +81,12 @@     -> Text -- ^ 'oupCustomerId'     -> OrgUnitsPatch orgUnitsPatch pOupPayload_ pOupOrgUnitPath_ pOupCustomerId_ =-    OrgUnitsPatch'+  OrgUnitsPatch'     { _oupPayload = pOupPayload_     , _oupOrgUnitPath = _Coerce # pOupOrgUnitPath_     , _oupCustomerId = pOupCustomerId_     }+  -- | Multipart request metadata. oupPayload :: Lens' OrgUnitsPatch OrgUnit
gen/Network/Google/Resource/Directory/OrgUnits/Update.hs view
@@ -57,12 +57,15 @@ -- | Update organizational unit -- -- /See:/ 'orgUnitsUpdate' smart constructor.-data OrgUnitsUpdate = OrgUnitsUpdate'+data OrgUnitsUpdate =+  OrgUnitsUpdate'     { _ouuPayload     :: !OrgUnit     , _ouuOrgUnitPath :: ![Text]     , _ouuCustomerId  :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'OrgUnitsUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,11 +81,12 @@     -> Text -- ^ 'ouuCustomerId'     -> OrgUnitsUpdate orgUnitsUpdate pOuuPayload_ pOuuOrgUnitPath_ pOuuCustomerId_ =-    OrgUnitsUpdate'+  OrgUnitsUpdate'     { _ouuPayload = pOuuPayload_     , _ouuOrgUnitPath = _Coerce # pOuuOrgUnitPath_     , _ouuCustomerId = pOuuCustomerId_     }+  -- | Multipart request metadata. ouuPayload :: Lens' OrgUnitsUpdate OrgUnit
gen/Network/Google/Resource/Directory/Privileges/List.hs view
@@ -55,10 +55,13 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'PrivilegesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,10 +70,8 @@ privilegesList     :: Text -- ^ 'plCustomer'     -> PrivilegesList-privilegesList pPlCustomer_ =-    PrivilegesList'-    { _plCustomer = pPlCustomer_-    }+privilegesList pPlCustomer_ = PrivilegesList' {_plCustomer = pPlCustomer_}+  -- | Immutable ID of the G Suite account. plCustomer :: Lens' PrivilegesList Text
gen/Network/Google/Resource/Directory/ResolvedAppAccessSettings/GetSettings.hs view
@@ -51,17 +51,20 @@ -- -- /See:/ 'resolvedAppAccessSettingsGetSettings' smart constructor. data ResolvedAppAccessSettingsGetSettings =-    ResolvedAppAccessSettingsGetSettings'-    deriving (Eq,Show,Data,Typeable,Generic)+  ResolvedAppAccessSettingsGetSettings'+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResolvedAppAccessSettingsGetSettings' with the minimum fields required to make a request. -- resolvedAppAccessSettingsGetSettings     :: ResolvedAppAccessSettingsGetSettings resolvedAppAccessSettingsGetSettings = ResolvedAppAccessSettingsGetSettings' + instance GoogleRequest-         ResolvedAppAccessSettingsGetSettings where+           ResolvedAppAccessSettingsGetSettings+         where         type Rs ResolvedAppAccessSettingsGetSettings =              AppAccessCollections         type Scopes ResolvedAppAccessSettingsGetSettings =
gen/Network/Google/Resource/Directory/ResolvedAppAccessSettings/ListTrustedApps.hs view
@@ -51,18 +51,21 @@ -- -- /See:/ 'resolvedAppAccessSettingsListTrustedApps' smart constructor. data ResolvedAppAccessSettingsListTrustedApps =-    ResolvedAppAccessSettingsListTrustedApps'-    deriving (Eq,Show,Data,Typeable,Generic)+  ResolvedAppAccessSettingsListTrustedApps'+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResolvedAppAccessSettingsListTrustedApps' with the minimum fields required to make a request. -- resolvedAppAccessSettingsListTrustedApps     :: ResolvedAppAccessSettingsListTrustedApps resolvedAppAccessSettingsListTrustedApps =-    ResolvedAppAccessSettingsListTrustedApps'+  ResolvedAppAccessSettingsListTrustedApps' + instance GoogleRequest-         ResolvedAppAccessSettingsListTrustedApps where+           ResolvedAppAccessSettingsListTrustedApps+         where         type Rs ResolvedAppAccessSettingsListTrustedApps =              TrustedApps         type Scopes ResolvedAppAccessSettingsListTrustedApps
gen/Network/Google/Resource/Directory/Resources/Buildings/Delete.hs view
@@ -56,11 +56,14 @@ -- | Deletes a building. -- -- /See:/ 'resourcesBuildingsDelete' smart constructor.-data ResourcesBuildingsDelete = ResourcesBuildingsDelete'+data ResourcesBuildingsDelete =+  ResourcesBuildingsDelete'     { _rbdBuildingId :: !Text     , _rbdCustomer   :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResourcesBuildingsDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,10 +76,9 @@     -> Text -- ^ 'rbdCustomer'     -> ResourcesBuildingsDelete resourcesBuildingsDelete pRbdBuildingId_ pRbdCustomer_ =-    ResourcesBuildingsDelete'-    { _rbdBuildingId = pRbdBuildingId_-    , _rbdCustomer = pRbdCustomer_-    }+  ResourcesBuildingsDelete'+    {_rbdBuildingId = pRbdBuildingId_, _rbdCustomer = pRbdCustomer_}+  -- | The ID of the building to delete. rbdBuildingId :: Lens' ResourcesBuildingsDelete Text
gen/Network/Google/Resource/Directory/Resources/Buildings/Get.hs view
@@ -56,11 +56,14 @@ -- | Retrieves a building. -- -- /See:/ 'resourcesBuildingsGet' smart constructor.-data ResourcesBuildingsGet = ResourcesBuildingsGet'+data ResourcesBuildingsGet =+  ResourcesBuildingsGet'     { _rbgBuildingId :: !Text     , _rbgCustomer   :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResourcesBuildingsGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,10 +76,9 @@     -> Text -- ^ 'rbgCustomer'     -> ResourcesBuildingsGet resourcesBuildingsGet pRbgBuildingId_ pRbgCustomer_ =-    ResourcesBuildingsGet'-    { _rbgBuildingId = pRbgBuildingId_-    , _rbgCustomer = pRbgCustomer_-    }+  ResourcesBuildingsGet'+    {_rbgBuildingId = pRbgBuildingId_, _rbgCustomer = pRbgCustomer_}+  -- | The unique ID of the building to retrieve. rbgBuildingId :: Lens' ResourcesBuildingsGet Text
gen/Network/Google/Resource/Directory/Resources/Buildings/Insert.hs view
@@ -35,6 +35,7 @@     -- * Request Lenses     , rbiPayload     , rbiCustomer+    , rbiCoordinatesSource     ) where  import           Network.Google.Directory.Types@@ -50,17 +51,24 @@              Capture "customer" Text :>                "resources" :>                  "buildings" :>-                   QueryParam "alt" AltJSON :>-                     ReqBody '[JSON] Building :> Post '[JSON] Building+                   QueryParam "coordinatesSource"+                     ResourcesBuildingsInsertCoordinatesSource+                     :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Building :> Post '[JSON] Building  -- | Inserts a building. -- -- /See:/ 'resourcesBuildingsInsert' smart constructor.-data ResourcesBuildingsInsert = ResourcesBuildingsInsert'-    { _rbiPayload  :: !Building-    , _rbiCustomer :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+data ResourcesBuildingsInsert =+  ResourcesBuildingsInsert'+    { _rbiPayload           :: !Building+    , _rbiCustomer          :: !Text+    , _rbiCoordinatesSource :: !ResourcesBuildingsInsertCoordinatesSource+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResourcesBuildingsInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -68,16 +76,20 @@ -- * 'rbiPayload' -- -- * 'rbiCustomer'+--+-- * 'rbiCoordinatesSource' resourcesBuildingsInsert     :: Building -- ^ 'rbiPayload'     -> Text -- ^ 'rbiCustomer'     -> ResourcesBuildingsInsert resourcesBuildingsInsert pRbiPayload_ pRbiCustomer_ =-    ResourcesBuildingsInsert'+  ResourcesBuildingsInsert'     { _rbiPayload = pRbiPayload_     , _rbiCustomer = pRbiCustomer_+    , _rbiCoordinatesSource = RBICSSourceUnspecified     } + -- | Multipart request metadata. rbiPayload :: Lens' ResourcesBuildingsInsert Building rbiPayload@@ -90,12 +102,20 @@ rbiCustomer   = lens _rbiCustomer (\ s a -> s{_rbiCustomer = a}) +-- | Source from which Building.coordinates are derived.+rbiCoordinatesSource :: Lens' ResourcesBuildingsInsert ResourcesBuildingsInsertCoordinatesSource+rbiCoordinatesSource+  = lens _rbiCoordinatesSource+      (\ s a -> s{_rbiCoordinatesSource = a})+ instance GoogleRequest ResourcesBuildingsInsert where         type Rs ResourcesBuildingsInsert = Building         type Scopes ResourcesBuildingsInsert =              '["https://www.googleapis.com/auth/admin.directory.resource.calendar"]         requestClient ResourcesBuildingsInsert'{..}-          = go _rbiCustomer (Just AltJSON) _rbiPayload+          = go _rbiCustomer (Just _rbiCoordinatesSource)+              (Just AltJSON)+              _rbiPayload               directoryService           where go                   = buildClient
gen/Network/Google/Resource/Directory/Resources/Buildings/List.hs view
@@ -58,12 +58,15 @@ -- | Retrieves a list of buildings for an account. -- -- /See:/ 'resourcesBuildingsList' smart constructor.-data ResourcesBuildingsList = ResourcesBuildingsList'+data ResourcesBuildingsList =+  ResourcesBuildingsList'     { _rblCustomer   :: !Text     , _rblPageToken  :: !(Maybe Text)     , _rblMaxResults :: !(Maybe (Textual Int32))-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResourcesBuildingsList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -77,11 +80,12 @@     :: Text -- ^ 'rblCustomer'     -> ResourcesBuildingsList resourcesBuildingsList pRblCustomer_ =-    ResourcesBuildingsList'+  ResourcesBuildingsList'     { _rblCustomer = pRblCustomer_     , _rblPageToken = Nothing     , _rblMaxResults = Nothing     }+  -- | The unique ID for the customer\'s G Suite account. As an account -- administrator, you can also use the my_customer alias to represent your
gen/Network/Google/Resource/Directory/Resources/Buildings/Patch.hs view
@@ -36,6 +36,7 @@     , rbpBuildingId     , rbpPayload     , rbpCustomer+    , rbpCoordinatesSource     ) where  import           Network.Google.Directory.Types@@ -52,18 +53,25 @@                "resources" :>                  "buildings" :>                    Capture "buildingId" Text :>-                     QueryParam "alt" AltJSON :>-                       ReqBody '[JSON] Building :> Patch '[JSON] Building+                     QueryParam "coordinatesSource"+                       ResourcesBuildingsPatchCoordinatesSource+                       :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] Building :> Patch '[JSON] Building  -- | Updates a building. This method supports patch semantics. -- -- /See:/ 'resourcesBuildingsPatch' smart constructor.-data ResourcesBuildingsPatch = ResourcesBuildingsPatch'-    { _rbpBuildingId :: !Text-    , _rbpPayload    :: !Building-    , _rbpCustomer   :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+data ResourcesBuildingsPatch =+  ResourcesBuildingsPatch'+    { _rbpBuildingId        :: !Text+    , _rbpPayload           :: !Building+    , _rbpCustomer          :: !Text+    , _rbpCoordinatesSource :: !ResourcesBuildingsPatchCoordinatesSource+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResourcesBuildingsPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,18 +81,22 @@ -- * 'rbpPayload' -- -- * 'rbpCustomer'+--+-- * 'rbpCoordinatesSource' resourcesBuildingsPatch     :: Text -- ^ 'rbpBuildingId'     -> Building -- ^ 'rbpPayload'     -> Text -- ^ 'rbpCustomer'     -> ResourcesBuildingsPatch resourcesBuildingsPatch pRbpBuildingId_ pRbpPayload_ pRbpCustomer_ =-    ResourcesBuildingsPatch'+  ResourcesBuildingsPatch'     { _rbpBuildingId = pRbpBuildingId_     , _rbpPayload = pRbpPayload_     , _rbpCustomer = pRbpCustomer_+    , _rbpCoordinatesSource = SourceUnspecified     } + -- | The ID of the building to update. rbpBuildingId :: Lens' ResourcesBuildingsPatch Text rbpBuildingId@@ -103,12 +115,20 @@ rbpCustomer   = lens _rbpCustomer (\ s a -> s{_rbpCustomer = a}) +-- | Source from which Building.coordinates are derived.+rbpCoordinatesSource :: Lens' ResourcesBuildingsPatch ResourcesBuildingsPatchCoordinatesSource+rbpCoordinatesSource+  = lens _rbpCoordinatesSource+      (\ s a -> s{_rbpCoordinatesSource = a})+ instance GoogleRequest ResourcesBuildingsPatch where         type Rs ResourcesBuildingsPatch = Building         type Scopes ResourcesBuildingsPatch =              '["https://www.googleapis.com/auth/admin.directory.resource.calendar"]         requestClient ResourcesBuildingsPatch'{..}-          = go _rbpCustomer _rbpBuildingId (Just AltJSON)+          = go _rbpCustomer _rbpBuildingId+              (Just _rbpCoordinatesSource)+              (Just AltJSON)               _rbpPayload               directoryService           where go
gen/Network/Google/Resource/Directory/Resources/Buildings/Update.hs view
@@ -36,6 +36,7 @@     , rbuBuildingId     , rbuPayload     , rbuCustomer+    , rbuCoordinatesSource     ) where  import           Network.Google.Directory.Types@@ -52,18 +53,25 @@                "resources" :>                  "buildings" :>                    Capture "buildingId" Text :>-                     QueryParam "alt" AltJSON :>-                       ReqBody '[JSON] Building :> Put '[JSON] Building+                     QueryParam "coordinatesSource"+                       ResourcesBuildingsUpdateCoordinatesSource+                       :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] Building :> Put '[JSON] Building  -- | Updates a building. -- -- /See:/ 'resourcesBuildingsUpdate' smart constructor.-data ResourcesBuildingsUpdate = ResourcesBuildingsUpdate'-    { _rbuBuildingId :: !Text-    , _rbuPayload    :: !Building-    , _rbuCustomer   :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+data ResourcesBuildingsUpdate =+  ResourcesBuildingsUpdate'+    { _rbuBuildingId        :: !Text+    , _rbuPayload           :: !Building+    , _rbuCustomer          :: !Text+    , _rbuCoordinatesSource :: !ResourcesBuildingsUpdateCoordinatesSource+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResourcesBuildingsUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,18 +81,22 @@ -- * 'rbuPayload' -- -- * 'rbuCustomer'+--+-- * 'rbuCoordinatesSource' resourcesBuildingsUpdate     :: Text -- ^ 'rbuBuildingId'     -> Building -- ^ 'rbuPayload'     -> Text -- ^ 'rbuCustomer'     -> ResourcesBuildingsUpdate resourcesBuildingsUpdate pRbuBuildingId_ pRbuPayload_ pRbuCustomer_ =-    ResourcesBuildingsUpdate'+  ResourcesBuildingsUpdate'     { _rbuBuildingId = pRbuBuildingId_     , _rbuPayload = pRbuPayload_     , _rbuCustomer = pRbuCustomer_+    , _rbuCoordinatesSource = RBUCSSourceUnspecified     } + -- | The ID of the building to update. rbuBuildingId :: Lens' ResourcesBuildingsUpdate Text rbuBuildingId@@ -103,12 +115,20 @@ rbuCustomer   = lens _rbuCustomer (\ s a -> s{_rbuCustomer = a}) +-- | Source from which Building.coordinates are derived.+rbuCoordinatesSource :: Lens' ResourcesBuildingsUpdate ResourcesBuildingsUpdateCoordinatesSource+rbuCoordinatesSource+  = lens _rbuCoordinatesSource+      (\ s a -> s{_rbuCoordinatesSource = a})+ instance GoogleRequest ResourcesBuildingsUpdate where         type Rs ResourcesBuildingsUpdate = Building         type Scopes ResourcesBuildingsUpdate =              '["https://www.googleapis.com/auth/admin.directory.resource.calendar"]         requestClient ResourcesBuildingsUpdate'{..}-          = go _rbuCustomer _rbuBuildingId (Just AltJSON)+          = go _rbuCustomer _rbuBuildingId+              (Just _rbuCoordinatesSource)+              (Just AltJSON)               _rbuPayload               directoryService           where go
gen/Network/Google/Resource/Directory/Resources/Calendars/Delete.hs view
@@ -56,11 +56,14 @@ -- | Deletes a calendar resource. -- -- /See:/ 'resourcesCalendarsDelete' smart constructor.-data ResourcesCalendarsDelete = ResourcesCalendarsDelete'+data ResourcesCalendarsDelete =+  ResourcesCalendarsDelete'     { _rcdCustomer           :: !Text     , _rcdCalendarResourceId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  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:@@ -73,10 +76,11 @@     -> Text -- ^ 'rcdCalendarResourceId'     -> ResourcesCalendarsDelete resourcesCalendarsDelete pRcdCustomer_ pRcdCalendarResourceId_ =-    ResourcesCalendarsDelete'+  ResourcesCalendarsDelete'     { _rcdCustomer = pRcdCustomer_     , _rcdCalendarResourceId = pRcdCalendarResourceId_     }+  -- | The unique ID for the customer\'s G Suite account. As an account -- administrator, you can also use the my_customer alias to represent your
gen/Network/Google/Resource/Directory/Resources/Calendars/Get.hs view
@@ -57,11 +57,14 @@ -- | Retrieves a calendar resource. -- -- /See:/ 'resourcesCalendarsGet' smart constructor.-data ResourcesCalendarsGet = ResourcesCalendarsGet'+data ResourcesCalendarsGet =+  ResourcesCalendarsGet'     { _rcgCustomer           :: !Text     , _rcgCalendarResourceId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  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:@@ -74,10 +77,11 @@     -> Text -- ^ 'rcgCalendarResourceId'     -> ResourcesCalendarsGet resourcesCalendarsGet pRcgCustomer_ pRcgCalendarResourceId_ =-    ResourcesCalendarsGet'+  ResourcesCalendarsGet'     { _rcgCustomer = pRcgCustomer_     , _rcgCalendarResourceId = pRcgCalendarResourceId_     }+  -- | The unique ID for the customer\'s G Suite account. As an account -- administrator, you can also use the my_customer alias to represent your
gen/Network/Google/Resource/Directory/Resources/Calendars/Insert.hs view
@@ -57,11 +57,14 @@ -- | Inserts a calendar resource. -- -- /See:/ 'resourcesCalendarsInsert' smart constructor.-data ResourcesCalendarsInsert = ResourcesCalendarsInsert'+data ResourcesCalendarsInsert =+  ResourcesCalendarsInsert'     { _rciPayload  :: !CalendarResource     , _rciCustomer :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  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:@@ -74,10 +77,9 @@     -> Text -- ^ 'rciCustomer'     -> ResourcesCalendarsInsert resourcesCalendarsInsert pRciPayload_ pRciCustomer_ =-    ResourcesCalendarsInsert'-    { _rciPayload = pRciPayload_-    , _rciCustomer = pRciCustomer_-    }+  ResourcesCalendarsInsert'+    {_rciPayload = pRciPayload_, _rciCustomer = pRciCustomer_}+  -- | Multipart request metadata. rciPayload :: Lens' ResourcesCalendarsInsert CalendarResource
gen/Network/Google/Resource/Directory/Resources/Calendars/List.hs view
@@ -63,14 +63,17 @@ -- | Retrieves a list of calendar resources for an account. -- -- /See:/ 'resourcesCalendarsList' smart constructor.-data ResourcesCalendarsList = ResourcesCalendarsList'+data ResourcesCalendarsList =+  ResourcesCalendarsList'     { _rclOrderBy    :: !(Maybe Text)     , _rclCustomer   :: !Text     , _rclQuery      :: !(Maybe Text)     , _rclPageToken  :: !(Maybe Text)     , _rclMaxResults :: !(Maybe (Textual Int32))-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  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:@@ -88,13 +91,14 @@     :: Text -- ^ 'rclCustomer'     -> ResourcesCalendarsList resourcesCalendarsList pRclCustomer_ =-    ResourcesCalendarsList'+  ResourcesCalendarsList'     { _rclOrderBy = Nothing     , _rclCustomer = pRclCustomer_     , _rclQuery = Nothing     , _rclPageToken = Nothing     , _rclMaxResults = Nothing     }+  -- | Field(s) to sort results by in either ascending or descending order. -- Supported fields include resourceId, resourceName, capacity, buildingId,
gen/Network/Google/Resource/Directory/Resources/Calendars/Patch.hs view
@@ -65,12 +65,15 @@ -- supports patch semantics. -- -- /See:/ 'resourcesCalendarsPatch' smart constructor.-data ResourcesCalendarsPatch = ResourcesCalendarsPatch'+data ResourcesCalendarsPatch =+  ResourcesCalendarsPatch'     { _rcpPayload            :: !CalendarResource     , _rcpCustomer           :: !Text     , _rcpCalendarResourceId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  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:@@ -86,11 +89,12 @@     -> Text -- ^ 'rcpCalendarResourceId'     -> ResourcesCalendarsPatch resourcesCalendarsPatch pRcpPayload_ pRcpCustomer_ pRcpCalendarResourceId_ =-    ResourcesCalendarsPatch'+  ResourcesCalendarsPatch'     { _rcpPayload = pRcpPayload_     , _rcpCustomer = pRcpCustomer_     , _rcpCalendarResourceId = pRcpCalendarResourceId_     }+  -- | Multipart request metadata. rcpPayload :: Lens' ResourcesCalendarsPatch CalendarResource
gen/Network/Google/Resource/Directory/Resources/Calendars/Update.hs view
@@ -63,12 +63,15 @@ -- that are not present in the request will be preserved. -- -- /See:/ 'resourcesCalendarsUpdate' smart constructor.-data ResourcesCalendarsUpdate = ResourcesCalendarsUpdate'+data ResourcesCalendarsUpdate =+  ResourcesCalendarsUpdate'     { _rcuPayload            :: !CalendarResource     , _rcuCustomer           :: !Text     , _rcuCalendarResourceId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  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:@@ -84,11 +87,12 @@     -> Text -- ^ 'rcuCalendarResourceId'     -> ResourcesCalendarsUpdate resourcesCalendarsUpdate pRcuPayload_ pRcuCustomer_ pRcuCalendarResourceId_ =-    ResourcesCalendarsUpdate'+  ResourcesCalendarsUpdate'     { _rcuPayload = pRcuPayload_     , _rcuCustomer = pRcuCustomer_     , _rcuCalendarResourceId = pRcuCalendarResourceId_     }+  -- | Multipart request metadata. rcuPayload :: Lens' ResourcesCalendarsUpdate CalendarResource
gen/Network/Google/Resource/Directory/Resources/Features/Delete.hs view
@@ -56,11 +56,14 @@ -- | Deletes a feature. -- -- /See:/ 'resourcesFeaturesDelete' smart constructor.-data ResourcesFeaturesDelete = ResourcesFeaturesDelete'+data ResourcesFeaturesDelete =+  ResourcesFeaturesDelete'     { _rfdCustomer   :: !Text     , _rfdFeatureKey :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResourcesFeaturesDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,10 +76,9 @@     -> Text -- ^ 'rfdFeatureKey'     -> ResourcesFeaturesDelete resourcesFeaturesDelete pRfdCustomer_ pRfdFeatureKey_ =-    ResourcesFeaturesDelete'-    { _rfdCustomer = pRfdCustomer_-    , _rfdFeatureKey = pRfdFeatureKey_-    }+  ResourcesFeaturesDelete'+    {_rfdCustomer = pRfdCustomer_, _rfdFeatureKey = pRfdFeatureKey_}+  -- | The unique ID for the customer\'s G Suite account. As an account -- administrator, you can also use the my_customer alias to represent your
gen/Network/Google/Resource/Directory/Resources/Features/Get.hs view
@@ -56,11 +56,14 @@ -- | Retrieves a feature. -- -- /See:/ 'resourcesFeaturesGet' smart constructor.-data ResourcesFeaturesGet = ResourcesFeaturesGet'+data ResourcesFeaturesGet =+  ResourcesFeaturesGet'     { _rfgCustomer   :: !Text     , _rfgFeatureKey :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResourcesFeaturesGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,10 +76,9 @@     -> Text -- ^ 'rfgFeatureKey'     -> ResourcesFeaturesGet resourcesFeaturesGet pRfgCustomer_ pRfgFeatureKey_ =-    ResourcesFeaturesGet'-    { _rfgCustomer = pRfgCustomer_-    , _rfgFeatureKey = pRfgFeatureKey_-    }+  ResourcesFeaturesGet'+    {_rfgCustomer = pRfgCustomer_, _rfgFeatureKey = pRfgFeatureKey_}+  -- | The unique ID for the customer\'s G Suite account. As an account -- administrator, you can also use the my_customer alias to represent your
gen/Network/Google/Resource/Directory/Resources/Features/Insert.hs view
@@ -56,11 +56,14 @@ -- | Inserts a feature. -- -- /See:/ 'resourcesFeaturesInsert' smart constructor.-data ResourcesFeaturesInsert = ResourcesFeaturesInsert'+data ResourcesFeaturesInsert =+  ResourcesFeaturesInsert'     { _rfiPayload  :: !Feature     , _rfiCustomer :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResourcesFeaturesInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,10 +76,9 @@     -> Text -- ^ 'rfiCustomer'     -> ResourcesFeaturesInsert resourcesFeaturesInsert pRfiPayload_ pRfiCustomer_ =-    ResourcesFeaturesInsert'-    { _rfiPayload = pRfiPayload_-    , _rfiCustomer = pRfiCustomer_-    }+  ResourcesFeaturesInsert'+    {_rfiPayload = pRfiPayload_, _rfiCustomer = pRfiCustomer_}+  -- | Multipart request metadata. rfiPayload :: Lens' ResourcesFeaturesInsert Feature
gen/Network/Google/Resource/Directory/Resources/Features/List.hs view
@@ -58,12 +58,15 @@ -- | Retrieves a list of features for an account. -- -- /See:/ 'resourcesFeaturesList' smart constructor.-data ResourcesFeaturesList = ResourcesFeaturesList'+data ResourcesFeaturesList =+  ResourcesFeaturesList'     { _rflCustomer   :: !Text     , _rflPageToken  :: !(Maybe Text)     , _rflMaxResults :: !(Maybe (Textual Int32))-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResourcesFeaturesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -77,11 +80,12 @@     :: Text -- ^ 'rflCustomer'     -> ResourcesFeaturesList resourcesFeaturesList pRflCustomer_ =-    ResourcesFeaturesList'+  ResourcesFeaturesList'     { _rflCustomer = pRflCustomer_     , _rflPageToken = Nothing     , _rflMaxResults = Nothing     }+  -- | The unique ID for the customer\'s G Suite account. As an account -- administrator, you can also use the my_customer alias to represent your
gen/Network/Google/Resource/Directory/Resources/Features/Patch.hs view
@@ -58,12 +58,15 @@ -- | Updates a feature. This method supports patch semantics. -- -- /See:/ 'resourcesFeaturesPatch' smart constructor.-data ResourcesFeaturesPatch = ResourcesFeaturesPatch'+data ResourcesFeaturesPatch =+  ResourcesFeaturesPatch'     { _rfpPayload    :: !Feature     , _rfpCustomer   :: !Text     , _rfpFeatureKey :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResourcesFeaturesPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,11 +82,12 @@     -> Text -- ^ 'rfpFeatureKey'     -> ResourcesFeaturesPatch resourcesFeaturesPatch pRfpPayload_ pRfpCustomer_ pRfpFeatureKey_ =-    ResourcesFeaturesPatch'+  ResourcesFeaturesPatch'     { _rfpPayload = pRfpPayload_     , _rfpCustomer = pRfpCustomer_     , _rfpFeatureKey = pRfpFeatureKey_     }+  -- | Multipart request metadata. rfpPayload :: Lens' ResourcesFeaturesPatch Feature
gen/Network/Google/Resource/Directory/Resources/Features/Rename.hs view
@@ -59,12 +59,15 @@ -- | Renames a feature. -- -- /See:/ 'resourcesFeaturesRename' smart constructor.-data ResourcesFeaturesRename = ResourcesFeaturesRename'+data ResourcesFeaturesRename =+  ResourcesFeaturesRename'     { _rfrPayload  :: !FeatureRename     , _rfrCustomer :: !Text     , _rfrOldName  :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResourcesFeaturesRename' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -80,11 +83,12 @@     -> Text -- ^ 'rfrOldName'     -> ResourcesFeaturesRename resourcesFeaturesRename pRfrPayload_ pRfrCustomer_ pRfrOldName_ =-    ResourcesFeaturesRename'+  ResourcesFeaturesRename'     { _rfrPayload = pRfrPayload_     , _rfrCustomer = pRfrCustomer_     , _rfrOldName = pRfrOldName_     }+  -- | Multipart request metadata. rfrPayload :: Lens' ResourcesFeaturesRename FeatureRename
gen/Network/Google/Resource/Directory/Resources/Features/Update.hs view
@@ -58,12 +58,15 @@ -- | Updates a feature. -- -- /See:/ 'resourcesFeaturesUpdate' smart constructor.-data ResourcesFeaturesUpdate = ResourcesFeaturesUpdate'+data ResourcesFeaturesUpdate =+  ResourcesFeaturesUpdate'     { _rfuPayload    :: !Feature     , _rfuCustomer   :: !Text     , _rfuFeatureKey :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResourcesFeaturesUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,11 +82,12 @@     -> Text -- ^ 'rfuFeatureKey'     -> ResourcesFeaturesUpdate resourcesFeaturesUpdate pRfuPayload_ pRfuCustomer_ pRfuFeatureKey_ =-    ResourcesFeaturesUpdate'+  ResourcesFeaturesUpdate'     { _rfuPayload = pRfuPayload_     , _rfuCustomer = pRfuCustomer_     , _rfuFeatureKey = pRfuFeatureKey_     }+  -- | Multipart request metadata. rfuPayload :: Lens' ResourcesFeaturesUpdate Feature
gen/Network/Google/Resource/Directory/RoleAssignments/Delete.hs view
@@ -55,11 +55,14 @@ -- | Deletes a role assignment. -- -- /See:/ 'roleAssignmentsDelete' smart constructor.-data RoleAssignmentsDelete = RoleAssignmentsDelete'+data RoleAssignmentsDelete =+  RoleAssignmentsDelete'     { _radCustomer         :: !Text     , _radRoleAssignmentId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'RoleAssignmentsDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,9 @@     -> Text -- ^ 'radRoleAssignmentId'     -> RoleAssignmentsDelete roleAssignmentsDelete pRadCustomer_ pRadRoleAssignmentId_ =-    RoleAssignmentsDelete'-    { _radCustomer = pRadCustomer_-    , _radRoleAssignmentId = pRadRoleAssignmentId_-    }+  RoleAssignmentsDelete'+    {_radCustomer = pRadCustomer_, _radRoleAssignmentId = pRadRoleAssignmentId_}+  -- | Immutable ID of the G Suite account. radCustomer :: Lens' RoleAssignmentsDelete Text
gen/Network/Google/Resource/Directory/RoleAssignments/Get.hs view
@@ -56,11 +56,14 @@ -- | Retrieve a role assignment. -- -- /See:/ 'roleAssignmentsGet' smart constructor.-data RoleAssignmentsGet = RoleAssignmentsGet'+data RoleAssignmentsGet =+  RoleAssignmentsGet'     { _ragCustomer         :: !Text     , _ragRoleAssignmentId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'RoleAssignmentsGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,10 +76,9 @@     -> Text -- ^ 'ragRoleAssignmentId'     -> RoleAssignmentsGet roleAssignmentsGet pRagCustomer_ pRagRoleAssignmentId_ =-    RoleAssignmentsGet'-    { _ragCustomer = pRagCustomer_-    , _ragRoleAssignmentId = pRagRoleAssignmentId_-    }+  RoleAssignmentsGet'+    {_ragCustomer = pRagCustomer_, _ragRoleAssignmentId = pRagRoleAssignmentId_}+  -- | Immutable ID of the G Suite account. ragCustomer :: Lens' RoleAssignmentsGet Text
gen/Network/Google/Resource/Directory/RoleAssignments/Insert.hs view
@@ -56,11 +56,14 @@ -- | Creates a role assignment. -- -- /See:/ 'roleAssignmentsInsert' smart constructor.-data RoleAssignmentsInsert = RoleAssignmentsInsert'+data RoleAssignmentsInsert =+  RoleAssignmentsInsert'     { _raiPayload  :: !RoleAssignment     , _raiCustomer :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'RoleAssignmentsInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,10 +76,9 @@     -> Text -- ^ 'raiCustomer'     -> RoleAssignmentsInsert roleAssignmentsInsert pRaiPayload_ pRaiCustomer_ =-    RoleAssignmentsInsert'-    { _raiPayload = pRaiPayload_-    , _raiCustomer = pRaiCustomer_-    }+  RoleAssignmentsInsert'+    {_raiPayload = pRaiPayload_, _raiCustomer = pRaiCustomer_}+  -- | Multipart request metadata. raiPayload :: Lens' RoleAssignmentsInsert RoleAssignment
gen/Network/Google/Resource/Directory/RoleAssignments/List.hs view
@@ -62,14 +62,17 @@ -- | 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)     , _ralUserKey    :: !(Maybe Text)     , _ralMaxResults :: !(Maybe (Textual Int32))-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'RoleAssignmentsList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -87,13 +90,14 @@     :: Text -- ^ 'ralCustomer'     -> RoleAssignmentsList roleAssignmentsList pRalCustomer_ =-    RoleAssignmentsList'+  RoleAssignmentsList'     { _ralRoleId = Nothing     , _ralCustomer = pRalCustomer_     , _ralPageToken = Nothing     , _ralUserKey = Nothing     , _ralMaxResults = Nothing     }+  -- | Immutable ID of a role. If included in the request, returns only role -- assignments containing this role ID.
gen/Network/Google/Resource/Directory/Roles/Delete.hs view
@@ -55,11 +55,14 @@ -- | Deletes a role. -- -- /See:/ 'rolesDelete' smart constructor.-data RolesDelete = RolesDelete'+data RolesDelete =+  RolesDelete'     { _rdRoleId   :: !Text     , _rdCustomer :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'RolesDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'rdCustomer'     -> RolesDelete rolesDelete pRdRoleId_ pRdCustomer_ =-    RolesDelete'-    { _rdRoleId = pRdRoleId_-    , _rdCustomer = pRdCustomer_-    }+  RolesDelete' {_rdRoleId = pRdRoleId_, _rdCustomer = pRdCustomer_}+  -- | Immutable ID of the role. rdRoleId :: Lens' RolesDelete Text
gen/Network/Google/Resource/Directory/Roles/Get.hs view
@@ -55,11 +55,14 @@ -- | Retrieves a role. -- -- /See:/ 'rolesGet' smart constructor.-data RolesGet = RolesGet'+data RolesGet =+  RolesGet'     { _rgRoleId   :: !Text     , _rgCustomer :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'RolesGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'rgCustomer'     -> RolesGet rolesGet pRgRoleId_ pRgCustomer_ =-    RolesGet'-    { _rgRoleId = pRgRoleId_-    , _rgCustomer = pRgCustomer_-    }+  RolesGet' {_rgRoleId = pRgRoleId_, _rgCustomer = pRgCustomer_}+  -- | Immutable ID of the role. rgRoleId :: Lens' RolesGet Text
gen/Network/Google/Resource/Directory/Roles/Insert.hs view
@@ -55,11 +55,14 @@ -- | Creates a role. -- -- /See:/ 'rolesInsert' smart constructor.-data RolesInsert = RolesInsert'+data RolesInsert =+  RolesInsert'     { _riPayload  :: !Role     , _riCustomer :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'RolesInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'riCustomer'     -> RolesInsert rolesInsert pRiPayload_ pRiCustomer_ =-    RolesInsert'-    { _riPayload = pRiPayload_-    , _riCustomer = pRiCustomer_-    }+  RolesInsert' {_riPayload = pRiPayload_, _riCustomer = pRiCustomer_}+  -- | Multipart request metadata. riPayload :: Lens' RolesInsert Role
gen/Network/Google/Resource/Directory/Roles/List.hs view
@@ -57,12 +57,15 @@ -- | 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))-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'RolesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -76,11 +79,12 @@     :: Text -- ^ 'rlCustomer'     -> RolesList rolesList pRlCustomer_ =-    RolesList'+  RolesList'     { _rlCustomer = pRlCustomer_     , _rlPageToken = Nothing     , _rlMaxResults = Nothing     }+  -- | Immutable ID of the G Suite account. rlCustomer :: Lens' RolesList Text
gen/Network/Google/Resource/Directory/Roles/Patch.hs view
@@ -57,12 +57,15 @@ -- | Updates a role. This method supports patch semantics. -- -- /See:/ 'rolesPatch' smart constructor.-data RolesPatch = RolesPatch'+data RolesPatch =+  RolesPatch'     { _rpPayload  :: !Role     , _rpRoleId   :: !Text     , _rpCustomer :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'RolesPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,11 +81,12 @@     -> Text -- ^ 'rpCustomer'     -> RolesPatch rolesPatch pRpPayload_ pRpRoleId_ pRpCustomer_ =-    RolesPatch'+  RolesPatch'     { _rpPayload = pRpPayload_     , _rpRoleId = pRpRoleId_     , _rpCustomer = pRpCustomer_     }+  -- | Multipart request metadata. rpPayload :: Lens' RolesPatch Role
gen/Network/Google/Resource/Directory/Roles/Update.hs view
@@ -57,12 +57,15 @@ -- | Updates a role. -- -- /See:/ 'rolesUpdate' smart constructor.-data RolesUpdate = RolesUpdate'+data RolesUpdate =+  RolesUpdate'     { _ruPayload  :: !Role     , _ruRoleId   :: !Text     , _ruCustomer :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'RolesUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,11 +81,12 @@     -> Text -- ^ 'ruCustomer'     -> RolesUpdate rolesUpdate pRuPayload_ pRuRoleId_ pRuCustomer_ =-    RolesUpdate'+  RolesUpdate'     { _ruPayload = pRuPayload_     , _ruRoleId = pRuRoleId_     , _ruCustomer = pRuCustomer_     }+  -- | Multipart request metadata. ruPayload :: Lens' RolesUpdate Role
gen/Network/Google/Resource/Directory/Schemas/Delete.hs view
@@ -55,11 +55,14 @@ -- | Delete schema -- -- /See:/ 'schemasDelete' smart constructor.-data SchemasDelete = SchemasDelete'+data SchemasDelete =+  SchemasDelete'     { _sdCustomerId :: !Text     , _sdSchemaKey  :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'SchemasDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'sdSchemaKey'     -> SchemasDelete schemasDelete pSdCustomerId_ pSdSchemaKey_ =-    SchemasDelete'-    { _sdCustomerId = pSdCustomerId_-    , _sdSchemaKey = pSdSchemaKey_-    }+  SchemasDelete' {_sdCustomerId = pSdCustomerId_, _sdSchemaKey = pSdSchemaKey_}+  -- | Immutable ID of the G Suite account sdCustomerId :: Lens' SchemasDelete Text
gen/Network/Google/Resource/Directory/Schemas/Get.hs view
@@ -55,11 +55,14 @@ -- | Retrieve schema -- -- /See:/ 'schemasGet' smart constructor.-data SchemasGet = SchemasGet'+data SchemasGet =+  SchemasGet'     { _sgCustomerId :: !Text     , _sgSchemaKey  :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'SchemasGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'sgSchemaKey'     -> SchemasGet schemasGet pSgCustomerId_ pSgSchemaKey_ =-    SchemasGet'-    { _sgCustomerId = pSgCustomerId_-    , _sgSchemaKey = pSgSchemaKey_-    }+  SchemasGet' {_sgCustomerId = pSgCustomerId_, _sgSchemaKey = pSgSchemaKey_}+  -- | Immutable ID of the G Suite account sgCustomerId :: Lens' SchemasGet Text
gen/Network/Google/Resource/Directory/Schemas/Insert.hs view
@@ -55,11 +55,14 @@ -- | Create schema. -- -- /See:/ 'schemasInsert' smart constructor.-data SchemasInsert = SchemasInsert'+data SchemasInsert =+  SchemasInsert'     { _siPayload    :: !Schema     , _siCustomerId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'SchemasInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'siCustomerId'     -> SchemasInsert schemasInsert pSiPayload_ pSiCustomerId_ =-    SchemasInsert'-    { _siPayload = pSiPayload_-    , _siCustomerId = pSiCustomerId_-    }+  SchemasInsert' {_siPayload = pSiPayload_, _siCustomerId = pSiCustomerId_}+  -- | Multipart request metadata. siPayload :: Lens' SchemasInsert Schema
gen/Network/Google/Resource/Directory/Schemas/List.hs view
@@ -53,10 +53,13 @@ -- | Retrieve all schemas for a customer -- -- /See:/ 'schemasList' smart constructor.-newtype SchemasList = SchemasList'+newtype SchemasList =+  SchemasList'     { _slCustomerId :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'SchemasList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,10 +68,8 @@ schemasList     :: Text -- ^ 'slCustomerId'     -> SchemasList-schemasList pSlCustomerId_ =-    SchemasList'-    { _slCustomerId = pSlCustomerId_-    }+schemasList pSlCustomerId_ = SchemasList' {_slCustomerId = pSlCustomerId_}+  -- | Immutable ID of the G Suite account slCustomerId :: Lens' SchemasList Text
gen/Network/Google/Resource/Directory/Schemas/Patch.hs view
@@ -57,12 +57,15 @@ -- | Update schema. This method supports patch semantics. -- -- /See:/ 'schemasPatch' smart constructor.-data SchemasPatch = SchemasPatch'+data SchemasPatch =+  SchemasPatch'     { _spPayload    :: !Schema     , _spCustomerId :: !Text     , _spSchemaKey  :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'SchemasPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,11 +81,12 @@     -> Text -- ^ 'spSchemaKey'     -> SchemasPatch schemasPatch pSpPayload_ pSpCustomerId_ pSpSchemaKey_ =-    SchemasPatch'+  SchemasPatch'     { _spPayload = pSpPayload_     , _spCustomerId = pSpCustomerId_     , _spSchemaKey = pSpSchemaKey_     }+  -- | Multipart request metadata. spPayload :: Lens' SchemasPatch Schema
gen/Network/Google/Resource/Directory/Schemas/Update.hs view
@@ -57,12 +57,15 @@ -- | Update schema -- -- /See:/ 'schemasUpdate' smart constructor.-data SchemasUpdate = SchemasUpdate'+data SchemasUpdate =+  SchemasUpdate'     { _suPayload    :: !Schema     , _suCustomerId :: !Text     , _suSchemaKey  :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'SchemasUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,11 +81,12 @@     -> Text -- ^ 'suSchemaKey'     -> SchemasUpdate schemasUpdate pSuPayload_ pSuCustomerId_ pSuSchemaKey_ =-    SchemasUpdate'+  SchemasUpdate'     { _suPayload = pSuPayload_     , _suCustomerId = pSuCustomerId_     , _suSchemaKey = pSuSchemaKey_     }+  -- | Multipart request metadata. suPayload :: Lens' SchemasUpdate Schema
gen/Network/Google/Resource/Directory/Tokens/Delete.hs view
@@ -55,11 +55,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'TokensDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'tdUserKey'     -> TokensDelete tokensDelete pTdClientId_ pTdUserKey_ =-    TokensDelete'-    { _tdClientId = pTdClientId_-    , _tdUserKey = pTdUserKey_-    }+  TokensDelete' {_tdClientId = pTdClientId_, _tdUserKey = pTdUserKey_}+  -- | The Client ID of the application the token is issued to. tdClientId :: Lens' TokensDelete Text
gen/Network/Google/Resource/Directory/Tokens/Get.hs view
@@ -55,11 +55,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'TokensGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'tgUserKey'     -> TokensGet tokensGet pTgClientId_ pTgUserKey_ =-    TokensGet'-    { _tgClientId = pTgClientId_-    , _tgUserKey = pTgUserKey_-    }+  TokensGet' {_tgClientId = pTgClientId_, _tgUserKey = pTgUserKey_}+  -- | The Client ID of the application the token is issued to. tgClientId :: Lens' TokensGet Text
gen/Network/Google/Resource/Directory/Tokens/List.hs view
@@ -55,10 +55,13 @@ -- applications. -- -- /See:/ 'tokensList' smart constructor.-newtype TokensList = TokensList'+newtype TokensList =+  TokensList'     { _tlUserKey :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'TokensList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,10 +70,8 @@ tokensList     :: Text -- ^ 'tlUserKey'     -> TokensList-tokensList pTlUserKey_ =-    TokensList'-    { _tlUserKey = pTlUserKey_-    }+tokensList pTlUserKey_ = TokensList' {_tlUserKey = pTlUserKey_}+  -- | Identifies the user in the API request. The value can be the user\'s -- primary email address, alias email address, or unique user ID.
gen/Network/Google/Resource/Directory/Users/Aliases/Delete.hs view
@@ -55,11 +55,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersAliasesDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'uadUserKey'     -> UsersAliasesDelete usersAliasesDelete pUadAlias_ pUadUserKey_ =-    UsersAliasesDelete'-    { _uadAlias = pUadAlias_-    , _uadUserKey = pUadUserKey_-    }+  UsersAliasesDelete' {_uadAlias = pUadAlias_, _uadUserKey = pUadUserKey_}+  -- | The alias to be removed uadAlias :: Lens' UsersAliasesDelete Text
gen/Network/Google/Resource/Directory/Users/Aliases/Insert.hs view
@@ -55,11 +55,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersAliasesInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'uaiUserKey'     -> UsersAliasesInsert usersAliasesInsert pUaiPayload_ pUaiUserKey_ =-    UsersAliasesInsert'-    { _uaiPayload = pUaiPayload_-    , _uaiUserKey = pUaiUserKey_-    }+  UsersAliasesInsert' {_uaiPayload = pUaiPayload_, _uaiUserKey = pUaiUserKey_}+  -- | Multipart request metadata. uaiPayload :: Lens' UsersAliasesInsert Alias
gen/Network/Google/Resource/Directory/Users/Aliases/List.hs view
@@ -55,11 +55,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersAliasesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,10 +74,8 @@     :: Text -- ^ 'ualUserKey'     -> UsersAliasesList usersAliasesList pUalUserKey_ =-    UsersAliasesList'-    { _ualEvent = Nothing-    , _ualUserKey = pUalUserKey_-    }+  UsersAliasesList' {_ualEvent = Nothing, _ualUserKey = pUalUserKey_}+  -- | Event on which subscription is intended (if subscribing) ualEvent :: Lens' UsersAliasesList (Maybe UsersAliasesListEvent)
gen/Network/Google/Resource/Directory/Users/Aliases/Watch.hs view
@@ -58,12 +58,15 @@ -- | Watch for changes in user aliases list -- -- /See:/ 'usersAliasesWatch' smart constructor.-data UsersAliasesWatch = UsersAliasesWatch'+data UsersAliasesWatch =+  UsersAliasesWatch'     { _uawEvent   :: !(Maybe UsersAliasesWatchEvent)     , _uawPayload :: !Channel     , _uawUserKey :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersAliasesWatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,11 +81,12 @@     -> Text -- ^ 'uawUserKey'     -> UsersAliasesWatch usersAliasesWatch pUawPayload_ pUawUserKey_ =-    UsersAliasesWatch'+  UsersAliasesWatch'     { _uawEvent = Nothing     , _uawPayload = pUawPayload_     , _uawUserKey = pUawUserKey_     }+  -- | Event on which subscription is intended (if subscribing) uawEvent :: Lens' UsersAliasesWatch (Maybe UsersAliasesWatchEvent)
gen/Network/Google/Resource/Directory/Users/Delete.hs view
@@ -52,10 +52,13 @@ -- | Delete user -- -- /See:/ 'usersDelete' smart constructor.-newtype UsersDelete = UsersDelete'+newtype UsersDelete =+  UsersDelete'     { _udUserKey :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -64,10 +67,8 @@ usersDelete     :: Text -- ^ 'udUserKey'     -> UsersDelete-usersDelete pUdUserKey_ =-    UsersDelete'-    { _udUserKey = pUdUserKey_-    }+usersDelete pUdUserKey_ = UsersDelete' {_udUserKey = pUdUserKey_}+  -- | Email or immutable ID of the user udUserKey :: Lens' UsersDelete Text
gen/Network/Google/Resource/Directory/Users/Get.hs view
@@ -58,13 +58,16 @@ -- | retrieve user -- -- /See:/ 'usersGet' smart constructor.-data UsersGet = UsersGet'+data UsersGet =+  UsersGet'     { _ugViewType        :: !UsersGetViewType     , _ugCustomFieldMask :: !(Maybe Text)     , _ugProjection      :: !UsersGetProjection     , _ugUserKey         :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -80,12 +83,13 @@     :: Text -- ^ 'ugUserKey'     -> UsersGet usersGet pUgUserKey_ =-    UsersGet'+  UsersGet'     { _ugViewType = UGVTAdminView     , _ugCustomFieldMask = Nothing     , _ugProjection = UGPBasic     , _ugUserKey = pUgUserKey_     }+  -- | Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user. ugViewType :: Lens' UsersGet UsersGetViewType
gen/Network/Google/Resource/Directory/Users/Insert.hs view
@@ -52,10 +52,13 @@ -- | create user. -- -- /See:/ 'usersInsert' smart constructor.-newtype UsersInsert = UsersInsert'+newtype UsersInsert =+  UsersInsert'     { _uiPayload :: User-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -64,10 +67,8 @@ usersInsert     :: User -- ^ 'uiPayload'     -> UsersInsert-usersInsert pUiPayload_ =-    UsersInsert'-    { _uiPayload = pUiPayload_-    }+usersInsert pUiPayload_ = UsersInsert' {_uiPayload = pUiPayload_}+  -- | Multipart request metadata. uiPayload :: Lens' UsersInsert User
gen/Network/Google/Resource/Directory/Users/List.hs view
@@ -75,7 +75,8 @@ -- | 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@@ -88,8 +89,10 @@     , _ulProjection      :: !UsersListProjection     , _ulPageToken       :: !(Maybe Text)     , _ulMaxResults      :: !(Maybe (Textual Int32))-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -120,7 +123,7 @@ usersList     :: UsersList usersList =-    UsersList'+  UsersList'     { _ulEvent = Nothing     , _ulOrderBy = Nothing     , _ulViewType = AdminView@@ -134,6 +137,7 @@     , _ulPageToken = Nothing     , _ulMaxResults = Nothing     }+  -- | Event on which subscription is intended (if subscribing) ulEvent :: Lens' UsersList (Maybe UsersListEvent)
gen/Network/Google/Resource/Directory/Users/MakeAdmin.hs view
@@ -55,11 +55,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersMakeAdmin' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'umaUserKey'     -> UsersMakeAdmin usersMakeAdmin pUmaPayload_ pUmaUserKey_ =-    UsersMakeAdmin'-    { _umaPayload = pUmaPayload_-    , _umaUserKey = pUmaUserKey_-    }+  UsersMakeAdmin' {_umaPayload = pUmaPayload_, _umaUserKey = pUmaUserKey_}+  -- | Multipart request metadata. umaPayload :: Lens' UsersMakeAdmin UserMakeAdmin
gen/Network/Google/Resource/Directory/Users/Patch.hs view
@@ -54,11 +54,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,10 +74,8 @@     -> Text -- ^ 'upUserKey'     -> UsersPatch usersPatch pUpPayload_ pUpUserKey_ =-    UsersPatch'-    { _upPayload = pUpPayload_-    , _upUserKey = pUpUserKey_-    }+  UsersPatch' {_upPayload = pUpPayload_, _upUserKey = pUpUserKey_}+  -- | Multipart request metadata. upPayload :: Lens' UsersPatch User
gen/Network/Google/Resource/Directory/Users/Photos/Delete.hs view
@@ -54,10 +54,13 @@ -- | Remove photos for the user -- -- /See:/ 'usersPhotosDelete' smart constructor.-newtype UsersPhotosDelete = UsersPhotosDelete'+newtype UsersPhotosDelete =+  UsersPhotosDelete'     { _updUserKey :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersPhotosDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -66,10 +69,8 @@ usersPhotosDelete     :: Text -- ^ 'updUserKey'     -> UsersPhotosDelete-usersPhotosDelete pUpdUserKey_ =-    UsersPhotosDelete'-    { _updUserKey = pUpdUserKey_-    }+usersPhotosDelete pUpdUserKey_ = UsersPhotosDelete' {_updUserKey = pUpdUserKey_}+  -- | Email or immutable ID of the user updUserKey :: Lens' UsersPhotosDelete Text
gen/Network/Google/Resource/Directory/Users/Photos/Get.hs view
@@ -54,10 +54,13 @@ -- | Retrieve photo of a user -- -- /See:/ 'usersPhotosGet' smart constructor.-newtype UsersPhotosGet = UsersPhotosGet'+newtype UsersPhotosGet =+  UsersPhotosGet'     { _upgUserKey :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersPhotosGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -66,10 +69,8 @@ usersPhotosGet     :: Text -- ^ 'upgUserKey'     -> UsersPhotosGet-usersPhotosGet pUpgUserKey_ =-    UsersPhotosGet'-    { _upgUserKey = pUpgUserKey_-    }+usersPhotosGet pUpgUserKey_ = UsersPhotosGet' {_upgUserKey = pUpgUserKey_}+  -- | Email or immutable ID of the user upgUserKey :: Lens' UsersPhotosGet Text
gen/Network/Google/Resource/Directory/Users/Photos/Patch.hs view
@@ -56,11 +56,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersPhotosPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,10 +76,8 @@     -> Text -- ^ 'uppUserKey'     -> UsersPhotosPatch usersPhotosPatch pUppPayload_ pUppUserKey_ =-    UsersPhotosPatch'-    { _uppPayload = pUppPayload_-    , _uppUserKey = pUppUserKey_-    }+  UsersPhotosPatch' {_uppPayload = pUppPayload_, _uppUserKey = pUppUserKey_}+  -- | Multipart request metadata. uppPayload :: Lens' UsersPhotosPatch UserPhoto
gen/Network/Google/Resource/Directory/Users/Photos/Update.hs view
@@ -56,11 +56,14 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersPhotosUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,10 +76,8 @@     -> Text -- ^ 'upuUserKey'     -> UsersPhotosUpdate usersPhotosUpdate pUpuPayload_ pUpuUserKey_ =-    UsersPhotosUpdate'-    { _upuPayload = pUpuPayload_-    , _upuUserKey = pUpuUserKey_-    }+  UsersPhotosUpdate' {_upuPayload = pUpuPayload_, _upuUserKey = pUpuUserKey_}+  -- | Multipart request metadata. upuPayload :: Lens' UsersPhotosUpdate UserPhoto
gen/Network/Google/Resource/Directory/Users/Undelete.hs view
@@ -55,11 +55,14 @@ -- | Undelete a deleted user -- -- /See:/ 'usersUndelete' smart constructor.-data UsersUndelete = UsersUndelete'+data UsersUndelete =+  UsersUndelete'     { _uuPayload :: !UserUndelete     , _uuUserKey :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersUndelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@     -> Text -- ^ 'uuUserKey'     -> UsersUndelete usersUndelete pUuPayload_ pUuUserKey_ =-    UsersUndelete'-    { _uuPayload = pUuPayload_-    , _uuUserKey = pUuUserKey_-    }+  UsersUndelete' {_uuPayload = pUuPayload_, _uuUserKey = pUuUserKey_}+  -- | Multipart request metadata. uuPayload :: Lens' UsersUndelete UserUndelete
gen/Network/Google/Resource/Directory/Users/Update.hs view
@@ -54,11 +54,14 @@ -- | update user -- -- /See:/ 'usersUpdate' smart constructor.-data UsersUpdate = UsersUpdate'+data UsersUpdate =+  UsersUpdate'     { _uPayload :: !User     , _uUserKey :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,10 +74,8 @@     -> Text -- ^ 'uUserKey'     -> UsersUpdate usersUpdate pUPayload_ pUUserKey_ =-    UsersUpdate'-    { _uPayload = pUPayload_-    , _uUserKey = pUUserKey_-    }+  UsersUpdate' {_uPayload = pUPayload_, _uUserKey = pUUserKey_}+  -- | Multipart request metadata. uPayload :: Lens' UsersUpdate User
gen/Network/Google/Resource/Directory/Users/Watch.hs view
@@ -78,7 +78,8 @@ -- | Watch for changes in users list -- -- /See:/ 'usersWatch' smart constructor.-data UsersWatch = UsersWatch'+data UsersWatch =+  UsersWatch'     { _uwEvent           :: !(Maybe UsersWatchEvent)     , _uwOrderBy         :: !(Maybe UsersWatchOrderBy)     , _uwViewType        :: !UsersWatchViewType@@ -92,8 +93,10 @@     , _uwProjection      :: !UsersWatchProjection     , _uwPageToken       :: !(Maybe Text)     , _uwMaxResults      :: !(Maybe (Textual Int32))-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersWatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -127,7 +130,7 @@     :: Channel -- ^ 'uwPayload'     -> UsersWatch usersWatch pUwPayload_ =-    UsersWatch'+  UsersWatch'     { _uwEvent = Nothing     , _uwOrderBy = Nothing     , _uwViewType = UWVTAdminView@@ -142,6 +145,7 @@     , _uwPageToken = Nothing     , _uwMaxResults = Nothing     }+  -- | Event on which subscription is intended (if subscribing) uwEvent :: Lens' UsersWatch (Maybe UsersWatchEvent)
gen/Network/Google/Resource/Directory/VerificationCodes/Generate.hs view
@@ -54,10 +54,13 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'VerificationCodesGenerate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,9 +70,8 @@     :: Text -- ^ 'vcgUserKey'     -> VerificationCodesGenerate verificationCodesGenerate pVcgUserKey_ =-    VerificationCodesGenerate'-    { _vcgUserKey = pVcgUserKey_-    }+  VerificationCodesGenerate' {_vcgUserKey = pVcgUserKey_}+  -- | Email or immutable ID of the user vcgUserKey :: Lens' VerificationCodesGenerate Text
gen/Network/Google/Resource/Directory/VerificationCodes/Invalidate.hs view
@@ -54,10 +54,13 @@ -- | 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)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'VerificationCodesInvalidate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,9 +70,8 @@     :: Text -- ^ 'vciUserKey'     -> VerificationCodesInvalidate verificationCodesInvalidate pVciUserKey_ =-    VerificationCodesInvalidate'-    { _vciUserKey = pVciUserKey_-    }+  VerificationCodesInvalidate' {_vciUserKey = pVciUserKey_}+  -- | Email or immutable ID of the user vciUserKey :: Lens' VerificationCodesInvalidate Text
gen/Network/Google/Resource/Directory/VerificationCodes/List.hs view
@@ -56,10 +56,13 @@ -- specified user. -- -- /See:/ 'verificationCodesList' smart constructor.-newtype VerificationCodesList = VerificationCodesList'+newtype VerificationCodesList =+  VerificationCodesList'     { _vclUserKey :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'VerificationCodesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -69,9 +72,8 @@     :: Text -- ^ 'vclUserKey'     -> VerificationCodesList verificationCodesList pVclUserKey_ =-    VerificationCodesList'-    { _vclUserKey = pVclUserKey_-    }+  VerificationCodesList' {_vclUserKey = pVclUserKey_}+  -- | Identifies the user in the API request. The value can be the user\'s -- primary email address, alias email address, or unique user ID.
gogol-admin-directory.cabal view
@@ -1,5 +1,5 @@ name:                  gogol-admin-directory-version:               0.4.0+version:               0.5.0 synopsis:              Google Admin Directory SDK. homepage:              https://github.com/brendanhay/gogol bug-reports:           https://github.com/brendanhay/gogol/issues@@ -155,5 +155,5 @@         , Network.Google.Directory.Types.Sum      build-depends:-          gogol-core == 0.4.0.*+          gogol-core == 0.5.0.*         , base       >= 4.7 && < 5