packages feed

gogol-android-enterprise 0.4.0 → 0.5.0

raw patch · 92 files changed

+6549/−6212 lines, 92 filesdep ~gogol-corePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: gogol-core

API changes (from Hackage documentation)

- Network.Google.AndroidEnterprise: adpcKind :: Lens' AndroidDevicePolicyConfig Text
- Network.Google.AndroidEnterprise: adpcState :: Lens' AndroidDevicePolicyConfig (Maybe Text)
- Network.Google.AndroidEnterprise: androidDevicePolicyConfig :: AndroidDevicePolicyConfig
- Network.Google.AndroidEnterprise: data AndroidDevicePolicyConfig
- Network.Google.AndroidEnterprise.Types: adpcKind :: Lens' AndroidDevicePolicyConfig Text
- Network.Google.AndroidEnterprise.Types: adpcState :: Lens' AndroidDevicePolicyConfig (Maybe Text)
- Network.Google.AndroidEnterprise.Types: androidDevicePolicyConfig :: AndroidDevicePolicyConfig
- Network.Google.AndroidEnterprise.Types: data AndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig: data EnterprisesGetAndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig: egadpcEnterpriseId :: Lens' EnterprisesGetAndroidDevicePolicyConfig Text
- Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig: enterprisesGetAndroidDevicePolicyConfig :: Text -> EnterprisesGetAndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig: instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig.EnterprisesGetAndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig: instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig.EnterprisesGetAndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig: instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig.EnterprisesGetAndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig: instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig.EnterprisesGetAndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig: instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig.EnterprisesGetAndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig: type EnterprisesGetAndroidDevicePolicyConfigResource = "androidenterprise" :> "v1" :> "enterprises" :> Capture "enterpriseId" Text :> "androidDevicePolicyConfig" :> QueryParam "alt" AltJSON :> Get '[JSON] AndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig: data EnterprisesSetAndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig: enterprisesSetAndroidDevicePolicyConfig :: Text -> AndroidDevicePolicyConfig -> EnterprisesSetAndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig: esadpcEnterpriseId :: Lens' EnterprisesSetAndroidDevicePolicyConfig Text
- Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig: esadpcPayload :: Lens' EnterprisesSetAndroidDevicePolicyConfig AndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig: instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig.EnterprisesSetAndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig: instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig.EnterprisesSetAndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig: instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig.EnterprisesSetAndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig: instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig.EnterprisesSetAndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig: instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig.EnterprisesSetAndroidDevicePolicyConfig
- Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig: type EnterprisesSetAndroidDevicePolicyConfigResource = "androidenterprise" :> "v1" :> "enterprises" :> Capture "enterpriseId" Text :> "androidDevicePolicyConfig" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] AndroidDevicePolicyConfig :> Put '[JSON] AndroidDevicePolicyConfig
+ Network.Google.AndroidEnterprise: administratorWebTokenSpecManagedConfigurations :: AdministratorWebTokenSpecManagedConfigurations
+ Network.Google.AndroidEnterprise: awtsManagedConfigurations :: Lens' AdministratorWebTokenSpec (Maybe AdministratorWebTokenSpecManagedConfigurations)
+ Network.Google.AndroidEnterprise: awtsmcEnabled :: Lens' AdministratorWebTokenSpecManagedConfigurations (Maybe Bool)
+ Network.Google.AndroidEnterprise: data AdministratorWebTokenSpecManagedConfigurations
+ Network.Google.AndroidEnterprise: ppManagedConfiguration :: Lens' ProductPolicy (Maybe ManagedConfiguration)
+ Network.Google.AndroidEnterprise.Types: administratorWebTokenSpecManagedConfigurations :: AdministratorWebTokenSpecManagedConfigurations
+ Network.Google.AndroidEnterprise.Types: awtsManagedConfigurations :: Lens' AdministratorWebTokenSpec (Maybe AdministratorWebTokenSpecManagedConfigurations)
+ Network.Google.AndroidEnterprise.Types: awtsmcEnabled :: Lens' AdministratorWebTokenSpecManagedConfigurations (Maybe Bool)
+ Network.Google.AndroidEnterprise.Types: data AdministratorWebTokenSpecManagedConfigurations
+ Network.Google.AndroidEnterprise.Types: ppManagedConfiguration :: Lens' ProductPolicy (Maybe ManagedConfiguration)
- Network.Google.AndroidEnterprise: type AndroidEnterpriseAPI = StorelayoutclustersInsertResource :<|> StorelayoutclustersListResource :<|> StorelayoutclustersPatchResource :<|> StorelayoutclustersGetResource :<|> StorelayoutclustersDeleteResource :<|> StorelayoutclustersUpdateResource :<|> UsersInsertResource :<|> UsersListResource :<|> UsersGenerateTokenResource :<|> UsersGenerateAuthenticationTokenResource :<|> UsersPatchResource :<|> UsersGetResource :<|> UsersRevokeDeviceAccessResource :<|> UsersSetAvailableProductSetResource :<|> UsersRevokeTokenResource :<|> UsersGetAvailableProductSetResource :<|> UsersDeleteResource :<|> UsersUpdateResource :<|> InstallsListResource :<|> InstallsPatchResource :<|> InstallsGetResource :<|> InstallsDeleteResource :<|> InstallsUpdateResource :<|> StorelayoutpagesInsertResource :<|> StorelayoutpagesListResource :<|> StorelayoutpagesPatchResource :<|> StorelayoutpagesGetResource :<|> StorelayoutpagesDeleteResource :<|> StorelayoutpagesUpdateResource :<|> ServiceAccountkeysInsertResource :<|> ServiceAccountkeysListResource :<|> ServiceAccountkeysDeleteResource :<|> ManagedConfigurationssettingsListResource :<|> EnterprisesCompleteSignupResource :<|> EnterprisesCreateWebTokenResource :<|> EnterprisesGetServiceAccountResource :<|> EnterprisesListResource :<|> EnterprisesUnenrollResource :<|> EnterprisesGetStoreLayoutResource :<|> EnterprisesSetAndroidDevicePolicyConfigResource :<|> EnterprisesSetAccountResource :<|> EnterprisesEnrollResource :<|> EnterprisesGetResource :<|> EnterprisesGenerateSignupURLResource :<|> EnterprisesSendTestPushNotificationResource :<|> EnterprisesSetStoreLayoutResource :<|> EnterprisesGetAndroidDevicePolicyConfigResource :<|> EnterprisesAcknowledgeNotificationSetResource :<|> EnterprisesPullNotificationSetResource :<|> ManagedConfigurationsforUserListResource :<|> ManagedConfigurationsforUserPatchResource :<|> ManagedConfigurationsforUserGetResource :<|> ManagedConfigurationsforUserDeleteResource :<|> ManagedConfigurationsforUserUpdateResource :<|> GrouplicensesListResource :<|> GrouplicensesGetResource :<|> WebAppsInsertResource :<|> WebAppsListResource :<|> WebAppsPatchResource :<|> WebAppsGetResource :<|> WebAppsDeleteResource :<|> WebAppsUpdateResource :<|> EntitlementsListResource :<|> EntitlementsPatchResource :<|> EntitlementsGetResource :<|> EntitlementsDeleteResource :<|> EntitlementsUpdateResource :<|> ManagedConfigurationsforDeviceListResource :<|> ManagedConfigurationsforDevicePatchResource :<|> ManagedConfigurationsforDeviceGetResource :<|> ManagedConfigurationsforDeviceDeleteResource :<|> ManagedConfigurationsforDeviceUpdateResource :<|> PermissionsGetResource :<|> ProductsGenerateApprovalURLResource :<|> ProductsListResource :<|> ProductsGetResource :<|> ProductsGetAppRestrictionsSchemaResource :<|> ProductsUnApproveResource :<|> ProductsApproveResource :<|> ProductsGetPermissionsResource :<|> DevicesListResource :<|> DevicesSetStateResource :<|> DevicesPatchResource :<|> DevicesGetResource :<|> DevicesGetStateResource :<|> DevicesUpdateResource :<|> GrouplicenseUsersListResource
+ Network.Google.AndroidEnterprise: type AndroidEnterpriseAPI = StorelayoutclustersInsertResource :<|> StorelayoutclustersListResource :<|> StorelayoutclustersPatchResource :<|> StorelayoutclustersGetResource :<|> StorelayoutclustersDeleteResource :<|> StorelayoutclustersUpdateResource :<|> UsersInsertResource :<|> UsersListResource :<|> UsersGenerateTokenResource :<|> UsersGenerateAuthenticationTokenResource :<|> UsersPatchResource :<|> UsersGetResource :<|> UsersRevokeDeviceAccessResource :<|> UsersSetAvailableProductSetResource :<|> UsersRevokeTokenResource :<|> UsersGetAvailableProductSetResource :<|> UsersDeleteResource :<|> UsersUpdateResource :<|> InstallsListResource :<|> InstallsPatchResource :<|> InstallsGetResource :<|> InstallsDeleteResource :<|> InstallsUpdateResource :<|> StorelayoutpagesInsertResource :<|> StorelayoutpagesListResource :<|> StorelayoutpagesPatchResource :<|> StorelayoutpagesGetResource :<|> StorelayoutpagesDeleteResource :<|> StorelayoutpagesUpdateResource :<|> ServiceAccountkeysInsertResource :<|> ServiceAccountkeysListResource :<|> ServiceAccountkeysDeleteResource :<|> ManagedConfigurationssettingsListResource :<|> EnterprisesCompleteSignupResource :<|> EnterprisesCreateWebTokenResource :<|> EnterprisesGetServiceAccountResource :<|> EnterprisesListResource :<|> EnterprisesUnenrollResource :<|> EnterprisesGetStoreLayoutResource :<|> EnterprisesSetAccountResource :<|> EnterprisesEnrollResource :<|> EnterprisesGetResource :<|> EnterprisesGenerateSignupURLResource :<|> EnterprisesSendTestPushNotificationResource :<|> EnterprisesSetStoreLayoutResource :<|> EnterprisesAcknowledgeNotificationSetResource :<|> EnterprisesPullNotificationSetResource :<|> ManagedConfigurationsforUserListResource :<|> ManagedConfigurationsforUserPatchResource :<|> ManagedConfigurationsforUserGetResource :<|> ManagedConfigurationsforUserDeleteResource :<|> ManagedConfigurationsforUserUpdateResource :<|> GrouplicensesListResource :<|> GrouplicensesGetResource :<|> WebAppsInsertResource :<|> WebAppsListResource :<|> WebAppsPatchResource :<|> WebAppsGetResource :<|> WebAppsDeleteResource :<|> WebAppsUpdateResource :<|> EntitlementsListResource :<|> EntitlementsPatchResource :<|> EntitlementsGetResource :<|> EntitlementsDeleteResource :<|> EntitlementsUpdateResource :<|> ManagedConfigurationsforDeviceListResource :<|> ManagedConfigurationsforDevicePatchResource :<|> ManagedConfigurationsforDeviceGetResource :<|> ManagedConfigurationsforDeviceDeleteResource :<|> ManagedConfigurationsforDeviceUpdateResource :<|> PermissionsGetResource :<|> ProductsGenerateApprovalURLResource :<|> ProductsListResource :<|> ProductsGetResource :<|> ProductsGetAppRestrictionsSchemaResource :<|> ProductsUnApproveResource :<|> ProductsApproveResource :<|> ProductsGetPermissionsResource :<|> DevicesListResource :<|> DevicesSetStateResource :<|> DevicesPatchResource :<|> DevicesGetResource :<|> DevicesGetStateResource :<|> DevicesUpdateResource :<|> GrouplicenseUsersListResource

Files

README.md view
@@ -8,7 +8,7 @@  ## Version -`0.3.0`+`0.5.0`   ## Description
gen/Network/Google/AndroidEnterprise.hs view
@@ -65,9 +65,6 @@     -- ** androidenterprise.enterprises.get     , module Network.Google.Resource.AndroidEnterprise.Enterprises.Get -    -- ** androidenterprise.enterprises.getAndroidDevicePolicyConfig-    , module Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig-     -- ** androidenterprise.enterprises.getServiceAccount     , module Network.Google.Resource.AndroidEnterprise.Enterprises.GetServiceAccount @@ -86,9 +83,6 @@     -- ** androidenterprise.enterprises.setAccount     , module Network.Google.Resource.AndroidEnterprise.Enterprises.SetAccount -    -- ** androidenterprise.enterprises.setAndroidDevicePolicyConfig-    , module Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig-     -- ** androidenterprise.enterprises.setStoreLayout     , module Network.Google.Resource.AndroidEnterprise.Enterprises.SetStoreLayout @@ -409,6 +403,7 @@     , awtsWebApps     , awtsPermission     , awtsStoreBuilder+    , awtsManagedConfigurations      -- ** ProductVisibility     , ProductVisibility@@ -509,6 +504,7 @@     , ProductPolicy     , productPolicy     , ppTracks+    , ppManagedConfiguration     , ppTrackIds     , ppAutoInstallPolicy     , ppProductId@@ -567,12 +563,6 @@     , gllrGroupLicense     , gllrKind -    -- ** AndroidDevicePolicyConfig-    , AndroidDevicePolicyConfig-    , androidDevicePolicyConfig-    , adpcState-    , adpcKind-     -- ** ProductSet     , ProductSet     , productSet@@ -831,6 +821,11 @@     , ppsPermission     , ppsProductId +    -- ** AdministratorWebTokenSpecManagedConfigurations+    , AdministratorWebTokenSpecManagedConfigurations+    , administratorWebTokenSpecManagedConfigurations+    , awtsmcEnabled+     -- ** Permission     , Permission     , permission@@ -900,14 +895,12 @@ import           Network.Google.Resource.AndroidEnterprise.Enterprises.Enroll import           Network.Google.Resource.AndroidEnterprise.Enterprises.GenerateSignupURL import           Network.Google.Resource.AndroidEnterprise.Enterprises.Get-import           Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig import           Network.Google.Resource.AndroidEnterprise.Enterprises.GetServiceAccount import           Network.Google.Resource.AndroidEnterprise.Enterprises.GetStoreLayout import           Network.Google.Resource.AndroidEnterprise.Enterprises.List import           Network.Google.Resource.AndroidEnterprise.Enterprises.PullNotificationSet import           Network.Google.Resource.AndroidEnterprise.Enterprises.SendTestPushNotification import           Network.Google.Resource.AndroidEnterprise.Enterprises.SetAccount-import           Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig import           Network.Google.Resource.AndroidEnterprise.Enterprises.SetStoreLayout import           Network.Google.Resource.AndroidEnterprise.Enterprises.Unenroll import           Network.Google.Resource.AndroidEnterprise.Entitlements.Delete@@ -1021,14 +1014,12 @@        :<|> EnterprisesListResource        :<|> EnterprisesUnenrollResource        :<|> EnterprisesGetStoreLayoutResource-       :<|> EnterprisesSetAndroidDevicePolicyConfigResource        :<|> EnterprisesSetAccountResource        :<|> EnterprisesEnrollResource        :<|> EnterprisesGetResource        :<|> EnterprisesGenerateSignupURLResource        :<|> EnterprisesSendTestPushNotificationResource        :<|> EnterprisesSetStoreLayoutResource-       :<|> EnterprisesGetAndroidDevicePolicyConfigResource        :<|> EnterprisesAcknowledgeNotificationSetResource        :<|> EnterprisesPullNotificationSetResource        :<|> ManagedConfigurationsforUserListResource
gen/Network/Google/AndroidEnterprise/Types.hs view
@@ -139,6 +139,7 @@     , awtsWebApps     , awtsPermission     , awtsStoreBuilder+    , awtsManagedConfigurations      -- * ProductVisibility     , ProductVisibility@@ -239,6 +240,7 @@     , ProductPolicy     , productPolicy     , ppTracks+    , ppManagedConfiguration     , ppTrackIds     , ppAutoInstallPolicy     , ppProductId@@ -297,12 +299,6 @@     , gllrGroupLicense     , gllrKind -    -- * AndroidDevicePolicyConfig-    , AndroidDevicePolicyConfig-    , androidDevicePolicyConfig-    , adpcState-    , adpcKind-     -- * ProductSet     , ProductSet     , productSet@@ -561,6 +557,11 @@     , ppsPermission     , ppsProductId +    -- * AdministratorWebTokenSpecManagedConfigurations+    , AdministratorWebTokenSpecManagedConfigurations+    , administratorWebTokenSpecManagedConfigurations+    , awtsmcEnabled+     -- * Permission     , Permission     , permission@@ -628,4 +629,4 @@  -- | Manage corporate Android devices androidEnterpriseScope :: Proxy '["https://www.googleapis.com/auth/androidenterprise"]-androidEnterpriseScope = Proxy;+androidEnterpriseScope = Proxy
gen/Network/Google/AndroidEnterprise/Types/Product.hs view
@@ -36,5588 +36,5876 @@ -- entitlements for the product. -- -- /See:/ 'groupLicense' smart constructor.-data GroupLicense = GroupLicense'-    { _glKind            :: !Text-    , _glNumProvisioned  :: !(Maybe (Textual Int32))-    , _glNumPurchased    :: !(Maybe (Textual Int32))-    , _glApproval        :: !(Maybe Text)-    , _glPermissions     :: !(Maybe Text)-    , _glProductId       :: !(Maybe Text)-    , _glAcquisitionKind :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'GroupLicense' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'glKind'------ * 'glNumProvisioned'------ * 'glNumPurchased'------ * 'glApproval'------ * 'glPermissions'------ * 'glProductId'------ * 'glAcquisitionKind'-groupLicense-    :: GroupLicense-groupLicense =-    GroupLicense'-    { _glKind = "androidenterprise#groupLicense"-    , _glNumProvisioned = Nothing-    , _glNumPurchased = Nothing-    , _glApproval = Nothing-    , _glPermissions = Nothing-    , _glProductId = Nothing-    , _glAcquisitionKind = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#groupLicense\".-glKind :: Lens' GroupLicense Text-glKind = lens _glKind (\ s a -> s{_glKind = a})---- | The total number of provisioned licenses for this product. Returned by--- read operations, but ignored in write operations.-glNumProvisioned :: Lens' GroupLicense (Maybe Int32)-glNumProvisioned-  = lens _glNumProvisioned-      (\ s a -> s{_glNumProvisioned = a})-      . mapping _Coerce---- | The number of purchased licenses (possibly in multiple purchases). If--- this field is omitted, then there is no limit on the number of licenses--- that can be provisioned (for example, if the acquisition kind is--- \"free\").-glNumPurchased :: Lens' GroupLicense (Maybe Int32)-glNumPurchased-  = lens _glNumPurchased-      (\ s a -> s{_glNumPurchased = a})-      . mapping _Coerce---- | Whether the product to which this group license relates is currently--- approved by the enterprise. Products are approved when a group license--- is first created, but this approval may be revoked by an enterprise--- admin via Google Play. Unapproved products will not be visible to end--- users in collections, and new entitlements to them should not normally--- be created.-glApproval :: Lens' GroupLicense (Maybe Text)-glApproval-  = lens _glApproval (\ s a -> s{_glApproval = a})---- | The permission approval status of the product. This field is only set if--- the product is approved. Possible states are: - \"currentApproved\", the--- current set of permissions is approved, but additional permissions will--- require the administrator to reapprove the product (If the product was--- approved without specifying the approved permissions setting, then this--- is the default behavior.), - \"needsReapproval\", the product has--- unapproved permissions. No additional product licenses can be assigned--- until the product is reapproved, - \"allCurrentAndFutureApproved\", the--- current permissions are approved and any future permission updates will--- be automatically approved without administrator review.-glPermissions :: Lens' GroupLicense (Maybe Text)-glPermissions-  = lens _glPermissions-      (\ s a -> s{_glPermissions = a})---- | The ID of the product that the license is for. For example,--- \"app:com.google.android.gm\".-glProductId :: Lens' GroupLicense (Maybe Text)-glProductId-  = lens _glProductId (\ s a -> s{_glProductId = a})---- | How this group license was acquired. \"bulkPurchase\" means that this--- Grouplicenses resource was created because the enterprise purchased--- licenses for this product; otherwise, the value is \"free\" (for free--- products).-glAcquisitionKind :: Lens' GroupLicense (Maybe Text)-glAcquisitionKind-  = lens _glAcquisitionKind-      (\ s a -> s{_glAcquisitionKind = a})--instance FromJSON GroupLicense where-        parseJSON-          = withObject "GroupLicense"-              (\ o ->-                 GroupLicense' <$>-                   (o .:? "kind" .!= "androidenterprise#groupLicense")-                     <*> (o .:? "numProvisioned")-                     <*> (o .:? "numPurchased")-                     <*> (o .:? "approval")-                     <*> (o .:? "permissions")-                     <*> (o .:? "productId")-                     <*> (o .:? "acquisitionKind"))--instance ToJSON GroupLicense where-        toJSON GroupLicense'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _glKind),-                  ("numProvisioned" .=) <$> _glNumProvisioned,-                  ("numPurchased" .=) <$> _glNumPurchased,-                  ("approval" .=) <$> _glApproval,-                  ("permissions" .=) <$> _glPermissions,-                  ("productId" .=) <$> _glProductId,-                  ("acquisitionKind" .=) <$> _glAcquisitionKind])---- | The store page resources for the enterprise.------ /See:/ 'storeLayoutPagesListResponse' smart constructor.-data StoreLayoutPagesListResponse = StoreLayoutPagesListResponse'-    { _slplrKind :: !Text-    , _slplrPage :: !(Maybe [StorePage])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'StoreLayoutPagesListResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'slplrKind'------ * 'slplrPage'-storeLayoutPagesListResponse-    :: StoreLayoutPagesListResponse-storeLayoutPagesListResponse =-    StoreLayoutPagesListResponse'-    { _slplrKind = "androidenterprise#storeLayoutPagesListResponse"-    , _slplrPage = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#storeLayoutPagesListResponse\".-slplrKind :: Lens' StoreLayoutPagesListResponse Text-slplrKind-  = lens _slplrKind (\ s a -> s{_slplrKind = a})---- | A store page of an enterprise.-slplrPage :: Lens' StoreLayoutPagesListResponse [StorePage]-slplrPage-  = lens _slplrPage (\ s a -> s{_slplrPage = a}) .-      _Default-      . _Coerce--instance FromJSON StoreLayoutPagesListResponse where-        parseJSON-          = withObject "StoreLayoutPagesListResponse"-              (\ o ->-                 StoreLayoutPagesListResponse' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#storeLayoutPagesListResponse")-                     <*> (o .:? "page" .!= mempty))--instance ToJSON StoreLayoutPagesListResponse where-        toJSON StoreLayoutPagesListResponse'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _slplrKind),-                  ("page" .=) <$> _slplrPage])---- | A service account that can be used to authenticate as the enterprise to--- API calls that require such authentication.------ /See:/ 'enterpriseAccount' smart constructor.-data EnterpriseAccount = EnterpriseAccount'-    { _eaKind         :: !Text-    , _eaAccountEmail :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'EnterpriseAccount' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eaKind'------ * 'eaAccountEmail'-enterpriseAccount-    :: EnterpriseAccount-enterpriseAccount =-    EnterpriseAccount'-    { _eaKind = "androidenterprise#enterpriseAccount"-    , _eaAccountEmail = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#enterpriseAccount\".-eaKind :: Lens' EnterpriseAccount Text-eaKind = lens _eaKind (\ s a -> s{_eaKind = a})---- | The email address of the service account.-eaAccountEmail :: Lens' EnterpriseAccount (Maybe Text)-eaAccountEmail-  = lens _eaAccountEmail-      (\ s a -> s{_eaAccountEmail = a})--instance FromJSON EnterpriseAccount where-        parseJSON-          = withObject "EnterpriseAccount"-              (\ o ->-                 EnterpriseAccount' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#enterpriseAccount")-                     <*> (o .:? "accountEmail"))--instance ToJSON EnterpriseAccount where-        toJSON EnterpriseAccount'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _eaKind),-                  ("accountEmail" .=) <$> _eaAccountEmail])---- | A typed value for the restriction.------ /See:/ 'appRestrictionsSchemaRestrictionRestrictionValue' smart constructor.-data AppRestrictionsSchemaRestrictionRestrictionValue = AppRestrictionsSchemaRestrictionRestrictionValue'-    { _arsrrvValueMultiselect :: !(Maybe [Text])-    , _arsrrvValueBool        :: !(Maybe Bool)-    , _arsrrvValueInteger     :: !(Maybe (Textual Int32))-    , _arsrrvType             :: !(Maybe Text)-    , _arsrrvValueString      :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AppRestrictionsSchemaRestrictionRestrictionValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'arsrrvValueMultiselect'------ * 'arsrrvValueBool'------ * 'arsrrvValueInteger'------ * 'arsrrvType'------ * 'arsrrvValueString'-appRestrictionsSchemaRestrictionRestrictionValue-    :: AppRestrictionsSchemaRestrictionRestrictionValue-appRestrictionsSchemaRestrictionRestrictionValue =-    AppRestrictionsSchemaRestrictionRestrictionValue'-    { _arsrrvValueMultiselect = Nothing-    , _arsrrvValueBool = Nothing-    , _arsrrvValueInteger = Nothing-    , _arsrrvType = Nothing-    , _arsrrvValueString = Nothing-    }---- | The list of string values - this will only be present if type is--- multiselect.-arsrrvValueMultiselect :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue [Text]-arsrrvValueMultiselect-  = lens _arsrrvValueMultiselect-      (\ s a -> s{_arsrrvValueMultiselect = a})-      . _Default-      . _Coerce---- | The boolean value - this will only be present if type is bool.-arsrrvValueBool :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue (Maybe Bool)-arsrrvValueBool-  = lens _arsrrvValueBool-      (\ s a -> s{_arsrrvValueBool = a})---- | The integer value - this will only be present if type is integer.-arsrrvValueInteger :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue (Maybe Int32)-arsrrvValueInteger-  = lens _arsrrvValueInteger-      (\ s a -> s{_arsrrvValueInteger = a})-      . mapping _Coerce---- | The type of the value being provided.-arsrrvType :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue (Maybe Text)-arsrrvType-  = lens _arsrrvType (\ s a -> s{_arsrrvType = a})---- | The string value - this will be present for types string, choice and--- hidden.-arsrrvValueString :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue (Maybe Text)-arsrrvValueString-  = lens _arsrrvValueString-      (\ s a -> s{_arsrrvValueString = a})--instance FromJSON-         AppRestrictionsSchemaRestrictionRestrictionValue-         where-        parseJSON-          = withObject-              "AppRestrictionsSchemaRestrictionRestrictionValue"-              (\ o ->-                 AppRestrictionsSchemaRestrictionRestrictionValue' <$>-                   (o .:? "valueMultiselect" .!= mempty) <*>-                     (o .:? "valueBool")-                     <*> (o .:? "valueInteger")-                     <*> (o .:? "type")-                     <*> (o .:? "valueString"))--instance ToJSON-         AppRestrictionsSchemaRestrictionRestrictionValue-         where-        toJSON-          AppRestrictionsSchemaRestrictionRestrictionValue'{..}-          = object-              (catMaybes-                 [("valueMultiselect" .=) <$> _arsrrvValueMultiselect,-                  ("valueBool" .=) <$> _arsrrvValueBool,-                  ("valueInteger" .=) <$> _arsrrvValueInteger,-                  ("type" .=) <$> _arsrrvType,-                  ("valueString" .=) <$> _arsrrvValueString])------- /See:/ 'administratorWebTokenSpecPlaySearch' smart constructor.-data AdministratorWebTokenSpecPlaySearch = AdministratorWebTokenSpecPlaySearch'-    { _awtspsEnabled     :: !(Maybe Bool)-    , _awtspsApproveApps :: !(Maybe Bool)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AdministratorWebTokenSpecPlaySearch' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'awtspsEnabled'------ * 'awtspsApproveApps'-administratorWebTokenSpecPlaySearch-    :: AdministratorWebTokenSpecPlaySearch-administratorWebTokenSpecPlaySearch =-    AdministratorWebTokenSpecPlaySearch'-    { _awtspsEnabled = Nothing-    , _awtspsApproveApps = Nothing-    }---- | Whether the managed Play Search apps page is displayed. Default is true.-awtspsEnabled :: Lens' AdministratorWebTokenSpecPlaySearch (Maybe Bool)-awtspsEnabled-  = lens _awtspsEnabled-      (\ s a -> s{_awtspsEnabled = a})---- | Allow access to the iframe in approve mode. Default is false.-awtspsApproveApps :: Lens' AdministratorWebTokenSpecPlaySearch (Maybe Bool)-awtspsApproveApps-  = lens _awtspsApproveApps-      (\ s a -> s{_awtspsApproveApps = a})--instance FromJSON AdministratorWebTokenSpecPlaySearch-         where-        parseJSON-          = withObject "AdministratorWebTokenSpecPlaySearch"-              (\ o ->-                 AdministratorWebTokenSpecPlaySearch' <$>-                   (o .:? "enabled") <*> (o .:? "approveApps"))--instance ToJSON AdministratorWebTokenSpecPlaySearch-         where-        toJSON AdministratorWebTokenSpecPlaySearch'{..}-          = object-              (catMaybes-                 [("enabled" .=) <$> _awtspsEnabled,-                  ("approveApps" .=) <$> _awtspsApproveApps])---- | The state of a user\'s device, as accessed by the getState and setState--- methods on device resources.------ /See:/ 'deviceState' smart constructor.-data DeviceState = DeviceState'-    { _dsKind         :: !Text-    , _dsAccountState :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DeviceState' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dsKind'------ * 'dsAccountState'-deviceState-    :: DeviceState-deviceState =-    DeviceState'-    { _dsKind = "androidenterprise#deviceState"-    , _dsAccountState = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#deviceState\".-dsKind :: Lens' DeviceState Text-dsKind = lens _dsKind (\ s a -> s{_dsKind = a})---- | The state of the Google account on the device. \"enabled\" indicates--- that the Google account on the device can be used to access Google--- services (including Google Play), while \"disabled\" means that it--- cannot. A new device is initially in the \"disabled\" state.-dsAccountState :: Lens' DeviceState (Maybe Text)-dsAccountState-  = lens _dsAccountState-      (\ s a -> s{_dsAccountState = a})--instance FromJSON DeviceState where-        parseJSON-          = withObject "DeviceState"-              (\ o ->-                 DeviceState' <$>-                   (o .:? "kind" .!= "androidenterprise#deviceState")-                     <*> (o .:? "accountState"))--instance ToJSON DeviceState where-        toJSON DeviceState'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _dsKind),-                  ("accountState" .=) <$> _dsAccountState])---- | The user resources for the group license.------ /See:/ 'groupLicenseUsersListResponse' smart constructor.-data GroupLicenseUsersListResponse = GroupLicenseUsersListResponse'-    { _glulrKind :: !Text-    , _glulrUser :: !(Maybe [User])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'GroupLicenseUsersListResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'glulrKind'------ * 'glulrUser'-groupLicenseUsersListResponse-    :: GroupLicenseUsersListResponse-groupLicenseUsersListResponse =-    GroupLicenseUsersListResponse'-    { _glulrKind = "androidenterprise#groupLicenseUsersListResponse"-    , _glulrUser = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#groupLicenseUsersListResponse\".-glulrKind :: Lens' GroupLicenseUsersListResponse Text-glulrKind-  = lens _glulrKind (\ s a -> s{_glulrKind = a})---- | A user of an enterprise.-glulrUser :: Lens' GroupLicenseUsersListResponse [User]-glulrUser-  = lens _glulrUser (\ s a -> s{_glulrUser = a}) .-      _Default-      . _Coerce--instance FromJSON GroupLicenseUsersListResponse where-        parseJSON-          = withObject "GroupLicenseUsersListResponse"-              (\ o ->-                 GroupLicenseUsersListResponse' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#groupLicenseUsersListResponse")-                     <*> (o .:? "user" .!= mempty))--instance ToJSON GroupLicenseUsersListResponse where-        toJSON GroupLicenseUsersListResponse'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _glulrKind),-                  ("user" .=) <$> _glulrUser])------- /See:/ 'tokenPagination' smart constructor.-data TokenPagination = TokenPagination'-    { _tpNextPageToken     :: !(Maybe Text)-    , _tpPreviousPageToken :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TokenPagination' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tpNextPageToken'------ * 'tpPreviousPageToken'-tokenPagination-    :: TokenPagination-tokenPagination =-    TokenPagination'-    { _tpNextPageToken = Nothing-    , _tpPreviousPageToken = Nothing-    }--tpNextPageToken :: Lens' TokenPagination (Maybe Text)-tpNextPageToken-  = lens _tpNextPageToken-      (\ s a -> s{_tpNextPageToken = a})--tpPreviousPageToken :: Lens' TokenPagination (Maybe Text)-tpPreviousPageToken-  = lens _tpPreviousPageToken-      (\ s a -> s{_tpPreviousPageToken = a})--instance FromJSON TokenPagination where-        parseJSON-          = withObject "TokenPagination"-              (\ o ->-                 TokenPagination' <$>-                   (o .:? "nextPageToken") <*>-                     (o .:? "previousPageToken"))--instance ToJSON TokenPagination where-        toJSON TokenPagination'{..}-          = object-              (catMaybes-                 [("nextPageToken" .=) <$> _tpNextPageToken,-                  ("previousPageToken" .=) <$> _tpPreviousPageToken])------- /See:/ 'administratorWebTokenSpecWebApps' smart constructor.-newtype AdministratorWebTokenSpecWebApps = AdministratorWebTokenSpecWebApps'-    { _awtswaEnabled :: Maybe Bool-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AdministratorWebTokenSpecWebApps' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'awtswaEnabled'-administratorWebTokenSpecWebApps-    :: AdministratorWebTokenSpecWebApps-administratorWebTokenSpecWebApps =-    AdministratorWebTokenSpecWebApps'-    { _awtswaEnabled = Nothing-    }---- | Whether the Web Apps page is displayed. Default is true.-awtswaEnabled :: Lens' AdministratorWebTokenSpecWebApps (Maybe Bool)-awtswaEnabled-  = lens _awtswaEnabled-      (\ s a -> s{_awtswaEnabled = a})--instance FromJSON AdministratorWebTokenSpecWebApps-         where-        parseJSON-          = withObject "AdministratorWebTokenSpecWebApps"-              (\ o ->-                 AdministratorWebTokenSpecWebApps' <$>-                   (o .:? "enabled"))--instance ToJSON AdministratorWebTokenSpecWebApps-         where-        toJSON AdministratorWebTokenSpecWebApps'{..}-          = object-              (catMaybes [("enabled" .=) <$> _awtswaEnabled])---- | Information on an approval URL.------ /See:/ 'approvalURLInfo' smart constructor.-data ApprovalURLInfo = ApprovalURLInfo'-    { _auiApprovalURL :: !(Maybe Text)-    , _auiKind        :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ApprovalURLInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'auiApprovalURL'------ * 'auiKind'-approvalURLInfo-    :: ApprovalURLInfo-approvalURLInfo =-    ApprovalURLInfo'-    { _auiApprovalURL = Nothing-    , _auiKind = "androidenterprise#approvalUrlInfo"-    }---- | A URL that displays a product\'s permissions and that can also be used--- to approve the product with the Products.approve call.-auiApprovalURL :: Lens' ApprovalURLInfo (Maybe Text)-auiApprovalURL-  = lens _auiApprovalURL-      (\ s a -> s{_auiApprovalURL = a})---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#approvalUrlInfo\".-auiKind :: Lens' ApprovalURLInfo Text-auiKind = lens _auiKind (\ s a -> s{_auiKind = a})--instance FromJSON ApprovalURLInfo where-        parseJSON-          = withObject "ApprovalURLInfo"-              (\ o ->-                 ApprovalURLInfo' <$>-                   (o .:? "approvalUrl") <*>-                     (o .:? "kind" .!=-                        "androidenterprise#approvalUrlInfo"))--instance ToJSON ApprovalURLInfo where-        toJSON ApprovalURLInfo'{..}-          = object-              (catMaybes-                 [("approvalUrl" .=) <$> _auiApprovalURL,-                  Just ("kind" .= _auiKind)])---- | The managed configurations settings for a product.------ /See:/ 'managedConfigurationsSettingsListResponse' smart constructor.-data ManagedConfigurationsSettingsListResponse = ManagedConfigurationsSettingsListResponse'-    { _mcslrKind                          :: !Text-    , _mcslrManagedConfigurationsSettings :: !(Maybe [ManagedConfigurationsSettings])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ManagedConfigurationsSettingsListResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mcslrKind'------ * 'mcslrManagedConfigurationsSettings'-managedConfigurationsSettingsListResponse-    :: ManagedConfigurationsSettingsListResponse-managedConfigurationsSettingsListResponse =-    ManagedConfigurationsSettingsListResponse'-    { _mcslrKind = "androidenterprise#managedConfigurationsSettingsListResponse"-    , _mcslrManagedConfigurationsSettings = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#managedConfigurationsSettingsListResponse\".-mcslrKind :: Lens' ManagedConfigurationsSettingsListResponse Text-mcslrKind-  = lens _mcslrKind (\ s a -> s{_mcslrKind = a})---- | A managed configurations settings for an app that may be assigned to a--- group of users in an enterprise.-mcslrManagedConfigurationsSettings :: Lens' ManagedConfigurationsSettingsListResponse [ManagedConfigurationsSettings]-mcslrManagedConfigurationsSettings-  = lens _mcslrManagedConfigurationsSettings-      (\ s a -> s{_mcslrManagedConfigurationsSettings = a})-      . _Default-      . _Coerce--instance FromJSON-         ManagedConfigurationsSettingsListResponse where-        parseJSON-          = withObject-              "ManagedConfigurationsSettingsListResponse"-              (\ o ->-                 ManagedConfigurationsSettingsListResponse' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#managedConfigurationsSettingsListResponse")-                     <*>-                     (o .:? "managedConfigurationsSettings" .!= mempty))--instance ToJSON-         ManagedConfigurationsSettingsListResponse where-        toJSON ManagedConfigurationsSettingsListResponse'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _mcslrKind),-                  ("managedConfigurationsSettings" .=) <$>-                    _mcslrManagedConfigurationsSettings])---- | A managed property of a managed configuration. The property must match--- one of the properties in the app restrictions schema of the product.--- Exactly one of the value fields must be populated, and it must match the--- property\'s type in the app restrictions schema.------ /See:/ 'managedProperty' smart constructor.-data ManagedProperty = ManagedProperty'-    { _mpValueStringArray :: !(Maybe [Text])-    , _mpValueBool        :: !(Maybe Bool)-    , _mpKey              :: !(Maybe Text)-    , _mpValueBundle      :: !(Maybe ManagedPropertyBundle)-    , _mpValueInteger     :: !(Maybe (Textual Int32))-    , _mpValueBundleArray :: !(Maybe [ManagedPropertyBundle])-    , _mpValueString      :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ManagedProperty' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mpValueStringArray'------ * 'mpValueBool'------ * 'mpKey'------ * 'mpValueBundle'------ * 'mpValueInteger'------ * 'mpValueBundleArray'------ * 'mpValueString'-managedProperty-    :: ManagedProperty-managedProperty =-    ManagedProperty'-    { _mpValueStringArray = Nothing-    , _mpValueBool = Nothing-    , _mpKey = Nothing-    , _mpValueBundle = Nothing-    , _mpValueInteger = Nothing-    , _mpValueBundleArray = Nothing-    , _mpValueString = Nothing-    }---- | The list of string values - this will only be present if type of the--- property is multiselect.-mpValueStringArray :: Lens' ManagedProperty [Text]-mpValueStringArray-  = lens _mpValueStringArray-      (\ s a -> s{_mpValueStringArray = a})-      . _Default-      . _Coerce---- | The boolean value - this will only be present if type of the property is--- bool.-mpValueBool :: Lens' ManagedProperty (Maybe Bool)-mpValueBool-  = lens _mpValueBool (\ s a -> s{_mpValueBool = a})---- | The unique key that identifies the property.-mpKey :: Lens' ManagedProperty (Maybe Text)-mpKey = lens _mpKey (\ s a -> s{_mpKey = a})---- | The bundle of managed properties - this will only be present if type of--- the property is bundle.-mpValueBundle :: Lens' ManagedProperty (Maybe ManagedPropertyBundle)-mpValueBundle-  = lens _mpValueBundle-      (\ s a -> s{_mpValueBundle = a})---- | The integer value - this will only be present if type of the property is--- integer.-mpValueInteger :: Lens' ManagedProperty (Maybe Int32)-mpValueInteger-  = lens _mpValueInteger-      (\ s a -> s{_mpValueInteger = a})-      . mapping _Coerce---- | The list of bundles of properties - this will only be present if type of--- the property is bundle_array.-mpValueBundleArray :: Lens' ManagedProperty [ManagedPropertyBundle]-mpValueBundleArray-  = lens _mpValueBundleArray-      (\ s a -> s{_mpValueBundleArray = a})-      . _Default-      . _Coerce---- | The string value - this will only be present if type of the property is--- string, choice or hidden.-mpValueString :: Lens' ManagedProperty (Maybe Text)-mpValueString-  = lens _mpValueString-      (\ s a -> s{_mpValueString = a})--instance FromJSON ManagedProperty where-        parseJSON-          = withObject "ManagedProperty"-              (\ o ->-                 ManagedProperty' <$>-                   (o .:? "valueStringArray" .!= mempty) <*>-                     (o .:? "valueBool")-                     <*> (o .:? "key")-                     <*> (o .:? "valueBundle")-                     <*> (o .:? "valueInteger")-                     <*> (o .:? "valueBundleArray" .!= mempty)-                     <*> (o .:? "valueString"))--instance ToJSON ManagedProperty where-        toJSON ManagedProperty'{..}-          = object-              (catMaybes-                 [("valueStringArray" .=) <$> _mpValueStringArray,-                  ("valueBool" .=) <$> _mpValueBool,-                  ("key" .=) <$> _mpKey,-                  ("valueBundle" .=) <$> _mpValueBundle,-                  ("valueInteger" .=) <$> _mpValueInteger,-                  ("valueBundleArray" .=) <$> _mpValueBundleArray,-                  ("valueString" .=) <$> _mpValueString])---- | The store page resources for the enterprise.------ /See:/ 'storeLayoutClustersListResponse' smart constructor.-data StoreLayoutClustersListResponse = StoreLayoutClustersListResponse'-    { _slclrCluster :: !(Maybe [StoreCluster])-    , _slclrKind    :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'StoreLayoutClustersListResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'slclrCluster'------ * 'slclrKind'-storeLayoutClustersListResponse-    :: StoreLayoutClustersListResponse-storeLayoutClustersListResponse =-    StoreLayoutClustersListResponse'-    { _slclrCluster = Nothing-    , _slclrKind = "androidenterprise#storeLayoutClustersListResponse"-    }---- | A store cluster of an enterprise.-slclrCluster :: Lens' StoreLayoutClustersListResponse [StoreCluster]-slclrCluster-  = lens _slclrCluster (\ s a -> s{_slclrCluster = a})-      . _Default-      . _Coerce---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#storeLayoutClustersListResponse\".-slclrKind :: Lens' StoreLayoutClustersListResponse Text-slclrKind-  = lens _slclrKind (\ s a -> s{_slclrKind = a})--instance FromJSON StoreLayoutClustersListResponse-         where-        parseJSON-          = withObject "StoreLayoutClustersListResponse"-              (\ o ->-                 StoreLayoutClustersListResponse' <$>-                   (o .:? "cluster" .!= mempty) <*>-                     (o .:? "kind" .!=-                        "androidenterprise#storeLayoutClustersListResponse"))--instance ToJSON StoreLayoutClustersListResponse where-        toJSON StoreLayoutClustersListResponse'{..}-          = object-              (catMaybes-                 [("cluster" .=) <$> _slclrCluster,-                  Just ("kind" .= _slclrKind)])---- | A managed configuration resource contains the set of managed properties--- defined by the app developer in the app\'s managed configurations--- schema, as well as any configuration variables defined for the user.------ /See:/ 'managedConfiguration' smart constructor.-data ManagedConfiguration = ManagedConfiguration'-    { _mcManagedProperty        :: !(Maybe [ManagedProperty])-    , _mcKind                   :: !Text-    , _mcConfigurationVariables :: !(Maybe ConfigurationVariables)-    , _mcProductId              :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ManagedConfiguration' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mcManagedProperty'------ * 'mcKind'------ * 'mcConfigurationVariables'------ * 'mcProductId'-managedConfiguration-    :: ManagedConfiguration-managedConfiguration =-    ManagedConfiguration'-    { _mcManagedProperty = Nothing-    , _mcKind = "androidenterprise#managedConfiguration"-    , _mcConfigurationVariables = Nothing-    , _mcProductId = Nothing-    }---- | The set of managed properties for this configuration.-mcManagedProperty :: Lens' ManagedConfiguration [ManagedProperty]-mcManagedProperty-  = lens _mcManagedProperty-      (\ s a -> s{_mcManagedProperty = a})-      . _Default-      . _Coerce---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#managedConfiguration\".-mcKind :: Lens' ManagedConfiguration Text-mcKind = lens _mcKind (\ s a -> s{_mcKind = a})---- | Contains the ID of the managed configuration profile and the set of--- configuration variables (if any) defined for the user.-mcConfigurationVariables :: Lens' ManagedConfiguration (Maybe ConfigurationVariables)-mcConfigurationVariables-  = lens _mcConfigurationVariables-      (\ s a -> s{_mcConfigurationVariables = a})---- | The ID of the product that the managed configuration is for, e.g.--- \"app:com.google.android.gm\".-mcProductId :: Lens' ManagedConfiguration (Maybe Text)-mcProductId-  = lens _mcProductId (\ s a -> s{_mcProductId = a})--instance FromJSON ManagedConfiguration where-        parseJSON-          = withObject "ManagedConfiguration"-              (\ o ->-                 ManagedConfiguration' <$>-                   (o .:? "managedProperty" .!= mempty) <*>-                     (o .:? "kind" .!=-                        "androidenterprise#managedConfiguration")-                     <*> (o .:? "configurationVariables")-                     <*> (o .:? "productId"))--instance ToJSON ManagedConfiguration where-        toJSON ManagedConfiguration'{..}-          = object-              (catMaybes-                 [("managedProperty" .=) <$> _mcManagedProperty,-                  Just ("kind" .= _mcKind),-                  ("configurationVariables" .=) <$>-                    _mcConfigurationVariables,-                  ("productId" .=) <$> _mcProductId])---- | Definition of a managed Google Play store cluster, a list of products--- displayed as part of a store page.------ /See:/ 'storeCluster' smart constructor.-data StoreCluster = StoreCluster'-    { _scKind        :: !Text-    , _scName        :: !(Maybe [LocalizedText])-    , _scOrderInPage :: !(Maybe Text)-    , _scId          :: !(Maybe Text)-    , _scProductId   :: !(Maybe [Text])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'StoreCluster' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'scKind'------ * 'scName'------ * 'scOrderInPage'------ * 'scId'------ * 'scProductId'-storeCluster-    :: StoreCluster-storeCluster =-    StoreCluster'-    { _scKind = "androidenterprise#storeCluster"-    , _scName = Nothing-    , _scOrderInPage = Nothing-    , _scId = Nothing-    , _scProductId = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#storeCluster\".-scKind :: Lens' StoreCluster Text-scKind = lens _scKind (\ s a -> s{_scKind = a})---- | Ordered list of localized strings giving the name of this page. The text--- displayed is the one that best matches the user locale, or the first--- entry if there is no good match. There needs to be at least one entry.-scName :: Lens' StoreCluster [LocalizedText]-scName-  = lens _scName (\ s a -> s{_scName = a}) . _Default .-      _Coerce---- | String (US-ASCII only) used to determine order of this cluster within--- the parent page\'s elements. Page elements are sorted in lexicographic--- order of this field. Duplicated values are allowed, but ordering between--- elements with duplicate order is undefined. The value of this field is--- never visible to a user, it is used solely for the purpose of defining--- an ordering. Maximum length is 256 characters.-scOrderInPage :: Lens' StoreCluster (Maybe Text)-scOrderInPage-  = lens _scOrderInPage-      (\ s a -> s{_scOrderInPage = a})---- | Unique ID of this cluster. Assigned by the server. Immutable once--- assigned.-scId :: Lens' StoreCluster (Maybe Text)-scId = lens _scId (\ s a -> s{_scId = a})---- | List of products in the order they are displayed in the cluster. There--- should not be duplicates within a cluster.-scProductId :: Lens' StoreCluster [Text]-scProductId-  = lens _scProductId (\ s a -> s{_scProductId = a}) .-      _Default-      . _Coerce--instance FromJSON StoreCluster where-        parseJSON-          = withObject "StoreCluster"-              (\ o ->-                 StoreCluster' <$>-                   (o .:? "kind" .!= "androidenterprise#storeCluster")-                     <*> (o .:? "name" .!= mempty)-                     <*> (o .:? "orderInPage")-                     <*> (o .:? "id")-                     <*> (o .:? "productId" .!= mempty))--instance ToJSON StoreCluster where-        toJSON StoreCluster'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _scKind), ("name" .=) <$> _scName,-                  ("orderInPage" .=) <$> _scOrderInPage,-                  ("id" .=) <$> _scId,-                  ("productId" .=) <$> _scProductId])---- | Specification for a token used to generate iframes. The token specifies--- what data the admin is allowed to modify and the URI the iframe is--- allowed to communiate with.------ /See:/ 'administratorWebTokenSpec' smart constructor.-data AdministratorWebTokenSpec = AdministratorWebTokenSpec'-    { _awtsParent       :: !(Maybe Text)-    , _awtsPrivateApps  :: !(Maybe AdministratorWebTokenSpecPrivateApps)-    , _awtsPlaySearch   :: !(Maybe AdministratorWebTokenSpecPlaySearch)-    , _awtsKind         :: !Text-    , _awtsWebApps      :: !(Maybe AdministratorWebTokenSpecWebApps)-    , _awtsPermission   :: !(Maybe [Text])-    , _awtsStoreBuilder :: !(Maybe AdministratorWebTokenSpecStoreBuilder)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AdministratorWebTokenSpec' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'awtsParent'------ * 'awtsPrivateApps'------ * 'awtsPlaySearch'------ * 'awtsKind'------ * 'awtsWebApps'------ * 'awtsPermission'------ * 'awtsStoreBuilder'-administratorWebTokenSpec-    :: AdministratorWebTokenSpec-administratorWebTokenSpec =-    AdministratorWebTokenSpec'-    { _awtsParent = Nothing-    , _awtsPrivateApps = Nothing-    , _awtsPlaySearch = Nothing-    , _awtsKind = "androidenterprise#administratorWebTokenSpec"-    , _awtsWebApps = Nothing-    , _awtsPermission = Nothing-    , _awtsStoreBuilder = Nothing-    }---- | The URI of the parent frame hosting the iframe. To prevent XSS, the--- iframe may not be hosted at other URIs. This URI must be https.-awtsParent :: Lens' AdministratorWebTokenSpec (Maybe Text)-awtsParent-  = lens _awtsParent (\ s a -> s{_awtsParent = a})---- | Options for displaying the Private Apps page.-awtsPrivateApps :: Lens' AdministratorWebTokenSpec (Maybe AdministratorWebTokenSpecPrivateApps)-awtsPrivateApps-  = lens _awtsPrivateApps-      (\ s a -> s{_awtsPrivateApps = a})---- | Options for displaying the managed Play Search apps page.-awtsPlaySearch :: Lens' AdministratorWebTokenSpec (Maybe AdministratorWebTokenSpecPlaySearch)-awtsPlaySearch-  = lens _awtsPlaySearch-      (\ s a -> s{_awtsPlaySearch = a})---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#administratorWebTokenSpec\".-awtsKind :: Lens' AdministratorWebTokenSpec Text-awtsKind = lens _awtsKind (\ s a -> s{_awtsKind = a})---- | Options for displaying the Web Apps page.-awtsWebApps :: Lens' AdministratorWebTokenSpec (Maybe AdministratorWebTokenSpecWebApps)-awtsWebApps-  = lens _awtsWebApps (\ s a -> s{_awtsWebApps = a})---- | Deprecated. Use PlaySearch.approveApps.-awtsPermission :: Lens' AdministratorWebTokenSpec [Text]-awtsPermission-  = lens _awtsPermission-      (\ s a -> s{_awtsPermission = a})-      . _Default-      . _Coerce---- | Options for displaying the Organize apps page.-awtsStoreBuilder :: Lens' AdministratorWebTokenSpec (Maybe AdministratorWebTokenSpecStoreBuilder)-awtsStoreBuilder-  = lens _awtsStoreBuilder-      (\ s a -> s{_awtsStoreBuilder = a})--instance FromJSON AdministratorWebTokenSpec where-        parseJSON-          = withObject "AdministratorWebTokenSpec"-              (\ o ->-                 AdministratorWebTokenSpec' <$>-                   (o .:? "parent") <*> (o .:? "privateApps") <*>-                     (o .:? "playSearch")-                     <*>-                     (o .:? "kind" .!=-                        "androidenterprise#administratorWebTokenSpec")-                     <*> (o .:? "webApps")-                     <*> (o .:? "permission" .!= mempty)-                     <*> (o .:? "storeBuilder"))--instance ToJSON AdministratorWebTokenSpec where-        toJSON AdministratorWebTokenSpec'{..}-          = object-              (catMaybes-                 [("parent" .=) <$> _awtsParent,-                  ("privateApps" .=) <$> _awtsPrivateApps,-                  ("playSearch" .=) <$> _awtsPlaySearch,-                  Just ("kind" .= _awtsKind),-                  ("webApps" .=) <$> _awtsWebApps,-                  ("permission" .=) <$> _awtsPermission,-                  ("storeBuilder" .=) <$> _awtsStoreBuilder])---- | A product to be made visible to a user.------ /See:/ 'productVisibility' smart constructor.-data ProductVisibility = ProductVisibility'-    { _pvTracks    :: !(Maybe [Text])-    , _pvTrackIds  :: !(Maybe [Text])-    , _pvProductId :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ProductVisibility' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pvTracks'------ * 'pvTrackIds'------ * 'pvProductId'-productVisibility-    :: ProductVisibility-productVisibility =-    ProductVisibility'-    { _pvTracks = Nothing-    , _pvTrackIds = Nothing-    , _pvProductId = Nothing-    }---- | Deprecated. Use trackIds instead.-pvTracks :: Lens' ProductVisibility [Text]-pvTracks-  = lens _pvTracks (\ s a -> s{_pvTracks = a}) .-      _Default-      . _Coerce---- | Grants the user visibility to the specified product track(s), identified--- by trackIds.-pvTrackIds :: Lens' ProductVisibility [Text]-pvTrackIds-  = lens _pvTrackIds (\ s a -> s{_pvTrackIds = a}) .-      _Default-      . _Coerce---- | The product ID to make visible to the user. Required for each item in--- the productVisibility list.-pvProductId :: Lens' ProductVisibility (Maybe Text)-pvProductId-  = lens _pvProductId (\ s a -> s{_pvProductId = a})--instance FromJSON ProductVisibility where-        parseJSON-          = withObject "ProductVisibility"-              (\ o ->-                 ProductVisibility' <$>-                   (o .:? "tracks" .!= mempty) <*>-                     (o .:? "trackIds" .!= mempty)-                     <*> (o .:? "productId"))--instance ToJSON ProductVisibility where-        toJSON ProductVisibility'{..}-          = object-              (catMaybes-                 [("tracks" .=) <$> _pvTracks,-                  ("trackIds" .=) <$> _pvTrackIds,-                  ("productId" .=) <$> _pvProductId])---- | A notification of one event relating to an enterprise.------ /See:/ 'notification' smart constructor.-data Notification = Notification'-    { _nEnterpriseId                     :: !(Maybe Text)-    , _nNewPermissionsEvent              :: !(Maybe NewPermissionsEvent)-    , _nProductApprovalEvent             :: !(Maybe ProductApprovalEvent)-    , _nProductAvailabilityChangeEvent   :: !(Maybe ProductAvailabilityChangeEvent)-    , _nAppUpdateEvent                   :: !(Maybe AppUpdateEvent)-    , _nInstallFailureEvent              :: !(Maybe InstallFailureEvent)-    , _nNotificationType                 :: !(Maybe Text)-    , _nAppRestrictionsSchemaChangeEvent :: !(Maybe AppRestrictionsSchemaChangeEvent)-    , _nNewDeviceEvent                   :: !(Maybe NewDeviceEvent)-    , _nTimestampMillis                  :: !(Maybe (Textual Int64))-    } 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:------ * 'nEnterpriseId'------ * 'nNewPermissionsEvent'------ * 'nProductApprovalEvent'------ * 'nProductAvailabilityChangeEvent'------ * 'nAppUpdateEvent'------ * 'nInstallFailureEvent'------ * 'nNotificationType'------ * 'nAppRestrictionsSchemaChangeEvent'------ * 'nNewDeviceEvent'------ * 'nTimestampMillis'-notification-    :: Notification-notification =-    Notification'-    { _nEnterpriseId = Nothing-    , _nNewPermissionsEvent = Nothing-    , _nProductApprovalEvent = Nothing-    , _nProductAvailabilityChangeEvent = Nothing-    , _nAppUpdateEvent = Nothing-    , _nInstallFailureEvent = Nothing-    , _nNotificationType = Nothing-    , _nAppRestrictionsSchemaChangeEvent = Nothing-    , _nNewDeviceEvent = Nothing-    , _nTimestampMillis = Nothing-    }---- | The ID of the enterprise for which the notification is sent. This will--- always be present.-nEnterpriseId :: Lens' Notification (Maybe Text)-nEnterpriseId-  = lens _nEnterpriseId-      (\ s a -> s{_nEnterpriseId = a})---- | Notifications about new app permissions.-nNewPermissionsEvent :: Lens' Notification (Maybe NewPermissionsEvent)-nNewPermissionsEvent-  = lens _nNewPermissionsEvent-      (\ s a -> s{_nNewPermissionsEvent = a})---- | Notifications about changes to a product\'s approval status.-nProductApprovalEvent :: Lens' Notification (Maybe ProductApprovalEvent)-nProductApprovalEvent-  = lens _nProductApprovalEvent-      (\ s a -> s{_nProductApprovalEvent = a})---- | Notifications about product availability changes.-nProductAvailabilityChangeEvent :: Lens' Notification (Maybe ProductAvailabilityChangeEvent)-nProductAvailabilityChangeEvent-  = lens _nProductAvailabilityChangeEvent-      (\ s a -> s{_nProductAvailabilityChangeEvent = a})---- | Notifications about app updates.-nAppUpdateEvent :: Lens' Notification (Maybe AppUpdateEvent)-nAppUpdateEvent-  = lens _nAppUpdateEvent-      (\ s a -> s{_nAppUpdateEvent = a})---- | Notifications about an app installation failure.-nInstallFailureEvent :: Lens' Notification (Maybe InstallFailureEvent)-nInstallFailureEvent-  = lens _nInstallFailureEvent-      (\ s a -> s{_nInstallFailureEvent = a})---- | Type of the notification.-nNotificationType :: Lens' Notification (Maybe Text)-nNotificationType-  = lens _nNotificationType-      (\ s a -> s{_nNotificationType = a})---- | Notifications about new app restrictions schema changes.-nAppRestrictionsSchemaChangeEvent :: Lens' Notification (Maybe AppRestrictionsSchemaChangeEvent)-nAppRestrictionsSchemaChangeEvent-  = lens _nAppRestrictionsSchemaChangeEvent-      (\ s a -> s{_nAppRestrictionsSchemaChangeEvent = a})---- | Notifications about new devices.-nNewDeviceEvent :: Lens' Notification (Maybe NewDeviceEvent)-nNewDeviceEvent-  = lens _nNewDeviceEvent-      (\ s a -> s{_nNewDeviceEvent = a})---- | The time when the notification was published in milliseconds since--- 1970-01-01T00:00:00Z. This will always be present.-nTimestampMillis :: Lens' Notification (Maybe Int64)-nTimestampMillis-  = lens _nTimestampMillis-      (\ s a -> s{_nTimestampMillis = a})-      . mapping _Coerce--instance FromJSON Notification where-        parseJSON-          = withObject "Notification"-              (\ o ->-                 Notification' <$>-                   (o .:? "enterpriseId") <*>-                     (o .:? "newPermissionsEvent")-                     <*> (o .:? "productApprovalEvent")-                     <*> (o .:? "productAvailabilityChangeEvent")-                     <*> (o .:? "appUpdateEvent")-                     <*> (o .:? "installFailureEvent")-                     <*> (o .:? "notificationType")-                     <*> (o .:? "appRestrictionsSchemaChangeEvent")-                     <*> (o .:? "newDeviceEvent")-                     <*> (o .:? "timestampMillis"))--instance ToJSON Notification where-        toJSON Notification'{..}-          = object-              (catMaybes-                 [("enterpriseId" .=) <$> _nEnterpriseId,-                  ("newPermissionsEvent" .=) <$> _nNewPermissionsEvent,-                  ("productApprovalEvent" .=) <$>-                    _nProductApprovalEvent,-                  ("productAvailabilityChangeEvent" .=) <$>-                    _nProductAvailabilityChangeEvent,-                  ("appUpdateEvent" .=) <$> _nAppUpdateEvent,-                  ("installFailureEvent" .=) <$> _nInstallFailureEvent,-                  ("notificationType" .=) <$> _nNotificationType,-                  ("appRestrictionsSchemaChangeEvent" .=) <$>-                    _nAppRestrictionsSchemaChangeEvent,-                  ("newDeviceEvent" .=) <$> _nNewDeviceEvent,-                  ("timestampMillis" .=) <$> _nTimestampMillis])------- /See:/ 'pageInfo' smart constructor.-data PageInfo = PageInfo'-    { _piResultPerPage :: !(Maybe (Textual Int32))-    , _piTotalResults  :: !(Maybe (Textual Int32))-    , _piStartIndex    :: !(Maybe (Textual Int32))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'PageInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'piResultPerPage'------ * 'piTotalResults'------ * 'piStartIndex'-pageInfo-    :: PageInfo-pageInfo =-    PageInfo'-    { _piResultPerPage = Nothing-    , _piTotalResults = Nothing-    , _piStartIndex = Nothing-    }--piResultPerPage :: Lens' PageInfo (Maybe Int32)-piResultPerPage-  = lens _piResultPerPage-      (\ s a -> s{_piResultPerPage = a})-      . mapping _Coerce--piTotalResults :: Lens' PageInfo (Maybe Int32)-piTotalResults-  = lens _piTotalResults-      (\ s a -> s{_piTotalResults = a})-      . mapping _Coerce--piStartIndex :: Lens' PageInfo (Maybe Int32)-piStartIndex-  = lens _piStartIndex (\ s a -> s{_piStartIndex = a})-      . mapping _Coerce--instance FromJSON PageInfo where-        parseJSON-          = withObject "PageInfo"-              (\ o ->-                 PageInfo' <$>-                   (o .:? "resultPerPage") <*> (o .:? "totalResults")-                     <*> (o .:? "startIndex"))--instance ToJSON PageInfo where-        toJSON PageInfo'{..}-          = object-              (catMaybes-                 [("resultPerPage" .=) <$> _piResultPerPage,-                  ("totalResults" .=) <$> _piTotalResults,-                  ("startIndex" .=) <$> _piStartIndex])---- | A product permissions resource represents the set of permissions--- required by a specific app and whether or not they have been accepted by--- an enterprise admin. The API can be used to read the set of permissions,--- and also to update the set to indicate that permissions have been--- accepted.------ /See:/ 'productPermission' smart constructor.-data ProductPermission = ProductPermission'-    { _ppState        :: !(Maybe Text)-    , _ppPermissionId :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ProductPermission' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ppState'------ * 'ppPermissionId'-productPermission-    :: ProductPermission-productPermission =-    ProductPermission'-    { _ppState = Nothing-    , _ppPermissionId = Nothing-    }---- | Whether the permission has been accepted or not.-ppState :: Lens' ProductPermission (Maybe Text)-ppState = lens _ppState (\ s a -> s{_ppState = a})---- | An opaque string uniquely identifying the permission.-ppPermissionId :: Lens' ProductPermission (Maybe Text)-ppPermissionId-  = lens _ppPermissionId-      (\ s a -> s{_ppPermissionId = a})--instance FromJSON ProductPermission where-        parseJSON-          = withObject "ProductPermission"-              (\ o ->-                 ProductPermission' <$>-                   (o .:? "state") <*> (o .:? "permissionId"))--instance ToJSON ProductPermission where-        toJSON ProductPermission'{..}-          = object-              (catMaybes-                 [("state" .=) <$> _ppState,-                  ("permissionId" .=) <$> _ppPermissionId])---- | An event generated when new permissions are added to an app.------ /See:/ 'newPermissionsEvent' smart constructor.-data NewPermissionsEvent = NewPermissionsEvent'-    { _npeRequestedPermissions :: !(Maybe [Text])-    , _npeApprovedPermissions  :: !(Maybe [Text])-    , _npeProductId            :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'NewPermissionsEvent' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'npeRequestedPermissions'------ * 'npeApprovedPermissions'------ * 'npeProductId'-newPermissionsEvent-    :: NewPermissionsEvent-newPermissionsEvent =-    NewPermissionsEvent'-    { _npeRequestedPermissions = Nothing-    , _npeApprovedPermissions = Nothing-    , _npeProductId = Nothing-    }---- | The set of permissions that the app is currently requesting. Use--- Permissions.Get on the EMM API to retrieve details about these--- permissions.-npeRequestedPermissions :: Lens' NewPermissionsEvent [Text]-npeRequestedPermissions-  = lens _npeRequestedPermissions-      (\ s a -> s{_npeRequestedPermissions = a})-      . _Default-      . _Coerce---- | The set of permissions that the enterprise admin has already approved--- for this application. Use Permissions.Get on the EMM API to retrieve--- details about these permissions.-npeApprovedPermissions :: Lens' NewPermissionsEvent [Text]-npeApprovedPermissions-  = lens _npeApprovedPermissions-      (\ s a -> s{_npeApprovedPermissions = a})-      . _Default-      . _Coerce---- | The id of the product (e.g. \"app:com.google.android.gm\") for which new--- permissions were added. This field will always be present.-npeProductId :: Lens' NewPermissionsEvent (Maybe Text)-npeProductId-  = lens _npeProductId (\ s a -> s{_npeProductId = a})--instance FromJSON NewPermissionsEvent where-        parseJSON-          = withObject "NewPermissionsEvent"-              (\ o ->-                 NewPermissionsEvent' <$>-                   (o .:? "requestedPermissions" .!= mempty) <*>-                     (o .:? "approvedPermissions" .!= mempty)-                     <*> (o .:? "productId"))--instance ToJSON NewPermissionsEvent where-        toJSON NewPermissionsEvent'{..}-          = object-              (catMaybes-                 [("requestedPermissions" .=) <$>-                    _npeRequestedPermissions,-                  ("approvedPermissions" .=) <$>-                    _npeApprovedPermissions,-                  ("productId" .=) <$> _npeProductId])---- | An event generated whenever a product\'s availability changes.------ /See:/ 'productAvailabilityChangeEvent' smart constructor.-data ProductAvailabilityChangeEvent = ProductAvailabilityChangeEvent'-    { _paceAvailabilityStatus :: !(Maybe Text)-    , _paceProductId          :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ProductAvailabilityChangeEvent' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'paceAvailabilityStatus'------ * 'paceProductId'-productAvailabilityChangeEvent-    :: ProductAvailabilityChangeEvent-productAvailabilityChangeEvent =-    ProductAvailabilityChangeEvent'-    { _paceAvailabilityStatus = Nothing-    , _paceProductId = Nothing-    }---- | The new state of the product. This field will always be present.-paceAvailabilityStatus :: Lens' ProductAvailabilityChangeEvent (Maybe Text)-paceAvailabilityStatus-  = lens _paceAvailabilityStatus-      (\ s a -> s{_paceAvailabilityStatus = a})---- | The id of the product (e.g. \"app:com.google.android.gm\") for which the--- product availability changed. This field will always be present.-paceProductId :: Lens' ProductAvailabilityChangeEvent (Maybe Text)-paceProductId-  = lens _paceProductId-      (\ s a -> s{_paceProductId = a})--instance FromJSON ProductAvailabilityChangeEvent-         where-        parseJSON-          = withObject "ProductAvailabilityChangeEvent"-              (\ o ->-                 ProductAvailabilityChangeEvent' <$>-                   (o .:? "availabilityStatus") <*> (o .:? "productId"))--instance ToJSON ProductAvailabilityChangeEvent where-        toJSON ProductAvailabilityChangeEvent'{..}-          = object-              (catMaybes-                 [("availabilityStatus" .=) <$>-                    _paceAvailabilityStatus,-                  ("productId" .=) <$> _paceProductId])---- | An event generated when a product\'s approval status is changed.------ /See:/ 'productApprovalEvent' smart constructor.-data ProductApprovalEvent = ProductApprovalEvent'-    { _paeApproved  :: !(Maybe Text)-    , _paeProductId :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ProductApprovalEvent' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'paeApproved'------ * 'paeProductId'-productApprovalEvent-    :: ProductApprovalEvent-productApprovalEvent =-    ProductApprovalEvent'-    { _paeApproved = Nothing-    , _paeProductId = Nothing-    }---- | Whether the product was approved or unapproved. This field will always--- be present.-paeApproved :: Lens' ProductApprovalEvent (Maybe Text)-paeApproved-  = lens _paeApproved (\ s a -> s{_paeApproved = a})---- | The id of the product (e.g. \"app:com.google.android.gm\") for which the--- approval status has changed. This field will always be present.-paeProductId :: Lens' ProductApprovalEvent (Maybe Text)-paeProductId-  = lens _paeProductId (\ s a -> s{_paeProductId = a})--instance FromJSON ProductApprovalEvent where-        parseJSON-          = withObject "ProductApprovalEvent"-              (\ o ->-                 ProductApprovalEvent' <$>-                   (o .:? "approved") <*> (o .:? "productId"))--instance ToJSON ProductApprovalEvent where-        toJSON ProductApprovalEvent'{..}-          = object-              (catMaybes-                 [("approved" .=) <$> _paeApproved,-                  ("productId" .=) <$> _paeProductId])---- | A Devices resource represents a mobile device managed by the EMM and--- belonging to a specific enterprise user.------ /See:/ 'device' smart constructor.-data Device = Device'-    { _dKind           :: !Text-    , _dPolicy         :: !(Maybe Policy)-    , _dManagementType :: !(Maybe Text)-    , _dAndroidId      :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Device' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dKind'------ * 'dPolicy'------ * 'dManagementType'------ * 'dAndroidId'-device-    :: Device-device =-    Device'-    { _dKind = "androidenterprise#device"-    , _dPolicy = Nothing-    , _dManagementType = Nothing-    , _dAndroidId = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#device\".-dKind :: Lens' Device Text-dKind = lens _dKind (\ s a -> s{_dKind = a})---- | The policy enforced on the device.-dPolicy :: Lens' Device (Maybe Policy)-dPolicy = lens _dPolicy (\ s a -> s{_dPolicy = a})---- | Identifies the extent to which the device is controlled by a managed--- Google Play EMM in various deployment configurations. Possible values--- include: - \"managedDevice\", a device that has the EMM\'s device policy--- controller (DPC) as the device owner. - \"managedProfile\", a device--- that has a profile managed by the DPC (DPC is profile owner) in addition--- to a separate, personal profile that is unavailable to the DPC. ---- \"containerApp\", no longer used (deprecated). - \"unmanagedProfile\", a--- device that has been allowed (by the domain\'s admin, using the Admin--- Console to enable the privilege) to use managed Google Play, but the--- profile is itself not owned by a DPC.-dManagementType :: Lens' Device (Maybe Text)-dManagementType-  = lens _dManagementType-      (\ s a -> s{_dManagementType = a})---- | The Google Play Services Android ID for the device encoded as a--- lowercase hex string. For example, \"123456789abcdef0\".-dAndroidId :: Lens' Device (Maybe Text)-dAndroidId-  = lens _dAndroidId (\ s a -> s{_dAndroidId = a})--instance FromJSON Device where-        parseJSON-          = withObject "Device"-              (\ o ->-                 Device' <$>-                   (o .:? "kind" .!= "androidenterprise#device") <*>-                     (o .:? "policy")-                     <*> (o .:? "managementType")-                     <*> (o .:? "androidId"))--instance ToJSON Device where-        toJSON Device'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _dKind), ("policy" .=) <$> _dPolicy,-                  ("managementType" .=) <$> _dManagementType,-                  ("androidId" .=) <$> _dAndroidId])---- | The Auto install constraint. Defines a set of restrictions for--- installation. At least one of the fields must be set.------ /See:/ 'autoInstallConstraint' smart constructor.-data AutoInstallConstraint = AutoInstallConstraint'-    { _aicChargingStateConstraint   :: !(Maybe Text)-    , _aicDeviceIdleStateConstraint :: !(Maybe Text)-    , _aicNetworkTypeConstraint     :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AutoInstallConstraint' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aicChargingStateConstraint'------ * 'aicDeviceIdleStateConstraint'------ * 'aicNetworkTypeConstraint'-autoInstallConstraint-    :: AutoInstallConstraint-autoInstallConstraint =-    AutoInstallConstraint'-    { _aicChargingStateConstraint = Nothing-    , _aicDeviceIdleStateConstraint = Nothing-    , _aicNetworkTypeConstraint = Nothing-    }---- | Charging state to constrain on.-aicChargingStateConstraint :: Lens' AutoInstallConstraint (Maybe Text)-aicChargingStateConstraint-  = lens _aicChargingStateConstraint-      (\ s a -> s{_aicChargingStateConstraint = a})---- | The idle state of the device to constrain on.-aicDeviceIdleStateConstraint :: Lens' AutoInstallConstraint (Maybe Text)-aicDeviceIdleStateConstraint-  = lens _aicDeviceIdleStateConstraint-      (\ s a -> s{_aicDeviceIdleStateConstraint = a})---- | Network type to constrain on.-aicNetworkTypeConstraint :: Lens' AutoInstallConstraint (Maybe Text)-aicNetworkTypeConstraint-  = lens _aicNetworkTypeConstraint-      (\ s a -> s{_aicNetworkTypeConstraint = a})--instance FromJSON AutoInstallConstraint where-        parseJSON-          = withObject "AutoInstallConstraint"-              (\ o ->-                 AutoInstallConstraint' <$>-                   (o .:? "chargingStateConstraint") <*>-                     (o .:? "deviceIdleStateConstraint")-                     <*> (o .:? "networkTypeConstraint"))--instance ToJSON AutoInstallConstraint where-        toJSON AutoInstallConstraint'{..}-          = object-              (catMaybes-                 [("chargingStateConstraint" .=) <$>-                    _aicChargingStateConstraint,-                  ("deviceIdleStateConstraint" .=) <$>-                    _aicDeviceIdleStateConstraint,-                  ("networkTypeConstraint" .=) <$>-                    _aicNetworkTypeConstraint])---- | Credentials that can be used to authenticate as a service account.------ /See:/ 'serviceAccountKey' smart constructor.-data ServiceAccountKey = ServiceAccountKey'-    { _sakKind       :: !Text-    , _sakData       :: !(Maybe Text)-    , _sakId         :: !(Maybe Text)-    , _sakType       :: !(Maybe Text)-    , _sakPublicData :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ServiceAccountKey' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sakKind'------ * 'sakData'------ * 'sakId'------ * 'sakType'------ * 'sakPublicData'-serviceAccountKey-    :: ServiceAccountKey-serviceAccountKey =-    ServiceAccountKey'-    { _sakKind = "androidenterprise#serviceAccountKey"-    , _sakData = Nothing-    , _sakId = Nothing-    , _sakType = Nothing-    , _sakPublicData = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#serviceAccountKey\".-sakKind :: Lens' ServiceAccountKey Text-sakKind = lens _sakKind (\ s a -> s{_sakKind = a})---- | The body of the private key credentials file, in string format. This is--- only populated when the ServiceAccountKey is created, and is not stored--- by Google.-sakData :: Lens' ServiceAccountKey (Maybe Text)-sakData = lens _sakData (\ s a -> s{_sakData = a})---- | An opaque, unique identifier for this ServiceAccountKey. Assigned by the--- server.-sakId :: Lens' ServiceAccountKey (Maybe Text)-sakId = lens _sakId (\ s a -> s{_sakId = a})---- | The file format of the generated key data.-sakType :: Lens' ServiceAccountKey (Maybe Text)-sakType = lens _sakType (\ s a -> s{_sakType = a})---- | Public key data for the credentials file. This is an X.509 cert. If you--- are using the googleCredentials key type, this is identical to the cert--- that can be retrieved by using the X.509 cert url inside of the--- credentials file.-sakPublicData :: Lens' ServiceAccountKey (Maybe Text)-sakPublicData-  = lens _sakPublicData-      (\ s a -> s{_sakPublicData = a})--instance FromJSON ServiceAccountKey where-        parseJSON-          = withObject "ServiceAccountKey"-              (\ o ->-                 ServiceAccountKey' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#serviceAccountKey")-                     <*> (o .:? "data")-                     <*> (o .:? "id")-                     <*> (o .:? "type")-                     <*> (o .:? "publicData"))--instance ToJSON ServiceAccountKey where-        toJSON ServiceAccountKey'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _sakKind), ("data" .=) <$> _sakData,-                  ("id" .=) <$> _sakId, ("type" .=) <$> _sakType,-                  ("publicData" .=) <$> _sakPublicData])---- | The install resources for the device.------ /See:/ 'installsListResponse' smart constructor.-data InstallsListResponse = InstallsListResponse'-    { _ilrKind    :: !Text-    , _ilrInstall :: !(Maybe [Install])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'InstallsListResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ilrKind'------ * 'ilrInstall'-installsListResponse-    :: InstallsListResponse-installsListResponse =-    InstallsListResponse'-    { _ilrKind = "androidenterprise#installsListResponse"-    , _ilrInstall = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#installsListResponse\".-ilrKind :: Lens' InstallsListResponse Text-ilrKind = lens _ilrKind (\ s a -> s{_ilrKind = a})---- | An installation of an app for a user on a specific device. The existence--- of an install implies that the user must have an entitlement to the app.-ilrInstall :: Lens' InstallsListResponse [Install]-ilrInstall-  = lens _ilrInstall (\ s a -> s{_ilrInstall = a}) .-      _Default-      . _Coerce--instance FromJSON InstallsListResponse where-        parseJSON-          = withObject "InstallsListResponse"-              (\ o ->-                 InstallsListResponse' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#installsListResponse")-                     <*> (o .:? "install" .!= mempty))--instance ToJSON InstallsListResponse where-        toJSON InstallsListResponse'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _ilrKind),-                  ("install" .=) <$> _ilrInstall])---- | A restriction in the App Restriction Schema represents a piece of--- configuration that may be pre-applied.------ /See:/ 'appRestrictionsSchemaRestriction' smart constructor.-data AppRestrictionsSchemaRestriction = AppRestrictionsSchemaRestriction'-    { _arsrRestrictionType   :: !(Maybe Text)-    , _arsrEntry             :: !(Maybe [Text])-    , _arsrKey               :: !(Maybe Text)-    , _arsrEntryValue        :: !(Maybe [Text])-    , _arsrDefaultValue      :: !(Maybe AppRestrictionsSchemaRestrictionRestrictionValue)-    , _arsrTitle             :: !(Maybe Text)-    , _arsrDescription       :: !(Maybe Text)-    , _arsrNestedRestriction :: !(Maybe [AppRestrictionsSchemaRestriction])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AppRestrictionsSchemaRestriction' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'arsrRestrictionType'------ * 'arsrEntry'------ * 'arsrKey'------ * 'arsrEntryValue'------ * 'arsrDefaultValue'------ * 'arsrTitle'------ * 'arsrDescription'------ * 'arsrNestedRestriction'-appRestrictionsSchemaRestriction-    :: AppRestrictionsSchemaRestriction-appRestrictionsSchemaRestriction =-    AppRestrictionsSchemaRestriction'-    { _arsrRestrictionType = Nothing-    , _arsrEntry = Nothing-    , _arsrKey = Nothing-    , _arsrEntryValue = Nothing-    , _arsrDefaultValue = Nothing-    , _arsrTitle = Nothing-    , _arsrDescription = Nothing-    , _arsrNestedRestriction = Nothing-    }---- | The type of the restriction.-arsrRestrictionType :: Lens' AppRestrictionsSchemaRestriction (Maybe Text)-arsrRestrictionType-  = lens _arsrRestrictionType-      (\ s a -> s{_arsrRestrictionType = a})---- | For choice or multiselect restrictions, the list of possible entries\'--- human-readable names.-arsrEntry :: Lens' AppRestrictionsSchemaRestriction [Text]-arsrEntry-  = lens _arsrEntry (\ s a -> s{_arsrEntry = a}) .-      _Default-      . _Coerce---- | The unique key that the product uses to identify the restriction, e.g.--- \"com.google.android.gm.fieldname\".-arsrKey :: Lens' AppRestrictionsSchemaRestriction (Maybe Text)-arsrKey = lens _arsrKey (\ s a -> s{_arsrKey = a})---- | For choice or multiselect restrictions, the list of possible entries\'--- machine-readable values. These values should be used in the--- configuration, either as a single string value for a choice restriction--- or in a stringArray for a multiselect restriction.-arsrEntryValue :: Lens' AppRestrictionsSchemaRestriction [Text]-arsrEntryValue-  = lens _arsrEntryValue-      (\ s a -> s{_arsrEntryValue = a})-      . _Default-      . _Coerce---- | The default value of the restriction. bundle and bundleArray--- restrictions never have a default value.-arsrDefaultValue :: Lens' AppRestrictionsSchemaRestriction (Maybe AppRestrictionsSchemaRestrictionRestrictionValue)-arsrDefaultValue-  = lens _arsrDefaultValue-      (\ s a -> s{_arsrDefaultValue = a})---- | The name of the restriction.-arsrTitle :: Lens' AppRestrictionsSchemaRestriction (Maybe Text)-arsrTitle-  = lens _arsrTitle (\ s a -> s{_arsrTitle = a})---- | A longer description of the restriction, giving more detail of what it--- affects.-arsrDescription :: Lens' AppRestrictionsSchemaRestriction (Maybe Text)-arsrDescription-  = lens _arsrDescription-      (\ s a -> s{_arsrDescription = a})---- | For bundle or bundleArray restrictions, the list of nested restrictions.--- A bundle restriction is always nested within a bundleArray restriction,--- and a bundleArray restriction is at most two levels deep.-arsrNestedRestriction :: Lens' AppRestrictionsSchemaRestriction [AppRestrictionsSchemaRestriction]-arsrNestedRestriction-  = lens _arsrNestedRestriction-      (\ s a -> s{_arsrNestedRestriction = a})-      . _Default-      . _Coerce--instance FromJSON AppRestrictionsSchemaRestriction-         where-        parseJSON-          = withObject "AppRestrictionsSchemaRestriction"-              (\ o ->-                 AppRestrictionsSchemaRestriction' <$>-                   (o .:? "restrictionType") <*>-                     (o .:? "entry" .!= mempty)-                     <*> (o .:? "key")-                     <*> (o .:? "entryValue" .!= mempty)-                     <*> (o .:? "defaultValue")-                     <*> (o .:? "title")-                     <*> (o .:? "description")-                     <*> (o .:? "nestedRestriction" .!= mempty))--instance ToJSON AppRestrictionsSchemaRestriction-         where-        toJSON AppRestrictionsSchemaRestriction'{..}-          = object-              (catMaybes-                 [("restrictionType" .=) <$> _arsrRestrictionType,-                  ("entry" .=) <$> _arsrEntry, ("key" .=) <$> _arsrKey,-                  ("entryValue" .=) <$> _arsrEntryValue,-                  ("defaultValue" .=) <$> _arsrDefaultValue,-                  ("title" .=) <$> _arsrTitle,-                  ("description" .=) <$> _arsrDescription,-                  ("nestedRestriction" .=) <$> _arsrNestedRestriction])---- | The policy for a product.------ /See:/ 'productPolicy' smart constructor.-data ProductPolicy = ProductPolicy'-    { _ppTracks            :: !(Maybe [Text])-    , _ppTrackIds          :: !(Maybe [Text])-    , _ppAutoInstallPolicy :: !(Maybe AutoInstallPolicy)-    , _ppProductId         :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ProductPolicy' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ppTracks'------ * 'ppTrackIds'------ * 'ppAutoInstallPolicy'------ * 'ppProductId'-productPolicy-    :: ProductPolicy-productPolicy =-    ProductPolicy'-    { _ppTracks = Nothing-    , _ppTrackIds = Nothing-    , _ppAutoInstallPolicy = Nothing-    , _ppProductId = Nothing-    }---- | Deprecated. Use trackIds instead.-ppTracks :: Lens' ProductPolicy [Text]-ppTracks-  = lens _ppTracks (\ s a -> s{_ppTracks = a}) .-      _Default-      . _Coerce---- | Grants the device visibility to the specified product release track(s),--- identified by trackIds. The list of release tracks of a product can be--- obtained by calling Products.Get.-ppTrackIds :: Lens' ProductPolicy [Text]-ppTrackIds-  = lens _ppTrackIds (\ s a -> s{_ppTrackIds = a}) .-      _Default-      . _Coerce---- | The auto install policy for the product.-ppAutoInstallPolicy :: Lens' ProductPolicy (Maybe AutoInstallPolicy)-ppAutoInstallPolicy-  = lens _ppAutoInstallPolicy-      (\ s a -> s{_ppAutoInstallPolicy = a})---- | The ID of the product. For example, \"app:com.google.android.gm\".-ppProductId :: Lens' ProductPolicy (Maybe Text)-ppProductId-  = lens _ppProductId (\ s a -> s{_ppProductId = a})--instance FromJSON ProductPolicy where-        parseJSON-          = withObject "ProductPolicy"-              (\ o ->-                 ProductPolicy' <$>-                   (o .:? "tracks" .!= mempty) <*>-                     (o .:? "trackIds" .!= mempty)-                     <*> (o .:? "autoInstallPolicy")-                     <*> (o .:? "productId"))--instance ToJSON ProductPolicy where-        toJSON ProductPolicy'{..}-          = object-              (catMaybes-                 [("tracks" .=) <$> _ppTracks,-                  ("trackIds" .=) <$> _ppTrackIds,-                  ("autoInstallPolicy" .=) <$> _ppAutoInstallPolicy,-                  ("productId" .=) <$> _ppProductId])---- | This represents an enterprise admin who can manage the enterprise in the--- managed Google Play store.------ /See:/ 'administrator' smart constructor.-newtype Administrator = Administrator'-    { _aEmail :: Maybe Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Administrator' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aEmail'-administrator-    :: Administrator-administrator =-    Administrator'-    { _aEmail = Nothing-    }---- | The admin\'s email address.-aEmail :: Lens' Administrator (Maybe Text)-aEmail = lens _aEmail (\ s a -> s{_aEmail = a})--instance FromJSON Administrator where-        parseJSON-          = withObject "Administrator"-              (\ o -> Administrator' <$> (o .:? "email"))--instance ToJSON Administrator where-        toJSON Administrator'{..}-          = object (catMaybes [("email" .=) <$> _aEmail])---- | The matching user resources.------ /See:/ 'usersListResponse' smart constructor.-data UsersListResponse = UsersListResponse'-    { _ulrKind :: !Text-    , _ulrUser :: !(Maybe [User])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UsersListResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ulrKind'------ * 'ulrUser'-usersListResponse-    :: UsersListResponse-usersListResponse =-    UsersListResponse'-    { _ulrKind = "androidenterprise#usersListResponse"-    , _ulrUser = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#usersListResponse\".-ulrKind :: Lens' UsersListResponse Text-ulrKind = lens _ulrKind (\ s a -> s{_ulrKind = a})---- | A user of an enterprise.-ulrUser :: Lens' UsersListResponse [User]-ulrUser-  = lens _ulrUser (\ s a -> s{_ulrUser = a}) . _Default-      . _Coerce--instance FromJSON UsersListResponse where-        parseJSON-          = withObject "UsersListResponse"-              (\ o ->-                 UsersListResponse' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#usersListResponse")-                     <*> (o .:? "user" .!= mempty))--instance ToJSON UsersListResponse where-        toJSON UsersListResponse'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _ulrKind),-                  ("user" .=) <$> _ulrUser])------- /See:/ 'administratorWebTokenSpecStoreBuilder' smart constructor.-newtype AdministratorWebTokenSpecStoreBuilder = AdministratorWebTokenSpecStoreBuilder'-    { _awtssbEnabled :: Maybe Bool-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AdministratorWebTokenSpecStoreBuilder' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'awtssbEnabled'-administratorWebTokenSpecStoreBuilder-    :: AdministratorWebTokenSpecStoreBuilder-administratorWebTokenSpecStoreBuilder =-    AdministratorWebTokenSpecStoreBuilder'-    { _awtssbEnabled = Nothing-    }---- | Whether the Organize apps page is displayed. Default is true.-awtssbEnabled :: Lens' AdministratorWebTokenSpecStoreBuilder (Maybe Bool)-awtssbEnabled-  = lens _awtssbEnabled-      (\ s a -> s{_awtssbEnabled = a})--instance FromJSON-         AdministratorWebTokenSpecStoreBuilder where-        parseJSON-          = withObject "AdministratorWebTokenSpecStoreBuilder"-              (\ o ->-                 AdministratorWebTokenSpecStoreBuilder' <$>-                   (o .:? "enabled"))--instance ToJSON AdministratorWebTokenSpecStoreBuilder-         where-        toJSON AdministratorWebTokenSpecStoreBuilder'{..}-          = object-              (catMaybes [("enabled" .=) <$> _awtssbEnabled])---- | An AuthenticationToken is used by the EMM\'s device policy client on a--- device to provision the given EMM-managed user on that device.------ /See:/ 'authenticationToken' smart constructor.-data AuthenticationToken = AuthenticationToken'-    { _atKind  :: !Text-    , _atToken :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AuthenticationToken' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'atKind'------ * 'atToken'-authenticationToken-    :: AuthenticationToken-authenticationToken =-    AuthenticationToken'-    { _atKind = "androidenterprise#authenticationToken"-    , _atToken = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#authenticationToken\".-atKind :: Lens' AuthenticationToken Text-atKind = lens _atKind (\ s a -> s{_atKind = a})---- | The authentication token to be passed to the device policy client on the--- device where it can be used to provision the account for which this--- token was generated.-atToken :: Lens' AuthenticationToken (Maybe Text)-atToken = lens _atToken (\ s a -> s{_atToken = a})--instance FromJSON AuthenticationToken where-        parseJSON-          = withObject "AuthenticationToken"-              (\ o ->-                 AuthenticationToken' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#authenticationToken")-                     <*> (o .:? "token"))--instance ToJSON AuthenticationToken where-        toJSON AuthenticationToken'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _atKind),-                  ("token" .=) <$> _atToken])---- | A managed configurations settings resource contains the set of managed--- properties that have been configured for an Android app to be applied to--- a set of users. The app\'s developer would have defined configurable--- properties in the managed configurations schema.------ /See:/ 'managedConfigurationsSettings' smart constructor.-data ManagedConfigurationsSettings = ManagedConfigurationsSettings'-    { _mcsLastUpdatedTimestampMillis :: !(Maybe (Textual Int64))-    , _mcsManagedProperty            :: !(Maybe [ManagedProperty])-    , _mcsKind                       :: !Text-    , _mcsMcmId                      :: !(Maybe Text)-    , _mcsName                       :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ManagedConfigurationsSettings' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mcsLastUpdatedTimestampMillis'------ * 'mcsManagedProperty'------ * 'mcsKind'------ * 'mcsMcmId'------ * 'mcsName'-managedConfigurationsSettings-    :: ManagedConfigurationsSettings-managedConfigurationsSettings =-    ManagedConfigurationsSettings'-    { _mcsLastUpdatedTimestampMillis = Nothing-    , _mcsManagedProperty = Nothing-    , _mcsKind = "androidenterprise#managedConfigurationsSettings"-    , _mcsMcmId = Nothing-    , _mcsName = Nothing-    }---- | The last updated time of the managed configuration settings in--- milliseconds since 1970-01-01T00:00:00Z.-mcsLastUpdatedTimestampMillis :: Lens' ManagedConfigurationsSettings (Maybe Int64)-mcsLastUpdatedTimestampMillis-  = lens _mcsLastUpdatedTimestampMillis-      (\ s a -> s{_mcsLastUpdatedTimestampMillis = a})-      . mapping _Coerce---- | The set of managed properties for this configuration.-mcsManagedProperty :: Lens' ManagedConfigurationsSettings [ManagedProperty]-mcsManagedProperty-  = lens _mcsManagedProperty-      (\ s a -> s{_mcsManagedProperty = a})-      . _Default-      . _Coerce---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#managedConfigurationsSettings\".-mcsKind :: Lens' ManagedConfigurationsSettings Text-mcsKind = lens _mcsKind (\ s a -> s{_mcsKind = a})---- | The ID of the managed configurations settings.-mcsMcmId :: Lens' ManagedConfigurationsSettings (Maybe Text)-mcsMcmId = lens _mcsMcmId (\ s a -> s{_mcsMcmId = a})---- | The name of the managed configurations settings.-mcsName :: Lens' ManagedConfigurationsSettings (Maybe Text)-mcsName = lens _mcsName (\ s a -> s{_mcsName = a})--instance FromJSON ManagedConfigurationsSettings where-        parseJSON-          = withObject "ManagedConfigurationsSettings"-              (\ o ->-                 ManagedConfigurationsSettings' <$>-                   (o .:? "lastUpdatedTimestampMillis") <*>-                     (o .:? "managedProperty" .!= mempty)-                     <*>-                     (o .:? "kind" .!=-                        "androidenterprise#managedConfigurationsSettings")-                     <*> (o .:? "mcmId")-                     <*> (o .:? "name"))--instance ToJSON ManagedConfigurationsSettings where-        toJSON ManagedConfigurationsSettings'{..}-          = object-              (catMaybes-                 [("lastUpdatedTimestampMillis" .=) <$>-                    _mcsLastUpdatedTimestampMillis,-                  ("managedProperty" .=) <$> _mcsManagedProperty,-                  Just ("kind" .= _mcsKind),-                  ("mcmId" .=) <$> _mcsMcmId,-                  ("name" .=) <$> _mcsName])---- | This represents a single version of the app.------ /See:/ 'appVersion' smart constructor.-data AppVersion = AppVersion'-    { _avTrack         :: !(Maybe Text)-    , _avVersionCode   :: !(Maybe (Textual Int32))-    , _avVersionString :: !(Maybe Text)-    , _avTrackId       :: !(Maybe [Text])-    , _avIsProduction  :: !(Maybe Bool)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AppVersion' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'avTrack'------ * 'avVersionCode'------ * 'avVersionString'------ * 'avTrackId'------ * 'avIsProduction'-appVersion-    :: AppVersion-appVersion =-    AppVersion'-    { _avTrack = Nothing-    , _avVersionCode = Nothing-    , _avVersionString = Nothing-    , _avTrackId = Nothing-    , _avIsProduction = Nothing-    }---- | Deprecated, use trackId instead.-avTrack :: Lens' AppVersion (Maybe Text)-avTrack = lens _avTrack (\ s a -> s{_avTrack = a})---- | Unique increasing identifier for the app version.-avVersionCode :: Lens' AppVersion (Maybe Int32)-avVersionCode-  = lens _avVersionCode-      (\ s a -> s{_avVersionCode = a})-      . mapping _Coerce---- | The string used in the Play store by the app developer to identify the--- version. The string is not necessarily unique or localized (for example,--- the string could be \"1.4\").-avVersionString :: Lens' AppVersion (Maybe Text)-avVersionString-  = lens _avVersionString-      (\ s a -> s{_avVersionString = a})---- | Track ids that the app version is published in. Replaces the track field--- (deprecated), but doesn\'t include the production track (see--- isProduction instead).-avTrackId :: Lens' AppVersion [Text]-avTrackId-  = lens _avTrackId (\ s a -> s{_avTrackId = a}) .-      _Default-      . _Coerce---- | True if this version is a production APK.-avIsProduction :: Lens' AppVersion (Maybe Bool)-avIsProduction-  = lens _avIsProduction-      (\ s a -> s{_avIsProduction = a})--instance FromJSON AppVersion where-        parseJSON-          = withObject "AppVersion"-              (\ o ->-                 AppVersion' <$>-                   (o .:? "track") <*> (o .:? "versionCode") <*>-                     (o .:? "versionString")-                     <*> (o .:? "trackId" .!= mempty)-                     <*> (o .:? "isProduction"))--instance ToJSON AppVersion where-        toJSON AppVersion'{..}-          = object-              (catMaybes-                 [("track" .=) <$> _avTrack,-                  ("versionCode" .=) <$> _avVersionCode,-                  ("versionString" .=) <$> _avVersionString,-                  ("trackId" .=) <$> _avTrackId,-                  ("isProduction" .=) <$> _avIsProduction])---- | A bundle of managed properties.------ /See:/ 'managedPropertyBundle' smart constructor.-newtype ManagedPropertyBundle = ManagedPropertyBundle'-    { _mpbManagedProperty :: Maybe [ManagedProperty]-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ManagedPropertyBundle' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mpbManagedProperty'-managedPropertyBundle-    :: ManagedPropertyBundle-managedPropertyBundle =-    ManagedPropertyBundle'-    { _mpbManagedProperty = Nothing-    }---- | The list of managed properties.-mpbManagedProperty :: Lens' ManagedPropertyBundle [ManagedProperty]-mpbManagedProperty-  = lens _mpbManagedProperty-      (\ s a -> s{_mpbManagedProperty = a})-      . _Default-      . _Coerce--instance FromJSON ManagedPropertyBundle where-        parseJSON-          = withObject "ManagedPropertyBundle"-              (\ o ->-                 ManagedPropertyBundle' <$>-                   (o .:? "managedProperty" .!= mempty))--instance ToJSON ManagedPropertyBundle where-        toJSON ManagedPropertyBundle'{..}-          = object-              (catMaybes-                 [("managedProperty" .=) <$> _mpbManagedProperty])---- | The grouplicense resources for the enterprise.------ /See:/ 'groupLicensesListResponse' smart constructor.-data GroupLicensesListResponse = GroupLicensesListResponse'-    { _gllrGroupLicense :: !(Maybe [GroupLicense])-    , _gllrKind         :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'GroupLicensesListResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gllrGroupLicense'------ * 'gllrKind'-groupLicensesListResponse-    :: GroupLicensesListResponse-groupLicensesListResponse =-    GroupLicensesListResponse'-    { _gllrGroupLicense = Nothing-    , _gllrKind = "androidenterprise#groupLicensesListResponse"-    }---- | A group license for a product approved for use in the enterprise.-gllrGroupLicense :: Lens' GroupLicensesListResponse [GroupLicense]-gllrGroupLicense-  = lens _gllrGroupLicense-      (\ s a -> s{_gllrGroupLicense = a})-      . _Default-      . _Coerce---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#groupLicensesListResponse\".-gllrKind :: Lens' GroupLicensesListResponse Text-gllrKind = lens _gllrKind (\ s a -> s{_gllrKind = a})--instance FromJSON GroupLicensesListResponse where-        parseJSON-          = withObject "GroupLicensesListResponse"-              (\ o ->-                 GroupLicensesListResponse' <$>-                   (o .:? "groupLicense" .!= mempty) <*>-                     (o .:? "kind" .!=-                        "androidenterprise#groupLicensesListResponse"))--instance ToJSON GroupLicensesListResponse where-        toJSON GroupLicensesListResponse'{..}-          = object-              (catMaybes-                 [("groupLicense" .=) <$> _gllrGroupLicense,-                  Just ("kind" .= _gllrKind)])---- | Deprecated and unused.------ /See:/ 'androidDevicePolicyConfig' smart constructor.-data AndroidDevicePolicyConfig = AndroidDevicePolicyConfig'-    { _adpcState :: !(Maybe Text)-    , _adpcKind  :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AndroidDevicePolicyConfig' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'adpcState'------ * 'adpcKind'-androidDevicePolicyConfig-    :: AndroidDevicePolicyConfig-androidDevicePolicyConfig =-    AndroidDevicePolicyConfig'-    { _adpcState = Nothing-    , _adpcKind = "androidenterprise#androidDevicePolicyConfig"-    }---- | Deprecated and unused.-adpcState :: Lens' AndroidDevicePolicyConfig (Maybe Text)-adpcState-  = lens _adpcState (\ s a -> s{_adpcState = a})---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#androidDevicePolicyConfig\".-adpcKind :: Lens' AndroidDevicePolicyConfig Text-adpcKind = lens _adpcKind (\ s a -> s{_adpcKind = a})--instance FromJSON AndroidDevicePolicyConfig where-        parseJSON-          = withObject "AndroidDevicePolicyConfig"-              (\ o ->-                 AndroidDevicePolicyConfig' <$>-                   (o .:? "state") <*>-                     (o .:? "kind" .!=-                        "androidenterprise#androidDevicePolicyConfig"))--instance ToJSON AndroidDevicePolicyConfig where-        toJSON AndroidDevicePolicyConfig'{..}-          = object-              (catMaybes-                 [("state" .=) <$> _adpcState,-                  Just ("kind" .= _adpcKind)])---- | A set of products.------ /See:/ 'productSet' smart constructor.-data ProductSet = ProductSet'-    { _psProductVisibility  :: !(Maybe [ProductVisibility])-    , _psKind               :: !Text-    , _psProductSetBehavior :: !(Maybe Text)-    , _psProductId          :: !(Maybe [Text])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ProductSet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'psProductVisibility'------ * 'psKind'------ * 'psProductSetBehavior'------ * 'psProductId'-productSet-    :: ProductSet-productSet =-    ProductSet'-    { _psProductVisibility = Nothing-    , _psKind = "androidenterprise#productSet"-    , _psProductSetBehavior = Nothing-    , _psProductId = Nothing-    }---- | Additional list of product IDs making up the product set. Unlike the--- productID array, in this list It\'s possible to specify which tracks--- (alpha, beta, production) of a product are visible to the user. See--- ProductVisibility and its fields for more information. Specifying the--- same product ID both here and in the productId array is not allowed and--- it will result in an error.-psProductVisibility :: Lens' ProductSet [ProductVisibility]-psProductVisibility-  = lens _psProductVisibility-      (\ s a -> s{_psProductVisibility = a})-      . _Default-      . _Coerce---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#productSet\".-psKind :: Lens' ProductSet Text-psKind = lens _psKind (\ s a -> s{_psKind = a})---- | The interpretation of this product set. \"unknown\" should never be sent--- and is ignored if received. \"whitelist\" means that the user is--- entitled to access the product set. \"includeAll\" means that all--- products are accessible, including products that are approved, products--- with revoked approval, and products that have never been approved.--- \"allApproved\" means that the user is entitled to access all products--- that are approved for the enterprise. If the value is \"allApproved\" or--- \"includeAll\", the productId field is ignored. If no value is provided,--- it is interpreted as \"whitelist\" for backwards compatibility. Further--- \"allApproved\" or \"includeAll\" does not enable automatic visibility--- of \"alpha\" or \"beta\" tracks for Android app. Use ProductVisibility--- to enable \"alpha\" or \"beta\" tracks per user.-psProductSetBehavior :: Lens' ProductSet (Maybe Text)-psProductSetBehavior-  = lens _psProductSetBehavior-      (\ s a -> s{_psProductSetBehavior = a})---- | The list of product IDs making up the set of products.-psProductId :: Lens' ProductSet [Text]-psProductId-  = lens _psProductId (\ s a -> s{_psProductId = a}) .-      _Default-      . _Coerce--instance FromJSON ProductSet where-        parseJSON-          = withObject "ProductSet"-              (\ o ->-                 ProductSet' <$>-                   (o .:? "productVisibility" .!= mempty) <*>-                     (o .:? "kind" .!= "androidenterprise#productSet")-                     <*> (o .:? "productSetBehavior")-                     <*> (o .:? "productId" .!= mempty))--instance ToJSON ProductSet where-        toJSON ProductSet'{..}-          = object-              (catMaybes-                 [("productVisibility" .=) <$> _psProductVisibility,-                  Just ("kind" .= _psKind),-                  ("productSetBehavior" .=) <$> _psProductSetBehavior,-                  ("productId" .=) <$> _psProductId])---- | The existence of an Installs resource indicates that an app is installed--- on a particular device (or that an install is pending). The API can be--- used to create an install resource using the update method. This--- triggers the actual install of the app on the device. If the user does--- not already have an entitlement for the app, then an attempt is made to--- create one. If this fails (for example, because the app is not free and--- there is no available license), then the creation of the install fails.--- The API can also be used to update an installed app. If--- the update method is used on an existing install, then the app will be--- updated to the latest available version. Note that it is not possible to--- force the installation of a specific version of an app: the version code--- is read-only. If a user installs an app themselves (as permitted by the--- enterprise), then again an install resource and possibly an entitlement--- resource are automatically created. The API can also be used to delete--- an install resource, which triggers the removal of the app from the--- device. Note that deleting an install does not automatically remove the--- corresponding entitlement, even if there are no remaining installs. The--- install resource will also be deleted if the user uninstalls the app--- themselves.------ /See:/ 'install' smart constructor.-data Install = Install'-    { _iVersionCode  :: !(Maybe (Textual Int32))-    , _iKind         :: !Text-    , _iInstallState :: !(Maybe Text)-    , _iProductId    :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Install' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iVersionCode'------ * 'iKind'------ * 'iInstallState'------ * 'iProductId'-install-    :: Install-install =-    Install'-    { _iVersionCode = Nothing-    , _iKind = "androidenterprise#install"-    , _iInstallState = Nothing-    , _iProductId = Nothing-    }---- | The version of the installed product. Guaranteed to be set only if the--- install state is \"installed\".-iVersionCode :: Lens' Install (Maybe Int32)-iVersionCode-  = lens _iVersionCode (\ s a -> s{_iVersionCode = a})-      . mapping _Coerce---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#install\".-iKind :: Lens' Install Text-iKind = lens _iKind (\ s a -> s{_iKind = a})---- | Install state. The state \"installPending\" means that an install--- request has recently been made and download to the device is in--- progress. The state \"installed\" means that the app has been installed.--- This field is read-only.-iInstallState :: Lens' Install (Maybe Text)-iInstallState-  = lens _iInstallState-      (\ s a -> s{_iInstallState = a})---- | The ID of the product that the install is for. For example,--- \"app:com.google.android.gm\".-iProductId :: Lens' Install (Maybe Text)-iProductId-  = lens _iProductId (\ s a -> s{_iProductId = a})--instance FromJSON Install where-        parseJSON-          = withObject "Install"-              (\ o ->-                 Install' <$>-                   (o .:? "versionCode") <*>-                     (o .:? "kind" .!= "androidenterprise#install")-                     <*> (o .:? "installState")-                     <*> (o .:? "productId"))--instance ToJSON Install where-        toJSON Install'{..}-          = object-              (catMaybes-                 [("versionCode" .=) <$> _iVersionCode,-                  Just ("kind" .= _iKind),-                  ("installState" .=) <$> _iInstallState,-                  ("productId" .=) <$> _iProductId])---- | Maintenance window for managed Google Play Accounts. This allows Play--- store to update the apps on the foreground in the designated window.------ /See:/ 'maintenanceWindow' smart constructor.-data MaintenanceWindow = MaintenanceWindow'-    { _mwDurationMs               :: !(Maybe (Textual Int64))-    , _mwStartTimeAfterMidnightMs :: !(Maybe (Textual Int64))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'MaintenanceWindow' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mwDurationMs'------ * 'mwStartTimeAfterMidnightMs'-maintenanceWindow-    :: MaintenanceWindow-maintenanceWindow =-    MaintenanceWindow'-    { _mwDurationMs = Nothing-    , _mwStartTimeAfterMidnightMs = Nothing-    }---- | Duration of the maintenance window, in milliseconds. The duration must--- be between 30 minutes and 24 hours (inclusive).-mwDurationMs :: Lens' MaintenanceWindow (Maybe Int64)-mwDurationMs-  = lens _mwDurationMs (\ s a -> s{_mwDurationMs = a})-      . mapping _Coerce---- | Start time of the maintenance window, in milliseconds after midnight on--- the device. Windows can span midnight.-mwStartTimeAfterMidnightMs :: Lens' MaintenanceWindow (Maybe Int64)-mwStartTimeAfterMidnightMs-  = lens _mwStartTimeAfterMidnightMs-      (\ s a -> s{_mwStartTimeAfterMidnightMs = a})-      . mapping _Coerce--instance FromJSON MaintenanceWindow where-        parseJSON-          = withObject "MaintenanceWindow"-              (\ o ->-                 MaintenanceWindow' <$>-                   (o .:? "durationMs") <*>-                     (o .:? "startTimeAfterMidnightMs"))--instance ToJSON MaintenanceWindow where-        toJSON MaintenanceWindow'{..}-          = object-              (catMaybes-                 [("durationMs" .=) <$> _mwDurationMs,-                  ("startTimeAfterMidnightMs" .=) <$>-                    _mwStartTimeAfterMidnightMs])------- /See:/ 'serviceAccountKeysListResponse' smart constructor.-newtype ServiceAccountKeysListResponse = ServiceAccountKeysListResponse'-    { _saklrServiceAccountKey :: Maybe [ServiceAccountKey]-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ServiceAccountKeysListResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'saklrServiceAccountKey'-serviceAccountKeysListResponse-    :: ServiceAccountKeysListResponse-serviceAccountKeysListResponse =-    ServiceAccountKeysListResponse'-    { _saklrServiceAccountKey = Nothing-    }---- | The service account credentials.-saklrServiceAccountKey :: Lens' ServiceAccountKeysListResponse [ServiceAccountKey]-saklrServiceAccountKey-  = lens _saklrServiceAccountKey-      (\ s a -> s{_saklrServiceAccountKey = a})-      . _Default-      . _Coerce--instance FromJSON ServiceAccountKeysListResponse-         where-        parseJSON-          = withObject "ServiceAccountKeysListResponse"-              (\ o ->-                 ServiceAccountKeysListResponse' <$>-                   (o .:? "serviceAccountKey" .!= mempty))--instance ToJSON ServiceAccountKeysListResponse where-        toJSON ServiceAccountKeysListResponse'{..}-          = object-              (catMaybes-                 [("serviceAccountKey" .=) <$>-                    _saklrServiceAccountKey])---- | Id to name association of a track.------ /See:/ 'trackInfo' smart constructor.-data TrackInfo = TrackInfo'-    { _tiTrackAlias :: !(Maybe Text)-    , _tiTrackId    :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TrackInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tiTrackAlias'------ * 'tiTrackId'-trackInfo-    :: TrackInfo-trackInfo =-    TrackInfo'-    { _tiTrackAlias = Nothing-    , _tiTrackId = Nothing-    }---- | A modifiable name for a track. This is the visible name in the play--- developer console.-tiTrackAlias :: Lens' TrackInfo (Maybe Text)-tiTrackAlias-  = lens _tiTrackAlias (\ s a -> s{_tiTrackAlias = a})---- | Unmodifiable, unique track identifier. This identifier is the--- releaseTrackId in the url of the play developer console page that--- displays the track information.-tiTrackId :: Lens' TrackInfo (Maybe Text)-tiTrackId-  = lens _tiTrackId (\ s a -> s{_tiTrackId = a})--instance FromJSON TrackInfo where-        parseJSON-          = withObject "TrackInfo"-              (\ o ->-                 TrackInfo' <$>-                   (o .:? "trackAlias") <*> (o .:? "trackId"))--instance ToJSON TrackInfo where-        toJSON TrackInfo'{..}-          = object-              (catMaybes-                 [("trackAlias" .=) <$> _tiTrackAlias,-                  ("trackId" .=) <$> _tiTrackId])---- | A Users resource represents an account associated with an enterprise.--- The account may be specific to a device or to an individual user (who--- can then use the account across multiple devices). The account may--- provide access to managed Google Play only, or to other Google services,--- depending on the identity model: - The Google managed domain identity--- model requires synchronization to Google account sources (via--- primaryEmail). - The managed Google Play Accounts identity model--- provides a dynamic means for enterprises to create user or device--- accounts as needed. These accounts provide access to managed Google--- Play.------ /See:/ 'user' smart constructor.-data User = User'-    { _uAccountIdentifier :: !(Maybe Text)-    , _uKind              :: !Text-    , _uDisplayName       :: !(Maybe Text)-    , _uId                :: !(Maybe Text)-    , _uPrimaryEmail      :: !(Maybe Text)-    , _uManagementType    :: !(Maybe Text)-    , _uAccountType       :: !(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:------ * 'uAccountIdentifier'------ * 'uKind'------ * 'uDisplayName'------ * 'uId'------ * 'uPrimaryEmail'------ * 'uManagementType'------ * 'uAccountType'-user-    :: User-user =-    User'-    { _uAccountIdentifier = Nothing-    , _uKind = "androidenterprise#user"-    , _uDisplayName = Nothing-    , _uId = Nothing-    , _uPrimaryEmail = Nothing-    , _uManagementType = Nothing-    , _uAccountType = Nothing-    }---- | A unique identifier you create for this user, such as \"user342\" or--- \"asset#44418\". Do not use personally identifiable information (PII)--- for this property. Must always be set for EMM-managed users. Not set for--- Google-managed users.-uAccountIdentifier :: Lens' User (Maybe Text)-uAccountIdentifier-  = lens _uAccountIdentifier-      (\ s a -> s{_uAccountIdentifier = a})---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#user\".-uKind :: Lens' User Text-uKind = lens _uKind (\ s a -> s{_uKind = a})---- | The name that will appear in user interfaces. Setting this property is--- optional when creating EMM-managed users. If you do set this property,--- use something generic about the organization (such as \"Example, Inc.\")--- or your name (as EMM). Not used for Google-managed user accounts.-uDisplayName :: Lens' User (Maybe Text)-uDisplayName-  = lens _uDisplayName (\ s a -> s{_uDisplayName = a})---- | The unique ID for the user.-uId :: Lens' User (Maybe Text)-uId = lens _uId (\ s a -> s{_uId = a})---- | The user\'s primary email address, for example, \"jsmith\'example.com\".--- Will always be set for Google managed users and not set for EMM managed--- users.-uPrimaryEmail :: Lens' User (Maybe Text)-uPrimaryEmail-  = lens _uPrimaryEmail-      (\ s a -> s{_uPrimaryEmail = a})---- | The entity that manages the user. With googleManaged users, the source--- of truth is Google so EMMs have to make sure a Google Account exists for--- the user. With emmManaged users, the EMM is in charge.-uManagementType :: Lens' User (Maybe Text)-uManagementType-  = lens _uManagementType-      (\ s a -> s{_uManagementType = a})---- | The type of account that this user represents. A userAccount can be--- installed on multiple devices, but a deviceAccount is specific to a--- single device. An EMM-managed user (emmManaged) can be either type--- (userAccount, deviceAccount), but a Google-managed user (googleManaged)--- is always a userAccount.-uAccountType :: Lens' User (Maybe Text)-uAccountType-  = lens _uAccountType (\ s a -> s{_uAccountType = a})--instance FromJSON User where-        parseJSON-          = withObject "User"-              (\ o ->-                 User' <$>-                   (o .:? "accountIdentifier") <*>-                     (o .:? "kind" .!= "androidenterprise#user")-                     <*> (o .:? "displayName")-                     <*> (o .:? "id")-                     <*> (o .:? "primaryEmail")-                     <*> (o .:? "managementType")-                     <*> (o .:? "accountType"))--instance ToJSON User where-        toJSON User'{..}-          = object-              (catMaybes-                 [("accountIdentifier" .=) <$> _uAccountIdentifier,-                  Just ("kind" .= _uKind),-                  ("displayName" .=) <$> _uDisplayName,-                  ("id" .=) <$> _uId,-                  ("primaryEmail" .=) <$> _uPrimaryEmail,-                  ("managementType" .=) <$> _uManagementType,-                  ("accountType" .=) <$> _uAccountType])---- | The managed configuration resources for the device.------ /See:/ 'managedConfigurationsForDeviceListResponse' smart constructor.-data ManagedConfigurationsForDeviceListResponse = ManagedConfigurationsForDeviceListResponse'-    { _mcfdlrKind                          :: !Text-    , _mcfdlrManagedConfigurationForDevice :: !(Maybe [ManagedConfiguration])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ManagedConfigurationsForDeviceListResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mcfdlrKind'------ * 'mcfdlrManagedConfigurationForDevice'-managedConfigurationsForDeviceListResponse-    :: ManagedConfigurationsForDeviceListResponse-managedConfigurationsForDeviceListResponse =-    ManagedConfigurationsForDeviceListResponse'-    { _mcfdlrKind = "androidenterprise#managedConfigurationsForDeviceListResponse"-    , _mcfdlrManagedConfigurationForDevice = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#managedConfigurationsForDeviceListResponse\".-mcfdlrKind :: Lens' ManagedConfigurationsForDeviceListResponse Text-mcfdlrKind-  = lens _mcfdlrKind (\ s a -> s{_mcfdlrKind = a})---- | A managed configuration for an app on a specific device.-mcfdlrManagedConfigurationForDevice :: Lens' ManagedConfigurationsForDeviceListResponse [ManagedConfiguration]-mcfdlrManagedConfigurationForDevice-  = lens _mcfdlrManagedConfigurationForDevice-      (\ s a ->-         s{_mcfdlrManagedConfigurationForDevice = a})-      . _Default-      . _Coerce--instance FromJSON-         ManagedConfigurationsForDeviceListResponse where-        parseJSON-          = withObject-              "ManagedConfigurationsForDeviceListResponse"-              (\ o ->-                 ManagedConfigurationsForDeviceListResponse' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#managedConfigurationsForDeviceListResponse")-                     <*>-                     (o .:? "managedConfigurationForDevice" .!= mempty))--instance ToJSON-         ManagedConfigurationsForDeviceListResponse where-        toJSON-          ManagedConfigurationsForDeviceListResponse'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _mcfdlrKind),-                  ("managedConfigurationForDevice" .=) <$>-                    _mcfdlrManagedConfigurationForDevice])------- /See:/ 'productsGenerateApprovalURLResponse' smart constructor.-newtype ProductsGenerateApprovalURLResponse = ProductsGenerateApprovalURLResponse'-    { _pgaurURL :: Maybe Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ProductsGenerateApprovalURLResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pgaurURL'-productsGenerateApprovalURLResponse-    :: ProductsGenerateApprovalURLResponse-productsGenerateApprovalURLResponse =-    ProductsGenerateApprovalURLResponse'-    { _pgaurURL = Nothing-    }---- | A URL that can be rendered in an iframe to display the permissions (if--- any) of a product. This URL can be used to approve the product only once--- and only within 24 hours of being generated, using the Products.approve--- call. If the product is currently unapproved and has no permissions,--- this URL will point to an empty page. If the product is currently--- approved, a URL will only be generated if that product has added--- permissions since it was last approved, and the URL will only display--- those new permissions that have not yet been accepted.-pgaurURL :: Lens' ProductsGenerateApprovalURLResponse (Maybe Text)-pgaurURL = lens _pgaurURL (\ s a -> s{_pgaurURL = a})--instance FromJSON ProductsGenerateApprovalURLResponse-         where-        parseJSON-          = withObject "ProductsGenerateApprovalURLResponse"-              (\ o ->-                 ProductsGenerateApprovalURLResponse' <$>-                   (o .:? "url"))--instance ToJSON ProductsGenerateApprovalURLResponse-         where-        toJSON ProductsGenerateApprovalURLResponse'{..}-          = object (catMaybes [("url" .=) <$> _pgaurURL])---- | Definition of a managed Google Play store page, made of a localized name--- and links to other pages. A page also contains clusters defined as a--- subcollection.------ /See:/ 'storePage' smart constructor.-data StorePage = StorePage'-    { _spKind :: !Text-    , _spLink :: !(Maybe [Text])-    , _spName :: !(Maybe [LocalizedText])-    , _spId   :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'StorePage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'spKind'------ * 'spLink'------ * 'spName'------ * 'spId'-storePage-    :: StorePage-storePage =-    StorePage'-    { _spKind = "androidenterprise#storePage"-    , _spLink = Nothing-    , _spName = Nothing-    , _spId = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#storePage\".-spKind :: Lens' StorePage Text-spKind = lens _spKind (\ s a -> s{_spKind = a})---- | Ordered list of pages a user should be able to reach from this page. The--- list can\'t include this page. It is recommended that the basic pages--- are created first, before adding the links between pages. The API--- doesn\'t verify that the pages exist or the pages are reachable.-spLink :: Lens' StorePage [Text]-spLink-  = lens _spLink (\ s a -> s{_spLink = a}) . _Default .-      _Coerce---- | Ordered list of localized strings giving the name of this page. The text--- displayed is the one that best matches the user locale, or the first--- entry if there is no good match. There needs to be at least one entry.-spName :: Lens' StorePage [LocalizedText]-spName-  = lens _spName (\ s a -> s{_spName = a}) . _Default .-      _Coerce---- | Unique ID of this page. Assigned by the server. Immutable once assigned.-spId :: Lens' StorePage (Maybe Text)-spId = lens _spId (\ s a -> s{_spId = a})--instance FromJSON StorePage where-        parseJSON-          = withObject "StorePage"-              (\ o ->-                 StorePage' <$>-                   (o .:? "kind" .!= "androidenterprise#storePage") <*>-                     (o .:? "link" .!= mempty)-                     <*> (o .:? "name" .!= mempty)-                     <*> (o .:? "id"))--instance ToJSON StorePage where-        toJSON StorePage'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _spKind), ("link" .=) <$> _spLink,-                  ("name" .=) <$> _spName, ("id" .=) <$> _spId])------- /See:/ 'enterprisesSendTestPushNotificationResponse' smart constructor.-data EnterprisesSendTestPushNotificationResponse = EnterprisesSendTestPushNotificationResponse'-    { _estpnrTopicName :: !(Maybe Text)-    , _estpnrMessageId :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'EnterprisesSendTestPushNotificationResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'estpnrTopicName'------ * 'estpnrMessageId'-enterprisesSendTestPushNotificationResponse-    :: EnterprisesSendTestPushNotificationResponse-enterprisesSendTestPushNotificationResponse =-    EnterprisesSendTestPushNotificationResponse'-    { _estpnrTopicName = Nothing-    , _estpnrMessageId = Nothing-    }---- | The name of the Cloud Pub\/Sub topic to which notifications for this--- enterprise\'s enrolled account will be sent.-estpnrTopicName :: Lens' EnterprisesSendTestPushNotificationResponse (Maybe Text)-estpnrTopicName-  = lens _estpnrTopicName-      (\ s a -> s{_estpnrTopicName = a})---- | The message ID of the test push notification that was sent.-estpnrMessageId :: Lens' EnterprisesSendTestPushNotificationResponse (Maybe Text)-estpnrMessageId-  = lens _estpnrMessageId-      (\ s a -> s{_estpnrMessageId = a})--instance FromJSON-         EnterprisesSendTestPushNotificationResponse where-        parseJSON-          = withObject-              "EnterprisesSendTestPushNotificationResponse"-              (\ o ->-                 EnterprisesSendTestPushNotificationResponse' <$>-                   (o .:? "topicName") <*> (o .:? "messageId"))--instance ToJSON-         EnterprisesSendTestPushNotificationResponse where-        toJSON-          EnterprisesSendTestPushNotificationResponse'{..}-          = object-              (catMaybes-                 [("topicName" .=) <$> _estpnrTopicName,-                  ("messageId" .=) <$> _estpnrMessageId])---- | A service account identity, including the name and credentials that can--- be used to authenticate as the service account.------ /See:/ 'serviceAccount' smart constructor.-data ServiceAccount = ServiceAccount'-    { _saKind :: !Text-    , _saKey  :: !(Maybe ServiceAccountKey)-    , _saName :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ServiceAccount' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'saKind'------ * 'saKey'------ * 'saName'-serviceAccount-    :: ServiceAccount-serviceAccount =-    ServiceAccount'-    { _saKind = "androidenterprise#serviceAccount"-    , _saKey = Nothing-    , _saName = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#serviceAccount\".-saKind :: Lens' ServiceAccount Text-saKind = lens _saKind (\ s a -> s{_saKind = a})---- | Credentials that can be used to authenticate as this ServiceAccount.-saKey :: Lens' ServiceAccount (Maybe ServiceAccountKey)-saKey = lens _saKey (\ s a -> s{_saKey = a})---- | The account name of the service account, in the form of an email--- address. Assigned by the server.-saName :: Lens' ServiceAccount (Maybe Text)-saName = lens _saName (\ s a -> s{_saName = a})--instance FromJSON ServiceAccount where-        parseJSON-          = withObject "ServiceAccount"-              (\ o ->-                 ServiceAccount' <$>-                   (o .:? "kind" .!= "androidenterprise#serviceAccount")-                     <*> (o .:? "key")-                     <*> (o .:? "name"))--instance ToJSON ServiceAccount where-        toJSON ServiceAccount'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _saKind), ("key" .=) <$> _saKey,-                  ("name" .=) <$> _saName])---- | A variable set is a key-value pair of EMM-provided placeholders and its--- corresponding value, which is attributed to a user. For example,--- /F//I//R//S//T//N//A//M//E//c//o//u//l//d//b//e//a//p//l//a//c//e//h//o//l//d//e//r/, /a//n//d//i//t//s//v//a//l//u//e//c//o//u//l//d//b//e//A//l//i//c//e/./P//l//a//c//e//h//o//l//d//e//r//s//s//h//o//u//l//d//s//t//a//r//t//w//i//t//h//a/′\'--- sign and should be alphanumeric only.------ /See:/ 'variableSet' smart constructor.-data VariableSet = VariableSet'-    { _vsKind        :: !Text-    , _vsUserValue   :: !(Maybe Text)-    , _vsPlaceholder :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'VariableSet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vsKind'------ * 'vsUserValue'------ * 'vsPlaceholder'-variableSet-    :: VariableSet-variableSet =-    VariableSet'-    { _vsKind = "androidenterprise#variableSet"-    , _vsUserValue = Nothing-    , _vsPlaceholder = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#variableSet\".-vsKind :: Lens' VariableSet Text-vsKind = lens _vsKind (\ s a -> s{_vsKind = a})---- | The value of the placeholder, specific to the user.-vsUserValue :: Lens' VariableSet (Maybe Text)-vsUserValue-  = lens _vsUserValue (\ s a -> s{_vsUserValue = a})---- | The placeholder string; defined by EMM.-vsPlaceholder :: Lens' VariableSet (Maybe Text)-vsPlaceholder-  = lens _vsPlaceholder-      (\ s a -> s{_vsPlaceholder = a})--instance FromJSON VariableSet where-        parseJSON-          = withObject "VariableSet"-              (\ o ->-                 VariableSet' <$>-                   (o .:? "kind" .!= "androidenterprise#variableSet")-                     <*> (o .:? "userValue")-                     <*> (o .:? "placeholder"))--instance ToJSON VariableSet where-        toJSON VariableSet'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _vsKind),-                  ("userValue" .=) <$> _vsUserValue,-                  ("placeholder" .=) <$> _vsPlaceholder])---- | An event generated when a new version of an app is uploaded to Google--- Play. Notifications are sent for new public versions only: alpha, beta,--- or canary versions do not generate this event. To fetch up-to-date--- version history for an app, use Products.Get on the EMM API.------ /See:/ 'appUpdateEvent' smart constructor.-newtype AppUpdateEvent = AppUpdateEvent'-    { _aueProductId :: Maybe Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AppUpdateEvent' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aueProductId'-appUpdateEvent-    :: AppUpdateEvent-appUpdateEvent =-    AppUpdateEvent'-    { _aueProductId = Nothing-    }---- | The id of the product (e.g. \"app:com.google.android.gm\") that was--- updated. This field will always be present.-aueProductId :: Lens' AppUpdateEvent (Maybe Text)-aueProductId-  = lens _aueProductId (\ s a -> s{_aueProductId = a})--instance FromJSON AppUpdateEvent where-        parseJSON-          = withObject "AppUpdateEvent"-              (\ o -> AppUpdateEvent' <$> (o .:? "productId"))--instance ToJSON AppUpdateEvent where-        toJSON AppUpdateEvent'{..}-          = object-              (catMaybes [("productId" .=) <$> _aueProductId])---- | The matching enterprise resources.------ /See:/ 'enterprisesListResponse' smart constructor.-data EnterprisesListResponse = EnterprisesListResponse'-    { _elrKind       :: !Text-    , _elrEnterprise :: !(Maybe [Enterprise])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'EnterprisesListResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'elrKind'------ * 'elrEnterprise'-enterprisesListResponse-    :: EnterprisesListResponse-enterprisesListResponse =-    EnterprisesListResponse'-    { _elrKind = "androidenterprise#enterprisesListResponse"-    , _elrEnterprise = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#enterprisesListResponse\".-elrKind :: Lens' EnterprisesListResponse Text-elrKind = lens _elrKind (\ s a -> s{_elrKind = a})---- | An enterprise.-elrEnterprise :: Lens' EnterprisesListResponse [Enterprise]-elrEnterprise-  = lens _elrEnterprise-      (\ s a -> s{_elrEnterprise = a})-      . _Default-      . _Coerce--instance FromJSON EnterprisesListResponse where-        parseJSON-          = withObject "EnterprisesListResponse"-              (\ o ->-                 EnterprisesListResponse' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#enterprisesListResponse")-                     <*> (o .:? "enterprise" .!= mempty))--instance ToJSON EnterprisesListResponse where-        toJSON EnterprisesListResponse'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _elrKind),-                  ("enterprise" .=) <$> _elrEnterprise])---- | A resource returned by the PullNotificationSet API, which contains a--- collection of notifications for enterprises associated with the service--- account authenticated for the request.------ /See:/ 'notificationSet' smart constructor.-data NotificationSet = NotificationSet'-    { _nsNotificationSetId :: !(Maybe Text)-    , _nsNotification      :: !(Maybe [Notification])-    , _nsKind              :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'NotificationSet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'nsNotificationSetId'------ * 'nsNotification'------ * 'nsKind'-notificationSet-    :: NotificationSet-notificationSet =-    NotificationSet'-    { _nsNotificationSetId = Nothing-    , _nsNotification = Nothing-    , _nsKind = "androidenterprise#notificationSet"-    }---- | The notification set ID, required to mark the notification as received--- with the Enterprises.AcknowledgeNotification API. This will be omitted--- if no notifications are present.-nsNotificationSetId :: Lens' NotificationSet (Maybe Text)-nsNotificationSetId-  = lens _nsNotificationSetId-      (\ s a -> s{_nsNotificationSetId = a})---- | The notifications received, or empty if no notifications are present.-nsNotification :: Lens' NotificationSet [Notification]-nsNotification-  = lens _nsNotification-      (\ s a -> s{_nsNotification = a})-      . _Default-      . _Coerce---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#notificationSet\".-nsKind :: Lens' NotificationSet Text-nsKind = lens _nsKind (\ s a -> s{_nsKind = a})--instance FromJSON NotificationSet where-        parseJSON-          = withObject "NotificationSet"-              (\ o ->-                 NotificationSet' <$>-                   (o .:? "notificationSetId") <*>-                     (o .:? "notification" .!= mempty)-                     <*>-                     (o .:? "kind" .!=-                        "androidenterprise#notificationSet"))--instance ToJSON NotificationSet where-        toJSON NotificationSet'{..}-          = object-              (catMaybes-                 [("notificationSetId" .=) <$> _nsNotificationSetId,-                  ("notification" .=) <$> _nsNotification,-                  Just ("kind" .= _nsKind)])---- | Represents the list of app restrictions available to be pre-configured--- for the product.------ /See:/ 'appRestrictionsSchema' smart constructor.-data AppRestrictionsSchema = AppRestrictionsSchema'-    { _arsKind         :: !Text-    , _arsRestrictions :: !(Maybe [AppRestrictionsSchemaRestriction])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AppRestrictionsSchema' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'arsKind'------ * 'arsRestrictions'-appRestrictionsSchema-    :: AppRestrictionsSchema-appRestrictionsSchema =-    AppRestrictionsSchema'-    { _arsKind = "androidenterprise#appRestrictionsSchema"-    , _arsRestrictions = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#appRestrictionsSchema\".-arsKind :: Lens' AppRestrictionsSchema Text-arsKind = lens _arsKind (\ s a -> s{_arsKind = a})---- | The set of restrictions that make up this schema.-arsRestrictions :: Lens' AppRestrictionsSchema [AppRestrictionsSchemaRestriction]-arsRestrictions-  = lens _arsRestrictions-      (\ s a -> s{_arsRestrictions = a})-      . _Default-      . _Coerce--instance FromJSON AppRestrictionsSchema where-        parseJSON-          = withObject "AppRestrictionsSchema"-              (\ o ->-                 AppRestrictionsSchema' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#appRestrictionsSchema")-                     <*> (o .:? "restrictions" .!= mempty))--instance ToJSON AppRestrictionsSchema where-        toJSON AppRestrictionsSchema'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _arsKind),-                  ("restrictions" .=) <$> _arsRestrictions])---- | Icon for a web app.------ /See:/ 'webAppIcon' smart constructor.-newtype WebAppIcon = WebAppIcon'-    { _waiImageData :: Maybe Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'WebAppIcon' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'waiImageData'-webAppIcon-    :: WebAppIcon-webAppIcon =-    WebAppIcon'-    { _waiImageData = Nothing-    }---- | The actual bytes of the image in a base64url encoded string (c.f.--- RFC4648, section 5 \"Base 64 Encoding with URL and Filename Safe--- Alphabet\"). - The image type can be png or jpg. - The image should--- ideally be square. - The image should ideally have a size of 512x512.-waiImageData :: Lens' WebAppIcon (Maybe Text)-waiImageData-  = lens _waiImageData (\ s a -> s{_waiImageData = a})--instance FromJSON WebAppIcon where-        parseJSON-          = withObject "WebAppIcon"-              (\ o -> WebAppIcon' <$> (o .:? "imageData"))--instance ToJSON WebAppIcon where-        toJSON WebAppIcon'{..}-          = object-              (catMaybes [("imageData" .=) <$> _waiImageData])---- | A localized string with its locale.------ /See:/ 'localizedText' smart constructor.-data LocalizedText = LocalizedText'-    { _ltText   :: !(Maybe Text)-    , _ltLocale :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'LocalizedText' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ltText'------ * 'ltLocale'-localizedText-    :: LocalizedText-localizedText =-    LocalizedText'-    { _ltText = Nothing-    , _ltLocale = Nothing-    }---- | The text localized in the associated locale.-ltText :: Lens' LocalizedText (Maybe Text)-ltText = lens _ltText (\ s a -> s{_ltText = a})---- | The BCP47 tag for a locale. (e.g. \"en-US\", \"de\").-ltLocale :: Lens' LocalizedText (Maybe Text)-ltLocale = lens _ltLocale (\ s a -> s{_ltLocale = a})--instance FromJSON LocalizedText where-        parseJSON-          = withObject "LocalizedText"-              (\ o ->-                 LocalizedText' <$>-                   (o .:? "text") <*> (o .:? "locale"))--instance ToJSON LocalizedText where-        toJSON LocalizedText'{..}-          = object-              (catMaybes-                 [("text" .=) <$> _ltText,-                  ("locale" .=) <$> _ltLocale])---- | A UserToken is used by a user when setting up a managed device or--- profile with their managed Google Play account on a device. When the--- user enters their email address and token (activation code) the--- appropriate EMM app can be automatically downloaded.------ /See:/ 'userToken' smart constructor.-data UserToken = UserToken'-    { _utKind   :: !Text-    , _utToken  :: !(Maybe Text)-    , _utUserId :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserToken' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'utKind'------ * 'utToken'------ * 'utUserId'-userToken-    :: UserToken-userToken =-    UserToken'-    { _utKind = "androidenterprise#userToken"-    , _utToken = Nothing-    , _utUserId = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#userToken\".-utKind :: Lens' UserToken Text-utKind = lens _utKind (\ s a -> s{_utKind = a})---- | The token (activation code) to be entered by the user. This consists of--- a sequence of decimal digits. Note that the leading digit may be 0.-utToken :: Lens' UserToken (Maybe Text)-utToken = lens _utToken (\ s a -> s{_utToken = a})---- | The unique ID for the user.-utUserId :: Lens' UserToken (Maybe Text)-utUserId = lens _utUserId (\ s a -> s{_utUserId = a})--instance FromJSON UserToken where-        parseJSON-          = withObject "UserToken"-              (\ o ->-                 UserToken' <$>-                   (o .:? "kind" .!= "androidenterprise#userToken") <*>-                     (o .:? "token")-                     <*> (o .:? "userId"))--instance ToJSON UserToken where-        toJSON UserToken'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _utKind), ("token" .=) <$> _utToken,-                  ("userId" .=) <$> _utUserId])------- /See:/ 'administratorWebTokenSpecPrivateApps' smart constructor.-newtype AdministratorWebTokenSpecPrivateApps = AdministratorWebTokenSpecPrivateApps'-    { _awtspaEnabled :: Maybe Bool-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AdministratorWebTokenSpecPrivateApps' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'awtspaEnabled'-administratorWebTokenSpecPrivateApps-    :: AdministratorWebTokenSpecPrivateApps-administratorWebTokenSpecPrivateApps =-    AdministratorWebTokenSpecPrivateApps'-    { _awtspaEnabled = Nothing-    }---- | Whether the Private Apps page is displayed. Default is true.-awtspaEnabled :: Lens' AdministratorWebTokenSpecPrivateApps (Maybe Bool)-awtspaEnabled-  = lens _awtspaEnabled-      (\ s a -> s{_awtspaEnabled = a})--instance FromJSON-         AdministratorWebTokenSpecPrivateApps where-        parseJSON-          = withObject "AdministratorWebTokenSpecPrivateApps"-              (\ o ->-                 AdministratorWebTokenSpecPrivateApps' <$>-                   (o .:? "enabled"))--instance ToJSON AdministratorWebTokenSpecPrivateApps-         where-        toJSON AdministratorWebTokenSpecPrivateApps'{..}-          = object-              (catMaybes [("enabled" .=) <$> _awtspaEnabled])---- | The device resources for the user.------ /See:/ 'devicesListResponse' smart constructor.-data DevicesListResponse = DevicesListResponse'-    { _dlrKind   :: !Text-    , _dlrDevice :: !(Maybe [Device])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DevicesListResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dlrKind'------ * 'dlrDevice'-devicesListResponse-    :: DevicesListResponse-devicesListResponse =-    DevicesListResponse'-    { _dlrKind = "androidenterprise#devicesListResponse"-    , _dlrDevice = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#devicesListResponse\".-dlrKind :: Lens' DevicesListResponse Text-dlrKind = lens _dlrKind (\ s a -> s{_dlrKind = a})---- | A managed device.-dlrDevice :: Lens' DevicesListResponse [Device]-dlrDevice-  = lens _dlrDevice (\ s a -> s{_dlrDevice = a}) .-      _Default-      . _Coerce--instance FromJSON DevicesListResponse where-        parseJSON-          = withObject "DevicesListResponse"-              (\ o ->-                 DevicesListResponse' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#devicesListResponse")-                     <*> (o .:? "device" .!= mempty))--instance ToJSON DevicesListResponse where-        toJSON DevicesListResponse'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _dlrKind),-                  ("device" .=) <$> _dlrDevice])------- /See:/ 'productSigningCertificate' smart constructor.-data ProductSigningCertificate = ProductSigningCertificate'-    { _pscCertificateHashSha256 :: !(Maybe Text)-    , _pscCertificateHashSha1   :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ProductSigningCertificate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pscCertificateHashSha256'------ * 'pscCertificateHashSha1'-productSigningCertificate-    :: ProductSigningCertificate-productSigningCertificate =-    ProductSigningCertificate'-    { _pscCertificateHashSha256 = Nothing-    , _pscCertificateHashSha1 = Nothing-    }---- | The base64 urlsafe encoded SHA2-256 hash of the certificate.-pscCertificateHashSha256 :: Lens' ProductSigningCertificate (Maybe Text)-pscCertificateHashSha256-  = lens _pscCertificateHashSha256-      (\ s a -> s{_pscCertificateHashSha256 = a})---- | The base64 urlsafe encoded SHA1 hash of the certificate. (This field is--- deprecated in favor of SHA2-256. It should not be used and may be--- removed at any time.)-pscCertificateHashSha1 :: Lens' ProductSigningCertificate (Maybe Text)-pscCertificateHashSha1-  = lens _pscCertificateHashSha1-      (\ s a -> s{_pscCertificateHashSha1 = a})--instance FromJSON ProductSigningCertificate where-        parseJSON-          = withObject "ProductSigningCertificate"-              (\ o ->-                 ProductSigningCertificate' <$>-                   (o .:? "certificateHashSha256") <*>-                     (o .:? "certificateHashSha1"))--instance ToJSON ProductSigningCertificate where-        toJSON ProductSigningCertificate'{..}-          = object-              (catMaybes-                 [("certificateHashSha256" .=) <$>-                    _pscCertificateHashSha256,-                  ("certificateHashSha1" .=) <$>-                    _pscCertificateHashSha1])---- | An Enterprises resource represents the binding between an EMM and a--- specific organization. That binding can be instantiated in one of two--- different ways using this API as follows: - For Google managed domain--- customers, the process involves using Enterprises.enroll and--- Enterprises.setAccount (in conjunction with artifacts obtained from the--- Admin console and the Google API Console) and submitted to the EMM--- through a more-or-less manual process. - For managed Google Play--- Accounts customers, the process involves using--- Enterprises.generateSignupUrl and Enterprises.completeSignup in--- conjunction with the managed Google Play sign-up UI (Google-provided--- mechanism) to create the binding without manual steps. As an EMM, you--- can support either or both approaches in your EMM console. See Create an--- Enterprise for details.------ /See:/ 'enterprise' smart constructor.-data Enterprise = Enterprise'-    { _eKind          :: !Text-    , _eAdministrator :: !(Maybe [Administrator])-    , _ePrimaryDomain :: !(Maybe Text)-    , _eName          :: !(Maybe Text)-    , _eId            :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Enterprise' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eKind'------ * 'eAdministrator'------ * 'ePrimaryDomain'------ * 'eName'------ * 'eId'-enterprise-    :: Enterprise-enterprise =-    Enterprise'-    { _eKind = "androidenterprise#enterprise"-    , _eAdministrator = Nothing-    , _ePrimaryDomain = Nothing-    , _eName = Nothing-    , _eId = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#enterprise\".-eKind :: Lens' Enterprise Text-eKind = lens _eKind (\ s a -> s{_eKind = a})---- | Admins of the enterprise. This is only supported for enterprises created--- via the EMM-initiated flow.-eAdministrator :: Lens' Enterprise [Administrator]-eAdministrator-  = lens _eAdministrator-      (\ s a -> s{_eAdministrator = a})-      . _Default-      . _Coerce---- | The enterprise\'s primary domain, such as \"example.com\".-ePrimaryDomain :: Lens' Enterprise (Maybe Text)-ePrimaryDomain-  = lens _ePrimaryDomain-      (\ s a -> s{_ePrimaryDomain = a})---- | The name of the enterprise, for example, \"Example, Inc\".-eName :: Lens' Enterprise (Maybe Text)-eName = lens _eName (\ s a -> s{_eName = a})---- | The unique ID for the enterprise.-eId :: Lens' Enterprise (Maybe Text)-eId = lens _eId (\ s a -> s{_eId = a})--instance FromJSON Enterprise where-        parseJSON-          = withObject "Enterprise"-              (\ o ->-                 Enterprise' <$>-                   (o .:? "kind" .!= "androidenterprise#enterprise") <*>-                     (o .:? "administrator" .!= mempty)-                     <*> (o .:? "primaryDomain")-                     <*> (o .:? "name")-                     <*> (o .:? "id"))--instance ToJSON Enterprise where-        toJSON Enterprise'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _eKind),-                  ("administrator" .=) <$> _eAdministrator,-                  ("primaryDomain" .=) <$> _ePrimaryDomain,-                  ("name" .=) <$> _eName, ("id" .=) <$> _eId])---- | An event generated when an app installation failed on a device------ /See:/ 'installFailureEvent' smart constructor.-data InstallFailureEvent = InstallFailureEvent'-    { _ifeFailureReason  :: !(Maybe Text)-    , _ifeFailureDetails :: !(Maybe Text)-    , _ifeUserId         :: !(Maybe Text)-    , _ifeDeviceId       :: !(Maybe Text)-    , _ifeProductId      :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'InstallFailureEvent' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ifeFailureReason'------ * 'ifeFailureDetails'------ * 'ifeUserId'------ * 'ifeDeviceId'------ * 'ifeProductId'-installFailureEvent-    :: InstallFailureEvent-installFailureEvent =-    InstallFailureEvent'-    { _ifeFailureReason = Nothing-    , _ifeFailureDetails = Nothing-    , _ifeUserId = Nothing-    , _ifeDeviceId = Nothing-    , _ifeProductId = Nothing-    }---- | The reason for the installation failure. This field will always be--- present.-ifeFailureReason :: Lens' InstallFailureEvent (Maybe Text)-ifeFailureReason-  = lens _ifeFailureReason-      (\ s a -> s{_ifeFailureReason = a})---- | Additional details on the failure if applicable.-ifeFailureDetails :: Lens' InstallFailureEvent (Maybe Text)-ifeFailureDetails-  = lens _ifeFailureDetails-      (\ s a -> s{_ifeFailureDetails = a})---- | The ID of the user. This field will always be present.-ifeUserId :: Lens' InstallFailureEvent (Maybe Text)-ifeUserId-  = lens _ifeUserId (\ s a -> s{_ifeUserId = a})---- | The Android ID of the device. This field will always be present.-ifeDeviceId :: Lens' InstallFailureEvent (Maybe Text)-ifeDeviceId-  = lens _ifeDeviceId (\ s a -> s{_ifeDeviceId = a})---- | The id of the product (e.g. \"app:com.google.android.gm\") for which the--- install failure event occured. This field will always be present.-ifeProductId :: Lens' InstallFailureEvent (Maybe Text)-ifeProductId-  = lens _ifeProductId (\ s a -> s{_ifeProductId = a})--instance FromJSON InstallFailureEvent where-        parseJSON-          = withObject "InstallFailureEvent"-              (\ o ->-                 InstallFailureEvent' <$>-                   (o .:? "failureReason") <*> (o .:? "failureDetails")-                     <*> (o .:? "userId")-                     <*> (o .:? "deviceId")-                     <*> (o .:? "productId"))--instance ToJSON InstallFailureEvent where-        toJSON InstallFailureEvent'{..}-          = object-              (catMaybes-                 [("failureReason" .=) <$> _ifeFailureReason,-                  ("failureDetails" .=) <$> _ifeFailureDetails,-                  ("userId" .=) <$> _ifeUserId,-                  ("deviceId" .=) <$> _ifeDeviceId,-                  ("productId" .=) <$> _ifeProductId])---- | The managed configuration resources for the user.------ /See:/ 'managedConfigurationsForUserListResponse' smart constructor.-data ManagedConfigurationsForUserListResponse = ManagedConfigurationsForUserListResponse'-    { _mcfulrManagedConfigurationForUser :: !(Maybe [ManagedConfiguration])-    , _mcfulrKind                        :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ManagedConfigurationsForUserListResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mcfulrManagedConfigurationForUser'------ * 'mcfulrKind'-managedConfigurationsForUserListResponse-    :: ManagedConfigurationsForUserListResponse-managedConfigurationsForUserListResponse =-    ManagedConfigurationsForUserListResponse'-    { _mcfulrManagedConfigurationForUser = Nothing-    , _mcfulrKind = "androidenterprise#managedConfigurationsForUserListResponse"-    }---- | A managed configuration for an app for a specific user.-mcfulrManagedConfigurationForUser :: Lens' ManagedConfigurationsForUserListResponse [ManagedConfiguration]-mcfulrManagedConfigurationForUser-  = lens _mcfulrManagedConfigurationForUser-      (\ s a -> s{_mcfulrManagedConfigurationForUser = a})-      . _Default-      . _Coerce---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#managedConfigurationsForUserListResponse\".-mcfulrKind :: Lens' ManagedConfigurationsForUserListResponse Text-mcfulrKind-  = lens _mcfulrKind (\ s a -> s{_mcfulrKind = a})--instance FromJSON-         ManagedConfigurationsForUserListResponse where-        parseJSON-          = withObject-              "ManagedConfigurationsForUserListResponse"-              (\ o ->-                 ManagedConfigurationsForUserListResponse' <$>-                   (o .:? "managedConfigurationForUser" .!= mempty) <*>-                     (o .:? "kind" .!=-                        "androidenterprise#managedConfigurationsForUserListResponse"))--instance ToJSON-         ManagedConfigurationsForUserListResponse where-        toJSON ManagedConfigurationsForUserListResponse'{..}-          = object-              (catMaybes-                 [("managedConfigurationForUser" .=) <$>-                    _mcfulrManagedConfigurationForUser,-                  Just ("kind" .= _mcfulrKind)])---- | A configuration variables resource contains the managed configuration--- settings ID to be applied to a single user, as well as the variable set--- that is attributed to the user. The variable set will be used to replace--- placeholders in the managed configuration settings.------ /See:/ 'configurationVariables' smart constructor.-data ConfigurationVariables = ConfigurationVariables'-    { _cvKind        :: !Text-    , _cvMcmId       :: !(Maybe Text)-    , _cvVariableSet :: !(Maybe [VariableSet])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ConfigurationVariables' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cvKind'------ * 'cvMcmId'------ * 'cvVariableSet'-configurationVariables-    :: ConfigurationVariables-configurationVariables =-    ConfigurationVariables'-    { _cvKind = "androidenterprise#configurationVariables"-    , _cvMcmId = Nothing-    , _cvVariableSet = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#configurationVariables\".-cvKind :: Lens' ConfigurationVariables Text-cvKind = lens _cvKind (\ s a -> s{_cvKind = a})---- | The ID of the managed configurations settings.-cvMcmId :: Lens' ConfigurationVariables (Maybe Text)-cvMcmId = lens _cvMcmId (\ s a -> s{_cvMcmId = a})---- | The variable set that is attributed to the user.-cvVariableSet :: Lens' ConfigurationVariables [VariableSet]-cvVariableSet-  = lens _cvVariableSet-      (\ s a -> s{_cvVariableSet = a})-      . _Default-      . _Coerce--instance FromJSON ConfigurationVariables where-        parseJSON-          = withObject "ConfigurationVariables"-              (\ o ->-                 ConfigurationVariables' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#configurationVariables")-                     <*> (o .:? "mcmId")-                     <*> (o .:? "variableSet" .!= mempty))--instance ToJSON ConfigurationVariables where-        toJSON ConfigurationVariables'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _cvKind), ("mcmId" .=) <$> _cvMcmId,-                  ("variableSet" .=) <$> _cvVariableSet])---- | General setting for the managed Google Play store layout, currently only--- specifying the page to display the first time the store is opened.------ /See:/ 'storeLayout' smart constructor.-data StoreLayout = StoreLayout'-    { _slStoreLayoutType :: !(Maybe Text)-    , _slKind            :: !Text-    , _slHomepageId      :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'StoreLayout' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'slStoreLayoutType'------ * 'slKind'------ * 'slHomepageId'-storeLayout-    :: StoreLayout-storeLayout =-    StoreLayout'-    { _slStoreLayoutType = Nothing-    , _slKind = "androidenterprise#storeLayout"-    , _slHomepageId = Nothing-    }---- | The store layout type. By default, this value is set to \"basic\" if the--- homepageId field is not set, and to \"custom\" otherwise. If set to--- \"basic\", the layout will consist of all approved apps that have been--- whitelisted for the user.-slStoreLayoutType :: Lens' StoreLayout (Maybe Text)-slStoreLayoutType-  = lens _slStoreLayoutType-      (\ s a -> s{_slStoreLayoutType = a})---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#storeLayout\".-slKind :: Lens' StoreLayout Text-slKind = lens _slKind (\ s a -> s{_slKind = a})---- | The ID of the store page to be used as the homepage. The homepage is the--- first page shown in the managed Google Play Store. Not specifying a--- homepage is equivalent to setting the store layout type to \"basic\".-slHomepageId :: Lens' StoreLayout (Maybe Text)-slHomepageId-  = lens _slHomepageId (\ s a -> s{_slHomepageId = a})--instance FromJSON StoreLayout where-        parseJSON-          = withObject "StoreLayout"-              (\ o ->-                 StoreLayout' <$>-                   (o .:? "storeLayoutType") <*>-                     (o .:? "kind" .!= "androidenterprise#storeLayout")-                     <*> (o .:? "homepageId"))--instance ToJSON StoreLayout where-        toJSON StoreLayout'{..}-          = object-              (catMaybes-                 [("storeLayoutType" .=) <$> _slStoreLayoutType,-                  Just ("kind" .= _slKind),-                  ("homepageId" .=) <$> _slHomepageId])---- | An event generated when a new app version is uploaded to Google Play and--- its app restrictions schema changed. To fetch the app restrictions--- schema for an app, use Products.getAppRestrictionsSchema on the EMM API.------ /See:/ 'appRestrictionsSchemaChangeEvent' smart constructor.-newtype AppRestrictionsSchemaChangeEvent = AppRestrictionsSchemaChangeEvent'-    { _arsceProductId :: Maybe Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AppRestrictionsSchemaChangeEvent' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'arsceProductId'-appRestrictionsSchemaChangeEvent-    :: AppRestrictionsSchemaChangeEvent-appRestrictionsSchemaChangeEvent =-    AppRestrictionsSchemaChangeEvent'-    { _arsceProductId = Nothing-    }---- | The id of the product (e.g. \"app:com.google.android.gm\") for which the--- app restriction schema changed. This field will always be present.-arsceProductId :: Lens' AppRestrictionsSchemaChangeEvent (Maybe Text)-arsceProductId-  = lens _arsceProductId-      (\ s a -> s{_arsceProductId = a})--instance FromJSON AppRestrictionsSchemaChangeEvent-         where-        parseJSON-          = withObject "AppRestrictionsSchemaChangeEvent"-              (\ o ->-                 AppRestrictionsSchemaChangeEvent' <$>-                   (o .:? "productId"))--instance ToJSON AppRestrictionsSchemaChangeEvent-         where-        toJSON AppRestrictionsSchemaChangeEvent'{..}-          = object-              (catMaybes [("productId" .=) <$> _arsceProductId])---- | An event generated when a new device is ready to be managed.------ /See:/ 'newDeviceEvent' smart constructor.-data NewDeviceEvent = NewDeviceEvent'-    { _ndeUserId         :: !(Maybe Text)-    , _ndeDpcPackageName :: !(Maybe Text)-    , _ndeDeviceId       :: !(Maybe Text)-    , _ndeManagementType :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'NewDeviceEvent' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ndeUserId'------ * 'ndeDpcPackageName'------ * 'ndeDeviceId'------ * 'ndeManagementType'-newDeviceEvent-    :: NewDeviceEvent-newDeviceEvent =-    NewDeviceEvent'-    { _ndeUserId = Nothing-    , _ndeDpcPackageName = Nothing-    , _ndeDeviceId = Nothing-    , _ndeManagementType = Nothing-    }---- | The ID of the user. This field will always be present.-ndeUserId :: Lens' NewDeviceEvent (Maybe Text)-ndeUserId-  = lens _ndeUserId (\ s a -> s{_ndeUserId = a})---- | Policy app on the device.-ndeDpcPackageName :: Lens' NewDeviceEvent (Maybe Text)-ndeDpcPackageName-  = lens _ndeDpcPackageName-      (\ s a -> s{_ndeDpcPackageName = a})---- | The Android ID of the device. This field will always be present.-ndeDeviceId :: Lens' NewDeviceEvent (Maybe Text)-ndeDeviceId-  = lens _ndeDeviceId (\ s a -> s{_ndeDeviceId = a})---- | Identifies the extent to which the device is controlled by an Android--- EMM in various deployment configurations. Possible values include: ---- \"managedDevice\", a device where the DPC is set as device owner, ---- \"managedProfile\", a device where the DPC is set as profile owner.-ndeManagementType :: Lens' NewDeviceEvent (Maybe Text)-ndeManagementType-  = lens _ndeManagementType-      (\ s a -> s{_ndeManagementType = a})--instance FromJSON NewDeviceEvent where-        parseJSON-          = withObject "NewDeviceEvent"-              (\ o ->-                 NewDeviceEvent' <$>-                   (o .:? "userId") <*> (o .:? "dpcPackageName") <*>-                     (o .:? "deviceId")-                     <*> (o .:? "managementType"))--instance ToJSON NewDeviceEvent where-        toJSON NewDeviceEvent'{..}-          = object-              (catMaybes-                 [("userId" .=) <$> _ndeUserId,-                  ("dpcPackageName" .=) <$> _ndeDpcPackageName,-                  ("deviceId" .=) <$> _ndeDeviceId,-                  ("managementType" .=) <$> _ndeManagementType])---- | The device policy for a given managed device.------ /See:/ 'policy' smart constructor.-data Policy = Policy'-    { _pProductAvailabilityPolicy :: !(Maybe Text)-    , _pProductPolicy             :: !(Maybe [ProductPolicy])-    , _pMaintenanceWindow         :: !(Maybe MaintenanceWindow)-    , _pAutoUpdatePolicy          :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Policy' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pProductAvailabilityPolicy'------ * 'pProductPolicy'------ * 'pMaintenanceWindow'------ * 'pAutoUpdatePolicy'-policy-    :: Policy-policy =-    Policy'-    { _pProductAvailabilityPolicy = Nothing-    , _pProductPolicy = Nothing-    , _pMaintenanceWindow = Nothing-    , _pAutoUpdatePolicy = Nothing-    }---- | The availability granted to the device for the specified products.--- \"all\" gives the device access to all products, regardless of approval--- status. \"all\" does not enable automatic visibility of \"alpha\" or--- \"beta\" tracks. \"whitelist\" grants the device access the products--- specified in productPolicy[]. Only products that are approved or--- products that were previously approved (products with revoked approval)--- by the enterprise can be whitelisted. If no value is provided, the--- availability set at the user level is applied by default.-pProductAvailabilityPolicy :: Lens' Policy (Maybe Text)-pProductAvailabilityPolicy-  = lens _pProductAvailabilityPolicy-      (\ s a -> s{_pProductAvailabilityPolicy = a})---- | The list of product policies.-pProductPolicy :: Lens' Policy [ProductPolicy]-pProductPolicy-  = lens _pProductPolicy-      (\ s a -> s{_pProductPolicy = a})-      . _Default-      . _Coerce---- | The maintenance window defining when apps running in the foreground--- should be updated.-pMaintenanceWindow :: Lens' Policy (Maybe MaintenanceWindow)-pMaintenanceWindow-  = lens _pMaintenanceWindow-      (\ s a -> s{_pMaintenanceWindow = a})---- | The auto-update policy for apps installed on the device.--- \"choiceToTheUser\" allows the device\'s user to configure the app--- update policy. \"always\" enables auto updates. \"never\" disables auto--- updates. \"wifiOnly\" enables auto updates only when the device is--- connected to wifi.-pAutoUpdatePolicy :: Lens' Policy (Maybe Text)-pAutoUpdatePolicy-  = lens _pAutoUpdatePolicy-      (\ s a -> s{_pAutoUpdatePolicy = a})--instance FromJSON Policy where-        parseJSON-          = withObject "Policy"-              (\ o ->-                 Policy' <$>-                   (o .:? "productAvailabilityPolicy") <*>-                     (o .:? "productPolicy" .!= mempty)-                     <*> (o .:? "maintenanceWindow")-                     <*> (o .:? "autoUpdatePolicy"))--instance ToJSON Policy where-        toJSON Policy'{..}-          = object-              (catMaybes-                 [("productAvailabilityPolicy" .=) <$>-                    _pProductAvailabilityPolicy,-                  ("productPolicy" .=) <$> _pProductPolicy,-                  ("maintenanceWindow" .=) <$> _pMaintenanceWindow,-                  ("autoUpdatePolicy" .=) <$> _pAutoUpdatePolicy])---- | A token authorizing an admin to access an iframe.------ /See:/ 'administratorWebToken' smart constructor.-data AdministratorWebToken = AdministratorWebToken'-    { _awtKind  :: !Text-    , _awtToken :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AdministratorWebToken' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'awtKind'------ * 'awtToken'-administratorWebToken-    :: AdministratorWebToken-administratorWebToken =-    AdministratorWebToken'-    { _awtKind = "androidenterprise#administratorWebToken"-    , _awtToken = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#administratorWebToken\".-awtKind :: Lens' AdministratorWebToken Text-awtKind = lens _awtKind (\ s a -> s{_awtKind = a})---- | An opaque token to be passed to the Play front-end to generate an--- iframe.-awtToken :: Lens' AdministratorWebToken (Maybe Text)-awtToken = lens _awtToken (\ s a -> s{_awtToken = a})--instance FromJSON AdministratorWebToken where-        parseJSON-          = withObject "AdministratorWebToken"-              (\ o ->-                 AdministratorWebToken' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#administratorWebToken")-                     <*> (o .:? "token"))--instance ToJSON AdministratorWebToken where-        toJSON AdministratorWebToken'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _awtKind),-                  ("token" .=) <$> _awtToken])---- | A resource returned by the GenerateSignupUrl API, which contains the--- Signup URL and Completion Token.------ /See:/ 'signupInfo' smart constructor.-data SignupInfo = SignupInfo'-    { _siCompletionToken :: !(Maybe Text)-    , _siKind            :: !Text-    , _siURL             :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'SignupInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'siCompletionToken'------ * 'siKind'------ * 'siURL'-signupInfo-    :: SignupInfo-signupInfo =-    SignupInfo'-    { _siCompletionToken = Nothing-    , _siKind = "androidenterprise#signupInfo"-    , _siURL = Nothing-    }---- | An opaque token that will be required, along with the Enterprise Token,--- for obtaining the enterprise resource from CompleteSignup.-siCompletionToken :: Lens' SignupInfo (Maybe Text)-siCompletionToken-  = lens _siCompletionToken-      (\ s a -> s{_siCompletionToken = a})---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#signupInfo\".-siKind :: Lens' SignupInfo Text-siKind = lens _siKind (\ s a -> s{_siKind = a})---- | A URL under which the Admin can sign up for an enterprise. The page--- pointed to cannot be rendered in an iframe.-siURL :: Lens' SignupInfo (Maybe Text)-siURL = lens _siURL (\ s a -> s{_siURL = a})--instance FromJSON SignupInfo where-        parseJSON-          = withObject "SignupInfo"-              (\ o ->-                 SignupInfo' <$>-                   (o .:? "completionToken") <*>-                     (o .:? "kind" .!= "androidenterprise#signupInfo")-                     <*> (o .:? "url"))--instance ToJSON SignupInfo where-        toJSON SignupInfo'{..}-          = object-              (catMaybes-                 [("completionToken" .=) <$> _siCompletionToken,-                  Just ("kind" .= _siKind), ("url" .=) <$> _siURL])---- | A Products resource represents an app in the Google Play store that is--- available to at least some users in the enterprise. (Some apps are--- restricted to a single enterprise, and no information about them is made--- available outside that enterprise.) The information provided for each--- product (localized name, icon, link to the full Google Play details--- page) is intended to allow a basic representation of the product within--- an EMM user interface.------ /See:/ 'product' smart constructor.-data Product = Product'-    { _pScreenshotURLs             :: !(Maybe [Text])-    , _pLastUpdatedTimestampMillis :: !(Maybe (Textual Int64))-    , _pSmallIconURL               :: !(Maybe Text)-    , _pAuthorName                 :: !(Maybe Text)-    , _pAppTracks                  :: !(Maybe [TrackInfo])-    , _pKind                       :: !Text-    , _pWorkDetailsURL             :: !(Maybe Text)-    , _pRequiresContainerApp       :: !(Maybe Bool)-    , _pCategory                   :: !(Maybe Text)-    , _pAppVersion                 :: !(Maybe [AppVersion])-    , _pProductPricing             :: !(Maybe Text)-    , _pDistributionChannel        :: !(Maybe Text)-    , _pMinAndroidSdkVersion       :: !(Maybe (Textual Int32))-    , _pAvailableCountries         :: !(Maybe [Text])-    , _pAvailableTracks            :: !(Maybe [Text])-    , _pIconURL                    :: !(Maybe Text)-    , _pPermissions                :: !(Maybe [ProductPermission])-    , _pTitle                      :: !(Maybe Text)-    , _pSigningCertificate         :: !(Maybe ProductSigningCertificate)-    , _pContentRating              :: !(Maybe Text)-    , _pProductId                  :: !(Maybe Text)-    , _pRecentChanges              :: !(Maybe Text)-    , _pDescription                :: !(Maybe Text)-    , _pDetailsURL                 :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Product' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pScreenshotURLs'------ * 'pLastUpdatedTimestampMillis'------ * 'pSmallIconURL'------ * 'pAuthorName'------ * 'pAppTracks'------ * 'pKind'------ * 'pWorkDetailsURL'------ * 'pRequiresContainerApp'------ * 'pCategory'------ * 'pAppVersion'------ * 'pProductPricing'------ * 'pDistributionChannel'------ * 'pMinAndroidSdkVersion'------ * 'pAvailableCountries'------ * 'pAvailableTracks'------ * 'pIconURL'------ * 'pPermissions'------ * 'pTitle'------ * 'pSigningCertificate'------ * 'pContentRating'------ * 'pProductId'------ * 'pRecentChanges'------ * 'pDescription'------ * 'pDetailsURL'-product-    :: Product-product =-    Product'-    { _pScreenshotURLs = Nothing-    , _pLastUpdatedTimestampMillis = Nothing-    , _pSmallIconURL = Nothing-    , _pAuthorName = Nothing-    , _pAppTracks = Nothing-    , _pKind = "androidenterprise#product"-    , _pWorkDetailsURL = Nothing-    , _pRequiresContainerApp = Nothing-    , _pCategory = Nothing-    , _pAppVersion = Nothing-    , _pProductPricing = Nothing-    , _pDistributionChannel = Nothing-    , _pMinAndroidSdkVersion = Nothing-    , _pAvailableCountries = Nothing-    , _pAvailableTracks = Nothing-    , _pIconURL = Nothing-    , _pPermissions = Nothing-    , _pTitle = Nothing-    , _pSigningCertificate = Nothing-    , _pContentRating = Nothing-    , _pProductId = Nothing-    , _pRecentChanges = Nothing-    , _pDescription = Nothing-    , _pDetailsURL = Nothing-    }---- | A list of screenshot links representing the app.-pScreenshotURLs :: Lens' Product [Text]-pScreenshotURLs-  = lens _pScreenshotURLs-      (\ s a -> s{_pScreenshotURLs = a})-      . _Default-      . _Coerce---- | The approximate time (within 7 days) the app was last published,--- expressed in milliseconds since epoch.-pLastUpdatedTimestampMillis :: Lens' Product (Maybe Int64)-pLastUpdatedTimestampMillis-  = lens _pLastUpdatedTimestampMillis-      (\ s a -> s{_pLastUpdatedTimestampMillis = a})-      . mapping _Coerce---- | A link to a smaller image that can be used as an icon for the product.--- This image is suitable for use at up to 128px x 128px.-pSmallIconURL :: Lens' Product (Maybe Text)-pSmallIconURL-  = lens _pSmallIconURL-      (\ s a -> s{_pSmallIconURL = a})---- | The name of the author of the product (for example, the app developer).-pAuthorName :: Lens' Product (Maybe Text)-pAuthorName-  = lens _pAuthorName (\ s a -> s{_pAuthorName = a})---- | The tracks visible to the enterprise.-pAppTracks :: Lens' Product [TrackInfo]-pAppTracks-  = lens _pAppTracks (\ s a -> s{_pAppTracks = a}) .-      _Default-      . _Coerce---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#product\".-pKind :: Lens' Product Text-pKind = lens _pKind (\ s a -> s{_pKind = a})---- | A link to the managed Google Play details page for the product, for use--- by an Enterprise admin.-pWorkDetailsURL :: Lens' Product (Maybe Text)-pWorkDetailsURL-  = lens _pWorkDetailsURL-      (\ s a -> s{_pWorkDetailsURL = a})---- | Deprecated.-pRequiresContainerApp :: Lens' Product (Maybe Bool)-pRequiresContainerApp-  = lens _pRequiresContainerApp-      (\ s a -> s{_pRequiresContainerApp = a})---- | The app category (e.g. RACING, SOCIAL, etc.)-pCategory :: Lens' Product (Maybe Text)-pCategory-  = lens _pCategory (\ s a -> s{_pCategory = a})---- | App versions currently available for this product.-pAppVersion :: Lens' Product [AppVersion]-pAppVersion-  = lens _pAppVersion (\ s a -> s{_pAppVersion = a}) .-      _Default-      . _Coerce---- | Whether this product is free, free with in-app purchases, or paid. If--- the pricing is unknown, this means the product is not generally--- available anymore (even though it might still be available to people who--- own it).-pProductPricing :: Lens' Product (Maybe Text)-pProductPricing-  = lens _pProductPricing-      (\ s a -> s{_pProductPricing = a})---- | How and to whom the package is made available. The value--- publicGoogleHosted means that the package is available through the Play--- store and not restricted to a specific enterprise. The value--- privateGoogleHosted means that the package is a private app (restricted--- to an enterprise) but hosted by Google. The value privateSelfHosted--- means that the package is a private app (restricted to an enterprise)--- and is privately hosted.-pDistributionChannel :: Lens' Product (Maybe Text)-pDistributionChannel-  = lens _pDistributionChannel-      (\ s a -> s{_pDistributionChannel = a})---- | The minimum Android SDK necessary to run the app.-pMinAndroidSdkVersion :: Lens' Product (Maybe Int32)-pMinAndroidSdkVersion-  = lens _pMinAndroidSdkVersion-      (\ s a -> s{_pMinAndroidSdkVersion = a})-      . mapping _Coerce---- | The countries which this app is available in.-pAvailableCountries :: Lens' Product [Text]-pAvailableCountries-  = lens _pAvailableCountries-      (\ s a -> s{_pAvailableCountries = a})-      . _Default-      . _Coerce---- | Deprecated, use appTracks instead.-pAvailableTracks :: Lens' Product [Text]-pAvailableTracks-  = lens _pAvailableTracks-      (\ s a -> s{_pAvailableTracks = a})-      . _Default-      . _Coerce---- | A link to an image that can be used as an icon for the product. This--- image is suitable for use at up to 512px x 512px.-pIconURL :: Lens' Product (Maybe Text)-pIconURL = lens _pIconURL (\ s a -> s{_pIconURL = a})---- | A list of permissions required by the app.-pPermissions :: Lens' Product [ProductPermission]-pPermissions-  = lens _pPermissions (\ s a -> s{_pPermissions = a})-      . _Default-      . _Coerce---- | The name of the product.-pTitle :: Lens' Product (Maybe Text)-pTitle = lens _pTitle (\ s a -> s{_pTitle = a})---- | The certificate used to sign this product.-pSigningCertificate :: Lens' Product (Maybe ProductSigningCertificate)-pSigningCertificate-  = lens _pSigningCertificate-      (\ s a -> s{_pSigningCertificate = a})---- | The content rating for this app.-pContentRating :: Lens' Product (Maybe Text)-pContentRating-  = lens _pContentRating-      (\ s a -> s{_pContentRating = a})---- | A string of the form app:. For example, app:com.google.android.gm--- represents the Gmail app.-pProductId :: Lens' Product (Maybe Text)-pProductId-  = lens _pProductId (\ s a -> s{_pProductId = a})---- | A description of the recent changes made to the app.-pRecentChanges :: Lens' Product (Maybe Text)-pRecentChanges-  = lens _pRecentChanges-      (\ s a -> s{_pRecentChanges = a})---- | The localized promotional description, if available.-pDescription :: Lens' Product (Maybe Text)-pDescription-  = lens _pDescription (\ s a -> s{_pDescription = a})---- | A link to the (consumer) Google Play details page for the product.-pDetailsURL :: Lens' Product (Maybe Text)-pDetailsURL-  = lens _pDetailsURL (\ s a -> s{_pDetailsURL = a})--instance FromJSON Product where-        parseJSON-          = withObject "Product"-              (\ o ->-                 Product' <$>-                   (o .:? "screenshotUrls" .!= mempty) <*>-                     (o .:? "lastUpdatedTimestampMillis")-                     <*> (o .:? "smallIconUrl")-                     <*> (o .:? "authorName")-                     <*> (o .:? "appTracks" .!= mempty)-                     <*> (o .:? "kind" .!= "androidenterprise#product")-                     <*> (o .:? "workDetailsUrl")-                     <*> (o .:? "requiresContainerApp")-                     <*> (o .:? "category")-                     <*> (o .:? "appVersion" .!= mempty)-                     <*> (o .:? "productPricing")-                     <*> (o .:? "distributionChannel")-                     <*> (o .:? "minAndroidSdkVersion")-                     <*> (o .:? "availableCountries" .!= mempty)-                     <*> (o .:? "availableTracks" .!= mempty)-                     <*> (o .:? "iconUrl")-                     <*> (o .:? "permissions" .!= mempty)-                     <*> (o .:? "title")-                     <*> (o .:? "signingCertificate")-                     <*> (o .:? "contentRating")-                     <*> (o .:? "productId")-                     <*> (o .:? "recentChanges")-                     <*> (o .:? "description")-                     <*> (o .:? "detailsUrl"))--instance ToJSON Product where-        toJSON Product'{..}-          = object-              (catMaybes-                 [("screenshotUrls" .=) <$> _pScreenshotURLs,-                  ("lastUpdatedTimestampMillis" .=) <$>-                    _pLastUpdatedTimestampMillis,-                  ("smallIconUrl" .=) <$> _pSmallIconURL,-                  ("authorName" .=) <$> _pAuthorName,-                  ("appTracks" .=) <$> _pAppTracks,-                  Just ("kind" .= _pKind),-                  ("workDetailsUrl" .=) <$> _pWorkDetailsURL,-                  ("requiresContainerApp" .=) <$>-                    _pRequiresContainerApp,-                  ("category" .=) <$> _pCategory,-                  ("appVersion" .=) <$> _pAppVersion,-                  ("productPricing" .=) <$> _pProductPricing,-                  ("distributionChannel" .=) <$> _pDistributionChannel,-                  ("minAndroidSdkVersion" .=) <$>-                    _pMinAndroidSdkVersion,-                  ("availableCountries" .=) <$> _pAvailableCountries,-                  ("availableTracks" .=) <$> _pAvailableTracks,-                  ("iconUrl" .=) <$> _pIconURL,-                  ("permissions" .=) <$> _pPermissions,-                  ("title" .=) <$> _pTitle,-                  ("signingCertificate" .=) <$> _pSigningCertificate,-                  ("contentRating" .=) <$> _pContentRating,-                  ("productId" .=) <$> _pProductId,-                  ("recentChanges" .=) <$> _pRecentChanges,-                  ("description" .=) <$> _pDescription,-                  ("detailsUrl" .=) <$> _pDetailsURL])---- | The entitlement resources for the user.------ /See:/ 'entitlementsListResponse' smart constructor.-data EntitlementsListResponse = EntitlementsListResponse'-    { _entKind        :: !Text-    , _entEntitlement :: !(Maybe [Entitlement])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'EntitlementsListResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'entKind'------ * 'entEntitlement'-entitlementsListResponse-    :: EntitlementsListResponse-entitlementsListResponse =-    EntitlementsListResponse'-    { _entKind = "androidenterprise#entitlementsListResponse"-    , _entEntitlement = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#entitlementsListResponse\".-entKind :: Lens' EntitlementsListResponse Text-entKind = lens _entKind (\ s a -> s{_entKind = a})---- | An entitlement of a user to a product (e.g. an app). For example, a free--- app that they have installed, or a paid app that they have been--- allocated a license to.-entEntitlement :: Lens' EntitlementsListResponse [Entitlement]-entEntitlement-  = lens _entEntitlement-      (\ s a -> s{_entEntitlement = a})-      . _Default-      . _Coerce--instance FromJSON EntitlementsListResponse where-        parseJSON-          = withObject "EntitlementsListResponse"-              (\ o ->-                 EntitlementsListResponse' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#entitlementsListResponse")-                     <*> (o .:? "entitlement" .!= mempty))--instance ToJSON EntitlementsListResponse where-        toJSON EntitlementsListResponse'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _entKind),-                  ("entitlement" .=) <$> _entEntitlement])---- | Information about the permissions required by a specific app and whether--- they have been accepted by the enterprise.------ /See:/ 'productPermissions' smart constructor.-data ProductPermissions = ProductPermissions'-    { _ppsKind       :: !Text-    , _ppsPermission :: !(Maybe [ProductPermission])-    , _ppsProductId  :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ProductPermissions' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ppsKind'------ * 'ppsPermission'------ * 'ppsProductId'-productPermissions-    :: ProductPermissions-productPermissions =-    ProductPermissions'-    { _ppsKind = "androidenterprise#productPermissions"-    , _ppsPermission = Nothing-    , _ppsProductId = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#productPermissions\".-ppsKind :: Lens' ProductPermissions Text-ppsKind = lens _ppsKind (\ s a -> s{_ppsKind = a})---- | The permissions required by the app.-ppsPermission :: Lens' ProductPermissions [ProductPermission]-ppsPermission-  = lens _ppsPermission-      (\ s a -> s{_ppsPermission = a})-      . _Default-      . _Coerce---- | The ID of the app that the permissions relate to, e.g.--- \"app:com.google.android.gm\".-ppsProductId :: Lens' ProductPermissions (Maybe Text)-ppsProductId-  = lens _ppsProductId (\ s a -> s{_ppsProductId = a})--instance FromJSON ProductPermissions where-        parseJSON-          = withObject "ProductPermissions"-              (\ o ->-                 ProductPermissions' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#productPermissions")-                     <*> (o .:? "permission" .!= mempty)-                     <*> (o .:? "productId"))--instance ToJSON ProductPermissions where-        toJSON ProductPermissions'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _ppsKind),-                  ("permission" .=) <$> _ppsPermission,-                  ("productId" .=) <$> _ppsProductId])---- | A Permissions resource represents some extra capability, to be granted--- to an Android app, which requires explicit consent. An enterprise admin--- must consent to these permissions on behalf of their users before an--- entitlement for the app can be created. The permissions collection is--- read-only. The information provided for each permission (localized name--- and description) is intended to be used in the MDM user interface when--- obtaining consent from the enterprise.------ /See:/ 'permission' smart constructor.-data Permission = Permission'-    { _perKind         :: !Text-    , _perName         :: !(Maybe Text)-    , _perDescription  :: !(Maybe Text)-    , _perPermissionId :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Permission' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'perKind'------ * 'perName'------ * 'perDescription'------ * 'perPermissionId'-permission-    :: Permission-permission =-    Permission'-    { _perKind = "androidenterprise#permission"-    , _perName = Nothing-    , _perDescription = Nothing-    , _perPermissionId = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#permission\".-perKind :: Lens' Permission Text-perKind = lens _perKind (\ s a -> s{_perKind = a})---- | The name of the permission.-perName :: Lens' Permission (Maybe Text)-perName = lens _perName (\ s a -> s{_perName = a})---- | A longer description of the Permissions resource, giving more details of--- what it affects.-perDescription :: Lens' Permission (Maybe Text)-perDescription-  = lens _perDescription-      (\ s a -> s{_perDescription = a})---- | An opaque string uniquely identifying the permission.-perPermissionId :: Lens' Permission (Maybe Text)-perPermissionId-  = lens _perPermissionId-      (\ s a -> s{_perPermissionId = a})--instance FromJSON Permission where-        parseJSON-          = withObject "Permission"-              (\ o ->-                 Permission' <$>-                   (o .:? "kind" .!= "androidenterprise#permission") <*>-                     (o .:? "name")-                     <*> (o .:? "description")-                     <*> (o .:? "permissionId"))--instance ToJSON Permission where-        toJSON Permission'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _perKind), ("name" .=) <$> _perName,-                  ("description" .=) <$> _perDescription,-                  ("permissionId" .=) <$> _perPermissionId])---- | The web app details for an enterprise.------ /See:/ 'webAppsListResponse' smart constructor.-data WebAppsListResponse = WebAppsListResponse'-    { _walrKind   :: !Text-    , _walrWebApp :: !(Maybe [WebApp])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'WebAppsListResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'walrKind'------ * 'walrWebApp'-webAppsListResponse-    :: WebAppsListResponse-webAppsListResponse =-    WebAppsListResponse'-    { _walrKind = "androidenterprise#webAppsListResponse"-    , _walrWebApp = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#webAppsListResponse\".-walrKind :: Lens' WebAppsListResponse Text-walrKind = lens _walrKind (\ s a -> s{_walrKind = a})---- | The manifest describing a web app.-walrWebApp :: Lens' WebAppsListResponse [WebApp]-walrWebApp-  = lens _walrWebApp (\ s a -> s{_walrWebApp = a}) .-      _Default-      . _Coerce--instance FromJSON WebAppsListResponse where-        parseJSON-          = withObject "WebAppsListResponse"-              (\ o ->-                 WebAppsListResponse' <$>-                   (o .:? "kind" .!=-                      "androidenterprise#webAppsListResponse")-                     <*> (o .:? "webApp" .!= mempty))--instance ToJSON WebAppsListResponse where-        toJSON WebAppsListResponse'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _walrKind),-                  ("webApp" .=) <$> _walrWebApp])------- /See:/ 'productsApproveRequest' smart constructor.-data ProductsApproveRequest = ProductsApproveRequest'-    { _parApprovalURLInfo     :: !(Maybe ApprovalURLInfo)-    , _parApprovedPermissions :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ProductsApproveRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'parApprovalURLInfo'------ * 'parApprovedPermissions'-productsApproveRequest-    :: ProductsApproveRequest-productsApproveRequest =-    ProductsApproveRequest'-    { _parApprovalURLInfo = Nothing-    , _parApprovedPermissions = Nothing-    }---- | The approval URL that was shown to the user. Only the permissions shown--- to the user with that URL will be accepted, which may not be the--- product\'s entire set of permissions. For example, the URL may only--- display new permissions from an update after the product was approved,--- or not include new permissions if the product was updated since the URL--- was generated.-parApprovalURLInfo :: Lens' ProductsApproveRequest (Maybe ApprovalURLInfo)-parApprovalURLInfo-  = lens _parApprovalURLInfo-      (\ s a -> s{_parApprovalURLInfo = a})---- | Sets how new permission requests for the product are handled.--- \"allPermissions\" automatically approves all current and future--- permissions for the product. \"currentPermissionsOnly\" approves the--- current set of permissions for the product, but any future permissions--- added through updates will require manual reapproval. If not specified,--- only the current set of permissions will be approved.-parApprovedPermissions :: Lens' ProductsApproveRequest (Maybe Text)-parApprovedPermissions-  = lens _parApprovedPermissions-      (\ s a -> s{_parApprovedPermissions = a})--instance FromJSON ProductsApproveRequest where-        parseJSON-          = withObject "ProductsApproveRequest"-              (\ o ->-                 ProductsApproveRequest' <$>-                   (o .:? "approvalUrlInfo") <*>-                     (o .:? "approvedPermissions"))--instance ToJSON ProductsApproveRequest where-        toJSON ProductsApproveRequest'{..}-          = object-              (catMaybes-                 [("approvalUrlInfo" .=) <$> _parApprovalURLInfo,-                  ("approvedPermissions" .=) <$>-                    _parApprovedPermissions])------- /See:/ 'autoInstallPolicy' smart constructor.-data AutoInstallPolicy = AutoInstallPolicy'-    { _aipAutoInstallConstraint :: !(Maybe [AutoInstallConstraint])-    , _aipAutoInstallPriority   :: !(Maybe (Textual Int32))-    , _aipAutoInstallMode       :: !(Maybe Text)-    , _aipMinimumVersionCode    :: !(Maybe (Textual Int32))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'AutoInstallPolicy' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aipAutoInstallConstraint'------ * 'aipAutoInstallPriority'------ * 'aipAutoInstallMode'------ * 'aipMinimumVersionCode'-autoInstallPolicy-    :: AutoInstallPolicy-autoInstallPolicy =-    AutoInstallPolicy'-    { _aipAutoInstallConstraint = Nothing-    , _aipAutoInstallPriority = Nothing-    , _aipAutoInstallMode = Nothing-    , _aipMinimumVersionCode = Nothing-    }---- | The constraints for the install. Currently there can be at most one--- constraint.-aipAutoInstallConstraint :: Lens' AutoInstallPolicy [AutoInstallConstraint]-aipAutoInstallConstraint-  = lens _aipAutoInstallConstraint-      (\ s a -> s{_aipAutoInstallConstraint = a})-      . _Default-      . _Coerce---- | The priority of the install, as an unsigned integer. Lower number means--- higher priority.-aipAutoInstallPriority :: Lens' AutoInstallPolicy (Maybe Int32)-aipAutoInstallPriority-  = lens _aipAutoInstallPriority-      (\ s a -> s{_aipAutoInstallPriority = a})-      . mapping _Coerce---- | The auto install mode. If unset defaults to AVAILABLE.-aipAutoInstallMode :: Lens' AutoInstallPolicy (Maybe Text)-aipAutoInstallMode-  = lens _aipAutoInstallMode-      (\ s a -> s{_aipAutoInstallMode = a})---- | The minimum version of the app. If a lower version of the app is--- installed then the app will be auto-updated according to the--- auto-install constraints, instead of waiting for the regular--- auto-update.-aipMinimumVersionCode :: Lens' AutoInstallPolicy (Maybe Int32)-aipMinimumVersionCode-  = lens _aipMinimumVersionCode-      (\ s a -> s{_aipMinimumVersionCode = a})-      . mapping _Coerce--instance FromJSON AutoInstallPolicy where-        parseJSON-          = withObject "AutoInstallPolicy"-              (\ o ->-                 AutoInstallPolicy' <$>-                   (o .:? "autoInstallConstraint" .!= mempty) <*>-                     (o .:? "autoInstallPriority")-                     <*> (o .:? "autoInstallMode")-                     <*> (o .:? "minimumVersionCode"))--instance ToJSON AutoInstallPolicy where-        toJSON AutoInstallPolicy'{..}-          = object-              (catMaybes-                 [("autoInstallConstraint" .=) <$>-                    _aipAutoInstallConstraint,-                  ("autoInstallPriority" .=) <$>-                    _aipAutoInstallPriority,-                  ("autoInstallMode" .=) <$> _aipAutoInstallMode,-                  ("minimumVersionCode" .=) <$>-                    _aipMinimumVersionCode])---- | The presence of an Entitlements resource indicates that a user has the--- right to use a particular app. Entitlements are user specific, not--- device specific. This allows a user with an entitlement to an app to--- install the app on all their devices. It\'s also possible for a user to--- hold an entitlement to an app without installing the app on any device.--- The API can be used to create an entitlement. As an option, you can also--- use the API to trigger the installation of an app on all a user\'s--- managed devices at the same time the entitlement is created. If the app--- is free, creating the entitlement also creates a group license for that--- app. For paid apps, creating the entitlement consumes one license, and--- that license remains consumed until the entitlement is removed. If the--- enterprise hasn\'t purchased enough licenses, then no entitlement is--- created and the installation fails. An entitlement is also not created--- for an app if the app requires permissions that the enterprise hasn\'t--- accepted. If an entitlement is deleted, the app may be uninstalled from--- a user\'s device. As a best practice, uninstall the app by calling--- Installs.delete() before deleting the entitlement. Entitlements for apps--- that a user pays for on an unmanaged profile have \"userPurchase\" as--- the entitlement reason. These entitlements cannot be removed via the--- API.------ /See:/ 'entitlement' smart constructor.-data Entitlement = Entitlement'-    { _eeKind      :: !Text-    , _eeReason    :: !(Maybe Text)-    , _eeProductId :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Entitlement' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eeKind'------ * 'eeReason'------ * 'eeProductId'-entitlement-    :: Entitlement-entitlement =-    Entitlement'-    { _eeKind = "androidenterprise#entitlement"-    , _eeReason = Nothing-    , _eeProductId = Nothing-    }---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#entitlement\".-eeKind :: Lens' Entitlement Text-eeKind = lens _eeKind (\ s a -> s{_eeKind = a})---- | The reason for the entitlement. For example, \"free\" for free apps.--- This property is temporary: it will be replaced by the acquisition kind--- field of group licenses.-eeReason :: Lens' Entitlement (Maybe Text)-eeReason = lens _eeReason (\ s a -> s{_eeReason = a})---- | The ID of the product that the entitlement is for. For example,--- \"app:com.google.android.gm\".-eeProductId :: Lens' Entitlement (Maybe Text)-eeProductId-  = lens _eeProductId (\ s a -> s{_eeProductId = a})--instance FromJSON Entitlement where-        parseJSON-          = withObject "Entitlement"-              (\ o ->-                 Entitlement' <$>-                   (o .:? "kind" .!= "androidenterprise#entitlement")-                     <*> (o .:? "reason")-                     <*> (o .:? "productId"))--instance ToJSON Entitlement where-        toJSON Entitlement'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _eeKind),-                  ("reason" .=) <$> _eeReason,-                  ("productId" .=) <$> _eeProductId])---- | The matching products.------ /See:/ 'productsListResponse' smart constructor.-data ProductsListResponse = ProductsListResponse'-    { _plrTokenPagination :: !(Maybe TokenPagination)-    , _plrPageInfo        :: !(Maybe PageInfo)-    , _plrKind            :: !Text-    , _plrProduct         :: !(Maybe [Product])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ProductsListResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'plrTokenPagination'------ * 'plrPageInfo'------ * 'plrKind'------ * 'plrProduct'-productsListResponse-    :: ProductsListResponse-productsListResponse =-    ProductsListResponse'-    { _plrTokenPagination = Nothing-    , _plrPageInfo = Nothing-    , _plrKind = "androidenterprise#productsListResponse"-    , _plrProduct = Nothing-    }---- | Pagination information for token pagination.-plrTokenPagination :: Lens' ProductsListResponse (Maybe TokenPagination)-plrTokenPagination-  = lens _plrTokenPagination-      (\ s a -> s{_plrTokenPagination = a})---- | General pagination information.-plrPageInfo :: Lens' ProductsListResponse (Maybe PageInfo)-plrPageInfo-  = lens _plrPageInfo (\ s a -> s{_plrPageInfo = a})---- | Identifies what kind of resource this is. Value: the fixed string--- \"androidenterprise#productsListResponse\".-plrKind :: Lens' ProductsListResponse Text-plrKind = lens _plrKind (\ s a -> s{_plrKind = a})---- | Information about a product (e.g. an app) in the Google Play store, for--- display to an enterprise admin.-plrProduct :: Lens' ProductsListResponse [Product]-plrProduct-  = lens _plrProduct (\ s a -> s{_plrProduct = a}) .-      _Default-      . _Coerce--instance FromJSON ProductsListResponse where-        parseJSON-          = withObject "ProductsListResponse"-              (\ o ->-                 ProductsListResponse' <$>-                   (o .:? "tokenPagination") <*> (o .:? "pageInfo") <*>-                     (o .:? "kind" .!=-                        "androidenterprise#productsListResponse")-                     <*> (o .:? "product" .!= mempty))--instance ToJSON ProductsListResponse where-        toJSON ProductsListResponse'{..}-          = object-              (catMaybes-                 [("tokenPagination" .=) <$> _plrTokenPagination,-                  ("pageInfo" .=) <$> _plrPageInfo,-                  Just ("kind" .= _plrKind),-                  ("product" .=) <$> _plrProduct])---- | WebApp resource info.------ /See:/ 'webApp' smart constructor.-data WebApp = WebApp'-    { _waWebAppId    :: !(Maybe Text)-    , _waVersionCode :: !(Maybe (Textual Int64))-    , _waIcons       :: !(Maybe [WebAppIcon])-    , _waStartURL    :: !(Maybe Text)-    , _waDisplayMode :: !(Maybe Text)-    , _waIsPublished :: !(Maybe Bool)-    , _waTitle       :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'WebApp' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'waWebAppId'------ * 'waVersionCode'------ * 'waIcons'------ * 'waStartURL'------ * 'waDisplayMode'------ * 'waIsPublished'------ * 'waTitle'-webApp-    :: WebApp-webApp =-    WebApp'-    { _waWebAppId = Nothing-    , _waVersionCode = Nothing-    , _waIcons = Nothing-    , _waStartURL = Nothing-    , _waDisplayMode = Nothing-    , _waIsPublished = Nothing-    , _waTitle = Nothing-    }---- | The ID of the application.-waWebAppId :: Lens' WebApp (Maybe Text)-waWebAppId-  = lens _waWebAppId (\ s a -> s{_waWebAppId = a})---- | The current version of the app. Note that the version can automatically--- increase during the lifetime of the web app, while Google does internal--- housekeeping to keep the web app up-to-date.-waVersionCode :: Lens' WebApp (Maybe Int64)-waVersionCode-  = lens _waVersionCode-      (\ s a -> s{_waVersionCode = a})-      . mapping _Coerce---- | A list of icons representing this website. Must have at least one--- element.-waIcons :: Lens' WebApp [WebAppIcon]-waIcons-  = lens _waIcons (\ s a -> s{_waIcons = a}) . _Default-      . _Coerce---- | The start URL, i.e. the URL that should load when the user opens the--- application.-waStartURL :: Lens' WebApp (Maybe Text)-waStartURL-  = lens _waStartURL (\ s a -> s{_waStartURL = a})---- | The display mode of the web app.-waDisplayMode :: Lens' WebApp (Maybe Text)-waDisplayMode-  = lens _waDisplayMode-      (\ s a -> s{_waDisplayMode = a})---- | A flag whether the app has been published to the Play store yet.-waIsPublished :: Lens' WebApp (Maybe Bool)-waIsPublished-  = lens _waIsPublished-      (\ s a -> s{_waIsPublished = a})---- | The title of the web application as displayed to the user (e.g., amongst--- a list of other applications, or as a label for an icon).+data GroupLicense =+  GroupLicense'+    { _glKind            :: !Text+    , _glNumProvisioned  :: !(Maybe (Textual Int32))+    , _glNumPurchased    :: !(Maybe (Textual Int32))+    , _glApproval        :: !(Maybe Text)+    , _glPermissions     :: !(Maybe Text)+    , _glProductId       :: !(Maybe Text)+    , _glAcquisitionKind :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GroupLicense' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'glKind'+--+-- * 'glNumProvisioned'+--+-- * 'glNumPurchased'+--+-- * 'glApproval'+--+-- * 'glPermissions'+--+-- * 'glProductId'+--+-- * 'glAcquisitionKind'+groupLicense+    :: GroupLicense+groupLicense =+  GroupLicense'+    { _glKind = "androidenterprise#groupLicense"+    , _glNumProvisioned = Nothing+    , _glNumPurchased = Nothing+    , _glApproval = Nothing+    , _glPermissions = Nothing+    , _glProductId = Nothing+    , _glAcquisitionKind = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#groupLicense\".+glKind :: Lens' GroupLicense Text+glKind = lens _glKind (\ s a -> s{_glKind = a})++-- | The total number of provisioned licenses for this product. Returned by+-- read operations, but ignored in write operations.+glNumProvisioned :: Lens' GroupLicense (Maybe Int32)+glNumProvisioned+  = lens _glNumProvisioned+      (\ s a -> s{_glNumProvisioned = a})+      . mapping _Coerce++-- | The number of purchased licenses (possibly in multiple purchases). If+-- this field is omitted, then there is no limit on the number of licenses+-- that can be provisioned (for example, if the acquisition kind is+-- \"free\").+glNumPurchased :: Lens' GroupLicense (Maybe Int32)+glNumPurchased+  = lens _glNumPurchased+      (\ s a -> s{_glNumPurchased = a})+      . mapping _Coerce++-- | Whether the product to which this group license relates is currently+-- approved by the enterprise. Products are approved when a group license+-- is first created, but this approval may be revoked by an enterprise+-- admin via Google Play. Unapproved products will not be visible to end+-- users in collections, and new entitlements to them should not normally+-- be created.+glApproval :: Lens' GroupLicense (Maybe Text)+glApproval+  = lens _glApproval (\ s a -> s{_glApproval = a})++-- | The permission approval status of the product. This field is only set if+-- the product is approved. Possible states are: - \"currentApproved\", the+-- current set of permissions is approved, but additional permissions will+-- require the administrator to reapprove the product (If the product was+-- approved without specifying the approved permissions setting, then this+-- is the default behavior.), - \"needsReapproval\", the product has+-- unapproved permissions. No additional product licenses can be assigned+-- until the product is reapproved, - \"allCurrentAndFutureApproved\", the+-- current permissions are approved and any future permission updates will+-- be automatically approved without administrator review.+glPermissions :: Lens' GroupLicense (Maybe Text)+glPermissions+  = lens _glPermissions+      (\ s a -> s{_glPermissions = a})++-- | The ID of the product that the license is for. For example,+-- \"app:com.google.android.gm\".+glProductId :: Lens' GroupLicense (Maybe Text)+glProductId+  = lens _glProductId (\ s a -> s{_glProductId = a})++-- | How this group license was acquired. \"bulkPurchase\" means that this+-- Grouplicenses resource was created because the enterprise purchased+-- licenses for this product; otherwise, the value is \"free\" (for free+-- products).+glAcquisitionKind :: Lens' GroupLicense (Maybe Text)+glAcquisitionKind+  = lens _glAcquisitionKind+      (\ s a -> s{_glAcquisitionKind = a})++instance FromJSON GroupLicense where+        parseJSON+          = withObject "GroupLicense"+              (\ o ->+                 GroupLicense' <$>+                   (o .:? "kind" .!= "androidenterprise#groupLicense")+                     <*> (o .:? "numProvisioned")+                     <*> (o .:? "numPurchased")+                     <*> (o .:? "approval")+                     <*> (o .:? "permissions")+                     <*> (o .:? "productId")+                     <*> (o .:? "acquisitionKind"))++instance ToJSON GroupLicense where+        toJSON GroupLicense'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _glKind),+                  ("numProvisioned" .=) <$> _glNumProvisioned,+                  ("numPurchased" .=) <$> _glNumPurchased,+                  ("approval" .=) <$> _glApproval,+                  ("permissions" .=) <$> _glPermissions,+                  ("productId" .=) <$> _glProductId,+                  ("acquisitionKind" .=) <$> _glAcquisitionKind])++-- | The store page resources for the enterprise.+--+-- /See:/ 'storeLayoutPagesListResponse' smart constructor.+data StoreLayoutPagesListResponse =+  StoreLayoutPagesListResponse'+    { _slplrKind :: !Text+    , _slplrPage :: !(Maybe [StorePage])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'StoreLayoutPagesListResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'slplrKind'+--+-- * 'slplrPage'+storeLayoutPagesListResponse+    :: StoreLayoutPagesListResponse+storeLayoutPagesListResponse =+  StoreLayoutPagesListResponse'+    { _slplrKind = "androidenterprise#storeLayoutPagesListResponse"+    , _slplrPage = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#storeLayoutPagesListResponse\".+slplrKind :: Lens' StoreLayoutPagesListResponse Text+slplrKind+  = lens _slplrKind (\ s a -> s{_slplrKind = a})++-- | A store page of an enterprise.+slplrPage :: Lens' StoreLayoutPagesListResponse [StorePage]+slplrPage+  = lens _slplrPage (\ s a -> s{_slplrPage = a}) .+      _Default+      . _Coerce++instance FromJSON StoreLayoutPagesListResponse where+        parseJSON+          = withObject "StoreLayoutPagesListResponse"+              (\ o ->+                 StoreLayoutPagesListResponse' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#storeLayoutPagesListResponse")+                     <*> (o .:? "page" .!= mempty))++instance ToJSON StoreLayoutPagesListResponse where+        toJSON StoreLayoutPagesListResponse'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _slplrKind),+                  ("page" .=) <$> _slplrPage])++-- | A service account that can be used to authenticate as the enterprise to+-- API calls that require such authentication.+--+-- /See:/ 'enterpriseAccount' smart constructor.+data EnterpriseAccount =+  EnterpriseAccount'+    { _eaKind         :: !Text+    , _eaAccountEmail :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EnterpriseAccount' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eaKind'+--+-- * 'eaAccountEmail'+enterpriseAccount+    :: EnterpriseAccount+enterpriseAccount =+  EnterpriseAccount'+    {_eaKind = "androidenterprise#enterpriseAccount", _eaAccountEmail = Nothing}+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#enterpriseAccount\".+eaKind :: Lens' EnterpriseAccount Text+eaKind = lens _eaKind (\ s a -> s{_eaKind = a})++-- | The email address of the service account.+eaAccountEmail :: Lens' EnterpriseAccount (Maybe Text)+eaAccountEmail+  = lens _eaAccountEmail+      (\ s a -> s{_eaAccountEmail = a})++instance FromJSON EnterpriseAccount where+        parseJSON+          = withObject "EnterpriseAccount"+              (\ o ->+                 EnterpriseAccount' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#enterpriseAccount")+                     <*> (o .:? "accountEmail"))++instance ToJSON EnterpriseAccount where+        toJSON EnterpriseAccount'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _eaKind),+                  ("accountEmail" .=) <$> _eaAccountEmail])++-- | A typed value for the restriction.+--+-- /See:/ 'appRestrictionsSchemaRestrictionRestrictionValue' smart constructor.+data AppRestrictionsSchemaRestrictionRestrictionValue =+  AppRestrictionsSchemaRestrictionRestrictionValue'+    { _arsrrvValueMultiselect :: !(Maybe [Text])+    , _arsrrvValueBool        :: !(Maybe Bool)+    , _arsrrvValueInteger     :: !(Maybe (Textual Int32))+    , _arsrrvType             :: !(Maybe Text)+    , _arsrrvValueString      :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AppRestrictionsSchemaRestrictionRestrictionValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'arsrrvValueMultiselect'+--+-- * 'arsrrvValueBool'+--+-- * 'arsrrvValueInteger'+--+-- * 'arsrrvType'+--+-- * 'arsrrvValueString'+appRestrictionsSchemaRestrictionRestrictionValue+    :: AppRestrictionsSchemaRestrictionRestrictionValue+appRestrictionsSchemaRestrictionRestrictionValue =+  AppRestrictionsSchemaRestrictionRestrictionValue'+    { _arsrrvValueMultiselect = Nothing+    , _arsrrvValueBool = Nothing+    , _arsrrvValueInteger = Nothing+    , _arsrrvType = Nothing+    , _arsrrvValueString = Nothing+    }+++-- | The list of string values - this will only be present if type is+-- multiselect.+arsrrvValueMultiselect :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue [Text]+arsrrvValueMultiselect+  = lens _arsrrvValueMultiselect+      (\ s a -> s{_arsrrvValueMultiselect = a})+      . _Default+      . _Coerce++-- | The boolean value - this will only be present if type is bool.+arsrrvValueBool :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue (Maybe Bool)+arsrrvValueBool+  = lens _arsrrvValueBool+      (\ s a -> s{_arsrrvValueBool = a})++-- | The integer value - this will only be present if type is integer.+arsrrvValueInteger :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue (Maybe Int32)+arsrrvValueInteger+  = lens _arsrrvValueInteger+      (\ s a -> s{_arsrrvValueInteger = a})+      . mapping _Coerce++-- | The type of the value being provided.+arsrrvType :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue (Maybe Text)+arsrrvType+  = lens _arsrrvType (\ s a -> s{_arsrrvType = a})++-- | The string value - this will be present for types string, choice and+-- hidden.+arsrrvValueString :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue (Maybe Text)+arsrrvValueString+  = lens _arsrrvValueString+      (\ s a -> s{_arsrrvValueString = a})++instance FromJSON+           AppRestrictionsSchemaRestrictionRestrictionValue+         where+        parseJSON+          = withObject+              "AppRestrictionsSchemaRestrictionRestrictionValue"+              (\ o ->+                 AppRestrictionsSchemaRestrictionRestrictionValue' <$>+                   (o .:? "valueMultiselect" .!= mempty) <*>+                     (o .:? "valueBool")+                     <*> (o .:? "valueInteger")+                     <*> (o .:? "type")+                     <*> (o .:? "valueString"))++instance ToJSON+           AppRestrictionsSchemaRestrictionRestrictionValue+         where+        toJSON+          AppRestrictionsSchemaRestrictionRestrictionValue'{..}+          = object+              (catMaybes+                 [("valueMultiselect" .=) <$> _arsrrvValueMultiselect,+                  ("valueBool" .=) <$> _arsrrvValueBool,+                  ("valueInteger" .=) <$> _arsrrvValueInteger,+                  ("type" .=) <$> _arsrrvType,+                  ("valueString" .=) <$> _arsrrvValueString])++--+-- /See:/ 'administratorWebTokenSpecPlaySearch' smart constructor.+data AdministratorWebTokenSpecPlaySearch =+  AdministratorWebTokenSpecPlaySearch'+    { _awtspsEnabled     :: !(Maybe Bool)+    , _awtspsApproveApps :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AdministratorWebTokenSpecPlaySearch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'awtspsEnabled'+--+-- * 'awtspsApproveApps'+administratorWebTokenSpecPlaySearch+    :: AdministratorWebTokenSpecPlaySearch+administratorWebTokenSpecPlaySearch =+  AdministratorWebTokenSpecPlaySearch'+    {_awtspsEnabled = Nothing, _awtspsApproveApps = Nothing}+++-- | Whether the managed Play Search apps page is displayed. Default is true.+awtspsEnabled :: Lens' AdministratorWebTokenSpecPlaySearch (Maybe Bool)+awtspsEnabled+  = lens _awtspsEnabled+      (\ s a -> s{_awtspsEnabled = a})++-- | Allow access to the iframe in approve mode. Default is false.+awtspsApproveApps :: Lens' AdministratorWebTokenSpecPlaySearch (Maybe Bool)+awtspsApproveApps+  = lens _awtspsApproveApps+      (\ s a -> s{_awtspsApproveApps = a})++instance FromJSON AdministratorWebTokenSpecPlaySearch+         where+        parseJSON+          = withObject "AdministratorWebTokenSpecPlaySearch"+              (\ o ->+                 AdministratorWebTokenSpecPlaySearch' <$>+                   (o .:? "enabled") <*> (o .:? "approveApps"))++instance ToJSON AdministratorWebTokenSpecPlaySearch+         where+        toJSON AdministratorWebTokenSpecPlaySearch'{..}+          = object+              (catMaybes+                 [("enabled" .=) <$> _awtspsEnabled,+                  ("approveApps" .=) <$> _awtspsApproveApps])++-- | The state of a user\'s device, as accessed by the getState and setState+-- methods on device resources.+--+-- /See:/ 'deviceState' smart constructor.+data DeviceState =+  DeviceState'+    { _dsKind         :: !Text+    , _dsAccountState :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeviceState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsKind'+--+-- * 'dsAccountState'+deviceState+    :: DeviceState+deviceState =+  DeviceState'+    {_dsKind = "androidenterprise#deviceState", _dsAccountState = Nothing}+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#deviceState\".+dsKind :: Lens' DeviceState Text+dsKind = lens _dsKind (\ s a -> s{_dsKind = a})++-- | The state of the Google account on the device. \"enabled\" indicates+-- that the Google account on the device can be used to access Google+-- services (including Google Play), while \"disabled\" means that it+-- cannot. A new device is initially in the \"disabled\" state.+dsAccountState :: Lens' DeviceState (Maybe Text)+dsAccountState+  = lens _dsAccountState+      (\ s a -> s{_dsAccountState = a})++instance FromJSON DeviceState where+        parseJSON+          = withObject "DeviceState"+              (\ o ->+                 DeviceState' <$>+                   (o .:? "kind" .!= "androidenterprise#deviceState")+                     <*> (o .:? "accountState"))++instance ToJSON DeviceState where+        toJSON DeviceState'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _dsKind),+                  ("accountState" .=) <$> _dsAccountState])++-- | The user resources for the group license.+--+-- /See:/ 'groupLicenseUsersListResponse' smart constructor.+data GroupLicenseUsersListResponse =+  GroupLicenseUsersListResponse'+    { _glulrKind :: !Text+    , _glulrUser :: !(Maybe [User])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GroupLicenseUsersListResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'glulrKind'+--+-- * 'glulrUser'+groupLicenseUsersListResponse+    :: GroupLicenseUsersListResponse+groupLicenseUsersListResponse =+  GroupLicenseUsersListResponse'+    { _glulrKind = "androidenterprise#groupLicenseUsersListResponse"+    , _glulrUser = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#groupLicenseUsersListResponse\".+glulrKind :: Lens' GroupLicenseUsersListResponse Text+glulrKind+  = lens _glulrKind (\ s a -> s{_glulrKind = a})++-- | A user of an enterprise.+glulrUser :: Lens' GroupLicenseUsersListResponse [User]+glulrUser+  = lens _glulrUser (\ s a -> s{_glulrUser = a}) .+      _Default+      . _Coerce++instance FromJSON GroupLicenseUsersListResponse where+        parseJSON+          = withObject "GroupLicenseUsersListResponse"+              (\ o ->+                 GroupLicenseUsersListResponse' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#groupLicenseUsersListResponse")+                     <*> (o .:? "user" .!= mempty))++instance ToJSON GroupLicenseUsersListResponse where+        toJSON GroupLicenseUsersListResponse'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _glulrKind),+                  ("user" .=) <$> _glulrUser])++--+-- /See:/ 'tokenPagination' smart constructor.+data TokenPagination =+  TokenPagination'+    { _tpNextPageToken     :: !(Maybe Text)+    , _tpPreviousPageToken :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TokenPagination' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpNextPageToken'+--+-- * 'tpPreviousPageToken'+tokenPagination+    :: TokenPagination+tokenPagination =+  TokenPagination' {_tpNextPageToken = Nothing, _tpPreviousPageToken = Nothing}+++tpNextPageToken :: Lens' TokenPagination (Maybe Text)+tpNextPageToken+  = lens _tpNextPageToken+      (\ s a -> s{_tpNextPageToken = a})++tpPreviousPageToken :: Lens' TokenPagination (Maybe Text)+tpPreviousPageToken+  = lens _tpPreviousPageToken+      (\ s a -> s{_tpPreviousPageToken = a})++instance FromJSON TokenPagination where+        parseJSON+          = withObject "TokenPagination"+              (\ o ->+                 TokenPagination' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "previousPageToken"))++instance ToJSON TokenPagination where+        toJSON TokenPagination'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _tpNextPageToken,+                  ("previousPageToken" .=) <$> _tpPreviousPageToken])++--+-- /See:/ 'administratorWebTokenSpecWebApps' smart constructor.+newtype AdministratorWebTokenSpecWebApps =+  AdministratorWebTokenSpecWebApps'+    { _awtswaEnabled :: Maybe Bool+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AdministratorWebTokenSpecWebApps' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'awtswaEnabled'+administratorWebTokenSpecWebApps+    :: AdministratorWebTokenSpecWebApps+administratorWebTokenSpecWebApps =+  AdministratorWebTokenSpecWebApps' {_awtswaEnabled = Nothing}+++-- | Whether the Web Apps page is displayed. Default is true.+awtswaEnabled :: Lens' AdministratorWebTokenSpecWebApps (Maybe Bool)+awtswaEnabled+  = lens _awtswaEnabled+      (\ s a -> s{_awtswaEnabled = a})++instance FromJSON AdministratorWebTokenSpecWebApps+         where+        parseJSON+          = withObject "AdministratorWebTokenSpecWebApps"+              (\ o ->+                 AdministratorWebTokenSpecWebApps' <$>+                   (o .:? "enabled"))++instance ToJSON AdministratorWebTokenSpecWebApps+         where+        toJSON AdministratorWebTokenSpecWebApps'{..}+          = object+              (catMaybes [("enabled" .=) <$> _awtswaEnabled])++-- | Information on an approval URL.+--+-- /See:/ 'approvalURLInfo' smart constructor.+data ApprovalURLInfo =+  ApprovalURLInfo'+    { _auiApprovalURL :: !(Maybe Text)+    , _auiKind        :: !Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ApprovalURLInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'auiApprovalURL'+--+-- * 'auiKind'+approvalURLInfo+    :: ApprovalURLInfo+approvalURLInfo =+  ApprovalURLInfo'+    {_auiApprovalURL = Nothing, _auiKind = "androidenterprise#approvalUrlInfo"}+++-- | A URL that displays a product\'s permissions and that can also be used+-- to approve the product with the Products.approve call.+auiApprovalURL :: Lens' ApprovalURLInfo (Maybe Text)+auiApprovalURL+  = lens _auiApprovalURL+      (\ s a -> s{_auiApprovalURL = a})++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#approvalUrlInfo\".+auiKind :: Lens' ApprovalURLInfo Text+auiKind = lens _auiKind (\ s a -> s{_auiKind = a})++instance FromJSON ApprovalURLInfo where+        parseJSON+          = withObject "ApprovalURLInfo"+              (\ o ->+                 ApprovalURLInfo' <$>+                   (o .:? "approvalUrl") <*>+                     (o .:? "kind" .!=+                        "androidenterprise#approvalUrlInfo"))++instance ToJSON ApprovalURLInfo where+        toJSON ApprovalURLInfo'{..}+          = object+              (catMaybes+                 [("approvalUrl" .=) <$> _auiApprovalURL,+                  Just ("kind" .= _auiKind)])++-- | The managed configurations settings for a product.+--+-- /See:/ 'managedConfigurationsSettingsListResponse' smart constructor.+data ManagedConfigurationsSettingsListResponse =+  ManagedConfigurationsSettingsListResponse'+    { _mcslrKind                          :: !Text+    , _mcslrManagedConfigurationsSettings :: !(Maybe [ManagedConfigurationsSettings])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ManagedConfigurationsSettingsListResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mcslrKind'+--+-- * 'mcslrManagedConfigurationsSettings'+managedConfigurationsSettingsListResponse+    :: ManagedConfigurationsSettingsListResponse+managedConfigurationsSettingsListResponse =+  ManagedConfigurationsSettingsListResponse'+    { _mcslrKind = "androidenterprise#managedConfigurationsSettingsListResponse"+    , _mcslrManagedConfigurationsSettings = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#managedConfigurationsSettingsListResponse\".+mcslrKind :: Lens' ManagedConfigurationsSettingsListResponse Text+mcslrKind+  = lens _mcslrKind (\ s a -> s{_mcslrKind = a})++-- | A managed configurations settings for an app that may be assigned to a+-- group of users in an enterprise.+mcslrManagedConfigurationsSettings :: Lens' ManagedConfigurationsSettingsListResponse [ManagedConfigurationsSettings]+mcslrManagedConfigurationsSettings+  = lens _mcslrManagedConfigurationsSettings+      (\ s a -> s{_mcslrManagedConfigurationsSettings = a})+      . _Default+      . _Coerce++instance FromJSON+           ManagedConfigurationsSettingsListResponse+         where+        parseJSON+          = withObject+              "ManagedConfigurationsSettingsListResponse"+              (\ o ->+                 ManagedConfigurationsSettingsListResponse' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#managedConfigurationsSettingsListResponse")+                     <*>+                     (o .:? "managedConfigurationsSettings" .!= mempty))++instance ToJSON+           ManagedConfigurationsSettingsListResponse+         where+        toJSON ManagedConfigurationsSettingsListResponse'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _mcslrKind),+                  ("managedConfigurationsSettings" .=) <$>+                    _mcslrManagedConfigurationsSettings])++-- | A managed property of a managed configuration. The property must match+-- one of the properties in the app restrictions schema of the product.+-- Exactly one of the value fields must be populated, and it must match the+-- property\'s type in the app restrictions schema.+--+-- /See:/ 'managedProperty' smart constructor.+data ManagedProperty =+  ManagedProperty'+    { _mpValueStringArray :: !(Maybe [Text])+    , _mpValueBool        :: !(Maybe Bool)+    , _mpKey              :: !(Maybe Text)+    , _mpValueBundle      :: !(Maybe ManagedPropertyBundle)+    , _mpValueInteger     :: !(Maybe (Textual Int32))+    , _mpValueBundleArray :: !(Maybe [ManagedPropertyBundle])+    , _mpValueString      :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ManagedProperty' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mpValueStringArray'+--+-- * 'mpValueBool'+--+-- * 'mpKey'+--+-- * 'mpValueBundle'+--+-- * 'mpValueInteger'+--+-- * 'mpValueBundleArray'+--+-- * 'mpValueString'+managedProperty+    :: ManagedProperty+managedProperty =+  ManagedProperty'+    { _mpValueStringArray = Nothing+    , _mpValueBool = Nothing+    , _mpKey = Nothing+    , _mpValueBundle = Nothing+    , _mpValueInteger = Nothing+    , _mpValueBundleArray = Nothing+    , _mpValueString = Nothing+    }+++-- | The list of string values - this will only be present if type of the+-- property is multiselect.+mpValueStringArray :: Lens' ManagedProperty [Text]+mpValueStringArray+  = lens _mpValueStringArray+      (\ s a -> s{_mpValueStringArray = a})+      . _Default+      . _Coerce++-- | The boolean value - this will only be present if type of the property is+-- bool.+mpValueBool :: Lens' ManagedProperty (Maybe Bool)+mpValueBool+  = lens _mpValueBool (\ s a -> s{_mpValueBool = a})++-- | The unique key that identifies the property.+mpKey :: Lens' ManagedProperty (Maybe Text)+mpKey = lens _mpKey (\ s a -> s{_mpKey = a})++-- | The bundle of managed properties - this will only be present if type of+-- the property is bundle.+mpValueBundle :: Lens' ManagedProperty (Maybe ManagedPropertyBundle)+mpValueBundle+  = lens _mpValueBundle+      (\ s a -> s{_mpValueBundle = a})++-- | The integer value - this will only be present if type of the property is+-- integer.+mpValueInteger :: Lens' ManagedProperty (Maybe Int32)+mpValueInteger+  = lens _mpValueInteger+      (\ s a -> s{_mpValueInteger = a})+      . mapping _Coerce++-- | The list of bundles of properties - this will only be present if type of+-- the property is bundle_array.+mpValueBundleArray :: Lens' ManagedProperty [ManagedPropertyBundle]+mpValueBundleArray+  = lens _mpValueBundleArray+      (\ s a -> s{_mpValueBundleArray = a})+      . _Default+      . _Coerce++-- | The string value - this will only be present if type of the property is+-- string, choice or hidden.+mpValueString :: Lens' ManagedProperty (Maybe Text)+mpValueString+  = lens _mpValueString+      (\ s a -> s{_mpValueString = a})++instance FromJSON ManagedProperty where+        parseJSON+          = withObject "ManagedProperty"+              (\ o ->+                 ManagedProperty' <$>+                   (o .:? "valueStringArray" .!= mempty) <*>+                     (o .:? "valueBool")+                     <*> (o .:? "key")+                     <*> (o .:? "valueBundle")+                     <*> (o .:? "valueInteger")+                     <*> (o .:? "valueBundleArray" .!= mempty)+                     <*> (o .:? "valueString"))++instance ToJSON ManagedProperty where+        toJSON ManagedProperty'{..}+          = object+              (catMaybes+                 [("valueStringArray" .=) <$> _mpValueStringArray,+                  ("valueBool" .=) <$> _mpValueBool,+                  ("key" .=) <$> _mpKey,+                  ("valueBundle" .=) <$> _mpValueBundle,+                  ("valueInteger" .=) <$> _mpValueInteger,+                  ("valueBundleArray" .=) <$> _mpValueBundleArray,+                  ("valueString" .=) <$> _mpValueString])++-- | The store page resources for the enterprise.+--+-- /See:/ 'storeLayoutClustersListResponse' smart constructor.+data StoreLayoutClustersListResponse =+  StoreLayoutClustersListResponse'+    { _slclrCluster :: !(Maybe [StoreCluster])+    , _slclrKind    :: !Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'StoreLayoutClustersListResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'slclrCluster'+--+-- * 'slclrKind'+storeLayoutClustersListResponse+    :: StoreLayoutClustersListResponse+storeLayoutClustersListResponse =+  StoreLayoutClustersListResponse'+    { _slclrCluster = Nothing+    , _slclrKind = "androidenterprise#storeLayoutClustersListResponse"+    }+++-- | A store cluster of an enterprise.+slclrCluster :: Lens' StoreLayoutClustersListResponse [StoreCluster]+slclrCluster+  = lens _slclrCluster (\ s a -> s{_slclrCluster = a})+      . _Default+      . _Coerce++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#storeLayoutClustersListResponse\".+slclrKind :: Lens' StoreLayoutClustersListResponse Text+slclrKind+  = lens _slclrKind (\ s a -> s{_slclrKind = a})++instance FromJSON StoreLayoutClustersListResponse+         where+        parseJSON+          = withObject "StoreLayoutClustersListResponse"+              (\ o ->+                 StoreLayoutClustersListResponse' <$>+                   (o .:? "cluster" .!= mempty) <*>+                     (o .:? "kind" .!=+                        "androidenterprise#storeLayoutClustersListResponse"))++instance ToJSON StoreLayoutClustersListResponse where+        toJSON StoreLayoutClustersListResponse'{..}+          = object+              (catMaybes+                 [("cluster" .=) <$> _slclrCluster,+                  Just ("kind" .= _slclrKind)])++-- | A managed configuration resource contains the set of managed properties+-- defined by the app developer in the app\'s managed configurations+-- schema, as well as any configuration variables defined for the user.+--+-- /See:/ 'managedConfiguration' smart constructor.+data ManagedConfiguration =+  ManagedConfiguration'+    { _mcManagedProperty        :: !(Maybe [ManagedProperty])+    , _mcKind                   :: !Text+    , _mcConfigurationVariables :: !(Maybe ConfigurationVariables)+    , _mcProductId              :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ManagedConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mcManagedProperty'+--+-- * 'mcKind'+--+-- * 'mcConfigurationVariables'+--+-- * 'mcProductId'+managedConfiguration+    :: ManagedConfiguration+managedConfiguration =+  ManagedConfiguration'+    { _mcManagedProperty = Nothing+    , _mcKind = "androidenterprise#managedConfiguration"+    , _mcConfigurationVariables = Nothing+    , _mcProductId = Nothing+    }+++-- | The set of managed properties for this configuration.+mcManagedProperty :: Lens' ManagedConfiguration [ManagedProperty]+mcManagedProperty+  = lens _mcManagedProperty+      (\ s a -> s{_mcManagedProperty = a})+      . _Default+      . _Coerce++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#managedConfiguration\".+mcKind :: Lens' ManagedConfiguration Text+mcKind = lens _mcKind (\ s a -> s{_mcKind = a})++-- | Contains the ID of the managed configuration profile and the set of+-- configuration variables (if any) defined for the user.+mcConfigurationVariables :: Lens' ManagedConfiguration (Maybe ConfigurationVariables)+mcConfigurationVariables+  = lens _mcConfigurationVariables+      (\ s a -> s{_mcConfigurationVariables = a})++-- | The ID of the product that the managed configuration is for, e.g.+-- \"app:com.google.android.gm\".+mcProductId :: Lens' ManagedConfiguration (Maybe Text)+mcProductId+  = lens _mcProductId (\ s a -> s{_mcProductId = a})++instance FromJSON ManagedConfiguration where+        parseJSON+          = withObject "ManagedConfiguration"+              (\ o ->+                 ManagedConfiguration' <$>+                   (o .:? "managedProperty" .!= mempty) <*>+                     (o .:? "kind" .!=+                        "androidenterprise#managedConfiguration")+                     <*> (o .:? "configurationVariables")+                     <*> (o .:? "productId"))++instance ToJSON ManagedConfiguration where+        toJSON ManagedConfiguration'{..}+          = object+              (catMaybes+                 [("managedProperty" .=) <$> _mcManagedProperty,+                  Just ("kind" .= _mcKind),+                  ("configurationVariables" .=) <$>+                    _mcConfigurationVariables,+                  ("productId" .=) <$> _mcProductId])++-- | Definition of a managed Google Play store cluster, a list of products+-- displayed as part of a store page.+--+-- /See:/ 'storeCluster' smart constructor.+data StoreCluster =+  StoreCluster'+    { _scKind        :: !Text+    , _scName        :: !(Maybe [LocalizedText])+    , _scOrderInPage :: !(Maybe Text)+    , _scId          :: !(Maybe Text)+    , _scProductId   :: !(Maybe [Text])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'StoreCluster' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scKind'+--+-- * 'scName'+--+-- * 'scOrderInPage'+--+-- * 'scId'+--+-- * 'scProductId'+storeCluster+    :: StoreCluster+storeCluster =+  StoreCluster'+    { _scKind = "androidenterprise#storeCluster"+    , _scName = Nothing+    , _scOrderInPage = Nothing+    , _scId = Nothing+    , _scProductId = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#storeCluster\".+scKind :: Lens' StoreCluster Text+scKind = lens _scKind (\ s a -> s{_scKind = a})++-- | Ordered list of localized strings giving the name of this page. The text+-- displayed is the one that best matches the user locale, or the first+-- entry if there is no good match. There needs to be at least one entry.+scName :: Lens' StoreCluster [LocalizedText]+scName+  = lens _scName (\ s a -> s{_scName = a}) . _Default .+      _Coerce++-- | String (US-ASCII only) used to determine order of this cluster within+-- the parent page\'s elements. Page elements are sorted in lexicographic+-- order of this field. Duplicated values are allowed, but ordering between+-- elements with duplicate order is undefined. The value of this field is+-- never visible to a user, it is used solely for the purpose of defining+-- an ordering. Maximum length is 256 characters.+scOrderInPage :: Lens' StoreCluster (Maybe Text)+scOrderInPage+  = lens _scOrderInPage+      (\ s a -> s{_scOrderInPage = a})++-- | Unique ID of this cluster. Assigned by the server. Immutable once+-- assigned.+scId :: Lens' StoreCluster (Maybe Text)+scId = lens _scId (\ s a -> s{_scId = a})++-- | List of products in the order they are displayed in the cluster. There+-- should not be duplicates within a cluster.+scProductId :: Lens' StoreCluster [Text]+scProductId+  = lens _scProductId (\ s a -> s{_scProductId = a}) .+      _Default+      . _Coerce++instance FromJSON StoreCluster where+        parseJSON+          = withObject "StoreCluster"+              (\ o ->+                 StoreCluster' <$>+                   (o .:? "kind" .!= "androidenterprise#storeCluster")+                     <*> (o .:? "name" .!= mempty)+                     <*> (o .:? "orderInPage")+                     <*> (o .:? "id")+                     <*> (o .:? "productId" .!= mempty))++instance ToJSON StoreCluster where+        toJSON StoreCluster'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _scKind), ("name" .=) <$> _scName,+                  ("orderInPage" .=) <$> _scOrderInPage,+                  ("id" .=) <$> _scId,+                  ("productId" .=) <$> _scProductId])++-- | Specification for a token used to generate iframes. The token specifies+-- what data the admin is allowed to modify and the URI the iframe is+-- allowed to communiate with.+--+-- /See:/ 'administratorWebTokenSpec' smart constructor.+data AdministratorWebTokenSpec =+  AdministratorWebTokenSpec'+    { _awtsParent                :: !(Maybe Text)+    , _awtsPrivateApps           :: !(Maybe AdministratorWebTokenSpecPrivateApps)+    , _awtsPlaySearch            :: !(Maybe AdministratorWebTokenSpecPlaySearch)+    , _awtsKind                  :: !Text+    , _awtsWebApps               :: !(Maybe AdministratorWebTokenSpecWebApps)+    , _awtsPermission            :: !(Maybe [Text])+    , _awtsStoreBuilder          :: !(Maybe AdministratorWebTokenSpecStoreBuilder)+    , _awtsManagedConfigurations :: !(Maybe AdministratorWebTokenSpecManagedConfigurations)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AdministratorWebTokenSpec' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'awtsParent'+--+-- * 'awtsPrivateApps'+--+-- * 'awtsPlaySearch'+--+-- * 'awtsKind'+--+-- * 'awtsWebApps'+--+-- * 'awtsPermission'+--+-- * 'awtsStoreBuilder'+--+-- * 'awtsManagedConfigurations'+administratorWebTokenSpec+    :: AdministratorWebTokenSpec+administratorWebTokenSpec =+  AdministratorWebTokenSpec'+    { _awtsParent = Nothing+    , _awtsPrivateApps = Nothing+    , _awtsPlaySearch = Nothing+    , _awtsKind = "androidenterprise#administratorWebTokenSpec"+    , _awtsWebApps = Nothing+    , _awtsPermission = Nothing+    , _awtsStoreBuilder = Nothing+    , _awtsManagedConfigurations = Nothing+    }+++-- | The URI of the parent frame hosting the iframe. To prevent XSS, the+-- iframe may not be hosted at other URIs. This URI must be https.+awtsParent :: Lens' AdministratorWebTokenSpec (Maybe Text)+awtsParent+  = lens _awtsParent (\ s a -> s{_awtsParent = a})++-- | Options for displaying the Private Apps page.+awtsPrivateApps :: Lens' AdministratorWebTokenSpec (Maybe AdministratorWebTokenSpecPrivateApps)+awtsPrivateApps+  = lens _awtsPrivateApps+      (\ s a -> s{_awtsPrivateApps = a})++-- | Options for displaying the managed Play Search apps page.+awtsPlaySearch :: Lens' AdministratorWebTokenSpec (Maybe AdministratorWebTokenSpecPlaySearch)+awtsPlaySearch+  = lens _awtsPlaySearch+      (\ s a -> s{_awtsPlaySearch = a})++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#administratorWebTokenSpec\".+awtsKind :: Lens' AdministratorWebTokenSpec Text+awtsKind = lens _awtsKind (\ s a -> s{_awtsKind = a})++-- | Options for displaying the Web Apps page.+awtsWebApps :: Lens' AdministratorWebTokenSpec (Maybe AdministratorWebTokenSpecWebApps)+awtsWebApps+  = lens _awtsWebApps (\ s a -> s{_awtsWebApps = a})++-- | Deprecated. Use PlaySearch.approveApps.+awtsPermission :: Lens' AdministratorWebTokenSpec [Text]+awtsPermission+  = lens _awtsPermission+      (\ s a -> s{_awtsPermission = a})+      . _Default+      . _Coerce++-- | Options for displaying the Organize apps page.+awtsStoreBuilder :: Lens' AdministratorWebTokenSpec (Maybe AdministratorWebTokenSpecStoreBuilder)+awtsStoreBuilder+  = lens _awtsStoreBuilder+      (\ s a -> s{_awtsStoreBuilder = a})++-- | Options for displaying the Managed Configuration page.+awtsManagedConfigurations :: Lens' AdministratorWebTokenSpec (Maybe AdministratorWebTokenSpecManagedConfigurations)+awtsManagedConfigurations+  = lens _awtsManagedConfigurations+      (\ s a -> s{_awtsManagedConfigurations = a})++instance FromJSON AdministratorWebTokenSpec where+        parseJSON+          = withObject "AdministratorWebTokenSpec"+              (\ o ->+                 AdministratorWebTokenSpec' <$>+                   (o .:? "parent") <*> (o .:? "privateApps") <*>+                     (o .:? "playSearch")+                     <*>+                     (o .:? "kind" .!=+                        "androidenterprise#administratorWebTokenSpec")+                     <*> (o .:? "webApps")+                     <*> (o .:? "permission" .!= mempty)+                     <*> (o .:? "storeBuilder")+                     <*> (o .:? "managedConfigurations"))++instance ToJSON AdministratorWebTokenSpec where+        toJSON AdministratorWebTokenSpec'{..}+          = object+              (catMaybes+                 [("parent" .=) <$> _awtsParent,+                  ("privateApps" .=) <$> _awtsPrivateApps,+                  ("playSearch" .=) <$> _awtsPlaySearch,+                  Just ("kind" .= _awtsKind),+                  ("webApps" .=) <$> _awtsWebApps,+                  ("permission" .=) <$> _awtsPermission,+                  ("storeBuilder" .=) <$> _awtsStoreBuilder,+                  ("managedConfigurations" .=) <$>+                    _awtsManagedConfigurations])++-- | A product to be made visible to a user.+--+-- /See:/ 'productVisibility' smart constructor.+data ProductVisibility =+  ProductVisibility'+    { _pvTracks    :: !(Maybe [Text])+    , _pvTrackIds  :: !(Maybe [Text])+    , _pvProductId :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ProductVisibility' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pvTracks'+--+-- * 'pvTrackIds'+--+-- * 'pvProductId'+productVisibility+    :: ProductVisibility+productVisibility =+  ProductVisibility'+    {_pvTracks = Nothing, _pvTrackIds = Nothing, _pvProductId = Nothing}+++-- | Deprecated. Use trackIds instead.+pvTracks :: Lens' ProductVisibility [Text]+pvTracks+  = lens _pvTracks (\ s a -> s{_pvTracks = a}) .+      _Default+      . _Coerce++-- | Grants the user visibility to the specified product track(s), identified+-- by trackIds.+pvTrackIds :: Lens' ProductVisibility [Text]+pvTrackIds+  = lens _pvTrackIds (\ s a -> s{_pvTrackIds = a}) .+      _Default+      . _Coerce++-- | The product ID to make visible to the user. Required for each item in+-- the productVisibility list.+pvProductId :: Lens' ProductVisibility (Maybe Text)+pvProductId+  = lens _pvProductId (\ s a -> s{_pvProductId = a})++instance FromJSON ProductVisibility where+        parseJSON+          = withObject "ProductVisibility"+              (\ o ->+                 ProductVisibility' <$>+                   (o .:? "tracks" .!= mempty) <*>+                     (o .:? "trackIds" .!= mempty)+                     <*> (o .:? "productId"))++instance ToJSON ProductVisibility where+        toJSON ProductVisibility'{..}+          = object+              (catMaybes+                 [("tracks" .=) <$> _pvTracks,+                  ("trackIds" .=) <$> _pvTrackIds,+                  ("productId" .=) <$> _pvProductId])++-- | A notification of one event relating to an enterprise.+--+-- /See:/ 'notification' smart constructor.+data Notification =+  Notification'+    { _nEnterpriseId                     :: !(Maybe Text)+    , _nNewPermissionsEvent              :: !(Maybe NewPermissionsEvent)+    , _nProductApprovalEvent             :: !(Maybe ProductApprovalEvent)+    , _nProductAvailabilityChangeEvent   :: !(Maybe ProductAvailabilityChangeEvent)+    , _nAppUpdateEvent                   :: !(Maybe AppUpdateEvent)+    , _nInstallFailureEvent              :: !(Maybe InstallFailureEvent)+    , _nNotificationType                 :: !(Maybe Text)+    , _nAppRestrictionsSchemaChangeEvent :: !(Maybe AppRestrictionsSchemaChangeEvent)+    , _nNewDeviceEvent                   :: !(Maybe NewDeviceEvent)+    , _nTimestampMillis                  :: !(Maybe (Textual Int64))+    }+  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:+--+-- * 'nEnterpriseId'+--+-- * 'nNewPermissionsEvent'+--+-- * 'nProductApprovalEvent'+--+-- * 'nProductAvailabilityChangeEvent'+--+-- * 'nAppUpdateEvent'+--+-- * 'nInstallFailureEvent'+--+-- * 'nNotificationType'+--+-- * 'nAppRestrictionsSchemaChangeEvent'+--+-- * 'nNewDeviceEvent'+--+-- * 'nTimestampMillis'+notification+    :: Notification+notification =+  Notification'+    { _nEnterpriseId = Nothing+    , _nNewPermissionsEvent = Nothing+    , _nProductApprovalEvent = Nothing+    , _nProductAvailabilityChangeEvent = Nothing+    , _nAppUpdateEvent = Nothing+    , _nInstallFailureEvent = Nothing+    , _nNotificationType = Nothing+    , _nAppRestrictionsSchemaChangeEvent = Nothing+    , _nNewDeviceEvent = Nothing+    , _nTimestampMillis = Nothing+    }+++-- | The ID of the enterprise for which the notification is sent. This will+-- always be present.+nEnterpriseId :: Lens' Notification (Maybe Text)+nEnterpriseId+  = lens _nEnterpriseId+      (\ s a -> s{_nEnterpriseId = a})++-- | Notifications about new app permissions.+nNewPermissionsEvent :: Lens' Notification (Maybe NewPermissionsEvent)+nNewPermissionsEvent+  = lens _nNewPermissionsEvent+      (\ s a -> s{_nNewPermissionsEvent = a})++-- | Notifications about changes to a product\'s approval status.+nProductApprovalEvent :: Lens' Notification (Maybe ProductApprovalEvent)+nProductApprovalEvent+  = lens _nProductApprovalEvent+      (\ s a -> s{_nProductApprovalEvent = a})++-- | Notifications about product availability changes.+nProductAvailabilityChangeEvent :: Lens' Notification (Maybe ProductAvailabilityChangeEvent)+nProductAvailabilityChangeEvent+  = lens _nProductAvailabilityChangeEvent+      (\ s a -> s{_nProductAvailabilityChangeEvent = a})++-- | Notifications about app updates.+nAppUpdateEvent :: Lens' Notification (Maybe AppUpdateEvent)+nAppUpdateEvent+  = lens _nAppUpdateEvent+      (\ s a -> s{_nAppUpdateEvent = a})++-- | Notifications about an app installation failure.+nInstallFailureEvent :: Lens' Notification (Maybe InstallFailureEvent)+nInstallFailureEvent+  = lens _nInstallFailureEvent+      (\ s a -> s{_nInstallFailureEvent = a})++-- | Type of the notification.+nNotificationType :: Lens' Notification (Maybe Text)+nNotificationType+  = lens _nNotificationType+      (\ s a -> s{_nNotificationType = a})++-- | Notifications about new app restrictions schema changes.+nAppRestrictionsSchemaChangeEvent :: Lens' Notification (Maybe AppRestrictionsSchemaChangeEvent)+nAppRestrictionsSchemaChangeEvent+  = lens _nAppRestrictionsSchemaChangeEvent+      (\ s a -> s{_nAppRestrictionsSchemaChangeEvent = a})++-- | Notifications about new devices.+nNewDeviceEvent :: Lens' Notification (Maybe NewDeviceEvent)+nNewDeviceEvent+  = lens _nNewDeviceEvent+      (\ s a -> s{_nNewDeviceEvent = a})++-- | The time when the notification was published in milliseconds since+-- 1970-01-01T00:00:00Z. This will always be present.+nTimestampMillis :: Lens' Notification (Maybe Int64)+nTimestampMillis+  = lens _nTimestampMillis+      (\ s a -> s{_nTimestampMillis = a})+      . mapping _Coerce++instance FromJSON Notification where+        parseJSON+          = withObject "Notification"+              (\ o ->+                 Notification' <$>+                   (o .:? "enterpriseId") <*>+                     (o .:? "newPermissionsEvent")+                     <*> (o .:? "productApprovalEvent")+                     <*> (o .:? "productAvailabilityChangeEvent")+                     <*> (o .:? "appUpdateEvent")+                     <*> (o .:? "installFailureEvent")+                     <*> (o .:? "notificationType")+                     <*> (o .:? "appRestrictionsSchemaChangeEvent")+                     <*> (o .:? "newDeviceEvent")+                     <*> (o .:? "timestampMillis"))++instance ToJSON Notification where+        toJSON Notification'{..}+          = object+              (catMaybes+                 [("enterpriseId" .=) <$> _nEnterpriseId,+                  ("newPermissionsEvent" .=) <$> _nNewPermissionsEvent,+                  ("productApprovalEvent" .=) <$>+                    _nProductApprovalEvent,+                  ("productAvailabilityChangeEvent" .=) <$>+                    _nProductAvailabilityChangeEvent,+                  ("appUpdateEvent" .=) <$> _nAppUpdateEvent,+                  ("installFailureEvent" .=) <$> _nInstallFailureEvent,+                  ("notificationType" .=) <$> _nNotificationType,+                  ("appRestrictionsSchemaChangeEvent" .=) <$>+                    _nAppRestrictionsSchemaChangeEvent,+                  ("newDeviceEvent" .=) <$> _nNewDeviceEvent,+                  ("timestampMillis" .=) <$> _nTimestampMillis])++--+-- /See:/ 'pageInfo' smart constructor.+data PageInfo =+  PageInfo'+    { _piResultPerPage :: !(Maybe (Textual Int32))+    , _piTotalResults  :: !(Maybe (Textual Int32))+    , _piStartIndex    :: !(Maybe (Textual Int32))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PageInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'piResultPerPage'+--+-- * 'piTotalResults'+--+-- * 'piStartIndex'+pageInfo+    :: PageInfo+pageInfo =+  PageInfo'+    { _piResultPerPage = Nothing+    , _piTotalResults = Nothing+    , _piStartIndex = Nothing+    }+++piResultPerPage :: Lens' PageInfo (Maybe Int32)+piResultPerPage+  = lens _piResultPerPage+      (\ s a -> s{_piResultPerPage = a})+      . mapping _Coerce++piTotalResults :: Lens' PageInfo (Maybe Int32)+piTotalResults+  = lens _piTotalResults+      (\ s a -> s{_piTotalResults = a})+      . mapping _Coerce++piStartIndex :: Lens' PageInfo (Maybe Int32)+piStartIndex+  = lens _piStartIndex (\ s a -> s{_piStartIndex = a})+      . mapping _Coerce++instance FromJSON PageInfo where+        parseJSON+          = withObject "PageInfo"+              (\ o ->+                 PageInfo' <$>+                   (o .:? "resultPerPage") <*> (o .:? "totalResults")+                     <*> (o .:? "startIndex"))++instance ToJSON PageInfo where+        toJSON PageInfo'{..}+          = object+              (catMaybes+                 [("resultPerPage" .=) <$> _piResultPerPage,+                  ("totalResults" .=) <$> _piTotalResults,+                  ("startIndex" .=) <$> _piStartIndex])++-- | A product permissions resource represents the set of permissions+-- required by a specific app and whether or not they have been accepted by+-- an enterprise admin. The API can be used to read the set of permissions,+-- and also to update the set to indicate that permissions have been+-- accepted.+--+-- /See:/ 'productPermission' smart constructor.+data ProductPermission =+  ProductPermission'+    { _ppState        :: !(Maybe Text)+    , _ppPermissionId :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ProductPermission' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ppState'+--+-- * 'ppPermissionId'+productPermission+    :: ProductPermission+productPermission =+  ProductPermission' {_ppState = Nothing, _ppPermissionId = Nothing}+++-- | Whether the permission has been accepted or not.+ppState :: Lens' ProductPermission (Maybe Text)+ppState = lens _ppState (\ s a -> s{_ppState = a})++-- | An opaque string uniquely identifying the permission.+ppPermissionId :: Lens' ProductPermission (Maybe Text)+ppPermissionId+  = lens _ppPermissionId+      (\ s a -> s{_ppPermissionId = a})++instance FromJSON ProductPermission where+        parseJSON+          = withObject "ProductPermission"+              (\ o ->+                 ProductPermission' <$>+                   (o .:? "state") <*> (o .:? "permissionId"))++instance ToJSON ProductPermission where+        toJSON ProductPermission'{..}+          = object+              (catMaybes+                 [("state" .=) <$> _ppState,+                  ("permissionId" .=) <$> _ppPermissionId])++-- | An event generated when new permissions are added to an app.+--+-- /See:/ 'newPermissionsEvent' smart constructor.+data NewPermissionsEvent =+  NewPermissionsEvent'+    { _npeRequestedPermissions :: !(Maybe [Text])+    , _npeApprovedPermissions  :: !(Maybe [Text])+    , _npeProductId            :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NewPermissionsEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'npeRequestedPermissions'+--+-- * 'npeApprovedPermissions'+--+-- * 'npeProductId'+newPermissionsEvent+    :: NewPermissionsEvent+newPermissionsEvent =+  NewPermissionsEvent'+    { _npeRequestedPermissions = Nothing+    , _npeApprovedPermissions = Nothing+    , _npeProductId = Nothing+    }+++-- | The set of permissions that the app is currently requesting. Use+-- Permissions.Get on the EMM API to retrieve details about these+-- permissions.+npeRequestedPermissions :: Lens' NewPermissionsEvent [Text]+npeRequestedPermissions+  = lens _npeRequestedPermissions+      (\ s a -> s{_npeRequestedPermissions = a})+      . _Default+      . _Coerce++-- | The set of permissions that the enterprise admin has already approved+-- for this application. Use Permissions.Get on the EMM API to retrieve+-- details about these permissions.+npeApprovedPermissions :: Lens' NewPermissionsEvent [Text]+npeApprovedPermissions+  = lens _npeApprovedPermissions+      (\ s a -> s{_npeApprovedPermissions = a})+      . _Default+      . _Coerce++-- | The id of the product (e.g. \"app:com.google.android.gm\") for which new+-- permissions were added. This field will always be present.+npeProductId :: Lens' NewPermissionsEvent (Maybe Text)+npeProductId+  = lens _npeProductId (\ s a -> s{_npeProductId = a})++instance FromJSON NewPermissionsEvent where+        parseJSON+          = withObject "NewPermissionsEvent"+              (\ o ->+                 NewPermissionsEvent' <$>+                   (o .:? "requestedPermissions" .!= mempty) <*>+                     (o .:? "approvedPermissions" .!= mempty)+                     <*> (o .:? "productId"))++instance ToJSON NewPermissionsEvent where+        toJSON NewPermissionsEvent'{..}+          = object+              (catMaybes+                 [("requestedPermissions" .=) <$>+                    _npeRequestedPermissions,+                  ("approvedPermissions" .=) <$>+                    _npeApprovedPermissions,+                  ("productId" .=) <$> _npeProductId])++-- | An event generated whenever a product\'s availability changes.+--+-- /See:/ 'productAvailabilityChangeEvent' smart constructor.+data ProductAvailabilityChangeEvent =+  ProductAvailabilityChangeEvent'+    { _paceAvailabilityStatus :: !(Maybe Text)+    , _paceProductId          :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ProductAvailabilityChangeEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'paceAvailabilityStatus'+--+-- * 'paceProductId'+productAvailabilityChangeEvent+    :: ProductAvailabilityChangeEvent+productAvailabilityChangeEvent =+  ProductAvailabilityChangeEvent'+    {_paceAvailabilityStatus = Nothing, _paceProductId = Nothing}+++-- | The new state of the product. This field will always be present.+paceAvailabilityStatus :: Lens' ProductAvailabilityChangeEvent (Maybe Text)+paceAvailabilityStatus+  = lens _paceAvailabilityStatus+      (\ s a -> s{_paceAvailabilityStatus = a})++-- | The id of the product (e.g. \"app:com.google.android.gm\") for which the+-- product availability changed. This field will always be present.+paceProductId :: Lens' ProductAvailabilityChangeEvent (Maybe Text)+paceProductId+  = lens _paceProductId+      (\ s a -> s{_paceProductId = a})++instance FromJSON ProductAvailabilityChangeEvent+         where+        parseJSON+          = withObject "ProductAvailabilityChangeEvent"+              (\ o ->+                 ProductAvailabilityChangeEvent' <$>+                   (o .:? "availabilityStatus") <*> (o .:? "productId"))++instance ToJSON ProductAvailabilityChangeEvent where+        toJSON ProductAvailabilityChangeEvent'{..}+          = object+              (catMaybes+                 [("availabilityStatus" .=) <$>+                    _paceAvailabilityStatus,+                  ("productId" .=) <$> _paceProductId])++-- | An event generated when a product\'s approval status is changed.+--+-- /See:/ 'productApprovalEvent' smart constructor.+data ProductApprovalEvent =+  ProductApprovalEvent'+    { _paeApproved  :: !(Maybe Text)+    , _paeProductId :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ProductApprovalEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'paeApproved'+--+-- * 'paeProductId'+productApprovalEvent+    :: ProductApprovalEvent+productApprovalEvent =+  ProductApprovalEvent' {_paeApproved = Nothing, _paeProductId = Nothing}+++-- | Whether the product was approved or unapproved. This field will always+-- be present.+paeApproved :: Lens' ProductApprovalEvent (Maybe Text)+paeApproved+  = lens _paeApproved (\ s a -> s{_paeApproved = a})++-- | The id of the product (e.g. \"app:com.google.android.gm\") for which the+-- approval status has changed. This field will always be present.+paeProductId :: Lens' ProductApprovalEvent (Maybe Text)+paeProductId+  = lens _paeProductId (\ s a -> s{_paeProductId = a})++instance FromJSON ProductApprovalEvent where+        parseJSON+          = withObject "ProductApprovalEvent"+              (\ o ->+                 ProductApprovalEvent' <$>+                   (o .:? "approved") <*> (o .:? "productId"))++instance ToJSON ProductApprovalEvent where+        toJSON ProductApprovalEvent'{..}+          = object+              (catMaybes+                 [("approved" .=) <$> _paeApproved,+                  ("productId" .=) <$> _paeProductId])++-- | A Devices resource represents a mobile device managed by the EMM and+-- belonging to a specific enterprise user.+--+-- /See:/ 'device' smart constructor.+data Device =+  Device'+    { _dKind           :: !Text+    , _dPolicy         :: !(Maybe Policy)+    , _dManagementType :: !(Maybe Text)+    , _dAndroidId      :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Device' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dKind'+--+-- * 'dPolicy'+--+-- * 'dManagementType'+--+-- * 'dAndroidId'+device+    :: Device+device =+  Device'+    { _dKind = "androidenterprise#device"+    , _dPolicy = Nothing+    , _dManagementType = Nothing+    , _dAndroidId = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#device\".+dKind :: Lens' Device Text+dKind = lens _dKind (\ s a -> s{_dKind = a})++-- | The policy enforced on the device.+dPolicy :: Lens' Device (Maybe Policy)+dPolicy = lens _dPolicy (\ s a -> s{_dPolicy = a})++-- | Identifies the extent to which the device is controlled by a managed+-- Google Play EMM in various deployment configurations. Possible values+-- include: - \"managedDevice\", a device that has the EMM\'s device policy+-- controller (DPC) as the device owner. - \"managedProfile\", a device+-- that has a profile managed by the DPC (DPC is profile owner) in addition+-- to a separate, personal profile that is unavailable to the DPC. -+-- \"containerApp\", no longer used (deprecated). - \"unmanagedProfile\", a+-- device that has been allowed (by the domain\'s admin, using the Admin+-- Console to enable the privilege) to use managed Google Play, but the+-- profile is itself not owned by a DPC.+dManagementType :: Lens' Device (Maybe Text)+dManagementType+  = lens _dManagementType+      (\ s a -> s{_dManagementType = a})++-- | The Google Play Services Android ID for the device encoded as a+-- lowercase hex string. For example, \"123456789abcdef0\".+dAndroidId :: Lens' Device (Maybe Text)+dAndroidId+  = lens _dAndroidId (\ s a -> s{_dAndroidId = a})++instance FromJSON Device where+        parseJSON+          = withObject "Device"+              (\ o ->+                 Device' <$>+                   (o .:? "kind" .!= "androidenterprise#device") <*>+                     (o .:? "policy")+                     <*> (o .:? "managementType")+                     <*> (o .:? "androidId"))++instance ToJSON Device where+        toJSON Device'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _dKind), ("policy" .=) <$> _dPolicy,+                  ("managementType" .=) <$> _dManagementType,+                  ("androidId" .=) <$> _dAndroidId])++-- | The auto-install constraint. Defines a set of restrictions for+-- installation. At least one of the fields must be set.+--+-- /See:/ 'autoInstallConstraint' smart constructor.+data AutoInstallConstraint =+  AutoInstallConstraint'+    { _aicChargingStateConstraint   :: !(Maybe Text)+    , _aicDeviceIdleStateConstraint :: !(Maybe Text)+    , _aicNetworkTypeConstraint     :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AutoInstallConstraint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aicChargingStateConstraint'+--+-- * 'aicDeviceIdleStateConstraint'+--+-- * 'aicNetworkTypeConstraint'+autoInstallConstraint+    :: AutoInstallConstraint+autoInstallConstraint =+  AutoInstallConstraint'+    { _aicChargingStateConstraint = Nothing+    , _aicDeviceIdleStateConstraint = Nothing+    , _aicNetworkTypeConstraint = Nothing+    }+++-- | Charging state constraint.+aicChargingStateConstraint :: Lens' AutoInstallConstraint (Maybe Text)+aicChargingStateConstraint+  = lens _aicChargingStateConstraint+      (\ s a -> s{_aicChargingStateConstraint = a})++-- | Device idle state constraint.+aicDeviceIdleStateConstraint :: Lens' AutoInstallConstraint (Maybe Text)+aicDeviceIdleStateConstraint+  = lens _aicDeviceIdleStateConstraint+      (\ s a -> s{_aicDeviceIdleStateConstraint = a})++-- | Network type constraint.+aicNetworkTypeConstraint :: Lens' AutoInstallConstraint (Maybe Text)+aicNetworkTypeConstraint+  = lens _aicNetworkTypeConstraint+      (\ s a -> s{_aicNetworkTypeConstraint = a})++instance FromJSON AutoInstallConstraint where+        parseJSON+          = withObject "AutoInstallConstraint"+              (\ o ->+                 AutoInstallConstraint' <$>+                   (o .:? "chargingStateConstraint") <*>+                     (o .:? "deviceIdleStateConstraint")+                     <*> (o .:? "networkTypeConstraint"))++instance ToJSON AutoInstallConstraint where+        toJSON AutoInstallConstraint'{..}+          = object+              (catMaybes+                 [("chargingStateConstraint" .=) <$>+                    _aicChargingStateConstraint,+                  ("deviceIdleStateConstraint" .=) <$>+                    _aicDeviceIdleStateConstraint,+                  ("networkTypeConstraint" .=) <$>+                    _aicNetworkTypeConstraint])++-- | Credentials that can be used to authenticate as a service account.+--+-- /See:/ 'serviceAccountKey' smart constructor.+data ServiceAccountKey =+  ServiceAccountKey'+    { _sakKind       :: !Text+    , _sakData       :: !(Maybe Text)+    , _sakId         :: !(Maybe Text)+    , _sakType       :: !(Maybe Text)+    , _sakPublicData :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ServiceAccountKey' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sakKind'+--+-- * 'sakData'+--+-- * 'sakId'+--+-- * 'sakType'+--+-- * 'sakPublicData'+serviceAccountKey+    :: ServiceAccountKey+serviceAccountKey =+  ServiceAccountKey'+    { _sakKind = "androidenterprise#serviceAccountKey"+    , _sakData = Nothing+    , _sakId = Nothing+    , _sakType = Nothing+    , _sakPublicData = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#serviceAccountKey\".+sakKind :: Lens' ServiceAccountKey Text+sakKind = lens _sakKind (\ s a -> s{_sakKind = a})++-- | The body of the private key credentials file, in string format. This is+-- only populated when the ServiceAccountKey is created, and is not stored+-- by Google.+sakData :: Lens' ServiceAccountKey (Maybe Text)+sakData = lens _sakData (\ s a -> s{_sakData = a})++-- | An opaque, unique identifier for this ServiceAccountKey. Assigned by the+-- server.+sakId :: Lens' ServiceAccountKey (Maybe Text)+sakId = lens _sakId (\ s a -> s{_sakId = a})++-- | The file format of the generated key data.+sakType :: Lens' ServiceAccountKey (Maybe Text)+sakType = lens _sakType (\ s a -> s{_sakType = a})++-- | Public key data for the credentials file. This is an X.509 cert. If you+-- are using the googleCredentials key type, this is identical to the cert+-- that can be retrieved by using the X.509 cert url inside of the+-- credentials file.+sakPublicData :: Lens' ServiceAccountKey (Maybe Text)+sakPublicData+  = lens _sakPublicData+      (\ s a -> s{_sakPublicData = a})++instance FromJSON ServiceAccountKey where+        parseJSON+          = withObject "ServiceAccountKey"+              (\ o ->+                 ServiceAccountKey' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#serviceAccountKey")+                     <*> (o .:? "data")+                     <*> (o .:? "id")+                     <*> (o .:? "type")+                     <*> (o .:? "publicData"))++instance ToJSON ServiceAccountKey where+        toJSON ServiceAccountKey'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _sakKind), ("data" .=) <$> _sakData,+                  ("id" .=) <$> _sakId, ("type" .=) <$> _sakType,+                  ("publicData" .=) <$> _sakPublicData])++-- | The install resources for the device.+--+-- /See:/ 'installsListResponse' smart constructor.+data InstallsListResponse =+  InstallsListResponse'+    { _ilrKind    :: !Text+    , _ilrInstall :: !(Maybe [Install])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstallsListResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ilrKind'+--+-- * 'ilrInstall'+installsListResponse+    :: InstallsListResponse+installsListResponse =+  InstallsListResponse'+    {_ilrKind = "androidenterprise#installsListResponse", _ilrInstall = Nothing}+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#installsListResponse\".+ilrKind :: Lens' InstallsListResponse Text+ilrKind = lens _ilrKind (\ s a -> s{_ilrKind = a})++-- | An installation of an app for a user on a specific device. The existence+-- of an install implies that the user must have an entitlement to the app.+ilrInstall :: Lens' InstallsListResponse [Install]+ilrInstall+  = lens _ilrInstall (\ s a -> s{_ilrInstall = a}) .+      _Default+      . _Coerce++instance FromJSON InstallsListResponse where+        parseJSON+          = withObject "InstallsListResponse"+              (\ o ->+                 InstallsListResponse' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#installsListResponse")+                     <*> (o .:? "install" .!= mempty))++instance ToJSON InstallsListResponse where+        toJSON InstallsListResponse'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _ilrKind),+                  ("install" .=) <$> _ilrInstall])++-- | A restriction in the App Restriction Schema represents a piece of+-- configuration that may be pre-applied.+--+-- /See:/ 'appRestrictionsSchemaRestriction' smart constructor.+data AppRestrictionsSchemaRestriction =+  AppRestrictionsSchemaRestriction'+    { _arsrRestrictionType   :: !(Maybe Text)+    , _arsrEntry             :: !(Maybe [Text])+    , _arsrKey               :: !(Maybe Text)+    , _arsrEntryValue        :: !(Maybe [Text])+    , _arsrDefaultValue      :: !(Maybe AppRestrictionsSchemaRestrictionRestrictionValue)+    , _arsrTitle             :: !(Maybe Text)+    , _arsrDescription       :: !(Maybe Text)+    , _arsrNestedRestriction :: !(Maybe [AppRestrictionsSchemaRestriction])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AppRestrictionsSchemaRestriction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'arsrRestrictionType'+--+-- * 'arsrEntry'+--+-- * 'arsrKey'+--+-- * 'arsrEntryValue'+--+-- * 'arsrDefaultValue'+--+-- * 'arsrTitle'+--+-- * 'arsrDescription'+--+-- * 'arsrNestedRestriction'+appRestrictionsSchemaRestriction+    :: AppRestrictionsSchemaRestriction+appRestrictionsSchemaRestriction =+  AppRestrictionsSchemaRestriction'+    { _arsrRestrictionType = Nothing+    , _arsrEntry = Nothing+    , _arsrKey = Nothing+    , _arsrEntryValue = Nothing+    , _arsrDefaultValue = Nothing+    , _arsrTitle = Nothing+    , _arsrDescription = Nothing+    , _arsrNestedRestriction = Nothing+    }+++-- | The type of the restriction.+arsrRestrictionType :: Lens' AppRestrictionsSchemaRestriction (Maybe Text)+arsrRestrictionType+  = lens _arsrRestrictionType+      (\ s a -> s{_arsrRestrictionType = a})++-- | For choice or multiselect restrictions, the list of possible entries\'+-- human-readable names.+arsrEntry :: Lens' AppRestrictionsSchemaRestriction [Text]+arsrEntry+  = lens _arsrEntry (\ s a -> s{_arsrEntry = a}) .+      _Default+      . _Coerce++-- | The unique key that the product uses to identify the restriction, e.g.+-- \"com.google.android.gm.fieldname\".+arsrKey :: Lens' AppRestrictionsSchemaRestriction (Maybe Text)+arsrKey = lens _arsrKey (\ s a -> s{_arsrKey = a})++-- | For choice or multiselect restrictions, the list of possible entries\'+-- machine-readable values. These values should be used in the+-- configuration, either as a single string value for a choice restriction+-- or in a stringArray for a multiselect restriction.+arsrEntryValue :: Lens' AppRestrictionsSchemaRestriction [Text]+arsrEntryValue+  = lens _arsrEntryValue+      (\ s a -> s{_arsrEntryValue = a})+      . _Default+      . _Coerce++-- | The default value of the restriction. bundle and bundleArray+-- restrictions never have a default value.+arsrDefaultValue :: Lens' AppRestrictionsSchemaRestriction (Maybe AppRestrictionsSchemaRestrictionRestrictionValue)+arsrDefaultValue+  = lens _arsrDefaultValue+      (\ s a -> s{_arsrDefaultValue = a})++-- | The name of the restriction.+arsrTitle :: Lens' AppRestrictionsSchemaRestriction (Maybe Text)+arsrTitle+  = lens _arsrTitle (\ s a -> s{_arsrTitle = a})++-- | A longer description of the restriction, giving more detail of what it+-- affects.+arsrDescription :: Lens' AppRestrictionsSchemaRestriction (Maybe Text)+arsrDescription+  = lens _arsrDescription+      (\ s a -> s{_arsrDescription = a})++-- | For bundle or bundleArray restrictions, the list of nested restrictions.+-- A bundle restriction is always nested within a bundleArray restriction,+-- and a bundleArray restriction is at most two levels deep.+arsrNestedRestriction :: Lens' AppRestrictionsSchemaRestriction [AppRestrictionsSchemaRestriction]+arsrNestedRestriction+  = lens _arsrNestedRestriction+      (\ s a -> s{_arsrNestedRestriction = a})+      . _Default+      . _Coerce++instance FromJSON AppRestrictionsSchemaRestriction+         where+        parseJSON+          = withObject "AppRestrictionsSchemaRestriction"+              (\ o ->+                 AppRestrictionsSchemaRestriction' <$>+                   (o .:? "restrictionType") <*>+                     (o .:? "entry" .!= mempty)+                     <*> (o .:? "key")+                     <*> (o .:? "entryValue" .!= mempty)+                     <*> (o .:? "defaultValue")+                     <*> (o .:? "title")+                     <*> (o .:? "description")+                     <*> (o .:? "nestedRestriction" .!= mempty))++instance ToJSON AppRestrictionsSchemaRestriction+         where+        toJSON AppRestrictionsSchemaRestriction'{..}+          = object+              (catMaybes+                 [("restrictionType" .=) <$> _arsrRestrictionType,+                  ("entry" .=) <$> _arsrEntry, ("key" .=) <$> _arsrKey,+                  ("entryValue" .=) <$> _arsrEntryValue,+                  ("defaultValue" .=) <$> _arsrDefaultValue,+                  ("title" .=) <$> _arsrTitle,+                  ("description" .=) <$> _arsrDescription,+                  ("nestedRestriction" .=) <$> _arsrNestedRestriction])++-- | The policy for a product.+--+-- /See:/ 'productPolicy' smart constructor.+data ProductPolicy =+  ProductPolicy'+    { _ppTracks               :: !(Maybe [Text])+    , _ppManagedConfiguration :: !(Maybe ManagedConfiguration)+    , _ppTrackIds             :: !(Maybe [Text])+    , _ppAutoInstallPolicy    :: !(Maybe AutoInstallPolicy)+    , _ppProductId            :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ProductPolicy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ppTracks'+--+-- * 'ppManagedConfiguration'+--+-- * 'ppTrackIds'+--+-- * 'ppAutoInstallPolicy'+--+-- * 'ppProductId'+productPolicy+    :: ProductPolicy+productPolicy =+  ProductPolicy'+    { _ppTracks = Nothing+    , _ppManagedConfiguration = Nothing+    , _ppTrackIds = Nothing+    , _ppAutoInstallPolicy = Nothing+    , _ppProductId = Nothing+    }+++-- | Deprecated. Use trackIds instead.+ppTracks :: Lens' ProductPolicy [Text]+ppTracks+  = lens _ppTracks (\ s a -> s{_ppTracks = a}) .+      _Default+      . _Coerce++-- | The managed configuration for the product.+ppManagedConfiguration :: Lens' ProductPolicy (Maybe ManagedConfiguration)+ppManagedConfiguration+  = lens _ppManagedConfiguration+      (\ s a -> s{_ppManagedConfiguration = a})++-- | Grants the device visibility to the specified product release track(s),+-- identified by trackIds. The list of release tracks of a product can be+-- obtained by calling Products.Get.+ppTrackIds :: Lens' ProductPolicy [Text]+ppTrackIds+  = lens _ppTrackIds (\ s a -> s{_ppTrackIds = a}) .+      _Default+      . _Coerce++-- | The auto-install policy for the product.+ppAutoInstallPolicy :: Lens' ProductPolicy (Maybe AutoInstallPolicy)+ppAutoInstallPolicy+  = lens _ppAutoInstallPolicy+      (\ s a -> s{_ppAutoInstallPolicy = a})++-- | The ID of the product. For example, \"app:com.google.android.gm\".+ppProductId :: Lens' ProductPolicy (Maybe Text)+ppProductId+  = lens _ppProductId (\ s a -> s{_ppProductId = a})++instance FromJSON ProductPolicy where+        parseJSON+          = withObject "ProductPolicy"+              (\ o ->+                 ProductPolicy' <$>+                   (o .:? "tracks" .!= mempty) <*>+                     (o .:? "managedConfiguration")+                     <*> (o .:? "trackIds" .!= mempty)+                     <*> (o .:? "autoInstallPolicy")+                     <*> (o .:? "productId"))++instance ToJSON ProductPolicy where+        toJSON ProductPolicy'{..}+          = object+              (catMaybes+                 [("tracks" .=) <$> _ppTracks,+                  ("managedConfiguration" .=) <$>+                    _ppManagedConfiguration,+                  ("trackIds" .=) <$> _ppTrackIds,+                  ("autoInstallPolicy" .=) <$> _ppAutoInstallPolicy,+                  ("productId" .=) <$> _ppProductId])++-- | This represents an enterprise admin who can manage the enterprise in the+-- managed Google Play store.+--+-- /See:/ 'administrator' smart constructor.+newtype Administrator =+  Administrator'+    { _aEmail :: Maybe Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Administrator' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aEmail'+administrator+    :: Administrator+administrator = Administrator' {_aEmail = Nothing}+++-- | The admin\'s email address.+aEmail :: Lens' Administrator (Maybe Text)+aEmail = lens _aEmail (\ s a -> s{_aEmail = a})++instance FromJSON Administrator where+        parseJSON+          = withObject "Administrator"+              (\ o -> Administrator' <$> (o .:? "email"))++instance ToJSON Administrator where+        toJSON Administrator'{..}+          = object (catMaybes [("email" .=) <$> _aEmail])++-- | The matching user resources.+--+-- /See:/ 'usersListResponse' smart constructor.+data UsersListResponse =+  UsersListResponse'+    { _ulrKind :: !Text+    , _ulrUser :: !(Maybe [User])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UsersListResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ulrKind'+--+-- * 'ulrUser'+usersListResponse+    :: UsersListResponse+usersListResponse =+  UsersListResponse'+    {_ulrKind = "androidenterprise#usersListResponse", _ulrUser = Nothing}+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#usersListResponse\".+ulrKind :: Lens' UsersListResponse Text+ulrKind = lens _ulrKind (\ s a -> s{_ulrKind = a})++-- | A user of an enterprise.+ulrUser :: Lens' UsersListResponse [User]+ulrUser+  = lens _ulrUser (\ s a -> s{_ulrUser = a}) . _Default+      . _Coerce++instance FromJSON UsersListResponse where+        parseJSON+          = withObject "UsersListResponse"+              (\ o ->+                 UsersListResponse' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#usersListResponse")+                     <*> (o .:? "user" .!= mempty))++instance ToJSON UsersListResponse where+        toJSON UsersListResponse'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _ulrKind),+                  ("user" .=) <$> _ulrUser])++--+-- /See:/ 'administratorWebTokenSpecStoreBuilder' smart constructor.+newtype AdministratorWebTokenSpecStoreBuilder =+  AdministratorWebTokenSpecStoreBuilder'+    { _awtssbEnabled :: Maybe Bool+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AdministratorWebTokenSpecStoreBuilder' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'awtssbEnabled'+administratorWebTokenSpecStoreBuilder+    :: AdministratorWebTokenSpecStoreBuilder+administratorWebTokenSpecStoreBuilder =+  AdministratorWebTokenSpecStoreBuilder' {_awtssbEnabled = Nothing}+++-- | Whether the Organize apps page is displayed. Default is true.+awtssbEnabled :: Lens' AdministratorWebTokenSpecStoreBuilder (Maybe Bool)+awtssbEnabled+  = lens _awtssbEnabled+      (\ s a -> s{_awtssbEnabled = a})++instance FromJSON+           AdministratorWebTokenSpecStoreBuilder+         where+        parseJSON+          = withObject "AdministratorWebTokenSpecStoreBuilder"+              (\ o ->+                 AdministratorWebTokenSpecStoreBuilder' <$>+                   (o .:? "enabled"))++instance ToJSON AdministratorWebTokenSpecStoreBuilder+         where+        toJSON AdministratorWebTokenSpecStoreBuilder'{..}+          = object+              (catMaybes [("enabled" .=) <$> _awtssbEnabled])++-- | An AuthenticationToken is used by the EMM\'s device policy client on a+-- device to provision the given EMM-managed user on that device.+--+-- /See:/ 'authenticationToken' smart constructor.+data AuthenticationToken =+  AuthenticationToken'+    { _atKind  :: !Text+    , _atToken :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AuthenticationToken' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'atKind'+--+-- * 'atToken'+authenticationToken+    :: AuthenticationToken+authenticationToken =+  AuthenticationToken'+    {_atKind = "androidenterprise#authenticationToken", _atToken = Nothing}+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#authenticationToken\".+atKind :: Lens' AuthenticationToken Text+atKind = lens _atKind (\ s a -> s{_atKind = a})++-- | The authentication token to be passed to the device policy client on the+-- device where it can be used to provision the account for which this+-- token was generated.+atToken :: Lens' AuthenticationToken (Maybe Text)+atToken = lens _atToken (\ s a -> s{_atToken = a})++instance FromJSON AuthenticationToken where+        parseJSON+          = withObject "AuthenticationToken"+              (\ o ->+                 AuthenticationToken' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#authenticationToken")+                     <*> (o .:? "token"))++instance ToJSON AuthenticationToken where+        toJSON AuthenticationToken'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _atKind),+                  ("token" .=) <$> _atToken])++-- | A managed configurations settings resource contains the set of managed+-- properties that have been configured for an Android app to be applied to+-- a set of users. The app\'s developer would have defined configurable+-- properties in the managed configurations schema.+--+-- /See:/ 'managedConfigurationsSettings' smart constructor.+data ManagedConfigurationsSettings =+  ManagedConfigurationsSettings'+    { _mcsLastUpdatedTimestampMillis :: !(Maybe (Textual Int64))+    , _mcsManagedProperty            :: !(Maybe [ManagedProperty])+    , _mcsKind                       :: !Text+    , _mcsMcmId                      :: !(Maybe Text)+    , _mcsName                       :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ManagedConfigurationsSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mcsLastUpdatedTimestampMillis'+--+-- * 'mcsManagedProperty'+--+-- * 'mcsKind'+--+-- * 'mcsMcmId'+--+-- * 'mcsName'+managedConfigurationsSettings+    :: ManagedConfigurationsSettings+managedConfigurationsSettings =+  ManagedConfigurationsSettings'+    { _mcsLastUpdatedTimestampMillis = Nothing+    , _mcsManagedProperty = Nothing+    , _mcsKind = "androidenterprise#managedConfigurationsSettings"+    , _mcsMcmId = Nothing+    , _mcsName = Nothing+    }+++-- | The last updated time of the managed configuration settings in+-- milliseconds since 1970-01-01T00:00:00Z.+mcsLastUpdatedTimestampMillis :: Lens' ManagedConfigurationsSettings (Maybe Int64)+mcsLastUpdatedTimestampMillis+  = lens _mcsLastUpdatedTimestampMillis+      (\ s a -> s{_mcsLastUpdatedTimestampMillis = a})+      . mapping _Coerce++-- | The set of managed properties for this configuration.+mcsManagedProperty :: Lens' ManagedConfigurationsSettings [ManagedProperty]+mcsManagedProperty+  = lens _mcsManagedProperty+      (\ s a -> s{_mcsManagedProperty = a})+      . _Default+      . _Coerce++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#managedConfigurationsSettings\".+mcsKind :: Lens' ManagedConfigurationsSettings Text+mcsKind = lens _mcsKind (\ s a -> s{_mcsKind = a})++-- | The ID of the managed configurations settings.+mcsMcmId :: Lens' ManagedConfigurationsSettings (Maybe Text)+mcsMcmId = lens _mcsMcmId (\ s a -> s{_mcsMcmId = a})++-- | The name of the managed configurations settings.+mcsName :: Lens' ManagedConfigurationsSettings (Maybe Text)+mcsName = lens _mcsName (\ s a -> s{_mcsName = a})++instance FromJSON ManagedConfigurationsSettings where+        parseJSON+          = withObject "ManagedConfigurationsSettings"+              (\ o ->+                 ManagedConfigurationsSettings' <$>+                   (o .:? "lastUpdatedTimestampMillis") <*>+                     (o .:? "managedProperty" .!= mempty)+                     <*>+                     (o .:? "kind" .!=+                        "androidenterprise#managedConfigurationsSettings")+                     <*> (o .:? "mcmId")+                     <*> (o .:? "name"))++instance ToJSON ManagedConfigurationsSettings where+        toJSON ManagedConfigurationsSettings'{..}+          = object+              (catMaybes+                 [("lastUpdatedTimestampMillis" .=) <$>+                    _mcsLastUpdatedTimestampMillis,+                  ("managedProperty" .=) <$> _mcsManagedProperty,+                  Just ("kind" .= _mcsKind),+                  ("mcmId" .=) <$> _mcsMcmId,+                  ("name" .=) <$> _mcsName])++-- | This represents a single version of the app.+--+-- /See:/ 'appVersion' smart constructor.+data AppVersion =+  AppVersion'+    { _avTrack         :: !(Maybe Text)+    , _avVersionCode   :: !(Maybe (Textual Int32))+    , _avVersionString :: !(Maybe Text)+    , _avTrackId       :: !(Maybe [Text])+    , _avIsProduction  :: !(Maybe Bool)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AppVersion' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'avTrack'+--+-- * 'avVersionCode'+--+-- * 'avVersionString'+--+-- * 'avTrackId'+--+-- * 'avIsProduction'+appVersion+    :: AppVersion+appVersion =+  AppVersion'+    { _avTrack = Nothing+    , _avVersionCode = Nothing+    , _avVersionString = Nothing+    , _avTrackId = Nothing+    , _avIsProduction = Nothing+    }+++-- | Deprecated, use trackId instead.+avTrack :: Lens' AppVersion (Maybe Text)+avTrack = lens _avTrack (\ s a -> s{_avTrack = a})++-- | Unique increasing identifier for the app version.+avVersionCode :: Lens' AppVersion (Maybe Int32)+avVersionCode+  = lens _avVersionCode+      (\ s a -> s{_avVersionCode = a})+      . mapping _Coerce++-- | The string used in the Play store by the app developer to identify the+-- version. The string is not necessarily unique or localized (for example,+-- the string could be \"1.4\").+avVersionString :: Lens' AppVersion (Maybe Text)+avVersionString+  = lens _avVersionString+      (\ s a -> s{_avVersionString = a})++-- | Track ids that the app version is published in. Replaces the track field+-- (deprecated), but doesn\'t include the production track (see+-- isProduction instead).+avTrackId :: Lens' AppVersion [Text]+avTrackId+  = lens _avTrackId (\ s a -> s{_avTrackId = a}) .+      _Default+      . _Coerce++-- | True if this version is a production APK.+avIsProduction :: Lens' AppVersion (Maybe Bool)+avIsProduction+  = lens _avIsProduction+      (\ s a -> s{_avIsProduction = a})++instance FromJSON AppVersion where+        parseJSON+          = withObject "AppVersion"+              (\ o ->+                 AppVersion' <$>+                   (o .:? "track") <*> (o .:? "versionCode") <*>+                     (o .:? "versionString")+                     <*> (o .:? "trackId" .!= mempty)+                     <*> (o .:? "isProduction"))++instance ToJSON AppVersion where+        toJSON AppVersion'{..}+          = object+              (catMaybes+                 [("track" .=) <$> _avTrack,+                  ("versionCode" .=) <$> _avVersionCode,+                  ("versionString" .=) <$> _avVersionString,+                  ("trackId" .=) <$> _avTrackId,+                  ("isProduction" .=) <$> _avIsProduction])++-- | A bundle of managed properties.+--+-- /See:/ 'managedPropertyBundle' smart constructor.+newtype ManagedPropertyBundle =+  ManagedPropertyBundle'+    { _mpbManagedProperty :: Maybe [ManagedProperty]+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ManagedPropertyBundle' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mpbManagedProperty'+managedPropertyBundle+    :: ManagedPropertyBundle+managedPropertyBundle = ManagedPropertyBundle' {_mpbManagedProperty = Nothing}+++-- | The list of managed properties.+mpbManagedProperty :: Lens' ManagedPropertyBundle [ManagedProperty]+mpbManagedProperty+  = lens _mpbManagedProperty+      (\ s a -> s{_mpbManagedProperty = a})+      . _Default+      . _Coerce++instance FromJSON ManagedPropertyBundle where+        parseJSON+          = withObject "ManagedPropertyBundle"+              (\ o ->+                 ManagedPropertyBundle' <$>+                   (o .:? "managedProperty" .!= mempty))++instance ToJSON ManagedPropertyBundle where+        toJSON ManagedPropertyBundle'{..}+          = object+              (catMaybes+                 [("managedProperty" .=) <$> _mpbManagedProperty])++-- | The grouplicense resources for the enterprise.+--+-- /See:/ 'groupLicensesListResponse' smart constructor.+data GroupLicensesListResponse =+  GroupLicensesListResponse'+    { _gllrGroupLicense :: !(Maybe [GroupLicense])+    , _gllrKind         :: !Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GroupLicensesListResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gllrGroupLicense'+--+-- * 'gllrKind'+groupLicensesListResponse+    :: GroupLicensesListResponse+groupLicensesListResponse =+  GroupLicensesListResponse'+    { _gllrGroupLicense = Nothing+    , _gllrKind = "androidenterprise#groupLicensesListResponse"+    }+++-- | A group license for a product approved for use in the enterprise.+gllrGroupLicense :: Lens' GroupLicensesListResponse [GroupLicense]+gllrGroupLicense+  = lens _gllrGroupLicense+      (\ s a -> s{_gllrGroupLicense = a})+      . _Default+      . _Coerce++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#groupLicensesListResponse\".+gllrKind :: Lens' GroupLicensesListResponse Text+gllrKind = lens _gllrKind (\ s a -> s{_gllrKind = a})++instance FromJSON GroupLicensesListResponse where+        parseJSON+          = withObject "GroupLicensesListResponse"+              (\ o ->+                 GroupLicensesListResponse' <$>+                   (o .:? "groupLicense" .!= mempty) <*>+                     (o .:? "kind" .!=+                        "androidenterprise#groupLicensesListResponse"))++instance ToJSON GroupLicensesListResponse where+        toJSON GroupLicensesListResponse'{..}+          = object+              (catMaybes+                 [("groupLicense" .=) <$> _gllrGroupLicense,+                  Just ("kind" .= _gllrKind)])++-- | A set of products.+--+-- /See:/ 'productSet' smart constructor.+data ProductSet =+  ProductSet'+    { _psProductVisibility  :: !(Maybe [ProductVisibility])+    , _psKind               :: !Text+    , _psProductSetBehavior :: !(Maybe Text)+    , _psProductId          :: !(Maybe [Text])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ProductSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'psProductVisibility'+--+-- * 'psKind'+--+-- * 'psProductSetBehavior'+--+-- * 'psProductId'+productSet+    :: ProductSet+productSet =+  ProductSet'+    { _psProductVisibility = Nothing+    , _psKind = "androidenterprise#productSet"+    , _psProductSetBehavior = Nothing+    , _psProductId = Nothing+    }+++-- | Additional list of product IDs making up the product set. Unlike the+-- productID array, in this list It\'s possible to specify which tracks+-- (alpha, beta, production) of a product are visible to the user. See+-- ProductVisibility and its fields for more information. Specifying the+-- same product ID both here and in the productId array is not allowed and+-- it will result in an error.+psProductVisibility :: Lens' ProductSet [ProductVisibility]+psProductVisibility+  = lens _psProductVisibility+      (\ s a -> s{_psProductVisibility = a})+      . _Default+      . _Coerce++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#productSet\".+psKind :: Lens' ProductSet Text+psKind = lens _psKind (\ s a -> s{_psKind = a})++-- | The interpretation of this product set. \"unknown\" should never be sent+-- and is ignored if received. \"whitelist\" means that the user is+-- entitled to access the product set. \"includeAll\" means that all+-- products are accessible, including products that are approved, products+-- with revoked approval, and products that have never been approved.+-- \"allApproved\" means that the user is entitled to access all products+-- that are approved for the enterprise. If the value is \"allApproved\" or+-- \"includeAll\", the productId field is ignored. If no value is provided,+-- it is interpreted as \"whitelist\" for backwards compatibility. Further+-- \"allApproved\" or \"includeAll\" does not enable automatic visibility+-- of \"alpha\" or \"beta\" tracks for Android app. Use ProductVisibility+-- to enable \"alpha\" or \"beta\" tracks per user.+psProductSetBehavior :: Lens' ProductSet (Maybe Text)+psProductSetBehavior+  = lens _psProductSetBehavior+      (\ s a -> s{_psProductSetBehavior = a})++-- | The list of product IDs making up the set of products.+psProductId :: Lens' ProductSet [Text]+psProductId+  = lens _psProductId (\ s a -> s{_psProductId = a}) .+      _Default+      . _Coerce++instance FromJSON ProductSet where+        parseJSON+          = withObject "ProductSet"+              (\ o ->+                 ProductSet' <$>+                   (o .:? "productVisibility" .!= mempty) <*>+                     (o .:? "kind" .!= "androidenterprise#productSet")+                     <*> (o .:? "productSetBehavior")+                     <*> (o .:? "productId" .!= mempty))++instance ToJSON ProductSet where+        toJSON ProductSet'{..}+          = object+              (catMaybes+                 [("productVisibility" .=) <$> _psProductVisibility,+                  Just ("kind" .= _psKind),+                  ("productSetBehavior" .=) <$> _psProductSetBehavior,+                  ("productId" .=) <$> _psProductId])++-- | The existence of an Installs resource indicates that an app is installed+-- on a particular device (or that an install is pending). The API can be+-- used to create an install resource using the update method. This+-- triggers the actual install of the app on the device. If the user does+-- not already have an entitlement for the app, then an attempt is made to+-- create one. If this fails (for example, because the app is not free and+-- there is no available license), then the creation of the install fails.+-- The API can also be used to update an installed app. If+-- the update method is used on an existing install, then the app will be+-- updated to the latest available version. Note that it is not possible to+-- force the installation of a specific version of an app: the version code+-- is read-only. If a user installs an app themselves (as permitted by the+-- enterprise), then again an install resource and possibly an entitlement+-- resource are automatically created. The API can also be used to delete+-- an install resource, which triggers the removal of the app from the+-- device. Note that deleting an install does not automatically remove the+-- corresponding entitlement, even if there are no remaining installs. The+-- install resource will also be deleted if the user uninstalls the app+-- themselves.+--+-- /See:/ 'install' smart constructor.+data Install =+  Install'+    { _iVersionCode  :: !(Maybe (Textual Int32))+    , _iKind         :: !Text+    , _iInstallState :: !(Maybe Text)+    , _iProductId    :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Install' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iVersionCode'+--+-- * 'iKind'+--+-- * 'iInstallState'+--+-- * 'iProductId'+install+    :: Install+install =+  Install'+    { _iVersionCode = Nothing+    , _iKind = "androidenterprise#install"+    , _iInstallState = Nothing+    , _iProductId = Nothing+    }+++-- | The version of the installed product. Guaranteed to be set only if the+-- install state is \"installed\".+iVersionCode :: Lens' Install (Maybe Int32)+iVersionCode+  = lens _iVersionCode (\ s a -> s{_iVersionCode = a})+      . mapping _Coerce++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#install\".+iKind :: Lens' Install Text+iKind = lens _iKind (\ s a -> s{_iKind = a})++-- | Install state. The state \"installPending\" means that an install+-- request has recently been made and download to the device is in+-- progress. The state \"installed\" means that the app has been installed.+-- This field is read-only.+iInstallState :: Lens' Install (Maybe Text)+iInstallState+  = lens _iInstallState+      (\ s a -> s{_iInstallState = a})++-- | The ID of the product that the install is for. For example,+-- \"app:com.google.android.gm\".+iProductId :: Lens' Install (Maybe Text)+iProductId+  = lens _iProductId (\ s a -> s{_iProductId = a})++instance FromJSON Install where+        parseJSON+          = withObject "Install"+              (\ o ->+                 Install' <$>+                   (o .:? "versionCode") <*>+                     (o .:? "kind" .!= "androidenterprise#install")+                     <*> (o .:? "installState")+                     <*> (o .:? "productId"))++instance ToJSON Install where+        toJSON Install'{..}+          = object+              (catMaybes+                 [("versionCode" .=) <$> _iVersionCode,+                  Just ("kind" .= _iKind),+                  ("installState" .=) <$> _iInstallState,+                  ("productId" .=) <$> _iProductId])++-- | Maintenance window for managed Google Play Accounts. This allows Play+-- store to update the apps on the foreground in the designated window.+--+-- /See:/ 'maintenanceWindow' smart constructor.+data MaintenanceWindow =+  MaintenanceWindow'+    { _mwDurationMs               :: !(Maybe (Textual Int64))+    , _mwStartTimeAfterMidnightMs :: !(Maybe (Textual Int64))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'MaintenanceWindow' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mwDurationMs'+--+-- * 'mwStartTimeAfterMidnightMs'+maintenanceWindow+    :: MaintenanceWindow+maintenanceWindow =+  MaintenanceWindow'+    {_mwDurationMs = Nothing, _mwStartTimeAfterMidnightMs = Nothing}+++-- | Duration of the maintenance window, in milliseconds. The duration must+-- be between 30 minutes and 24 hours (inclusive).+mwDurationMs :: Lens' MaintenanceWindow (Maybe Int64)+mwDurationMs+  = lens _mwDurationMs (\ s a -> s{_mwDurationMs = a})+      . mapping _Coerce++-- | Start time of the maintenance window, in milliseconds after midnight on+-- the device. Windows can span midnight.+mwStartTimeAfterMidnightMs :: Lens' MaintenanceWindow (Maybe Int64)+mwStartTimeAfterMidnightMs+  = lens _mwStartTimeAfterMidnightMs+      (\ s a -> s{_mwStartTimeAfterMidnightMs = a})+      . mapping _Coerce++instance FromJSON MaintenanceWindow where+        parseJSON+          = withObject "MaintenanceWindow"+              (\ o ->+                 MaintenanceWindow' <$>+                   (o .:? "durationMs") <*>+                     (o .:? "startTimeAfterMidnightMs"))++instance ToJSON MaintenanceWindow where+        toJSON MaintenanceWindow'{..}+          = object+              (catMaybes+                 [("durationMs" .=) <$> _mwDurationMs,+                  ("startTimeAfterMidnightMs" .=) <$>+                    _mwStartTimeAfterMidnightMs])++--+-- /See:/ 'serviceAccountKeysListResponse' smart constructor.+newtype ServiceAccountKeysListResponse =+  ServiceAccountKeysListResponse'+    { _saklrServiceAccountKey :: Maybe [ServiceAccountKey]+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ServiceAccountKeysListResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'saklrServiceAccountKey'+serviceAccountKeysListResponse+    :: ServiceAccountKeysListResponse+serviceAccountKeysListResponse =+  ServiceAccountKeysListResponse' {_saklrServiceAccountKey = Nothing}+++-- | The service account credentials.+saklrServiceAccountKey :: Lens' ServiceAccountKeysListResponse [ServiceAccountKey]+saklrServiceAccountKey+  = lens _saklrServiceAccountKey+      (\ s a -> s{_saklrServiceAccountKey = a})+      . _Default+      . _Coerce++instance FromJSON ServiceAccountKeysListResponse+         where+        parseJSON+          = withObject "ServiceAccountKeysListResponse"+              (\ o ->+                 ServiceAccountKeysListResponse' <$>+                   (o .:? "serviceAccountKey" .!= mempty))++instance ToJSON ServiceAccountKeysListResponse where+        toJSON ServiceAccountKeysListResponse'{..}+          = object+              (catMaybes+                 [("serviceAccountKey" .=) <$>+                    _saklrServiceAccountKey])++-- | Id to name association of a track.+--+-- /See:/ 'trackInfo' smart constructor.+data TrackInfo =+  TrackInfo'+    { _tiTrackAlias :: !(Maybe Text)+    , _tiTrackId    :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TrackInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tiTrackAlias'+--+-- * 'tiTrackId'+trackInfo+    :: TrackInfo+trackInfo = TrackInfo' {_tiTrackAlias = Nothing, _tiTrackId = Nothing}+++-- | A modifiable name for a track. This is the visible name in the play+-- developer console.+tiTrackAlias :: Lens' TrackInfo (Maybe Text)+tiTrackAlias+  = lens _tiTrackAlias (\ s a -> s{_tiTrackAlias = a})++-- | Unmodifiable, unique track identifier. This identifier is the+-- releaseTrackId in the url of the play developer console page that+-- displays the track information.+tiTrackId :: Lens' TrackInfo (Maybe Text)+tiTrackId+  = lens _tiTrackId (\ s a -> s{_tiTrackId = a})++instance FromJSON TrackInfo where+        parseJSON+          = withObject "TrackInfo"+              (\ o ->+                 TrackInfo' <$>+                   (o .:? "trackAlias") <*> (o .:? "trackId"))++instance ToJSON TrackInfo where+        toJSON TrackInfo'{..}+          = object+              (catMaybes+                 [("trackAlias" .=) <$> _tiTrackAlias,+                  ("trackId" .=) <$> _tiTrackId])++-- | A Users resource represents an account associated with an enterprise.+-- The account may be specific to a device or to an individual user (who+-- can then use the account across multiple devices). The account may+-- provide access to managed Google Play only, or to other Google services,+-- depending on the identity model: - The Google managed domain identity+-- model requires synchronization to Google account sources (via+-- primaryEmail). - The managed Google Play Accounts identity model+-- provides a dynamic means for enterprises to create user or device+-- accounts as needed. These accounts provide access to managed Google+-- Play.+--+-- /See:/ 'user' smart constructor.+data User =+  User'+    { _uAccountIdentifier :: !(Maybe Text)+    , _uKind              :: !Text+    , _uDisplayName       :: !(Maybe Text)+    , _uId                :: !(Maybe Text)+    , _uPrimaryEmail      :: !(Maybe Text)+    , _uManagementType    :: !(Maybe Text)+    , _uAccountType       :: !(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:+--+-- * 'uAccountIdentifier'+--+-- * 'uKind'+--+-- * 'uDisplayName'+--+-- * 'uId'+--+-- * 'uPrimaryEmail'+--+-- * 'uManagementType'+--+-- * 'uAccountType'+user+    :: User+user =+  User'+    { _uAccountIdentifier = Nothing+    , _uKind = "androidenterprise#user"+    , _uDisplayName = Nothing+    , _uId = Nothing+    , _uPrimaryEmail = Nothing+    , _uManagementType = Nothing+    , _uAccountType = Nothing+    }+++-- | A unique identifier you create for this user, such as \"user342\" or+-- \"asset#44418\". Do not use personally identifiable information (PII)+-- for this property. Must always be set for EMM-managed users. Not set for+-- Google-managed users.+uAccountIdentifier :: Lens' User (Maybe Text)+uAccountIdentifier+  = lens _uAccountIdentifier+      (\ s a -> s{_uAccountIdentifier = a})++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#user\".+uKind :: Lens' User Text+uKind = lens _uKind (\ s a -> s{_uKind = a})++-- | The name that will appear in user interfaces. Setting this property is+-- optional when creating EMM-managed users. If you do set this property,+-- use something generic about the organization (such as \"Example, Inc.\")+-- or your name (as EMM). Not used for Google-managed user accounts.+uDisplayName :: Lens' User (Maybe Text)+uDisplayName+  = lens _uDisplayName (\ s a -> s{_uDisplayName = a})++-- | The unique ID for the user.+uId :: Lens' User (Maybe Text)+uId = lens _uId (\ s a -> s{_uId = a})++-- | The user\'s primary email address, for example, \"jsmith\'example.com\".+-- Will always be set for Google managed users and not set for EMM managed+-- users.+uPrimaryEmail :: Lens' User (Maybe Text)+uPrimaryEmail+  = lens _uPrimaryEmail+      (\ s a -> s{_uPrimaryEmail = a})++-- | The entity that manages the user. With googleManaged users, the source+-- of truth is Google so EMMs have to make sure a Google Account exists for+-- the user. With emmManaged users, the EMM is in charge.+uManagementType :: Lens' User (Maybe Text)+uManagementType+  = lens _uManagementType+      (\ s a -> s{_uManagementType = a})++-- | The type of account that this user represents. A userAccount can be+-- installed on multiple devices, but a deviceAccount is specific to a+-- single device. An EMM-managed user (emmManaged) can be either type+-- (userAccount, deviceAccount), but a Google-managed user (googleManaged)+-- is always a userAccount.+uAccountType :: Lens' User (Maybe Text)+uAccountType+  = lens _uAccountType (\ s a -> s{_uAccountType = a})++instance FromJSON User where+        parseJSON+          = withObject "User"+              (\ o ->+                 User' <$>+                   (o .:? "accountIdentifier") <*>+                     (o .:? "kind" .!= "androidenterprise#user")+                     <*> (o .:? "displayName")+                     <*> (o .:? "id")+                     <*> (o .:? "primaryEmail")+                     <*> (o .:? "managementType")+                     <*> (o .:? "accountType"))++instance ToJSON User where+        toJSON User'{..}+          = object+              (catMaybes+                 [("accountIdentifier" .=) <$> _uAccountIdentifier,+                  Just ("kind" .= _uKind),+                  ("displayName" .=) <$> _uDisplayName,+                  ("id" .=) <$> _uId,+                  ("primaryEmail" .=) <$> _uPrimaryEmail,+                  ("managementType" .=) <$> _uManagementType,+                  ("accountType" .=) <$> _uAccountType])++-- | The managed configuration resources for the device.+--+-- /See:/ 'managedConfigurationsForDeviceListResponse' smart constructor.+data ManagedConfigurationsForDeviceListResponse =+  ManagedConfigurationsForDeviceListResponse'+    { _mcfdlrKind                          :: !Text+    , _mcfdlrManagedConfigurationForDevice :: !(Maybe [ManagedConfiguration])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ManagedConfigurationsForDeviceListResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mcfdlrKind'+--+-- * 'mcfdlrManagedConfigurationForDevice'+managedConfigurationsForDeviceListResponse+    :: ManagedConfigurationsForDeviceListResponse+managedConfigurationsForDeviceListResponse =+  ManagedConfigurationsForDeviceListResponse'+    { _mcfdlrKind =+        "androidenterprise#managedConfigurationsForDeviceListResponse"+    , _mcfdlrManagedConfigurationForDevice = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#managedConfigurationsForDeviceListResponse\".+mcfdlrKind :: Lens' ManagedConfigurationsForDeviceListResponse Text+mcfdlrKind+  = lens _mcfdlrKind (\ s a -> s{_mcfdlrKind = a})++-- | A managed configuration for an app on a specific device.+mcfdlrManagedConfigurationForDevice :: Lens' ManagedConfigurationsForDeviceListResponse [ManagedConfiguration]+mcfdlrManagedConfigurationForDevice+  = lens _mcfdlrManagedConfigurationForDevice+      (\ s a ->+         s{_mcfdlrManagedConfigurationForDevice = a})+      . _Default+      . _Coerce++instance FromJSON+           ManagedConfigurationsForDeviceListResponse+         where+        parseJSON+          = withObject+              "ManagedConfigurationsForDeviceListResponse"+              (\ o ->+                 ManagedConfigurationsForDeviceListResponse' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#managedConfigurationsForDeviceListResponse")+                     <*>+                     (o .:? "managedConfigurationForDevice" .!= mempty))++instance ToJSON+           ManagedConfigurationsForDeviceListResponse+         where+        toJSON+          ManagedConfigurationsForDeviceListResponse'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _mcfdlrKind),+                  ("managedConfigurationForDevice" .=) <$>+                    _mcfdlrManagedConfigurationForDevice])++--+-- /See:/ 'productsGenerateApprovalURLResponse' smart constructor.+newtype ProductsGenerateApprovalURLResponse =+  ProductsGenerateApprovalURLResponse'+    { _pgaurURL :: Maybe Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ProductsGenerateApprovalURLResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pgaurURL'+productsGenerateApprovalURLResponse+    :: ProductsGenerateApprovalURLResponse+productsGenerateApprovalURLResponse =+  ProductsGenerateApprovalURLResponse' {_pgaurURL = Nothing}+++-- | A URL that can be rendered in an iframe to display the permissions (if+-- any) of a product. This URL can be used to approve the product only once+-- and only within 24 hours of being generated, using the Products.approve+-- call. If the product is currently unapproved and has no permissions,+-- this URL will point to an empty page. If the product is currently+-- approved, a URL will only be generated if that product has added+-- permissions since it was last approved, and the URL will only display+-- those new permissions that have not yet been accepted.+pgaurURL :: Lens' ProductsGenerateApprovalURLResponse (Maybe Text)+pgaurURL = lens _pgaurURL (\ s a -> s{_pgaurURL = a})++instance FromJSON ProductsGenerateApprovalURLResponse+         where+        parseJSON+          = withObject "ProductsGenerateApprovalURLResponse"+              (\ o ->+                 ProductsGenerateApprovalURLResponse' <$>+                   (o .:? "url"))++instance ToJSON ProductsGenerateApprovalURLResponse+         where+        toJSON ProductsGenerateApprovalURLResponse'{..}+          = object (catMaybes [("url" .=) <$> _pgaurURL])++-- | Definition of a managed Google Play store page, made of a localized name+-- and links to other pages. A page also contains clusters defined as a+-- subcollection.+--+-- /See:/ 'storePage' smart constructor.+data StorePage =+  StorePage'+    { _spKind :: !Text+    , _spLink :: !(Maybe [Text])+    , _spName :: !(Maybe [LocalizedText])+    , _spId   :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'StorePage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'spKind'+--+-- * 'spLink'+--+-- * 'spName'+--+-- * 'spId'+storePage+    :: StorePage+storePage =+  StorePage'+    { _spKind = "androidenterprise#storePage"+    , _spLink = Nothing+    , _spName = Nothing+    , _spId = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#storePage\".+spKind :: Lens' StorePage Text+spKind = lens _spKind (\ s a -> s{_spKind = a})++-- | Ordered list of pages a user should be able to reach from this page. The+-- list can\'t include this page. It is recommended that the basic pages+-- are created first, before adding the links between pages. The API+-- doesn\'t verify that the pages exist or the pages are reachable.+spLink :: Lens' StorePage [Text]+spLink+  = lens _spLink (\ s a -> s{_spLink = a}) . _Default .+      _Coerce++-- | Ordered list of localized strings giving the name of this page. The text+-- displayed is the one that best matches the user locale, or the first+-- entry if there is no good match. There needs to be at least one entry.+spName :: Lens' StorePage [LocalizedText]+spName+  = lens _spName (\ s a -> s{_spName = a}) . _Default .+      _Coerce++-- | Unique ID of this page. Assigned by the server. Immutable once assigned.+spId :: Lens' StorePage (Maybe Text)+spId = lens _spId (\ s a -> s{_spId = a})++instance FromJSON StorePage where+        parseJSON+          = withObject "StorePage"+              (\ o ->+                 StorePage' <$>+                   (o .:? "kind" .!= "androidenterprise#storePage") <*>+                     (o .:? "link" .!= mempty)+                     <*> (o .:? "name" .!= mempty)+                     <*> (o .:? "id"))++instance ToJSON StorePage where+        toJSON StorePage'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _spKind), ("link" .=) <$> _spLink,+                  ("name" .=) <$> _spName, ("id" .=) <$> _spId])++--+-- /See:/ 'enterprisesSendTestPushNotificationResponse' smart constructor.+data EnterprisesSendTestPushNotificationResponse =+  EnterprisesSendTestPushNotificationResponse'+    { _estpnrTopicName :: !(Maybe Text)+    , _estpnrMessageId :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EnterprisesSendTestPushNotificationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'estpnrTopicName'+--+-- * 'estpnrMessageId'+enterprisesSendTestPushNotificationResponse+    :: EnterprisesSendTestPushNotificationResponse+enterprisesSendTestPushNotificationResponse =+  EnterprisesSendTestPushNotificationResponse'+    {_estpnrTopicName = Nothing, _estpnrMessageId = Nothing}+++-- | The name of the Cloud Pub\/Sub topic to which notifications for this+-- enterprise\'s enrolled account will be sent.+estpnrTopicName :: Lens' EnterprisesSendTestPushNotificationResponse (Maybe Text)+estpnrTopicName+  = lens _estpnrTopicName+      (\ s a -> s{_estpnrTopicName = a})++-- | The message ID of the test push notification that was sent.+estpnrMessageId :: Lens' EnterprisesSendTestPushNotificationResponse (Maybe Text)+estpnrMessageId+  = lens _estpnrMessageId+      (\ s a -> s{_estpnrMessageId = a})++instance FromJSON+           EnterprisesSendTestPushNotificationResponse+         where+        parseJSON+          = withObject+              "EnterprisesSendTestPushNotificationResponse"+              (\ o ->+                 EnterprisesSendTestPushNotificationResponse' <$>+                   (o .:? "topicName") <*> (o .:? "messageId"))++instance ToJSON+           EnterprisesSendTestPushNotificationResponse+         where+        toJSON+          EnterprisesSendTestPushNotificationResponse'{..}+          = object+              (catMaybes+                 [("topicName" .=) <$> _estpnrTopicName,+                  ("messageId" .=) <$> _estpnrMessageId])++-- | A service account identity, including the name and credentials that can+-- be used to authenticate as the service account.+--+-- /See:/ 'serviceAccount' smart constructor.+data ServiceAccount =+  ServiceAccount'+    { _saKind :: !Text+    , _saKey  :: !(Maybe ServiceAccountKey)+    , _saName :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ServiceAccount' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'saKind'+--+-- * 'saKey'+--+-- * 'saName'+serviceAccount+    :: ServiceAccount+serviceAccount =+  ServiceAccount'+    { _saKind = "androidenterprise#serviceAccount"+    , _saKey = Nothing+    , _saName = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#serviceAccount\".+saKind :: Lens' ServiceAccount Text+saKind = lens _saKind (\ s a -> s{_saKind = a})++-- | Credentials that can be used to authenticate as this ServiceAccount.+saKey :: Lens' ServiceAccount (Maybe ServiceAccountKey)+saKey = lens _saKey (\ s a -> s{_saKey = a})++-- | The account name of the service account, in the form of an email+-- address. Assigned by the server.+saName :: Lens' ServiceAccount (Maybe Text)+saName = lens _saName (\ s a -> s{_saName = a})++instance FromJSON ServiceAccount where+        parseJSON+          = withObject "ServiceAccount"+              (\ o ->+                 ServiceAccount' <$>+                   (o .:? "kind" .!= "androidenterprise#serviceAccount")+                     <*> (o .:? "key")+                     <*> (o .:? "name"))++instance ToJSON ServiceAccount where+        toJSON ServiceAccount'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _saKind), ("key" .=) <$> _saKey,+                  ("name" .=) <$> _saName])++-- | A variable set is a key-value pair of EMM-provided placeholders and its+-- corresponding value, which is attributed to a user. For example,+-- $FIRSTNAME could be a placeholder, and its value could be Alice.+-- Placeholders should start with a \'$\' sign and should be alphanumeric+-- only.+--+-- /See:/ 'variableSet' smart constructor.+data VariableSet =+  VariableSet'+    { _vsKind        :: !Text+    , _vsUserValue   :: !(Maybe Text)+    , _vsPlaceholder :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VariableSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsKind'+--+-- * 'vsUserValue'+--+-- * 'vsPlaceholder'+variableSet+    :: VariableSet+variableSet =+  VariableSet'+    { _vsKind = "androidenterprise#variableSet"+    , _vsUserValue = Nothing+    , _vsPlaceholder = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#variableSet\".+vsKind :: Lens' VariableSet Text+vsKind = lens _vsKind (\ s a -> s{_vsKind = a})++-- | The value of the placeholder, specific to the user.+vsUserValue :: Lens' VariableSet (Maybe Text)+vsUserValue+  = lens _vsUserValue (\ s a -> s{_vsUserValue = a})++-- | The placeholder string; defined by EMM.+vsPlaceholder :: Lens' VariableSet (Maybe Text)+vsPlaceholder+  = lens _vsPlaceholder+      (\ s a -> s{_vsPlaceholder = a})++instance FromJSON VariableSet where+        parseJSON+          = withObject "VariableSet"+              (\ o ->+                 VariableSet' <$>+                   (o .:? "kind" .!= "androidenterprise#variableSet")+                     <*> (o .:? "userValue")+                     <*> (o .:? "placeholder"))++instance ToJSON VariableSet where+        toJSON VariableSet'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _vsKind),+                  ("userValue" .=) <$> _vsUserValue,+                  ("placeholder" .=) <$> _vsPlaceholder])++-- | An event generated when a new version of an app is uploaded to Google+-- Play. Notifications are sent for new public versions only: alpha, beta,+-- or canary versions do not generate this event. To fetch up-to-date+-- version history for an app, use Products.Get on the EMM API.+--+-- /See:/ 'appUpdateEvent' smart constructor.+newtype AppUpdateEvent =+  AppUpdateEvent'+    { _aueProductId :: Maybe Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AppUpdateEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aueProductId'+appUpdateEvent+    :: AppUpdateEvent+appUpdateEvent = AppUpdateEvent' {_aueProductId = Nothing}+++-- | The id of the product (e.g. \"app:com.google.android.gm\") that was+-- updated. This field will always be present.+aueProductId :: Lens' AppUpdateEvent (Maybe Text)+aueProductId+  = lens _aueProductId (\ s a -> s{_aueProductId = a})++instance FromJSON AppUpdateEvent where+        parseJSON+          = withObject "AppUpdateEvent"+              (\ o -> AppUpdateEvent' <$> (o .:? "productId"))++instance ToJSON AppUpdateEvent where+        toJSON AppUpdateEvent'{..}+          = object+              (catMaybes [("productId" .=) <$> _aueProductId])++-- | The matching enterprise resources.+--+-- /See:/ 'enterprisesListResponse' smart constructor.+data EnterprisesListResponse =+  EnterprisesListResponse'+    { _elrKind       :: !Text+    , _elrEnterprise :: !(Maybe [Enterprise])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EnterprisesListResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'elrKind'+--+-- * 'elrEnterprise'+enterprisesListResponse+    :: EnterprisesListResponse+enterprisesListResponse =+  EnterprisesListResponse'+    { _elrKind = "androidenterprise#enterprisesListResponse"+    , _elrEnterprise = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#enterprisesListResponse\".+elrKind :: Lens' EnterprisesListResponse Text+elrKind = lens _elrKind (\ s a -> s{_elrKind = a})++-- | An enterprise.+elrEnterprise :: Lens' EnterprisesListResponse [Enterprise]+elrEnterprise+  = lens _elrEnterprise+      (\ s a -> s{_elrEnterprise = a})+      . _Default+      . _Coerce++instance FromJSON EnterprisesListResponse where+        parseJSON+          = withObject "EnterprisesListResponse"+              (\ o ->+                 EnterprisesListResponse' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#enterprisesListResponse")+                     <*> (o .:? "enterprise" .!= mempty))++instance ToJSON EnterprisesListResponse where+        toJSON EnterprisesListResponse'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _elrKind),+                  ("enterprise" .=) <$> _elrEnterprise])++-- | A resource returned by the PullNotificationSet API, which contains a+-- collection of notifications for enterprises associated with the service+-- account authenticated for the request.+--+-- /See:/ 'notificationSet' smart constructor.+data NotificationSet =+  NotificationSet'+    { _nsNotificationSetId :: !(Maybe Text)+    , _nsNotification      :: !(Maybe [Notification])+    , _nsKind              :: !Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NotificationSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nsNotificationSetId'+--+-- * 'nsNotification'+--+-- * 'nsKind'+notificationSet+    :: NotificationSet+notificationSet =+  NotificationSet'+    { _nsNotificationSetId = Nothing+    , _nsNotification = Nothing+    , _nsKind = "androidenterprise#notificationSet"+    }+++-- | The notification set ID, required to mark the notification as received+-- with the Enterprises.AcknowledgeNotification API. This will be omitted+-- if no notifications are present.+nsNotificationSetId :: Lens' NotificationSet (Maybe Text)+nsNotificationSetId+  = lens _nsNotificationSetId+      (\ s a -> s{_nsNotificationSetId = a})++-- | The notifications received, or empty if no notifications are present.+nsNotification :: Lens' NotificationSet [Notification]+nsNotification+  = lens _nsNotification+      (\ s a -> s{_nsNotification = a})+      . _Default+      . _Coerce++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#notificationSet\".+nsKind :: Lens' NotificationSet Text+nsKind = lens _nsKind (\ s a -> s{_nsKind = a})++instance FromJSON NotificationSet where+        parseJSON+          = withObject "NotificationSet"+              (\ o ->+                 NotificationSet' <$>+                   (o .:? "notificationSetId") <*>+                     (o .:? "notification" .!= mempty)+                     <*>+                     (o .:? "kind" .!=+                        "androidenterprise#notificationSet"))++instance ToJSON NotificationSet where+        toJSON NotificationSet'{..}+          = object+              (catMaybes+                 [("notificationSetId" .=) <$> _nsNotificationSetId,+                  ("notification" .=) <$> _nsNotification,+                  Just ("kind" .= _nsKind)])++-- | Represents the list of app restrictions available to be pre-configured+-- for the product.+--+-- /See:/ 'appRestrictionsSchema' smart constructor.+data AppRestrictionsSchema =+  AppRestrictionsSchema'+    { _arsKind         :: !Text+    , _arsRestrictions :: !(Maybe [AppRestrictionsSchemaRestriction])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AppRestrictionsSchema' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'arsKind'+--+-- * 'arsRestrictions'+appRestrictionsSchema+    :: AppRestrictionsSchema+appRestrictionsSchema =+  AppRestrictionsSchema'+    { _arsKind = "androidenterprise#appRestrictionsSchema"+    , _arsRestrictions = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#appRestrictionsSchema\".+arsKind :: Lens' AppRestrictionsSchema Text+arsKind = lens _arsKind (\ s a -> s{_arsKind = a})++-- | The set of restrictions that make up this schema.+arsRestrictions :: Lens' AppRestrictionsSchema [AppRestrictionsSchemaRestriction]+arsRestrictions+  = lens _arsRestrictions+      (\ s a -> s{_arsRestrictions = a})+      . _Default+      . _Coerce++instance FromJSON AppRestrictionsSchema where+        parseJSON+          = withObject "AppRestrictionsSchema"+              (\ o ->+                 AppRestrictionsSchema' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#appRestrictionsSchema")+                     <*> (o .:? "restrictions" .!= mempty))++instance ToJSON AppRestrictionsSchema where+        toJSON AppRestrictionsSchema'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _arsKind),+                  ("restrictions" .=) <$> _arsRestrictions])++-- | Icon for a web app.+--+-- /See:/ 'webAppIcon' smart constructor.+newtype WebAppIcon =+  WebAppIcon'+    { _waiImageData :: Maybe Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'WebAppIcon' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'waiImageData'+webAppIcon+    :: WebAppIcon+webAppIcon = WebAppIcon' {_waiImageData = Nothing}+++-- | The actual bytes of the image in a base64url encoded string (c.f.+-- RFC4648, section 5 \"Base 64 Encoding with URL and Filename Safe+-- Alphabet\"). - The image type can be png or jpg. - The image should+-- ideally be square. - The image should ideally have a size of 512x512.+waiImageData :: Lens' WebAppIcon (Maybe Text)+waiImageData+  = lens _waiImageData (\ s a -> s{_waiImageData = a})++instance FromJSON WebAppIcon where+        parseJSON+          = withObject "WebAppIcon"+              (\ o -> WebAppIcon' <$> (o .:? "imageData"))++instance ToJSON WebAppIcon where+        toJSON WebAppIcon'{..}+          = object+              (catMaybes [("imageData" .=) <$> _waiImageData])++-- | A localized string with its locale.+--+-- /See:/ 'localizedText' smart constructor.+data LocalizedText =+  LocalizedText'+    { _ltText   :: !(Maybe Text)+    , _ltLocale :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'LocalizedText' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ltText'+--+-- * 'ltLocale'+localizedText+    :: LocalizedText+localizedText = LocalizedText' {_ltText = Nothing, _ltLocale = Nothing}+++-- | The text localized in the associated locale.+ltText :: Lens' LocalizedText (Maybe Text)+ltText = lens _ltText (\ s a -> s{_ltText = a})++-- | The BCP47 tag for a locale. (e.g. \"en-US\", \"de\").+ltLocale :: Lens' LocalizedText (Maybe Text)+ltLocale = lens _ltLocale (\ s a -> s{_ltLocale = a})++instance FromJSON LocalizedText where+        parseJSON+          = withObject "LocalizedText"+              (\ o ->+                 LocalizedText' <$>+                   (o .:? "text") <*> (o .:? "locale"))++instance ToJSON LocalizedText where+        toJSON LocalizedText'{..}+          = object+              (catMaybes+                 [("text" .=) <$> _ltText,+                  ("locale" .=) <$> _ltLocale])++-- | A UserToken is used by a user when setting up a managed device or+-- profile with their managed Google Play account on a device. When the+-- user enters their email address and token (activation code) the+-- appropriate EMM app can be automatically downloaded.+--+-- /See:/ 'userToken' smart constructor.+data UserToken =+  UserToken'+    { _utKind   :: !Text+    , _utToken  :: !(Maybe Text)+    , _utUserId :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserToken' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'utKind'+--+-- * 'utToken'+--+-- * 'utUserId'+userToken+    :: UserToken+userToken =+  UserToken'+    { _utKind = "androidenterprise#userToken"+    , _utToken = Nothing+    , _utUserId = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#userToken\".+utKind :: Lens' UserToken Text+utKind = lens _utKind (\ s a -> s{_utKind = a})++-- | The token (activation code) to be entered by the user. This consists of+-- a sequence of decimal digits. Note that the leading digit may be 0.+utToken :: Lens' UserToken (Maybe Text)+utToken = lens _utToken (\ s a -> s{_utToken = a})++-- | The unique ID for the user.+utUserId :: Lens' UserToken (Maybe Text)+utUserId = lens _utUserId (\ s a -> s{_utUserId = a})++instance FromJSON UserToken where+        parseJSON+          = withObject "UserToken"+              (\ o ->+                 UserToken' <$>+                   (o .:? "kind" .!= "androidenterprise#userToken") <*>+                     (o .:? "token")+                     <*> (o .:? "userId"))++instance ToJSON UserToken where+        toJSON UserToken'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _utKind), ("token" .=) <$> _utToken,+                  ("userId" .=) <$> _utUserId])++--+-- /See:/ 'administratorWebTokenSpecPrivateApps' smart constructor.+newtype AdministratorWebTokenSpecPrivateApps =+  AdministratorWebTokenSpecPrivateApps'+    { _awtspaEnabled :: Maybe Bool+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AdministratorWebTokenSpecPrivateApps' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'awtspaEnabled'+administratorWebTokenSpecPrivateApps+    :: AdministratorWebTokenSpecPrivateApps+administratorWebTokenSpecPrivateApps =+  AdministratorWebTokenSpecPrivateApps' {_awtspaEnabled = Nothing}+++-- | Whether the Private Apps page is displayed. Default is true.+awtspaEnabled :: Lens' AdministratorWebTokenSpecPrivateApps (Maybe Bool)+awtspaEnabled+  = lens _awtspaEnabled+      (\ s a -> s{_awtspaEnabled = a})++instance FromJSON+           AdministratorWebTokenSpecPrivateApps+         where+        parseJSON+          = withObject "AdministratorWebTokenSpecPrivateApps"+              (\ o ->+                 AdministratorWebTokenSpecPrivateApps' <$>+                   (o .:? "enabled"))++instance ToJSON AdministratorWebTokenSpecPrivateApps+         where+        toJSON AdministratorWebTokenSpecPrivateApps'{..}+          = object+              (catMaybes [("enabled" .=) <$> _awtspaEnabled])++-- | The device resources for the user.+--+-- /See:/ 'devicesListResponse' smart constructor.+data DevicesListResponse =+  DevicesListResponse'+    { _dlrKind   :: !Text+    , _dlrDevice :: !(Maybe [Device])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DevicesListResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlrKind'+--+-- * 'dlrDevice'+devicesListResponse+    :: DevicesListResponse+devicesListResponse =+  DevicesListResponse'+    {_dlrKind = "androidenterprise#devicesListResponse", _dlrDevice = Nothing}+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#devicesListResponse\".+dlrKind :: Lens' DevicesListResponse Text+dlrKind = lens _dlrKind (\ s a -> s{_dlrKind = a})++-- | A managed device.+dlrDevice :: Lens' DevicesListResponse [Device]+dlrDevice+  = lens _dlrDevice (\ s a -> s{_dlrDevice = a}) .+      _Default+      . _Coerce++instance FromJSON DevicesListResponse where+        parseJSON+          = withObject "DevicesListResponse"+              (\ o ->+                 DevicesListResponse' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#devicesListResponse")+                     <*> (o .:? "device" .!= mempty))++instance ToJSON DevicesListResponse where+        toJSON DevicesListResponse'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _dlrKind),+                  ("device" .=) <$> _dlrDevice])++--+-- /See:/ 'productSigningCertificate' smart constructor.+data ProductSigningCertificate =+  ProductSigningCertificate'+    { _pscCertificateHashSha256 :: !(Maybe Text)+    , _pscCertificateHashSha1   :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ProductSigningCertificate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pscCertificateHashSha256'+--+-- * 'pscCertificateHashSha1'+productSigningCertificate+    :: ProductSigningCertificate+productSigningCertificate =+  ProductSigningCertificate'+    {_pscCertificateHashSha256 = Nothing, _pscCertificateHashSha1 = Nothing}+++-- | The base64 urlsafe encoded SHA2-256 hash of the certificate.+pscCertificateHashSha256 :: Lens' ProductSigningCertificate (Maybe Text)+pscCertificateHashSha256+  = lens _pscCertificateHashSha256+      (\ s a -> s{_pscCertificateHashSha256 = a})++-- | The base64 urlsafe encoded SHA1 hash of the certificate. (This field is+-- deprecated in favor of SHA2-256. It should not be used and may be+-- removed at any time.)+pscCertificateHashSha1 :: Lens' ProductSigningCertificate (Maybe Text)+pscCertificateHashSha1+  = lens _pscCertificateHashSha1+      (\ s a -> s{_pscCertificateHashSha1 = a})++instance FromJSON ProductSigningCertificate where+        parseJSON+          = withObject "ProductSigningCertificate"+              (\ o ->+                 ProductSigningCertificate' <$>+                   (o .:? "certificateHashSha256") <*>+                     (o .:? "certificateHashSha1"))++instance ToJSON ProductSigningCertificate where+        toJSON ProductSigningCertificate'{..}+          = object+              (catMaybes+                 [("certificateHashSha256" .=) <$>+                    _pscCertificateHashSha256,+                  ("certificateHashSha1" .=) <$>+                    _pscCertificateHashSha1])++-- | An Enterprises resource represents the binding between an EMM and a+-- specific organization. That binding can be instantiated in one of two+-- different ways using this API as follows: - For Google managed domain+-- customers, the process involves using Enterprises.enroll and+-- Enterprises.setAccount (in conjunction with artifacts obtained from the+-- Admin console and the Google API Console) and submitted to the EMM+-- through a more-or-less manual process. - For managed Google Play+-- Accounts customers, the process involves using+-- Enterprises.generateSignupUrl and Enterprises.completeSignup in+-- conjunction with the managed Google Play sign-up UI (Google-provided+-- mechanism) to create the binding without manual steps. As an EMM, you+-- can support either or both approaches in your EMM console. See Create an+-- Enterprise for details.+--+-- /See:/ 'enterprise' smart constructor.+data Enterprise =+  Enterprise'+    { _eKind          :: !Text+    , _eAdministrator :: !(Maybe [Administrator])+    , _ePrimaryDomain :: !(Maybe Text)+    , _eName          :: !(Maybe Text)+    , _eId            :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Enterprise' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eKind'+--+-- * 'eAdministrator'+--+-- * 'ePrimaryDomain'+--+-- * 'eName'+--+-- * 'eId'+enterprise+    :: Enterprise+enterprise =+  Enterprise'+    { _eKind = "androidenterprise#enterprise"+    , _eAdministrator = Nothing+    , _ePrimaryDomain = Nothing+    , _eName = Nothing+    , _eId = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#enterprise\".+eKind :: Lens' Enterprise Text+eKind = lens _eKind (\ s a -> s{_eKind = a})++-- | Admins of the enterprise. This is only supported for enterprises created+-- via the EMM-initiated flow.+eAdministrator :: Lens' Enterprise [Administrator]+eAdministrator+  = lens _eAdministrator+      (\ s a -> s{_eAdministrator = a})+      . _Default+      . _Coerce++-- | The enterprise\'s primary domain, such as \"example.com\".+ePrimaryDomain :: Lens' Enterprise (Maybe Text)+ePrimaryDomain+  = lens _ePrimaryDomain+      (\ s a -> s{_ePrimaryDomain = a})++-- | The name of the enterprise, for example, \"Example, Inc\".+eName :: Lens' Enterprise (Maybe Text)+eName = lens _eName (\ s a -> s{_eName = a})++-- | The unique ID for the enterprise.+eId :: Lens' Enterprise (Maybe Text)+eId = lens _eId (\ s a -> s{_eId = a})++instance FromJSON Enterprise where+        parseJSON+          = withObject "Enterprise"+              (\ o ->+                 Enterprise' <$>+                   (o .:? "kind" .!= "androidenterprise#enterprise") <*>+                     (o .:? "administrator" .!= mempty)+                     <*> (o .:? "primaryDomain")+                     <*> (o .:? "name")+                     <*> (o .:? "id"))++instance ToJSON Enterprise where+        toJSON Enterprise'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _eKind),+                  ("administrator" .=) <$> _eAdministrator,+                  ("primaryDomain" .=) <$> _ePrimaryDomain,+                  ("name" .=) <$> _eName, ("id" .=) <$> _eId])++-- | An event generated when an app installation failed on a device+--+-- /See:/ 'installFailureEvent' smart constructor.+data InstallFailureEvent =+  InstallFailureEvent'+    { _ifeFailureReason  :: !(Maybe Text)+    , _ifeFailureDetails :: !(Maybe Text)+    , _ifeUserId         :: !(Maybe Text)+    , _ifeDeviceId       :: !(Maybe Text)+    , _ifeProductId      :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstallFailureEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ifeFailureReason'+--+-- * 'ifeFailureDetails'+--+-- * 'ifeUserId'+--+-- * 'ifeDeviceId'+--+-- * 'ifeProductId'+installFailureEvent+    :: InstallFailureEvent+installFailureEvent =+  InstallFailureEvent'+    { _ifeFailureReason = Nothing+    , _ifeFailureDetails = Nothing+    , _ifeUserId = Nothing+    , _ifeDeviceId = Nothing+    , _ifeProductId = Nothing+    }+++-- | The reason for the installation failure. This field will always be+-- present.+ifeFailureReason :: Lens' InstallFailureEvent (Maybe Text)+ifeFailureReason+  = lens _ifeFailureReason+      (\ s a -> s{_ifeFailureReason = a})++-- | Additional details on the failure if applicable.+ifeFailureDetails :: Lens' InstallFailureEvent (Maybe Text)+ifeFailureDetails+  = lens _ifeFailureDetails+      (\ s a -> s{_ifeFailureDetails = a})++-- | The ID of the user. This field will always be present.+ifeUserId :: Lens' InstallFailureEvent (Maybe Text)+ifeUserId+  = lens _ifeUserId (\ s a -> s{_ifeUserId = a})++-- | The Android ID of the device. This field will always be present.+ifeDeviceId :: Lens' InstallFailureEvent (Maybe Text)+ifeDeviceId+  = lens _ifeDeviceId (\ s a -> s{_ifeDeviceId = a})++-- | The id of the product (e.g. \"app:com.google.android.gm\") for which the+-- install failure event occured. This field will always be present.+ifeProductId :: Lens' InstallFailureEvent (Maybe Text)+ifeProductId+  = lens _ifeProductId (\ s a -> s{_ifeProductId = a})++instance FromJSON InstallFailureEvent where+        parseJSON+          = withObject "InstallFailureEvent"+              (\ o ->+                 InstallFailureEvent' <$>+                   (o .:? "failureReason") <*> (o .:? "failureDetails")+                     <*> (o .:? "userId")+                     <*> (o .:? "deviceId")+                     <*> (o .:? "productId"))++instance ToJSON InstallFailureEvent where+        toJSON InstallFailureEvent'{..}+          = object+              (catMaybes+                 [("failureReason" .=) <$> _ifeFailureReason,+                  ("failureDetails" .=) <$> _ifeFailureDetails,+                  ("userId" .=) <$> _ifeUserId,+                  ("deviceId" .=) <$> _ifeDeviceId,+                  ("productId" .=) <$> _ifeProductId])++-- | The managed configuration resources for the user.+--+-- /See:/ 'managedConfigurationsForUserListResponse' smart constructor.+data ManagedConfigurationsForUserListResponse =+  ManagedConfigurationsForUserListResponse'+    { _mcfulrManagedConfigurationForUser :: !(Maybe [ManagedConfiguration])+    , _mcfulrKind                        :: !Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ManagedConfigurationsForUserListResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mcfulrManagedConfigurationForUser'+--+-- * 'mcfulrKind'+managedConfigurationsForUserListResponse+    :: ManagedConfigurationsForUserListResponse+managedConfigurationsForUserListResponse =+  ManagedConfigurationsForUserListResponse'+    { _mcfulrManagedConfigurationForUser = Nothing+    , _mcfulrKind = "androidenterprise#managedConfigurationsForUserListResponse"+    }+++-- | A managed configuration for an app for a specific user.+mcfulrManagedConfigurationForUser :: Lens' ManagedConfigurationsForUserListResponse [ManagedConfiguration]+mcfulrManagedConfigurationForUser+  = lens _mcfulrManagedConfigurationForUser+      (\ s a -> s{_mcfulrManagedConfigurationForUser = a})+      . _Default+      . _Coerce++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#managedConfigurationsForUserListResponse\".+mcfulrKind :: Lens' ManagedConfigurationsForUserListResponse Text+mcfulrKind+  = lens _mcfulrKind (\ s a -> s{_mcfulrKind = a})++instance FromJSON+           ManagedConfigurationsForUserListResponse+         where+        parseJSON+          = withObject+              "ManagedConfigurationsForUserListResponse"+              (\ o ->+                 ManagedConfigurationsForUserListResponse' <$>+                   (o .:? "managedConfigurationForUser" .!= mempty) <*>+                     (o .:? "kind" .!=+                        "androidenterprise#managedConfigurationsForUserListResponse"))++instance ToJSON+           ManagedConfigurationsForUserListResponse+         where+        toJSON ManagedConfigurationsForUserListResponse'{..}+          = object+              (catMaybes+                 [("managedConfigurationForUser" .=) <$>+                    _mcfulrManagedConfigurationForUser,+                  Just ("kind" .= _mcfulrKind)])++-- | A configuration variables resource contains the managed configuration+-- settings ID to be applied to a single user, as well as the variable set+-- that is attributed to the user. The variable set will be used to replace+-- placeholders in the managed configuration settings.+--+-- /See:/ 'configurationVariables' smart constructor.+data ConfigurationVariables =+  ConfigurationVariables'+    { _cvKind        :: !Text+    , _cvMcmId       :: !(Maybe Text)+    , _cvVariableSet :: !(Maybe [VariableSet])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ConfigurationVariables' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cvKind'+--+-- * 'cvMcmId'+--+-- * 'cvVariableSet'+configurationVariables+    :: ConfigurationVariables+configurationVariables =+  ConfigurationVariables'+    { _cvKind = "androidenterprise#configurationVariables"+    , _cvMcmId = Nothing+    , _cvVariableSet = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#configurationVariables\".+cvKind :: Lens' ConfigurationVariables Text+cvKind = lens _cvKind (\ s a -> s{_cvKind = a})++-- | The ID of the managed configurations settings.+cvMcmId :: Lens' ConfigurationVariables (Maybe Text)+cvMcmId = lens _cvMcmId (\ s a -> s{_cvMcmId = a})++-- | The variable set that is attributed to the user.+cvVariableSet :: Lens' ConfigurationVariables [VariableSet]+cvVariableSet+  = lens _cvVariableSet+      (\ s a -> s{_cvVariableSet = a})+      . _Default+      . _Coerce++instance FromJSON ConfigurationVariables where+        parseJSON+          = withObject "ConfigurationVariables"+              (\ o ->+                 ConfigurationVariables' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#configurationVariables")+                     <*> (o .:? "mcmId")+                     <*> (o .:? "variableSet" .!= mempty))++instance ToJSON ConfigurationVariables where+        toJSON ConfigurationVariables'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _cvKind), ("mcmId" .=) <$> _cvMcmId,+                  ("variableSet" .=) <$> _cvVariableSet])++-- | General setting for the managed Google Play store layout, currently only+-- specifying the page to display the first time the store is opened.+--+-- /See:/ 'storeLayout' smart constructor.+data StoreLayout =+  StoreLayout'+    { _slStoreLayoutType :: !(Maybe Text)+    , _slKind            :: !Text+    , _slHomepageId      :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'StoreLayout' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'slStoreLayoutType'+--+-- * 'slKind'+--+-- * 'slHomepageId'+storeLayout+    :: StoreLayout+storeLayout =+  StoreLayout'+    { _slStoreLayoutType = Nothing+    , _slKind = "androidenterprise#storeLayout"+    , _slHomepageId = Nothing+    }+++-- | The store layout type. By default, this value is set to \"basic\" if the+-- homepageId field is not set, and to \"custom\" otherwise. If set to+-- \"basic\", the layout will consist of all approved apps that have been+-- whitelisted for the user.+slStoreLayoutType :: Lens' StoreLayout (Maybe Text)+slStoreLayoutType+  = lens _slStoreLayoutType+      (\ s a -> s{_slStoreLayoutType = a})++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#storeLayout\".+slKind :: Lens' StoreLayout Text+slKind = lens _slKind (\ s a -> s{_slKind = a})++-- | The ID of the store page to be used as the homepage. The homepage is the+-- first page shown in the managed Google Play Store. Not specifying a+-- homepage is equivalent to setting the store layout type to \"basic\".+slHomepageId :: Lens' StoreLayout (Maybe Text)+slHomepageId+  = lens _slHomepageId (\ s a -> s{_slHomepageId = a})++instance FromJSON StoreLayout where+        parseJSON+          = withObject "StoreLayout"+              (\ o ->+                 StoreLayout' <$>+                   (o .:? "storeLayoutType") <*>+                     (o .:? "kind" .!= "androidenterprise#storeLayout")+                     <*> (o .:? "homepageId"))++instance ToJSON StoreLayout where+        toJSON StoreLayout'{..}+          = object+              (catMaybes+                 [("storeLayoutType" .=) <$> _slStoreLayoutType,+                  Just ("kind" .= _slKind),+                  ("homepageId" .=) <$> _slHomepageId])++-- | An event generated when a new app version is uploaded to Google Play and+-- its app restrictions schema changed. To fetch the app restrictions+-- schema for an app, use Products.getAppRestrictionsSchema on the EMM API.+--+-- /See:/ 'appRestrictionsSchemaChangeEvent' smart constructor.+newtype AppRestrictionsSchemaChangeEvent =+  AppRestrictionsSchemaChangeEvent'+    { _arsceProductId :: Maybe Text+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AppRestrictionsSchemaChangeEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'arsceProductId'+appRestrictionsSchemaChangeEvent+    :: AppRestrictionsSchemaChangeEvent+appRestrictionsSchemaChangeEvent =+  AppRestrictionsSchemaChangeEvent' {_arsceProductId = Nothing}+++-- | The id of the product (e.g. \"app:com.google.android.gm\") for which the+-- app restriction schema changed. This field will always be present.+arsceProductId :: Lens' AppRestrictionsSchemaChangeEvent (Maybe Text)+arsceProductId+  = lens _arsceProductId+      (\ s a -> s{_arsceProductId = a})++instance FromJSON AppRestrictionsSchemaChangeEvent+         where+        parseJSON+          = withObject "AppRestrictionsSchemaChangeEvent"+              (\ o ->+                 AppRestrictionsSchemaChangeEvent' <$>+                   (o .:? "productId"))++instance ToJSON AppRestrictionsSchemaChangeEvent+         where+        toJSON AppRestrictionsSchemaChangeEvent'{..}+          = object+              (catMaybes [("productId" .=) <$> _arsceProductId])++-- | An event generated when a new device is ready to be managed.+--+-- /See:/ 'newDeviceEvent' smart constructor.+data NewDeviceEvent =+  NewDeviceEvent'+    { _ndeUserId         :: !(Maybe Text)+    , _ndeDpcPackageName :: !(Maybe Text)+    , _ndeDeviceId       :: !(Maybe Text)+    , _ndeManagementType :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NewDeviceEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ndeUserId'+--+-- * 'ndeDpcPackageName'+--+-- * 'ndeDeviceId'+--+-- * 'ndeManagementType'+newDeviceEvent+    :: NewDeviceEvent+newDeviceEvent =+  NewDeviceEvent'+    { _ndeUserId = Nothing+    , _ndeDpcPackageName = Nothing+    , _ndeDeviceId = Nothing+    , _ndeManagementType = Nothing+    }+++-- | The ID of the user. This field will always be present.+ndeUserId :: Lens' NewDeviceEvent (Maybe Text)+ndeUserId+  = lens _ndeUserId (\ s a -> s{_ndeUserId = a})++-- | Policy app on the device.+ndeDpcPackageName :: Lens' NewDeviceEvent (Maybe Text)+ndeDpcPackageName+  = lens _ndeDpcPackageName+      (\ s a -> s{_ndeDpcPackageName = a})++-- | The Android ID of the device. This field will always be present.+ndeDeviceId :: Lens' NewDeviceEvent (Maybe Text)+ndeDeviceId+  = lens _ndeDeviceId (\ s a -> s{_ndeDeviceId = a})++-- | Identifies the extent to which the device is controlled by an Android+-- EMM in various deployment configurations. Possible values include: -+-- \"managedDevice\", a device where the DPC is set as device owner, -+-- \"managedProfile\", a device where the DPC is set as profile owner.+ndeManagementType :: Lens' NewDeviceEvent (Maybe Text)+ndeManagementType+  = lens _ndeManagementType+      (\ s a -> s{_ndeManagementType = a})++instance FromJSON NewDeviceEvent where+        parseJSON+          = withObject "NewDeviceEvent"+              (\ o ->+                 NewDeviceEvent' <$>+                   (o .:? "userId") <*> (o .:? "dpcPackageName") <*>+                     (o .:? "deviceId")+                     <*> (o .:? "managementType"))++instance ToJSON NewDeviceEvent where+        toJSON NewDeviceEvent'{..}+          = object+              (catMaybes+                 [("userId" .=) <$> _ndeUserId,+                  ("dpcPackageName" .=) <$> _ndeDpcPackageName,+                  ("deviceId" .=) <$> _ndeDeviceId,+                  ("managementType" .=) <$> _ndeManagementType])++-- | The device policy for a given managed device.+--+-- /See:/ 'policy' smart constructor.+data Policy =+  Policy'+    { _pProductAvailabilityPolicy :: !(Maybe Text)+    , _pProductPolicy             :: !(Maybe [ProductPolicy])+    , _pMaintenanceWindow         :: !(Maybe MaintenanceWindow)+    , _pAutoUpdatePolicy          :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Policy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pProductAvailabilityPolicy'+--+-- * 'pProductPolicy'+--+-- * 'pMaintenanceWindow'+--+-- * 'pAutoUpdatePolicy'+policy+    :: Policy+policy =+  Policy'+    { _pProductAvailabilityPolicy = Nothing+    , _pProductPolicy = Nothing+    , _pMaintenanceWindow = Nothing+    , _pAutoUpdatePolicy = Nothing+    }+++-- | The availability granted to the device for the specified products.+-- \"all\" gives the device access to all products, regardless of approval+-- status. \"all\" does not enable automatic visibility of \"alpha\" or+-- \"beta\" tracks. \"whitelist\" grants the device access the products+-- specified in productPolicy[]. Only products that are approved or+-- products that were previously approved (products with revoked approval)+-- by the enterprise can be whitelisted. If no value is provided, the+-- availability set at the user level is applied by default.+pProductAvailabilityPolicy :: Lens' Policy (Maybe Text)+pProductAvailabilityPolicy+  = lens _pProductAvailabilityPolicy+      (\ s a -> s{_pProductAvailabilityPolicy = a})++-- | The list of product policies.+pProductPolicy :: Lens' Policy [ProductPolicy]+pProductPolicy+  = lens _pProductPolicy+      (\ s a -> s{_pProductPolicy = a})+      . _Default+      . _Coerce++-- | The maintenance window defining when apps running in the foreground+-- should be updated.+pMaintenanceWindow :: Lens' Policy (Maybe MaintenanceWindow)+pMaintenanceWindow+  = lens _pMaintenanceWindow+      (\ s a -> s{_pMaintenanceWindow = a})++-- | The auto-update policy for apps installed on the device.+-- \"choiceToTheUser\" allows the device\'s user to configure the app+-- update policy. \"always\" enables auto updates. \"never\" disables auto+-- updates. \"wifiOnly\" enables auto updates only when the device is+-- connected to wifi.+pAutoUpdatePolicy :: Lens' Policy (Maybe Text)+pAutoUpdatePolicy+  = lens _pAutoUpdatePolicy+      (\ s a -> s{_pAutoUpdatePolicy = a})++instance FromJSON Policy where+        parseJSON+          = withObject "Policy"+              (\ o ->+                 Policy' <$>+                   (o .:? "productAvailabilityPolicy") <*>+                     (o .:? "productPolicy" .!= mempty)+                     <*> (o .:? "maintenanceWindow")+                     <*> (o .:? "autoUpdatePolicy"))++instance ToJSON Policy where+        toJSON Policy'{..}+          = object+              (catMaybes+                 [("productAvailabilityPolicy" .=) <$>+                    _pProductAvailabilityPolicy,+                  ("productPolicy" .=) <$> _pProductPolicy,+                  ("maintenanceWindow" .=) <$> _pMaintenanceWindow,+                  ("autoUpdatePolicy" .=) <$> _pAutoUpdatePolicy])++-- | A token authorizing an admin to access an iframe.+--+-- /See:/ 'administratorWebToken' smart constructor.+data AdministratorWebToken =+  AdministratorWebToken'+    { _awtKind  :: !Text+    , _awtToken :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AdministratorWebToken' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'awtKind'+--+-- * 'awtToken'+administratorWebToken+    :: AdministratorWebToken+administratorWebToken =+  AdministratorWebToken'+    {_awtKind = "androidenterprise#administratorWebToken", _awtToken = Nothing}+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#administratorWebToken\".+awtKind :: Lens' AdministratorWebToken Text+awtKind = lens _awtKind (\ s a -> s{_awtKind = a})++-- | An opaque token to be passed to the Play front-end to generate an+-- iframe.+awtToken :: Lens' AdministratorWebToken (Maybe Text)+awtToken = lens _awtToken (\ s a -> s{_awtToken = a})++instance FromJSON AdministratorWebToken where+        parseJSON+          = withObject "AdministratorWebToken"+              (\ o ->+                 AdministratorWebToken' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#administratorWebToken")+                     <*> (o .:? "token"))++instance ToJSON AdministratorWebToken where+        toJSON AdministratorWebToken'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _awtKind),+                  ("token" .=) <$> _awtToken])++-- | A resource returned by the GenerateSignupUrl API, which contains the+-- Signup URL and Completion Token.+--+-- /See:/ 'signupInfo' smart constructor.+data SignupInfo =+  SignupInfo'+    { _siCompletionToken :: !(Maybe Text)+    , _siKind            :: !Text+    , _siURL             :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SignupInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siCompletionToken'+--+-- * 'siKind'+--+-- * 'siURL'+signupInfo+    :: SignupInfo+signupInfo =+  SignupInfo'+    { _siCompletionToken = Nothing+    , _siKind = "androidenterprise#signupInfo"+    , _siURL = Nothing+    }+++-- | An opaque token that will be required, along with the Enterprise Token,+-- for obtaining the enterprise resource from CompleteSignup.+siCompletionToken :: Lens' SignupInfo (Maybe Text)+siCompletionToken+  = lens _siCompletionToken+      (\ s a -> s{_siCompletionToken = a})++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#signupInfo\".+siKind :: Lens' SignupInfo Text+siKind = lens _siKind (\ s a -> s{_siKind = a})++-- | A URL under which the Admin can sign up for an enterprise. The page+-- pointed to cannot be rendered in an iframe.+siURL :: Lens' SignupInfo (Maybe Text)+siURL = lens _siURL (\ s a -> s{_siURL = a})++instance FromJSON SignupInfo where+        parseJSON+          = withObject "SignupInfo"+              (\ o ->+                 SignupInfo' <$>+                   (o .:? "completionToken") <*>+                     (o .:? "kind" .!= "androidenterprise#signupInfo")+                     <*> (o .:? "url"))++instance ToJSON SignupInfo where+        toJSON SignupInfo'{..}+          = object+              (catMaybes+                 [("completionToken" .=) <$> _siCompletionToken,+                  Just ("kind" .= _siKind), ("url" .=) <$> _siURL])++-- | A Products resource represents an app in the Google Play store that is+-- available to at least some users in the enterprise. (Some apps are+-- restricted to a single enterprise, and no information about them is made+-- available outside that enterprise.) The information provided for each+-- product (localized name, icon, link to the full Google Play details+-- page) is intended to allow a basic representation of the product within+-- an EMM user interface.+--+-- /See:/ 'product' smart constructor.+data Product =+  Product'+    { _pScreenshotURLs             :: !(Maybe [Text])+    , _pLastUpdatedTimestampMillis :: !(Maybe (Textual Int64))+    , _pSmallIconURL               :: !(Maybe Text)+    , _pAuthorName                 :: !(Maybe Text)+    , _pAppTracks                  :: !(Maybe [TrackInfo])+    , _pKind                       :: !Text+    , _pWorkDetailsURL             :: !(Maybe Text)+    , _pRequiresContainerApp       :: !(Maybe Bool)+    , _pCategory                   :: !(Maybe Text)+    , _pAppVersion                 :: !(Maybe [AppVersion])+    , _pProductPricing             :: !(Maybe Text)+    , _pDistributionChannel        :: !(Maybe Text)+    , _pMinAndroidSdkVersion       :: !(Maybe (Textual Int32))+    , _pAvailableCountries         :: !(Maybe [Text])+    , _pAvailableTracks            :: !(Maybe [Text])+    , _pIconURL                    :: !(Maybe Text)+    , _pPermissions                :: !(Maybe [ProductPermission])+    , _pTitle                      :: !(Maybe Text)+    , _pSigningCertificate         :: !(Maybe ProductSigningCertificate)+    , _pContentRating              :: !(Maybe Text)+    , _pProductId                  :: !(Maybe Text)+    , _pRecentChanges              :: !(Maybe Text)+    , _pDescription                :: !(Maybe Text)+    , _pDetailsURL                 :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Product' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pScreenshotURLs'+--+-- * 'pLastUpdatedTimestampMillis'+--+-- * 'pSmallIconURL'+--+-- * 'pAuthorName'+--+-- * 'pAppTracks'+--+-- * 'pKind'+--+-- * 'pWorkDetailsURL'+--+-- * 'pRequiresContainerApp'+--+-- * 'pCategory'+--+-- * 'pAppVersion'+--+-- * 'pProductPricing'+--+-- * 'pDistributionChannel'+--+-- * 'pMinAndroidSdkVersion'+--+-- * 'pAvailableCountries'+--+-- * 'pAvailableTracks'+--+-- * 'pIconURL'+--+-- * 'pPermissions'+--+-- * 'pTitle'+--+-- * 'pSigningCertificate'+--+-- * 'pContentRating'+--+-- * 'pProductId'+--+-- * 'pRecentChanges'+--+-- * 'pDescription'+--+-- * 'pDetailsURL'+product+    :: Product+product =+  Product'+    { _pScreenshotURLs = Nothing+    , _pLastUpdatedTimestampMillis = Nothing+    , _pSmallIconURL = Nothing+    , _pAuthorName = Nothing+    , _pAppTracks = Nothing+    , _pKind = "androidenterprise#product"+    , _pWorkDetailsURL = Nothing+    , _pRequiresContainerApp = Nothing+    , _pCategory = Nothing+    , _pAppVersion = Nothing+    , _pProductPricing = Nothing+    , _pDistributionChannel = Nothing+    , _pMinAndroidSdkVersion = Nothing+    , _pAvailableCountries = Nothing+    , _pAvailableTracks = Nothing+    , _pIconURL = Nothing+    , _pPermissions = Nothing+    , _pTitle = Nothing+    , _pSigningCertificate = Nothing+    , _pContentRating = Nothing+    , _pProductId = Nothing+    , _pRecentChanges = Nothing+    , _pDescription = Nothing+    , _pDetailsURL = Nothing+    }+++-- | A list of screenshot links representing the app.+pScreenshotURLs :: Lens' Product [Text]+pScreenshotURLs+  = lens _pScreenshotURLs+      (\ s a -> s{_pScreenshotURLs = a})+      . _Default+      . _Coerce++-- | The approximate time (within 7 days) the app was last published,+-- expressed in milliseconds since epoch.+pLastUpdatedTimestampMillis :: Lens' Product (Maybe Int64)+pLastUpdatedTimestampMillis+  = lens _pLastUpdatedTimestampMillis+      (\ s a -> s{_pLastUpdatedTimestampMillis = a})+      . mapping _Coerce++-- | A link to a smaller image that can be used as an icon for the product.+-- This image is suitable for use at up to 128px x 128px.+pSmallIconURL :: Lens' Product (Maybe Text)+pSmallIconURL+  = lens _pSmallIconURL+      (\ s a -> s{_pSmallIconURL = a})++-- | The name of the author of the product (for example, the app developer).+pAuthorName :: Lens' Product (Maybe Text)+pAuthorName+  = lens _pAuthorName (\ s a -> s{_pAuthorName = a})++-- | The tracks visible to the enterprise.+pAppTracks :: Lens' Product [TrackInfo]+pAppTracks+  = lens _pAppTracks (\ s a -> s{_pAppTracks = a}) .+      _Default+      . _Coerce++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#product\".+pKind :: Lens' Product Text+pKind = lens _pKind (\ s a -> s{_pKind = a})++-- | A link to the managed Google Play details page for the product, for use+-- by an Enterprise admin.+pWorkDetailsURL :: Lens' Product (Maybe Text)+pWorkDetailsURL+  = lens _pWorkDetailsURL+      (\ s a -> s{_pWorkDetailsURL = a})++-- | Deprecated.+pRequiresContainerApp :: Lens' Product (Maybe Bool)+pRequiresContainerApp+  = lens _pRequiresContainerApp+      (\ s a -> s{_pRequiresContainerApp = a})++-- | The app category (e.g. RACING, SOCIAL, etc.)+pCategory :: Lens' Product (Maybe Text)+pCategory+  = lens _pCategory (\ s a -> s{_pCategory = a})++-- | App versions currently available for this product.+pAppVersion :: Lens' Product [AppVersion]+pAppVersion+  = lens _pAppVersion (\ s a -> s{_pAppVersion = a}) .+      _Default+      . _Coerce++-- | Whether this product is free, free with in-app purchases, or paid. If+-- the pricing is unknown, this means the product is not generally+-- available anymore (even though it might still be available to people who+-- own it).+pProductPricing :: Lens' Product (Maybe Text)+pProductPricing+  = lens _pProductPricing+      (\ s a -> s{_pProductPricing = a})++-- | How and to whom the package is made available. The value+-- publicGoogleHosted means that the package is available through the Play+-- store and not restricted to a specific enterprise. The value+-- privateGoogleHosted means that the package is a private app (restricted+-- to an enterprise) but hosted by Google. The value privateSelfHosted+-- means that the package is a private app (restricted to an enterprise)+-- and is privately hosted.+pDistributionChannel :: Lens' Product (Maybe Text)+pDistributionChannel+  = lens _pDistributionChannel+      (\ s a -> s{_pDistributionChannel = a})++-- | The minimum Android SDK necessary to run the app.+pMinAndroidSdkVersion :: Lens' Product (Maybe Int32)+pMinAndroidSdkVersion+  = lens _pMinAndroidSdkVersion+      (\ s a -> s{_pMinAndroidSdkVersion = a})+      . mapping _Coerce++-- | The countries which this app is available in.+pAvailableCountries :: Lens' Product [Text]+pAvailableCountries+  = lens _pAvailableCountries+      (\ s a -> s{_pAvailableCountries = a})+      . _Default+      . _Coerce++-- | Deprecated, use appTracks instead.+pAvailableTracks :: Lens' Product [Text]+pAvailableTracks+  = lens _pAvailableTracks+      (\ s a -> s{_pAvailableTracks = a})+      . _Default+      . _Coerce++-- | A link to an image that can be used as an icon for the product. This+-- image is suitable for use at up to 512px x 512px.+pIconURL :: Lens' Product (Maybe Text)+pIconURL = lens _pIconURL (\ s a -> s{_pIconURL = a})++-- | A list of permissions required by the app.+pPermissions :: Lens' Product [ProductPermission]+pPermissions+  = lens _pPermissions (\ s a -> s{_pPermissions = a})+      . _Default+      . _Coerce++-- | The name of the product.+pTitle :: Lens' Product (Maybe Text)+pTitle = lens _pTitle (\ s a -> s{_pTitle = a})++-- | The certificate used to sign this product.+pSigningCertificate :: Lens' Product (Maybe ProductSigningCertificate)+pSigningCertificate+  = lens _pSigningCertificate+      (\ s a -> s{_pSigningCertificate = a})++-- | The content rating for this app.+pContentRating :: Lens' Product (Maybe Text)+pContentRating+  = lens _pContentRating+      (\ s a -> s{_pContentRating = a})++-- | A string of the form app:. For example, app:com.google.android.gm+-- represents the Gmail app.+pProductId :: Lens' Product (Maybe Text)+pProductId+  = lens _pProductId (\ s a -> s{_pProductId = a})++-- | A description of the recent changes made to the app.+pRecentChanges :: Lens' Product (Maybe Text)+pRecentChanges+  = lens _pRecentChanges+      (\ s a -> s{_pRecentChanges = a})++-- | The localized promotional description, if available.+pDescription :: Lens' Product (Maybe Text)+pDescription+  = lens _pDescription (\ s a -> s{_pDescription = a})++-- | A link to the (consumer) Google Play details page for the product.+pDetailsURL :: Lens' Product (Maybe Text)+pDetailsURL+  = lens _pDetailsURL (\ s a -> s{_pDetailsURL = a})++instance FromJSON Product where+        parseJSON+          = withObject "Product"+              (\ o ->+                 Product' <$>+                   (o .:? "screenshotUrls" .!= mempty) <*>+                     (o .:? "lastUpdatedTimestampMillis")+                     <*> (o .:? "smallIconUrl")+                     <*> (o .:? "authorName")+                     <*> (o .:? "appTracks" .!= mempty)+                     <*> (o .:? "kind" .!= "androidenterprise#product")+                     <*> (o .:? "workDetailsUrl")+                     <*> (o .:? "requiresContainerApp")+                     <*> (o .:? "category")+                     <*> (o .:? "appVersion" .!= mempty)+                     <*> (o .:? "productPricing")+                     <*> (o .:? "distributionChannel")+                     <*> (o .:? "minAndroidSdkVersion")+                     <*> (o .:? "availableCountries" .!= mempty)+                     <*> (o .:? "availableTracks" .!= mempty)+                     <*> (o .:? "iconUrl")+                     <*> (o .:? "permissions" .!= mempty)+                     <*> (o .:? "title")+                     <*> (o .:? "signingCertificate")+                     <*> (o .:? "contentRating")+                     <*> (o .:? "productId")+                     <*> (o .:? "recentChanges")+                     <*> (o .:? "description")+                     <*> (o .:? "detailsUrl"))++instance ToJSON Product where+        toJSON Product'{..}+          = object+              (catMaybes+                 [("screenshotUrls" .=) <$> _pScreenshotURLs,+                  ("lastUpdatedTimestampMillis" .=) <$>+                    _pLastUpdatedTimestampMillis,+                  ("smallIconUrl" .=) <$> _pSmallIconURL,+                  ("authorName" .=) <$> _pAuthorName,+                  ("appTracks" .=) <$> _pAppTracks,+                  Just ("kind" .= _pKind),+                  ("workDetailsUrl" .=) <$> _pWorkDetailsURL,+                  ("requiresContainerApp" .=) <$>+                    _pRequiresContainerApp,+                  ("category" .=) <$> _pCategory,+                  ("appVersion" .=) <$> _pAppVersion,+                  ("productPricing" .=) <$> _pProductPricing,+                  ("distributionChannel" .=) <$> _pDistributionChannel,+                  ("minAndroidSdkVersion" .=) <$>+                    _pMinAndroidSdkVersion,+                  ("availableCountries" .=) <$> _pAvailableCountries,+                  ("availableTracks" .=) <$> _pAvailableTracks,+                  ("iconUrl" .=) <$> _pIconURL,+                  ("permissions" .=) <$> _pPermissions,+                  ("title" .=) <$> _pTitle,+                  ("signingCertificate" .=) <$> _pSigningCertificate,+                  ("contentRating" .=) <$> _pContentRating,+                  ("productId" .=) <$> _pProductId,+                  ("recentChanges" .=) <$> _pRecentChanges,+                  ("description" .=) <$> _pDescription,+                  ("detailsUrl" .=) <$> _pDetailsURL])++-- | The entitlement resources for the user.+--+-- /See:/ 'entitlementsListResponse' smart constructor.+data EntitlementsListResponse =+  EntitlementsListResponse'+    { _entKind        :: !Text+    , _entEntitlement :: !(Maybe [Entitlement])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EntitlementsListResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'entKind'+--+-- * 'entEntitlement'+entitlementsListResponse+    :: EntitlementsListResponse+entitlementsListResponse =+  EntitlementsListResponse'+    { _entKind = "androidenterprise#entitlementsListResponse"+    , _entEntitlement = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#entitlementsListResponse\".+entKind :: Lens' EntitlementsListResponse Text+entKind = lens _entKind (\ s a -> s{_entKind = a})++-- | An entitlement of a user to a product (e.g. an app). For example, a free+-- app that they have installed, or a paid app that they have been+-- allocated a license to.+entEntitlement :: Lens' EntitlementsListResponse [Entitlement]+entEntitlement+  = lens _entEntitlement+      (\ s a -> s{_entEntitlement = a})+      . _Default+      . _Coerce++instance FromJSON EntitlementsListResponse where+        parseJSON+          = withObject "EntitlementsListResponse"+              (\ o ->+                 EntitlementsListResponse' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#entitlementsListResponse")+                     <*> (o .:? "entitlement" .!= mempty))++instance ToJSON EntitlementsListResponse where+        toJSON EntitlementsListResponse'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _entKind),+                  ("entitlement" .=) <$> _entEntitlement])++-- | Information about the permissions required by a specific app and whether+-- they have been accepted by the enterprise.+--+-- /See:/ 'productPermissions' smart constructor.+data ProductPermissions =+  ProductPermissions'+    { _ppsKind       :: !Text+    , _ppsPermission :: !(Maybe [ProductPermission])+    , _ppsProductId  :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ProductPermissions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ppsKind'+--+-- * 'ppsPermission'+--+-- * 'ppsProductId'+productPermissions+    :: ProductPermissions+productPermissions =+  ProductPermissions'+    { _ppsKind = "androidenterprise#productPermissions"+    , _ppsPermission = Nothing+    , _ppsProductId = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#productPermissions\".+ppsKind :: Lens' ProductPermissions Text+ppsKind = lens _ppsKind (\ s a -> s{_ppsKind = a})++-- | The permissions required by the app.+ppsPermission :: Lens' ProductPermissions [ProductPermission]+ppsPermission+  = lens _ppsPermission+      (\ s a -> s{_ppsPermission = a})+      . _Default+      . _Coerce++-- | The ID of the app that the permissions relate to, e.g.+-- \"app:com.google.android.gm\".+ppsProductId :: Lens' ProductPermissions (Maybe Text)+ppsProductId+  = lens _ppsProductId (\ s a -> s{_ppsProductId = a})++instance FromJSON ProductPermissions where+        parseJSON+          = withObject "ProductPermissions"+              (\ o ->+                 ProductPermissions' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#productPermissions")+                     <*> (o .:? "permission" .!= mempty)+                     <*> (o .:? "productId"))++instance ToJSON ProductPermissions where+        toJSON ProductPermissions'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _ppsKind),+                  ("permission" .=) <$> _ppsPermission,+                  ("productId" .=) <$> _ppsProductId])++--+-- /See:/ 'administratorWebTokenSpecManagedConfigurations' smart constructor.+newtype AdministratorWebTokenSpecManagedConfigurations =+  AdministratorWebTokenSpecManagedConfigurations'+    { _awtsmcEnabled :: Maybe Bool+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AdministratorWebTokenSpecManagedConfigurations' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'awtsmcEnabled'+administratorWebTokenSpecManagedConfigurations+    :: AdministratorWebTokenSpecManagedConfigurations+administratorWebTokenSpecManagedConfigurations =+  AdministratorWebTokenSpecManagedConfigurations' {_awtsmcEnabled = Nothing}+++-- | Whether the Managed Configuration page is displayed. Default is true.+awtsmcEnabled :: Lens' AdministratorWebTokenSpecManagedConfigurations (Maybe Bool)+awtsmcEnabled+  = lens _awtsmcEnabled+      (\ s a -> s{_awtsmcEnabled = a})++instance FromJSON+           AdministratorWebTokenSpecManagedConfigurations+         where+        parseJSON+          = withObject+              "AdministratorWebTokenSpecManagedConfigurations"+              (\ o ->+                 AdministratorWebTokenSpecManagedConfigurations' <$>+                   (o .:? "enabled"))++instance ToJSON+           AdministratorWebTokenSpecManagedConfigurations+         where+        toJSON+          AdministratorWebTokenSpecManagedConfigurations'{..}+          = object+              (catMaybes [("enabled" .=) <$> _awtsmcEnabled])++-- | A Permissions resource represents some extra capability, to be granted+-- to an Android app, which requires explicit consent. An enterprise admin+-- must consent to these permissions on behalf of their users before an+-- entitlement for the app can be created. The permissions collection is+-- read-only. The information provided for each permission (localized name+-- and description) is intended to be used in the MDM user interface when+-- obtaining consent from the enterprise.+--+-- /See:/ 'permission' smart constructor.+data Permission =+  Permission'+    { _perKind         :: !Text+    , _perName         :: !(Maybe Text)+    , _perDescription  :: !(Maybe Text)+    , _perPermissionId :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Permission' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'perKind'+--+-- * 'perName'+--+-- * 'perDescription'+--+-- * 'perPermissionId'+permission+    :: Permission+permission =+  Permission'+    { _perKind = "androidenterprise#permission"+    , _perName = Nothing+    , _perDescription = Nothing+    , _perPermissionId = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#permission\".+perKind :: Lens' Permission Text+perKind = lens _perKind (\ s a -> s{_perKind = a})++-- | The name of the permission.+perName :: Lens' Permission (Maybe Text)+perName = lens _perName (\ s a -> s{_perName = a})++-- | A longer description of the Permissions resource, giving more details of+-- what it affects.+perDescription :: Lens' Permission (Maybe Text)+perDescription+  = lens _perDescription+      (\ s a -> s{_perDescription = a})++-- | An opaque string uniquely identifying the permission.+perPermissionId :: Lens' Permission (Maybe Text)+perPermissionId+  = lens _perPermissionId+      (\ s a -> s{_perPermissionId = a})++instance FromJSON Permission where+        parseJSON+          = withObject "Permission"+              (\ o ->+                 Permission' <$>+                   (o .:? "kind" .!= "androidenterprise#permission") <*>+                     (o .:? "name")+                     <*> (o .:? "description")+                     <*> (o .:? "permissionId"))++instance ToJSON Permission where+        toJSON Permission'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _perKind), ("name" .=) <$> _perName,+                  ("description" .=) <$> _perDescription,+                  ("permissionId" .=) <$> _perPermissionId])++-- | The web app details for an enterprise.+--+-- /See:/ 'webAppsListResponse' smart constructor.+data WebAppsListResponse =+  WebAppsListResponse'+    { _walrKind   :: !Text+    , _walrWebApp :: !(Maybe [WebApp])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'WebAppsListResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'walrKind'+--+-- * 'walrWebApp'+webAppsListResponse+    :: WebAppsListResponse+webAppsListResponse =+  WebAppsListResponse'+    {_walrKind = "androidenterprise#webAppsListResponse", _walrWebApp = Nothing}+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#webAppsListResponse\".+walrKind :: Lens' WebAppsListResponse Text+walrKind = lens _walrKind (\ s a -> s{_walrKind = a})++-- | The manifest describing a web app.+walrWebApp :: Lens' WebAppsListResponse [WebApp]+walrWebApp+  = lens _walrWebApp (\ s a -> s{_walrWebApp = a}) .+      _Default+      . _Coerce++instance FromJSON WebAppsListResponse where+        parseJSON+          = withObject "WebAppsListResponse"+              (\ o ->+                 WebAppsListResponse' <$>+                   (o .:? "kind" .!=+                      "androidenterprise#webAppsListResponse")+                     <*> (o .:? "webApp" .!= mempty))++instance ToJSON WebAppsListResponse where+        toJSON WebAppsListResponse'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _walrKind),+                  ("webApp" .=) <$> _walrWebApp])++--+-- /See:/ 'productsApproveRequest' smart constructor.+data ProductsApproveRequest =+  ProductsApproveRequest'+    { _parApprovalURLInfo     :: !(Maybe ApprovalURLInfo)+    , _parApprovedPermissions :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ProductsApproveRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'parApprovalURLInfo'+--+-- * 'parApprovedPermissions'+productsApproveRequest+    :: ProductsApproveRequest+productsApproveRequest =+  ProductsApproveRequest'+    {_parApprovalURLInfo = Nothing, _parApprovedPermissions = Nothing}+++-- | The approval URL that was shown to the user. Only the permissions shown+-- to the user with that URL will be accepted, which may not be the+-- product\'s entire set of permissions. For example, the URL may only+-- display new permissions from an update after the product was approved,+-- or not include new permissions if the product was updated since the URL+-- was generated.+parApprovalURLInfo :: Lens' ProductsApproveRequest (Maybe ApprovalURLInfo)+parApprovalURLInfo+  = lens _parApprovalURLInfo+      (\ s a -> s{_parApprovalURLInfo = a})++-- | Sets how new permission requests for the product are handled.+-- \"allPermissions\" automatically approves all current and future+-- permissions for the product. \"currentPermissionsOnly\" approves the+-- current set of permissions for the product, but any future permissions+-- added through updates will require manual reapproval. If not specified,+-- only the current set of permissions will be approved.+parApprovedPermissions :: Lens' ProductsApproveRequest (Maybe Text)+parApprovedPermissions+  = lens _parApprovedPermissions+      (\ s a -> s{_parApprovedPermissions = a})++instance FromJSON ProductsApproveRequest where+        parseJSON+          = withObject "ProductsApproveRequest"+              (\ o ->+                 ProductsApproveRequest' <$>+                   (o .:? "approvalUrlInfo") <*>+                     (o .:? "approvedPermissions"))++instance ToJSON ProductsApproveRequest where+        toJSON ProductsApproveRequest'{..}+          = object+              (catMaybes+                 [("approvalUrlInfo" .=) <$> _parApprovalURLInfo,+                  ("approvedPermissions" .=) <$>+                    _parApprovedPermissions])++--+-- /See:/ 'autoInstallPolicy' smart constructor.+data AutoInstallPolicy =+  AutoInstallPolicy'+    { _aipAutoInstallConstraint :: !(Maybe [AutoInstallConstraint])+    , _aipAutoInstallPriority   :: !(Maybe (Textual Int32))+    , _aipAutoInstallMode       :: !(Maybe Text)+    , _aipMinimumVersionCode    :: !(Maybe (Textual Int32))+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AutoInstallPolicy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aipAutoInstallConstraint'+--+-- * 'aipAutoInstallPriority'+--+-- * 'aipAutoInstallMode'+--+-- * 'aipMinimumVersionCode'+autoInstallPolicy+    :: AutoInstallPolicy+autoInstallPolicy =+  AutoInstallPolicy'+    { _aipAutoInstallConstraint = Nothing+    , _aipAutoInstallPriority = Nothing+    , _aipAutoInstallMode = Nothing+    , _aipMinimumVersionCode = Nothing+    }+++-- | The constraints for auto-installing the app. You can specify a maximum+-- of one constraint.+aipAutoInstallConstraint :: Lens' AutoInstallPolicy [AutoInstallConstraint]+aipAutoInstallConstraint+  = lens _aipAutoInstallConstraint+      (\ s a -> s{_aipAutoInstallConstraint = a})+      . _Default+      . _Coerce++-- | The priority of the install, as an unsigned integer. A lower number+-- means higher priority.+aipAutoInstallPriority :: Lens' AutoInstallPolicy (Maybe Int32)+aipAutoInstallPriority+  = lens _aipAutoInstallPriority+      (\ s a -> s{_aipAutoInstallPriority = a})+      . mapping _Coerce++-- | The auto-install mode. If unset defaults to \"doNotAutoInstall\".+aipAutoInstallMode :: Lens' AutoInstallPolicy (Maybe Text)+aipAutoInstallMode+  = lens _aipAutoInstallMode+      (\ s a -> s{_aipAutoInstallMode = a})++-- | The minimum version of the app. If a lower version of the app is+-- installed, then the app will be auto-updated according to the+-- auto-install constraints, instead of waiting for the regular+-- auto-update.+aipMinimumVersionCode :: Lens' AutoInstallPolicy (Maybe Int32)+aipMinimumVersionCode+  = lens _aipMinimumVersionCode+      (\ s a -> s{_aipMinimumVersionCode = a})+      . mapping _Coerce++instance FromJSON AutoInstallPolicy where+        parseJSON+          = withObject "AutoInstallPolicy"+              (\ o ->+                 AutoInstallPolicy' <$>+                   (o .:? "autoInstallConstraint" .!= mempty) <*>+                     (o .:? "autoInstallPriority")+                     <*> (o .:? "autoInstallMode")+                     <*> (o .:? "minimumVersionCode"))++instance ToJSON AutoInstallPolicy where+        toJSON AutoInstallPolicy'{..}+          = object+              (catMaybes+                 [("autoInstallConstraint" .=) <$>+                    _aipAutoInstallConstraint,+                  ("autoInstallPriority" .=) <$>+                    _aipAutoInstallPriority,+                  ("autoInstallMode" .=) <$> _aipAutoInstallMode,+                  ("minimumVersionCode" .=) <$>+                    _aipMinimumVersionCode])++-- | The presence of an Entitlements resource indicates that a user has the+-- right to use a particular app. Entitlements are user specific, not+-- device specific. This allows a user with an entitlement to an app to+-- install the app on all their devices. It\'s also possible for a user to+-- hold an entitlement to an app without installing the app on any device.+-- The API can be used to create an entitlement. As an option, you can also+-- use the API to trigger the installation of an app on all a user\'s+-- managed devices at the same time the entitlement is created. If the app+-- is free, creating the entitlement also creates a group license for that+-- app. For paid apps, creating the entitlement consumes one license, and+-- that license remains consumed until the entitlement is removed. If the+-- enterprise hasn\'t purchased enough licenses, then no entitlement is+-- created and the installation fails. An entitlement is also not created+-- for an app if the app requires permissions that the enterprise hasn\'t+-- accepted. If an entitlement is deleted, the app may be uninstalled from+-- a user\'s device. As a best practice, uninstall the app by calling+-- Installs.delete() before deleting the entitlement. Entitlements for apps+-- that a user pays for on an unmanaged profile have \"userPurchase\" as+-- the entitlement reason. These entitlements cannot be removed via the+-- API.+--+-- /See:/ 'entitlement' smart constructor.+data Entitlement =+  Entitlement'+    { _eeKind      :: !Text+    , _eeReason    :: !(Maybe Text)+    , _eeProductId :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Entitlement' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eeKind'+--+-- * 'eeReason'+--+-- * 'eeProductId'+entitlement+    :: Entitlement+entitlement =+  Entitlement'+    { _eeKind = "androidenterprise#entitlement"+    , _eeReason = Nothing+    , _eeProductId = Nothing+    }+++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#entitlement\".+eeKind :: Lens' Entitlement Text+eeKind = lens _eeKind (\ s a -> s{_eeKind = a})++-- | The reason for the entitlement. For example, \"free\" for free apps.+-- This property is temporary: it will be replaced by the acquisition kind+-- field of group licenses.+eeReason :: Lens' Entitlement (Maybe Text)+eeReason = lens _eeReason (\ s a -> s{_eeReason = a})++-- | The ID of the product that the entitlement is for. For example,+-- \"app:com.google.android.gm\".+eeProductId :: Lens' Entitlement (Maybe Text)+eeProductId+  = lens _eeProductId (\ s a -> s{_eeProductId = a})++instance FromJSON Entitlement where+        parseJSON+          = withObject "Entitlement"+              (\ o ->+                 Entitlement' <$>+                   (o .:? "kind" .!= "androidenterprise#entitlement")+                     <*> (o .:? "reason")+                     <*> (o .:? "productId"))++instance ToJSON Entitlement where+        toJSON Entitlement'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _eeKind),+                  ("reason" .=) <$> _eeReason,+                  ("productId" .=) <$> _eeProductId])++-- | The matching products.+--+-- /See:/ 'productsListResponse' smart constructor.+data ProductsListResponse =+  ProductsListResponse'+    { _plrTokenPagination :: !(Maybe TokenPagination)+    , _plrPageInfo        :: !(Maybe PageInfo)+    , _plrKind            :: !Text+    , _plrProduct         :: !(Maybe [Product])+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ProductsListResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrTokenPagination'+--+-- * 'plrPageInfo'+--+-- * 'plrKind'+--+-- * 'plrProduct'+productsListResponse+    :: ProductsListResponse+productsListResponse =+  ProductsListResponse'+    { _plrTokenPagination = Nothing+    , _plrPageInfo = Nothing+    , _plrKind = "androidenterprise#productsListResponse"+    , _plrProduct = Nothing+    }+++-- | Pagination information for token pagination.+plrTokenPagination :: Lens' ProductsListResponse (Maybe TokenPagination)+plrTokenPagination+  = lens _plrTokenPagination+      (\ s a -> s{_plrTokenPagination = a})++-- | General pagination information.+plrPageInfo :: Lens' ProductsListResponse (Maybe PageInfo)+plrPageInfo+  = lens _plrPageInfo (\ s a -> s{_plrPageInfo = a})++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"androidenterprise#productsListResponse\".+plrKind :: Lens' ProductsListResponse Text+plrKind = lens _plrKind (\ s a -> s{_plrKind = a})++-- | Information about a product (e.g. an app) in the Google Play store, for+-- display to an enterprise admin.+plrProduct :: Lens' ProductsListResponse [Product]+plrProduct+  = lens _plrProduct (\ s a -> s{_plrProduct = a}) .+      _Default+      . _Coerce++instance FromJSON ProductsListResponse where+        parseJSON+          = withObject "ProductsListResponse"+              (\ o ->+                 ProductsListResponse' <$>+                   (o .:? "tokenPagination") <*> (o .:? "pageInfo") <*>+                     (o .:? "kind" .!=+                        "androidenterprise#productsListResponse")+                     <*> (o .:? "product" .!= mempty))++instance ToJSON ProductsListResponse where+        toJSON ProductsListResponse'{..}+          = object+              (catMaybes+                 [("tokenPagination" .=) <$> _plrTokenPagination,+                  ("pageInfo" .=) <$> _plrPageInfo,+                  Just ("kind" .= _plrKind),+                  ("product" .=) <$> _plrProduct])++-- | A WebApps resource represents a web app created for an enterprise. Web+-- apps are published to managed Google Play and can be distributed like+-- other Android apps. On a user\'s device, a web app opens its specified+-- URL.+--+-- /See:/ 'webApp' smart constructor.+data WebApp =+  WebApp'+    { _waWebAppId    :: !(Maybe Text)+    , _waVersionCode :: !(Maybe (Textual Int64))+    , _waIcons       :: !(Maybe [WebAppIcon])+    , _waStartURL    :: !(Maybe Text)+    , _waDisplayMode :: !(Maybe Text)+    , _waIsPublished :: !(Maybe Bool)+    , _waTitle       :: !(Maybe Text)+    }+  deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'WebApp' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'waWebAppId'+--+-- * 'waVersionCode'+--+-- * 'waIcons'+--+-- * 'waStartURL'+--+-- * 'waDisplayMode'+--+-- * 'waIsPublished'+--+-- * 'waTitle'+webApp+    :: WebApp+webApp =+  WebApp'+    { _waWebAppId = Nothing+    , _waVersionCode = Nothing+    , _waIcons = Nothing+    , _waStartURL = Nothing+    , _waDisplayMode = Nothing+    , _waIsPublished = Nothing+    , _waTitle = Nothing+    }+++-- | The ID of the application. A string of the form \"app:\" where the+-- package name always starts with the prefix+-- \"com.google.enterprise.webapp.\" followed by a random id.+waWebAppId :: Lens' WebApp (Maybe Text)+waWebAppId+  = lens _waWebAppId (\ s a -> s{_waWebAppId = a})++-- | The current version of the app. Note that the version can automatically+-- increase during the lifetime of the web app, while Google does internal+-- housekeeping to keep the web app up-to-date.+waVersionCode :: Lens' WebApp (Maybe Int64)+waVersionCode+  = lens _waVersionCode+      (\ s a -> s{_waVersionCode = a})+      . mapping _Coerce++-- | A list of icons representing this website. If absent, a default icon+-- (for create) or the current icon (for update) will be used.+waIcons :: Lens' WebApp [WebAppIcon]+waIcons+  = lens _waIcons (\ s a -> s{_waIcons = a}) . _Default+      . _Coerce++-- | The start URL, i.e. the URL that should load when the user opens the+-- application.+waStartURL :: Lens' WebApp (Maybe Text)+waStartURL+  = lens _waStartURL (\ s a -> s{_waStartURL = a})++-- | The display mode of the web app. Possible values include: -+-- \"minimalUi\", the device\'s status bar, navigation bar, the app\'s URL,+-- and a refresh button are visible when the app is open. For HTTP URLs,+-- you can only select this option. - \"standalone\", the device\'s status+-- bar and navigation bar are visible when the app is open. -+-- \"fullScreen\", the app opens in full screen mode, hiding the device\'s+-- status and navigation bars. All browser UI elements, page URL, system+-- status bar and back button are not visible, and the web app takes up the+-- entirety of the available display area.+waDisplayMode :: Lens' WebApp (Maybe Text)+waDisplayMode+  = lens _waDisplayMode+      (\ s a -> s{_waDisplayMode = a})++-- | A flag whether the app has been published to the Play store yet.+waIsPublished :: Lens' WebApp (Maybe Bool)+waIsPublished+  = lens _waIsPublished+      (\ s a -> s{_waIsPublished = a})++-- | The title of the web app as displayed to the user (e.g., amongst a list+-- of other applications, or as a label for an icon). waTitle :: Lens' WebApp (Maybe Text) waTitle = lens _waTitle (\ s a -> s{_waTitle = a}) 
gen/Network/Google/Resource/AndroidEnterprise/Devices/Get.hs view
@@ -57,12 +57,15 @@ -- | Retrieves the details of a device. -- -- /See:/ 'devicesGet' smart constructor.-data DevicesGet = DevicesGet'+data DevicesGet =+  DevicesGet'     { _dgEnterpriseId :: !Text     , _dgUserId       :: !Text     , _dgDeviceId     :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'DevicesGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,11 +81,12 @@     -> Text -- ^ 'dgDeviceId'     -> DevicesGet devicesGet pDgEnterpriseId_ pDgUserId_ pDgDeviceId_ =-    DevicesGet'+  DevicesGet'     { _dgEnterpriseId = pDgEnterpriseId_     , _dgUserId = pDgUserId_     , _dgDeviceId = pDgDeviceId_     }+  -- | The ID of the enterprise. dgEnterpriseId :: Lens' DevicesGet Text
gen/Network/Google/Resource/AndroidEnterprise/Devices/GetState.hs view
@@ -66,12 +66,15 @@ -- services. This is only supported for Google-managed users. -- -- /See:/ 'devicesGetState' smart constructor.-data DevicesGetState = DevicesGetState'+data DevicesGetState =+  DevicesGetState'     { _dgsEnterpriseId :: !Text     , _dgsUserId       :: !Text     , _dgsDeviceId     :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'DevicesGetState' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -87,11 +90,12 @@     -> Text -- ^ 'dgsDeviceId'     -> DevicesGetState devicesGetState pDgsEnterpriseId_ pDgsUserId_ pDgsDeviceId_ =-    DevicesGetState'+  DevicesGetState'     { _dgsEnterpriseId = pDgsEnterpriseId_     , _dgsUserId = pDgsUserId_     , _dgsDeviceId = pDgsDeviceId_     }+  -- | The ID of the enterprise. dgsEnterpriseId :: Lens' DevicesGetState Text
gen/Network/Google/Resource/AndroidEnterprise/Devices/List.hs view
@@ -56,11 +56,14 @@ -- | Retrieves the IDs of all of a user\'s devices. -- -- /See:/ 'devicesList' smart constructor.-data DevicesList = DevicesList'+data DevicesList =+  DevicesList'     { _dlEnterpriseId :: !Text     , _dlUserId       :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'DevicesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,10 +76,8 @@     -> Text -- ^ 'dlUserId'     -> DevicesList devicesList pDlEnterpriseId_ pDlUserId_ =-    DevicesList'-    { _dlEnterpriseId = pDlEnterpriseId_-    , _dlUserId = pDlUserId_-    }+  DevicesList' {_dlEnterpriseId = pDlEnterpriseId_, _dlUserId = pDlUserId_}+  -- | The ID of the enterprise. dlEnterpriseId :: Lens' DevicesList Text
gen/Network/Google/Resource/AndroidEnterprise/Devices/Patch.hs view
@@ -61,14 +61,17 @@ -- | Updates the device policy. This method supports patch semantics. -- -- /See:/ 'devicesPatch' smart constructor.-data DevicesPatch = DevicesPatch'+data DevicesPatch =+  DevicesPatch'     { _dpUpdateMask   :: !(Maybe Text)     , _dpEnterpriseId :: !Text     , _dpPayload      :: !Device     , _dpUserId       :: !Text     , _dpDeviceId     :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'DevicesPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -89,13 +92,14 @@     -> Text -- ^ 'dpDeviceId'     -> DevicesPatch devicesPatch pDpEnterpriseId_ pDpPayload_ pDpUserId_ pDpDeviceId_ =-    DevicesPatch'+  DevicesPatch'     { _dpUpdateMask = Nothing     , _dpEnterpriseId = pDpEnterpriseId_     , _dpPayload = pDpPayload_     , _dpUserId = pDpUserId_     , _dpDeviceId = pDpDeviceId_     }+  -- | Mask that identifies which fields to update. If not set, all modifiable -- fields will be modified. When set in a query parameter, this field
gen/Network/Google/Resource/AndroidEnterprise/Devices/SetState.hs view
@@ -69,13 +69,16 @@ -- services. This is only supported for Google-managed users. -- -- /See:/ 'devicesSetState' smart constructor.-data DevicesSetState = DevicesSetState'+data DevicesSetState =+  DevicesSetState'     { _dssEnterpriseId :: !Text     , _dssPayload      :: !DeviceState     , _dssUserId       :: !Text     , _dssDeviceId     :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'DevicesSetState' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -94,12 +97,13 @@     -> Text -- ^ 'dssDeviceId'     -> DevicesSetState devicesSetState pDssEnterpriseId_ pDssPayload_ pDssUserId_ pDssDeviceId_ =-    DevicesSetState'+  DevicesSetState'     { _dssEnterpriseId = pDssEnterpriseId_     , _dssPayload = pDssPayload_     , _dssUserId = pDssUserId_     , _dssDeviceId = pDssDeviceId_     }+  -- | The ID of the enterprise. dssEnterpriseId :: Lens' DevicesSetState Text
gen/Network/Google/Resource/AndroidEnterprise/Devices/Update.hs view
@@ -61,14 +61,17 @@ -- | Updates the device policy -- -- /See:/ 'devicesUpdate' smart constructor.-data DevicesUpdate = DevicesUpdate'+data DevicesUpdate =+  DevicesUpdate'     { _duUpdateMask   :: !(Maybe Text)     , _duEnterpriseId :: !Text     , _duPayload      :: !Device     , _duUserId       :: !Text     , _duDeviceId     :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'DevicesUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -89,13 +92,14 @@     -> Text -- ^ 'duDeviceId'     -> DevicesUpdate devicesUpdate pDuEnterpriseId_ pDuPayload_ pDuUserId_ pDuDeviceId_ =-    DevicesUpdate'+  DevicesUpdate'     { _duUpdateMask = Nothing     , _duEnterpriseId = pDuEnterpriseId_     , _duPayload = pDuPayload_     , _duUserId = pDuUserId_     , _duDeviceId = pDuDeviceId_     }+  -- | Mask that identifies which fields to update. If not set, all modifiable -- fields will be modified. When set in a query parameter, this field
gen/Network/Google/Resource/AndroidEnterprise/Enterprises/AcknowledgeNotificationSet.hs view
@@ -56,10 +56,13 @@ -- returning the same notifications. -- -- /See:/ 'enterprisesAcknowledgeNotificationSet' smart constructor.-newtype EnterprisesAcknowledgeNotificationSet = EnterprisesAcknowledgeNotificationSet'+newtype EnterprisesAcknowledgeNotificationSet =+  EnterprisesAcknowledgeNotificationSet'     { _eansNotificationSetId :: Maybe Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnterprisesAcknowledgeNotificationSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -68,10 +71,9 @@ enterprisesAcknowledgeNotificationSet     :: EnterprisesAcknowledgeNotificationSet enterprisesAcknowledgeNotificationSet =-    EnterprisesAcknowledgeNotificationSet'-    { _eansNotificationSetId = Nothing-    }+  EnterprisesAcknowledgeNotificationSet' {_eansNotificationSetId = Nothing} + -- | The notification set ID as returned by Enterprises.PullNotificationSet. -- This must be provided. eansNotificationSetId :: Lens' EnterprisesAcknowledgeNotificationSet (Maybe Text)@@ -80,7 +82,8 @@       (\ s a -> s{_eansNotificationSetId = a})  instance GoogleRequest-         EnterprisesAcknowledgeNotificationSet where+           EnterprisesAcknowledgeNotificationSet+         where         type Rs EnterprisesAcknowledgeNotificationSet = ()         type Scopes EnterprisesAcknowledgeNotificationSet =              '["https://www.googleapis.com/auth/androidenterprise"]
gen/Network/Google/Resource/AndroidEnterprise/Enterprises/CompleteSignup.hs view
@@ -58,11 +58,14 @@ -- given Enterprise Token. -- -- /See:/ 'enterprisesCompleteSignup' smart constructor.-data EnterprisesCompleteSignup = EnterprisesCompleteSignup'+data EnterprisesCompleteSignup =+  EnterprisesCompleteSignup'     { _ecsCompletionToken :: !(Maybe Text)     , _ecsEnterpriseToken :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnterprisesCompleteSignup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,10 +76,9 @@ enterprisesCompleteSignup     :: EnterprisesCompleteSignup enterprisesCompleteSignup =-    EnterprisesCompleteSignup'-    { _ecsCompletionToken = Nothing-    , _ecsEnterpriseToken = Nothing-    }+  EnterprisesCompleteSignup'+    {_ecsCompletionToken = Nothing, _ecsEnterpriseToken = Nothing}+  -- | The Completion token initially returned by GenerateSignupUrl. ecsCompletionToken :: Lens' EnterprisesCompleteSignup (Maybe Text)
gen/Network/Google/Resource/AndroidEnterprise/Enterprises/CreateWebToken.hs view
@@ -61,11 +61,14 @@ -- API documentation for further information. -- -- /See:/ 'enterprisesCreateWebToken' smart constructor.-data EnterprisesCreateWebToken = EnterprisesCreateWebToken'+data EnterprisesCreateWebToken =+  EnterprisesCreateWebToken'     { _ecwtEnterpriseId :: !Text     , _ecwtPayload      :: !AdministratorWebTokenSpec-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnterprisesCreateWebToken' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,10 +81,9 @@     -> AdministratorWebTokenSpec -- ^ 'ecwtPayload'     -> EnterprisesCreateWebToken enterprisesCreateWebToken pEcwtEnterpriseId_ pEcwtPayload_ =-    EnterprisesCreateWebToken'-    { _ecwtEnterpriseId = pEcwtEnterpriseId_-    , _ecwtPayload = pEcwtPayload_-    }+  EnterprisesCreateWebToken'+    {_ecwtEnterpriseId = pEcwtEnterpriseId_, _ecwtPayload = pEcwtPayload_}+  -- | The ID of the enterprise. ecwtEnterpriseId :: Lens' EnterprisesCreateWebToken Text
gen/Network/Google/Resource/AndroidEnterprise/Enterprises/Enroll.hs view
@@ -54,11 +54,14 @@ -- | Enrolls an enterprise with the calling EMM. -- -- /See:/ 'enterprisesEnroll' smart constructor.-data EnterprisesEnroll = EnterprisesEnroll'+data EnterprisesEnroll =+  EnterprisesEnroll'     { _eeToken   :: !Text     , _eePayload :: !Enterprise-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnterprisesEnroll' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,10 +74,8 @@     -> Enterprise -- ^ 'eePayload'     -> EnterprisesEnroll enterprisesEnroll pEeToken_ pEePayload_ =-    EnterprisesEnroll'-    { _eeToken = pEeToken_-    , _eePayload = pEePayload_-    }+  EnterprisesEnroll' {_eeToken = pEeToken_, _eePayload = pEePayload_}+  -- | The token provided by the enterprise to register the EMM. eeToken :: Lens' EnterprisesEnroll Text
gen/Network/Google/Resource/AndroidEnterprise/Enterprises/GenerateSignupURL.hs view
@@ -52,10 +52,13 @@ -- | Generates a sign-up URL. -- -- /See:/ 'enterprisesGenerateSignupURL' smart constructor.-newtype EnterprisesGenerateSignupURL = EnterprisesGenerateSignupURL'+newtype EnterprisesGenerateSignupURL =+  EnterprisesGenerateSignupURL'     { _egsuCallbackURL :: Maybe Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnterprisesGenerateSignupURL' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -64,9 +67,8 @@ enterprisesGenerateSignupURL     :: EnterprisesGenerateSignupURL enterprisesGenerateSignupURL =-    EnterprisesGenerateSignupURL'-    { _egsuCallbackURL = Nothing-    }+  EnterprisesGenerateSignupURL' {_egsuCallbackURL = Nothing}+  -- | The callback URL to which the Admin will be redirected after -- successfully creating an enterprise. Before redirecting there the system
gen/Network/Google/Resource/AndroidEnterprise/Enterprises/Get.hs view
@@ -51,10 +51,13 @@ -- | Retrieves the name and domain of an enterprise. -- -- /See:/ 'enterprisesGet' smart constructor.-newtype EnterprisesGet = EnterprisesGet'+newtype EnterprisesGet =+  EnterprisesGet'     { _eEnterpriseId :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnterprisesGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -64,9 +67,8 @@     :: Text -- ^ 'eEnterpriseId'     -> EnterprisesGet enterprisesGet pEEnterpriseId_ =-    EnterprisesGet'-    { _eEnterpriseId = pEEnterpriseId_-    }+  EnterprisesGet' {_eEnterpriseId = pEEnterpriseId_}+  -- | The ID of the enterprise. eEnterpriseId :: Lens' EnterprisesGet Text
− gen/Network/Google/Resource/AndroidEnterprise/Enterprises/GetAndroidDevicePolicyConfig.hs
@@ -1,95 +0,0 @@-{-# 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.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig--- 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)------ Deprecated and unused.------ /See:/ <https://developers.google.com/android/work/play/emm-api Google Play EMM API Reference> for @androidenterprise.enterprises.getAndroidDevicePolicyConfig@.-module Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig-    (-    -- * REST Resource-      EnterprisesGetAndroidDevicePolicyConfigResource--    -- * Creating a Request-    , enterprisesGetAndroidDevicePolicyConfig-    , EnterprisesGetAndroidDevicePolicyConfig--    -- * Request Lenses-    , egadpcEnterpriseId-    ) where--import           Network.Google.AndroidEnterprise.Types-import           Network.Google.Prelude---- | A resource alias for @androidenterprise.enterprises.getAndroidDevicePolicyConfig@ method which the--- 'EnterprisesGetAndroidDevicePolicyConfig' request conforms to.-type EnterprisesGetAndroidDevicePolicyConfigResource-     =-     "androidenterprise" :>-       "v1" :>-         "enterprises" :>-           Capture "enterpriseId" Text :>-             "androidDevicePolicyConfig" :>-               QueryParam "alt" AltJSON :>-                 Get '[JSON] AndroidDevicePolicyConfig---- | Deprecated and unused.------ /See:/ 'enterprisesGetAndroidDevicePolicyConfig' smart constructor.-newtype EnterprisesGetAndroidDevicePolicyConfig = EnterprisesGetAndroidDevicePolicyConfig'-    { _egadpcEnterpriseId :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'EnterprisesGetAndroidDevicePolicyConfig' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'egadpcEnterpriseId'-enterprisesGetAndroidDevicePolicyConfig-    :: Text -- ^ 'egadpcEnterpriseId'-    -> EnterprisesGetAndroidDevicePolicyConfig-enterprisesGetAndroidDevicePolicyConfig pEgadpcEnterpriseId_ =-    EnterprisesGetAndroidDevicePolicyConfig'-    { _egadpcEnterpriseId = pEgadpcEnterpriseId_-    }---- | The ID of the enterprise.-egadpcEnterpriseId :: Lens' EnterprisesGetAndroidDevicePolicyConfig Text-egadpcEnterpriseId-  = lens _egadpcEnterpriseId-      (\ s a -> s{_egadpcEnterpriseId = a})--instance GoogleRequest-         EnterprisesGetAndroidDevicePolicyConfig where-        type Rs EnterprisesGetAndroidDevicePolicyConfig =-             AndroidDevicePolicyConfig-        type Scopes EnterprisesGetAndroidDevicePolicyConfig =-             '["https://www.googleapis.com/auth/androidenterprise"]-        requestClient-          EnterprisesGetAndroidDevicePolicyConfig'{..}-          = go _egadpcEnterpriseId (Just AltJSON)-              androidEnterpriseService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy-                           EnterprisesGetAndroidDevicePolicyConfigResource)-                      mempty
gen/Network/Google/Resource/AndroidEnterprise/Enterprises/GetServiceAccount.hs view
@@ -77,11 +77,14 @@ -- the serviceAccountKeys resource. -- -- /See:/ 'enterprisesGetServiceAccount' smart constructor.-data EnterprisesGetServiceAccount = EnterprisesGetServiceAccount'+data EnterprisesGetServiceAccount =+  EnterprisesGetServiceAccount'     { _egsaKeyType      :: !(Maybe EnterprisesGetServiceAccountKeyType)     , _egsaEnterpriseId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnterprisesGetServiceAccount' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -93,10 +96,9 @@     :: Text -- ^ 'egsaEnterpriseId'     -> EnterprisesGetServiceAccount enterprisesGetServiceAccount pEgsaEnterpriseId_ =-    EnterprisesGetServiceAccount'-    { _egsaKeyType = Nothing-    , _egsaEnterpriseId = pEgsaEnterpriseId_-    }+  EnterprisesGetServiceAccount'+    {_egsaKeyType = Nothing, _egsaEnterpriseId = pEgsaEnterpriseId_}+  -- | The type of credential to return with the service account. Required. egsaKeyType :: Lens' EnterprisesGetServiceAccount (Maybe EnterprisesGetServiceAccountKeyType)
gen/Network/Google/Resource/AndroidEnterprise/Enterprises/GetStoreLayout.hs view
@@ -54,10 +54,13 @@ -- been set, returns \"basic\" as the store layout type and no homepage. -- -- /See:/ 'enterprisesGetStoreLayout' smart constructor.-newtype EnterprisesGetStoreLayout = EnterprisesGetStoreLayout'+newtype EnterprisesGetStoreLayout =+  EnterprisesGetStoreLayout'     { _egslEnterpriseId :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnterprisesGetStoreLayout' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,9 +70,8 @@     :: Text -- ^ 'egslEnterpriseId'     -> EnterprisesGetStoreLayout enterprisesGetStoreLayout pEgslEnterpriseId_ =-    EnterprisesGetStoreLayout'-    { _egslEnterpriseId = pEgslEnterpriseId_-    }+  EnterprisesGetStoreLayout' {_egslEnterpriseId = pEgslEnterpriseId_}+  -- | The ID of the enterprise. egslEnterpriseId :: Lens' EnterprisesGetStoreLayout Text
gen/Network/Google/Resource/AndroidEnterprise/Enterprises/List.hs view
@@ -60,10 +60,13 @@ -- Enterprises.generateSignupUrl call. -- -- /See:/ 'enterprisesList' smart constructor.-newtype EnterprisesList = EnterprisesList'+newtype EnterprisesList =+  EnterprisesList'     { _elDomain :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnterprisesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@ enterprisesList     :: Text -- ^ 'elDomain'     -> EnterprisesList-enterprisesList pElDomain_ =-    EnterprisesList'-    { _elDomain = pElDomain_-    }+enterprisesList pElDomain_ = EnterprisesList' {_elDomain = pElDomain_}+  -- | The exact primary domain name of the enterprise to look up. elDomain :: Lens' EnterprisesList Text
gen/Network/Google/Resource/AndroidEnterprise/Enterprises/PullNotificationSet.hs view
@@ -81,10 +81,13 @@ -- may return more notifications once they become available. -- -- /See:/ 'enterprisesPullNotificationSet' smart constructor.-newtype EnterprisesPullNotificationSet = EnterprisesPullNotificationSet'+newtype EnterprisesPullNotificationSet =+  EnterprisesPullNotificationSet'     { _epnsRequestMode :: Maybe EnterprisesPullNotificationSetRequestMode-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnterprisesPullNotificationSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -93,9 +96,8 @@ enterprisesPullNotificationSet     :: EnterprisesPullNotificationSet enterprisesPullNotificationSet =-    EnterprisesPullNotificationSet'-    { _epnsRequestMode = Nothing-    }+  EnterprisesPullNotificationSet' {_epnsRequestMode = Nothing}+  -- | The request mode for pulling notifications. Specifying -- waitForNotifications will cause the request to block and wait until one
gen/Network/Google/Resource/AndroidEnterprise/Enterprises/SendTestPushNotification.hs view
@@ -56,10 +56,13 @@ -- Google Cloud Pub\/Sub service for this enterprise. -- -- /See:/ 'enterprisesSendTestPushNotification' smart constructor.-newtype EnterprisesSendTestPushNotification = EnterprisesSendTestPushNotification'+newtype EnterprisesSendTestPushNotification =+  EnterprisesSendTestPushNotification'     { _estpnEnterpriseId :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnterprisesSendTestPushNotification' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -69,10 +72,10 @@     :: Text -- ^ 'estpnEnterpriseId'     -> EnterprisesSendTestPushNotification enterprisesSendTestPushNotification pEstpnEnterpriseId_ =-    EnterprisesSendTestPushNotification'-    { _estpnEnterpriseId = pEstpnEnterpriseId_-    }+  EnterprisesSendTestPushNotification'+    {_estpnEnterpriseId = pEstpnEnterpriseId_} + -- | The ID of the enterprise. estpnEnterpriseId :: Lens' EnterprisesSendTestPushNotification Text estpnEnterpriseId@@ -80,7 +83,8 @@       (\ s a -> s{_estpnEnterpriseId = a})  instance GoogleRequest-         EnterprisesSendTestPushNotification where+           EnterprisesSendTestPushNotification+         where         type Rs EnterprisesSendTestPushNotification =              EnterprisesSendTestPushNotificationResponse         type Scopes EnterprisesSendTestPushNotification =
gen/Network/Google/Resource/AndroidEnterprise/Enterprises/SetAccount.hs view
@@ -57,11 +57,14 @@ -- enterprise. -- -- /See:/ 'enterprisesSetAccount' smart constructor.-data EnterprisesSetAccount = EnterprisesSetAccount'+data EnterprisesSetAccount =+  EnterprisesSetAccount'     { _esaEnterpriseId :: !Text     , _esaPayload      :: !EnterpriseAccount-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnterprisesSetAccount' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -74,10 +77,9 @@     -> EnterpriseAccount -- ^ 'esaPayload'     -> EnterprisesSetAccount enterprisesSetAccount pEsaEnterpriseId_ pEsaPayload_ =-    EnterprisesSetAccount'-    { _esaEnterpriseId = pEsaEnterpriseId_-    , _esaPayload = pEsaPayload_-    }+  EnterprisesSetAccount'+    {_esaEnterpriseId = pEsaEnterpriseId_, _esaPayload = pEsaPayload_}+  -- | The ID of the enterprise. esaEnterpriseId :: Lens' EnterprisesSetAccount Text
− gen/Network/Google/Resource/AndroidEnterprise/Enterprises/SetAndroidDevicePolicyConfig.hs
@@ -1,109 +0,0 @@-{-# 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.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig--- 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)------ Deprecated and unused.------ /See:/ <https://developers.google.com/android/work/play/emm-api Google Play EMM API Reference> for @androidenterprise.enterprises.setAndroidDevicePolicyConfig@.-module Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig-    (-    -- * REST Resource-      EnterprisesSetAndroidDevicePolicyConfigResource--    -- * Creating a Request-    , enterprisesSetAndroidDevicePolicyConfig-    , EnterprisesSetAndroidDevicePolicyConfig--    -- * Request Lenses-    , esadpcEnterpriseId-    , esadpcPayload-    ) where--import           Network.Google.AndroidEnterprise.Types-import           Network.Google.Prelude---- | A resource alias for @androidenterprise.enterprises.setAndroidDevicePolicyConfig@ method which the--- 'EnterprisesSetAndroidDevicePolicyConfig' request conforms to.-type EnterprisesSetAndroidDevicePolicyConfigResource-     =-     "androidenterprise" :>-       "v1" :>-         "enterprises" :>-           Capture "enterpriseId" Text :>-             "androidDevicePolicyConfig" :>-               QueryParam "alt" AltJSON :>-                 ReqBody '[JSON] AndroidDevicePolicyConfig :>-                   Put '[JSON] AndroidDevicePolicyConfig---- | Deprecated and unused.------ /See:/ 'enterprisesSetAndroidDevicePolicyConfig' smart constructor.-data EnterprisesSetAndroidDevicePolicyConfig = EnterprisesSetAndroidDevicePolicyConfig'-    { _esadpcEnterpriseId :: !Text-    , _esadpcPayload      :: !AndroidDevicePolicyConfig-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'EnterprisesSetAndroidDevicePolicyConfig' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'esadpcEnterpriseId'------ * 'esadpcPayload'-enterprisesSetAndroidDevicePolicyConfig-    :: Text -- ^ 'esadpcEnterpriseId'-    -> AndroidDevicePolicyConfig -- ^ 'esadpcPayload'-    -> EnterprisesSetAndroidDevicePolicyConfig-enterprisesSetAndroidDevicePolicyConfig pEsadpcEnterpriseId_ pEsadpcPayload_ =-    EnterprisesSetAndroidDevicePolicyConfig'-    { _esadpcEnterpriseId = pEsadpcEnterpriseId_-    , _esadpcPayload = pEsadpcPayload_-    }---- | The ID of the enterprise.-esadpcEnterpriseId :: Lens' EnterprisesSetAndroidDevicePolicyConfig Text-esadpcEnterpriseId-  = lens _esadpcEnterpriseId-      (\ s a -> s{_esadpcEnterpriseId = a})---- | Multipart request metadata.-esadpcPayload :: Lens' EnterprisesSetAndroidDevicePolicyConfig AndroidDevicePolicyConfig-esadpcPayload-  = lens _esadpcPayload-      (\ s a -> s{_esadpcPayload = a})--instance GoogleRequest-         EnterprisesSetAndroidDevicePolicyConfig where-        type Rs EnterprisesSetAndroidDevicePolicyConfig =-             AndroidDevicePolicyConfig-        type Scopes EnterprisesSetAndroidDevicePolicyConfig =-             '["https://www.googleapis.com/auth/androidenterprise"]-        requestClient-          EnterprisesSetAndroidDevicePolicyConfig'{..}-          = go _esadpcEnterpriseId (Just AltJSON)-              _esadpcPayload-              androidEnterpriseService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy-                           EnterprisesSetAndroidDevicePolicyConfigResource)-                      mempty
gen/Network/Google/Resource/AndroidEnterprise/Enterprises/SetStoreLayout.hs view
@@ -67,11 +67,14 @@ -- \"custom\" and setting a homepage), the basic store layout is disabled. -- -- /See:/ 'enterprisesSetStoreLayout' smart constructor.-data EnterprisesSetStoreLayout = EnterprisesSetStoreLayout'+data EnterprisesSetStoreLayout =+  EnterprisesSetStoreLayout'     { _esslEnterpriseId :: !Text     , _esslPayload      :: !StoreLayout-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnterprisesSetStoreLayout' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -84,10 +87,9 @@     -> StoreLayout -- ^ 'esslPayload'     -> EnterprisesSetStoreLayout enterprisesSetStoreLayout pEsslEnterpriseId_ pEsslPayload_ =-    EnterprisesSetStoreLayout'-    { _esslEnterpriseId = pEsslEnterpriseId_-    , _esslPayload = pEsslPayload_-    }+  EnterprisesSetStoreLayout'+    {_esslEnterpriseId = pEsslEnterpriseId_, _esslPayload = pEsslPayload_}+  -- | The ID of the enterprise. esslEnterpriseId :: Lens' EnterprisesSetStoreLayout Text
gen/Network/Google/Resource/AndroidEnterprise/Enterprises/Unenroll.hs view
@@ -52,10 +52,13 @@ -- | Unenrolls an enterprise from the calling EMM. -- -- /See:/ 'enterprisesUnenroll' smart constructor.-newtype EnterprisesUnenroll = EnterprisesUnenroll'+newtype EnterprisesUnenroll =+  EnterprisesUnenroll'     { _entEnterpriseId :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnterprisesUnenroll' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,9 +68,8 @@     :: Text -- ^ 'entEnterpriseId'     -> EnterprisesUnenroll enterprisesUnenroll pEntEnterpriseId_ =-    EnterprisesUnenroll'-    { _entEnterpriseId = pEntEnterpriseId_-    }+  EnterprisesUnenroll' {_entEnterpriseId = pEntEnterpriseId_}+  -- | The ID of the enterprise. entEnterpriseId :: Lens' EnterprisesUnenroll Text
gen/Network/Google/Resource/AndroidEnterprise/Entitlements/Delete.hs view
@@ -57,12 +57,15 @@ -- | Removes an entitlement to an app for a user. -- -- /See:/ 'entitlementsDelete' smart constructor.-data EntitlementsDelete = EntitlementsDelete'+data EntitlementsDelete =+  EntitlementsDelete'     { _edEntitlementId :: !Text     , _edEnterpriseId  :: !Text     , _edUserId        :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EntitlementsDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,11 +81,12 @@     -> Text -- ^ 'edUserId'     -> EntitlementsDelete entitlementsDelete pEdEntitlementId_ pEdEnterpriseId_ pEdUserId_ =-    EntitlementsDelete'+  EntitlementsDelete'     { _edEntitlementId = pEdEntitlementId_     , _edEnterpriseId = pEdEnterpriseId_     , _edUserId = pEdUserId_     }+  -- | The ID of the entitlement (a product ID), e.g. -- \"app:com.google.android.gm\".
gen/Network/Google/Resource/AndroidEnterprise/Entitlements/Get.hs view
@@ -57,12 +57,15 @@ -- | Retrieves details of an entitlement. -- -- /See:/ 'entitlementsGet' smart constructor.-data EntitlementsGet = EntitlementsGet'+data EntitlementsGet =+  EntitlementsGet'     { _egEntitlementId :: !Text     , _egEnterpriseId  :: !Text     , _egUserId        :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EntitlementsGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,11 +81,12 @@     -> Text -- ^ 'egUserId'     -> EntitlementsGet entitlementsGet pEgEntitlementId_ pEgEnterpriseId_ pEgUserId_ =-    EntitlementsGet'+  EntitlementsGet'     { _egEntitlementId = pEgEntitlementId_     , _egEnterpriseId = pEgEnterpriseId_     , _egUserId = pEgUserId_     }+  -- | The ID of the entitlement (a product ID), e.g. -- \"app:com.google.android.gm\".
gen/Network/Google/Resource/AndroidEnterprise/Entitlements/List.hs view
@@ -56,11 +56,14 @@ -- | Lists all entitlements for the specified user. Only the ID is set. -- -- /See:/ 'entitlementsList' smart constructor.-data EntitlementsList = EntitlementsList'+data EntitlementsList =+  EntitlementsList'     { _elEnterpriseId :: !Text     , _elUserId       :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EntitlementsList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,10 +76,8 @@     -> Text -- ^ 'elUserId'     -> EntitlementsList entitlementsList pElEnterpriseId_ pElUserId_ =-    EntitlementsList'-    { _elEnterpriseId = pElEnterpriseId_-    , _elUserId = pElUserId_-    }+  EntitlementsList' {_elEnterpriseId = pElEnterpriseId_, _elUserId = pElUserId_}+  -- | The ID of the enterprise. elEnterpriseId :: Lens' EntitlementsList Text
gen/Network/Google/Resource/AndroidEnterprise/Entitlements/Patch.hs view
@@ -64,14 +64,17 @@ -- supports patch semantics. -- -- /See:/ 'entitlementsPatch' smart constructor.-data EntitlementsPatch = EntitlementsPatch'+data EntitlementsPatch =+  EntitlementsPatch'     { _epEntitlementId :: !Text     , _epEnterpriseId  :: !Text     , _epPayload       :: !Entitlement     , _epInstall       :: !(Maybe Bool)     , _epUserId        :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EntitlementsPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -92,13 +95,14 @@     -> Text -- ^ 'epUserId'     -> EntitlementsPatch entitlementsPatch pEpEntitlementId_ pEpEnterpriseId_ pEpPayload_ pEpUserId_ =-    EntitlementsPatch'+  EntitlementsPatch'     { _epEntitlementId = pEpEntitlementId_     , _epEnterpriseId = pEpEnterpriseId_     , _epPayload = pEpPayload_     , _epInstall = Nothing     , _epUserId = pEpUserId_     }+  -- | The ID of the entitlement (a product ID), e.g. -- \"app:com.google.android.gm\".
gen/Network/Google/Resource/AndroidEnterprise/Entitlements/Update.hs view
@@ -62,14 +62,17 @@ -- | Adds or updates an entitlement to an app for a user. -- -- /See:/ 'entitlementsUpdate' smart constructor.-data EntitlementsUpdate = EntitlementsUpdate'+data EntitlementsUpdate =+  EntitlementsUpdate'     { _euEntitlementId :: !Text     , _euEnterpriseId  :: !Text     , _euPayload       :: !Entitlement     , _euInstall       :: !(Maybe Bool)     , _euUserId        :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'EntitlementsUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -90,13 +93,14 @@     -> Text -- ^ 'euUserId'     -> EntitlementsUpdate entitlementsUpdate pEuEntitlementId_ pEuEnterpriseId_ pEuPayload_ pEuUserId_ =-    EntitlementsUpdate'+  EntitlementsUpdate'     { _euEntitlementId = pEuEntitlementId_     , _euEnterpriseId = pEuEnterpriseId_     , _euPayload = pEuPayload_     , _euInstall = Nothing     , _euUserId = pEuUserId_     }+  -- | The ID of the entitlement (a product ID), e.g. -- \"app:com.google.android.gm\".
gen/Network/Google/Resource/AndroidEnterprise/GrouplicenseUsers/List.hs view
@@ -58,11 +58,14 @@ -- the license. -- -- /See:/ 'grouplicenseUsersList' smart constructor.-data GrouplicenseUsersList = GrouplicenseUsersList'+data GrouplicenseUsersList =+  GrouplicenseUsersList'     { _gulEnterpriseId   :: !Text     , _gulGroupLicenseId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'GrouplicenseUsersList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,10 +78,11 @@     -> Text -- ^ 'gulGroupLicenseId'     -> GrouplicenseUsersList grouplicenseUsersList pGulEnterpriseId_ pGulGroupLicenseId_ =-    GrouplicenseUsersList'+  GrouplicenseUsersList'     { _gulEnterpriseId = pGulEnterpriseId_     , _gulGroupLicenseId = pGulGroupLicenseId_     }+  -- | The ID of the enterprise. gulEnterpriseId :: Lens' GrouplicenseUsersList Text
gen/Network/Google/Resource/AndroidEnterprise/Grouplicenses/Get.hs view
@@ -54,11 +54,14 @@ -- | Retrieves details of an enterprise\'s group license for a product. -- -- /See:/ 'grouplicensesGet' smart constructor.-data GrouplicensesGet = GrouplicensesGet'+data GrouplicensesGet =+  GrouplicensesGet'     { _ggEnterpriseId   :: !Text     , _ggGroupLicenseId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'GrouplicensesGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,10 +74,9 @@     -> Text -- ^ 'ggGroupLicenseId'     -> GrouplicensesGet grouplicensesGet pGgEnterpriseId_ pGgGroupLicenseId_ =-    GrouplicensesGet'-    { _ggEnterpriseId = pGgEnterpriseId_-    , _ggGroupLicenseId = pGgGroupLicenseId_-    }+  GrouplicensesGet'+    {_ggEnterpriseId = pGgEnterpriseId_, _ggGroupLicenseId = pGgGroupLicenseId_}+  -- | The ID of the enterprise. ggEnterpriseId :: Lens' GrouplicensesGet Text
gen/Network/Google/Resource/AndroidEnterprise/Grouplicenses/List.hs view
@@ -55,10 +55,13 @@ -- license. -- -- /See:/ 'grouplicensesList' smart constructor.-newtype GrouplicensesList = GrouplicensesList'+newtype GrouplicensesList =+  GrouplicensesList'     { _glEnterpriseId :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'GrouplicensesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -68,9 +71,8 @@     :: Text -- ^ 'glEnterpriseId'     -> GrouplicensesList grouplicensesList pGlEnterpriseId_ =-    GrouplicensesList'-    { _glEnterpriseId = pGlEnterpriseId_-    }+  GrouplicensesList' {_glEnterpriseId = pGlEnterpriseId_}+  -- | The ID of the enterprise. glEnterpriseId :: Lens' GrouplicensesList Text
gen/Network/Google/Resource/AndroidEnterprise/Installs/Delete.hs view
@@ -64,13 +64,16 @@ -- removed. -- -- /See:/ 'installsDelete' smart constructor.-data InstallsDelete = InstallsDelete'+data InstallsDelete =+  InstallsDelete'     { _idEnterpriseId :: !Text     , _idUserId       :: !Text     , _idInstallId    :: !Text     , _idDeviceId     :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'InstallsDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -89,12 +92,13 @@     -> Text -- ^ 'idDeviceId'     -> InstallsDelete installsDelete pIdEnterpriseId_ pIdUserId_ pIdInstallId_ pIdDeviceId_ =-    InstallsDelete'+  InstallsDelete'     { _idEnterpriseId = pIdEnterpriseId_     , _idUserId = pIdUserId_     , _idInstallId = pIdInstallId_     , _idDeviceId = pIdDeviceId_     }+  -- | The ID of the enterprise. idEnterpriseId :: Lens' InstallsDelete Text
gen/Network/Google/Resource/AndroidEnterprise/Installs/Get.hs view
@@ -60,13 +60,16 @@ -- | Retrieves details of an installation of an app on a device. -- -- /See:/ 'installsGet' smart constructor.-data InstallsGet = InstallsGet'+data InstallsGet =+  InstallsGet'     { _igEnterpriseId :: !Text     , _igUserId       :: !Text     , _igInstallId    :: !Text     , _igDeviceId     :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'InstallsGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -85,12 +88,13 @@     -> Text -- ^ 'igDeviceId'     -> InstallsGet installsGet pIgEnterpriseId_ pIgUserId_ pIgInstallId_ pIgDeviceId_ =-    InstallsGet'+  InstallsGet'     { _igEnterpriseId = pIgEnterpriseId_     , _igUserId = pIgUserId_     , _igInstallId = pIgInstallId_     , _igDeviceId = pIgDeviceId_     }+  -- | The ID of the enterprise. igEnterpriseId :: Lens' InstallsGet Text
gen/Network/Google/Resource/AndroidEnterprise/Installs/List.hs view
@@ -59,12 +59,15 @@ -- | Retrieves the details of all apps installed on the specified device. -- -- /See:/ 'installsList' smart constructor.-data InstallsList = InstallsList'+data InstallsList =+  InstallsList'     { _ilEnterpriseId :: !Text     , _ilUserId       :: !Text     , _ilDeviceId     :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'InstallsList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -80,11 +83,12 @@     -> Text -- ^ 'ilDeviceId'     -> InstallsList installsList pIlEnterpriseId_ pIlUserId_ pIlDeviceId_ =-    InstallsList'+  InstallsList'     { _ilEnterpriseId = pIlEnterpriseId_     , _ilUserId = pIlUserId_     , _ilDeviceId = pIlDeviceId_     }+  -- | The ID of the enterprise. ilEnterpriseId :: Lens' InstallsList Text
gen/Network/Google/Resource/AndroidEnterprise/Installs/Patch.hs view
@@ -66,14 +66,17 @@ -- necessary. This method supports patch semantics. -- -- /See:/ 'installsPatch' smart constructor.-data InstallsPatch = InstallsPatch'+data InstallsPatch =+  InstallsPatch'     { _ipEnterpriseId :: !Text     , _ipPayload      :: !Install     , _ipUserId       :: !Text     , _ipInstallId    :: !Text     , _ipDeviceId     :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'InstallsPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -95,13 +98,14 @@     -> Text -- ^ 'ipDeviceId'     -> InstallsPatch installsPatch pIpEnterpriseId_ pIpPayload_ pIpUserId_ pIpInstallId_ pIpDeviceId_ =-    InstallsPatch'+  InstallsPatch'     { _ipEnterpriseId = pIpEnterpriseId_     , _ipPayload = pIpPayload_     , _ipUserId = pIpUserId_     , _ipInstallId = pIpInstallId_     , _ipDeviceId = pIpDeviceId_     }+  -- | The ID of the enterprise. ipEnterpriseId :: Lens' InstallsPatch Text
gen/Network/Google/Resource/AndroidEnterprise/Installs/Update.hs view
@@ -66,14 +66,17 @@ -- necessary. -- -- /See:/ 'installsUpdate' smart constructor.-data InstallsUpdate = InstallsUpdate'+data InstallsUpdate =+  InstallsUpdate'     { _iuEnterpriseId :: !Text     , _iuPayload      :: !Install     , _iuUserId       :: !Text     , _iuInstallId    :: !Text     , _iuDeviceId     :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'InstallsUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -95,13 +98,14 @@     -> Text -- ^ 'iuDeviceId'     -> InstallsUpdate installsUpdate pIuEnterpriseId_ pIuPayload_ pIuUserId_ pIuInstallId_ pIuDeviceId_ =-    InstallsUpdate'+  InstallsUpdate'     { _iuEnterpriseId = pIuEnterpriseId_     , _iuPayload = pIuPayload_     , _iuUserId = pIuUserId_     , _iuInstallId = pIuInstallId_     , _iuDeviceId = pIuDeviceId_     }+  -- | The ID of the enterprise. iuEnterpriseId :: Lens' InstallsUpdate Text
gen/Network/Google/Resource/AndroidEnterprise/ManagedConfigurationsforDevice/Delete.hs view
@@ -62,13 +62,16 @@ -- device. -- -- /See:/ 'managedConfigurationsforDeviceDelete' smart constructor.-data ManagedConfigurationsforDeviceDelete = ManagedConfigurationsforDeviceDelete'+data ManagedConfigurationsforDeviceDelete =+  ManagedConfigurationsforDeviceDelete'     { _mcddEnterpriseId                    :: !Text     , _mcddUserId                          :: !Text     , _mcddDeviceId                        :: !Text     , _mcddManagedConfigurationForDeviceId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ManagedConfigurationsforDeviceDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -87,13 +90,15 @@     -> Text -- ^ 'mcddManagedConfigurationForDeviceId'     -> ManagedConfigurationsforDeviceDelete managedConfigurationsforDeviceDelete pMcddEnterpriseId_ pMcddUserId_ pMcddDeviceId_ pMcddManagedConfigurationForDeviceId_ =-    ManagedConfigurationsforDeviceDelete'+  ManagedConfigurationsforDeviceDelete'     { _mcddEnterpriseId = pMcddEnterpriseId_     , _mcddUserId = pMcddUserId_     , _mcddDeviceId = pMcddDeviceId_-    , _mcddManagedConfigurationForDeviceId = pMcddManagedConfigurationForDeviceId_+    , _mcddManagedConfigurationForDeviceId =+        pMcddManagedConfigurationForDeviceId_     } + -- | The ID of the enterprise. mcddEnterpriseId :: Lens' ManagedConfigurationsforDeviceDelete Text mcddEnterpriseId@@ -119,7 +124,8 @@          s{_mcddManagedConfigurationForDeviceId = a})  instance GoogleRequest-         ManagedConfigurationsforDeviceDelete where+           ManagedConfigurationsforDeviceDelete+         where         type Rs ManagedConfigurationsforDeviceDelete = ()         type Scopes ManagedConfigurationsforDeviceDelete =              '["https://www.googleapis.com/auth/androidenterprise"]
gen/Network/Google/Resource/AndroidEnterprise/ManagedConfigurationsforDevice/Get.hs view
@@ -61,13 +61,16 @@ -- | Retrieves details of a per-device managed configuration. -- -- /See:/ 'managedConfigurationsforDeviceGet' smart constructor.-data ManagedConfigurationsforDeviceGet = ManagedConfigurationsforDeviceGet'+data ManagedConfigurationsforDeviceGet =+  ManagedConfigurationsforDeviceGet'     { _mcdgEnterpriseId                    :: !Text     , _mcdgUserId                          :: !Text     , _mcdgDeviceId                        :: !Text     , _mcdgManagedConfigurationForDeviceId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ManagedConfigurationsforDeviceGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -86,13 +89,15 @@     -> Text -- ^ 'mcdgManagedConfigurationForDeviceId'     -> ManagedConfigurationsforDeviceGet managedConfigurationsforDeviceGet pMcdgEnterpriseId_ pMcdgUserId_ pMcdgDeviceId_ pMcdgManagedConfigurationForDeviceId_ =-    ManagedConfigurationsforDeviceGet'+  ManagedConfigurationsforDeviceGet'     { _mcdgEnterpriseId = pMcdgEnterpriseId_     , _mcdgUserId = pMcdgUserId_     , _mcdgDeviceId = pMcdgDeviceId_-    , _mcdgManagedConfigurationForDeviceId = pMcdgManagedConfigurationForDeviceId_+    , _mcdgManagedConfigurationForDeviceId =+        pMcdgManagedConfigurationForDeviceId_     } + -- | The ID of the enterprise. mcdgEnterpriseId :: Lens' ManagedConfigurationsforDeviceGet Text mcdgEnterpriseId@@ -118,7 +123,8 @@          s{_mcdgManagedConfigurationForDeviceId = a})  instance GoogleRequest-         ManagedConfigurationsforDeviceGet where+           ManagedConfigurationsforDeviceGet+         where         type Rs ManagedConfigurationsforDeviceGet =              ManagedConfiguration         type Scopes ManagedConfigurationsforDeviceGet =
gen/Network/Google/Resource/AndroidEnterprise/ManagedConfigurationsforDevice/List.hs view
@@ -62,12 +62,15 @@ -- device. Only the ID is set. -- -- /See:/ 'managedConfigurationsforDeviceList' smart constructor.-data ManagedConfigurationsforDeviceList = ManagedConfigurationsforDeviceList'+data ManagedConfigurationsforDeviceList =+  ManagedConfigurationsforDeviceList'     { _mcdlEnterpriseId :: !Text     , _mcdlUserId       :: !Text     , _mcdlDeviceId     :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ManagedConfigurationsforDeviceList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -83,12 +86,13 @@     -> Text -- ^ 'mcdlDeviceId'     -> ManagedConfigurationsforDeviceList managedConfigurationsforDeviceList pMcdlEnterpriseId_ pMcdlUserId_ pMcdlDeviceId_ =-    ManagedConfigurationsforDeviceList'+  ManagedConfigurationsforDeviceList'     { _mcdlEnterpriseId = pMcdlEnterpriseId_     , _mcdlUserId = pMcdlUserId_     , _mcdlDeviceId = pMcdlDeviceId_     } + -- | The ID of the enterprise. mcdlEnterpriseId :: Lens' ManagedConfigurationsforDeviceList Text mcdlEnterpriseId@@ -106,7 +110,8 @@   = lens _mcdlDeviceId (\ s a -> s{_mcdlDeviceId = a})  instance GoogleRequest-         ManagedConfigurationsforDeviceList where+           ManagedConfigurationsforDeviceList+         where         type Rs ManagedConfigurationsforDeviceList =              ManagedConfigurationsForDeviceListResponse         type Scopes ManagedConfigurationsforDeviceList =
gen/Network/Google/Resource/AndroidEnterprise/ManagedConfigurationsforDevice/Patch.hs view
@@ -65,14 +65,17 @@ -- specified device. This method supports patch semantics. -- -- /See:/ 'managedConfigurationsforDevicePatch' smart constructor.-data ManagedConfigurationsforDevicePatch = ManagedConfigurationsforDevicePatch'+data ManagedConfigurationsforDevicePatch =+  ManagedConfigurationsforDevicePatch'     { _mcdpEnterpriseId                    :: !Text     , _mcdpPayload                         :: !ManagedConfiguration     , _mcdpUserId                          :: !Text     , _mcdpDeviceId                        :: !Text     , _mcdpManagedConfigurationForDeviceId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ManagedConfigurationsforDevicePatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -94,14 +97,16 @@     -> Text -- ^ 'mcdpManagedConfigurationForDeviceId'     -> ManagedConfigurationsforDevicePatch managedConfigurationsforDevicePatch pMcdpEnterpriseId_ pMcdpPayload_ pMcdpUserId_ pMcdpDeviceId_ pMcdpManagedConfigurationForDeviceId_ =-    ManagedConfigurationsforDevicePatch'+  ManagedConfigurationsforDevicePatch'     { _mcdpEnterpriseId = pMcdpEnterpriseId_     , _mcdpPayload = pMcdpPayload_     , _mcdpUserId = pMcdpUserId_     , _mcdpDeviceId = pMcdpDeviceId_-    , _mcdpManagedConfigurationForDeviceId = pMcdpManagedConfigurationForDeviceId_+    , _mcdpManagedConfigurationForDeviceId =+        pMcdpManagedConfigurationForDeviceId_     } + -- | The ID of the enterprise. mcdpEnterpriseId :: Lens' ManagedConfigurationsforDevicePatch Text mcdpEnterpriseId@@ -132,7 +137,8 @@          s{_mcdpManagedConfigurationForDeviceId = a})  instance GoogleRequest-         ManagedConfigurationsforDevicePatch where+           ManagedConfigurationsforDevicePatch+         where         type Rs ManagedConfigurationsforDevicePatch =              ManagedConfiguration         type Scopes ManagedConfigurationsforDevicePatch =
gen/Network/Google/Resource/AndroidEnterprise/ManagedConfigurationsforDevice/Update.hs view
@@ -65,14 +65,17 @@ -- specified device. -- -- /See:/ 'managedConfigurationsforDeviceUpdate' smart constructor.-data ManagedConfigurationsforDeviceUpdate = ManagedConfigurationsforDeviceUpdate'+data ManagedConfigurationsforDeviceUpdate =+  ManagedConfigurationsforDeviceUpdate'     { _mcduEnterpriseId                    :: !Text     , _mcduPayload                         :: !ManagedConfiguration     , _mcduUserId                          :: !Text     , _mcduDeviceId                        :: !Text     , _mcduManagedConfigurationForDeviceId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ManagedConfigurationsforDeviceUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -94,14 +97,16 @@     -> Text -- ^ 'mcduManagedConfigurationForDeviceId'     -> ManagedConfigurationsforDeviceUpdate managedConfigurationsforDeviceUpdate pMcduEnterpriseId_ pMcduPayload_ pMcduUserId_ pMcduDeviceId_ pMcduManagedConfigurationForDeviceId_ =-    ManagedConfigurationsforDeviceUpdate'+  ManagedConfigurationsforDeviceUpdate'     { _mcduEnterpriseId = pMcduEnterpriseId_     , _mcduPayload = pMcduPayload_     , _mcduUserId = pMcduUserId_     , _mcduDeviceId = pMcduDeviceId_-    , _mcduManagedConfigurationForDeviceId = pMcduManagedConfigurationForDeviceId_+    , _mcduManagedConfigurationForDeviceId =+        pMcduManagedConfigurationForDeviceId_     } + -- | The ID of the enterprise. mcduEnterpriseId :: Lens' ManagedConfigurationsforDeviceUpdate Text mcduEnterpriseId@@ -132,7 +137,8 @@          s{_mcduManagedConfigurationForDeviceId = a})  instance GoogleRequest-         ManagedConfigurationsforDeviceUpdate where+           ManagedConfigurationsforDeviceUpdate+         where         type Rs ManagedConfigurationsforDeviceUpdate =              ManagedConfiguration         type Scopes ManagedConfigurationsforDeviceUpdate =
gen/Network/Google/Resource/AndroidEnterprise/ManagedConfigurationsforUser/Delete.hs view
@@ -59,12 +59,15 @@ -- user. -- -- /See:/ 'managedConfigurationsforUserDelete' smart constructor.-data ManagedConfigurationsforUserDelete = ManagedConfigurationsforUserDelete'+data ManagedConfigurationsforUserDelete =+  ManagedConfigurationsforUserDelete'     { _mcudEnterpriseId                  :: !Text     , _mcudUserId                        :: !Text     , _mcudManagedConfigurationForUserId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ManagedConfigurationsforUserDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -80,12 +83,13 @@     -> Text -- ^ 'mcudManagedConfigurationForUserId'     -> ManagedConfigurationsforUserDelete managedConfigurationsforUserDelete pMcudEnterpriseId_ pMcudUserId_ pMcudManagedConfigurationForUserId_ =-    ManagedConfigurationsforUserDelete'+  ManagedConfigurationsforUserDelete'     { _mcudEnterpriseId = pMcudEnterpriseId_     , _mcudUserId = pMcudUserId_     , _mcudManagedConfigurationForUserId = pMcudManagedConfigurationForUserId_     } + -- | The ID of the enterprise. mcudEnterpriseId :: Lens' ManagedConfigurationsforUserDelete Text mcudEnterpriseId@@ -105,7 +109,8 @@       (\ s a -> s{_mcudManagedConfigurationForUserId = a})  instance GoogleRequest-         ManagedConfigurationsforUserDelete where+           ManagedConfigurationsforUserDelete+         where         type Rs ManagedConfigurationsforUserDelete = ()         type Scopes ManagedConfigurationsforUserDelete =              '["https://www.googleapis.com/auth/androidenterprise"]
gen/Network/Google/Resource/AndroidEnterprise/ManagedConfigurationsforUser/Get.hs view
@@ -60,12 +60,15 @@ -- specified user. -- -- /See:/ 'managedConfigurationsforUserGet' smart constructor.-data ManagedConfigurationsforUserGet = ManagedConfigurationsforUserGet'+data ManagedConfigurationsforUserGet =+  ManagedConfigurationsforUserGet'     { _mcugEnterpriseId                  :: !Text     , _mcugUserId                        :: !Text     , _mcugManagedConfigurationForUserId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ManagedConfigurationsforUserGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -81,12 +84,13 @@     -> Text -- ^ 'mcugManagedConfigurationForUserId'     -> ManagedConfigurationsforUserGet managedConfigurationsforUserGet pMcugEnterpriseId_ pMcugUserId_ pMcugManagedConfigurationForUserId_ =-    ManagedConfigurationsforUserGet'+  ManagedConfigurationsforUserGet'     { _mcugEnterpriseId = pMcugEnterpriseId_     , _mcugUserId = pMcugUserId_     , _mcugManagedConfigurationForUserId = pMcugManagedConfigurationForUserId_     } + -- | The ID of the enterprise. mcugEnterpriseId :: Lens' ManagedConfigurationsforUserGet Text mcugEnterpriseId@@ -106,7 +110,8 @@       (\ s a -> s{_mcugManagedConfigurationForUserId = a})  instance GoogleRequest-         ManagedConfigurationsforUserGet where+           ManagedConfigurationsforUserGet+         where         type Rs ManagedConfigurationsforUserGet =              ManagedConfiguration         type Scopes ManagedConfigurationsforUserGet =
gen/Network/Google/Resource/AndroidEnterprise/ManagedConfigurationsforUser/List.hs view
@@ -58,11 +58,14 @@ -- Only the ID is set. -- -- /See:/ 'managedConfigurationsforUserList' smart constructor.-data ManagedConfigurationsforUserList = ManagedConfigurationsforUserList'+data ManagedConfigurationsforUserList =+  ManagedConfigurationsforUserList'     { _mculEnterpriseId :: !Text     , _mculUserId       :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ManagedConfigurationsforUserList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,11 +78,10 @@     -> Text -- ^ 'mculUserId'     -> ManagedConfigurationsforUserList managedConfigurationsforUserList pMculEnterpriseId_ pMculUserId_ =-    ManagedConfigurationsforUserList'-    { _mculEnterpriseId = pMculEnterpriseId_-    , _mculUserId = pMculUserId_-    }+  ManagedConfigurationsforUserList'+    {_mculEnterpriseId = pMculEnterpriseId_, _mculUserId = pMculUserId_} + -- | The ID of the enterprise. mculEnterpriseId :: Lens' ManagedConfigurationsforUserList Text mculEnterpriseId@@ -92,7 +94,8 @@   = lens _mculUserId (\ s a -> s{_mculUserId = a})  instance GoogleRequest-         ManagedConfigurationsforUserList where+           ManagedConfigurationsforUserList+         where         type Rs ManagedConfigurationsforUserList =              ManagedConfigurationsForUserListResponse         type Scopes ManagedConfigurationsforUserList =
gen/Network/Google/Resource/AndroidEnterprise/ManagedConfigurationsforUser/Patch.hs view
@@ -70,13 +70,16 @@ -- list of managed properties. This method supports patch semantics. -- -- /See:/ 'managedConfigurationsforUserPatch' smart constructor.-data ManagedConfigurationsforUserPatch = ManagedConfigurationsforUserPatch'+data ManagedConfigurationsforUserPatch =+  ManagedConfigurationsforUserPatch'     { _mcupEnterpriseId                  :: !Text     , _mcupPayload                       :: !ManagedConfiguration     , _mcupUserId                        :: !Text     , _mcupManagedConfigurationForUserId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ManagedConfigurationsforUserPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -95,13 +98,14 @@     -> Text -- ^ 'mcupManagedConfigurationForUserId'     -> ManagedConfigurationsforUserPatch managedConfigurationsforUserPatch pMcupEnterpriseId_ pMcupPayload_ pMcupUserId_ pMcupManagedConfigurationForUserId_ =-    ManagedConfigurationsforUserPatch'+  ManagedConfigurationsforUserPatch'     { _mcupEnterpriseId = pMcupEnterpriseId_     , _mcupPayload = pMcupPayload_     , _mcupUserId = pMcupUserId_     , _mcupManagedConfigurationForUserId = pMcupManagedConfigurationForUserId_     } + -- | The ID of the enterprise. mcupEnterpriseId :: Lens' ManagedConfigurationsforUserPatch Text mcupEnterpriseId@@ -126,7 +130,8 @@       (\ s a -> s{_mcupManagedConfigurationForUserId = a})  instance GoogleRequest-         ManagedConfigurationsforUserPatch where+           ManagedConfigurationsforUserPatch+         where         type Rs ManagedConfigurationsforUserPatch =              ManagedConfiguration         type Scopes ManagedConfigurationsforUserPatch =
gen/Network/Google/Resource/AndroidEnterprise/ManagedConfigurationsforUser/Update.hs view
@@ -70,13 +70,16 @@ -- list of managed properties. -- -- /See:/ 'managedConfigurationsforUserUpdate' smart constructor.-data ManagedConfigurationsforUserUpdate = ManagedConfigurationsforUserUpdate'+data ManagedConfigurationsforUserUpdate =+  ManagedConfigurationsforUserUpdate'     { _mcuuEnterpriseId                  :: !Text     , _mcuuPayload                       :: !ManagedConfiguration     , _mcuuUserId                        :: !Text     , _mcuuManagedConfigurationForUserId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ManagedConfigurationsforUserUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -95,13 +98,14 @@     -> Text -- ^ 'mcuuManagedConfigurationForUserId'     -> ManagedConfigurationsforUserUpdate managedConfigurationsforUserUpdate pMcuuEnterpriseId_ pMcuuPayload_ pMcuuUserId_ pMcuuManagedConfigurationForUserId_ =-    ManagedConfigurationsforUserUpdate'+  ManagedConfigurationsforUserUpdate'     { _mcuuEnterpriseId = pMcuuEnterpriseId_     , _mcuuPayload = pMcuuPayload_     , _mcuuUserId = pMcuuUserId_     , _mcuuManagedConfigurationForUserId = pMcuuManagedConfigurationForUserId_     } + -- | The ID of the enterprise. mcuuEnterpriseId :: Lens' ManagedConfigurationsforUserUpdate Text mcuuEnterpriseId@@ -126,7 +130,8 @@       (\ s a -> s{_mcuuManagedConfigurationForUserId = a})  instance GoogleRequest-         ManagedConfigurationsforUserUpdate where+           ManagedConfigurationsforUserUpdate+         where         type Rs ManagedConfigurationsforUserUpdate =              ManagedConfiguration         type Scopes ManagedConfigurationsforUserUpdate =
gen/Network/Google/Resource/AndroidEnterprise/ManagedConfigurationssettings/List.hs view
@@ -58,11 +58,14 @@ -- Only the ID and the name is set. -- -- /See:/ 'managedConfigurationssettingsList' smart constructor.-data ManagedConfigurationssettingsList = ManagedConfigurationssettingsList'+data ManagedConfigurationssettingsList =+  ManagedConfigurationssettingsList'     { _mclEnterpriseId :: !Text     , _mclProductId    :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ManagedConfigurationssettingsList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,11 +78,10 @@     -> Text -- ^ 'mclProductId'     -> ManagedConfigurationssettingsList managedConfigurationssettingsList pMclEnterpriseId_ pMclProductId_ =-    ManagedConfigurationssettingsList'-    { _mclEnterpriseId = pMclEnterpriseId_-    , _mclProductId = pMclProductId_-    }+  ManagedConfigurationssettingsList'+    {_mclEnterpriseId = pMclEnterpriseId_, _mclProductId = pMclProductId_} + -- | The ID of the enterprise. mclEnterpriseId :: Lens' ManagedConfigurationssettingsList Text mclEnterpriseId@@ -93,7 +95,8 @@   = lens _mclProductId (\ s a -> s{_mclProductId = a})  instance GoogleRequest-         ManagedConfigurationssettingsList where+           ManagedConfigurationssettingsList+         where         type Rs ManagedConfigurationssettingsList =              ManagedConfigurationsSettingsListResponse         type Scopes ManagedConfigurationssettingsList =
gen/Network/Google/Resource/AndroidEnterprise/Permissions/Get.hs view
@@ -55,11 +55,14 @@ -- enterprise admin. -- -- /See:/ 'permissionsGet' smart constructor.-data PermissionsGet = PermissionsGet'+data PermissionsGet =+  PermissionsGet'     { _pgLanguage     :: !(Maybe Text)     , _pgPermissionId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'PermissionsGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,10 +74,8 @@     :: Text -- ^ 'pgPermissionId'     -> PermissionsGet permissionsGet pPgPermissionId_ =-    PermissionsGet'-    { _pgLanguage = Nothing-    , _pgPermissionId = pPgPermissionId_-    }+  PermissionsGet' {_pgLanguage = Nothing, _pgPermissionId = pPgPermissionId_}+  -- | The BCP47 tag for the user\'s preferred language (e.g. \"en-US\", -- \"de\")
gen/Network/Google/Resource/AndroidEnterprise/Products/Approve.hs view
@@ -66,12 +66,15 @@ -- Store Layout Design. -- -- /See:/ 'productsApprove' smart constructor.-data ProductsApprove = ProductsApprove'+data ProductsApprove =+  ProductsApprove'     { _paEnterpriseId :: !Text     , _paPayload      :: !ProductsApproveRequest     , _paProductId    :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ProductsApprove' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -87,11 +90,12 @@     -> Text -- ^ 'paProductId'     -> ProductsApprove productsApprove pPaEnterpriseId_ pPaPayload_ pPaProductId_ =-    ProductsApprove'+  ProductsApprove'     { _paEnterpriseId = pPaEnterpriseId_     , _paPayload = pPaPayload_     , _paProductId = pPaProductId_     }+  -- | The ID of the enterprise. paEnterpriseId :: Lens' ProductsApprove Text
gen/Network/Google/Resource/AndroidEnterprise/Products/GenerateApprovalURL.hs view
@@ -72,12 +72,15 @@ -- only be used to display permissions for up to 1 day. -- -- /See:/ 'productsGenerateApprovalURL' smart constructor.-data ProductsGenerateApprovalURL = ProductsGenerateApprovalURL'+data ProductsGenerateApprovalURL =+  ProductsGenerateApprovalURL'     { _pgauLanguageCode :: !(Maybe Text)     , _pgauEnterpriseId :: !Text     , _pgauProductId    :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ProductsGenerateApprovalURL' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -92,11 +95,12 @@     -> Text -- ^ 'pgauProductId'     -> ProductsGenerateApprovalURL productsGenerateApprovalURL pPgauEnterpriseId_ pPgauProductId_ =-    ProductsGenerateApprovalURL'+  ProductsGenerateApprovalURL'     { _pgauLanguageCode = Nothing     , _pgauEnterpriseId = pPgauEnterpriseId_     , _pgauProductId = pPgauProductId_     }+  -- | The BCP 47 language code used for permission names and descriptions in -- the returned iframe, for instance \"en-US\".
gen/Network/Google/Resource/AndroidEnterprise/Products/Get.hs view
@@ -56,12 +56,15 @@ -- | Retrieves details of a product for display to an enterprise admin. -- -- /See:/ 'productsGet' smart constructor.-data ProductsGet = ProductsGet'+data ProductsGet =+  ProductsGet'     { _proEnterpriseId :: !Text     , _proLanguage     :: !(Maybe Text)     , _proProductId    :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ProductsGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -76,11 +79,12 @@     -> Text -- ^ 'proProductId'     -> ProductsGet productsGet pProEnterpriseId_ pProProductId_ =-    ProductsGet'+  ProductsGet'     { _proEnterpriseId = pProEnterpriseId_     , _proLanguage = Nothing     , _proProductId = pProProductId_     }+  -- | The ID of the enterprise. proEnterpriseId :: Lens' ProductsGet Text
gen/Network/Google/Resource/AndroidEnterprise/Products/GetAppRestrictionsSchema.hs view
@@ -68,12 +68,15 @@ -- Managed Configurations through Play. -- -- /See:/ 'productsGetAppRestrictionsSchema' smart constructor.-data ProductsGetAppRestrictionsSchema = ProductsGetAppRestrictionsSchema'+data ProductsGetAppRestrictionsSchema =+  ProductsGetAppRestrictionsSchema'     { _pgarsEnterpriseId :: !Text     , _pgarsLanguage     :: !(Maybe Text)     , _pgarsProductId    :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ProductsGetAppRestrictionsSchema' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -88,12 +91,13 @@     -> Text -- ^ 'pgarsProductId'     -> ProductsGetAppRestrictionsSchema productsGetAppRestrictionsSchema pPgarsEnterpriseId_ pPgarsProductId_ =-    ProductsGetAppRestrictionsSchema'+  ProductsGetAppRestrictionsSchema'     { _pgarsEnterpriseId = pPgarsEnterpriseId_     , _pgarsLanguage = Nothing     , _pgarsProductId = pPgarsProductId_     } + -- | The ID of the enterprise. pgarsEnterpriseId :: Lens' ProductsGetAppRestrictionsSchema Text pgarsEnterpriseId@@ -114,7 +118,8 @@       (\ s a -> s{_pgarsProductId = a})  instance GoogleRequest-         ProductsGetAppRestrictionsSchema where+           ProductsGetAppRestrictionsSchema+         where         type Rs ProductsGetAppRestrictionsSchema =              AppRestrictionsSchema         type Scopes ProductsGetAppRestrictionsSchema =
gen/Network/Google/Resource/AndroidEnterprise/Products/GetPermissions.hs view
@@ -56,11 +56,14 @@ -- | Retrieves the Android app permissions required by this app. -- -- /See:/ 'productsGetPermissions' smart constructor.-data ProductsGetPermissions = ProductsGetPermissions'+data ProductsGetPermissions =+  ProductsGetPermissions'     { _pgpEnterpriseId :: !Text     , _pgpProductId    :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ProductsGetPermissions' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,10 +76,9 @@     -> Text -- ^ 'pgpProductId'     -> ProductsGetPermissions productsGetPermissions pPgpEnterpriseId_ pPgpProductId_ =-    ProductsGetPermissions'-    { _pgpEnterpriseId = pPgpEnterpriseId_-    , _pgpProductId = pPgpProductId_-    }+  ProductsGetPermissions'+    {_pgpEnterpriseId = pPgpEnterpriseId_, _pgpProductId = pPgpProductId_}+  -- | The ID of the enterprise. pgpEnterpriseId :: Lens' ProductsGetPermissions Text
gen/Network/Google/Resource/AndroidEnterprise/Products/List.hs view
@@ -65,15 +65,18 @@ -- there is no query. -- -- /See:/ 'productsList' smart constructor.-data ProductsList = ProductsList'+data ProductsList =+  ProductsList'     { _plEnterpriseId :: !Text     , _plToken        :: !(Maybe Text)     , _plQuery        :: !(Maybe Text)     , _plLanguage     :: !(Maybe Text)     , _plApproved     :: !(Maybe Bool)     , _plMaxResults   :: !(Maybe (Textual Word32))-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ProductsList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -93,7 +96,7 @@     :: Text -- ^ 'plEnterpriseId'     -> ProductsList productsList pPlEnterpriseId_ =-    ProductsList'+  ProductsList'     { _plEnterpriseId = pPlEnterpriseId_     , _plToken = Nothing     , _plQuery = Nothing@@ -102,15 +105,16 @@     , _plMaxResults = Nothing     } + -- | The ID of the enterprise. plEnterpriseId :: Lens' ProductsList Text plEnterpriseId   = lens _plEnterpriseId       (\ s a -> s{_plEnterpriseId = a}) --- | A pagination token is contained in a request\'\'s response when there--- are more products. The token can be used in a subsequent request to--- obtain more products, and so forth. This parameter cannot be used in the+-- | A pagination token is contained in a request\'s response when there are+-- more products. The token can be used in a subsequent request to obtain+-- more products, and so forth. This parameter cannot be used in the -- initial request. plToken :: Lens' ProductsList (Maybe Text) plToken = lens _plToken (\ s a -> s{_plToken = a})
gen/Network/Google/Resource/AndroidEnterprise/Products/UnApprove.hs view
@@ -57,11 +57,14 @@ -- any) -- -- /See:/ 'productsUnApprove' smart constructor.-data ProductsUnApprove = ProductsUnApprove'+data ProductsUnApprove =+  ProductsUnApprove'     { _puaEnterpriseId :: !Text     , _puaProductId    :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ProductsUnApprove' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -74,10 +77,9 @@     -> Text -- ^ 'puaProductId'     -> ProductsUnApprove productsUnApprove pPuaEnterpriseId_ pPuaProductId_ =-    ProductsUnApprove'-    { _puaEnterpriseId = pPuaEnterpriseId_-    , _puaProductId = pPuaProductId_-    }+  ProductsUnApprove'+    {_puaEnterpriseId = pPuaEnterpriseId_, _puaProductId = pPuaProductId_}+  -- | The ID of the enterprise. puaEnterpriseId :: Lens' ProductsUnApprove Text
gen/Network/Google/Resource/AndroidEnterprise/ServiceAccountkeys/Delete.hs view
@@ -62,11 +62,14 @@ -- Enterprises.SetAccount. -- -- /See:/ 'serviceAccountkeysDelete' smart constructor.-data ServiceAccountkeysDelete = ServiceAccountkeysDelete'+data ServiceAccountkeysDelete =+  ServiceAccountkeysDelete'     { _sadKeyId        :: !Text     , _sadEnterpriseId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ServiceAccountkeysDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,10 +82,9 @@     -> Text -- ^ 'sadEnterpriseId'     -> ServiceAccountkeysDelete serviceAccountkeysDelete pSadKeyId_ pSadEnterpriseId_ =-    ServiceAccountkeysDelete'-    { _sadKeyId = pSadKeyId_-    , _sadEnterpriseId = pSadEnterpriseId_-    }+  ServiceAccountkeysDelete'+    {_sadKeyId = pSadKeyId_, _sadEnterpriseId = pSadEnterpriseId_}+  -- | The ID of the key. sadKeyId :: Lens' ServiceAccountkeysDelete Text
gen/Network/Google/Resource/AndroidEnterprise/ServiceAccountkeys/Insert.hs view
@@ -63,11 +63,14 @@ -- type of the key should be populated in the resource to be inserted. -- -- /See:/ 'serviceAccountkeysInsert' smart constructor.-data ServiceAccountkeysInsert = ServiceAccountkeysInsert'+data ServiceAccountkeysInsert =+  ServiceAccountkeysInsert'     { _saiEnterpriseId :: !Text     , _saiPayload      :: !ServiceAccountKey-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ServiceAccountkeysInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -80,10 +83,9 @@     -> ServiceAccountKey -- ^ 'saiPayload'     -> ServiceAccountkeysInsert serviceAccountkeysInsert pSaiEnterpriseId_ pSaiPayload_ =-    ServiceAccountkeysInsert'-    { _saiEnterpriseId = pSaiEnterpriseId_-    , _saiPayload = pSaiPayload_-    }+  ServiceAccountkeysInsert'+    {_saiEnterpriseId = pSaiEnterpriseId_, _saiPayload = pSaiPayload_}+  -- | The ID of the enterprise. saiEnterpriseId :: Lens' ServiceAccountkeysInsert Text
gen/Network/Google/Resource/AndroidEnterprise/ServiceAccountkeys/List.hs view
@@ -61,10 +61,13 @@ -- service account by calling Enterprises.SetAccount. -- -- /See:/ 'serviceAccountkeysList' smart constructor.-newtype ServiceAccountkeysList = ServiceAccountkeysList'+newtype ServiceAccountkeysList =+  ServiceAccountkeysList'     { _salEnterpriseId :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'ServiceAccountkeysList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -74,9 +77,8 @@     :: Text -- ^ 'salEnterpriseId'     -> ServiceAccountkeysList serviceAccountkeysList pSalEnterpriseId_ =-    ServiceAccountkeysList'-    { _salEnterpriseId = pSalEnterpriseId_-    }+  ServiceAccountkeysList' {_salEnterpriseId = pSalEnterpriseId_}+  -- | The ID of the enterprise. salEnterpriseId :: Lens' ServiceAccountkeysList Text
gen/Network/Google/Resource/AndroidEnterprise/Storelayoutclusters/Delete.hs view
@@ -58,12 +58,15 @@ -- | Deletes a cluster. -- -- /See:/ 'storelayoutclustersDelete' smart constructor.-data StorelayoutclustersDelete = StorelayoutclustersDelete'+data StorelayoutclustersDelete =+  StorelayoutclustersDelete'     { _sddEnterpriseId :: !Text     , _sddPageId       :: !Text     , _sddClusterId    :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'StorelayoutclustersDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,11 +82,12 @@     -> Text -- ^ 'sddClusterId'     -> StorelayoutclustersDelete storelayoutclustersDelete pSddEnterpriseId_ pSddPageId_ pSddClusterId_ =-    StorelayoutclustersDelete'+  StorelayoutclustersDelete'     { _sddEnterpriseId = pSddEnterpriseId_     , _sddPageId = pSddPageId_     , _sddClusterId = pSddClusterId_     }+  -- | The ID of the enterprise. sddEnterpriseId :: Lens' StorelayoutclustersDelete Text
gen/Network/Google/Resource/AndroidEnterprise/Storelayoutclusters/Get.hs view
@@ -58,12 +58,15 @@ -- | Retrieves details of a cluster. -- -- /See:/ 'storelayoutclustersGet' smart constructor.-data StorelayoutclustersGet = StorelayoutclustersGet'+data StorelayoutclustersGet =+  StorelayoutclustersGet'     { _stoEnterpriseId :: !Text     , _stoPageId       :: !Text     , _stoClusterId    :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'StorelayoutclustersGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,11 +82,12 @@     -> Text -- ^ 'stoClusterId'     -> StorelayoutclustersGet storelayoutclustersGet pStoEnterpriseId_ pStoPageId_ pStoClusterId_ =-    StorelayoutclustersGet'+  StorelayoutclustersGet'     { _stoEnterpriseId = pStoEnterpriseId_     , _stoPageId = pStoPageId_     , _stoClusterId = pStoClusterId_     }+  -- | The ID of the enterprise. stoEnterpriseId :: Lens' StorelayoutclustersGet Text
gen/Network/Google/Resource/AndroidEnterprise/Storelayoutclusters/Insert.hs view
@@ -59,12 +59,15 @@ -- | Inserts a new cluster in a page. -- -- /See:/ 'storelayoutclustersInsert' smart constructor.-data StorelayoutclustersInsert = StorelayoutclustersInsert'+data StorelayoutclustersInsert =+  StorelayoutclustersInsert'     { _sEnterpriseId :: !Text     , _sPageId       :: !Text     , _sPayload      :: !StoreCluster-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'StorelayoutclustersInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -80,11 +83,12 @@     -> StoreCluster -- ^ 'sPayload'     -> StorelayoutclustersInsert storelayoutclustersInsert pSEnterpriseId_ pSPageId_ pSPayload_ =-    StorelayoutclustersInsert'+  StorelayoutclustersInsert'     { _sEnterpriseId = pSEnterpriseId_     , _sPageId = pSPageId_     , _sPayload = pSPayload_     }+  -- | The ID of the enterprise. sEnterpriseId :: Lens' StorelayoutclustersInsert Text
gen/Network/Google/Resource/AndroidEnterprise/Storelayoutclusters/List.hs view
@@ -57,11 +57,14 @@ -- | Retrieves the details of all clusters on the specified page. -- -- /See:/ 'storelayoutclustersList' smart constructor.-data StorelayoutclustersList = StorelayoutclustersList'+data StorelayoutclustersList =+  StorelayoutclustersList'     { _sllEnterpriseId :: !Text     , _sllPageId       :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'StorelayoutclustersList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -74,10 +77,9 @@     -> Text -- ^ 'sllPageId'     -> StorelayoutclustersList storelayoutclustersList pSllEnterpriseId_ pSllPageId_ =-    StorelayoutclustersList'-    { _sllEnterpriseId = pSllEnterpriseId_-    , _sllPageId = pSllPageId_-    }+  StorelayoutclustersList'+    {_sllEnterpriseId = pSllEnterpriseId_, _sllPageId = pSllPageId_}+  -- | The ID of the enterprise. sllEnterpriseId :: Lens' StorelayoutclustersList Text
gen/Network/Google/Resource/AndroidEnterprise/Storelayoutclusters/Patch.hs view
@@ -61,13 +61,16 @@ -- | Updates a cluster. This method supports patch semantics. -- -- /See:/ 'storelayoutclustersPatch' smart constructor.-data StorelayoutclustersPatch = StorelayoutclustersPatch'+data StorelayoutclustersPatch =+  StorelayoutclustersPatch'     { _sppEnterpriseId :: !Text     , _sppPageId       :: !Text     , _sppPayload      :: !StoreCluster     , _sppClusterId    :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'StorelayoutclustersPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -86,12 +89,13 @@     -> Text -- ^ 'sppClusterId'     -> StorelayoutclustersPatch storelayoutclustersPatch pSppEnterpriseId_ pSppPageId_ pSppPayload_ pSppClusterId_ =-    StorelayoutclustersPatch'+  StorelayoutclustersPatch'     { _sppEnterpriseId = pSppEnterpriseId_     , _sppPageId = pSppPageId_     , _sppPayload = pSppPayload_     , _sppClusterId = pSppClusterId_     }+  -- | The ID of the enterprise. sppEnterpriseId :: Lens' StorelayoutclustersPatch Text
gen/Network/Google/Resource/AndroidEnterprise/Storelayoutclusters/Update.hs view
@@ -61,13 +61,16 @@ -- | Updates a cluster. -- -- /See:/ 'storelayoutclustersUpdate' smart constructor.-data StorelayoutclustersUpdate = StorelayoutclustersUpdate'+data StorelayoutclustersUpdate =+  StorelayoutclustersUpdate'     { _suuEnterpriseId :: !Text     , _suuPageId       :: !Text     , _suuPayload      :: !StoreCluster     , _suuClusterId    :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'StorelayoutclustersUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -86,12 +89,13 @@     -> Text -- ^ 'suuClusterId'     -> StorelayoutclustersUpdate storelayoutclustersUpdate pSuuEnterpriseId_ pSuuPageId_ pSuuPayload_ pSuuClusterId_ =-    StorelayoutclustersUpdate'+  StorelayoutclustersUpdate'     { _suuEnterpriseId = pSuuEnterpriseId_     , _suuPageId = pSuuPageId_     , _suuPayload = pSuuPayload_     , _suuClusterId = pSuuClusterId_     }+  -- | The ID of the enterprise. suuEnterpriseId :: Lens' StorelayoutclustersUpdate Text
gen/Network/Google/Resource/AndroidEnterprise/Storelayoutpages/Delete.hs view
@@ -55,11 +55,14 @@ -- | Deletes a store page. -- -- /See:/ 'storelayoutpagesDelete' smart constructor.-data StorelayoutpagesDelete = StorelayoutpagesDelete'+data StorelayoutpagesDelete =+  StorelayoutpagesDelete'     { _sdEnterpriseId :: !Text     , _sdPageId       :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'StorelayoutpagesDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,9 @@     -> Text -- ^ 'sdPageId'     -> StorelayoutpagesDelete storelayoutpagesDelete pSdEnterpriseId_ pSdPageId_ =-    StorelayoutpagesDelete'-    { _sdEnterpriseId = pSdEnterpriseId_-    , _sdPageId = pSdPageId_-    }+  StorelayoutpagesDelete'+    {_sdEnterpriseId = pSdEnterpriseId_, _sdPageId = pSdPageId_}+  -- | The ID of the enterprise. sdEnterpriseId :: Lens' StorelayoutpagesDelete Text
gen/Network/Google/Resource/AndroidEnterprise/Storelayoutpages/Get.hs view
@@ -55,11 +55,14 @@ -- | Retrieves details of a store page. -- -- /See:/ 'storelayoutpagesGet' smart constructor.-data StorelayoutpagesGet = StorelayoutpagesGet'+data StorelayoutpagesGet =+  StorelayoutpagesGet'     { _sgEnterpriseId :: !Text     , _sgPageId       :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'StorelayoutpagesGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,9 @@     -> Text -- ^ 'sgPageId'     -> StorelayoutpagesGet storelayoutpagesGet pSgEnterpriseId_ pSgPageId_ =-    StorelayoutpagesGet'-    { _sgEnterpriseId = pSgEnterpriseId_-    , _sgPageId = pSgPageId_-    }+  StorelayoutpagesGet'+    {_sgEnterpriseId = pSgEnterpriseId_, _sgPageId = pSgPageId_}+  -- | The ID of the enterprise. sgEnterpriseId :: Lens' StorelayoutpagesGet Text
gen/Network/Google/Resource/AndroidEnterprise/Storelayoutpages/Insert.hs view
@@ -55,11 +55,14 @@ -- | Inserts a new store page. -- -- /See:/ 'storelayoutpagesInsert' smart constructor.-data StorelayoutpagesInsert = StorelayoutpagesInsert'+data StorelayoutpagesInsert =+  StorelayoutpagesInsert'     { _siEnterpriseId :: !Text     , _siPayload      :: !StorePage-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'StorelayoutpagesInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,9 @@     -> StorePage -- ^ 'siPayload'     -> StorelayoutpagesInsert storelayoutpagesInsert pSiEnterpriseId_ pSiPayload_ =-    StorelayoutpagesInsert'-    { _siEnterpriseId = pSiEnterpriseId_-    , _siPayload = pSiPayload_-    }+  StorelayoutpagesInsert'+    {_siEnterpriseId = pSiEnterpriseId_, _siPayload = pSiPayload_}+  -- | The ID of the enterprise. siEnterpriseId :: Lens' StorelayoutpagesInsert Text
gen/Network/Google/Resource/AndroidEnterprise/Storelayoutpages/List.hs view
@@ -54,10 +54,13 @@ -- | Retrieves the details of all pages in the store. -- -- /See:/ 'storelayoutpagesList' smart constructor.-newtype StorelayoutpagesList = StorelayoutpagesList'+newtype StorelayoutpagesList =+  StorelayoutpagesList'     { _slEnterpriseId :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'StorelayoutpagesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,9 +70,8 @@     :: Text -- ^ 'slEnterpriseId'     -> StorelayoutpagesList storelayoutpagesList pSlEnterpriseId_ =-    StorelayoutpagesList'-    { _slEnterpriseId = pSlEnterpriseId_-    }+  StorelayoutpagesList' {_slEnterpriseId = pSlEnterpriseId_}+  -- | The ID of the enterprise. slEnterpriseId :: Lens' StorelayoutpagesList Text
gen/Network/Google/Resource/AndroidEnterprise/Storelayoutpages/Patch.hs view
@@ -59,12 +59,15 @@ -- semantics. -- -- /See:/ 'storelayoutpagesPatch' smart constructor.-data StorelayoutpagesPatch = StorelayoutpagesPatch'+data StorelayoutpagesPatch =+  StorelayoutpagesPatch'     { _spEnterpriseId :: !Text     , _spPageId       :: !Text     , _spPayload      :: !StorePage-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'StorelayoutpagesPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -80,11 +83,12 @@     -> StorePage -- ^ 'spPayload'     -> StorelayoutpagesPatch storelayoutpagesPatch pSpEnterpriseId_ pSpPageId_ pSpPayload_ =-    StorelayoutpagesPatch'+  StorelayoutpagesPatch'     { _spEnterpriseId = pSpEnterpriseId_     , _spPageId = pSpPageId_     , _spPayload = pSpPayload_     }+  -- | The ID of the enterprise. spEnterpriseId :: Lens' StorelayoutpagesPatch Text
gen/Network/Google/Resource/AndroidEnterprise/Storelayoutpages/Update.hs view
@@ -57,12 +57,15 @@ -- | Updates the content of a store page. -- -- /See:/ 'storelayoutpagesUpdate' smart constructor.-data StorelayoutpagesUpdate = StorelayoutpagesUpdate'+data StorelayoutpagesUpdate =+  StorelayoutpagesUpdate'     { _suEnterpriseId :: !Text     , _suPageId       :: !Text     , _suPayload      :: !StorePage-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'StorelayoutpagesUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,11 +81,12 @@     -> StorePage -- ^ 'suPayload'     -> StorelayoutpagesUpdate storelayoutpagesUpdate pSuEnterpriseId_ pSuPageId_ pSuPayload_ =-    StorelayoutpagesUpdate'+  StorelayoutpagesUpdate'     { _suEnterpriseId = pSuEnterpriseId_     , _suPageId = pSuPageId_     , _suPayload = pSuPayload_     }+  -- | The ID of the enterprise. suEnterpriseId :: Lens' StorelayoutpagesUpdate Text
gen/Network/Google/Resource/AndroidEnterprise/Users/Delete.hs view
@@ -54,11 +54,14 @@ -- | Deleted an EMM-managed user. -- -- /See:/ 'usersDelete' smart constructor.-data UsersDelete = UsersDelete'+data UsersDelete =+  UsersDelete'     { _udEnterpriseId :: !Text     , _udUserId       :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,10 +74,8 @@     -> Text -- ^ 'udUserId'     -> UsersDelete usersDelete pUdEnterpriseId_ pUdUserId_ =-    UsersDelete'-    { _udEnterpriseId = pUdEnterpriseId_-    , _udUserId = pUdUserId_-    }+  UsersDelete' {_udEnterpriseId = pUdEnterpriseId_, _udUserId = pUdUserId_}+  -- | The ID of the enterprise. udEnterpriseId :: Lens' UsersDelete Text
gen/Network/Google/Resource/AndroidEnterprise/Users/GenerateAuthenticationToken.hs view
@@ -64,11 +64,14 @@ -- EMM-managed accounts. -- -- /See:/ 'usersGenerateAuthenticationToken' smart constructor.-data UsersGenerateAuthenticationToken = UsersGenerateAuthenticationToken'+data UsersGenerateAuthenticationToken =+  UsersGenerateAuthenticationToken'     { _ugatEnterpriseId :: !Text     , _ugatUserId       :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersGenerateAuthenticationToken' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -81,11 +84,10 @@     -> Text -- ^ 'ugatUserId'     -> UsersGenerateAuthenticationToken usersGenerateAuthenticationToken pUgatEnterpriseId_ pUgatUserId_ =-    UsersGenerateAuthenticationToken'-    { _ugatEnterpriseId = pUgatEnterpriseId_-    , _ugatUserId = pUgatUserId_-    }+  UsersGenerateAuthenticationToken'+    {_ugatEnterpriseId = pUgatEnterpriseId_, _ugatUserId = pUgatUserId_} + -- | The ID of the enterprise. ugatEnterpriseId :: Lens' UsersGenerateAuthenticationToken Text ugatEnterpriseId@@ -98,7 +100,8 @@   = lens _ugatUserId (\ s a -> s{_ugatUserId = a})  instance GoogleRequest-         UsersGenerateAuthenticationToken where+           UsersGenerateAuthenticationToken+         where         type Rs UsersGenerateAuthenticationToken =              AuthenticationToken         type Scopes UsersGenerateAuthenticationToken =
gen/Network/Google/Resource/AndroidEnterprise/Users/GenerateToken.hs view
@@ -61,11 +61,14 @@ -- accounts. -- -- /See:/ 'usersGenerateToken' smart constructor.-data UsersGenerateToken = UsersGenerateToken'+data UsersGenerateToken =+  UsersGenerateToken'     { _ugtEnterpriseId :: !Text     , _ugtUserId       :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersGenerateToken' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,10 +81,9 @@     -> Text -- ^ 'ugtUserId'     -> UsersGenerateToken usersGenerateToken pUgtEnterpriseId_ pUgtUserId_ =-    UsersGenerateToken'-    { _ugtEnterpriseId = pUgtEnterpriseId_-    , _ugtUserId = pUgtUserId_-    }+  UsersGenerateToken'+    {_ugtEnterpriseId = pUgtEnterpriseId_, _ugtUserId = pUgtUserId_}+  -- | The ID of the enterprise. ugtEnterpriseId :: Lens' UsersGenerateToken Text
gen/Network/Google/Resource/AndroidEnterprise/Users/Get.hs view
@@ -54,11 +54,14 @@ -- | Retrieves a user\'s details. -- -- /See:/ 'usersGet' smart constructor.-data UsersGet = UsersGet'+data UsersGet =+  UsersGet'     { _ugEnterpriseId :: !Text     , _ugUserId       :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,10 +74,8 @@     -> Text -- ^ 'ugUserId'     -> UsersGet usersGet pUgEnterpriseId_ pUgUserId_ =-    UsersGet'-    { _ugEnterpriseId = pUgEnterpriseId_-    , _ugUserId = pUgUserId_-    }+  UsersGet' {_ugEnterpriseId = pUgEnterpriseId_, _ugUserId = pUgUserId_}+  -- | The ID of the enterprise. ugEnterpriseId :: Lens' UsersGet Text
gen/Network/Google/Resource/AndroidEnterprise/Users/GetAvailableProductSet.hs view
@@ -55,11 +55,14 @@ -- | Retrieves the set of products a user is entitled to access. -- -- /See:/ 'usersGetAvailableProductSet' smart constructor.-data UsersGetAvailableProductSet = UsersGetAvailableProductSet'+data UsersGetAvailableProductSet =+  UsersGetAvailableProductSet'     { _ugapsEnterpriseId :: !Text     , _ugapsUserId       :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersGetAvailableProductSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,9 @@     -> Text -- ^ 'ugapsUserId'     -> UsersGetAvailableProductSet usersGetAvailableProductSet pUgapsEnterpriseId_ pUgapsUserId_ =-    UsersGetAvailableProductSet'-    { _ugapsEnterpriseId = pUgapsEnterpriseId_-    , _ugapsUserId = pUgapsUserId_-    }+  UsersGetAvailableProductSet'+    {_ugapsEnterpriseId = pUgapsEnterpriseId_, _ugapsUserId = pUgapsUserId_}+  -- | The ID of the enterprise. ugapsEnterpriseId :: Lens' UsersGetAvailableProductSet Text
gen/Network/Google/Resource/AndroidEnterprise/Users/Insert.hs view
@@ -62,11 +62,14 @@ -- displayName field can be changed. -- -- /See:/ 'usersInsert' smart constructor.-data UsersInsert = UsersInsert'+data UsersInsert =+  UsersInsert'     { _uiEnterpriseId :: !Text     , _uiPayload      :: !User-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,10 +82,8 @@     -> User -- ^ 'uiPayload'     -> UsersInsert usersInsert pUiEnterpriseId_ pUiPayload_ =-    UsersInsert'-    { _uiEnterpriseId = pUiEnterpriseId_-    , _uiPayload = pUiPayload_-    }+  UsersInsert' {_uiEnterpriseId = pUiEnterpriseId_, _uiPayload = pUiPayload_}+  -- | The ID of the enterprise. uiEnterpriseId :: Lens' UsersInsert Text
gen/Network/Google/Resource/AndroidEnterprise/Users/List.hs view
@@ -61,11 +61,14 @@ -- Users.insert call. -- -- /See:/ 'usersList' smart constructor.-data UsersList = UsersList'+data UsersList =+  UsersList'     { _ulEmail        :: !Text     , _ulEnterpriseId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,10 +81,8 @@     -> Text -- ^ 'ulEnterpriseId'     -> UsersList usersList pUlEmail_ pUlEnterpriseId_ =-    UsersList'-    { _ulEmail = pUlEmail_-    , _ulEnterpriseId = pUlEnterpriseId_-    }+  UsersList' {_ulEmail = pUlEmail_, _ulEnterpriseId = pUlEnterpriseId_}+  -- | The exact primary email address of the user to look up. ulEmail :: Lens' UsersList Text
gen/Network/Google/Resource/AndroidEnterprise/Users/Patch.hs view
@@ -64,12 +64,15 @@ -- This method supports patch semantics. -- -- /See:/ 'usersPatch' smart constructor.-data UsersPatch = UsersPatch'+data UsersPatch =+  UsersPatch'     { _upEnterpriseId :: !Text     , _upPayload      :: !User     , _upUserId       :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -85,11 +88,12 @@     -> Text -- ^ 'upUserId'     -> UsersPatch usersPatch pUpEnterpriseId_ pUpPayload_ pUpUserId_ =-    UsersPatch'+  UsersPatch'     { _upEnterpriseId = pUpEnterpriseId_     , _upPayload = pUpPayload_     , _upUserId = pUpUserId_     }+  -- | The ID of the enterprise. upEnterpriseId :: Lens' UsersPatch Text
gen/Network/Google/Resource/AndroidEnterprise/Users/RevokeDeviceAccess.hs view
@@ -59,11 +59,14 @@ -- their managed devices. This call only works with EMM-managed accounts. -- -- /See:/ 'usersRevokeDeviceAccess' smart constructor.-data UsersRevokeDeviceAccess = UsersRevokeDeviceAccess'+data UsersRevokeDeviceAccess =+  UsersRevokeDeviceAccess'     { _urdaEnterpriseId :: !Text     , _urdaUserId       :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersRevokeDeviceAccess' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -76,10 +79,9 @@     -> Text -- ^ 'urdaUserId'     -> UsersRevokeDeviceAccess usersRevokeDeviceAccess pUrdaEnterpriseId_ pUrdaUserId_ =-    UsersRevokeDeviceAccess'-    { _urdaEnterpriseId = pUrdaEnterpriseId_-    , _urdaUserId = pUrdaUserId_-    }+  UsersRevokeDeviceAccess'+    {_urdaEnterpriseId = pUrdaEnterpriseId_, _urdaUserId = pUrdaUserId_}+  -- | The ID of the enterprise. urdaEnterpriseId :: Lens' UsersRevokeDeviceAccess Text
gen/Network/Google/Resource/AndroidEnterprise/Users/RevokeToken.hs view
@@ -55,11 +55,14 @@ -- | Revokes a previously generated token (activation code) for the user. -- -- /See:/ 'usersRevokeToken' smart constructor.-data UsersRevokeToken = UsersRevokeToken'+data UsersRevokeToken =+  UsersRevokeToken'     { _urtEnterpriseId :: !Text     , _urtUserId       :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersRevokeToken' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,9 @@     -> Text -- ^ 'urtUserId'     -> UsersRevokeToken usersRevokeToken pUrtEnterpriseId_ pUrtUserId_ =-    UsersRevokeToken'-    { _urtEnterpriseId = pUrtEnterpriseId_-    , _urtUserId = pUrtUserId_-    }+  UsersRevokeToken'+    {_urtEnterpriseId = pUrtEnterpriseId_, _urtUserId = pUrtUserId_}+  -- | The ID of the enterprise. urtEnterpriseId :: Lens' UsersRevokeToken Text
gen/Network/Google/Resource/AndroidEnterprise/Users/SetAvailableProductSet.hs view
@@ -63,12 +63,15 @@ -- whitelisted. -- -- /See:/ 'usersSetAvailableProductSet' smart constructor.-data UsersSetAvailableProductSet = UsersSetAvailableProductSet'+data UsersSetAvailableProductSet =+  UsersSetAvailableProductSet'     { _usapsEnterpriseId :: !Text     , _usapsPayload      :: !ProductSet     , _usapsUserId       :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersSetAvailableProductSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -84,11 +87,12 @@     -> Text -- ^ 'usapsUserId'     -> UsersSetAvailableProductSet usersSetAvailableProductSet pUsapsEnterpriseId_ pUsapsPayload_ pUsapsUserId_ =-    UsersSetAvailableProductSet'+  UsersSetAvailableProductSet'     { _usapsEnterpriseId = pUsapsEnterpriseId_     , _usapsPayload = pUsapsPayload_     , _usapsUserId = pUsapsUserId_     }+  -- | The ID of the enterprise. usapsEnterpriseId :: Lens' UsersSetAvailableProductSet Text
gen/Network/Google/Resource/AndroidEnterprise/Users/Update.hs view
@@ -62,12 +62,15 @@ -- Other fields must either be unset or have the currently active value. -- -- /See:/ 'usersUpdate' smart constructor.-data UsersUpdate = UsersUpdate'+data UsersUpdate =+  UsersUpdate'     { _uuEnterpriseId :: !Text     , _uuPayload      :: !User     , _uuUserId       :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'UsersUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -83,11 +86,12 @@     -> Text -- ^ 'uuUserId'     -> UsersUpdate usersUpdate pUuEnterpriseId_ pUuPayload_ pUuUserId_ =-    UsersUpdate'+  UsersUpdate'     { _uuEnterpriseId = pUuEnterpriseId_     , _uuPayload = pUuPayload_     , _uuUserId = pUuUserId_     }+  -- | The ID of the enterprise. uuEnterpriseId :: Lens' UsersUpdate Text
gen/Network/Google/Resource/AndroidEnterprise/WebApps/Delete.hs view
@@ -54,11 +54,14 @@ -- | Deletes an existing web app. -- -- /See:/ 'webAppsDelete' smart constructor.-data WebAppsDelete = WebAppsDelete'+data WebAppsDelete =+  WebAppsDelete'     { _wadWebAppId     :: !Text     , _wadEnterpriseId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'WebAppsDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,10 +74,9 @@     -> Text -- ^ 'wadEnterpriseId'     -> WebAppsDelete webAppsDelete pWadWebAppId_ pWadEnterpriseId_ =-    WebAppsDelete'-    { _wadWebAppId = pWadWebAppId_-    , _wadEnterpriseId = pWadEnterpriseId_-    }+  WebAppsDelete'+    {_wadWebAppId = pWadWebAppId_, _wadEnterpriseId = pWadEnterpriseId_}+  -- | The ID of the web app. wadWebAppId :: Lens' WebAppsDelete Text
gen/Network/Google/Resource/AndroidEnterprise/WebApps/Get.hs view
@@ -54,11 +54,14 @@ -- | Gets an existing web app. -- -- /See:/ 'webAppsGet' smart constructor.-data WebAppsGet = WebAppsGet'+data WebAppsGet =+  WebAppsGet'     { _wagWebAppId     :: !Text     , _wagEnterpriseId :: !Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'WebAppsGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,10 +74,9 @@     -> Text -- ^ 'wagEnterpriseId'     -> WebAppsGet webAppsGet pWagWebAppId_ pWagEnterpriseId_ =-    WebAppsGet'-    { _wagWebAppId = pWagWebAppId_-    , _wagEnterpriseId = pWagEnterpriseId_-    }+  WebAppsGet'+    {_wagWebAppId = pWagWebAppId_, _wagEnterpriseId = pWagEnterpriseId_}+  -- | The ID of the web app. wagWebAppId :: Lens' WebAppsGet Text
gen/Network/Google/Resource/AndroidEnterprise/WebApps/Insert.hs view
@@ -54,11 +54,14 @@ -- | Creates a new web app for the enterprise. -- -- /See:/ 'webAppsInsert' smart constructor.-data WebAppsInsert = WebAppsInsert'+data WebAppsInsert =+  WebAppsInsert'     { _waiEnterpriseId :: !Text     , _waiPayload      :: !WebApp-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'WebAppsInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,10 +74,9 @@     -> WebApp -- ^ 'waiPayload'     -> WebAppsInsert webAppsInsert pWaiEnterpriseId_ pWaiPayload_ =-    WebAppsInsert'-    { _waiEnterpriseId = pWaiEnterpriseId_-    , _waiPayload = pWaiPayload_-    }+  WebAppsInsert'+    {_waiEnterpriseId = pWaiEnterpriseId_, _waiPayload = pWaiPayload_}+  -- | The ID of the enterprise. waiEnterpriseId :: Lens' WebAppsInsert Text
gen/Network/Google/Resource/AndroidEnterprise/WebApps/List.hs view
@@ -53,10 +53,13 @@ -- | Retrieves the details of all web apps for a given enterprise. -- -- /See:/ 'webAppsList' smart constructor.-newtype WebAppsList = WebAppsList'+newtype WebAppsList =+  WebAppsList'     { _walEnterpriseId :: Text-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'WebAppsList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -66,9 +69,8 @@     :: Text -- ^ 'walEnterpriseId'     -> WebAppsList webAppsList pWalEnterpriseId_ =-    WebAppsList'-    { _walEnterpriseId = pWalEnterpriseId_-    }+  WebAppsList' {_walEnterpriseId = pWalEnterpriseId_}+  -- | The ID of the enterprise. walEnterpriseId :: Lens' WebAppsList Text
gen/Network/Google/Resource/AndroidEnterprise/WebApps/Patch.hs view
@@ -56,12 +56,15 @@ -- | Updates an existing web app. This method supports patch semantics. -- -- /See:/ 'webAppsPatch' smart constructor.-data WebAppsPatch = WebAppsPatch'+data WebAppsPatch =+  WebAppsPatch'     { _wapWebAppId     :: !Text     , _wapEnterpriseId :: !Text     , _wapPayload      :: !WebApp-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'WebAppsPatch' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -77,11 +80,12 @@     -> WebApp -- ^ 'wapPayload'     -> WebAppsPatch webAppsPatch pWapWebAppId_ pWapEnterpriseId_ pWapPayload_ =-    WebAppsPatch'+  WebAppsPatch'     { _wapWebAppId = pWapWebAppId_     , _wapEnterpriseId = pWapEnterpriseId_     , _wapPayload = pWapPayload_     }+  -- | The ID of the web app. wapWebAppId :: Lens' WebAppsPatch Text
gen/Network/Google/Resource/AndroidEnterprise/WebApps/Update.hs view
@@ -56,12 +56,15 @@ -- | Updates an existing web app. -- -- /See:/ 'webAppsUpdate' smart constructor.-data WebAppsUpdate = WebAppsUpdate'+data WebAppsUpdate =+  WebAppsUpdate'     { _wauWebAppId     :: !Text     , _wauEnterpriseId :: !Text     , _wauPayload      :: !WebApp-    } deriving (Eq,Show,Data,Typeable,Generic)+    }+  deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'WebAppsUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -77,11 +80,12 @@     -> WebApp -- ^ 'wauPayload'     -> WebAppsUpdate webAppsUpdate pWauWebAppId_ pWauEnterpriseId_ pWauPayload_ =-    WebAppsUpdate'+  WebAppsUpdate'     { _wauWebAppId = pWauWebAppId_     , _wauEnterpriseId = pWauEnterpriseId_     , _wauPayload = pWauPayload_     }+  -- | The ID of the web app. wauWebAppId :: Lens' WebAppsUpdate Text
gogol-android-enterprise.cabal view
@@ -1,5 +1,5 @@ name:                  gogol-android-enterprise-version:               0.4.0+version:               0.5.0 synopsis:              Google Play EMM SDK. homepage:              https://github.com/brendanhay/gogol bug-reports:           https://github.com/brendanhay/gogol/issues@@ -47,14 +47,12 @@         , Network.Google.Resource.AndroidEnterprise.Enterprises.Enroll         , Network.Google.Resource.AndroidEnterprise.Enterprises.GenerateSignupURL         , Network.Google.Resource.AndroidEnterprise.Enterprises.Get-        , Network.Google.Resource.AndroidEnterprise.Enterprises.GetAndroidDevicePolicyConfig         , Network.Google.Resource.AndroidEnterprise.Enterprises.GetServiceAccount         , Network.Google.Resource.AndroidEnterprise.Enterprises.GetStoreLayout         , Network.Google.Resource.AndroidEnterprise.Enterprises.List         , Network.Google.Resource.AndroidEnterprise.Enterprises.PullNotificationSet         , Network.Google.Resource.AndroidEnterprise.Enterprises.SendTestPushNotification         , Network.Google.Resource.AndroidEnterprise.Enterprises.SetAccount-        , Network.Google.Resource.AndroidEnterprise.Enterprises.SetAndroidDevicePolicyConfig         , Network.Google.Resource.AndroidEnterprise.Enterprises.SetStoreLayout         , Network.Google.Resource.AndroidEnterprise.Enterprises.Unenroll         , Network.Google.Resource.AndroidEnterprise.Entitlements.Delete@@ -128,5 +126,5 @@         , Network.Google.AndroidEnterprise.Types.Sum      build-depends:-          gogol-core == 0.4.0.*+          gogol-core == 0.5.0.*         , base       >= 4.7 && < 5