packages feed

gogol-admin-directory 0.3.0 → 0.4.0

raw patch · 104 files changed

+10660/−6101 lines, 104 filesdep ~gogol-corePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: gogol-core

API changes (from Hackage documentation)

+ Network.Google.Directory: GLOBEmail :: GroupsListOrderBy
+ Network.Google.Directory: GLSOAscending :: GroupsListSortOrder
+ Network.Google.Directory: GLSODescending :: GroupsListSortOrder
+ Network.Google.Directory: aacBlockedAPIAccessBuckets :: Lens' AppAccessCollections [Text]
+ Network.Google.Directory: aacEnforceSettingsForAndroidDrive :: Lens' AppAccessCollections (Maybe Bool)
+ Network.Google.Directory: aacErrorMessage :: Lens' AppAccessCollections (Maybe Text)
+ Network.Google.Directory: aacEtag :: Lens' AppAccessCollections (Maybe Text)
+ Network.Google.Directory: aacKind :: Lens' AppAccessCollections Text
+ Network.Google.Directory: aacResourceId :: Lens' AppAccessCollections (Maybe Int64)
+ Network.Google.Directory: aacResourceName :: Lens' AppAccessCollections (Maybe Text)
+ Network.Google.Directory: aacTrustDomainOwnedApps :: Lens' AppAccessCollections (Maybe Bool)
+ Network.Google.Directory: appAccessCollections :: AppAccessCollections
+ Network.Google.Directory: bBuildings :: Lens' Buildings [Building]
+ Network.Google.Directory: bEtag :: Lens' Buildings (Maybe Text)
+ Network.Google.Directory: bKind :: Lens' Buildings Text
+ Network.Google.Directory: bNextPageToken :: Lens' Buildings (Maybe Text)
+ Network.Google.Directory: bcLatitude :: Lens' BuildingCoordinates (Maybe Double)
+ Network.Google.Directory: bcLongitude :: Lens' BuildingCoordinates (Maybe Double)
+ Network.Google.Directory: buiBuildingId :: Lens' Building (Maybe Text)
+ Network.Google.Directory: buiBuildingName :: Lens' Building (Maybe Text)
+ Network.Google.Directory: buiCoordinates :: Lens' Building (Maybe BuildingCoordinates)
+ Network.Google.Directory: buiDescription :: Lens' Building (Maybe Text)
+ Network.Google.Directory: buiEtags :: Lens' Building (Maybe Text)
+ Network.Google.Directory: buiFloorNames :: Lens' Building [Text]
+ Network.Google.Directory: buiKind :: Lens' Building Text
+ Network.Google.Directory: building :: Building
+ Network.Google.Directory: buildingCoordinates :: BuildingCoordinates
+ Network.Google.Directory: buildings :: Buildings
+ Network.Google.Directory: chromeOSDeviceCPUStatusReportsItem :: ChromeOSDeviceCPUStatusReportsItem
+ Network.Google.Directory: chromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem :: ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem
+ Network.Google.Directory: chromeOSDeviceDeviceFilesItem :: ChromeOSDeviceDeviceFilesItem
+ Network.Google.Directory: chromeOSDeviceDiskVolumeReportsItem :: ChromeOSDeviceDiskVolumeReportsItem
+ Network.Google.Directory: chromeOSDeviceDiskVolumeReportsItemVolumeInfoItem :: ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem
+ Network.Google.Directory: chromeOSDeviceSystemRamFreeReportsItem :: ChromeOSDeviceSystemRamFreeReportsItem
+ Network.Google.Directory: chromeOSDeviceTpmVersionInfo :: ChromeOSDeviceTpmVersionInfo
+ Network.Google.Directory: chromeOSMoveDevicesToOu :: ChromeOSMoveDevicesToOu
+ Network.Google.Directory: codCPUStatusReports :: Lens' ChromeOSDevice [ChromeOSDeviceCPUStatusReportsItem]
+ Network.Google.Directory: codDeviceFiles :: Lens' ChromeOSDevice [ChromeOSDeviceDeviceFilesItem]
+ Network.Google.Directory: codDiskVolumeReports :: Lens' ChromeOSDevice [ChromeOSDeviceDiskVolumeReportsItem]
+ Network.Google.Directory: codSystemRamFreeReports :: Lens' ChromeOSDevice [ChromeOSDeviceSystemRamFreeReportsItem]
+ Network.Google.Directory: codSystemRamTotal :: Lens' ChromeOSDevice (Maybe Int64)
+ Network.Google.Directory: codTpmVersionInfo :: Lens' ChromeOSDevice (Maybe ChromeOSDeviceTpmVersionInfo)
+ Network.Google.Directory: codcsriCPUTemperatureInfo :: Lens' ChromeOSDeviceCPUStatusReportsItem [ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem]
+ Network.Google.Directory: codcsriCPUUtilizationPercentageInfo :: Lens' ChromeOSDeviceCPUStatusReportsItem [Int32]
+ Network.Google.Directory: codcsriReportTime :: Lens' ChromeOSDeviceCPUStatusReportsItem (Maybe UTCTime)
+ Network.Google.Directory: codcsrictiiLabel :: Lens' ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem (Maybe Text)
+ Network.Google.Directory: codcsrictiiTemperature :: Lens' ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem (Maybe Int32)
+ Network.Google.Directory: coddfiCreateTime :: Lens' ChromeOSDeviceDeviceFilesItem (Maybe UTCTime)
+ Network.Google.Directory: coddfiDownloadURL :: Lens' ChromeOSDeviceDeviceFilesItem (Maybe Text)
+ Network.Google.Directory: coddfiName :: Lens' ChromeOSDeviceDeviceFilesItem (Maybe Text)
+ Network.Google.Directory: coddfiType :: Lens' ChromeOSDeviceDeviceFilesItem (Maybe Text)
+ Network.Google.Directory: coddvriVolumeInfo :: Lens' ChromeOSDeviceDiskVolumeReportsItem [ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem]
+ Network.Google.Directory: coddvriviiStorageFree :: Lens' ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem (Maybe Int64)
+ Network.Google.Directory: coddvriviiStorageTotal :: Lens' ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem (Maybe Int64)
+ Network.Google.Directory: coddvriviiVolumeId :: Lens' ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem (Maybe Text)
+ Network.Google.Directory: codsrfriReportTime :: Lens' ChromeOSDeviceSystemRamFreeReportsItem (Maybe UTCTime)
+ Network.Google.Directory: codsrfriSystemRamFreeInfo :: Lens' ChromeOSDeviceSystemRamFreeReportsItem [Int64]
+ Network.Google.Directory: codtviFamily :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)
+ Network.Google.Directory: codtviFirmwareVersion :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)
+ Network.Google.Directory: codtviManufacturer :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)
+ Network.Google.Directory: codtviSpecLevel :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)
+ Network.Google.Directory: codtviTpmModel :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)
+ Network.Google.Directory: codtviVendorSpecific :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)
+ Network.Google.Directory: comdtoDeviceIds :: Lens' ChromeOSMoveDevicesToOu [Text]
+ Network.Google.Directory: crBuildingId :: Lens' CalendarResource (Maybe Text)
+ Network.Google.Directory: crCapacity :: Lens' CalendarResource (Maybe Int32)
+ Network.Google.Directory: crFeatureInstances :: Lens' CalendarResource (Maybe JSONValue)
+ Network.Google.Directory: crFloorName :: Lens' CalendarResource (Maybe Text)
+ Network.Google.Directory: crFloorSection :: Lens' CalendarResource (Maybe Text)
+ Network.Google.Directory: crGeneratedResourceName :: Lens' CalendarResource (Maybe Text)
+ Network.Google.Directory: crResourceCategory :: Lens' CalendarResource (Maybe Text)
+ Network.Google.Directory: crUserVisibleDescription :: Lens' CalendarResource (Maybe Text)
+ Network.Google.Directory: data AppAccessCollections
+ Network.Google.Directory: data Building
+ Network.Google.Directory: data BuildingCoordinates
+ Network.Google.Directory: data Buildings
+ Network.Google.Directory: data ChromeOSDeviceCPUStatusReportsItem
+ Network.Google.Directory: data ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem
+ Network.Google.Directory: data ChromeOSDeviceDeviceFilesItem
+ Network.Google.Directory: data ChromeOSDeviceDiskVolumeReportsItem
+ Network.Google.Directory: data ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem
+ Network.Google.Directory: data ChromeOSDeviceSystemRamFreeReportsItem
+ Network.Google.Directory: data ChromeOSDeviceTpmVersionInfo
+ Network.Google.Directory: data ChromeOSMoveDevicesToOu
+ Network.Google.Directory: data Feature
+ Network.Google.Directory: data FeatureInstance
+ Network.Google.Directory: data FeatureRename
+ Network.Google.Directory: data Features
+ Network.Google.Directory: data GroupsListOrderBy
+ Network.Google.Directory: data GroupsListSortOrder
+ Network.Google.Directory: data MembersHasMember
+ Network.Google.Directory: data TrustedAppId
+ Network.Google.Directory: data TrustedApps
+ Network.Google.Directory: data UserGender
+ Network.Google.Directory: data UserKeyword
+ Network.Google.Directory: data UserLanguage
+ Network.Google.Directory: data UserLocation
+ Network.Google.Directory: data UserPosixAccount
+ Network.Google.Directory: data UserSSHPublicKey
+ Network.Google.Directory: fEtags :: Lens' Feature (Maybe Text)
+ Network.Google.Directory: fKind :: Lens' Feature Text
+ Network.Google.Directory: fName :: Lens' Feature (Maybe Text)
+ Network.Google.Directory: feaEtag :: Lens' Features (Maybe Text)
+ Network.Google.Directory: feaFeatures :: Lens' Features [Feature]
+ Network.Google.Directory: feaKind :: Lens' Features Text
+ Network.Google.Directory: feaNextPageToken :: Lens' Features (Maybe Text)
+ Network.Google.Directory: feature :: Feature
+ Network.Google.Directory: featureInstance :: FeatureInstance
+ Network.Google.Directory: featureRename :: FeatureRename
+ Network.Google.Directory: features :: Features
+ Network.Google.Directory: fiFeature :: Lens' FeatureInstance (Maybe Feature)
+ Network.Google.Directory: frNewName :: Lens' FeatureRename (Maybe Text)
+ Network.Google.Directory: memDeliverySettings :: Lens' Member (Maybe Text)
+ Network.Google.Directory: membersHasMember :: MembersHasMember
+ Network.Google.Directory: mhmIsMember :: Lens' MembersHasMember (Maybe Bool)
+ Network.Google.Directory: schDisplayName :: Lens' Schema (Maybe Text)
+ Network.Google.Directory: sfsDisplayName :: Lens' SchemaFieldSpec (Maybe Text)
+ Network.Google.Directory: taEtag :: Lens' TrustedApps (Maybe Text)
+ Network.Google.Directory: taKind :: Lens' TrustedApps Text
+ Network.Google.Directory: taNextPageToken :: Lens' TrustedApps (Maybe Text)
+ Network.Google.Directory: taTrustedApps :: Lens' TrustedApps [TrustedAppId]
+ Network.Google.Directory: taiAndroidPackageName :: Lens' TrustedAppId (Maybe Text)
+ Network.Google.Directory: taiCertificateHashSHA1 :: Lens' TrustedAppId (Maybe Text)
+ Network.Google.Directory: taiCertificateHashSHA256 :: Lens' TrustedAppId (Maybe Text)
+ Network.Google.Directory: taiEtag :: Lens' TrustedAppId (Maybe Text)
+ Network.Google.Directory: taiKind :: Lens' TrustedAppId Text
+ Network.Google.Directory: trustedAppId :: TrustedAppId
+ Network.Google.Directory: trustedApps :: TrustedApps
+ Network.Google.Directory: ugAddressMeAs :: Lens' UserGender (Maybe Text)
+ Network.Google.Directory: ugCustomGender :: Lens' UserGender (Maybe Text)
+ Network.Google.Directory: ugType :: Lens' UserGender (Maybe Text)
+ Network.Google.Directory: ukCustomType :: Lens' UserKeyword (Maybe Text)
+ Network.Google.Directory: ukType :: Lens' UserKeyword (Maybe Text)
+ Network.Google.Directory: ukValue :: Lens' UserKeyword (Maybe Text)
+ Network.Google.Directory: ulArea :: Lens' UserLocation (Maybe Text)
+ Network.Google.Directory: ulBuildingId :: Lens' UserLocation (Maybe Text)
+ Network.Google.Directory: ulCustomLanguage :: Lens' UserLanguage (Maybe Text)
+ Network.Google.Directory: ulCustomType :: Lens' UserLocation (Maybe Text)
+ Network.Google.Directory: ulDeskCode :: Lens' UserLocation (Maybe Text)
+ Network.Google.Directory: ulFloorName :: Lens' UserLocation (Maybe Text)
+ Network.Google.Directory: ulFloorSection :: Lens' UserLocation (Maybe Text)
+ Network.Google.Directory: ulLanguageCode :: Lens' UserLanguage (Maybe Text)
+ Network.Google.Directory: ulType :: Lens' UserLocation (Maybe Text)
+ Network.Google.Directory: uoFullTimeEquivalent :: Lens' UserOrganization (Maybe Int32)
+ Network.Google.Directory: upaAccountId :: Lens' UserPosixAccount (Maybe Text)
+ Network.Google.Directory: upaGecos :: Lens' UserPosixAccount (Maybe Text)
+ Network.Google.Directory: upaGid :: Lens' UserPosixAccount (Maybe Word64)
+ Network.Google.Directory: upaHomeDirectory :: Lens' UserPosixAccount (Maybe Text)
+ Network.Google.Directory: upaOperatingSystemType :: Lens' UserPosixAccount (Maybe Text)
+ Network.Google.Directory: upaPrimary :: Lens' UserPosixAccount (Maybe Bool)
+ Network.Google.Directory: upaShell :: Lens' UserPosixAccount (Maybe Text)
+ Network.Google.Directory: upaSystemId :: Lens' UserPosixAccount (Maybe Text)
+ Network.Google.Directory: upaUid :: Lens' UserPosixAccount (Maybe Word64)
+ Network.Google.Directory: upaUsername :: Lens' UserPosixAccount (Maybe Text)
+ Network.Google.Directory: useArchived :: Lens' User (Maybe Bool)
+ Network.Google.Directory: useGender :: Lens' User (Maybe JSONValue)
+ Network.Google.Directory: useKeywords :: Lens' User (Maybe JSONValue)
+ Network.Google.Directory: useLanguages :: Lens' User (Maybe JSONValue)
+ Network.Google.Directory: useLocations :: Lens' User (Maybe JSONValue)
+ Network.Google.Directory: usePosixAccounts :: Lens' User (Maybe JSONValue)
+ Network.Google.Directory: useSSHPublicKeys :: Lens' User (Maybe JSONValue)
+ Network.Google.Directory: userGender :: UserGender
+ Network.Google.Directory: userKeyword :: UserKeyword
+ Network.Google.Directory: userLanguage :: UserLanguage
+ Network.Google.Directory: userLocation :: UserLocation
+ Network.Google.Directory: userPosixAccount :: UserPosixAccount
+ Network.Google.Directory: userSSHPublicKey :: UserSSHPublicKey
+ Network.Google.Directory: uspkExpirationTimeUsec :: Lens' UserSSHPublicKey (Maybe Int64)
+ Network.Google.Directory: uspkFingerprint :: Lens' UserSSHPublicKey (Maybe Text)
+ Network.Google.Directory: uspkKey :: Lens' UserSSHPublicKey (Maybe Text)
+ Network.Google.Directory.Types: GLOBEmail :: GroupsListOrderBy
+ Network.Google.Directory.Types: GLSOAscending :: GroupsListSortOrder
+ Network.Google.Directory.Types: GLSODescending :: GroupsListSortOrder
+ Network.Google.Directory.Types: aacBlockedAPIAccessBuckets :: Lens' AppAccessCollections [Text]
+ Network.Google.Directory.Types: aacEnforceSettingsForAndroidDrive :: Lens' AppAccessCollections (Maybe Bool)
+ Network.Google.Directory.Types: aacErrorMessage :: Lens' AppAccessCollections (Maybe Text)
+ Network.Google.Directory.Types: aacEtag :: Lens' AppAccessCollections (Maybe Text)
+ Network.Google.Directory.Types: aacKind :: Lens' AppAccessCollections Text
+ Network.Google.Directory.Types: aacResourceId :: Lens' AppAccessCollections (Maybe Int64)
+ Network.Google.Directory.Types: aacResourceName :: Lens' AppAccessCollections (Maybe Text)
+ Network.Google.Directory.Types: aacTrustDomainOwnedApps :: Lens' AppAccessCollections (Maybe Bool)
+ Network.Google.Directory.Types: appAccessCollections :: AppAccessCollections
+ Network.Google.Directory.Types: bBuildings :: Lens' Buildings [Building]
+ Network.Google.Directory.Types: bEtag :: Lens' Buildings (Maybe Text)
+ Network.Google.Directory.Types: bKind :: Lens' Buildings Text
+ Network.Google.Directory.Types: bNextPageToken :: Lens' Buildings (Maybe Text)
+ Network.Google.Directory.Types: bcLatitude :: Lens' BuildingCoordinates (Maybe Double)
+ Network.Google.Directory.Types: bcLongitude :: Lens' BuildingCoordinates (Maybe Double)
+ Network.Google.Directory.Types: buiBuildingId :: Lens' Building (Maybe Text)
+ Network.Google.Directory.Types: buiBuildingName :: Lens' Building (Maybe Text)
+ Network.Google.Directory.Types: buiCoordinates :: Lens' Building (Maybe BuildingCoordinates)
+ Network.Google.Directory.Types: buiDescription :: Lens' Building (Maybe Text)
+ Network.Google.Directory.Types: buiEtags :: Lens' Building (Maybe Text)
+ Network.Google.Directory.Types: buiFloorNames :: Lens' Building [Text]
+ Network.Google.Directory.Types: buiKind :: Lens' Building Text
+ Network.Google.Directory.Types: building :: Building
+ Network.Google.Directory.Types: buildingCoordinates :: BuildingCoordinates
+ Network.Google.Directory.Types: buildings :: Buildings
+ Network.Google.Directory.Types: chromeOSDeviceCPUStatusReportsItem :: ChromeOSDeviceCPUStatusReportsItem
+ Network.Google.Directory.Types: chromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem :: ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem
+ Network.Google.Directory.Types: chromeOSDeviceDeviceFilesItem :: ChromeOSDeviceDeviceFilesItem
+ Network.Google.Directory.Types: chromeOSDeviceDiskVolumeReportsItem :: ChromeOSDeviceDiskVolumeReportsItem
+ Network.Google.Directory.Types: chromeOSDeviceDiskVolumeReportsItemVolumeInfoItem :: ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem
+ Network.Google.Directory.Types: chromeOSDeviceSystemRamFreeReportsItem :: ChromeOSDeviceSystemRamFreeReportsItem
+ Network.Google.Directory.Types: chromeOSDeviceTpmVersionInfo :: ChromeOSDeviceTpmVersionInfo
+ Network.Google.Directory.Types: chromeOSMoveDevicesToOu :: ChromeOSMoveDevicesToOu
+ Network.Google.Directory.Types: codCPUStatusReports :: Lens' ChromeOSDevice [ChromeOSDeviceCPUStatusReportsItem]
+ Network.Google.Directory.Types: codDeviceFiles :: Lens' ChromeOSDevice [ChromeOSDeviceDeviceFilesItem]
+ Network.Google.Directory.Types: codDiskVolumeReports :: Lens' ChromeOSDevice [ChromeOSDeviceDiskVolumeReportsItem]
+ Network.Google.Directory.Types: codSystemRamFreeReports :: Lens' ChromeOSDevice [ChromeOSDeviceSystemRamFreeReportsItem]
+ Network.Google.Directory.Types: codSystemRamTotal :: Lens' ChromeOSDevice (Maybe Int64)
+ Network.Google.Directory.Types: codTpmVersionInfo :: Lens' ChromeOSDevice (Maybe ChromeOSDeviceTpmVersionInfo)
+ Network.Google.Directory.Types: codcsriCPUTemperatureInfo :: Lens' ChromeOSDeviceCPUStatusReportsItem [ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem]
+ Network.Google.Directory.Types: codcsriCPUUtilizationPercentageInfo :: Lens' ChromeOSDeviceCPUStatusReportsItem [Int32]
+ Network.Google.Directory.Types: codcsriReportTime :: Lens' ChromeOSDeviceCPUStatusReportsItem (Maybe UTCTime)
+ Network.Google.Directory.Types: codcsrictiiLabel :: Lens' ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem (Maybe Text)
+ Network.Google.Directory.Types: codcsrictiiTemperature :: Lens' ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem (Maybe Int32)
+ Network.Google.Directory.Types: coddfiCreateTime :: Lens' ChromeOSDeviceDeviceFilesItem (Maybe UTCTime)
+ Network.Google.Directory.Types: coddfiDownloadURL :: Lens' ChromeOSDeviceDeviceFilesItem (Maybe Text)
+ Network.Google.Directory.Types: coddfiName :: Lens' ChromeOSDeviceDeviceFilesItem (Maybe Text)
+ Network.Google.Directory.Types: coddfiType :: Lens' ChromeOSDeviceDeviceFilesItem (Maybe Text)
+ Network.Google.Directory.Types: coddvriVolumeInfo :: Lens' ChromeOSDeviceDiskVolumeReportsItem [ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem]
+ Network.Google.Directory.Types: coddvriviiStorageFree :: Lens' ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem (Maybe Int64)
+ Network.Google.Directory.Types: coddvriviiStorageTotal :: Lens' ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem (Maybe Int64)
+ Network.Google.Directory.Types: coddvriviiVolumeId :: Lens' ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem (Maybe Text)
+ Network.Google.Directory.Types: codsrfriReportTime :: Lens' ChromeOSDeviceSystemRamFreeReportsItem (Maybe UTCTime)
+ Network.Google.Directory.Types: codsrfriSystemRamFreeInfo :: Lens' ChromeOSDeviceSystemRamFreeReportsItem [Int64]
+ Network.Google.Directory.Types: codtviFamily :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)
+ Network.Google.Directory.Types: codtviFirmwareVersion :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)
+ Network.Google.Directory.Types: codtviManufacturer :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)
+ Network.Google.Directory.Types: codtviSpecLevel :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)
+ Network.Google.Directory.Types: codtviTpmModel :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)
+ Network.Google.Directory.Types: codtviVendorSpecific :: Lens' ChromeOSDeviceTpmVersionInfo (Maybe Text)
+ Network.Google.Directory.Types: comdtoDeviceIds :: Lens' ChromeOSMoveDevicesToOu [Text]
+ Network.Google.Directory.Types: crBuildingId :: Lens' CalendarResource (Maybe Text)
+ Network.Google.Directory.Types: crCapacity :: Lens' CalendarResource (Maybe Int32)
+ Network.Google.Directory.Types: crFeatureInstances :: Lens' CalendarResource (Maybe JSONValue)
+ Network.Google.Directory.Types: crFloorName :: Lens' CalendarResource (Maybe Text)
+ Network.Google.Directory.Types: crFloorSection :: Lens' CalendarResource (Maybe Text)
+ Network.Google.Directory.Types: crGeneratedResourceName :: Lens' CalendarResource (Maybe Text)
+ Network.Google.Directory.Types: crResourceCategory :: Lens' CalendarResource (Maybe Text)
+ Network.Google.Directory.Types: crUserVisibleDescription :: Lens' CalendarResource (Maybe Text)
+ Network.Google.Directory.Types: data AppAccessCollections
+ Network.Google.Directory.Types: data Building
+ Network.Google.Directory.Types: data BuildingCoordinates
+ Network.Google.Directory.Types: data Buildings
+ Network.Google.Directory.Types: data ChromeOSDeviceCPUStatusReportsItem
+ Network.Google.Directory.Types: data ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem
+ Network.Google.Directory.Types: data ChromeOSDeviceDeviceFilesItem
+ Network.Google.Directory.Types: data ChromeOSDeviceDiskVolumeReportsItem
+ Network.Google.Directory.Types: data ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem
+ Network.Google.Directory.Types: data ChromeOSDeviceSystemRamFreeReportsItem
+ Network.Google.Directory.Types: data ChromeOSDeviceTpmVersionInfo
+ Network.Google.Directory.Types: data ChromeOSMoveDevicesToOu
+ Network.Google.Directory.Types: data Feature
+ Network.Google.Directory.Types: data FeatureInstance
+ Network.Google.Directory.Types: data FeatureRename
+ Network.Google.Directory.Types: data Features
+ Network.Google.Directory.Types: data GroupsListOrderBy
+ Network.Google.Directory.Types: data GroupsListSortOrder
+ Network.Google.Directory.Types: data MembersHasMember
+ Network.Google.Directory.Types: data TrustedAppId
+ Network.Google.Directory.Types: data TrustedApps
+ Network.Google.Directory.Types: data UserGender
+ Network.Google.Directory.Types: data UserKeyword
+ Network.Google.Directory.Types: data UserLanguage
+ Network.Google.Directory.Types: data UserLocation
+ Network.Google.Directory.Types: data UserPosixAccount
+ Network.Google.Directory.Types: data UserSSHPublicKey
+ Network.Google.Directory.Types: fEtags :: Lens' Feature (Maybe Text)
+ Network.Google.Directory.Types: fKind :: Lens' Feature Text
+ Network.Google.Directory.Types: fName :: Lens' Feature (Maybe Text)
+ Network.Google.Directory.Types: feaEtag :: Lens' Features (Maybe Text)
+ Network.Google.Directory.Types: feaFeatures :: Lens' Features [Feature]
+ Network.Google.Directory.Types: feaKind :: Lens' Features Text
+ Network.Google.Directory.Types: feaNextPageToken :: Lens' Features (Maybe Text)
+ Network.Google.Directory.Types: feature :: Feature
+ Network.Google.Directory.Types: featureInstance :: FeatureInstance
+ Network.Google.Directory.Types: featureRename :: FeatureRename
+ Network.Google.Directory.Types: features :: Features
+ Network.Google.Directory.Types: fiFeature :: Lens' FeatureInstance (Maybe Feature)
+ Network.Google.Directory.Types: frNewName :: Lens' FeatureRename (Maybe Text)
+ Network.Google.Directory.Types: memDeliverySettings :: Lens' Member (Maybe Text)
+ Network.Google.Directory.Types: membersHasMember :: MembersHasMember
+ Network.Google.Directory.Types: mhmIsMember :: Lens' MembersHasMember (Maybe Bool)
+ Network.Google.Directory.Types: schDisplayName :: Lens' Schema (Maybe Text)
+ Network.Google.Directory.Types: sfsDisplayName :: Lens' SchemaFieldSpec (Maybe Text)
+ Network.Google.Directory.Types: taEtag :: Lens' TrustedApps (Maybe Text)
+ Network.Google.Directory.Types: taKind :: Lens' TrustedApps Text
+ Network.Google.Directory.Types: taNextPageToken :: Lens' TrustedApps (Maybe Text)
+ Network.Google.Directory.Types: taTrustedApps :: Lens' TrustedApps [TrustedAppId]
+ Network.Google.Directory.Types: taiAndroidPackageName :: Lens' TrustedAppId (Maybe Text)
+ Network.Google.Directory.Types: taiCertificateHashSHA1 :: Lens' TrustedAppId (Maybe Text)
+ Network.Google.Directory.Types: taiCertificateHashSHA256 :: Lens' TrustedAppId (Maybe Text)
+ Network.Google.Directory.Types: taiEtag :: Lens' TrustedAppId (Maybe Text)
+ Network.Google.Directory.Types: taiKind :: Lens' TrustedAppId Text
+ Network.Google.Directory.Types: trustedAppId :: TrustedAppId
+ Network.Google.Directory.Types: trustedApps :: TrustedApps
+ Network.Google.Directory.Types: ugAddressMeAs :: Lens' UserGender (Maybe Text)
+ Network.Google.Directory.Types: ugCustomGender :: Lens' UserGender (Maybe Text)
+ Network.Google.Directory.Types: ugType :: Lens' UserGender (Maybe Text)
+ Network.Google.Directory.Types: ukCustomType :: Lens' UserKeyword (Maybe Text)
+ Network.Google.Directory.Types: ukType :: Lens' UserKeyword (Maybe Text)
+ Network.Google.Directory.Types: ukValue :: Lens' UserKeyword (Maybe Text)
+ Network.Google.Directory.Types: ulArea :: Lens' UserLocation (Maybe Text)
+ Network.Google.Directory.Types: ulBuildingId :: Lens' UserLocation (Maybe Text)
+ Network.Google.Directory.Types: ulCustomLanguage :: Lens' UserLanguage (Maybe Text)
+ Network.Google.Directory.Types: ulCustomType :: Lens' UserLocation (Maybe Text)
+ Network.Google.Directory.Types: ulDeskCode :: Lens' UserLocation (Maybe Text)
+ Network.Google.Directory.Types: ulFloorName :: Lens' UserLocation (Maybe Text)
+ Network.Google.Directory.Types: ulFloorSection :: Lens' UserLocation (Maybe Text)
+ Network.Google.Directory.Types: ulLanguageCode :: Lens' UserLanguage (Maybe Text)
+ Network.Google.Directory.Types: ulType :: Lens' UserLocation (Maybe Text)
+ Network.Google.Directory.Types: uoFullTimeEquivalent :: Lens' UserOrganization (Maybe Int32)
+ Network.Google.Directory.Types: upaAccountId :: Lens' UserPosixAccount (Maybe Text)
+ Network.Google.Directory.Types: upaGecos :: Lens' UserPosixAccount (Maybe Text)
+ Network.Google.Directory.Types: upaGid :: Lens' UserPosixAccount (Maybe Word64)
+ Network.Google.Directory.Types: upaHomeDirectory :: Lens' UserPosixAccount (Maybe Text)
+ Network.Google.Directory.Types: upaOperatingSystemType :: Lens' UserPosixAccount (Maybe Text)
+ Network.Google.Directory.Types: upaPrimary :: Lens' UserPosixAccount (Maybe Bool)
+ Network.Google.Directory.Types: upaShell :: Lens' UserPosixAccount (Maybe Text)
+ Network.Google.Directory.Types: upaSystemId :: Lens' UserPosixAccount (Maybe Text)
+ Network.Google.Directory.Types: upaUid :: Lens' UserPosixAccount (Maybe Word64)
+ Network.Google.Directory.Types: upaUsername :: Lens' UserPosixAccount (Maybe Text)
+ Network.Google.Directory.Types: useArchived :: Lens' User (Maybe Bool)
+ Network.Google.Directory.Types: useGender :: Lens' User (Maybe JSONValue)
+ Network.Google.Directory.Types: useKeywords :: Lens' User (Maybe JSONValue)
+ Network.Google.Directory.Types: useLanguages :: Lens' User (Maybe JSONValue)
+ Network.Google.Directory.Types: useLocations :: Lens' User (Maybe JSONValue)
+ Network.Google.Directory.Types: usePosixAccounts :: Lens' User (Maybe JSONValue)
+ Network.Google.Directory.Types: useSSHPublicKeys :: Lens' User (Maybe JSONValue)
+ Network.Google.Directory.Types: userGender :: UserGender
+ Network.Google.Directory.Types: userKeyword :: UserKeyword
+ Network.Google.Directory.Types: userLanguage :: UserLanguage
+ Network.Google.Directory.Types: userLocation :: UserLocation
+ Network.Google.Directory.Types: userPosixAccount :: UserPosixAccount
+ Network.Google.Directory.Types: userSSHPublicKey :: UserSSHPublicKey
+ Network.Google.Directory.Types: uspkExpirationTimeUsec :: Lens' UserSSHPublicKey (Maybe Int64)
+ Network.Google.Directory.Types: uspkFingerprint :: Lens' UserSSHPublicKey (Maybe Text)
+ Network.Google.Directory.Types: uspkKey :: Lens' UserSSHPublicKey (Maybe Text)
+ Network.Google.Resource.Directory.ChromeosDevices.List: cdlOrgUnitPath :: Lens' ChromeosDevicesList (Maybe Text)
+ Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu: cdmdtoCustomerId :: Lens' ChromeosDevicesMoveDevicesToOu Text
+ Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu: cdmdtoOrgUnitPath :: Lens' ChromeosDevicesMoveDevicesToOu Text
+ Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu: cdmdtoPayload :: Lens' ChromeosDevicesMoveDevicesToOu ChromeOSMoveDevicesToOu
+ Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu: chromeosDevicesMoveDevicesToOu :: ChromeOSMoveDevicesToOu -> Text -> Text -> ChromeosDevicesMoveDevicesToOu
+ Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu: data ChromeosDevicesMoveDevicesToOu
+ Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu: instance Data.Data.Data Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu.ChromeosDevicesMoveDevicesToOu
+ Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu: instance GHC.Classes.Eq Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu.ChromeosDevicesMoveDevicesToOu
+ Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu: instance GHC.Generics.Generic Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu.ChromeosDevicesMoveDevicesToOu
+ Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu: instance GHC.Show.Show Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu.ChromeosDevicesMoveDevicesToOu
+ Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu.ChromeosDevicesMoveDevicesToOu
+ Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu: type ChromeosDevicesMoveDevicesToOuResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "devices" :> "chromeos" :> "moveDevicesToOu" :> QueryParam "orgUnitPath" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] ChromeOSMoveDevicesToOu :> Post '[JSON] ()
+ Network.Google.Resource.Directory.Groups.List: glOrderBy :: Lens' GroupsList (Maybe GroupsListOrderBy)
+ Network.Google.Resource.Directory.Groups.List: glQuery :: Lens' GroupsList (Maybe Text)
+ Network.Google.Resource.Directory.Groups.List: glSortOrder :: Lens' GroupsList (Maybe GroupsListSortOrder)
+ Network.Google.Resource.Directory.Members.HasMember: data MembersHasMember'
+ Network.Google.Resource.Directory.Members.HasMember: instance Data.Data.Data Network.Google.Resource.Directory.Members.HasMember.MembersHasMember'
+ Network.Google.Resource.Directory.Members.HasMember: instance GHC.Classes.Eq Network.Google.Resource.Directory.Members.HasMember.MembersHasMember'
+ Network.Google.Resource.Directory.Members.HasMember: instance GHC.Generics.Generic Network.Google.Resource.Directory.Members.HasMember.MembersHasMember'
+ Network.Google.Resource.Directory.Members.HasMember: instance GHC.Show.Show Network.Google.Resource.Directory.Members.HasMember.MembersHasMember'
+ Network.Google.Resource.Directory.Members.HasMember: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.Members.HasMember.MembersHasMember'
+ Network.Google.Resource.Directory.Members.HasMember: membersHasMember' :: Text -> Text -> MembersHasMember'
+ Network.Google.Resource.Directory.Members.HasMember: mhmGroupKey :: Lens' MembersHasMember' Text
+ Network.Google.Resource.Directory.Members.HasMember: mhmMemberKey :: Lens' MembersHasMember' Text
+ Network.Google.Resource.Directory.Members.HasMember: type MembersHasMemberResource = "admin" :> "directory" :> "v1" :> "groups" :> Capture "groupKey" Text :> "hasMember" :> Capture "memberKey" Text :> QueryParam "alt" AltJSON :> Get '[JSON] MembersHasMember
+ Network.Google.Resource.Directory.Members.List: mlIncludeDerivedMembership :: Lens' MembersList (Maybe Bool)
+ Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings: data ResolvedAppAccessSettingsGetSettings
+ Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings: instance Data.Data.Data Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings.ResolvedAppAccessSettingsGetSettings
+ Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings: instance GHC.Classes.Eq Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings.ResolvedAppAccessSettingsGetSettings
+ Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings: instance GHC.Generics.Generic Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings.ResolvedAppAccessSettingsGetSettings
+ Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings: instance GHC.Show.Show Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings.ResolvedAppAccessSettingsGetSettings
+ Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings.ResolvedAppAccessSettingsGetSettings
+ Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings: resolvedAppAccessSettingsGetSettings :: ResolvedAppAccessSettingsGetSettings
+ Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings: type ResolvedAppAccessSettingsGetSettingsResource = "admin" :> "directory" :> "v1" :> "resolvedappaccesssettings" :> QueryParam "alt" AltJSON :> Get '[JSON] AppAccessCollections
+ Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps: data ResolvedAppAccessSettingsListTrustedApps
+ Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps: instance Data.Data.Data Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps.ResolvedAppAccessSettingsListTrustedApps
+ Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps: instance GHC.Classes.Eq Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps.ResolvedAppAccessSettingsListTrustedApps
+ Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps: instance GHC.Generics.Generic Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps.ResolvedAppAccessSettingsListTrustedApps
+ Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps: instance GHC.Show.Show Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps.ResolvedAppAccessSettingsListTrustedApps
+ Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps.ResolvedAppAccessSettingsListTrustedApps
+ Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps: resolvedAppAccessSettingsListTrustedApps :: ResolvedAppAccessSettingsListTrustedApps
+ Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps: type ResolvedAppAccessSettingsListTrustedAppsResource = "admin" :> "directory" :> "v1" :> "trustedapps" :> QueryParam "alt" AltJSON :> Get '[JSON] TrustedApps
+ Network.Google.Resource.Directory.Resources.Buildings.Delete: data ResourcesBuildingsDelete
+ Network.Google.Resource.Directory.Resources.Buildings.Delete: instance Data.Data.Data Network.Google.Resource.Directory.Resources.Buildings.Delete.ResourcesBuildingsDelete
+ Network.Google.Resource.Directory.Resources.Buildings.Delete: instance GHC.Classes.Eq Network.Google.Resource.Directory.Resources.Buildings.Delete.ResourcesBuildingsDelete
+ Network.Google.Resource.Directory.Resources.Buildings.Delete: instance GHC.Generics.Generic Network.Google.Resource.Directory.Resources.Buildings.Delete.ResourcesBuildingsDelete
+ Network.Google.Resource.Directory.Resources.Buildings.Delete: instance GHC.Show.Show Network.Google.Resource.Directory.Resources.Buildings.Delete.ResourcesBuildingsDelete
+ Network.Google.Resource.Directory.Resources.Buildings.Delete: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.Resources.Buildings.Delete.ResourcesBuildingsDelete
+ Network.Google.Resource.Directory.Resources.Buildings.Delete: rbdBuildingId :: Lens' ResourcesBuildingsDelete Text
+ Network.Google.Resource.Directory.Resources.Buildings.Delete: rbdCustomer :: Lens' ResourcesBuildingsDelete Text
+ Network.Google.Resource.Directory.Resources.Buildings.Delete: resourcesBuildingsDelete :: Text -> Text -> ResourcesBuildingsDelete
+ Network.Google.Resource.Directory.Resources.Buildings.Delete: type ResourcesBuildingsDeleteResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "buildings" :> Capture "buildingId" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
+ Network.Google.Resource.Directory.Resources.Buildings.Get: data ResourcesBuildingsGet
+ Network.Google.Resource.Directory.Resources.Buildings.Get: instance Data.Data.Data Network.Google.Resource.Directory.Resources.Buildings.Get.ResourcesBuildingsGet
+ Network.Google.Resource.Directory.Resources.Buildings.Get: instance GHC.Classes.Eq Network.Google.Resource.Directory.Resources.Buildings.Get.ResourcesBuildingsGet
+ Network.Google.Resource.Directory.Resources.Buildings.Get: instance GHC.Generics.Generic Network.Google.Resource.Directory.Resources.Buildings.Get.ResourcesBuildingsGet
+ Network.Google.Resource.Directory.Resources.Buildings.Get: instance GHC.Show.Show Network.Google.Resource.Directory.Resources.Buildings.Get.ResourcesBuildingsGet
+ Network.Google.Resource.Directory.Resources.Buildings.Get: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.Resources.Buildings.Get.ResourcesBuildingsGet
+ Network.Google.Resource.Directory.Resources.Buildings.Get: rbgBuildingId :: Lens' ResourcesBuildingsGet Text
+ Network.Google.Resource.Directory.Resources.Buildings.Get: rbgCustomer :: Lens' ResourcesBuildingsGet Text
+ Network.Google.Resource.Directory.Resources.Buildings.Get: resourcesBuildingsGet :: Text -> Text -> ResourcesBuildingsGet
+ Network.Google.Resource.Directory.Resources.Buildings.Get: type ResourcesBuildingsGetResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "buildings" :> Capture "buildingId" Text :> QueryParam "alt" AltJSON :> Get '[JSON] Building
+ Network.Google.Resource.Directory.Resources.Buildings.Insert: data ResourcesBuildingsInsert
+ Network.Google.Resource.Directory.Resources.Buildings.Insert: instance Data.Data.Data Network.Google.Resource.Directory.Resources.Buildings.Insert.ResourcesBuildingsInsert
+ Network.Google.Resource.Directory.Resources.Buildings.Insert: instance GHC.Classes.Eq Network.Google.Resource.Directory.Resources.Buildings.Insert.ResourcesBuildingsInsert
+ Network.Google.Resource.Directory.Resources.Buildings.Insert: instance GHC.Generics.Generic Network.Google.Resource.Directory.Resources.Buildings.Insert.ResourcesBuildingsInsert
+ Network.Google.Resource.Directory.Resources.Buildings.Insert: instance GHC.Show.Show Network.Google.Resource.Directory.Resources.Buildings.Insert.ResourcesBuildingsInsert
+ Network.Google.Resource.Directory.Resources.Buildings.Insert: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.Resources.Buildings.Insert.ResourcesBuildingsInsert
+ Network.Google.Resource.Directory.Resources.Buildings.Insert: rbiCustomer :: Lens' ResourcesBuildingsInsert Text
+ Network.Google.Resource.Directory.Resources.Buildings.Insert: rbiPayload :: Lens' ResourcesBuildingsInsert Building
+ Network.Google.Resource.Directory.Resources.Buildings.Insert: resourcesBuildingsInsert :: Building -> Text -> ResourcesBuildingsInsert
+ 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.List: data ResourcesBuildingsList
+ Network.Google.Resource.Directory.Resources.Buildings.List: instance Data.Data.Data Network.Google.Resource.Directory.Resources.Buildings.List.ResourcesBuildingsList
+ Network.Google.Resource.Directory.Resources.Buildings.List: instance GHC.Classes.Eq Network.Google.Resource.Directory.Resources.Buildings.List.ResourcesBuildingsList
+ Network.Google.Resource.Directory.Resources.Buildings.List: instance GHC.Generics.Generic Network.Google.Resource.Directory.Resources.Buildings.List.ResourcesBuildingsList
+ Network.Google.Resource.Directory.Resources.Buildings.List: instance GHC.Show.Show Network.Google.Resource.Directory.Resources.Buildings.List.ResourcesBuildingsList
+ Network.Google.Resource.Directory.Resources.Buildings.List: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.Resources.Buildings.List.ResourcesBuildingsList
+ Network.Google.Resource.Directory.Resources.Buildings.List: rblCustomer :: Lens' ResourcesBuildingsList Text
+ Network.Google.Resource.Directory.Resources.Buildings.List: rblMaxResults :: Lens' ResourcesBuildingsList (Maybe Int32)
+ Network.Google.Resource.Directory.Resources.Buildings.List: rblPageToken :: Lens' ResourcesBuildingsList (Maybe Text)
+ Network.Google.Resource.Directory.Resources.Buildings.List: resourcesBuildingsList :: Text -> ResourcesBuildingsList
+ Network.Google.Resource.Directory.Resources.Buildings.List: type ResourcesBuildingsListResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "buildings" :> QueryParam "pageToken" Text :> QueryParam "maxResults" (Textual Int32) :> QueryParam "alt" AltJSON :> Get '[JSON] Buildings
+ Network.Google.Resource.Directory.Resources.Buildings.Patch: data ResourcesBuildingsPatch
+ Network.Google.Resource.Directory.Resources.Buildings.Patch: instance Data.Data.Data Network.Google.Resource.Directory.Resources.Buildings.Patch.ResourcesBuildingsPatch
+ Network.Google.Resource.Directory.Resources.Buildings.Patch: instance GHC.Classes.Eq Network.Google.Resource.Directory.Resources.Buildings.Patch.ResourcesBuildingsPatch
+ Network.Google.Resource.Directory.Resources.Buildings.Patch: instance GHC.Generics.Generic Network.Google.Resource.Directory.Resources.Buildings.Patch.ResourcesBuildingsPatch
+ Network.Google.Resource.Directory.Resources.Buildings.Patch: instance GHC.Show.Show Network.Google.Resource.Directory.Resources.Buildings.Patch.ResourcesBuildingsPatch
+ Network.Google.Resource.Directory.Resources.Buildings.Patch: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.Resources.Buildings.Patch.ResourcesBuildingsPatch
+ Network.Google.Resource.Directory.Resources.Buildings.Patch: rbpBuildingId :: Lens' ResourcesBuildingsPatch Text
+ Network.Google.Resource.Directory.Resources.Buildings.Patch: rbpCustomer :: Lens' ResourcesBuildingsPatch Text
+ Network.Google.Resource.Directory.Resources.Buildings.Patch: rbpPayload :: Lens' ResourcesBuildingsPatch Building
+ Network.Google.Resource.Directory.Resources.Buildings.Patch: resourcesBuildingsPatch :: Text -> Building -> Text -> ResourcesBuildingsPatch
+ 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.Update: data ResourcesBuildingsUpdate
+ Network.Google.Resource.Directory.Resources.Buildings.Update: instance Data.Data.Data Network.Google.Resource.Directory.Resources.Buildings.Update.ResourcesBuildingsUpdate
+ Network.Google.Resource.Directory.Resources.Buildings.Update: instance GHC.Classes.Eq Network.Google.Resource.Directory.Resources.Buildings.Update.ResourcesBuildingsUpdate
+ Network.Google.Resource.Directory.Resources.Buildings.Update: instance GHC.Generics.Generic Network.Google.Resource.Directory.Resources.Buildings.Update.ResourcesBuildingsUpdate
+ Network.Google.Resource.Directory.Resources.Buildings.Update: instance GHC.Show.Show Network.Google.Resource.Directory.Resources.Buildings.Update.ResourcesBuildingsUpdate
+ Network.Google.Resource.Directory.Resources.Buildings.Update: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.Resources.Buildings.Update.ResourcesBuildingsUpdate
+ Network.Google.Resource.Directory.Resources.Buildings.Update: rbuBuildingId :: Lens' ResourcesBuildingsUpdate Text
+ Network.Google.Resource.Directory.Resources.Buildings.Update: rbuCustomer :: Lens' ResourcesBuildingsUpdate Text
+ Network.Google.Resource.Directory.Resources.Buildings.Update: rbuPayload :: Lens' ResourcesBuildingsUpdate Building
+ Network.Google.Resource.Directory.Resources.Buildings.Update: resourcesBuildingsUpdate :: Text -> Building -> Text -> ResourcesBuildingsUpdate
+ 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.Calendars.List: rclOrderBy :: Lens' ResourcesCalendarsList (Maybe Text)
+ Network.Google.Resource.Directory.Resources.Calendars.List: rclQuery :: Lens' ResourcesCalendarsList (Maybe Text)
+ Network.Google.Resource.Directory.Resources.Features.Delete: data ResourcesFeaturesDelete
+ Network.Google.Resource.Directory.Resources.Features.Delete: instance Data.Data.Data Network.Google.Resource.Directory.Resources.Features.Delete.ResourcesFeaturesDelete
+ Network.Google.Resource.Directory.Resources.Features.Delete: instance GHC.Classes.Eq Network.Google.Resource.Directory.Resources.Features.Delete.ResourcesFeaturesDelete
+ Network.Google.Resource.Directory.Resources.Features.Delete: instance GHC.Generics.Generic Network.Google.Resource.Directory.Resources.Features.Delete.ResourcesFeaturesDelete
+ Network.Google.Resource.Directory.Resources.Features.Delete: instance GHC.Show.Show Network.Google.Resource.Directory.Resources.Features.Delete.ResourcesFeaturesDelete
+ Network.Google.Resource.Directory.Resources.Features.Delete: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.Resources.Features.Delete.ResourcesFeaturesDelete
+ Network.Google.Resource.Directory.Resources.Features.Delete: resourcesFeaturesDelete :: Text -> Text -> ResourcesFeaturesDelete
+ Network.Google.Resource.Directory.Resources.Features.Delete: rfdCustomer :: Lens' ResourcesFeaturesDelete Text
+ Network.Google.Resource.Directory.Resources.Features.Delete: rfdFeatureKey :: Lens' ResourcesFeaturesDelete Text
+ Network.Google.Resource.Directory.Resources.Features.Delete: type ResourcesFeaturesDeleteResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "features" :> Capture "featureKey" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
+ Network.Google.Resource.Directory.Resources.Features.Get: data ResourcesFeaturesGet
+ Network.Google.Resource.Directory.Resources.Features.Get: instance Data.Data.Data Network.Google.Resource.Directory.Resources.Features.Get.ResourcesFeaturesGet
+ Network.Google.Resource.Directory.Resources.Features.Get: instance GHC.Classes.Eq Network.Google.Resource.Directory.Resources.Features.Get.ResourcesFeaturesGet
+ Network.Google.Resource.Directory.Resources.Features.Get: instance GHC.Generics.Generic Network.Google.Resource.Directory.Resources.Features.Get.ResourcesFeaturesGet
+ Network.Google.Resource.Directory.Resources.Features.Get: instance GHC.Show.Show Network.Google.Resource.Directory.Resources.Features.Get.ResourcesFeaturesGet
+ Network.Google.Resource.Directory.Resources.Features.Get: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.Resources.Features.Get.ResourcesFeaturesGet
+ Network.Google.Resource.Directory.Resources.Features.Get: resourcesFeaturesGet :: Text -> Text -> ResourcesFeaturesGet
+ Network.Google.Resource.Directory.Resources.Features.Get: rfgCustomer :: Lens' ResourcesFeaturesGet Text
+ Network.Google.Resource.Directory.Resources.Features.Get: rfgFeatureKey :: Lens' ResourcesFeaturesGet Text
+ Network.Google.Resource.Directory.Resources.Features.Get: type ResourcesFeaturesGetResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "features" :> Capture "featureKey" Text :> QueryParam "alt" AltJSON :> Get '[JSON] Feature
+ Network.Google.Resource.Directory.Resources.Features.Insert: data ResourcesFeaturesInsert
+ Network.Google.Resource.Directory.Resources.Features.Insert: instance Data.Data.Data Network.Google.Resource.Directory.Resources.Features.Insert.ResourcesFeaturesInsert
+ Network.Google.Resource.Directory.Resources.Features.Insert: instance GHC.Classes.Eq Network.Google.Resource.Directory.Resources.Features.Insert.ResourcesFeaturesInsert
+ Network.Google.Resource.Directory.Resources.Features.Insert: instance GHC.Generics.Generic Network.Google.Resource.Directory.Resources.Features.Insert.ResourcesFeaturesInsert
+ Network.Google.Resource.Directory.Resources.Features.Insert: instance GHC.Show.Show Network.Google.Resource.Directory.Resources.Features.Insert.ResourcesFeaturesInsert
+ Network.Google.Resource.Directory.Resources.Features.Insert: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.Resources.Features.Insert.ResourcesFeaturesInsert
+ Network.Google.Resource.Directory.Resources.Features.Insert: resourcesFeaturesInsert :: Feature -> Text -> ResourcesFeaturesInsert
+ Network.Google.Resource.Directory.Resources.Features.Insert: rfiCustomer :: Lens' ResourcesFeaturesInsert Text
+ Network.Google.Resource.Directory.Resources.Features.Insert: rfiPayload :: Lens' ResourcesFeaturesInsert Feature
+ Network.Google.Resource.Directory.Resources.Features.Insert: type ResourcesFeaturesInsertResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "features" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Feature :> Post '[JSON] Feature
+ Network.Google.Resource.Directory.Resources.Features.List: data ResourcesFeaturesList
+ Network.Google.Resource.Directory.Resources.Features.List: instance Data.Data.Data Network.Google.Resource.Directory.Resources.Features.List.ResourcesFeaturesList
+ Network.Google.Resource.Directory.Resources.Features.List: instance GHC.Classes.Eq Network.Google.Resource.Directory.Resources.Features.List.ResourcesFeaturesList
+ Network.Google.Resource.Directory.Resources.Features.List: instance GHC.Generics.Generic Network.Google.Resource.Directory.Resources.Features.List.ResourcesFeaturesList
+ Network.Google.Resource.Directory.Resources.Features.List: instance GHC.Show.Show Network.Google.Resource.Directory.Resources.Features.List.ResourcesFeaturesList
+ Network.Google.Resource.Directory.Resources.Features.List: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.Resources.Features.List.ResourcesFeaturesList
+ Network.Google.Resource.Directory.Resources.Features.List: resourcesFeaturesList :: Text -> ResourcesFeaturesList
+ Network.Google.Resource.Directory.Resources.Features.List: rflCustomer :: Lens' ResourcesFeaturesList Text
+ Network.Google.Resource.Directory.Resources.Features.List: rflMaxResults :: Lens' ResourcesFeaturesList (Maybe Int32)
+ Network.Google.Resource.Directory.Resources.Features.List: rflPageToken :: Lens' ResourcesFeaturesList (Maybe Text)
+ Network.Google.Resource.Directory.Resources.Features.List: type ResourcesFeaturesListResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "features" :> QueryParam "pageToken" Text :> QueryParam "maxResults" (Textual Int32) :> QueryParam "alt" AltJSON :> Get '[JSON] Features
+ Network.Google.Resource.Directory.Resources.Features.Patch: data ResourcesFeaturesPatch
+ Network.Google.Resource.Directory.Resources.Features.Patch: instance Data.Data.Data Network.Google.Resource.Directory.Resources.Features.Patch.ResourcesFeaturesPatch
+ Network.Google.Resource.Directory.Resources.Features.Patch: instance GHC.Classes.Eq Network.Google.Resource.Directory.Resources.Features.Patch.ResourcesFeaturesPatch
+ Network.Google.Resource.Directory.Resources.Features.Patch: instance GHC.Generics.Generic Network.Google.Resource.Directory.Resources.Features.Patch.ResourcesFeaturesPatch
+ Network.Google.Resource.Directory.Resources.Features.Patch: instance GHC.Show.Show Network.Google.Resource.Directory.Resources.Features.Patch.ResourcesFeaturesPatch
+ Network.Google.Resource.Directory.Resources.Features.Patch: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.Resources.Features.Patch.ResourcesFeaturesPatch
+ Network.Google.Resource.Directory.Resources.Features.Patch: resourcesFeaturesPatch :: Feature -> Text -> Text -> ResourcesFeaturesPatch
+ Network.Google.Resource.Directory.Resources.Features.Patch: rfpCustomer :: Lens' ResourcesFeaturesPatch Text
+ Network.Google.Resource.Directory.Resources.Features.Patch: rfpFeatureKey :: Lens' ResourcesFeaturesPatch Text
+ Network.Google.Resource.Directory.Resources.Features.Patch: rfpPayload :: Lens' ResourcesFeaturesPatch Feature
+ Network.Google.Resource.Directory.Resources.Features.Patch: type ResourcesFeaturesPatchResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "features" :> Capture "featureKey" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Feature :> Patch '[JSON] Feature
+ Network.Google.Resource.Directory.Resources.Features.Rename: data ResourcesFeaturesRename
+ Network.Google.Resource.Directory.Resources.Features.Rename: instance Data.Data.Data Network.Google.Resource.Directory.Resources.Features.Rename.ResourcesFeaturesRename
+ Network.Google.Resource.Directory.Resources.Features.Rename: instance GHC.Classes.Eq Network.Google.Resource.Directory.Resources.Features.Rename.ResourcesFeaturesRename
+ Network.Google.Resource.Directory.Resources.Features.Rename: instance GHC.Generics.Generic Network.Google.Resource.Directory.Resources.Features.Rename.ResourcesFeaturesRename
+ Network.Google.Resource.Directory.Resources.Features.Rename: instance GHC.Show.Show Network.Google.Resource.Directory.Resources.Features.Rename.ResourcesFeaturesRename
+ Network.Google.Resource.Directory.Resources.Features.Rename: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.Resources.Features.Rename.ResourcesFeaturesRename
+ Network.Google.Resource.Directory.Resources.Features.Rename: resourcesFeaturesRename :: FeatureRename -> Text -> Text -> ResourcesFeaturesRename
+ Network.Google.Resource.Directory.Resources.Features.Rename: rfrCustomer :: Lens' ResourcesFeaturesRename Text
+ Network.Google.Resource.Directory.Resources.Features.Rename: rfrOldName :: Lens' ResourcesFeaturesRename Text
+ Network.Google.Resource.Directory.Resources.Features.Rename: rfrPayload :: Lens' ResourcesFeaturesRename FeatureRename
+ Network.Google.Resource.Directory.Resources.Features.Rename: type ResourcesFeaturesRenameResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "features" :> Capture "oldName" Text :> "rename" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] FeatureRename :> Post '[JSON] ()
+ Network.Google.Resource.Directory.Resources.Features.Update: data ResourcesFeaturesUpdate
+ Network.Google.Resource.Directory.Resources.Features.Update: instance Data.Data.Data Network.Google.Resource.Directory.Resources.Features.Update.ResourcesFeaturesUpdate
+ Network.Google.Resource.Directory.Resources.Features.Update: instance GHC.Classes.Eq Network.Google.Resource.Directory.Resources.Features.Update.ResourcesFeaturesUpdate
+ Network.Google.Resource.Directory.Resources.Features.Update: instance GHC.Generics.Generic Network.Google.Resource.Directory.Resources.Features.Update.ResourcesFeaturesUpdate
+ Network.Google.Resource.Directory.Resources.Features.Update: instance GHC.Show.Show Network.Google.Resource.Directory.Resources.Features.Update.ResourcesFeaturesUpdate
+ Network.Google.Resource.Directory.Resources.Features.Update: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Directory.Resources.Features.Update.ResourcesFeaturesUpdate
+ Network.Google.Resource.Directory.Resources.Features.Update: resourcesFeaturesUpdate :: Feature -> Text -> Text -> ResourcesFeaturesUpdate
+ Network.Google.Resource.Directory.Resources.Features.Update: rfuCustomer :: Lens' ResourcesFeaturesUpdate Text
+ Network.Google.Resource.Directory.Resources.Features.Update: rfuFeatureKey :: Lens' ResourcesFeaturesUpdate Text
+ Network.Google.Resource.Directory.Resources.Features.Update: rfuPayload :: Lens' ResourcesFeaturesUpdate Feature
+ Network.Google.Resource.Directory.Resources.Features.Update: type ResourcesFeaturesUpdateResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "features" :> Capture "featureKey" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Feature :> Put '[JSON] Feature
- Network.Google.Directory: type DirectoryAPI = PrivilegesListResource :<|> (GroupsAliasesInsertResource :<|> (GroupsAliasesListResource :<|> (GroupsAliasesDeleteResource :<|> (GroupsInsertResource :<|> (GroupsListResource :<|> (GroupsPatchResource :<|> (GroupsGetResource :<|> (GroupsDeleteResource :<|> (GroupsUpdateResource :<|> (RoleAssignmentsInsertResource :<|> (RoleAssignmentsListResource :<|> (RoleAssignmentsGetResource :<|> (RoleAssignmentsDeleteResource :<|> (RolesInsertResource :<|> (RolesListResource :<|> (RolesPatchResource :<|> (RolesGetResource :<|> (RolesDeleteResource :<|> (RolesUpdateResource :<|> (CustomersPatchResource :<|> (CustomersGetResource :<|> (CustomersUpdateResource :<|> (UsersAliasesInsertResource :<|> (UsersAliasesListResource :<|> (UsersAliasesDeleteResource :<|> (UsersAliasesWatchResource :<|> (UsersPhotosPatchResource :<|> (UsersPhotosGetResource :<|> (UsersPhotosDeleteResource :<|> (UsersPhotosUpdateResource :<|> (UsersInsertResource :<|> (UsersListResource :<|> (UsersUndeleteResource :<|> (UsersPatchResource :<|> (UsersGetResource :<|> (UsersMakeAdminResource :<|> (UsersDeleteResource :<|> (UsersUpdateResource :<|> (UsersWatchResource :<|> (SchemasInsertResource :<|> (SchemasListResource :<|> (SchemasPatchResource :<|> (SchemasGetResource :<|> (SchemasDeleteResource :<|> (SchemasUpdateResource :<|> (TokensListResource :<|> (TokensGetResource :<|> (TokensDeleteResource :<|> (DomainAliasesInsertResource :<|> (DomainAliasesListResource :<|> (DomainAliasesGetResource :<|> (DomainAliasesDeleteResource :<|> (ChannelsStopResource :<|> (MembersInsertResource :<|> (MembersListResource :<|> (MembersPatchResource :<|> (MembersGetResource :<|> (MembersDeleteResource :<|> (MembersUpdateResource :<|> (MobileDevicesListResource :<|> (MobileDevicesGetResource :<|> (MobileDevicesActionResource :<|> (MobileDevicesDeleteResource :<|> (ResourcesCalendarsInsertResource :<|> (ResourcesCalendarsListResource :<|> (ResourcesCalendarsPatchResource :<|> (ResourcesCalendarsGetResource :<|> (ResourcesCalendarsDeleteResource :<|> (ResourcesCalendarsUpdateResource :<|> (OrgUnitsInsertResource :<|> (OrgUnitsListResource :<|> (OrgUnitsPatchResource :<|> (OrgUnitsGetResource :<|> (OrgUnitsDeleteResource :<|> (OrgUnitsUpdateResource :<|> (VerificationCodesListResource :<|> (VerificationCodesGenerateResource :<|> (VerificationCodesInvalidateResource :<|> (DomainsInsertResource :<|> (DomainsListResource :<|> (DomainsGetResource :<|> (DomainsDeleteResource :<|> (NotificationsListResource :<|> (NotificationsPatchResource :<|> (NotificationsGetResource :<|> (NotificationsDeleteResource :<|> (NotificationsUpdateResource :<|> (ChromeosDevicesListResource :<|> (ChromeosDevicesPatchResource :<|> (ChromeosDevicesGetResource :<|> (ChromeosDevicesActionResource :<|> (ChromeosDevicesUpdateResource :<|> (AspsListResource :<|> (AspsGetResource :<|> AspsDeleteResource))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+ Network.Google.Directory: type DirectoryAPI = PrivilegesListResource :<|> GroupsAliasesInsertResource :<|> GroupsAliasesListResource :<|> GroupsAliasesDeleteResource :<|> GroupsInsertResource :<|> GroupsListResource :<|> GroupsPatchResource :<|> GroupsGetResource :<|> GroupsDeleteResource :<|> GroupsUpdateResource :<|> RoleAssignmentsInsertResource :<|> RoleAssignmentsListResource :<|> RoleAssignmentsGetResource :<|> RoleAssignmentsDeleteResource :<|> RolesInsertResource :<|> RolesListResource :<|> RolesPatchResource :<|> RolesGetResource :<|> RolesDeleteResource :<|> RolesUpdateResource :<|> CustomersPatchResource :<|> CustomersGetResource :<|> CustomersUpdateResource :<|> UsersAliasesInsertResource :<|> UsersAliasesListResource :<|> UsersAliasesDeleteResource :<|> UsersAliasesWatchResource :<|> UsersPhotosPatchResource :<|> UsersPhotosGetResource :<|> UsersPhotosDeleteResource :<|> UsersPhotosUpdateResource :<|> UsersInsertResource :<|> UsersListResource :<|> UsersUndeleteResource :<|> UsersPatchResource :<|> UsersGetResource :<|> UsersMakeAdminResource :<|> UsersDeleteResource :<|> UsersUpdateResource :<|> UsersWatchResource :<|> SchemasInsertResource :<|> SchemasListResource :<|> SchemasPatchResource :<|> SchemasGetResource :<|> SchemasDeleteResource :<|> SchemasUpdateResource :<|> ResolvedAppAccessSettingsListTrustedAppsResource :<|> ResolvedAppAccessSettingsGetSettingsResource :<|> TokensListResource :<|> TokensGetResource :<|> TokensDeleteResource :<|> DomainAliasesInsertResource :<|> DomainAliasesListResource :<|> DomainAliasesGetResource :<|> DomainAliasesDeleteResource :<|> ChannelsStopResource :<|> MembersInsertResource :<|> MembersListResource :<|> MembersHasMemberResource :<|> MembersPatchResource :<|> MembersGetResource :<|> MembersDeleteResource :<|> MembersUpdateResource :<|> MobileDevicesListResource :<|> MobileDevicesGetResource :<|> MobileDevicesActionResource :<|> MobileDevicesDeleteResource :<|> ResourcesBuildingsInsertResource :<|> ResourcesBuildingsListResource :<|> ResourcesBuildingsPatchResource :<|> ResourcesBuildingsGetResource :<|> ResourcesBuildingsDeleteResource :<|> ResourcesBuildingsUpdateResource :<|> ResourcesCalendarsInsertResource :<|> ResourcesCalendarsListResource :<|> ResourcesCalendarsPatchResource :<|> ResourcesCalendarsGetResource :<|> ResourcesCalendarsDeleteResource :<|> ResourcesCalendarsUpdateResource :<|> ResourcesFeaturesInsertResource :<|> ResourcesFeaturesListResource :<|> ResourcesFeaturesPatchResource :<|> ResourcesFeaturesGetResource :<|> ResourcesFeaturesRenameResource :<|> ResourcesFeaturesDeleteResource :<|> ResourcesFeaturesUpdateResource :<|> OrgUnitsInsertResource :<|> OrgUnitsListResource :<|> OrgUnitsPatchResource :<|> OrgUnitsGetResource :<|> OrgUnitsDeleteResource :<|> OrgUnitsUpdateResource :<|> VerificationCodesListResource :<|> VerificationCodesGenerateResource :<|> VerificationCodesInvalidateResource :<|> DomainsInsertResource :<|> DomainsListResource :<|> DomainsGetResource :<|> DomainsDeleteResource :<|> NotificationsListResource :<|> NotificationsPatchResource :<|> NotificationsGetResource :<|> NotificationsDeleteResource :<|> NotificationsUpdateResource :<|> ChromeosDevicesListResource :<|> ChromeosDevicesMoveDevicesToOuResource :<|> ChromeosDevicesPatchResource :<|> ChromeosDevicesGetResource :<|> ChromeosDevicesActionResource :<|> ChromeosDevicesUpdateResource :<|> AspsListResource :<|> AspsGetResource :<|> AspsDeleteResource
- Network.Google.Resource.Admin.Channels.Stop: type ChannelsStopResource = "admin" :> ("directory" :> ("v1" :> ("admin" :> ("directory_v1" :> ("channels" :> ("stop" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Channel :> Post '[JSON] ()))))))))
+ Network.Google.Resource.Admin.Channels.Stop: type ChannelsStopResource = "admin" :> "directory" :> "v1" :> "admin" :> "directory_v1" :> "channels" :> "stop" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Channel :> Post '[JSON] ()
- Network.Google.Resource.Directory.Asps.Delete: type AspsDeleteResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("asps" :> (Capture "codeId" (Textual Int32) :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))
+ Network.Google.Resource.Directory.Asps.Delete: type AspsDeleteResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "asps" :> Capture "codeId" (Textual Int32) :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.Asps.Get: type AspsGetResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("asps" :> (Capture "codeId" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] Asp)))))))
+ Network.Google.Resource.Directory.Asps.Get: type AspsGetResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "asps" :> Capture "codeId" (Textual Int32) :> QueryParam "alt" AltJSON :> Get '[JSON] Asp
- Network.Google.Resource.Directory.Asps.List: type AspsListResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("asps" :> (QueryParam "alt" AltJSON :> Get '[JSON] Asps))))))
+ Network.Google.Resource.Directory.Asps.List: type AspsListResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "asps" :> QueryParam "alt" AltJSON :> Get '[JSON] Asps
- Network.Google.Resource.Directory.ChromeosDevices.Action: type ChromeosDevicesActionResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("devices" :> ("chromeos" :> (Capture "resourceId" Text :> ("action" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ChromeOSDeviceAction :> Post '[JSON] ()))))))))))
+ Network.Google.Resource.Directory.ChromeosDevices.Action: type ChromeosDevicesActionResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "devices" :> "chromeos" :> Capture "resourceId" Text :> "action" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] ChromeOSDeviceAction :> Post '[JSON] ()
- Network.Google.Resource.Directory.ChromeosDevices.Get: type ChromeosDevicesGetResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("devices" :> ("chromeos" :> (Capture "deviceId" Text :> (QueryParam "projection" ChromeosDevicesGetProjection :> (QueryParam "alt" AltJSON :> Get '[JSON] ChromeOSDevice)))))))))
+ Network.Google.Resource.Directory.ChromeosDevices.Get: type ChromeosDevicesGetResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "devices" :> "chromeos" :> Capture "deviceId" Text :> QueryParam "projection" ChromeosDevicesGetProjection :> QueryParam "alt" AltJSON :> Get '[JSON] ChromeOSDevice
- Network.Google.Resource.Directory.ChromeosDevices.List: type ChromeosDevicesListResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("devices" :> ("chromeos" :> (QueryParam "orderBy" ChromeosDevicesListOrderBy :> (QueryParam "sortOrder" ChromeosDevicesListSortOrder :> (QueryParam "query" Text :> (QueryParam "projection" ChromeosDevicesListProjection :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] ChromeOSDevices)))))))))))))
+ Network.Google.Resource.Directory.ChromeosDevices.List: type ChromeosDevicesListResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "devices" :> "chromeos" :> QueryParam "orderBy" ChromeosDevicesListOrderBy :> QueryParam "orgUnitPath" Text :> QueryParam "sortOrder" ChromeosDevicesListSortOrder :> QueryParam "query" Text :> QueryParam "projection" ChromeosDevicesListProjection :> QueryParam "pageToken" Text :> QueryParam "maxResults" (Textual Int32) :> QueryParam "alt" AltJSON :> Get '[JSON] ChromeOSDevices
- Network.Google.Resource.Directory.ChromeosDevices.Patch: type ChromeosDevicesPatchResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("devices" :> ("chromeos" :> (Capture "deviceId" Text :> (QueryParam "projection" ChromeosDevicesPatchProjection :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ChromeOSDevice :> Patch '[JSON] ChromeOSDevice))))))))))
+ Network.Google.Resource.Directory.ChromeosDevices.Patch: type ChromeosDevicesPatchResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "devices" :> "chromeos" :> Capture "deviceId" Text :> QueryParam "projection" ChromeosDevicesPatchProjection :> QueryParam "alt" AltJSON :> ReqBody '[JSON] ChromeOSDevice :> Patch '[JSON] ChromeOSDevice
- Network.Google.Resource.Directory.ChromeosDevices.Update: type ChromeosDevicesUpdateResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("devices" :> ("chromeos" :> (Capture "deviceId" Text :> (QueryParam "projection" ChromeosDevicesUpdateProjection :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ChromeOSDevice :> Put '[JSON] ChromeOSDevice))))))))))
+ Network.Google.Resource.Directory.ChromeosDevices.Update: type ChromeosDevicesUpdateResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "devices" :> "chromeos" :> Capture "deviceId" Text :> QueryParam "projection" ChromeosDevicesUpdateProjection :> QueryParam "alt" AltJSON :> ReqBody '[JSON] ChromeOSDevice :> Put '[JSON] ChromeOSDevice
- Network.Google.Resource.Directory.Customers.Get: type CustomersGetResource = "admin" :> ("directory" :> ("v1" :> ("customers" :> (Capture "customerKey" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Customer)))))
+ Network.Google.Resource.Directory.Customers.Get: type CustomersGetResource = "admin" :> "directory" :> "v1" :> "customers" :> Capture "customerKey" Text :> QueryParam "alt" AltJSON :> Get '[JSON] Customer
- Network.Google.Resource.Directory.Customers.Patch: type CustomersPatchResource = "admin" :> ("directory" :> ("v1" :> ("customers" :> (Capture "customerKey" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Customer :> Patch '[JSON] Customer))))))
+ Network.Google.Resource.Directory.Customers.Patch: type CustomersPatchResource = "admin" :> "directory" :> "v1" :> "customers" :> Capture "customerKey" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Customer :> Patch '[JSON] Customer
- Network.Google.Resource.Directory.Customers.Update: type CustomersUpdateResource = "admin" :> ("directory" :> ("v1" :> ("customers" :> (Capture "customerKey" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Customer :> Put '[JSON] Customer))))))
+ Network.Google.Resource.Directory.Customers.Update: type CustomersUpdateResource = "admin" :> "directory" :> "v1" :> "customers" :> Capture "customerKey" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Customer :> Put '[JSON] Customer
- Network.Google.Resource.Directory.DomainAliases.Delete: type DomainAliasesDeleteResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("domainaliases" :> (Capture "domainAliasName" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))
+ Network.Google.Resource.Directory.DomainAliases.Delete: type DomainAliasesDeleteResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "domainaliases" :> Capture "domainAliasName" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.DomainAliases.Get: type DomainAliasesGetResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("domainaliases" :> (Capture "domainAliasName" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] DomainAlias)))))))
+ Network.Google.Resource.Directory.DomainAliases.Get: type DomainAliasesGetResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "domainaliases" :> Capture "domainAliasName" Text :> QueryParam "alt" AltJSON :> Get '[JSON] DomainAlias
- Network.Google.Resource.Directory.DomainAliases.Insert: type DomainAliasesInsertResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("domainaliases" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DomainAlias :> Post '[JSON] DomainAlias)))))))
+ Network.Google.Resource.Directory.DomainAliases.Insert: type DomainAliasesInsertResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "domainaliases" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] DomainAlias :> Post '[JSON] DomainAlias
- Network.Google.Resource.Directory.DomainAliases.List: type DomainAliasesListResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("domainaliases" :> (QueryParam "parentDomainName" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] DomainAliases)))))))
+ Network.Google.Resource.Directory.DomainAliases.List: type DomainAliasesListResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "domainaliases" :> QueryParam "parentDomainName" Text :> QueryParam "alt" AltJSON :> Get '[JSON] DomainAliases
- Network.Google.Resource.Directory.Domains.Delete: type DomainsDeleteResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("domains" :> (Capture "domainName" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))
+ Network.Google.Resource.Directory.Domains.Delete: type DomainsDeleteResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "domains" :> Capture "domainName" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.Domains.Get: type DomainsGetResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("domains" :> (Capture "domainName" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Domains)))))))
+ Network.Google.Resource.Directory.Domains.Get: type DomainsGetResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "domains" :> Capture "domainName" Text :> QueryParam "alt" AltJSON :> Get '[JSON] Domains
- Network.Google.Resource.Directory.Domains.Insert: type DomainsInsertResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("domains" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Domains :> Post '[JSON] Domains)))))))
+ Network.Google.Resource.Directory.Domains.Insert: type DomainsInsertResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "domains" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Domains :> Post '[JSON] Domains
- Network.Google.Resource.Directory.Domains.List: type DomainsListResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("domains" :> (QueryParam "alt" AltJSON :> Get '[JSON] Domains2))))))
+ Network.Google.Resource.Directory.Domains.List: type DomainsListResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "domains" :> QueryParam "alt" AltJSON :> Get '[JSON] Domains2
- Network.Google.Resource.Directory.Groups.Aliases.Delete: type GroupsAliasesDeleteResource = "admin" :> ("directory" :> ("v1" :> ("groups" :> (Capture "groupKey" Text :> ("aliases" :> (Capture "alias" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))
+ Network.Google.Resource.Directory.Groups.Aliases.Delete: type GroupsAliasesDeleteResource = "admin" :> "directory" :> "v1" :> "groups" :> Capture "groupKey" Text :> "aliases" :> Capture "alias" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.Groups.Aliases.Insert: type GroupsAliasesInsertResource = "admin" :> ("directory" :> ("v1" :> ("groups" :> (Capture "groupKey" Text :> ("aliases" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Alias :> Post '[JSON] Alias)))))))
+ Network.Google.Resource.Directory.Groups.Aliases.Insert: type GroupsAliasesInsertResource = "admin" :> "directory" :> "v1" :> "groups" :> Capture "groupKey" Text :> "aliases" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Alias :> Post '[JSON] Alias
- Network.Google.Resource.Directory.Groups.Aliases.List: type GroupsAliasesListResource = "admin" :> ("directory" :> ("v1" :> ("groups" :> (Capture "groupKey" Text :> ("aliases" :> (QueryParam "alt" AltJSON :> Get '[JSON] Aliases))))))
+ Network.Google.Resource.Directory.Groups.Aliases.List: type GroupsAliasesListResource = "admin" :> "directory" :> "v1" :> "groups" :> Capture "groupKey" Text :> "aliases" :> QueryParam "alt" AltJSON :> Get '[JSON] Aliases
- Network.Google.Resource.Directory.Groups.Delete: type GroupsDeleteResource = "admin" :> ("directory" :> ("v1" :> ("groups" :> (Capture "groupKey" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))
+ Network.Google.Resource.Directory.Groups.Delete: type GroupsDeleteResource = "admin" :> "directory" :> "v1" :> "groups" :> Capture "groupKey" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.Groups.Get: type GroupsGetResource = "admin" :> ("directory" :> ("v1" :> ("groups" :> (Capture "groupKey" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Group)))))
+ Network.Google.Resource.Directory.Groups.Get: type GroupsGetResource = "admin" :> "directory" :> "v1" :> "groups" :> Capture "groupKey" Text :> QueryParam "alt" AltJSON :> Get '[JSON] Group
- Network.Google.Resource.Directory.Groups.Insert: type GroupsInsertResource = "admin" :> ("directory" :> ("v1" :> ("groups" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Group :> Post '[JSON] Group)))))
+ Network.Google.Resource.Directory.Groups.Insert: type GroupsInsertResource = "admin" :> "directory" :> "v1" :> "groups" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Group :> Post '[JSON] Group
- Network.Google.Resource.Directory.Groups.List: type GroupsListResource = "admin" :> ("directory" :> ("v1" :> ("groups" :> (QueryParam "domain" Text :> (QueryParam "customer" Text :> (QueryParam "pageToken" Text :> (QueryParam "userKey" Text :> (QueryParam "maxResults" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] Groups)))))))))
+ Network.Google.Resource.Directory.Groups.List: type GroupsListResource = "admin" :> "directory" :> "v1" :> "groups" :> QueryParam "orderBy" GroupsListOrderBy :> QueryParam "domain" Text :> QueryParam "sortOrder" GroupsListSortOrder :> QueryParam "customer" Text :> QueryParam "query" Text :> QueryParam "pageToken" Text :> QueryParam "userKey" Text :> QueryParam "maxResults" (Textual Int32) :> QueryParam "alt" AltJSON :> Get '[JSON] Groups
- Network.Google.Resource.Directory.Groups.Patch: type GroupsPatchResource = "admin" :> ("directory" :> ("v1" :> ("groups" :> (Capture "groupKey" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Group :> Patch '[JSON] Group))))))
+ Network.Google.Resource.Directory.Groups.Patch: type GroupsPatchResource = "admin" :> "directory" :> "v1" :> "groups" :> Capture "groupKey" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Group :> Patch '[JSON] Group
- Network.Google.Resource.Directory.Groups.Update: type GroupsUpdateResource = "admin" :> ("directory" :> ("v1" :> ("groups" :> (Capture "groupKey" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Group :> Put '[JSON] Group))))))
+ Network.Google.Resource.Directory.Groups.Update: type GroupsUpdateResource = "admin" :> "directory" :> "v1" :> "groups" :> Capture "groupKey" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Group :> Put '[JSON] Group
- Network.Google.Resource.Directory.Members.Delete: type MembersDeleteResource = "admin" :> ("directory" :> ("v1" :> ("groups" :> (Capture "groupKey" Text :> ("members" :> (Capture "memberKey" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))
+ Network.Google.Resource.Directory.Members.Delete: type MembersDeleteResource = "admin" :> "directory" :> "v1" :> "groups" :> Capture "groupKey" Text :> "members" :> Capture "memberKey" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.Members.Get: type MembersGetResource = "admin" :> ("directory" :> ("v1" :> ("groups" :> (Capture "groupKey" Text :> ("members" :> (Capture "memberKey" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Member)))))))
+ Network.Google.Resource.Directory.Members.Get: type MembersGetResource = "admin" :> "directory" :> "v1" :> "groups" :> Capture "groupKey" Text :> "members" :> Capture "memberKey" Text :> QueryParam "alt" AltJSON :> Get '[JSON] Member
- Network.Google.Resource.Directory.Members.Insert: type MembersInsertResource = "admin" :> ("directory" :> ("v1" :> ("groups" :> (Capture "groupKey" Text :> ("members" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Member :> Post '[JSON] Member)))))))
+ Network.Google.Resource.Directory.Members.Insert: type MembersInsertResource = "admin" :> "directory" :> "v1" :> "groups" :> Capture "groupKey" Text :> "members" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Member :> Post '[JSON] Member
- Network.Google.Resource.Directory.Members.List: type MembersListResource = "admin" :> ("directory" :> ("v1" :> ("groups" :> (Capture "groupKey" Text :> ("members" :> (QueryParam "roles" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] Members)))))))))
+ Network.Google.Resource.Directory.Members.List: type MembersListResource = "admin" :> "directory" :> "v1" :> "groups" :> Capture "groupKey" Text :> "members" :> QueryParam "roles" Text :> QueryParam "pageToken" Text :> QueryParam "includeDerivedMembership" Bool :> QueryParam "maxResults" (Textual Int32) :> QueryParam "alt" AltJSON :> Get '[JSON] Members
- Network.Google.Resource.Directory.Members.Patch: type MembersPatchResource = "admin" :> ("directory" :> ("v1" :> ("groups" :> (Capture "groupKey" Text :> ("members" :> (Capture "memberKey" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Member :> Patch '[JSON] Member))))))))
+ Network.Google.Resource.Directory.Members.Patch: type MembersPatchResource = "admin" :> "directory" :> "v1" :> "groups" :> Capture "groupKey" Text :> "members" :> Capture "memberKey" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Member :> Patch '[JSON] Member
- Network.Google.Resource.Directory.Members.Update: type MembersUpdateResource = "admin" :> ("directory" :> ("v1" :> ("groups" :> (Capture "groupKey" Text :> ("members" :> (Capture "memberKey" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Member :> Put '[JSON] Member))))))))
+ Network.Google.Resource.Directory.Members.Update: type MembersUpdateResource = "admin" :> "directory" :> "v1" :> "groups" :> Capture "groupKey" Text :> "members" :> Capture "memberKey" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Member :> Put '[JSON] Member
- Network.Google.Resource.Directory.MobileDevices.Action: type MobileDevicesActionResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("devices" :> ("mobile" :> (Capture "resourceId" Text :> ("action" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] MobileDeviceAction :> Post '[JSON] ()))))))))))
+ Network.Google.Resource.Directory.MobileDevices.Action: type MobileDevicesActionResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "devices" :> "mobile" :> Capture "resourceId" Text :> "action" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] MobileDeviceAction :> Post '[JSON] ()
- Network.Google.Resource.Directory.MobileDevices.Delete: type MobileDevicesDeleteResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("devices" :> ("mobile" :> (Capture "resourceId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))))
+ Network.Google.Resource.Directory.MobileDevices.Delete: type MobileDevicesDeleteResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "devices" :> "mobile" :> Capture "resourceId" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.MobileDevices.Get: type MobileDevicesGetResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("devices" :> ("mobile" :> (Capture "resourceId" Text :> (QueryParam "projection" MobileDevicesGetProjection :> (QueryParam "alt" AltJSON :> Get '[JSON] MobileDevice)))))))))
+ Network.Google.Resource.Directory.MobileDevices.Get: type MobileDevicesGetResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "devices" :> "mobile" :> Capture "resourceId" Text :> QueryParam "projection" MobileDevicesGetProjection :> QueryParam "alt" AltJSON :> Get '[JSON] MobileDevice
- Network.Google.Resource.Directory.MobileDevices.List: type MobileDevicesListResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("devices" :> ("mobile" :> (QueryParam "orderBy" MobileDevicesListOrderBy :> (QueryParam "sortOrder" MobileDevicesListSortOrder :> (QueryParam "query" Text :> (QueryParam "projection" MobileDevicesListProjection :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] MobileDevices)))))))))))))
+ Network.Google.Resource.Directory.MobileDevices.List: type MobileDevicesListResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "devices" :> "mobile" :> QueryParam "orderBy" MobileDevicesListOrderBy :> QueryParam "sortOrder" MobileDevicesListSortOrder :> QueryParam "query" Text :> QueryParam "projection" MobileDevicesListProjection :> QueryParam "pageToken" Text :> QueryParam "maxResults" (Textual Int32) :> QueryParam "alt" AltJSON :> Get '[JSON] MobileDevices
- Network.Google.Resource.Directory.Notifications.Delete: type NotificationsDeleteResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("notifications" :> (Capture "notificationId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))
+ Network.Google.Resource.Directory.Notifications.Delete: type NotificationsDeleteResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "notifications" :> Capture "notificationId" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.Notifications.Get: type NotificationsGetResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("notifications" :> (Capture "notificationId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Notification)))))))
+ Network.Google.Resource.Directory.Notifications.Get: type NotificationsGetResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "notifications" :> Capture "notificationId" Text :> QueryParam "alt" AltJSON :> Get '[JSON] Notification
- Network.Google.Resource.Directory.Notifications.List: type NotificationsListResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("notifications" :> (QueryParam "language" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] Notifications)))))))))
+ Network.Google.Resource.Directory.Notifications.List: type NotificationsListResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "notifications" :> QueryParam "language" Text :> QueryParam "pageToken" Text :> QueryParam "maxResults" (Textual Word32) :> QueryParam "alt" AltJSON :> Get '[JSON] Notifications
- Network.Google.Resource.Directory.Notifications.Patch: type NotificationsPatchResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("notifications" :> (Capture "notificationId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Notification :> Patch '[JSON] Notification))))))))
+ Network.Google.Resource.Directory.Notifications.Patch: type NotificationsPatchResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "notifications" :> Capture "notificationId" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Notification :> Patch '[JSON] Notification
- Network.Google.Resource.Directory.Notifications.Update: type NotificationsUpdateResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("notifications" :> (Capture "notificationId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Notification :> Put '[JSON] Notification))))))))
+ Network.Google.Resource.Directory.Notifications.Update: type NotificationsUpdateResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "notifications" :> Capture "notificationId" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Notification :> Put '[JSON] Notification
- Network.Google.Resource.Directory.OrgUnits.Delete: type OrgUnitsDeleteResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("orgunits" :> (Captures "orgUnitPath" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))
+ Network.Google.Resource.Directory.OrgUnits.Delete: type OrgUnitsDeleteResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "orgunits" :> Captures "orgUnitPath" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.OrgUnits.Get: type OrgUnitsGetResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("orgunits" :> (Captures "orgUnitPath" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] OrgUnit)))))))
+ Network.Google.Resource.Directory.OrgUnits.Get: type OrgUnitsGetResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "orgunits" :> Captures "orgUnitPath" Text :> QueryParam "alt" AltJSON :> Get '[JSON] OrgUnit
- Network.Google.Resource.Directory.OrgUnits.Insert: type OrgUnitsInsertResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("orgunits" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] OrgUnit :> Post '[JSON] OrgUnit)))))))
+ Network.Google.Resource.Directory.OrgUnits.Insert: type OrgUnitsInsertResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "orgunits" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] OrgUnit :> Post '[JSON] OrgUnit
- Network.Google.Resource.Directory.OrgUnits.List: type OrgUnitsListResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("orgunits" :> (QueryParam "orgUnitPath" Text :> (QueryParam "type" OrgUnitsListType :> (QueryParam "alt" AltJSON :> Get '[JSON] OrgUnits))))))))
+ Network.Google.Resource.Directory.OrgUnits.List: type OrgUnitsListResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "orgunits" :> QueryParam "orgUnitPath" Text :> QueryParam "type" OrgUnitsListType :> QueryParam "alt" AltJSON :> Get '[JSON] OrgUnits
- Network.Google.Resource.Directory.OrgUnits.Patch: type OrgUnitsPatchResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("orgunits" :> (Captures "orgUnitPath" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] OrgUnit :> Patch '[JSON] OrgUnit))))))))
+ Network.Google.Resource.Directory.OrgUnits.Patch: type OrgUnitsPatchResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "orgunits" :> Captures "orgUnitPath" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] OrgUnit :> Patch '[JSON] OrgUnit
- Network.Google.Resource.Directory.OrgUnits.Update: type OrgUnitsUpdateResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("orgunits" :> (Captures "orgUnitPath" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] OrgUnit :> Put '[JSON] OrgUnit))))))))
+ Network.Google.Resource.Directory.OrgUnits.Update: type OrgUnitsUpdateResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "orgunits" :> Captures "orgUnitPath" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] OrgUnit :> Put '[JSON] OrgUnit
- Network.Google.Resource.Directory.Privileges.List: type PrivilegesListResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("roles" :> ("ALL" :> ("privileges" :> (QueryParam "alt" AltJSON :> Get '[JSON] Privileges))))))))
+ Network.Google.Resource.Directory.Privileges.List: type PrivilegesListResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "roles" :> "ALL" :> "privileges" :> QueryParam "alt" AltJSON :> Get '[JSON] Privileges
- Network.Google.Resource.Directory.Resources.Calendars.Delete: type ResourcesCalendarsDeleteResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("resources" :> ("calendars" :> (Capture "calendarResourceId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))))
+ Network.Google.Resource.Directory.Resources.Calendars.Delete: type ResourcesCalendarsDeleteResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "calendars" :> Capture "calendarResourceId" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.Resources.Calendars.Get: type ResourcesCalendarsGetResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("resources" :> ("calendars" :> (Capture "calendarResourceId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] CalendarResource))))))))
+ Network.Google.Resource.Directory.Resources.Calendars.Get: type ResourcesCalendarsGetResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "calendars" :> Capture "calendarResourceId" Text :> QueryParam "alt" AltJSON :> Get '[JSON] CalendarResource
- Network.Google.Resource.Directory.Resources.Calendars.Insert: type ResourcesCalendarsInsertResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("resources" :> ("calendars" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] CalendarResource :> Post '[JSON] CalendarResource))))))))
+ Network.Google.Resource.Directory.Resources.Calendars.Insert: type ResourcesCalendarsInsertResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "calendars" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] CalendarResource :> Post '[JSON] CalendarResource
- Network.Google.Resource.Directory.Resources.Calendars.List: type ResourcesCalendarsListResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("resources" :> ("calendars" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] CalendarResources)))))))))
+ Network.Google.Resource.Directory.Resources.Calendars.List: type ResourcesCalendarsListResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "calendars" :> QueryParam "orderBy" Text :> QueryParam "query" Text :> QueryParam "pageToken" Text :> QueryParam "maxResults" (Textual Int32) :> QueryParam "alt" AltJSON :> Get '[JSON] CalendarResources
- Network.Google.Resource.Directory.Resources.Calendars.Patch: type ResourcesCalendarsPatchResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("resources" :> ("calendars" :> (Capture "calendarResourceId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] CalendarResource :> Patch '[JSON] CalendarResource)))))))))
+ Network.Google.Resource.Directory.Resources.Calendars.Patch: type ResourcesCalendarsPatchResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "calendars" :> Capture "calendarResourceId" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] CalendarResource :> Patch '[JSON] CalendarResource
- Network.Google.Resource.Directory.Resources.Calendars.Update: type ResourcesCalendarsUpdateResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("resources" :> ("calendars" :> (Capture "calendarResourceId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] CalendarResource :> Put '[JSON] CalendarResource)))))))))
+ Network.Google.Resource.Directory.Resources.Calendars.Update: type ResourcesCalendarsUpdateResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "resources" :> "calendars" :> Capture "calendarResourceId" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] CalendarResource :> Put '[JSON] CalendarResource
- Network.Google.Resource.Directory.RoleAssignments.Delete: type RoleAssignmentsDeleteResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("roleassignments" :> (Capture "roleAssignmentId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))
+ Network.Google.Resource.Directory.RoleAssignments.Delete: type RoleAssignmentsDeleteResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "roleassignments" :> Capture "roleAssignmentId" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.RoleAssignments.Get: type RoleAssignmentsGetResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("roleassignments" :> (Capture "roleAssignmentId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] RoleAssignment)))))))
+ Network.Google.Resource.Directory.RoleAssignments.Get: type RoleAssignmentsGetResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "roleassignments" :> Capture "roleAssignmentId" Text :> QueryParam "alt" AltJSON :> Get '[JSON] RoleAssignment
- Network.Google.Resource.Directory.RoleAssignments.Insert: type RoleAssignmentsInsertResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("roleassignments" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] RoleAssignment :> Post '[JSON] RoleAssignment)))))))
+ Network.Google.Resource.Directory.RoleAssignments.Insert: type RoleAssignmentsInsertResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "roleassignments" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] RoleAssignment :> Post '[JSON] RoleAssignment
- Network.Google.Resource.Directory.RoleAssignments.List: type RoleAssignmentsListResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("roleassignments" :> (QueryParam "roleId" Text :> (QueryParam "pageToken" Text :> (QueryParam "userKey" Text :> (QueryParam "maxResults" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] RoleAssignments))))))))))
+ Network.Google.Resource.Directory.RoleAssignments.List: type RoleAssignmentsListResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "roleassignments" :> QueryParam "roleId" Text :> QueryParam "pageToken" Text :> QueryParam "userKey" Text :> QueryParam "maxResults" (Textual Int32) :> QueryParam "alt" AltJSON :> Get '[JSON] RoleAssignments
- Network.Google.Resource.Directory.Roles.Delete: type RolesDeleteResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("roles" :> (Capture "roleId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))
+ Network.Google.Resource.Directory.Roles.Delete: type RolesDeleteResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "roles" :> Capture "roleId" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.Roles.Get: type RolesGetResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("roles" :> (Capture "roleId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Role)))))))
+ Network.Google.Resource.Directory.Roles.Get: type RolesGetResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "roles" :> Capture "roleId" Text :> QueryParam "alt" AltJSON :> Get '[JSON] Role
- Network.Google.Resource.Directory.Roles.Insert: type RolesInsertResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("roles" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Role :> Post '[JSON] Role)))))))
+ Network.Google.Resource.Directory.Roles.Insert: type RolesInsertResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "roles" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Role :> Post '[JSON] Role
- Network.Google.Resource.Directory.Roles.List: type RolesListResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("roles" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] Roles))))))))
+ Network.Google.Resource.Directory.Roles.List: type RolesListResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "roles" :> QueryParam "pageToken" Text :> QueryParam "maxResults" (Textual Int32) :> QueryParam "alt" AltJSON :> Get '[JSON] Roles
- Network.Google.Resource.Directory.Roles.Patch: type RolesPatchResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("roles" :> (Capture "roleId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Role :> Patch '[JSON] Role))))))))
+ Network.Google.Resource.Directory.Roles.Patch: type RolesPatchResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "roles" :> Capture "roleId" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Role :> Patch '[JSON] Role
- Network.Google.Resource.Directory.Roles.Update: type RolesUpdateResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customer" Text :> ("roles" :> (Capture "roleId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Role :> Put '[JSON] Role))))))))
+ Network.Google.Resource.Directory.Roles.Update: type RolesUpdateResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customer" Text :> "roles" :> Capture "roleId" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Role :> Put '[JSON] Role
- Network.Google.Resource.Directory.Schemas.Delete: type SchemasDeleteResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("schemas" :> (Capture "schemaKey" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))
+ Network.Google.Resource.Directory.Schemas.Delete: type SchemasDeleteResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "schemas" :> Capture "schemaKey" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.Schemas.Get: type SchemasGetResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("schemas" :> (Capture "schemaKey" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Schema)))))))
+ Network.Google.Resource.Directory.Schemas.Get: type SchemasGetResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "schemas" :> Capture "schemaKey" Text :> QueryParam "alt" AltJSON :> Get '[JSON] Schema
- Network.Google.Resource.Directory.Schemas.Insert: type SchemasInsertResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("schemas" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Schema :> Post '[JSON] Schema)))))))
+ Network.Google.Resource.Directory.Schemas.Insert: type SchemasInsertResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "schemas" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Schema :> Post '[JSON] Schema
- Network.Google.Resource.Directory.Schemas.List: type SchemasListResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("schemas" :> (QueryParam "alt" AltJSON :> Get '[JSON] Schemas))))))
+ Network.Google.Resource.Directory.Schemas.List: type SchemasListResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "schemas" :> QueryParam "alt" AltJSON :> Get '[JSON] Schemas
- Network.Google.Resource.Directory.Schemas.Patch: type SchemasPatchResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("schemas" :> (Capture "schemaKey" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Schema :> Patch '[JSON] Schema))))))))
+ Network.Google.Resource.Directory.Schemas.Patch: type SchemasPatchResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "schemas" :> Capture "schemaKey" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Schema :> Patch '[JSON] Schema
- Network.Google.Resource.Directory.Schemas.Update: type SchemasUpdateResource = "admin" :> ("directory" :> ("v1" :> ("customer" :> (Capture "customerId" Text :> ("schemas" :> (Capture "schemaKey" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Schema :> Put '[JSON] Schema))))))))
+ Network.Google.Resource.Directory.Schemas.Update: type SchemasUpdateResource = "admin" :> "directory" :> "v1" :> "customer" :> Capture "customerId" Text :> "schemas" :> Capture "schemaKey" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Schema :> Put '[JSON] Schema
- Network.Google.Resource.Directory.Tokens.Delete: type TokensDeleteResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("tokens" :> (Capture "clientId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))
+ Network.Google.Resource.Directory.Tokens.Delete: type TokensDeleteResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "tokens" :> Capture "clientId" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.Tokens.Get: type TokensGetResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("tokens" :> (Capture "clientId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Token)))))))
+ Network.Google.Resource.Directory.Tokens.Get: type TokensGetResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "tokens" :> Capture "clientId" Text :> QueryParam "alt" AltJSON :> Get '[JSON] Token
- Network.Google.Resource.Directory.Tokens.List: type TokensListResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("tokens" :> (QueryParam "alt" AltJSON :> Get '[JSON] Tokens))))))
+ Network.Google.Resource.Directory.Tokens.List: type TokensListResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "tokens" :> QueryParam "alt" AltJSON :> Get '[JSON] Tokens
- Network.Google.Resource.Directory.Users.Aliases.Delete: type UsersAliasesDeleteResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("aliases" :> (Capture "alias" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))
+ Network.Google.Resource.Directory.Users.Aliases.Delete: type UsersAliasesDeleteResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "aliases" :> Capture "alias" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.Users.Aliases.Insert: type UsersAliasesInsertResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("aliases" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Alias :> Post '[JSON] Alias)))))))
+ Network.Google.Resource.Directory.Users.Aliases.Insert: type UsersAliasesInsertResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "aliases" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Alias :> Post '[JSON] Alias
- Network.Google.Resource.Directory.Users.Aliases.List: type UsersAliasesListResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("aliases" :> (QueryParam "event" UsersAliasesListEvent :> (QueryParam "alt" AltJSON :> Get '[JSON] Aliases)))))))
+ Network.Google.Resource.Directory.Users.Aliases.List: type UsersAliasesListResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "aliases" :> QueryParam "event" UsersAliasesListEvent :> QueryParam "alt" AltJSON :> Get '[JSON] Aliases
- Network.Google.Resource.Directory.Users.Aliases.Watch: type UsersAliasesWatchResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("aliases" :> ("watch" :> (QueryParam "event" UsersAliasesWatchEvent :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Channel :> Post '[JSON] Channel)))))))))
+ Network.Google.Resource.Directory.Users.Aliases.Watch: type UsersAliasesWatchResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "aliases" :> "watch" :> QueryParam "event" UsersAliasesWatchEvent :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Channel :> Post '[JSON] Channel
- Network.Google.Resource.Directory.Users.Delete: type UsersDeleteResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))
+ Network.Google.Resource.Directory.Users.Delete: type UsersDeleteResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.Users.Get: type UsersGetResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> (QueryParam "viewType" UsersGetViewType :> (QueryParam "customFieldMask" Text :> (QueryParam "projection" UsersGetProjection :> (QueryParam "alt" AltJSON :> Get '[JSON] User))))))))
+ Network.Google.Resource.Directory.Users.Get: type UsersGetResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> QueryParam "viewType" UsersGetViewType :> QueryParam "customFieldMask" Text :> QueryParam "projection" UsersGetProjection :> QueryParam "alt" AltJSON :> Get '[JSON] User
- Network.Google.Resource.Directory.Users.Insert: type UsersInsertResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] User :> Post '[JSON] User)))))
+ Network.Google.Resource.Directory.Users.Insert: type UsersInsertResource = "admin" :> "directory" :> "v1" :> "users" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] User :> Post '[JSON] User
- Network.Google.Resource.Directory.Users.List: type UsersListResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (QueryParam "event" UsersListEvent :> (QueryParam "orderBy" UsersListOrderBy :> (QueryParam "viewType" UsersListViewType :> (QueryParam "customFieldMask" Text :> (QueryParam "domain" Text :> (QueryParam "showDeleted" Text :> (QueryParam "sortOrder" UsersListSortOrder :> (QueryParam "customer" Text :> (QueryParam "query" Text :> (QueryParam "projection" UsersListProjection :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] Users))))))))))))))))
+ Network.Google.Resource.Directory.Users.List: type UsersListResource = "admin" :> "directory" :> "v1" :> "users" :> QueryParam "event" UsersListEvent :> QueryParam "orderBy" UsersListOrderBy :> QueryParam "viewType" UsersListViewType :> QueryParam "customFieldMask" Text :> QueryParam "domain" Text :> QueryParam "showDeleted" Text :> QueryParam "sortOrder" UsersListSortOrder :> QueryParam "customer" Text :> QueryParam "query" Text :> QueryParam "projection" UsersListProjection :> QueryParam "pageToken" Text :> QueryParam "maxResults" (Textual Int32) :> QueryParam "alt" AltJSON :> Get '[JSON] Users
- Network.Google.Resource.Directory.Users.MakeAdmin: type UsersMakeAdminResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("makeAdmin" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] UserMakeAdmin :> Post '[JSON] ())))))))
+ Network.Google.Resource.Directory.Users.MakeAdmin: type UsersMakeAdminResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "makeAdmin" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] UserMakeAdmin :> Post '[JSON] ()
- Network.Google.Resource.Directory.Users.Patch: type UsersPatchResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] User :> Patch '[JSON] User))))))
+ Network.Google.Resource.Directory.Users.Patch: type UsersPatchResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] User :> Patch '[JSON] User
- Network.Google.Resource.Directory.Users.Photos.Delete: type UsersPhotosDeleteResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("photos" :> ("thumbnail" :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))
+ Network.Google.Resource.Directory.Users.Photos.Delete: type UsersPhotosDeleteResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "photos" :> "thumbnail" :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.Directory.Users.Photos.Get: type UsersPhotosGetResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("photos" :> ("thumbnail" :> (QueryParam "alt" AltJSON :> Get '[JSON] UserPhoto)))))))
+ Network.Google.Resource.Directory.Users.Photos.Get: type UsersPhotosGetResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "photos" :> "thumbnail" :> QueryParam "alt" AltJSON :> Get '[JSON] UserPhoto
- Network.Google.Resource.Directory.Users.Photos.Patch: type UsersPhotosPatchResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("photos" :> ("thumbnail" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] UserPhoto :> Patch '[JSON] UserPhoto))))))))
+ Network.Google.Resource.Directory.Users.Photos.Patch: type UsersPhotosPatchResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "photos" :> "thumbnail" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] UserPhoto :> Patch '[JSON] UserPhoto
- Network.Google.Resource.Directory.Users.Photos.Update: type UsersPhotosUpdateResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("photos" :> ("thumbnail" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] UserPhoto :> Put '[JSON] UserPhoto))))))))
+ Network.Google.Resource.Directory.Users.Photos.Update: type UsersPhotosUpdateResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "photos" :> "thumbnail" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] UserPhoto :> Put '[JSON] UserPhoto
- Network.Google.Resource.Directory.Users.Undelete: type UsersUndeleteResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("undelete" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] UserUndelete :> Post '[JSON] ())))))))
+ Network.Google.Resource.Directory.Users.Undelete: type UsersUndeleteResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "undelete" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] UserUndelete :> Post '[JSON] ()
- Network.Google.Resource.Directory.Users.Update: type UsersUpdateResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] User :> Put '[JSON] User))))))
+ Network.Google.Resource.Directory.Users.Update: type UsersUpdateResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] User :> Put '[JSON] User
- Network.Google.Resource.Directory.Users.Watch: type UsersWatchResource = "admin" :> ("directory" :> ("v1" :> ("users" :> ("watch" :> (QueryParam "event" UsersWatchEvent :> (QueryParam "orderBy" UsersWatchOrderBy :> (QueryParam "viewType" UsersWatchViewType :> (QueryParam "customFieldMask" Text :> (QueryParam "domain" Text :> (QueryParam "showDeleted" Text :> (QueryParam "sortOrder" UsersWatchSortOrder :> (QueryParam "customer" Text :> (QueryParam "query" Text :> (QueryParam "projection" UsersWatchProjection :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Int32) :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Channel :> Post '[JSON] Channel))))))))))))))))))
+ Network.Google.Resource.Directory.Users.Watch: type UsersWatchResource = "admin" :> "directory" :> "v1" :> "users" :> "watch" :> QueryParam "event" UsersWatchEvent :> QueryParam "orderBy" UsersWatchOrderBy :> QueryParam "viewType" UsersWatchViewType :> QueryParam "customFieldMask" Text :> QueryParam "domain" Text :> QueryParam "showDeleted" Text :> QueryParam "sortOrder" UsersWatchSortOrder :> QueryParam "customer" Text :> QueryParam "query" Text :> QueryParam "projection" UsersWatchProjection :> QueryParam "pageToken" Text :> QueryParam "maxResults" (Textual Int32) :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Channel :> Post '[JSON] Channel
- Network.Google.Resource.Directory.VerificationCodes.Generate: type VerificationCodesGenerateResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("verificationCodes" :> ("generate" :> (QueryParam "alt" AltJSON :> Post '[JSON] ())))))))
+ Network.Google.Resource.Directory.VerificationCodes.Generate: type VerificationCodesGenerateResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "verificationCodes" :> "generate" :> QueryParam "alt" AltJSON :> Post '[JSON] ()
- Network.Google.Resource.Directory.VerificationCodes.Invalidate: type VerificationCodesInvalidateResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("verificationCodes" :> ("invalidate" :> (QueryParam "alt" AltJSON :> Post '[JSON] ())))))))
+ Network.Google.Resource.Directory.VerificationCodes.Invalidate: type VerificationCodesInvalidateResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "verificationCodes" :> "invalidate" :> QueryParam "alt" AltJSON :> Post '[JSON] ()
- Network.Google.Resource.Directory.VerificationCodes.List: type VerificationCodesListResource = "admin" :> ("directory" :> ("v1" :> ("users" :> (Capture "userKey" Text :> ("verificationCodes" :> (QueryParam "alt" AltJSON :> Get '[JSON] VerificationCodes))))))
+ Network.Google.Resource.Directory.VerificationCodes.List: type VerificationCodesListResource = "admin" :> "directory" :> "v1" :> "users" :> Capture "userKey" Text :> "verificationCodes" :> QueryParam "alt" AltJSON :> Get '[JSON] VerificationCodes

Files

gen/Network/Google/Directory.hs view
@@ -13,9 +13,8 @@ -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- The Admin SDK Directory API lets you view and manage enterprise--- resources such as users and groups, administrative notifications,--- security features, and more.+-- Manages enterprise resources such as users and groups, administrative+-- notifications, security features, and more. -- -- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> module Network.Google.Directory@@ -78,6 +77,9 @@     -- ** directory.chromeosdevices.list     , module Network.Google.Resource.Directory.ChromeosDevices.List +    -- ** directory.chromeosdevices.moveDevicesToOu+    , module Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu+     -- ** directory.chromeosdevices.patch     , module Network.Google.Resource.Directory.ChromeosDevices.Patch @@ -150,6 +152,9 @@     -- ** directory.members.get     , module Network.Google.Resource.Directory.Members.Get +    -- ** directory.members.hasMember+    , module Network.Google.Resource.Directory.Members.HasMember+     -- ** directory.members.insert     , module Network.Google.Resource.Directory.Members.Insert @@ -210,6 +215,30 @@     -- ** directory.privileges.list     , module Network.Google.Resource.Directory.Privileges.List +    -- ** directory.resolvedAppAccessSettings.GetSettings+    , module Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings++    -- ** directory.resolvedAppAccessSettings.ListTrustedApps+    , module Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps++    -- ** directory.resources.buildings.delete+    , module Network.Google.Resource.Directory.Resources.Buildings.Delete++    -- ** directory.resources.buildings.get+    , module Network.Google.Resource.Directory.Resources.Buildings.Get++    -- ** directory.resources.buildings.insert+    , module Network.Google.Resource.Directory.Resources.Buildings.Insert++    -- ** directory.resources.buildings.list+    , module Network.Google.Resource.Directory.Resources.Buildings.List++    -- ** directory.resources.buildings.patch+    , module Network.Google.Resource.Directory.Resources.Buildings.Patch++    -- ** directory.resources.buildings.update+    , module Network.Google.Resource.Directory.Resources.Buildings.Update+     -- ** directory.resources.calendars.delete     , module Network.Google.Resource.Directory.Resources.Calendars.Delete @@ -228,6 +257,27 @@     -- ** directory.resources.calendars.update     , module Network.Google.Resource.Directory.Resources.Calendars.Update +    -- ** directory.resources.features.delete+    , module Network.Google.Resource.Directory.Resources.Features.Delete++    -- ** directory.resources.features.get+    , module Network.Google.Resource.Directory.Resources.Features.Get++    -- ** directory.resources.features.insert+    , module Network.Google.Resource.Directory.Resources.Features.Insert++    -- ** directory.resources.features.list+    , module Network.Google.Resource.Directory.Resources.Features.List++    -- ** directory.resources.features.patch+    , module Network.Google.Resource.Directory.Resources.Features.Patch++    -- ** directory.resources.features.rename+    , module Network.Google.Resource.Directory.Resources.Features.Rename++    -- ** directory.resources.features.update+    , module Network.Google.Resource.Directory.Resources.Features.Update+     -- ** directory.roleAssignments.delete     , module Network.Google.Resource.Directory.RoleAssignments.Delete @@ -347,6 +397,17 @@      -- * Types +    -- ** UserLocation+    , UserLocation+    , userLocation+    , ulArea+    , ulBuildingId+    , ulDeskCode+    , ulFloorName+    , ulType+    , ulCustomType+    , ulFloorSection+     -- ** VerificationCode     , VerificationCode     , verificationCode@@ -355,6 +416,13 @@     , vcKind     , vcUserId +    -- ** Feature+    , Feature+    , feature+    , fEtags+    , fKind+    , fName+     -- ** OrgUnit     , OrgUnit     , orgUnit@@ -433,6 +501,11 @@     -- ** UsersWatchEvent     , UsersWatchEvent (..) +    -- ** ChromeOSDeviceDiskVolumeReportsItem+    , ChromeOSDeviceDiskVolumeReportsItem+    , chromeOSDeviceDiskVolumeReportsItem+    , coddvriVolumeInfo+     -- ** UserAddress     , UserAddress     , userAddress@@ -493,7 +566,9 @@     , chromeOSDevice     , codStatus     , codEtag+    , codCPUStatusReports     , codAnnotatedUser+    , codSystemRamFreeReports     , codPlatformVersion     , codLastSync     , codActiveTimeRanges@@ -508,14 +583,18 @@     , codModel     , codWillAutoRenew     , codMeid+    , codDeviceFiles     , codDeviceId     , codBootMode+    , codTpmVersionInfo     , codOrderNumber+    , codDiskVolumeReports     , codAnnotatedAssetId     , codNotes     , codSerialNumber     , codFirmwareVersion     , codOSVersion+    , codSystemRamTotal      -- ** ChromeosDevicesPatchProjection     , ChromeosDevicesPatchProjection (..)@@ -550,9 +629,25 @@     , sSchemas     , sKind +    -- ** ChromeOSDeviceDeviceFilesItem+    , ChromeOSDeviceDeviceFilesItem+    , chromeOSDeviceDeviceFilesItem+    , coddfiName+    , coddfiDownloadURL+    , coddfiType+    , coddfiCreateTime+     -- ** UsersListViewType     , UsersListViewType (..) +    -- ** Buildings+    , Buildings+    , buildings+    , bEtag+    , bNextPageToken+    , bBuildings+    , bKind+     -- ** OrgUnitsListType     , OrgUnitsListType (..) @@ -596,6 +691,13 @@     , userCustomSchemas     , ucsAddtional +    -- ** UserKeyword+    , UserKeyword+    , userKeyword+    , ukValue+    , ukType+    , ukCustomType+     -- ** DomainAliases     , DomainAliases     , domainAliases@@ -618,9 +720,20 @@     , crResourceType     , crResourceName     , crKind+    , crBuildingId+    , crFeatureInstances     , crResourceEmail+    , crCapacity     , crResourceDescription+    , crFloorName+    , crGeneratedResourceName+    , crResourceCategory+    , crFloorSection+    , crUserVisibleDescription +    -- ** GroupsListOrderBy+    , GroupsListOrderBy (..)+     -- ** UserUndelete     , UserUndelete     , userUndelete@@ -678,6 +791,17 @@     -- ** UsersWatchViewType     , UsersWatchViewType (..) +    -- ** Building+    , Building+    , building+    , buiEtags+    , buiKind+    , buiBuildingId+    , buiCoordinates+    , buiBuildingName+    , buiFloorNames+    , buiDescription+     -- ** ChromeOSDeviceRecentUsersItem     , ChromeOSDeviceRecentUsersItem     , chromeOSDeviceRecentUsersItem@@ -694,6 +818,13 @@     , dDomainAliasName     , dParentDomainName +    -- ** UserGender+    , UserGender+    , userGender+    , ugAddressMeAs+    , ugCustomGender+    , ugType+     -- ** Alias     , Alias     , alias@@ -713,8 +844,14 @@     , schKind     , schSchemaName     , schSchemaId+    , schDisplayName     , schFields +    -- ** ChromeOSMoveDevicesToOu+    , ChromeOSMoveDevicesToOu+    , chromeOSMoveDevicesToOu+    , comdtoDeviceIds+     -- ** User     , User     , user@@ -722,8 +859,10 @@     , useLastLoginTime     , useThumbnailPhotoEtag     , useEtag+    , usePosixAccounts     , useIPWhiteListed     , useRelations+    , useSSHPublicKeys     , useHashFunction     , useKind     , useChangePasswordAtNextLogin@@ -738,12 +877,15 @@     , useNonEditableAliases     , useOrgUnitPath     , useCustomerId+    , useLanguages     , useIncludeInGlobalAddressList+    , useGender     , usePhones     , useName     , usePassword     , useEmails     , useIms+    , useKeywords     , useIsAdmin     , useIsEnrolledIn2Sv     , useId@@ -752,6 +894,8 @@     , useIsEnforcedIn2Sv     , useNotes     , useIsDelegatedAdmin+    , useLocations+    , useArchived     , useIsMailboxSetup     , useCustomSchemas     , useSuspensionReason@@ -765,6 +909,11 @@     , codaAction     , codaDeprovisionReason +    -- ** FeatureRename+    , FeatureRename+    , featureRename+    , frNewName+     -- ** Role     , Role     , role'@@ -799,6 +948,13 @@     , mdaiDisplayName     , mdaiPermission +    -- ** ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem+    , ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem+    , chromeOSDeviceDiskVolumeReportsItemVolumeInfoItem+    , coddvriviiStorageFree+    , coddvriviiStorageTotal+    , coddvriviiVolumeId+     -- ** MobileDevicesListOrderBy     , MobileDevicesListOrderBy (..) @@ -812,6 +968,13 @@     , oKind     , oOrganizationUnits +    -- ** UserSSHPublicKey+    , UserSSHPublicKey+    , userSSHPublicKey+    , uspkFingerprint+    , uspkKey+    , uspkExpirationTimeUsec+     -- ** VerificationCodes     , VerificationCodes     , verificationCodes@@ -819,6 +982,12 @@     , vKind     , vItems +    -- ** BuildingCoordinates+    , BuildingCoordinates+    , buildingCoordinates+    , bcLatitude+    , bcLongitude+     -- ** ChromeosDevicesListSortOrder     , ChromeosDevicesListSortOrder (..) @@ -829,14 +998,40 @@     , urType     , urCustomType +    -- ** TrustedApps+    , TrustedApps+    , trustedApps+    , taEtag+    , taNextPageToken+    , taKind+    , taTrustedApps+     -- ** UsersWatchSortOrder     , UsersWatchSortOrder (..) +    -- ** Features+    , Features+    , features+    , feaEtag+    , feaNextPageToken+    , feaKind+    , feaFeatures+     -- ** ChannelParams     , ChannelParams     , channelParams     , cpAddtional +    -- ** ChromeOSDeviceTpmVersionInfo+    , ChromeOSDeviceTpmVersionInfo+    , chromeOSDeviceTpmVersionInfo+    , codtviVendorSpecific+    , codtviManufacturer+    , codtviSpecLevel+    , codtviTpmModel+    , codtviFamily+    , codtviFirmwareVersion+     -- ** UserOrganization     , UserOrganization     , userOrganization@@ -847,6 +1042,7 @@     , uoSymbol     , uoPrimary     , uoName+    , uoFullTimeEquivalent     , uoTitle     , uoType     , uoCustomType@@ -860,6 +1056,9 @@     , uwType     , uwCustomType +    -- ** GroupsListSortOrder+    , GroupsListSortOrder (..)+     -- ** ChromeOSDeviceActiveTimeRangesItem     , ChromeOSDeviceActiveTimeRangesItem     , chromeOSDeviceActiveTimeRangesItem@@ -894,9 +1093,34 @@     , upId     , upPrimaryEmail +    -- ** ChromeOSDeviceSystemRamFreeReportsItem+    , ChromeOSDeviceSystemRamFreeReportsItem+    , chromeOSDeviceSystemRamFreeReportsItem+    , codsrfriReportTime+    , codsrfriSystemRamFreeInfo++    -- ** UserPosixAccount+    , UserPosixAccount+    , userPosixAccount+    , upaGecos+    , upaUid+    , upaUsername+    , upaShell+    , upaPrimary+    , upaAccountId+    , upaGid+    , upaOperatingSystemType+    , upaSystemId+    , upaHomeDirectory+     -- ** UsersListProjection     , UsersListProjection (..) +    -- ** FeatureInstance+    , FeatureInstance+    , featureInstance+    , fiFeature+     -- ** ChromeosDevicesUpdateProjection     , ChromeosDevicesUpdateProjection (..) @@ -947,6 +1171,13 @@     , mobApplications     , mobDefaultLanguage +    -- ** ChromeOSDeviceCPUStatusReportsItem+    , ChromeOSDeviceCPUStatusReportsItem+    , chromeOSDeviceCPUStatusReportsItem+    , codcsriCPUUtilizationPercentageInfo+    , codcsriCPUTemperatureInfo+    , codcsriReportTime+     -- ** Member     , Member     , member@@ -954,15 +1185,34 @@     , memStatus     , memEtag     , memKind+    , memDeliverySettings     , memRole     , memId     , memType +    -- ** AppAccessCollections+    , AppAccessCollections+    , appAccessCollections+    , aacEtag+    , aacResourceId+    , aacEnforceSettingsForAndroidDrive+    , aacResourceName+    , aacKind+    , aacTrustDomainOwnedApps+    , aacBlockedAPIAccessBuckets+    , aacErrorMessage+     -- ** UserCustomProperties     , UserCustomProperties     , userCustomProperties     , ucpAddtional +    -- ** UserLanguage+    , UserLanguage+    , userLanguage+    , ulLanguageCode+    , ulCustomLanguage+     -- ** Domains     , Domains     , domains@@ -1025,6 +1275,7 @@     , sfsIndexed     , sfsFieldType     , sfsFieldName+    , sfsDisplayName     , sfsMultiValued      -- ** ChromeOSDevices@@ -1035,6 +1286,20 @@     , cosdKind     , cosdChromeosDevices +    -- ** MembersHasMember+    , MembersHasMember+    , membersHasMember+    , mhmIsMember++    -- ** TrustedAppId+    , TrustedAppId+    , trustedAppId+    , taiCertificateHashSHA256+    , taiEtag+    , taiKind+    , taiCertificateHashSHA1+    , taiAndroidPackageName+     -- ** UserExternalId     , UserExternalId     , userExternalId@@ -1049,6 +1314,12 @@     , aspKind     , aspItems +    -- ** ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem+    , ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem+    , chromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem+    , codcsrictiiTemperature+    , codcsrictiiLabel+     -- ** UsersGetViewType     , UsersGetViewType (..) @@ -1075,6 +1346,7 @@ import           Network.Google.Resource.Directory.ChromeosDevices.Action import           Network.Google.Resource.Directory.ChromeosDevices.Get import           Network.Google.Resource.Directory.ChromeosDevices.List+import           Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu import           Network.Google.Resource.Directory.ChromeosDevices.Patch import           Network.Google.Resource.Directory.ChromeosDevices.Update import           Network.Google.Resource.Directory.Customers.Get@@ -1099,6 +1371,7 @@ import           Network.Google.Resource.Directory.Groups.Update import           Network.Google.Resource.Directory.Members.Delete import           Network.Google.Resource.Directory.Members.Get+import           Network.Google.Resource.Directory.Members.HasMember import           Network.Google.Resource.Directory.Members.Insert import           Network.Google.Resource.Directory.Members.List import           Network.Google.Resource.Directory.Members.Patch@@ -1119,12 +1392,27 @@ import           Network.Google.Resource.Directory.OrgUnits.Patch import           Network.Google.Resource.Directory.OrgUnits.Update import           Network.Google.Resource.Directory.Privileges.List+import           Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings+import           Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps+import           Network.Google.Resource.Directory.Resources.Buildings.Delete+import           Network.Google.Resource.Directory.Resources.Buildings.Get+import           Network.Google.Resource.Directory.Resources.Buildings.Insert+import           Network.Google.Resource.Directory.Resources.Buildings.List+import           Network.Google.Resource.Directory.Resources.Buildings.Patch+import           Network.Google.Resource.Directory.Resources.Buildings.Update import           Network.Google.Resource.Directory.Resources.Calendars.Delete import           Network.Google.Resource.Directory.Resources.Calendars.Get import           Network.Google.Resource.Directory.Resources.Calendars.Insert import           Network.Google.Resource.Directory.Resources.Calendars.List import           Network.Google.Resource.Directory.Resources.Calendars.Patch import           Network.Google.Resource.Directory.Resources.Calendars.Update+import           Network.Google.Resource.Directory.Resources.Features.Delete+import           Network.Google.Resource.Directory.Resources.Features.Get+import           Network.Google.Resource.Directory.Resources.Features.Insert+import           Network.Google.Resource.Directory.Resources.Features.List+import           Network.Google.Resource.Directory.Resources.Features.Patch+import           Network.Google.Resource.Directory.Resources.Features.Rename+import           Network.Google.Resource.Directory.Resources.Features.Update import           Network.Google.Resource.Directory.RoleAssignments.Delete import           Network.Google.Resource.Directory.RoleAssignments.Get import           Network.Google.Resource.Directory.RoleAssignments.Insert@@ -1217,6 +1505,8 @@        :<|> SchemasGetResource        :<|> SchemasDeleteResource        :<|> SchemasUpdateResource+       :<|> ResolvedAppAccessSettingsListTrustedAppsResource+       :<|> ResolvedAppAccessSettingsGetSettingsResource        :<|> TokensListResource        :<|> TokensGetResource        :<|> TokensDeleteResource@@ -1227,6 +1517,7 @@        :<|> ChannelsStopResource        :<|> MembersInsertResource        :<|> MembersListResource+       :<|> MembersHasMemberResource        :<|> MembersPatchResource        :<|> MembersGetResource        :<|> MembersDeleteResource@@ -1235,12 +1526,25 @@        :<|> MobileDevicesGetResource        :<|> MobileDevicesActionResource        :<|> MobileDevicesDeleteResource+       :<|> ResourcesBuildingsInsertResource+       :<|> ResourcesBuildingsListResource+       :<|> ResourcesBuildingsPatchResource+       :<|> ResourcesBuildingsGetResource+       :<|> ResourcesBuildingsDeleteResource+       :<|> ResourcesBuildingsUpdateResource        :<|> ResourcesCalendarsInsertResource        :<|> ResourcesCalendarsListResource        :<|> ResourcesCalendarsPatchResource        :<|> ResourcesCalendarsGetResource        :<|> ResourcesCalendarsDeleteResource        :<|> ResourcesCalendarsUpdateResource+       :<|> ResourcesFeaturesInsertResource+       :<|> ResourcesFeaturesListResource+       :<|> ResourcesFeaturesPatchResource+       :<|> ResourcesFeaturesGetResource+       :<|> ResourcesFeaturesRenameResource+       :<|> ResourcesFeaturesDeleteResource+       :<|> ResourcesFeaturesUpdateResource        :<|> OrgUnitsInsertResource        :<|> OrgUnitsListResource        :<|> OrgUnitsPatchResource@@ -1260,6 +1564,7 @@        :<|> NotificationsDeleteResource        :<|> NotificationsUpdateResource        :<|> ChromeosDevicesListResource+       :<|> ChromeosDevicesMoveDevicesToOuResource        :<|> ChromeosDevicesPatchResource        :<|> ChromeosDevicesGetResource        :<|> ChromeosDevicesActionResource
gen/Network/Google/Directory/Types.hs view
@@ -48,6 +48,17 @@     , adminDirectoryDeviceMobileScope     , adminDirectoryDeviceMobileReadOnlyScope +    -- * UserLocation+    , UserLocation+    , userLocation+    , ulArea+    , ulBuildingId+    , ulDeskCode+    , ulFloorName+    , ulType+    , ulCustomType+    , ulFloorSection+     -- * VerificationCode     , VerificationCode     , verificationCode@@ -56,6 +67,13 @@     , vcKind     , vcUserId +    -- * Feature+    , Feature+    , feature+    , fEtags+    , fKind+    , fName+     -- * OrgUnit     , OrgUnit     , orgUnit@@ -134,6 +152,11 @@     -- * UsersWatchEvent     , UsersWatchEvent (..) +    -- * ChromeOSDeviceDiskVolumeReportsItem+    , ChromeOSDeviceDiskVolumeReportsItem+    , chromeOSDeviceDiskVolumeReportsItem+    , coddvriVolumeInfo+     -- * UserAddress     , UserAddress     , userAddress@@ -194,7 +217,9 @@     , chromeOSDevice     , codStatus     , codEtag+    , codCPUStatusReports     , codAnnotatedUser+    , codSystemRamFreeReports     , codPlatformVersion     , codLastSync     , codActiveTimeRanges@@ -209,14 +234,18 @@     , codModel     , codWillAutoRenew     , codMeid+    , codDeviceFiles     , codDeviceId     , codBootMode+    , codTpmVersionInfo     , codOrderNumber+    , codDiskVolumeReports     , codAnnotatedAssetId     , codNotes     , codSerialNumber     , codFirmwareVersion     , codOSVersion+    , codSystemRamTotal      -- * ChromeosDevicesPatchProjection     , ChromeosDevicesPatchProjection (..)@@ -251,9 +280,25 @@     , sSchemas     , sKind +    -- * ChromeOSDeviceDeviceFilesItem+    , ChromeOSDeviceDeviceFilesItem+    , chromeOSDeviceDeviceFilesItem+    , coddfiName+    , coddfiDownloadURL+    , coddfiType+    , coddfiCreateTime+     -- * UsersListViewType     , UsersListViewType (..) +    -- * Buildings+    , Buildings+    , buildings+    , bEtag+    , bNextPageToken+    , bBuildings+    , bKind+     -- * OrgUnitsListType     , OrgUnitsListType (..) @@ -297,6 +342,13 @@     , userCustomSchemas     , ucsAddtional +    -- * UserKeyword+    , UserKeyword+    , userKeyword+    , ukValue+    , ukType+    , ukCustomType+     -- * DomainAliases     , DomainAliases     , domainAliases@@ -319,9 +371,20 @@     , crResourceType     , crResourceName     , crKind+    , crBuildingId+    , crFeatureInstances     , crResourceEmail+    , crCapacity     , crResourceDescription+    , crFloorName+    , crGeneratedResourceName+    , crResourceCategory+    , crFloorSection+    , crUserVisibleDescription +    -- * GroupsListOrderBy+    , GroupsListOrderBy (..)+     -- * UserUndelete     , UserUndelete     , userUndelete@@ -379,6 +442,17 @@     -- * UsersWatchViewType     , UsersWatchViewType (..) +    -- * Building+    , Building+    , building+    , buiEtags+    , buiKind+    , buiBuildingId+    , buiCoordinates+    , buiBuildingName+    , buiFloorNames+    , buiDescription+     -- * ChromeOSDeviceRecentUsersItem     , ChromeOSDeviceRecentUsersItem     , chromeOSDeviceRecentUsersItem@@ -395,6 +469,13 @@     , dDomainAliasName     , dParentDomainName +    -- * UserGender+    , UserGender+    , userGender+    , ugAddressMeAs+    , ugCustomGender+    , ugType+     -- * Alias     , Alias     , alias@@ -414,8 +495,14 @@     , schKind     , schSchemaName     , schSchemaId+    , schDisplayName     , schFields +    -- * ChromeOSMoveDevicesToOu+    , ChromeOSMoveDevicesToOu+    , chromeOSMoveDevicesToOu+    , comdtoDeviceIds+     -- * User     , User     , user@@ -423,8 +510,10 @@     , useLastLoginTime     , useThumbnailPhotoEtag     , useEtag+    , usePosixAccounts     , useIPWhiteListed     , useRelations+    , useSSHPublicKeys     , useHashFunction     , useKind     , useChangePasswordAtNextLogin@@ -439,12 +528,15 @@     , useNonEditableAliases     , useOrgUnitPath     , useCustomerId+    , useLanguages     , useIncludeInGlobalAddressList+    , useGender     , usePhones     , useName     , usePassword     , useEmails     , useIms+    , useKeywords     , useIsAdmin     , useIsEnrolledIn2Sv     , useId@@ -453,6 +545,8 @@     , useIsEnforcedIn2Sv     , useNotes     , useIsDelegatedAdmin+    , useLocations+    , useArchived     , useIsMailboxSetup     , useCustomSchemas     , useSuspensionReason@@ -466,6 +560,11 @@     , codaAction     , codaDeprovisionReason +    -- * FeatureRename+    , FeatureRename+    , featureRename+    , frNewName+     -- * Role     , Role     , role'@@ -500,6 +599,13 @@     , mdaiDisplayName     , mdaiPermission +    -- * ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem+    , ChromeOSDeviceDiskVolumeReportsItemVolumeInfoItem+    , chromeOSDeviceDiskVolumeReportsItemVolumeInfoItem+    , coddvriviiStorageFree+    , coddvriviiStorageTotal+    , coddvriviiVolumeId+     -- * MobileDevicesListOrderBy     , MobileDevicesListOrderBy (..) @@ -513,6 +619,13 @@     , oKind     , oOrganizationUnits +    -- * UserSSHPublicKey+    , UserSSHPublicKey+    , userSSHPublicKey+    , uspkFingerprint+    , uspkKey+    , uspkExpirationTimeUsec+     -- * VerificationCodes     , VerificationCodes     , verificationCodes@@ -520,6 +633,12 @@     , vKind     , vItems +    -- * BuildingCoordinates+    , BuildingCoordinates+    , buildingCoordinates+    , bcLatitude+    , bcLongitude+     -- * ChromeosDevicesListSortOrder     , ChromeosDevicesListSortOrder (..) @@ -530,14 +649,40 @@     , urType     , urCustomType +    -- * TrustedApps+    , TrustedApps+    , trustedApps+    , taEtag+    , taNextPageToken+    , taKind+    , taTrustedApps+     -- * UsersWatchSortOrder     , UsersWatchSortOrder (..) +    -- * Features+    , Features+    , features+    , feaEtag+    , feaNextPageToken+    , feaKind+    , feaFeatures+     -- * ChannelParams     , ChannelParams     , channelParams     , cpAddtional +    -- * ChromeOSDeviceTpmVersionInfo+    , ChromeOSDeviceTpmVersionInfo+    , chromeOSDeviceTpmVersionInfo+    , codtviVendorSpecific+    , codtviManufacturer+    , codtviSpecLevel+    , codtviTpmModel+    , codtviFamily+    , codtviFirmwareVersion+     -- * UserOrganization     , UserOrganization     , userOrganization@@ -548,6 +693,7 @@     , uoSymbol     , uoPrimary     , uoName+    , uoFullTimeEquivalent     , uoTitle     , uoType     , uoCustomType@@ -561,6 +707,9 @@     , uwType     , uwCustomType +    -- * GroupsListSortOrder+    , GroupsListSortOrder (..)+     -- * ChromeOSDeviceActiveTimeRangesItem     , ChromeOSDeviceActiveTimeRangesItem     , chromeOSDeviceActiveTimeRangesItem@@ -595,9 +744,34 @@     , upId     , upPrimaryEmail +    -- * ChromeOSDeviceSystemRamFreeReportsItem+    , ChromeOSDeviceSystemRamFreeReportsItem+    , chromeOSDeviceSystemRamFreeReportsItem+    , codsrfriReportTime+    , codsrfriSystemRamFreeInfo++    -- * UserPosixAccount+    , UserPosixAccount+    , userPosixAccount+    , upaGecos+    , upaUid+    , upaUsername+    , upaShell+    , upaPrimary+    , upaAccountId+    , upaGid+    , upaOperatingSystemType+    , upaSystemId+    , upaHomeDirectory+     -- * UsersListProjection     , UsersListProjection (..) +    -- * FeatureInstance+    , FeatureInstance+    , featureInstance+    , fiFeature+     -- * ChromeosDevicesUpdateProjection     , ChromeosDevicesUpdateProjection (..) @@ -648,6 +822,13 @@     , mobApplications     , mobDefaultLanguage +    -- * ChromeOSDeviceCPUStatusReportsItem+    , ChromeOSDeviceCPUStatusReportsItem+    , chromeOSDeviceCPUStatusReportsItem+    , codcsriCPUUtilizationPercentageInfo+    , codcsriCPUTemperatureInfo+    , codcsriReportTime+     -- * Member     , Member     , member@@ -655,15 +836,34 @@     , memStatus     , memEtag     , memKind+    , memDeliverySettings     , memRole     , memId     , memType +    -- * AppAccessCollections+    , AppAccessCollections+    , appAccessCollections+    , aacEtag+    , aacResourceId+    , aacEnforceSettingsForAndroidDrive+    , aacResourceName+    , aacKind+    , aacTrustDomainOwnedApps+    , aacBlockedAPIAccessBuckets+    , aacErrorMessage+     -- * UserCustomProperties     , UserCustomProperties     , userCustomProperties     , ucpAddtional +    -- * UserLanguage+    , UserLanguage+    , userLanguage+    , ulLanguageCode+    , ulCustomLanguage+     -- * Domains     , Domains     , domains@@ -726,6 +926,7 @@     , sfsIndexed     , sfsFieldType     , sfsFieldName+    , sfsDisplayName     , sfsMultiValued      -- * ChromeOSDevices@@ -736,6 +937,20 @@     , cosdKind     , cosdChromeosDevices +    -- * MembersHasMember+    , MembersHasMember+    , membersHasMember+    , mhmIsMember++    -- * TrustedAppId+    , TrustedAppId+    , trustedAppId+    , taiCertificateHashSHA256+    , taiEtag+    , taiKind+    , taiCertificateHashSHA1+    , taiAndroidPackageName+     -- * UserExternalId     , UserExternalId     , userExternalId@@ -749,6 +964,12 @@     , aspEtag     , aspKind     , aspItems++    -- * ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem+    , ChromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem+    , chromeOSDeviceCPUStatusReportsItemCPUTemperatureInfoItem+    , codcsrictiiTemperature+    , codcsrictiiLabel      -- * UsersGetViewType     , UsersGetViewType (..)
gen/Network/Google/Directory/Types/Product.hs view
@@ -20,5930 +20,7958 @@ import           Network.Google.Directory.Types.Sum import           Network.Google.Prelude --- | 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 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])---- | 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)-    , _codAnnotatedUser      :: !(Maybe Text)-    , _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)-    , _codDeviceId           :: !(Maybe Text)-    , _codBootMode           :: !(Maybe Text)-    , _codOrderNumber        :: !(Maybe Text)-    , _codAnnotatedAssetId   :: !(Maybe Text)-    , _codNotes              :: !(Maybe Text)-    , _codSerialNumber       :: !(Maybe Text)-    , _codFirmwareVersion    :: !(Maybe Text)-    , _codOSVersion          :: !(Maybe Text)-    } 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'------ * 'codAnnotatedUser'------ * 'codPlatformVersion'------ * 'codLastSync'------ * 'codActiveTimeRanges'------ * 'codKind'------ * 'codEthernetMACAddress'------ * 'codLastEnrollmentTime'------ * 'codAnnotatedLocation'------ * 'codMACAddress'------ * 'codOrgUnitPath'------ * 'codRecentUsers'------ * 'codSupportEndDate'------ * 'codModel'------ * 'codWillAutoRenew'------ * 'codMeid'------ * 'codDeviceId'------ * 'codBootMode'------ * 'codOrderNumber'------ * 'codAnnotatedAssetId'------ * 'codNotes'------ * 'codSerialNumber'------ * 'codFirmwareVersion'------ * 'codOSVersion'-chromeOSDevice-    :: ChromeOSDevice-chromeOSDevice =-    ChromeOSDevice'-    { _codStatus = Nothing-    , _codEtag = Nothing-    , _codAnnotatedUser = 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-    , _codDeviceId = Nothing-    , _codBootMode = Nothing-    , _codOrderNumber = Nothing-    , _codAnnotatedAssetId = Nothing-    , _codNotes = Nothing-    , _codSerialNumber = Nothing-    , _codFirmwareVersion = Nothing-    , _codOSVersion = 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})---- | User of the device-codAnnotatedUser :: Lens' ChromeOSDevice (Maybe Text)-codAnnotatedUser-  = lens _codAnnotatedUser-      (\ s a -> s{_codAnnotatedUser = a})---- | 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 Google Apps 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})---- | 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})---- | Chromebook order number (Read-only)-codOrderNumber :: Lens' ChromeOSDevice (Maybe Text)-codOrderNumber-  = lens _codOrderNumber-      (\ s a -> s{_codOrderNumber = a})---- | 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})--instance FromJSON ChromeOSDevice where-        parseJSON-          = withObject "ChromeOSDevice"-              (\ o ->-                 ChromeOSDevice' <$>-                   (o .:? "status") <*> (o .:? "etag") <*>-                     (o .:? "annotatedUser")-                     <*> (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 .:? "deviceId")-                     <*> (o .:? "bootMode")-                     <*> (o .:? "orderNumber")-                     <*> (o .:? "annotatedAssetId")-                     <*> (o .:? "notes")-                     <*> (o .:? "serialNumber")-                     <*> (o .:? "firmwareVersion")-                     <*> (o .:? "osVersion"))--instance ToJSON ChromeOSDevice where-        toJSON ChromeOSDevice'{..}-          = object-              (catMaybes-                 [("status" .=) <$> _codStatus,-                  ("etag" .=) <$> _codEtag,-                  ("annotatedUser" .=) <$> _codAnnotatedUser,-                  ("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,-                  ("deviceId" .=) <$> _codDeviceId,-                  ("bootMode" .=) <$> _codBootMode,-                  ("orderNumber" .=) <$> _codOrderNumber,-                  ("annotatedAssetId" .=) <$> _codAnnotatedAssetId,-                  ("notes" .=) <$> _codNotes,-                  ("serialNumber" .=) <$> _codSerialNumber,-                  ("firmwareVersion" .=) <$> _codFirmwareVersion,-                  ("osVersion" .=) <$> _codOSVersion])---- | 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)])---- | 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 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-    , _crResourceEmail       :: !(Maybe Text)-    , _crResourceDescription :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'CalendarResource' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'crEtags'------ * 'crResourceId'------ * 'crResourceType'------ * 'crResourceName'------ * 'crKind'------ * 'crResourceEmail'------ * 'crResourceDescription'-calendarResource-    :: CalendarResource-calendarResource =-    CalendarResource'-    { _crEtags = Nothing-    , _crResourceId = Nothing-    , _crResourceType = Nothing-    , _crResourceName = Nothing-    , _crKind = "admin#directory#resources#calendars#CalendarResource"-    , _crResourceEmail = Nothing-    , _crResourceDescription = Nothing-    }---- | ETag of the resource.-crEtags :: Lens' CalendarResource (Maybe Text)-crEtags = lens _crEtags (\ s a -> s{_crEtags = a})---- | The unique ID for the calendar resource.-crResourceId :: Lens' CalendarResource (Maybe Text)-crResourceId-  = lens _crResourceId (\ s a -> s{_crResourceId = a})---- | The type of the calendar resource. Used for grouping resources in the--- calendar user interface.-crResourceType :: Lens' CalendarResource (Maybe Text)-crResourceType-  = lens _crResourceType-      (\ s a -> s{_crResourceType = a})---- | The name of the calendar resource. For example, Training Room 1A-crResourceName :: Lens' CalendarResource (Maybe Text)-crResourceName-  = lens _crResourceName-      (\ s a -> s{_crResourceName = a})---- | The type of the resource. For calendar resources, the value is--- admin#directory#resources#calendars#CalendarResource.-crKind :: Lens' CalendarResource Text-crKind = lens _crKind (\ s a -> s{_crKind = a})---- | The read-only email ID for the calendar resource. Generated as part of--- creating a new calendar resource.-crResourceEmail :: Lens' CalendarResource (Maybe Text)-crResourceEmail-  = lens _crResourceEmail-      (\ s a -> s{_crResourceEmail = a})---- | The brief description of the calendar resource.-crResourceDescription :: Lens' CalendarResource (Maybe Text)-crResourceDescription-  = lens _crResourceDescription-      (\ s a -> s{_crResourceDescription = a})--instance FromJSON CalendarResource where-        parseJSON-          = withObject "CalendarResource"-              (\ o ->-                 CalendarResource' <$>-                   (o .:? "etags") <*> (o .:? "resourceId") <*>-                     (o .:? "resourceType")-                     <*> (o .:? "resourceName")-                     <*>-                     (o .:? "kind" .!=-                        "admin#directory#resources#calendars#CalendarResource")-                     <*> (o .:? "resourceEmail")-                     <*> (o .:? "resourceDescription"))--instance ToJSON CalendarResource where-        toJSON CalendarResource'{..}-          = object-              (catMaybes-                 [("etags" .=) <$> _crEtags,-                  ("resourceId" .=) <$> _crResourceId,-                  ("resourceType" .=) <$> _crResourceType,-                  ("resourceName" .=) <$> _crResourceName,-                  Just ("kind" .= _crKind),-                  ("resourceEmail" .=) <$> _crResourceEmail,-                  ("resourceDescription" .=) <$>-                    _crResourceDescription])---- | JSON request template to undelete a user in Directory API.------ /See:/ 'userUndelete' smart constructor.-newtype UserUndelete = UserUndelete'-    { _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])------- /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])---- | 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)-    , _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'------ * 'schFields'-schema-    :: Schema-schema =-    Schema'-    { _schEtag = Nothing-    , _schKind = "admin#directory#schema"-    , _schSchemaName = Nothing-    , _schSchemaId = 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})---- | 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 .:? "fields" .!= mempty))--instance ToJSON Schema where-        toJSON Schema'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _schEtag, Just ("kind" .= _schKind),-                  ("schemaName" .=) <$> _schSchemaName,-                  ("schemaId" .=) <$> _schSchemaId,-                  ("fields" .=) <$> _schFields])---- | 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)-    , _useIPWhiteListed              :: !(Maybe Bool)-    , _useRelations                  :: !(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)-    , _useIncludeInGlobalAddressList :: !(Maybe Bool)-    , _usePhones                     :: !(Maybe JSONValue)-    , _useName                       :: !(Maybe UserName)-    , _usePassword                   :: !(Maybe Text)-    , _useEmails                     :: !(Maybe JSONValue)-    , _useIms                        :: !(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)-    , _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'------ * 'useIPWhiteListed'------ * 'useRelations'------ * 'useHashFunction'------ * 'useKind'------ * 'useChangePasswordAtNextLogin'------ * 'useWebsites'------ * 'useAddresses'------ * 'useAliases'------ * 'useThumbnailPhotoURL'------ * 'useExternalIds'------ * 'useSuspended'------ * 'useAgreedToTerms'------ * 'useDeletionTime'------ * 'useNonEditableAliases'------ * 'useOrgUnitPath'------ * 'useCustomerId'------ * 'useIncludeInGlobalAddressList'------ * 'usePhones'------ * 'useName'------ * 'usePassword'------ * 'useEmails'------ * 'useIms'------ * 'useIsAdmin'------ * 'useIsEnrolledIn2Sv'------ * 'useId'------ * 'useOrganizations'------ * 'usePrimaryEmail'------ * 'useIsEnforcedIn2Sv'------ * 'useNotes'------ * 'useIsDelegatedAdmin'------ * 'useIsMailboxSetup'------ * 'useCustomSchemas'------ * 'useSuspensionReason'-user-    :: User-user =-    User'-    { _useCreationTime = Nothing-    , _useLastLoginTime = Nothing-    , _useThumbnailPhotoEtag = Nothing-    , _useEtag = Nothing-    , _useIPWhiteListed = Nothing-    , _useRelations = 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-    , _useIncludeInGlobalAddressList = Nothing-    , _usePhones = Nothing-    , _useName = Nothing-    , _usePassword = Nothing-    , _useEmails = Nothing-    , _useIms = Nothing-    , _useIsAdmin = Nothing-    , _useIsEnrolledIn2Sv = Nothing-    , _useId = Nothing-    , _useOrganizations = Nothing-    , _usePrimaryEmail = Nothing-    , _useIsEnforcedIn2Sv = Nothing-    , _useNotes = Nothing-    , _useIsDelegatedAdmin = Nothing-    , _useIsMailboxSetup = Nothing-    , _useCustomSchemas = Nothing-    , _useSuspensionReason = Nothing-    }---- | User\'s Google 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})---- | 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})---- | 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})---- | Boolean indicating if user is included in Global Address List-useIncludeInGlobalAddressList :: Lens' User (Maybe Bool)-useIncludeInGlobalAddressList-  = lens _useIncludeInGlobalAddressList-      (\ s a -> s{_useIncludeInGlobalAddressList = 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})---- | 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})---- | 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 .:? "ipWhitelisted")-                     <*> (o .:? "relations")-                     <*> (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 .:? "includeInGlobalAddressList")-                     <*> (o .:? "phones")-                     <*> (o .:? "name")-                     <*> (o .:? "password")-                     <*> (o .:? "emails")-                     <*> (o .:? "ims")-                     <*> (o .:? "isAdmin")-                     <*> (o .:? "isEnrolledIn2Sv")-                     <*> (o .:? "id")-                     <*> (o .:? "organizations")-                     <*> (o .:? "primaryEmail")-                     <*> (o .:? "isEnforcedIn2Sv")-                     <*> (o .:? "notes")-                     <*> (o .:? "isDelegatedAdmin")-                     <*> (o .:? "isMailboxSetup")-                     <*> (o .:? "customSchemas")-                     <*> (o .:? "suspensionReason"))--instance ToJSON User where-        toJSON User'{..}-          = object-              (catMaybes-                 [("creationTime" .=) <$> _useCreationTime,-                  ("lastLoginTime" .=) <$> _useLastLoginTime,-                  ("thumbnailPhotoEtag" .=) <$> _useThumbnailPhotoEtag,-                  ("etag" .=) <$> _useEtag,-                  ("ipWhitelisted" .=) <$> _useIPWhiteListed,-                  ("relations" .=) <$> _useRelations,-                  ("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,-                  ("includeInGlobalAddressList" .=) <$>-                    _useIncludeInGlobalAddressList,-                  ("phones" .=) <$> _usePhones,-                  ("name" .=) <$> _useName,-                  ("password" .=) <$> _usePassword,-                  ("emails" .=) <$> _useEmails, ("ims" .=) <$> _useIms,-                  ("isAdmin" .=) <$> _useIsAdmin,-                  ("isEnrolledIn2Sv" .=) <$> _useIsEnrolledIn2Sv,-                  ("id" .=) <$> _useId,-                  ("organizations" .=) <$> _useOrganizations,-                  ("primaryEmail" .=) <$> _usePrimaryEmail,-                  ("isEnforcedIn2Sv" .=) <$> _useIsEnforcedIn2Sv,-                  ("notes" .=) <$> _useNotes,-                  ("isDelegatedAdmin" .=) <$> _useIsDelegatedAdmin,-                  ("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 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 Google 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])---- | 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 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 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])---- | 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---- | 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)-    , _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'------ * 'uoTitle'------ * 'uoType'------ * 'uoCustomType'------ * 'uoDescription'-userOrganization-    :: UserOrganization-userOrganization =-    UserOrganization'-    { _uoDePartment = Nothing-    , _uoLocation = Nothing-    , _uoCostCenter = Nothing-    , _uoDomain = Nothing-    , _uoSymbol = Nothing-    , _uoPrimary = Nothing-    , _uoName = 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})---- | 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 .:? "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, ("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])---- | 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 Google Apps 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 Google Apps 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])---- | 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-    , _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'------ * 'memRole'------ * 'memId'------ * 'memType'-member-    :: Member-member =-    Member'-    { _memEmail = Nothing-    , _memStatus = Nothing-    , _memEtag = Nothing-    , _memKind = "admin#directory#member"-    , _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})---- | 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 .:? "role")-                     <*> (o .:? "id")-                     <*> (o .:? "type"))--instance ToJSON Member where-        toJSON Member'{..}-          = object-              (catMaybes-                 [("email" .=) <$> _memEmail,-                  ("status" .=) <$> _memStatus,-                  ("etag" .=) <$> _memEtag, Just ("kind" .= _memKind),-                  ("role" .=) <$> _memRole, ("id" .=) <$> _memId,-                  ("type" .=) <$> _memType])---- | 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 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)-    , _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'------ * '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-    , _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})---- | 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 .:? "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,-                  ("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 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])+-- | 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.
gen/Network/Google/Directory/Types/Sum.hs view
@@ -16,7 +16,7 @@ -- module Network.Google.Directory.Types.Sum where -import           Network.Google.Prelude+import           Network.Google.Prelude hiding (Bytes)  -- | Event on which subscription is intended (if subscribing) data UsersListEvent@@ -257,7 +257,7 @@ data OrgUnitsListType     = All       -- ^ @all@-      -- All sub-organization units.+      -- All sub-organizational units.     | Children       -- ^ @children@       -- Immediate children only (default).@@ -346,6 +346,30 @@ instance ToJSON UsersListOrderBy where     toJSON = toJSONText +-- | Column to use for sorting results+data GroupsListOrderBy+    = GLOBEmail+      -- ^ @email@+      -- Email of the group.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable GroupsListOrderBy++instance FromHttpApiData GroupsListOrderBy where+    parseQueryParam = \case+        "email" -> Right GLOBEmail+        x -> Left ("Unable to parse GroupsListOrderBy from: " <> x)++instance ToHttpApiData GroupsListOrderBy where+    toQueryParam = \case+        GLOBEmail -> "email"++instance FromJSON GroupsListOrderBy where+    parseJSON = parseJSONText "GroupsListOrderBy"++instance ToJSON GroupsListOrderBy where+    toJSON = toJSONText+ -- | Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user. data UsersWatchViewType     = UWVTAdminView@@ -584,6 +608,36 @@     parseJSON = parseJSONText "UsersWatchSortOrder"  instance ToJSON UsersWatchSortOrder where+    toJSON = toJSONText++-- | Whether to return results in ascending or descending order. Only of use+-- when orderBy is also used+data GroupsListSortOrder+    = GLSOAscending+      -- ^ @ASCENDING@+      -- Ascending order.+    | GLSODescending+      -- ^ @DESCENDING@+      -- Descending order.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable GroupsListSortOrder++instance FromHttpApiData GroupsListSortOrder where+    parseQueryParam = \case+        "ASCENDING" -> Right GLSOAscending+        "DESCENDING" -> Right GLSODescending+        x -> Left ("Unable to parse GroupsListSortOrder from: " <> x)++instance ToHttpApiData GroupsListSortOrder where+    toQueryParam = \case+        GLSOAscending -> "ASCENDING"+        GLSODescending -> "DESCENDING"++instance FromJSON GroupsListSortOrder where+    parseJSON = parseJSONText "GroupsListSortOrder"++instance ToJSON GroupsListSortOrder where     toJSON = toJSONText  -- | What subset of fields to fetch for this user.
gen/Network/Google/Resource/Directory/ChromeosDevices/Action.hs view
@@ -87,7 +87,7 @@     , _cdaCustomerId = pCdaCustomerId_     } --- | Immutable id of Chrome OS Device+-- | Immutable ID of Chrome OS Device cdaResourceId :: Lens' ChromeosDevicesAction Text cdaResourceId   = lens _cdaResourceId@@ -98,7 +98,7 @@ cdaPayload   = lens _cdaPayload (\ s a -> s{_cdaPayload = a}) --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account cdaCustomerId :: Lens' ChromeosDevicesAction Text cdaCustomerId   = lens _cdaCustomerId
gen/Network/Google/Resource/Directory/ChromeosDevices/Get.hs view
@@ -86,13 +86,13 @@     , _cdgProjection = Nothing     } --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account cdgCustomerId :: Lens' ChromeosDevicesGet Text cdgCustomerId   = lens _cdgCustomerId       (\ s a -> s{_cdgCustomerId = a}) --- | Immutable id of Chrome OS Device+-- | Immutable ID of Chrome OS Device cdgDeviceId :: Lens' ChromeosDevicesGet Text cdgDeviceId   = lens _cdgDeviceId (\ s a -> s{_cdgDeviceId = a})
gen/Network/Google/Resource/Directory/ChromeosDevices/List.hs view
@@ -34,6 +34,7 @@      -- * Request Lenses     , cdlOrderBy+    , cdlOrgUnitPath     , cdlCustomerId     , cdlSortOrder     , cdlQuery@@ -56,27 +57,29 @@                "devices" :>                  "chromeos" :>                    QueryParam "orderBy" ChromeosDevicesListOrderBy :>-                     QueryParam "sortOrder" ChromeosDevicesListSortOrder-                       :>-                       QueryParam "query" Text :>-                         QueryParam "projection" ChromeosDevicesListProjection-                           :>-                           QueryParam "pageToken" Text :>-                             QueryParam "maxResults" (Textual Int32) :>-                               QueryParam "alt" AltJSON :>-                                 Get '[JSON] ChromeOSDevices+                     QueryParam "orgUnitPath" Text :>+                       QueryParam "sortOrder" ChromeosDevicesListSortOrder+                         :>+                         QueryParam "query" Text :>+                           QueryParam "projection" ChromeosDevicesListProjection+                             :>+                             QueryParam "pageToken" Text :>+                               QueryParam "maxResults" (Textual Int32) :>+                                 QueryParam "alt" AltJSON :>+                                   Get '[JSON] ChromeOSDevices  -- | Retrieve all Chrome OS Devices of a customer (paginated) -- -- /See:/ 'chromeosDevicesList' smart constructor. data ChromeosDevicesList = ChromeosDevicesList'-    { _cdlOrderBy    :: !(Maybe ChromeosDevicesListOrderBy)-    , _cdlCustomerId :: !Text-    , _cdlSortOrder  :: !(Maybe ChromeosDevicesListSortOrder)-    , _cdlQuery      :: !(Maybe Text)-    , _cdlProjection :: !(Maybe ChromeosDevicesListProjection)-    , _cdlPageToken  :: !(Maybe Text)-    , _cdlMaxResults :: !(Maybe (Textual Int32))+    { _cdlOrderBy     :: !(Maybe ChromeosDevicesListOrderBy)+    , _cdlOrgUnitPath :: !(Maybe Text)+    , _cdlCustomerId  :: !Text+    , _cdlSortOrder   :: !(Maybe ChromeosDevicesListSortOrder)+    , _cdlQuery       :: !(Maybe Text)+    , _cdlProjection  :: !(Maybe ChromeosDevicesListProjection)+    , _cdlPageToken   :: !(Maybe Text)+    , _cdlMaxResults  :: !(Maybe (Textual Int32))     } deriving (Eq,Show,Data,Typeable,Generic)  -- | Creates a value of 'ChromeosDevicesList' with the minimum fields required to make a request.@@ -85,6 +88,8 @@ -- -- * 'cdlOrderBy' --+-- * 'cdlOrgUnitPath'+-- -- * 'cdlCustomerId' -- -- * 'cdlSortOrder'@@ -102,6 +107,7 @@ chromeosDevicesList pCdlCustomerId_ =     ChromeosDevicesList'     { _cdlOrderBy = Nothing+    , _cdlOrgUnitPath = Nothing     , _cdlCustomerId = pCdlCustomerId_     , _cdlSortOrder = Nothing     , _cdlQuery = Nothing@@ -115,7 +121,13 @@ cdlOrderBy   = lens _cdlOrderBy (\ s a -> s{_cdlOrderBy = a}) --- | Immutable id of the Google Apps account+-- | Full path of the organizational unit or its ID+cdlOrgUnitPath :: Lens' ChromeosDevicesList (Maybe Text)+cdlOrgUnitPath+  = lens _cdlOrgUnitPath+      (\ s a -> s{_cdlOrgUnitPath = a})++-- | Immutable ID of the G Suite account cdlCustomerId :: Lens' ChromeosDevicesList Text cdlCustomerId   = lens _cdlCustomerId@@ -128,7 +140,7 @@   = lens _cdlSortOrder (\ s a -> s{_cdlSortOrder = a})  -- | Search string in the format given at--- http:\/\/support.google.com\/chromeos\/a\/bin\/answer.py?hl=en&answer=1698333+-- http:\/\/support.google.com\/chromeos\/a\/bin\/answer.py?answer=1698333 cdlQuery :: Lens' ChromeosDevicesList (Maybe Text) cdlQuery = lens _cdlQuery (\ s a -> s{_cdlQuery = a}) @@ -156,7 +168,8 @@              '["https://www.googleapis.com/auth/admin.directory.device.chromeos",                "https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly"]         requestClient ChromeosDevicesList'{..}-          = go _cdlCustomerId _cdlOrderBy _cdlSortOrder+          = go _cdlCustomerId _cdlOrderBy _cdlOrgUnitPath+              _cdlSortOrder               _cdlQuery               _cdlProjection               _cdlPageToken
+ gen/Network/Google/Resource/Directory/ChromeosDevices/MoveDevicesToOu.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Move or insert multiple Chrome OS Devices to organizational unit+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.chromeosdevices.moveDevicesToOu@.+module Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu+    (+    -- * REST Resource+      ChromeosDevicesMoveDevicesToOuResource++    -- * Creating a Request+    , chromeosDevicesMoveDevicesToOu+    , ChromeosDevicesMoveDevicesToOu++    -- * Request Lenses+    , cdmdtoPayload+    , cdmdtoOrgUnitPath+    , cdmdtoCustomerId+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.chromeosdevices.moveDevicesToOu@ method which the+-- 'ChromeosDevicesMoveDevicesToOu' request conforms to.+type ChromeosDevicesMoveDevicesToOuResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "devices" :>+                 "chromeos" :>+                   "moveDevicesToOu" :>+                     QueryParam "orgUnitPath" Text :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] ChromeOSMoveDevicesToOu :>+                           Post '[JSON] ()++-- | Move or insert multiple Chrome OS Devices to organizational unit+--+-- /See:/ 'chromeosDevicesMoveDevicesToOu' smart constructor.+data ChromeosDevicesMoveDevicesToOu = ChromeosDevicesMoveDevicesToOu'+    { _cdmdtoPayload     :: !ChromeOSMoveDevicesToOu+    , _cdmdtoOrgUnitPath :: !Text+    , _cdmdtoCustomerId  :: !Text+    } 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:+--+-- * 'cdmdtoPayload'+--+-- * 'cdmdtoOrgUnitPath'+--+-- * 'cdmdtoCustomerId'+chromeosDevicesMoveDevicesToOu+    :: ChromeOSMoveDevicesToOu -- ^ 'cdmdtoPayload'+    -> Text -- ^ 'cdmdtoOrgUnitPath'+    -> Text -- ^ 'cdmdtoCustomerId'+    -> ChromeosDevicesMoveDevicesToOu+chromeosDevicesMoveDevicesToOu pCdmdtoPayload_ pCdmdtoOrgUnitPath_ pCdmdtoCustomerId_ =+    ChromeosDevicesMoveDevicesToOu'+    { _cdmdtoPayload = pCdmdtoPayload_+    , _cdmdtoOrgUnitPath = pCdmdtoOrgUnitPath_+    , _cdmdtoCustomerId = pCdmdtoCustomerId_+    }++-- | Multipart request metadata.+cdmdtoPayload :: Lens' ChromeosDevicesMoveDevicesToOu ChromeOSMoveDevicesToOu+cdmdtoPayload+  = lens _cdmdtoPayload+      (\ s a -> s{_cdmdtoPayload = a})++-- | Full path of the target organizational unit or its ID+cdmdtoOrgUnitPath :: Lens' ChromeosDevicesMoveDevicesToOu Text+cdmdtoOrgUnitPath+  = lens _cdmdtoOrgUnitPath+      (\ s a -> s{_cdmdtoOrgUnitPath = a})++-- | Immutable ID of the G Suite account+cdmdtoCustomerId :: Lens' ChromeosDevicesMoveDevicesToOu Text+cdmdtoCustomerId+  = lens _cdmdtoCustomerId+      (\ s a -> s{_cdmdtoCustomerId = a})++instance GoogleRequest ChromeosDevicesMoveDevicesToOu+         where+        type Rs ChromeosDevicesMoveDevicesToOu = ()+        type Scopes ChromeosDevicesMoveDevicesToOu =+             '["https://www.googleapis.com/auth/admin.directory.device.chromeos"]+        requestClient ChromeosDevicesMoveDevicesToOu'{..}+          = go _cdmdtoCustomerId (Just _cdmdtoOrgUnitPath)+              (Just AltJSON)+              _cdmdtoPayload+              directoryService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ChromeosDevicesMoveDevicesToOuResource)+                      mempty
gen/Network/Google/Resource/Directory/ChromeosDevices/Patch.hs view
@@ -99,13 +99,13 @@ cdpPayload   = lens _cdpPayload (\ s a -> s{_cdpPayload = a}) --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account cdpCustomerId :: Lens' ChromeosDevicesPatch Text cdpCustomerId   = lens _cdpCustomerId       (\ s a -> s{_cdpCustomerId = a}) --- | Immutable id of Chrome OS Device+-- | Immutable ID of Chrome OS Device cdpDeviceId :: Lens' ChromeosDevicesPatch Text cdpDeviceId   = lens _cdpDeviceId (\ s a -> s{_cdpDeviceId = a})
gen/Network/Google/Resource/Directory/ChromeosDevices/Update.hs view
@@ -99,13 +99,13 @@ cduPayload   = lens _cduPayload (\ s a -> s{_cduPayload = a}) --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account cduCustomerId :: Lens' ChromeosDevicesUpdate Text cduCustomerId   = lens _cduCustomerId       (\ s a -> s{_cduCustomerId = a}) --- | Immutable id of Chrome OS Device+-- | Immutable ID of Chrome OS Device cduDeviceId :: Lens' ChromeosDevicesUpdate Text cduDeviceId   = lens _cduDeviceId (\ s a -> s{_cduDeviceId = a})
gen/Network/Google/Resource/Directory/DomainAliases/Delete.hs view
@@ -83,7 +83,7 @@   = lens _dadDomainAliasName       (\ s a -> s{_dadDomainAliasName = a}) --- | Immutable id of the Google Apps account.+-- | Immutable ID of the G Suite account. dadCustomer :: Lens' DomainAliasesDelete Text dadCustomer   = lens _dadCustomer (\ s a -> s{_dadCustomer = a})
gen/Network/Google/Resource/Directory/DomainAliases/Get.hs view
@@ -83,7 +83,7 @@   = lens _dagDomainAliasName       (\ s a -> s{_dagDomainAliasName = a}) --- | Immutable id of the Google Apps account.+-- | Immutable ID of the G Suite account. dagCustomer :: Lens' DomainAliasesGet Text dagCustomer   = lens _dagCustomer (\ s a -> s{_dagCustomer = a})
gen/Network/Google/Resource/Directory/DomainAliases/Insert.hs view
@@ -83,7 +83,7 @@ daiPayload   = lens _daiPayload (\ s a -> s{_daiPayload = a}) --- | Immutable id of the Google Apps account.+-- | Immutable ID of the G Suite account. daiCustomer :: Lens' DomainAliasesInsert Text daiCustomer   = lens _daiCustomer (\ s a -> s{_daiCustomer = a})
gen/Network/Google/Resource/Directory/DomainAliases/List.hs view
@@ -76,7 +76,7 @@     , _dalParentDomainName = Nothing     } --- | Immutable id of the Google Apps account.+-- | Immutable ID of the G Suite account. dalCustomer :: Lens' DomainAliasesList Text dalCustomer   = lens _dalCustomer (\ s a -> s{_dalCustomer = a})
gen/Network/Google/Resource/Directory/Domains/Delete.hs view
@@ -77,7 +77,7 @@     , _ddDomainName = pDdDomainName_     } --- | Immutable id of the Google Apps account.+-- | Immutable ID of the G Suite account. ddCustomer :: Lens' DomainsDelete Text ddCustomer   = lens _ddCustomer (\ s a -> s{_ddCustomer = a})
gen/Network/Google/Resource/Directory/Domains/Get.hs view
@@ -77,7 +77,7 @@     , _dgDomainName = pDgDomainName_     } --- | Immutable id of the Google Apps account.+-- | Immutable ID of the G Suite account. dgCustomer :: Lens' DomainsGet Text dgCustomer   = lens _dgCustomer (\ s a -> s{_dgCustomer = a})
gen/Network/Google/Resource/Directory/Domains/Insert.hs view
@@ -82,7 +82,7 @@ diPayload   = lens _diPayload (\ s a -> s{_diPayload = a}) --- | Immutable id of the Google Apps account.+-- | Immutable ID of the G Suite account. diCustomer :: Lens' DomainsInsert Text diCustomer   = lens _diCustomer (\ s a -> s{_diCustomer = a})
gen/Network/Google/Resource/Directory/Domains/List.hs view
@@ -70,7 +70,7 @@     { _dlCustomer = pDlCustomer_     } --- | Immutable id of the Google Apps account.+-- | Immutable ID of the G Suite account. dlCustomer :: Lens' DomainsList Text dlCustomer   = lens _dlCustomer (\ s a -> s{_dlCustomer = a})
gen/Network/Google/Resource/Directory/Groups/Aliases/Delete.hs view
@@ -77,7 +77,7 @@     , _gadAlias = pGadAlias_     } --- | Email or immutable Id of the group+-- | Email or immutable ID of the group gadGroupKey :: Lens' GroupsAliasesDelete Text gadGroupKey   = lens _gadGroupKey (\ s a -> s{_gadGroupKey = a})
gen/Network/Google/Resource/Directory/Groups/Aliases/Insert.hs view
@@ -77,7 +77,7 @@     , _gaiPayload = pGaiPayload_     } --- | Email or immutable Id of the group+-- | Email or immutable ID of the group gaiGroupKey :: Lens' GroupsAliasesInsert Text gaiGroupKey   = lens _gaiGroupKey (\ s a -> s{_gaiGroupKey = a})
gen/Network/Google/Resource/Directory/Groups/Aliases/List.hs view
@@ -70,7 +70,7 @@     { _galGroupKey = pGalGroupKey_     } --- | Email or immutable Id of the group+-- | Email or immutable ID of the group galGroupKey :: Lens' GroupsAliasesList Text galGroupKey   = lens _galGroupKey (\ s a -> s{_galGroupKey = a})
gen/Network/Google/Resource/Directory/Groups/Delete.hs view
@@ -69,7 +69,7 @@     { _gdGroupKey = pGdGroupKey_     } --- | Email or immutable Id of the group+-- | Email or immutable ID of the group gdGroupKey :: Lens' GroupsDelete Text gdGroupKey   = lens _gdGroupKey (\ s a -> s{_gdGroupKey = a})
gen/Network/Google/Resource/Directory/Groups/Get.hs view
@@ -69,7 +69,7 @@     { _ggGroupKey = pGgGroupKey_     } --- | Email or immutable Id of the group+-- | Email or immutable ID of the group ggGroupKey :: Lens' GroupsGet Text ggGroupKey   = lens _ggGroupKey (\ s a -> s{_ggGroupKey = a})
gen/Network/Google/Resource/Directory/Groups/List.hs view
@@ -20,7 +20,7 @@ -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Retrieve all groups in a domain (paginated)+-- Retrieve all groups of a domain or of a user given a userKey (paginated) -- -- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.groups.list@. module Network.Google.Resource.Directory.Groups.List@@ -33,8 +33,11 @@     , GroupsList      -- * Request Lenses+    , glOrderBy     , glDomain+    , glSortOrder     , glCustomer+    , glQuery     , glPageToken     , glUserKey     , glMaxResults@@ -50,19 +53,25 @@        "directory" :>          "v1" :>            "groups" :>-             QueryParam "domain" Text :>-               QueryParam "customer" Text :>-                 QueryParam "pageToken" Text :>-                   QueryParam "userKey" Text :>-                     QueryParam "maxResults" (Textual Int32) :>-                       QueryParam "alt" AltJSON :> Get '[JSON] Groups+             QueryParam "orderBy" GroupsListOrderBy :>+               QueryParam "domain" Text :>+                 QueryParam "sortOrder" GroupsListSortOrder :>+                   QueryParam "customer" Text :>+                     QueryParam "query" Text :>+                       QueryParam "pageToken" Text :>+                         QueryParam "userKey" Text :>+                           QueryParam "maxResults" (Textual Int32) :>+                             QueryParam "alt" AltJSON :> Get '[JSON] Groups --- | Retrieve all groups in a domain (paginated)+-- | Retrieve all groups of a domain or of a user given a userKey (paginated) -- -- /See:/ 'groupsList' smart constructor. data GroupsList = GroupsList'-    { _glDomain     :: !(Maybe Text)+    { _glOrderBy    :: !(Maybe GroupsListOrderBy)+    , _glDomain     :: !(Maybe Text)+    , _glSortOrder  :: !(Maybe GroupsListSortOrder)     , _glCustomer   :: !(Maybe Text)+    , _glQuery      :: !(Maybe Text)     , _glPageToken  :: !(Maybe Text)     , _glUserKey    :: !(Maybe Text)     , _glMaxResults :: !(Maybe (Textual Int32))@@ -72,10 +81,16 @@ -- -- Use one of the following lenses to modify other fields as desired: --+-- * 'glOrderBy'+-- -- * 'glDomain' --+-- * 'glSortOrder'+-- -- * 'glCustomer' --+-- * 'glQuery'+-- -- * 'glPageToken' -- -- * 'glUserKey'@@ -85,24 +100,44 @@     :: GroupsList groupsList =     GroupsList'-    { _glDomain = Nothing+    { _glOrderBy = Nothing+    , _glDomain = Nothing+    , _glSortOrder = Nothing     , _glCustomer = Nothing+    , _glQuery = Nothing     , _glPageToken = Nothing     , _glUserKey = Nothing     , _glMaxResults = Nothing     } +-- | Column to use for sorting results+glOrderBy :: Lens' GroupsList (Maybe GroupsListOrderBy)+glOrderBy+  = lens _glOrderBy (\ s a -> s{_glOrderBy = a})+ -- | Name of the domain. Fill this field to get groups from only this domain. -- To return all groups in a multi-domain fill customer field instead. glDomain :: Lens' GroupsList (Maybe Text) glDomain = lens _glDomain (\ s a -> s{_glDomain = a}) --- | Immutable id of the Google Apps account. In case of multi-domain, to--- fetch all groups for a customer, fill this field instead of domain.+-- | Whether to return results in ascending or descending order. Only of use+-- when orderBy is also used+glSortOrder :: Lens' GroupsList (Maybe GroupsListSortOrder)+glSortOrder+  = lens _glSortOrder (\ s a -> s{_glSortOrder = a})++-- | Immutable ID of the G Suite account. In case of multi-domain, to fetch+-- all groups for a customer, fill this field instead of domain. glCustomer :: Lens' GroupsList (Maybe Text) glCustomer   = lens _glCustomer (\ s a -> s{_glCustomer = a}) +-- | Query string search. Should be of the form \"\". Complete documentation+-- is at+-- https:\/\/developers.google.com\/admin-sdk\/directory\/v1\/guides\/search-groups+glQuery :: Lens' GroupsList (Maybe Text)+glQuery = lens _glQuery (\ s a -> s{_glQuery = a})+ -- | Token to specify next page in the list glPageToken :: Lens' GroupsList (Maybe Text) glPageToken@@ -127,7 +162,10 @@              '["https://www.googleapis.com/auth/admin.directory.group",                "https://www.googleapis.com/auth/admin.directory.group.readonly"]         requestClient GroupsList'{..}-          = go _glDomain _glCustomer _glPageToken _glUserKey+          = go _glOrderBy _glDomain _glSortOrder _glCustomer+              _glQuery+              _glPageToken+              _glUserKey               _glMaxResults               (Just AltJSON)               directoryService
gen/Network/Google/Resource/Directory/Groups/Patch.hs view
@@ -76,7 +76,7 @@     , _gpPayload = pGpPayload_     } --- | Email or immutable Id of the group. If Id, it should match with id of+-- | Email or immutable ID of the group. If ID, it should match with id of -- group object gpGroupKey :: Lens' GroupsPatch Text gpGroupKey
gen/Network/Google/Resource/Directory/Groups/Update.hs view
@@ -76,7 +76,7 @@     , _guPayload = pGuPayload_     } --- | Email or immutable Id of the group. If Id, it should match with id of+-- | Email or immutable ID of the group. If ID, it should match with id of -- group object guGroupKey :: Lens' GroupsUpdate Text guGroupKey
gen/Network/Google/Resource/Directory/Members/Delete.hs view
@@ -77,12 +77,12 @@     , _mdGroupKey = pMdGroupKey_     } --- | Email or immutable Id of the member+-- | Email or immutable ID of the member mdMemberKey :: Lens' MembersDelete Text mdMemberKey   = lens _mdMemberKey (\ s a -> s{_mdMemberKey = a}) --- | Email or immutable Id of the group+-- | Email or immutable ID of the group mdGroupKey :: Lens' MembersDelete Text mdGroupKey   = lens _mdGroupKey (\ s a -> s{_mdGroupKey = a})
gen/Network/Google/Resource/Directory/Members/Get.hs view
@@ -77,12 +77,12 @@     , _mgGroupKey = pMgGroupKey_     } --- | Email or immutable Id of the member+-- | Email or immutable ID of the member mgMemberKey :: Lens' MembersGet Text mgMemberKey   = lens _mgMemberKey (\ s a -> s{_mgMemberKey = a}) --- | Email or immutable Id of the group+-- | Email or immutable ID of the group mgGroupKey :: Lens' MembersGet Text mgGroupKey   = lens _mgGroupKey (\ s a -> s{_mgGroupKey = a})
+ gen/Network/Google/Resource/Directory/Members/HasMember.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.Members.HasMember+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Checks whether the given user is a member of the group. Membership can+-- be direct or nested.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.members.hasMember@.+module Network.Google.Resource.Directory.Members.HasMember+    (+    -- * REST Resource+      MembersHasMemberResource++    -- * Creating a Request+    , membersHasMember'+    , MembersHasMember'++    -- * Request Lenses+    , mhmMemberKey+    , mhmGroupKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.members.hasMember@ method which the+-- 'MembersHasMember'' request conforms to.+type MembersHasMemberResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "groups" :>+             Capture "groupKey" Text :>+               "hasMember" :>+                 Capture "memberKey" Text :>+                   QueryParam "alt" AltJSON :>+                     Get '[JSON] MembersHasMember++-- | Checks whether the given user is a member of the group. Membership can+-- be direct or nested.+--+-- /See:/ 'membersHasMember'' smart constructor.+data MembersHasMember' = MembersHasMember''+    { _mhmMemberKey :: !Text+    , _mhmGroupKey  :: !Text+    } 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:+--+-- * 'mhmMemberKey'+--+-- * 'mhmGroupKey'+membersHasMember'+    :: Text -- ^ 'mhmMemberKey'+    -> Text -- ^ 'mhmGroupKey'+    -> MembersHasMember'+membersHasMember' pMhmMemberKey_ 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.+mhmMemberKey :: Lens' MembersHasMember' Text+mhmMemberKey+  = lens _mhmMemberKey (\ s a -> s{_mhmMemberKey = a})++-- | Identifies the group in the API request. The value can be the group\'s+-- email address, group alias, or the unique group ID.+mhmGroupKey :: Lens' MembersHasMember' Text+mhmGroupKey+  = lens _mhmGroupKey (\ s a -> s{_mhmGroupKey = a})++instance GoogleRequest MembersHasMember' where+        type Rs MembersHasMember' = MembersHasMember+        type Scopes MembersHasMember' =+             '["https://www.googleapis.com/auth/admin.directory.group",+               "https://www.googleapis.com/auth/admin.directory.group.member",+               "https://www.googleapis.com/auth/admin.directory.group.member.readonly",+               "https://www.googleapis.com/auth/admin.directory.group.readonly"]+        requestClient MembersHasMember''{..}+          = go _mhmGroupKey _mhmMemberKey (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy MembersHasMemberResource)+                      mempty
gen/Network/Google/Resource/Directory/Members/Insert.hs view
@@ -77,7 +77,7 @@     , _miPayload = pMiPayload_     } --- | Email or immutable Id of the group+-- | Email or immutable ID of the group miGroupKey :: Lens' MembersInsert Text miGroupKey   = lens _miGroupKey (\ s a -> s{_miGroupKey = a})
gen/Network/Google/Resource/Directory/Members/List.hs view
@@ -36,6 +36,7 @@     , mlRoles     , mlGroupKey     , mlPageToken+    , mlIncludeDerivedMembership     , mlMaxResults     ) where @@ -53,17 +54,19 @@                "members" :>                  QueryParam "roles" Text :>                    QueryParam "pageToken" Text :>-                     QueryParam "maxResults" (Textual Int32) :>-                       QueryParam "alt" AltJSON :> Get '[JSON] Members+                     QueryParam "includeDerivedMembership" Bool :>+                       QueryParam "maxResults" (Textual Int32) :>+                         QueryParam "alt" AltJSON :> Get '[JSON] Members  -- | Retrieve all members in a group (paginated) -- -- /See:/ 'membersList' smart constructor. data MembersList = MembersList'-    { _mlRoles      :: !(Maybe Text)-    , _mlGroupKey   :: !Text-    , _mlPageToken  :: !(Maybe Text)-    , _mlMaxResults :: !(Maybe (Textual Int32))+    { _mlRoles                    :: !(Maybe Text)+    , _mlGroupKey                 :: !Text+    , _mlPageToken                :: !(Maybe Text)+    , _mlIncludeDerivedMembership :: !(Maybe Bool)+    , _mlMaxResults               :: !(Maybe (Textual Int32))     } deriving (Eq,Show,Data,Typeable,Generic)  -- | Creates a value of 'MembersList' with the minimum fields required to make a request.@@ -76,6 +79,8 @@ -- -- * 'mlPageToken' --+-- * 'mlIncludeDerivedMembership'+-- -- * 'mlMaxResults' membersList     :: Text -- ^ 'mlGroupKey'@@ -85,6 +90,7 @@     { _mlRoles = Nothing     , _mlGroupKey = pMlGroupKey_     , _mlPageToken = Nothing+    , _mlIncludeDerivedMembership = Nothing     , _mlMaxResults = Nothing     } @@ -92,7 +98,7 @@ mlRoles :: Lens' MembersList (Maybe Text) mlRoles = lens _mlRoles (\ s a -> s{_mlRoles = a}) --- | Email or immutable Id of the group+-- | Email or immutable ID of the group mlGroupKey :: Lens' MembersList Text mlGroupKey   = lens _mlGroupKey (\ s a -> s{_mlGroupKey = a})@@ -102,6 +108,12 @@ mlPageToken   = lens _mlPageToken (\ s a -> s{_mlPageToken = a}) +-- | Whether to list indirect memberships. Default: false.+mlIncludeDerivedMembership :: Lens' MembersList (Maybe Bool)+mlIncludeDerivedMembership+  = lens _mlIncludeDerivedMembership+      (\ s a -> s{_mlIncludeDerivedMembership = a})+ -- | Maximum number of results to return. Default is 200 mlMaxResults :: Lens' MembersList (Maybe Int32) mlMaxResults@@ -116,7 +128,9 @@                "https://www.googleapis.com/auth/admin.directory.group.member.readonly",                "https://www.googleapis.com/auth/admin.directory.group.readonly"]         requestClient MembersList'{..}-          = go _mlGroupKey _mlRoles _mlPageToken _mlMaxResults+          = go _mlGroupKey _mlRoles _mlPageToken+              _mlIncludeDerivedMembership+              _mlMaxResults               (Just AltJSON)               directoryService           where go
gen/Network/Google/Resource/Directory/Members/Patch.hs view
@@ -86,13 +86,13 @@     , _mpPayload = pMpPayload_     } --- | Email or immutable Id of the user. If Id, it should match with id of+-- | Email or immutable ID of the user. If ID, it should match with id of -- member object mpMemberKey :: Lens' MembersPatch Text mpMemberKey   = lens _mpMemberKey (\ s a -> s{_mpMemberKey = a}) --- | Email or immutable Id of the group. If Id, it should match with id of+-- | Email or immutable ID of the group. If ID, it should match with id of -- group object mpGroupKey :: Lens' MembersPatch Text mpGroupKey
gen/Network/Google/Resource/Directory/Members/Update.hs view
@@ -84,13 +84,13 @@     , _muPayload = pMuPayload_     } --- | Email or immutable Id of the user. If Id, it should match with id of+-- | Email or immutable ID of the user. If ID, it should match with id of -- member object muMemberKey :: Lens' MembersUpdate Text muMemberKey   = lens _muMemberKey (\ s a -> s{_muMemberKey = a}) --- | Email or immutable Id of the group. If Id, it should match with id of+-- | Email or immutable ID of the group. If ID, it should match with id of -- group object muGroupKey :: Lens' MembersUpdate Text muGroupKey
gen/Network/Google/Resource/Directory/MobileDevices/Action.hs view
@@ -86,7 +86,7 @@     , _mdaCustomerId = pMdaCustomerId_     } --- | Immutable id of Mobile Device+-- | Immutable ID of Mobile Device mdaResourceId :: Lens' MobileDevicesAction Text mdaResourceId   = lens _mdaResourceId@@ -97,7 +97,7 @@ mdaPayload   = lens _mdaPayload (\ s a -> s{_mdaPayload = a}) --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account mdaCustomerId :: Lens' MobileDevicesAction Text mdaCustomerId   = lens _mdaCustomerId
gen/Network/Google/Resource/Directory/MobileDevices/Delete.hs view
@@ -78,13 +78,13 @@     , _mddCustomerId = pMddCustomerId_     } --- | Immutable id of Mobile Device+-- | Immutable ID of Mobile Device mddResourceId :: Lens' MobileDevicesDelete Text mddResourceId   = lens _mddResourceId       (\ s a -> s{_mddResourceId = a}) --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account mddCustomerId :: Lens' MobileDevicesDelete Text mddCustomerId   = lens _mddCustomerId
gen/Network/Google/Resource/Directory/MobileDevices/Get.hs view
@@ -84,13 +84,13 @@     , _mdgProjection = Nothing     } --- | Immutable id of Mobile Device+-- | Immutable ID of Mobile Device mdgResourceId :: Lens' MobileDevicesGet Text mdgResourceId   = lens _mdgResourceId       (\ s a -> s{_mdgResourceId = a}) --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account mdgCustomerId :: Lens' MobileDevicesGet Text mdgCustomerId   = lens _mdgCustomerId
gen/Network/Google/Resource/Directory/MobileDevices/List.hs view
@@ -114,7 +114,7 @@ mdlOrderBy   = lens _mdlOrderBy (\ s a -> s{_mdlOrderBy = a}) --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account mdlCustomerId :: Lens' MobileDevicesList Text mdlCustomerId   = lens _mdlCustomerId@@ -127,7 +127,7 @@   = lens _mdlSortOrder (\ s a -> s{_mdlSortOrder = a})  -- | Search string in the format given at--- http:\/\/support.google.com\/a\/bin\/answer.py?hl=en&answer=1408863#search+-- http:\/\/support.google.com\/a\/bin\/answer.py?answer=1408863#search mdlQuery :: Lens' MobileDevicesList (Maybe Text) mdlQuery = lens _mdlQuery (\ s a -> s{_mdlQuery = a}) 
gen/Network/Google/Resource/Directory/Notifications/Delete.hs view
@@ -77,8 +77,8 @@     , _ndNotificationId = pNdNotificationId_     } --- | The unique ID for the customer\'s Google account. The customerId is also--- returned as part of the Users resource.+-- | The unique ID for the customer\'s G Suite account. The customerId is+-- also returned as part of the Users resource. ndCustomer :: Lens' NotificationsDelete Text ndCustomer   = lens _ndCustomer (\ s a -> s{_ndCustomer = a})
gen/Network/Google/Resource/Directory/Notifications/Get.hs view
@@ -77,8 +77,8 @@     , _ngNotificationId = pNgNotificationId_     } --- | The unique ID for the customer\'s Google account. The customerId is also--- returned as part of the Users resource.+-- | The unique ID for the customer\'s G Suite account. The customerId is+-- also returned as part of the Users resource. ngCustomer :: Lens' NotificationsGet Text ngCustomer   = lens _ngCustomer (\ s a -> s{_ngCustomer = a})
gen/Network/Google/Resource/Directory/Notifications/List.hs view
@@ -88,7 +88,7 @@     , _nlMaxResults = Nothing     } --- | The unique ID for the customer\'s Google account.+-- | The unique ID for the customer\'s G Suite account. nlCustomer :: Lens' NotificationsList Text nlCustomer   = lens _nlCustomer (\ s a -> s{_nlCustomer = a})
gen/Network/Google/Resource/Directory/Notifications/Patch.hs view
@@ -90,7 +90,7 @@ npPayload   = lens _npPayload (\ s a -> s{_npPayload = a}) --- | The unique ID for the customer\'s Google account.+-- | The unique ID for the customer\'s G Suite account. npCustomer :: Lens' NotificationsPatch Text npCustomer   = lens _npCustomer (\ s a -> s{_npCustomer = a})
gen/Network/Google/Resource/Directory/Notifications/Update.hs view
@@ -90,7 +90,7 @@ nuPayload   = lens _nuPayload (\ s a -> s{_nuPayload = a}) --- | The unique ID for the customer\'s Google account.+-- | The unique ID for the customer\'s G Suite account. nuCustomer :: Lens' NotificationsUpdate Text nuCustomer   = lens _nuCustomer (\ s a -> s{_nuCustomer = a})
gen/Network/Google/Resource/Directory/OrgUnits/Delete.hs view
@@ -20,7 +20,7 @@ -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Remove Organization Unit+-- Remove organizational unit -- -- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.orgunits.delete@. module Network.Google.Resource.Directory.OrgUnits.Delete@@ -52,7 +52,7 @@                  Captures "orgUnitPath" Text :>                    QueryParam "alt" AltJSON :> Delete '[JSON] () --- | Remove Organization Unit+-- | Remove organizational unit -- -- /See:/ 'orgUnitsDelete' smart constructor. data OrgUnitsDelete = OrgUnitsDelete'@@ -77,14 +77,14 @@     , _oudCustomerId = pOudCustomerId_     } --- | Full path of the organization unit or its Id+-- | Full path of the organizational unit or its ID oudOrgUnitPath :: Lens' OrgUnitsDelete [Text] oudOrgUnitPath   = lens _oudOrgUnitPath       (\ s a -> s{_oudOrgUnitPath = a})       . _Coerce --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account oudCustomerId :: Lens' OrgUnitsDelete Text oudCustomerId   = lens _oudCustomerId
gen/Network/Google/Resource/Directory/OrgUnits/Get.hs view
@@ -20,7 +20,7 @@ -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Retrieve Organization Unit+-- Retrieve organizational unit -- -- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.orgunits.get@. module Network.Google.Resource.Directory.OrgUnits.Get@@ -52,7 +52,7 @@                  Captures "orgUnitPath" Text :>                    QueryParam "alt" AltJSON :> Get '[JSON] OrgUnit --- | Retrieve Organization Unit+-- | Retrieve organizational unit -- -- /See:/ 'orgUnitsGet' smart constructor. data OrgUnitsGet = OrgUnitsGet'@@ -77,14 +77,14 @@     , _ougCustomerId = pOugCustomerId_     } --- | Full path of the organization unit or its Id+-- | Full path of the organizational unit or its ID ougOrgUnitPath :: Lens' OrgUnitsGet [Text] ougOrgUnitPath   = lens _ougOrgUnitPath       (\ s a -> s{_ougOrgUnitPath = a})       . _Coerce --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account ougCustomerId :: Lens' OrgUnitsGet Text ougCustomerId   = lens _ougCustomerId
gen/Network/Google/Resource/Directory/OrgUnits/Insert.hs view
@@ -20,7 +20,7 @@ -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Add Organization Unit+-- Add organizational unit -- -- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.orgunits.insert@. module Network.Google.Resource.Directory.OrgUnits.Insert@@ -52,7 +52,7 @@                  QueryParam "alt" AltJSON :>                    ReqBody '[JSON] OrgUnit :> Post '[JSON] OrgUnit --- | Add Organization Unit+-- | Add organizational unit -- -- /See:/ 'orgUnitsInsert' smart constructor. data OrgUnitsInsert = OrgUnitsInsert'@@ -82,7 +82,7 @@ ouiPayload   = lens _ouiPayload (\ s a -> s{_ouiPayload = a}) --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account ouiCustomerId :: Lens' OrgUnitsInsert Text ouiCustomerId   = lens _ouiCustomerId
gen/Network/Google/Resource/Directory/OrgUnits/List.hs view
@@ -20,7 +20,7 @@ -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Retrieve all Organization Units+-- Retrieve all organizational units -- -- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.orgunits.list@. module Network.Google.Resource.Directory.OrgUnits.List@@ -54,7 +54,7 @@                    QueryParam "type" OrgUnitsListType :>                      QueryParam "alt" AltJSON :> Get '[JSON] OrgUnits --- | Retrieve all Organization Units+-- | Retrieve all organizational units -- -- /See:/ 'orgUnitsList' smart constructor. data OrgUnitsList = OrgUnitsList'@@ -82,13 +82,13 @@     , _oulType = Nothing     } --- | the URL-encoded organization unit\'s path or its Id+-- | the URL-encoded organizational unit\'s path or its ID oulOrgUnitPath :: Lens' OrgUnitsList Text oulOrgUnitPath   = lens _oulOrgUnitPath       (\ s a -> s{_oulOrgUnitPath = a}) --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account oulCustomerId :: Lens' OrgUnitsList Text oulCustomerId   = lens _oulCustomerId
gen/Network/Google/Resource/Directory/OrgUnits/Patch.hs view
@@ -20,7 +20,7 @@ -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Update Organization Unit. This method supports patch semantics.+-- Update organizational unit. This method supports patch semantics. -- -- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.orgunits.patch@. module Network.Google.Resource.Directory.OrgUnits.Patch@@ -54,7 +54,7 @@                    QueryParam "alt" AltJSON :>                      ReqBody '[JSON] OrgUnit :> Patch '[JSON] OrgUnit --- | Update Organization Unit. This method supports patch semantics.+-- | Update organizational unit. This method supports patch semantics. -- -- /See:/ 'orgUnitsPatch' smart constructor. data OrgUnitsPatch = OrgUnitsPatch'@@ -89,14 +89,14 @@ oupPayload   = lens _oupPayload (\ s a -> s{_oupPayload = a}) --- | Full path of the organization unit or its Id+-- | Full path of the organizational unit or its ID oupOrgUnitPath :: Lens' OrgUnitsPatch [Text] oupOrgUnitPath   = lens _oupOrgUnitPath       (\ s a -> s{_oupOrgUnitPath = a})       . _Coerce --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account oupCustomerId :: Lens' OrgUnitsPatch Text oupCustomerId   = lens _oupCustomerId
gen/Network/Google/Resource/Directory/OrgUnits/Update.hs view
@@ -20,7 +20,7 @@ -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Update Organization Unit+-- Update organizational unit -- -- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.orgunits.update@. module Network.Google.Resource.Directory.OrgUnits.Update@@ -54,7 +54,7 @@                    QueryParam "alt" AltJSON :>                      ReqBody '[JSON] OrgUnit :> Put '[JSON] OrgUnit --- | Update Organization Unit+-- | Update organizational unit -- -- /See:/ 'orgUnitsUpdate' smart constructor. data OrgUnitsUpdate = OrgUnitsUpdate'@@ -89,14 +89,14 @@ ouuPayload   = lens _ouuPayload (\ s a -> s{_ouuPayload = a}) --- | Full path of the organization unit or its Id+-- | Full path of the organizational unit or its ID ouuOrgUnitPath :: Lens' OrgUnitsUpdate [Text] ouuOrgUnitPath   = lens _ouuOrgUnitPath       (\ s a -> s{_ouuOrgUnitPath = a})       . _Coerce --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account ouuCustomerId :: Lens' OrgUnitsUpdate Text ouuCustomerId   = lens _ouuCustomerId
gen/Network/Google/Resource/Directory/Privileges/List.hs view
@@ -72,7 +72,7 @@     { _plCustomer = pPlCustomer_     } --- | Immutable ID of the Google Apps account.+-- | Immutable ID of the G Suite account. plCustomer :: Lens' PrivilegesList Text plCustomer   = lens _plCustomer (\ s a -> s{_plCustomer = a})
+ gen/Network/Google/Resource/Directory/ResolvedAppAccessSettings/GetSettings.hs view
@@ -0,0 +1,75 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves resolved app access settings of the logged in user.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resolvedAppAccessSettings.GetSettings@.+module Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings+    (+    -- * REST Resource+      ResolvedAppAccessSettingsGetSettingsResource++    -- * Creating a Request+    , resolvedAppAccessSettingsGetSettings+    , ResolvedAppAccessSettingsGetSettings++    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.resolvedAppAccessSettings.GetSettings@ method which the+-- 'ResolvedAppAccessSettingsGetSettings' request conforms to.+type ResolvedAppAccessSettingsGetSettingsResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "resolvedappaccesssettings" :>+             QueryParam "alt" AltJSON :>+               Get '[JSON] AppAccessCollections++-- | Retrieves resolved app access settings of the logged in user.+--+-- /See:/ 'resolvedAppAccessSettingsGetSettings' smart constructor.+data ResolvedAppAccessSettingsGetSettings =+    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+        type Rs ResolvedAppAccessSettingsGetSettings =+             AppAccessCollections+        type Scopes ResolvedAppAccessSettingsGetSettings =+             '[]+        requestClient ResolvedAppAccessSettingsGetSettings'{}+          = go (Just AltJSON) directoryService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ResolvedAppAccessSettingsGetSettingsResource)+                      mempty
+ gen/Network/Google/Resource/Directory/ResolvedAppAccessSettings/ListTrustedApps.hs view
@@ -0,0 +1,78 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of apps trusted by the admin of the logged in user.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resolvedAppAccessSettings.ListTrustedApps@.+module Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps+    (+    -- * REST Resource+      ResolvedAppAccessSettingsListTrustedAppsResource++    -- * Creating a Request+    , resolvedAppAccessSettingsListTrustedApps+    , ResolvedAppAccessSettingsListTrustedApps++    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.resolvedAppAccessSettings.ListTrustedApps@ method which the+-- 'ResolvedAppAccessSettingsListTrustedApps' request conforms to.+type ResolvedAppAccessSettingsListTrustedAppsResource+     =+     "admin" :>+       "directory" :>+         "v1" :>+           "trustedapps" :>+             QueryParam "alt" AltJSON :> Get '[JSON] TrustedApps++-- | Retrieves the list of apps trusted by the admin of the logged in user.+--+-- /See:/ 'resolvedAppAccessSettingsListTrustedApps' smart constructor.+data ResolvedAppAccessSettingsListTrustedApps =+    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'++instance GoogleRequest+         ResolvedAppAccessSettingsListTrustedApps where+        type Rs ResolvedAppAccessSettingsListTrustedApps =+             TrustedApps+        type Scopes ResolvedAppAccessSettingsListTrustedApps+             = '[]+        requestClient+          ResolvedAppAccessSettingsListTrustedApps'{}+          = go (Just AltJSON) directoryService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ResolvedAppAccessSettingsListTrustedAppsResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Resources/Buildings/Delete.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.Resources.Buildings.Delete+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a building.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.buildings.delete@.+module Network.Google.Resource.Directory.Resources.Buildings.Delete+    (+    -- * REST Resource+      ResourcesBuildingsDeleteResource++    -- * Creating a Request+    , resourcesBuildingsDelete+    , ResourcesBuildingsDelete++    -- * Request Lenses+    , rbdBuildingId+    , rbdCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.resources.buildings.delete@ method which the+-- 'ResourcesBuildingsDelete' request conforms to.+type ResourcesBuildingsDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "resources" :>+                 "buildings" :>+                   Capture "buildingId" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes a building.+--+-- /See:/ 'resourcesBuildingsDelete' smart constructor.+data ResourcesBuildingsDelete = ResourcesBuildingsDelete'+    { _rbdBuildingId :: !Text+    , _rbdCustomer   :: !Text+    } 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:+--+-- * 'rbdBuildingId'+--+-- * 'rbdCustomer'+resourcesBuildingsDelete+    :: Text -- ^ 'rbdBuildingId'+    -> Text -- ^ 'rbdCustomer'+    -> ResourcesBuildingsDelete+resourcesBuildingsDelete pRbdBuildingId_ pRbdCustomer_ =+    ResourcesBuildingsDelete'+    { _rbdBuildingId = pRbdBuildingId_+    , _rbdCustomer = pRbdCustomer_+    }++-- | The ID of the building to delete.+rbdBuildingId :: Lens' ResourcesBuildingsDelete Text+rbdBuildingId+  = lens _rbdBuildingId+      (\ s a -> s{_rbdBuildingId = a})++-- | 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+-- account\'s customer ID.+rbdCustomer :: Lens' ResourcesBuildingsDelete Text+rbdCustomer+  = lens _rbdCustomer (\ s a -> s{_rbdCustomer = a})++instance GoogleRequest ResourcesBuildingsDelete where+        type Rs ResourcesBuildingsDelete = ()+        type Scopes ResourcesBuildingsDelete =+             '["https://www.googleapis.com/auth/admin.directory.resource.calendar"]+        requestClient ResourcesBuildingsDelete'{..}+          = go _rbdCustomer _rbdBuildingId (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ResourcesBuildingsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Resources/Buildings/Get.hs view
@@ -0,0 +1,105 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.Resources.Buildings.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a building.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.buildings.get@.+module Network.Google.Resource.Directory.Resources.Buildings.Get+    (+    -- * REST Resource+      ResourcesBuildingsGetResource++    -- * Creating a Request+    , resourcesBuildingsGet+    , ResourcesBuildingsGet++    -- * Request Lenses+    , rbgBuildingId+    , rbgCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.resources.buildings.get@ method which the+-- 'ResourcesBuildingsGet' request conforms to.+type ResourcesBuildingsGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "resources" :>+                 "buildings" :>+                   Capture "buildingId" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] Building++-- | Retrieves a building.+--+-- /See:/ 'resourcesBuildingsGet' smart constructor.+data ResourcesBuildingsGet = ResourcesBuildingsGet'+    { _rbgBuildingId :: !Text+    , _rbgCustomer   :: !Text+    } 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:+--+-- * 'rbgBuildingId'+--+-- * 'rbgCustomer'+resourcesBuildingsGet+    :: Text -- ^ 'rbgBuildingId'+    -> Text -- ^ 'rbgCustomer'+    -> ResourcesBuildingsGet+resourcesBuildingsGet pRbgBuildingId_ pRbgCustomer_ =+    ResourcesBuildingsGet'+    { _rbgBuildingId = pRbgBuildingId_+    , _rbgCustomer = pRbgCustomer_+    }++-- | The unique ID of the building to retrieve.+rbgBuildingId :: Lens' ResourcesBuildingsGet Text+rbgBuildingId+  = lens _rbgBuildingId+      (\ s a -> s{_rbgBuildingId = a})++-- | 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+-- account\'s customer ID.+rbgCustomer :: Lens' ResourcesBuildingsGet Text+rbgCustomer+  = lens _rbgCustomer (\ s a -> s{_rbgCustomer = a})++instance GoogleRequest ResourcesBuildingsGet where+        type Rs ResourcesBuildingsGet = Building+        type Scopes ResourcesBuildingsGet =+             '["https://www.googleapis.com/auth/admin.directory.resource.calendar",+               "https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly"]+        requestClient ResourcesBuildingsGet'{..}+          = go _rbgCustomer _rbgBuildingId (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ResourcesBuildingsGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Resources/Buildings/Insert.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.Resources.Buildings.Insert+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Inserts a building.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.buildings.insert@.+module Network.Google.Resource.Directory.Resources.Buildings.Insert+    (+    -- * REST Resource+      ResourcesBuildingsInsertResource++    -- * Creating a Request+    , resourcesBuildingsInsert+    , ResourcesBuildingsInsert++    -- * Request Lenses+    , rbiPayload+    , rbiCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.resources.buildings.insert@ method which the+-- 'ResourcesBuildingsInsert' request conforms to.+type ResourcesBuildingsInsertResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "resources" :>+                 "buildings" :>+                   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)++-- | 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:+--+-- * 'rbiPayload'+--+-- * 'rbiCustomer'+resourcesBuildingsInsert+    :: Building -- ^ 'rbiPayload'+    -> Text -- ^ 'rbiCustomer'+    -> ResourcesBuildingsInsert+resourcesBuildingsInsert pRbiPayload_ pRbiCustomer_ =+    ResourcesBuildingsInsert'+    { _rbiPayload = pRbiPayload_+    , _rbiCustomer = pRbiCustomer_+    }++-- | Multipart request metadata.+rbiPayload :: Lens' ResourcesBuildingsInsert Building+rbiPayload+  = lens _rbiPayload (\ s a -> s{_rbiPayload = a})++-- | 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+-- account\'s customer ID.+rbiCustomer :: Lens' ResourcesBuildingsInsert Text+rbiCustomer+  = lens _rbiCustomer (\ s a -> s{_rbiCustomer = 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+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ResourcesBuildingsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Resources/Buildings/List.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.Resources.Buildings.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of buildings for an account.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.buildings.list@.+module Network.Google.Resource.Directory.Resources.Buildings.List+    (+    -- * REST Resource+      ResourcesBuildingsListResource++    -- * Creating a Request+    , resourcesBuildingsList+    , ResourcesBuildingsList++    -- * Request Lenses+    , rblCustomer+    , rblPageToken+    , rblMaxResults+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.resources.buildings.list@ method which the+-- 'ResourcesBuildingsList' request conforms to.+type ResourcesBuildingsListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "resources" :>+                 "buildings" :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Int32) :>+                       QueryParam "alt" AltJSON :> Get '[JSON] Buildings++-- | Retrieves a list of buildings for an account.+--+-- /See:/ 'resourcesBuildingsList' smart constructor.+data ResourcesBuildingsList = ResourcesBuildingsList'+    { _rblCustomer   :: !Text+    , _rblPageToken  :: !(Maybe Text)+    , _rblMaxResults :: !(Maybe (Textual Int32))+    } 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:+--+-- * 'rblCustomer'+--+-- * 'rblPageToken'+--+-- * 'rblMaxResults'+resourcesBuildingsList+    :: Text -- ^ 'rblCustomer'+    -> ResourcesBuildingsList+resourcesBuildingsList pRblCustomer_ =+    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+-- account\'s customer ID.+rblCustomer :: Lens' ResourcesBuildingsList Text+rblCustomer+  = lens _rblCustomer (\ s a -> s{_rblCustomer = a})++-- | Token to specify the next page in the list.+rblPageToken :: Lens' ResourcesBuildingsList (Maybe Text)+rblPageToken+  = lens _rblPageToken (\ s a -> s{_rblPageToken = a})++-- | Maximum number of results to return.+rblMaxResults :: Lens' ResourcesBuildingsList (Maybe Int32)+rblMaxResults+  = lens _rblMaxResults+      (\ s a -> s{_rblMaxResults = a})+      . mapping _Coerce++instance GoogleRequest ResourcesBuildingsList where+        type Rs ResourcesBuildingsList = Buildings+        type Scopes ResourcesBuildingsList =+             '["https://www.googleapis.com/auth/admin.directory.resource.calendar",+               "https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly"]+        requestClient ResourcesBuildingsList'{..}+          = go _rblCustomer _rblPageToken _rblMaxResults+              (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ResourcesBuildingsListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Resources/Buildings/Patch.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.Resources.Buildings.Patch+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a building. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.buildings.patch@.+module Network.Google.Resource.Directory.Resources.Buildings.Patch+    (+    -- * REST Resource+      ResourcesBuildingsPatchResource++    -- * Creating a Request+    , resourcesBuildingsPatch+    , ResourcesBuildingsPatch++    -- * Request Lenses+    , rbpBuildingId+    , rbpPayload+    , rbpCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.resources.buildings.patch@ method which the+-- 'ResourcesBuildingsPatch' request conforms to.+type ResourcesBuildingsPatchResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "resources" :>+                 "buildings" :>+                   Capture "buildingId" Text :>+                     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)++-- | 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:+--+-- * 'rbpBuildingId'+--+-- * 'rbpPayload'+--+-- * 'rbpCustomer'+resourcesBuildingsPatch+    :: Text -- ^ 'rbpBuildingId'+    -> Building -- ^ 'rbpPayload'+    -> Text -- ^ 'rbpCustomer'+    -> ResourcesBuildingsPatch+resourcesBuildingsPatch pRbpBuildingId_ pRbpPayload_ pRbpCustomer_ =+    ResourcesBuildingsPatch'+    { _rbpBuildingId = pRbpBuildingId_+    , _rbpPayload = pRbpPayload_+    , _rbpCustomer = pRbpCustomer_+    }++-- | The ID of the building to update.+rbpBuildingId :: Lens' ResourcesBuildingsPatch Text+rbpBuildingId+  = lens _rbpBuildingId+      (\ s a -> s{_rbpBuildingId = a})++-- | Multipart request metadata.+rbpPayload :: Lens' ResourcesBuildingsPatch Building+rbpPayload+  = lens _rbpPayload (\ s a -> s{_rbpPayload = a})++-- | 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+-- account\'s customer ID.+rbpCustomer :: Lens' ResourcesBuildingsPatch Text+rbpCustomer+  = lens _rbpCustomer (\ s a -> s{_rbpCustomer = 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)+              _rbpPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ResourcesBuildingsPatchResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Resources/Buildings/Update.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.Resources.Buildings.Update+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a building.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.buildings.update@.+module Network.Google.Resource.Directory.Resources.Buildings.Update+    (+    -- * REST Resource+      ResourcesBuildingsUpdateResource++    -- * Creating a Request+    , resourcesBuildingsUpdate+    , ResourcesBuildingsUpdate++    -- * Request Lenses+    , rbuBuildingId+    , rbuPayload+    , rbuCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.resources.buildings.update@ method which the+-- 'ResourcesBuildingsUpdate' request conforms to.+type ResourcesBuildingsUpdateResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "resources" :>+                 "buildings" :>+                   Capture "buildingId" Text :>+                     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)++-- | 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:+--+-- * 'rbuBuildingId'+--+-- * 'rbuPayload'+--+-- * 'rbuCustomer'+resourcesBuildingsUpdate+    :: Text -- ^ 'rbuBuildingId'+    -> Building -- ^ 'rbuPayload'+    -> Text -- ^ 'rbuCustomer'+    -> ResourcesBuildingsUpdate+resourcesBuildingsUpdate pRbuBuildingId_ pRbuPayload_ pRbuCustomer_ =+    ResourcesBuildingsUpdate'+    { _rbuBuildingId = pRbuBuildingId_+    , _rbuPayload = pRbuPayload_+    , _rbuCustomer = pRbuCustomer_+    }++-- | The ID of the building to update.+rbuBuildingId :: Lens' ResourcesBuildingsUpdate Text+rbuBuildingId+  = lens _rbuBuildingId+      (\ s a -> s{_rbuBuildingId = a})++-- | Multipart request metadata.+rbuPayload :: Lens' ResourcesBuildingsUpdate Building+rbuPayload+  = lens _rbuPayload (\ s a -> s{_rbuPayload = a})++-- | 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+-- account\'s customer ID.+rbuCustomer :: Lens' ResourcesBuildingsUpdate Text+rbuCustomer+  = lens _rbuCustomer (\ s a -> s{_rbuCustomer = 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)+              _rbuPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ResourcesBuildingsUpdateResource)+                      mempty
gen/Network/Google/Resource/Directory/Resources/Calendars/Delete.hs view
@@ -78,7 +78,7 @@     , _rcdCalendarResourceId = pRcdCalendarResourceId_     } --- | The unique ID for the customer\'s Google account. As an account+-- | 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 -- account\'s customer ID. rcdCustomer :: Lens' ResourcesCalendarsDelete Text
gen/Network/Google/Resource/Directory/Resources/Calendars/Get.hs view
@@ -79,7 +79,7 @@     , _rcgCalendarResourceId = pRcgCalendarResourceId_     } --- | The unique ID for the customer\'s Google account. As an account+-- | 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 -- account\'s customer ID. rcgCustomer :: Lens' ResourcesCalendarsGet Text
gen/Network/Google/Resource/Directory/Resources/Calendars/Insert.hs view
@@ -84,7 +84,7 @@ rciPayload   = lens _rciPayload (\ s a -> s{_rciPayload = a}) --- | The unique ID for the customer\'s Google account. As an account+-- | 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 -- account\'s customer ID. rciCustomer :: Lens' ResourcesCalendarsInsert Text
gen/Network/Google/Resource/Directory/Resources/Calendars/List.hs view
@@ -33,7 +33,9 @@     , ResourcesCalendarsList      -- * Request Lenses+    , rclOrderBy     , rclCustomer+    , rclQuery     , rclPageToken     , rclMaxResults     ) where@@ -51,16 +53,20 @@              Capture "customer" Text :>                "resources" :>                  "calendars" :>-                   QueryParam "pageToken" Text :>-                     QueryParam "maxResults" (Textual Int32) :>-                       QueryParam "alt" AltJSON :>-                         Get '[JSON] CalendarResources+                   QueryParam "orderBy" Text :>+                     QueryParam "query" Text :>+                       QueryParam "pageToken" Text :>+                         QueryParam "maxResults" (Textual Int32) :>+                           QueryParam "alt" AltJSON :>+                             Get '[JSON] CalendarResources  -- | Retrieves a list of calendar resources for an account. -- -- /See:/ 'resourcesCalendarsList' smart constructor. data ResourcesCalendarsList = ResourcesCalendarsList'-    { _rclCustomer   :: !Text+    { _rclOrderBy    :: !(Maybe Text)+    , _rclCustomer   :: !Text+    , _rclQuery      :: !(Maybe Text)     , _rclPageToken  :: !(Maybe Text)     , _rclMaxResults :: !(Maybe (Textual Int32))     } deriving (Eq,Show,Data,Typeable,Generic)@@ -69,8 +75,12 @@ -- -- Use one of the following lenses to modify other fields as desired: --+-- * 'rclOrderBy'+-- -- * 'rclCustomer' --+-- * 'rclQuery'+-- -- * 'rclPageToken' -- -- * 'rclMaxResults'@@ -79,18 +89,41 @@     -> ResourcesCalendarsList resourcesCalendarsList pRclCustomer_ =     ResourcesCalendarsList'-    { _rclCustomer = pRclCustomer_+    { _rclOrderBy = Nothing+    , _rclCustomer = pRclCustomer_+    , _rclQuery = Nothing     , _rclPageToken = Nothing     , _rclMaxResults = Nothing     } --- | The unique ID for the customer\'s Google account. As an account+-- | Field(s) to sort results by in either ascending or descending order.+-- Supported fields include resourceId, resourceName, capacity, buildingId,+-- and floorName. If no order is specified, defaults to ascending. Should+-- be of the form \"field [asc|desc], field [asc|desc], ...\". For example+-- buildingId, capacity desc would return results sorted first by+-- buildingId in ascending order then by capacity in descending order.+rclOrderBy :: Lens' ResourcesCalendarsList (Maybe Text)+rclOrderBy+  = lens _rclOrderBy (\ s a -> s{_rclOrderBy = a})++-- | 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 -- account\'s customer ID. rclCustomer :: Lens' ResourcesCalendarsList Text rclCustomer   = lens _rclCustomer (\ s a -> s{_rclCustomer = a}) +-- | String query used to filter results. Should be of the form \"field+-- operator value\" where field can be any of supported fields and+-- operators can be any of supported operations. Operators include \'=\'+-- for exact match and \':\' for prefix match or HAS match where+-- applicable. For prefix match, the value should always be followed by a+-- *. Supported fields include generatedResourceName, name, buildingId,+-- featureInstances.feature.name. For example buildingId=US-NYC-9TH AND+-- featureInstances.feature.name:Phone.+rclQuery :: Lens' ResourcesCalendarsList (Maybe Text)+rclQuery = lens _rclQuery (\ s a -> s{_rclQuery = a})+ -- | Token to specify the next page in the list. rclPageToken :: Lens' ResourcesCalendarsList (Maybe Text) rclPageToken@@ -109,7 +142,8 @@              '["https://www.googleapis.com/auth/admin.directory.resource.calendar",                "https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly"]         requestClient ResourcesCalendarsList'{..}-          = go _rclCustomer _rclPageToken _rclMaxResults+          = go _rclCustomer _rclOrderBy _rclQuery _rclPageToken+              _rclMaxResults               (Just AltJSON)               directoryService           where go
gen/Network/Google/Resource/Directory/Resources/Calendars/Patch.hs view
@@ -20,7 +20,10 @@ -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Updates a calendar resource. This method supports patch semantics.+-- Updates a calendar resource. This method supports patch semantics,+-- meaning you only need to include the fields you wish to update. Fields+-- that are not present in the request will be preserved. This method+-- supports patch semantics. -- -- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.calendars.patch@. module Network.Google.Resource.Directory.Resources.Calendars.Patch@@ -56,7 +59,10 @@                        ReqBody '[JSON] CalendarResource :>                          Patch '[JSON] CalendarResource --- | Updates a calendar resource. This method supports patch semantics.+-- | Updates a calendar resource. This method supports patch semantics,+-- meaning you only need to include the fields you wish to update. Fields+-- that are not present in the request will be preserved. This method+-- supports patch semantics. -- -- /See:/ 'resourcesCalendarsPatch' smart constructor. data ResourcesCalendarsPatch = ResourcesCalendarsPatch'@@ -91,7 +97,7 @@ rcpPayload   = lens _rcpPayload (\ s a -> s{_rcpPayload = a}) --- | The unique ID for the customer\'s Google account. As an account+-- | 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 -- account\'s customer ID. rcpCustomer :: Lens' ResourcesCalendarsPatch Text
gen/Network/Google/Resource/Directory/Resources/Calendars/Update.hs view
@@ -20,7 +20,9 @@ -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Updates a calendar resource.+-- Updates a calendar resource. This method supports patch semantics,+-- meaning you only need to include the fields you wish to update. Fields+-- that are not present in the request will be preserved. -- -- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.calendars.update@. module Network.Google.Resource.Directory.Resources.Calendars.Update@@ -56,7 +58,9 @@                        ReqBody '[JSON] CalendarResource :>                          Put '[JSON] CalendarResource --- | Updates a calendar resource.+-- | Updates a calendar resource. This method supports patch semantics,+-- meaning you only need to include the fields you wish to update. Fields+-- that are not present in the request will be preserved. -- -- /See:/ 'resourcesCalendarsUpdate' smart constructor. data ResourcesCalendarsUpdate = ResourcesCalendarsUpdate'@@ -91,7 +95,7 @@ rcuPayload   = lens _rcuPayload (\ s a -> s{_rcuPayload = a}) --- | The unique ID for the customer\'s Google account. As an account+-- | 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 -- account\'s customer ID. rcuCustomer :: Lens' ResourcesCalendarsUpdate Text
+ gen/Network/Google/Resource/Directory/Resources/Features/Delete.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.Resources.Features.Delete+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a feature.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.features.delete@.+module Network.Google.Resource.Directory.Resources.Features.Delete+    (+    -- * REST Resource+      ResourcesFeaturesDeleteResource++    -- * Creating a Request+    , resourcesFeaturesDelete+    , ResourcesFeaturesDelete++    -- * Request Lenses+    , rfdCustomer+    , rfdFeatureKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.resources.features.delete@ method which the+-- 'ResourcesFeaturesDelete' request conforms to.+type ResourcesFeaturesDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "resources" :>+                 "features" :>+                   Capture "featureKey" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes a feature.+--+-- /See:/ 'resourcesFeaturesDelete' smart constructor.+data ResourcesFeaturesDelete = ResourcesFeaturesDelete'+    { _rfdCustomer   :: !Text+    , _rfdFeatureKey :: !Text+    } 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:+--+-- * 'rfdCustomer'+--+-- * 'rfdFeatureKey'+resourcesFeaturesDelete+    :: Text -- ^ 'rfdCustomer'+    -> Text -- ^ 'rfdFeatureKey'+    -> ResourcesFeaturesDelete+resourcesFeaturesDelete pRfdCustomer_ 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+-- account\'s customer ID.+rfdCustomer :: Lens' ResourcesFeaturesDelete Text+rfdCustomer+  = lens _rfdCustomer (\ s a -> s{_rfdCustomer = a})++-- | The unique ID of the feature to delete.+rfdFeatureKey :: Lens' ResourcesFeaturesDelete Text+rfdFeatureKey+  = lens _rfdFeatureKey+      (\ s a -> s{_rfdFeatureKey = a})++instance GoogleRequest ResourcesFeaturesDelete where+        type Rs ResourcesFeaturesDelete = ()+        type Scopes ResourcesFeaturesDelete =+             '["https://www.googleapis.com/auth/admin.directory.resource.calendar"]+        requestClient ResourcesFeaturesDelete'{..}+          = go _rfdCustomer _rfdFeatureKey (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ResourcesFeaturesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Resources/Features/Get.hs view
@@ -0,0 +1,105 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.Resources.Features.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a feature.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.features.get@.+module Network.Google.Resource.Directory.Resources.Features.Get+    (+    -- * REST Resource+      ResourcesFeaturesGetResource++    -- * Creating a Request+    , resourcesFeaturesGet+    , ResourcesFeaturesGet++    -- * Request Lenses+    , rfgCustomer+    , rfgFeatureKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.resources.features.get@ method which the+-- 'ResourcesFeaturesGet' request conforms to.+type ResourcesFeaturesGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "resources" :>+                 "features" :>+                   Capture "featureKey" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] Feature++-- | Retrieves a feature.+--+-- /See:/ 'resourcesFeaturesGet' smart constructor.+data ResourcesFeaturesGet = ResourcesFeaturesGet'+    { _rfgCustomer   :: !Text+    , _rfgFeatureKey :: !Text+    } 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:+--+-- * 'rfgCustomer'+--+-- * 'rfgFeatureKey'+resourcesFeaturesGet+    :: Text -- ^ 'rfgCustomer'+    -> Text -- ^ 'rfgFeatureKey'+    -> ResourcesFeaturesGet+resourcesFeaturesGet pRfgCustomer_ 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+-- account\'s customer ID.+rfgCustomer :: Lens' ResourcesFeaturesGet Text+rfgCustomer+  = lens _rfgCustomer (\ s a -> s{_rfgCustomer = a})++-- | The unique ID of the feature to retrieve.+rfgFeatureKey :: Lens' ResourcesFeaturesGet Text+rfgFeatureKey+  = lens _rfgFeatureKey+      (\ s a -> s{_rfgFeatureKey = a})++instance GoogleRequest ResourcesFeaturesGet where+        type Rs ResourcesFeaturesGet = Feature+        type Scopes ResourcesFeaturesGet =+             '["https://www.googleapis.com/auth/admin.directory.resource.calendar",+               "https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly"]+        requestClient ResourcesFeaturesGet'{..}+          = go _rfgCustomer _rfgFeatureKey (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ResourcesFeaturesGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Resources/Features/Insert.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.Resources.Features.Insert+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Inserts a feature.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.features.insert@.+module Network.Google.Resource.Directory.Resources.Features.Insert+    (+    -- * REST Resource+      ResourcesFeaturesInsertResource++    -- * Creating a Request+    , resourcesFeaturesInsert+    , ResourcesFeaturesInsert++    -- * Request Lenses+    , rfiPayload+    , rfiCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.resources.features.insert@ method which the+-- 'ResourcesFeaturesInsert' request conforms to.+type ResourcesFeaturesInsertResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "resources" :>+                 "features" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Feature :> Post '[JSON] Feature++-- | Inserts a feature.+--+-- /See:/ 'resourcesFeaturesInsert' smart constructor.+data ResourcesFeaturesInsert = ResourcesFeaturesInsert'+    { _rfiPayload  :: !Feature+    , _rfiCustomer :: !Text+    } 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:+--+-- * 'rfiPayload'+--+-- * 'rfiCustomer'+resourcesFeaturesInsert+    :: Feature -- ^ 'rfiPayload'+    -> Text -- ^ 'rfiCustomer'+    -> ResourcesFeaturesInsert+resourcesFeaturesInsert pRfiPayload_ pRfiCustomer_ =+    ResourcesFeaturesInsert'+    { _rfiPayload = pRfiPayload_+    , _rfiCustomer = pRfiCustomer_+    }++-- | Multipart request metadata.+rfiPayload :: Lens' ResourcesFeaturesInsert Feature+rfiPayload+  = lens _rfiPayload (\ s a -> s{_rfiPayload = a})++-- | 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+-- account\'s customer ID.+rfiCustomer :: Lens' ResourcesFeaturesInsert Text+rfiCustomer+  = lens _rfiCustomer (\ s a -> s{_rfiCustomer = a})++instance GoogleRequest ResourcesFeaturesInsert where+        type Rs ResourcesFeaturesInsert = Feature+        type Scopes ResourcesFeaturesInsert =+             '["https://www.googleapis.com/auth/admin.directory.resource.calendar"]+        requestClient ResourcesFeaturesInsert'{..}+          = go _rfiCustomer (Just AltJSON) _rfiPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ResourcesFeaturesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Resources/Features/List.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.Resources.Features.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of features for an account.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.features.list@.+module Network.Google.Resource.Directory.Resources.Features.List+    (+    -- * REST Resource+      ResourcesFeaturesListResource++    -- * Creating a Request+    , resourcesFeaturesList+    , ResourcesFeaturesList++    -- * Request Lenses+    , rflCustomer+    , rflPageToken+    , rflMaxResults+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.resources.features.list@ method which the+-- 'ResourcesFeaturesList' request conforms to.+type ResourcesFeaturesListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "resources" :>+                 "features" :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Int32) :>+                       QueryParam "alt" AltJSON :> Get '[JSON] Features++-- | Retrieves a list of features for an account.+--+-- /See:/ 'resourcesFeaturesList' smart constructor.+data ResourcesFeaturesList = ResourcesFeaturesList'+    { _rflCustomer   :: !Text+    , _rflPageToken  :: !(Maybe Text)+    , _rflMaxResults :: !(Maybe (Textual Int32))+    } 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:+--+-- * 'rflCustomer'+--+-- * 'rflPageToken'+--+-- * 'rflMaxResults'+resourcesFeaturesList+    :: Text -- ^ 'rflCustomer'+    -> ResourcesFeaturesList+resourcesFeaturesList pRflCustomer_ =+    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+-- account\'s customer ID.+rflCustomer :: Lens' ResourcesFeaturesList Text+rflCustomer+  = lens _rflCustomer (\ s a -> s{_rflCustomer = a})++-- | Token to specify the next page in the list.+rflPageToken :: Lens' ResourcesFeaturesList (Maybe Text)+rflPageToken+  = lens _rflPageToken (\ s a -> s{_rflPageToken = a})++-- | Maximum number of results to return.+rflMaxResults :: Lens' ResourcesFeaturesList (Maybe Int32)+rflMaxResults+  = lens _rflMaxResults+      (\ s a -> s{_rflMaxResults = a})+      . mapping _Coerce++instance GoogleRequest ResourcesFeaturesList where+        type Rs ResourcesFeaturesList = Features+        type Scopes ResourcesFeaturesList =+             '["https://www.googleapis.com/auth/admin.directory.resource.calendar",+               "https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly"]+        requestClient ResourcesFeaturesList'{..}+          = go _rflCustomer _rflPageToken _rflMaxResults+              (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ResourcesFeaturesListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Resources/Features/Patch.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.Resources.Features.Patch+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a feature. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.features.patch@.+module Network.Google.Resource.Directory.Resources.Features.Patch+    (+    -- * REST Resource+      ResourcesFeaturesPatchResource++    -- * Creating a Request+    , resourcesFeaturesPatch+    , ResourcesFeaturesPatch++    -- * Request Lenses+    , rfpPayload+    , rfpCustomer+    , rfpFeatureKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.resources.features.patch@ method which the+-- 'ResourcesFeaturesPatch' request conforms to.+type ResourcesFeaturesPatchResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "resources" :>+                 "features" :>+                   Capture "featureKey" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Feature :> Patch '[JSON] Feature++-- | Updates a feature. This method supports patch semantics.+--+-- /See:/ 'resourcesFeaturesPatch' smart constructor.+data ResourcesFeaturesPatch = ResourcesFeaturesPatch'+    { _rfpPayload    :: !Feature+    , _rfpCustomer   :: !Text+    , _rfpFeatureKey :: !Text+    } 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:+--+-- * 'rfpPayload'+--+-- * 'rfpCustomer'+--+-- * 'rfpFeatureKey'+resourcesFeaturesPatch+    :: Feature -- ^ 'rfpPayload'+    -> Text -- ^ 'rfpCustomer'+    -> Text -- ^ 'rfpFeatureKey'+    -> ResourcesFeaturesPatch+resourcesFeaturesPatch pRfpPayload_ pRfpCustomer_ pRfpFeatureKey_ =+    ResourcesFeaturesPatch'+    { _rfpPayload = pRfpPayload_+    , _rfpCustomer = pRfpCustomer_+    , _rfpFeatureKey = pRfpFeatureKey_+    }++-- | Multipart request metadata.+rfpPayload :: Lens' ResourcesFeaturesPatch Feature+rfpPayload+  = lens _rfpPayload (\ s a -> s{_rfpPayload = a})++-- | 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+-- account\'s customer ID.+rfpCustomer :: Lens' ResourcesFeaturesPatch Text+rfpCustomer+  = lens _rfpCustomer (\ s a -> s{_rfpCustomer = a})++-- | The unique ID of the feature to update.+rfpFeatureKey :: Lens' ResourcesFeaturesPatch Text+rfpFeatureKey+  = lens _rfpFeatureKey+      (\ s a -> s{_rfpFeatureKey = a})++instance GoogleRequest ResourcesFeaturesPatch where+        type Rs ResourcesFeaturesPatch = Feature+        type Scopes ResourcesFeaturesPatch =+             '["https://www.googleapis.com/auth/admin.directory.resource.calendar"]+        requestClient ResourcesFeaturesPatch'{..}+          = go _rfpCustomer _rfpFeatureKey (Just AltJSON)+              _rfpPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ResourcesFeaturesPatchResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Resources/Features/Rename.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.Resources.Features.Rename+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Renames a feature.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.features.rename@.+module Network.Google.Resource.Directory.Resources.Features.Rename+    (+    -- * REST Resource+      ResourcesFeaturesRenameResource++    -- * Creating a Request+    , resourcesFeaturesRename+    , ResourcesFeaturesRename++    -- * Request Lenses+    , rfrPayload+    , rfrCustomer+    , rfrOldName+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.resources.features.rename@ method which the+-- 'ResourcesFeaturesRename' request conforms to.+type ResourcesFeaturesRenameResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "resources" :>+                 "features" :>+                   Capture "oldName" Text :>+                     "rename" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] FeatureRename :> Post '[JSON] ()++-- | Renames a feature.+--+-- /See:/ 'resourcesFeaturesRename' smart constructor.+data ResourcesFeaturesRename = ResourcesFeaturesRename'+    { _rfrPayload  :: !FeatureRename+    , _rfrCustomer :: !Text+    , _rfrOldName  :: !Text+    } 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:+--+-- * 'rfrPayload'+--+-- * 'rfrCustomer'+--+-- * 'rfrOldName'+resourcesFeaturesRename+    :: FeatureRename -- ^ 'rfrPayload'+    -> Text -- ^ 'rfrCustomer'+    -> Text -- ^ 'rfrOldName'+    -> ResourcesFeaturesRename+resourcesFeaturesRename pRfrPayload_ pRfrCustomer_ pRfrOldName_ =+    ResourcesFeaturesRename'+    { _rfrPayload = pRfrPayload_+    , _rfrCustomer = pRfrCustomer_+    , _rfrOldName = pRfrOldName_+    }++-- | Multipart request metadata.+rfrPayload :: Lens' ResourcesFeaturesRename FeatureRename+rfrPayload+  = lens _rfrPayload (\ s a -> s{_rfrPayload = a})++-- | 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+-- account\'s customer ID.+rfrCustomer :: Lens' ResourcesFeaturesRename Text+rfrCustomer+  = lens _rfrCustomer (\ s a -> s{_rfrCustomer = a})++-- | The unique ID of the feature to rename.+rfrOldName :: Lens' ResourcesFeaturesRename Text+rfrOldName+  = lens _rfrOldName (\ s a -> s{_rfrOldName = a})++instance GoogleRequest ResourcesFeaturesRename where+        type Rs ResourcesFeaturesRename = ()+        type Scopes ResourcesFeaturesRename =+             '["https://www.googleapis.com/auth/admin.directory.resource.calendar"]+        requestClient ResourcesFeaturesRename'{..}+          = go _rfrCustomer _rfrOldName (Just AltJSON)+              _rfrPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ResourcesFeaturesRenameResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Resources/Features/Update.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Directory.Resources.Features.Update+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a feature.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.resources.features.update@.+module Network.Google.Resource.Directory.Resources.Features.Update+    (+    -- * REST Resource+      ResourcesFeaturesUpdateResource++    -- * Creating a Request+    , resourcesFeaturesUpdate+    , ResourcesFeaturesUpdate++    -- * Request Lenses+    , rfuPayload+    , rfuCustomer+    , rfuFeatureKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.resources.features.update@ method which the+-- 'ResourcesFeaturesUpdate' request conforms to.+type ResourcesFeaturesUpdateResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "resources" :>+                 "features" :>+                   Capture "featureKey" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Feature :> Put '[JSON] Feature++-- | Updates a feature.+--+-- /See:/ 'resourcesFeaturesUpdate' smart constructor.+data ResourcesFeaturesUpdate = ResourcesFeaturesUpdate'+    { _rfuPayload    :: !Feature+    , _rfuCustomer   :: !Text+    , _rfuFeatureKey :: !Text+    } 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:+--+-- * 'rfuPayload'+--+-- * 'rfuCustomer'+--+-- * 'rfuFeatureKey'+resourcesFeaturesUpdate+    :: Feature -- ^ 'rfuPayload'+    -> Text -- ^ 'rfuCustomer'+    -> Text -- ^ 'rfuFeatureKey'+    -> ResourcesFeaturesUpdate+resourcesFeaturesUpdate pRfuPayload_ pRfuCustomer_ pRfuFeatureKey_ =+    ResourcesFeaturesUpdate'+    { _rfuPayload = pRfuPayload_+    , _rfuCustomer = pRfuCustomer_+    , _rfuFeatureKey = pRfuFeatureKey_+    }++-- | Multipart request metadata.+rfuPayload :: Lens' ResourcesFeaturesUpdate Feature+rfuPayload+  = lens _rfuPayload (\ s a -> s{_rfuPayload = a})++-- | 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+-- account\'s customer ID.+rfuCustomer :: Lens' ResourcesFeaturesUpdate Text+rfuCustomer+  = lens _rfuCustomer (\ s a -> s{_rfuCustomer = a})++-- | The unique ID of the feature to update.+rfuFeatureKey :: Lens' ResourcesFeaturesUpdate Text+rfuFeatureKey+  = lens _rfuFeatureKey+      (\ s a -> s{_rfuFeatureKey = a})++instance GoogleRequest ResourcesFeaturesUpdate where+        type Rs ResourcesFeaturesUpdate = Feature+        type Scopes ResourcesFeaturesUpdate =+             '["https://www.googleapis.com/auth/admin.directory.resource.calendar"]+        requestClient ResourcesFeaturesUpdate'{..}+          = go _rfuCustomer _rfuFeatureKey (Just AltJSON)+              _rfuPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ResourcesFeaturesUpdateResource)+                      mempty
gen/Network/Google/Resource/Directory/RoleAssignments/Delete.hs view
@@ -77,7 +77,7 @@     , _radRoleAssignmentId = pRadRoleAssignmentId_     } --- | Immutable ID of the Google Apps account.+-- | Immutable ID of the G Suite account. radCustomer :: Lens' RoleAssignmentsDelete Text radCustomer   = lens _radCustomer (\ s a -> s{_radCustomer = a})
gen/Network/Google/Resource/Directory/RoleAssignments/Get.hs view
@@ -78,7 +78,7 @@     , _ragRoleAssignmentId = pRagRoleAssignmentId_     } --- | Immutable ID of the Google Apps account.+-- | Immutable ID of the G Suite account. ragCustomer :: Lens' RoleAssignmentsGet Text ragCustomer   = lens _ragCustomer (\ s a -> s{_ragCustomer = a})
gen/Network/Google/Resource/Directory/RoleAssignments/Insert.hs view
@@ -83,7 +83,7 @@ raiPayload   = lens _raiPayload (\ s a -> s{_raiPayload = a}) --- | Immutable ID of the Google Apps account.+-- | Immutable ID of the G Suite account. raiCustomer :: Lens' RoleAssignmentsInsert Text raiCustomer   = lens _raiCustomer (\ s a -> s{_raiCustomer = a})
gen/Network/Google/Resource/Directory/RoleAssignments/List.hs view
@@ -101,7 +101,7 @@ ralRoleId   = lens _ralRoleId (\ s a -> s{_ralRoleId = a}) --- | Immutable ID of the Google Apps account.+-- | Immutable ID of the G Suite account. ralCustomer :: Lens' RoleAssignmentsList Text ralCustomer   = lens _ralCustomer (\ s a -> s{_ralCustomer = a})
gen/Network/Google/Resource/Directory/Roles/Delete.hs view
@@ -81,7 +81,7 @@ rdRoleId :: Lens' RolesDelete Text rdRoleId = lens _rdRoleId (\ s a -> s{_rdRoleId = a}) --- | Immutable ID of the Google Apps account.+-- | Immutable ID of the G Suite account. rdCustomer :: Lens' RolesDelete Text rdCustomer   = lens _rdCustomer (\ s a -> s{_rdCustomer = a})
gen/Network/Google/Resource/Directory/Roles/Get.hs view
@@ -81,7 +81,7 @@ rgRoleId :: Lens' RolesGet Text rgRoleId = lens _rgRoleId (\ s a -> s{_rgRoleId = a}) --- | Immutable ID of the Google Apps account.+-- | Immutable ID of the G Suite account. rgCustomer :: Lens' RolesGet Text rgCustomer   = lens _rgCustomer (\ s a -> s{_rgCustomer = a})
gen/Network/Google/Resource/Directory/Roles/Insert.hs view
@@ -82,7 +82,7 @@ riPayload   = lens _riPayload (\ s a -> s{_riPayload = a}) --- | Immutable ID of the Google Apps account.+-- | Immutable ID of the G Suite account. riCustomer :: Lens' RolesInsert Text riCustomer   = lens _riCustomer (\ s a -> s{_riCustomer = a})
gen/Network/Google/Resource/Directory/Roles/List.hs view
@@ -82,7 +82,7 @@     , _rlMaxResults = Nothing     } --- | Immutable id of the Google Apps account.+-- | Immutable ID of the G Suite account. rlCustomer :: Lens' RolesList Text rlCustomer   = lens _rlCustomer (\ s a -> s{_rlCustomer = a})
gen/Network/Google/Resource/Directory/Roles/Patch.hs view
@@ -93,7 +93,7 @@ rpRoleId :: Lens' RolesPatch Text rpRoleId = lens _rpRoleId (\ s a -> s{_rpRoleId = a}) --- | Immutable ID of the Google Apps account.+-- | Immutable ID of the G Suite account. rpCustomer :: Lens' RolesPatch Text rpCustomer   = lens _rpCustomer (\ s a -> s{_rpCustomer = a})
gen/Network/Google/Resource/Directory/Roles/Update.hs view
@@ -93,7 +93,7 @@ ruRoleId :: Lens' RolesUpdate Text ruRoleId = lens _ruRoleId (\ s a -> s{_ruRoleId = a}) --- | Immutable ID of the Google Apps account.+-- | Immutable ID of the G Suite account. ruCustomer :: Lens' RolesUpdate Text ruCustomer   = lens _ruCustomer (\ s a -> s{_ruCustomer = a})
gen/Network/Google/Resource/Directory/Schemas/Delete.hs view
@@ -77,12 +77,12 @@     , _sdSchemaKey = pSdSchemaKey_     } --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account sdCustomerId :: Lens' SchemasDelete Text sdCustomerId   = lens _sdCustomerId (\ s a -> s{_sdCustomerId = a}) --- | Name or immutable Id of the schema+-- | Name or immutable ID of the schema sdSchemaKey :: Lens' SchemasDelete Text sdSchemaKey   = lens _sdSchemaKey (\ s a -> s{_sdSchemaKey = a})
gen/Network/Google/Resource/Directory/Schemas/Get.hs view
@@ -77,12 +77,12 @@     , _sgSchemaKey = pSgSchemaKey_     } --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account sgCustomerId :: Lens' SchemasGet Text sgCustomerId   = lens _sgCustomerId (\ s a -> s{_sgCustomerId = a}) --- | Name or immutable Id of the schema+-- | Name or immutable ID of the schema sgSchemaKey :: Lens' SchemasGet Text sgSchemaKey   = lens _sgSchemaKey (\ s a -> s{_sgSchemaKey = a})
gen/Network/Google/Resource/Directory/Schemas/Insert.hs view
@@ -82,7 +82,7 @@ siPayload   = lens _siPayload (\ s a -> s{_siPayload = a}) --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account siCustomerId :: Lens' SchemasInsert Text siCustomerId   = lens _siCustomerId (\ s a -> s{_siCustomerId = a})
gen/Network/Google/Resource/Directory/Schemas/List.hs view
@@ -70,7 +70,7 @@     { _slCustomerId = pSlCustomerId_     } --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account slCustomerId :: Lens' SchemasList Text slCustomerId   = lens _slCustomerId (\ s a -> s{_slCustomerId = a})
gen/Network/Google/Resource/Directory/Schemas/Patch.hs view
@@ -89,12 +89,12 @@ spPayload   = lens _spPayload (\ s a -> s{_spPayload = a}) --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account spCustomerId :: Lens' SchemasPatch Text spCustomerId   = lens _spCustomerId (\ s a -> s{_spCustomerId = a}) --- | Name or immutable Id of the schema.+-- | Name or immutable ID of the schema. spSchemaKey :: Lens' SchemasPatch Text spSchemaKey   = lens _spSchemaKey (\ s a -> s{_spSchemaKey = a})
gen/Network/Google/Resource/Directory/Schemas/Update.hs view
@@ -89,12 +89,12 @@ suPayload   = lens _suPayload (\ s a -> s{_suPayload = a}) --- | Immutable id of the Google Apps account+-- | Immutable ID of the G Suite account suCustomerId :: Lens' SchemasUpdate Text suCustomerId   = lens _suCustomerId (\ s a -> s{_suCustomerId = a}) --- | Name or immutable Id of the schema.+-- | Name or immutable ID of the schema. suSchemaKey :: Lens' SchemasUpdate Text suSchemaKey   = lens _suSchemaKey (\ s a -> s{_suSchemaKey = a})
gen/Network/Google/Resource/Directory/Users/Aliases/Delete.hs view
@@ -81,7 +81,7 @@ uadAlias :: Lens' UsersAliasesDelete Text uadAlias = lens _uadAlias (\ s a -> s{_uadAlias = a}) --- | Email or immutable Id of the user+-- | Email or immutable ID of the user uadUserKey :: Lens' UsersAliasesDelete Text uadUserKey   = lens _uadUserKey (\ s a -> s{_uadUserKey = a})
gen/Network/Google/Resource/Directory/Users/Aliases/Insert.hs view
@@ -82,7 +82,7 @@ uaiPayload   = lens _uaiPayload (\ s a -> s{_uaiPayload = a}) --- | Email or immutable Id of the user+-- | Email or immutable ID of the user uaiUserKey :: Lens' UsersAliasesInsert Text uaiUserKey   = lens _uaiUserKey (\ s a -> s{_uaiUserKey = a})
gen/Network/Google/Resource/Directory/Users/Aliases/List.hs view
@@ -80,7 +80,7 @@ ualEvent :: Lens' UsersAliasesList (Maybe UsersAliasesListEvent) ualEvent = lens _ualEvent (\ s a -> s{_ualEvent = a}) --- | Email or immutable Id of the user+-- | Email or immutable ID of the user ualUserKey :: Lens' UsersAliasesList Text ualUserKey   = lens _ualUserKey (\ s a -> s{_ualUserKey = a})
gen/Network/Google/Resource/Directory/Users/Aliases/Watch.hs view
@@ -93,7 +93,7 @@ uawPayload   = lens _uawPayload (\ s a -> s{_uawPayload = a}) --- | Email or immutable Id of the user+-- | Email or immutable ID of the user uawUserKey :: Lens' UsersAliasesWatch Text uawUserKey   = lens _uawUserKey (\ s a -> s{_uawUserKey = a})
gen/Network/Google/Resource/Directory/Users/Delete.hs view
@@ -69,7 +69,7 @@     { _udUserKey = pUdUserKey_     } --- | Email or immutable Id of the user+-- | Email or immutable ID of the user udUserKey :: Lens' UsersDelete Text udUserKey   = lens _udUserKey (\ s a -> s{_udUserKey = a})
gen/Network/Google/Resource/Directory/Users/Get.hs view
@@ -104,7 +104,7 @@ ugProjection   = lens _ugProjection (\ s a -> s{_ugProjection = a}) --- | Email or immutable Id of the user+-- | Email or immutable ID of the user ugUserKey :: Lens' UsersGet Text ugUserKey   = lens _ugUserKey (\ s a -> s{_ugUserKey = a})
gen/Network/Google/Resource/Directory/Users/List.hs view
@@ -172,8 +172,8 @@ ulSortOrder   = lens _ulSortOrder (\ s a -> s{_ulSortOrder = a}) --- | Immutable id of the Google Apps account. In case of multi-domain, to--- fetch all users for a customer, fill this field instead of domain.+-- | Immutable ID of the G Suite account. In case of multi-domain, to fetch+-- all users for a customer, fill this field instead of domain. ulCustomer :: Lens' UsersList (Maybe Text) ulCustomer   = lens _ulCustomer (\ s a -> s{_ulCustomer = a})
gen/Network/Google/Resource/Directory/Users/MakeAdmin.hs view
@@ -82,7 +82,7 @@ umaPayload   = lens _umaPayload (\ s a -> s{_umaPayload = a}) --- | Email or immutable Id of the user as admin+-- | Email or immutable ID of the user as admin umaUserKey :: Lens' UsersMakeAdmin Text umaUserKey   = lens _umaUserKey (\ s a -> s{_umaUserKey = a})
gen/Network/Google/Resource/Directory/Users/Patch.hs view
@@ -81,7 +81,7 @@ upPayload   = lens _upPayload (\ s a -> s{_upPayload = a}) --- | Email or immutable Id of the user. If Id, it should match with id of+-- | Email or immutable ID of the user. If ID, it should match with id of -- user object upUserKey :: Lens' UsersPatch Text upUserKey
gen/Network/Google/Resource/Directory/Users/Photos/Delete.hs view
@@ -71,7 +71,7 @@     { _updUserKey = pUpdUserKey_     } --- | Email or immutable Id of the user+-- | Email or immutable ID of the user updUserKey :: Lens' UsersPhotosDelete Text updUserKey   = lens _updUserKey (\ s a -> s{_updUserKey = a})
gen/Network/Google/Resource/Directory/Users/Photos/Get.hs view
@@ -71,7 +71,7 @@     { _upgUserKey = pUpgUserKey_     } --- | Email or immutable Id of the user+-- | Email or immutable ID of the user upgUserKey :: Lens' UsersPhotosGet Text upgUserKey   = lens _upgUserKey (\ s a -> s{_upgUserKey = a})
gen/Network/Google/Resource/Directory/Users/Photos/Patch.hs view
@@ -83,7 +83,7 @@ uppPayload   = lens _uppPayload (\ s a -> s{_uppPayload = a}) --- | Email or immutable Id of the user+-- | Email or immutable ID of the user uppUserKey :: Lens' UsersPhotosPatch Text uppUserKey   = lens _uppUserKey (\ s a -> s{_uppUserKey = a})
gen/Network/Google/Resource/Directory/Users/Photos/Update.hs view
@@ -83,7 +83,7 @@ upuPayload   = lens _upuPayload (\ s a -> s{_upuPayload = a}) --- | Email or immutable Id of the user+-- | Email or immutable ID of the user upuUserKey :: Lens' UsersPhotosUpdate Text upuUserKey   = lens _upuUserKey (\ s a -> s{_upuUserKey = a})
gen/Network/Google/Resource/Directory/Users/Update.hs view
@@ -80,7 +80,7 @@ uPayload :: Lens' UsersUpdate User uPayload = lens _uPayload (\ s a -> s{_uPayload = a}) --- | Email or immutable Id of the user. If Id, it should match with id of+-- | Email or immutable ID of the user. If ID, it should match with id of -- user object uUserKey :: Lens' UsersUpdate Text uUserKey = lens _uUserKey (\ s a -> s{_uUserKey = a})
gen/Network/Google/Resource/Directory/Users/Watch.hs view
@@ -185,8 +185,8 @@ uwSortOrder   = lens _uwSortOrder (\ s a -> s{_uwSortOrder = a}) --- | Immutable id of the Google Apps account. In case of multi-domain, to--- fetch all users for a customer, fill this field instead of domain.+-- | Immutable ID of the G Suite account. In case of multi-domain, to fetch+-- all users for a customer, fill this field instead of domain. uwCustomer :: Lens' UsersWatch (Maybe Text) uwCustomer   = lens _uwCustomer (\ s a -> s{_uwCustomer = a})
gen/Network/Google/Resource/Directory/VerificationCodes/Generate.hs view
@@ -71,7 +71,7 @@     { _vcgUserKey = pVcgUserKey_     } --- | Email or immutable Id of the user+-- | Email or immutable ID of the user vcgUserKey :: Lens' VerificationCodesGenerate Text vcgUserKey   = lens _vcgUserKey (\ s a -> s{_vcgUserKey = a})
gen/Network/Google/Resource/Directory/VerificationCodes/Invalidate.hs view
@@ -71,7 +71,7 @@     { _vciUserKey = pVciUserKey_     } --- | Email or immutable Id of the user+-- | Email or immutable ID of the user vciUserKey :: Lens' VerificationCodesInvalidate Text vciUserKey   = lens _vciUserKey (\ s a -> s{_vciUserKey = a})
gogol-admin-directory.cabal view
@@ -1,5 +1,5 @@ name:                  gogol-admin-directory-version:               0.3.0+version:               0.4.0 synopsis:              Google Admin Directory SDK. homepage:              https://github.com/brendanhay/gogol bug-reports:           https://github.com/brendanhay/gogol/issues@@ -14,9 +14,8 @@ extra-source-files:    README.md src/.gitkeep  description:-    The Admin SDK Directory API lets you view and manage enterprise-    resources such as users and groups, administrative notifications,-    security features, and more.+    Manages enterprise resources such as users and groups, administrative+    notifications, security features, and more.     .     /Warning:/ This is an experimental prototype/preview release which is still     under exploratory development and not intended for public use, caveat emptor!@@ -44,6 +43,7 @@         , Network.Google.Resource.Directory.ChromeosDevices.Action         , Network.Google.Resource.Directory.ChromeosDevices.Get         , Network.Google.Resource.Directory.ChromeosDevices.List+        , Network.Google.Resource.Directory.ChromeosDevices.MoveDevicesToOu         , Network.Google.Resource.Directory.ChromeosDevices.Patch         , Network.Google.Resource.Directory.ChromeosDevices.Update         , Network.Google.Resource.Directory.Customers.Get@@ -68,6 +68,7 @@         , Network.Google.Resource.Directory.Groups.Update         , Network.Google.Resource.Directory.Members.Delete         , Network.Google.Resource.Directory.Members.Get+        , Network.Google.Resource.Directory.Members.HasMember         , Network.Google.Resource.Directory.Members.Insert         , Network.Google.Resource.Directory.Members.List         , Network.Google.Resource.Directory.Members.Patch@@ -88,12 +89,27 @@         , Network.Google.Resource.Directory.OrgUnits.Patch         , Network.Google.Resource.Directory.OrgUnits.Update         , Network.Google.Resource.Directory.Privileges.List+        , Network.Google.Resource.Directory.ResolvedAppAccessSettings.GetSettings+        , Network.Google.Resource.Directory.ResolvedAppAccessSettings.ListTrustedApps+        , Network.Google.Resource.Directory.Resources.Buildings.Delete+        , Network.Google.Resource.Directory.Resources.Buildings.Get+        , Network.Google.Resource.Directory.Resources.Buildings.Insert+        , Network.Google.Resource.Directory.Resources.Buildings.List+        , Network.Google.Resource.Directory.Resources.Buildings.Patch+        , Network.Google.Resource.Directory.Resources.Buildings.Update         , Network.Google.Resource.Directory.Resources.Calendars.Delete         , Network.Google.Resource.Directory.Resources.Calendars.Get         , Network.Google.Resource.Directory.Resources.Calendars.Insert         , Network.Google.Resource.Directory.Resources.Calendars.List         , Network.Google.Resource.Directory.Resources.Calendars.Patch         , Network.Google.Resource.Directory.Resources.Calendars.Update+        , Network.Google.Resource.Directory.Resources.Features.Delete+        , Network.Google.Resource.Directory.Resources.Features.Get+        , Network.Google.Resource.Directory.Resources.Features.Insert+        , Network.Google.Resource.Directory.Resources.Features.List+        , Network.Google.Resource.Directory.Resources.Features.Patch+        , Network.Google.Resource.Directory.Resources.Features.Rename+        , Network.Google.Resource.Directory.Resources.Features.Update         , Network.Google.Resource.Directory.RoleAssignments.Delete         , Network.Google.Resource.Directory.RoleAssignments.Get         , Network.Google.Resource.Directory.RoleAssignments.Insert@@ -139,5 +155,5 @@         , Network.Google.Directory.Types.Sum      build-depends:-          gogol-core == 0.3.0.*+          gogol-core == 0.4.0.*         , base       >= 4.7 && < 5