packages feed

gogol-androidmanagement (empty) → 0.4.0

raw patch · 30 files changed

+12412/−0 lines, 30 filesdep +basedep +gogol-coresetup-changed

Dependencies added: base, gogol-core

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,28 @@+# gogol-androidmanagement++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.3.0`+++## Description++A client library for the Google Android Management.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.+++## Licence++`gogol-androidmanagement` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
+ Setup.hs view
@@ -0,0 +1,2 @@+import           Distribution.Simple+main = defaultMain
+ gen/Network/Google/AndroidManagement.hs view
@@ -0,0 +1,768 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.AndroidManagement+-- 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)+--+-- The Android Management API provides remote enterprise management of+-- Android devices and apps.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference>+module Network.Google.AndroidManagement+    (+    -- * Service Configuration+      androidManagementService++    -- * OAuth Scopes+    , androidManagementScope++    -- * API Declaration+    , AndroidManagementAPI++    -- * Resources++    -- ** androidmanagement.enterprises.applications.get+    , module Network.Google.Resource.AndroidManagement.Enterprises.Applications.Get++    -- ** androidmanagement.enterprises.create+    , module Network.Google.Resource.AndroidManagement.Enterprises.Create++    -- ** androidmanagement.enterprises.devices.delete+    , module Network.Google.Resource.AndroidManagement.Enterprises.Devices.Delete++    -- ** androidmanagement.enterprises.devices.get+    , module Network.Google.Resource.AndroidManagement.Enterprises.Devices.Get++    -- ** androidmanagement.enterprises.devices.issueCommand+    , module Network.Google.Resource.AndroidManagement.Enterprises.Devices.IssueCommand++    -- ** androidmanagement.enterprises.devices.list+    , module Network.Google.Resource.AndroidManagement.Enterprises.Devices.List++    -- ** androidmanagement.enterprises.devices.operations.cancel+    , module Network.Google.Resource.AndroidManagement.Enterprises.Devices.Operations.Cancel++    -- ** androidmanagement.enterprises.devices.operations.delete+    , module Network.Google.Resource.AndroidManagement.Enterprises.Devices.Operations.Delete++    -- ** androidmanagement.enterprises.devices.operations.get+    , module Network.Google.Resource.AndroidManagement.Enterprises.Devices.Operations.Get++    -- ** androidmanagement.enterprises.devices.operations.list+    , module Network.Google.Resource.AndroidManagement.Enterprises.Devices.Operations.List++    -- ** androidmanagement.enterprises.devices.patch+    , module Network.Google.Resource.AndroidManagement.Enterprises.Devices.Patch++    -- ** androidmanagement.enterprises.enrollmentTokens.create+    , module Network.Google.Resource.AndroidManagement.Enterprises.EnrollmentTokens.Create++    -- ** androidmanagement.enterprises.enrollmentTokens.delete+    , module Network.Google.Resource.AndroidManagement.Enterprises.EnrollmentTokens.Delete++    -- ** androidmanagement.enterprises.get+    , module Network.Google.Resource.AndroidManagement.Enterprises.Get++    -- ** androidmanagement.enterprises.patch+    , module Network.Google.Resource.AndroidManagement.Enterprises.Patch++    -- ** androidmanagement.enterprises.policies.delete+    , module Network.Google.Resource.AndroidManagement.Enterprises.Policies.Delete++    -- ** androidmanagement.enterprises.policies.get+    , module Network.Google.Resource.AndroidManagement.Enterprises.Policies.Get++    -- ** androidmanagement.enterprises.policies.list+    , module Network.Google.Resource.AndroidManagement.Enterprises.Policies.List++    -- ** androidmanagement.enterprises.policies.patch+    , module Network.Google.Resource.AndroidManagement.Enterprises.Policies.Patch++    -- ** androidmanagement.enterprises.webTokens.create+    , module Network.Google.Resource.AndroidManagement.Enterprises.WebTokens.Create++    -- ** androidmanagement.signupUrls.create+    , module Network.Google.Resource.AndroidManagement.SignupURLs.Create++    -- * Types++    -- ** PowerManagementEventEventType+    , PowerManagementEventEventType (..)++    -- ** Status+    , Status+    , status+    , sDetails+    , sCode+    , sMessage++    -- ** SystemUpdateType+    , SystemUpdateType (..)++    -- ** ListPoliciesResponse+    , ListPoliciesResponse+    , listPoliciesResponse+    , lprNextPageToken+    , lprPolicies++    -- ** MemoryInfo+    , MemoryInfo+    , memoryInfo+    , miTotalInternalStorage+    , miTotalRam++    -- ** DeviceState+    , DeviceState (..)++    -- ** PackageNameList+    , PackageNameList+    , packageNameList+    , pnlPackageNames++    -- ** Command+    , Command+    , command+    , cResetPasswordFlags+    , cNewPassword+    , cUserName+    , cErrorCode+    , cType+    , cDuration+    , cCreateTime++    -- ** ListOperationsResponse+    , ListOperationsResponse+    , listOperationsResponse+    , lorNextPageToken+    , lorOperations++    -- ** Display+    , Display+    , display+    , dHeight+    , dState+    , dWidth+    , dName+    , dRefreshRate+    , dDisplayId+    , dDensity++    -- ** AlwaysOnVPNPackage+    , AlwaysOnVPNPackage+    , alwaysOnVPNPackage+    , aovpLockdownEnabled+    , aovpPackageName++    -- ** PolicyOpenNetworkConfiguration+    , PolicyOpenNetworkConfiguration+    , policyOpenNetworkConfiguration+    , poncAddtional++    -- ** CommandErrorCode+    , CommandErrorCode (..)++    -- ** HardwareStatus+    , HardwareStatus+    , hardwareStatus+    , hsCPUTemperatures+    , hsBatteryTemperatures+    , hsGpuTemperatures+    , hsFanSpeeds+    , hsSkinTemperatures+    , hsCPUUsages+    , hsCreateTime++    -- ** Application+    , Application+    , application+    , aManagedProperties+    , aName+    , aPermissions+    , aTitle++    -- ** ManagedProperty+    , ManagedProperty+    , managedProperty+    , mpEntries+    , mpNestedProperties+    , mpKey+    , mpDefaultValue+    , mpTitle+    , mpType+    , mpDescription++    -- ** ProxyInfo+    , ProxyInfo+    , proxyInfo+    , piPacURI+    , piHost+    , piExcludedHosts+    , piPort++    -- ** PermissionGrantPolicy+    , PermissionGrantPolicy (..)++    -- ** PersistentPreferredActivity+    , PersistentPreferredActivity+    , persistentPreferredActivity+    , ppaActions+    , ppaCategories+    , ppaReceiverActivity++    -- ** Operation+    , Operation+    , operation+    , oDone+    , oError+    , oResponse+    , oName+    , oMetadata++    -- ** Empty+    , Empty+    , empty++    -- ** ExternalData+    , ExternalData+    , externalData+    , edURL+    , edSha256Hash++    -- ** DisplayState+    , DisplayState (..)++    -- ** APILevelCondition+    , APILevelCondition+    , apiLevelCondition+    , alcMinAPILevel++    -- ** DeviceSettings+    , DeviceSettings+    , deviceSettings+    , dsIsEncrypted+    , dsAdbEnabled+    , dsIsDeviceSecure+    , dsVerifyAppsEnabled+    , dsDevelopmentSettingsEnabled+    , dsEncryptionStatus+    , dsUnknownSourcesEnabled++    -- ** PolicyPlayStoreMode+    , PolicyPlayStoreMode (..)++    -- ** ManagedConfigurationTemplateConfigurationVariables+    , ManagedConfigurationTemplateConfigurationVariables+    , managedConfigurationTemplateConfigurationVariables+    , mctcvAddtional++    -- ** DeviceManagementMode+    , DeviceManagementMode (..)++    -- ** HardwareInfo+    , HardwareInfo+    , hardwareInfo+    , hiCPUThrottlingTemperatures+    , hiManufacturer+    , hiBrand+    , hiCPUShutdownTemperatures+    , hiBatteryThrottlingTemperatures+    , hiModel+    , hiBatteryShutdownTemperatures+    , hiSkinThrottlingTemperatures+    , hiGpuShutdownTemperatures+    , hiGpuThrottlingTemperatures+    , hiSkinShutdownTemperatures+    , hiSerialNumber+    , hiDeviceBasebandVersion+    , hiHardware++    -- ** Device+    , Device+    , device+    , devMemoryInfo+    , devPolicyCompliant+    , devApplicationReports+    , devPolicyName+    , devState+    , devAppliedPolicyName+    , devLastStatusReportTime+    , devDeviceSettings+    , devEnrollmentTokenName+    , devManagementMode+    , devHardwareInfo+    , devPowerManagementEvents+    , devUserName+    , devMemoryEvents+    , devAPILevel+    , devUser+    , devDisabledReason+    , devLastPolicyComplianceReportTime+    , devEnrollmentTokenData+    , devName+    , devAppliedPolicyVersion+    , devHardwareStatusSamples+    , devAppliedState+    , devPreviousDeviceNames+    , devLastPolicySyncTime+    , devNetworkInfo+    , devNonComplianceDetails+    , devSoftwareInfo+    , devEnrollmentTime+    , devDisplays++    -- ** ApplicationReportApplicationSource+    , ApplicationReportApplicationSource (..)++    -- ** StatusDetailsItem+    , StatusDetailsItem+    , statusDetailsItem+    , sdiAddtional++    -- ** ApplicationPolicyInstallType+    , ApplicationPolicyInstallType (..)++    -- ** NonComplianceDetailInstallationFailureReason+    , NonComplianceDetailInstallationFailureReason (..)++    -- ** PasswordRequirementsPasswordScope+    , PasswordRequirementsPasswordScope (..)++    -- ** ManagedPropertyEntry+    , ManagedPropertyEntry+    , managedPropertyEntry+    , mpeValue+    , mpeName++    -- ** DeviceSettingsEncryptionStatus+    , DeviceSettingsEncryptionStatus (..)++    -- ** PolicyLocationMode+    , PolicyLocationMode (..)++    -- ** ChoosePrivateKeyRule+    , ChoosePrivateKeyRule+    , choosePrivateKeyRule+    , cpkrPrivateKeyAlias+    , cpkrURLPattern+    , cpkrPackageNames++    -- ** UserFacingMessageLocalizedMessages+    , UserFacingMessageLocalizedMessages+    , userFacingMessageLocalizedMessages+    , ufmlmAddtional++    -- ** User+    , User+    , user+    , uAccountIdentifier++    -- ** SystemUpdate+    , SystemUpdate+    , systemUpdate+    , suEndMinutes+    , suStartMinutes+    , suType++    -- ** ApplicationReport+    , ApplicationReport+    , applicationReport+    , arVersionCode+    , arSigningKeyCertFingerprints+    , arState+    , arVersionName+    , arPackageName+    , arPackageSha256Hash+    , arApplicationSource+    , arEvents+    , arDisplayName+    , arInstallerPackageName++    -- ** PolicyAppAutoUpdatePolicy+    , PolicyAppAutoUpdatePolicy (..)++    -- ** EnrollmentToken+    , EnrollmentToken+    , enrollmentToken+    , etPolicyName+    , etValue+    , etQrCode+    , etAdditionalData+    , etUser+    , etName+    , etOneTimeOnly+    , etExpirationTimestamp+    , etDuration++    -- ** ApplicationPolicyManagedConfiguration+    , ApplicationPolicyManagedConfiguration+    , applicationPolicyManagedConfiguration+    , apmcAddtional++    -- ** PolicyEncryptionPolicy+    , PolicyEncryptionPolicy (..)++    -- ** StatusReportingSettings+    , StatusReportingSettings+    , statusReportingSettings+    , srsSoftwareInfoEnabled+    , srsHardwareStatusEnabled+    , srsPowerManagementEventsEnabled+    , srsDisplayInfoEnabled+    , srsApplicationReportsEnabled+    , srsMemoryInfoEnabled+    , srsNetworkInfoEnabled+    , srsDeviceSettingsEnabled++    -- ** CommandType+    , CommandType (..)++    -- ** ApplicationPolicyDefaultPermissionPolicy+    , ApplicationPolicyDefaultPermissionPolicy (..)++    -- ** Xgafv+    , Xgafv (..)++    -- ** ApplicationPolicy+    , ApplicationPolicy+    , applicationPolicy+    , apDelegatedScopes+    , apPackageName+    , apManagedConfiguration+    , apDefaultPermissionPolicy+    , apDisabled+    , apLockTaskAllowed+    , apPermissionGrants+    , apManagedConfigurationTemplate+    , apMinimumVersionCode+    , apInstallType++    -- ** ManagedPropertyType+    , ManagedPropertyType (..)++    -- ** DeviceAppliedState+    , DeviceAppliedState (..)++    -- ** ApplicationEventEventType+    , ApplicationEventEventType (..)++    -- ** ListDevicesResponse+    , ListDevicesResponse+    , listDevicesResponse+    , ldrNextPageToken+    , ldrDevices++    -- ** ManagedConfigurationTemplate+    , ManagedConfigurationTemplate+    , managedConfigurationTemplate+    , mctTemplateId+    , mctConfigurationVariables++    -- ** NonComplianceDetailNonComplianceReason+    , NonComplianceDetailNonComplianceReason (..)++    -- ** Enterprise+    , Enterprise+    , enterprise+    , eAppAutoApprovalEnabled+    , eEnabledNotificationTypes+    , eSigninDetails+    , eName+    , ePubsubTopic+    , eEnterpriseDisplayName+    , eLogo+    , eTermsAndConditions+    , ePrimaryColor++    -- ** MemoryEvent+    , MemoryEvent+    , memoryEvent+    , meByteCount+    , meEventType+    , meCreateTime++    -- ** PermissionGrant+    , PermissionGrant+    , permissionGrant+    , pgPolicy+    , pgPermission++    -- ** SigninDetail+    , SigninDetail+    , signinDetail+    , sdSigninURL+    , sdQrCode+    , sdSigninEnrollmentToken++    -- ** SignupURL+    , SignupURL+    , signupURL+    , suURL+    , suName++    -- ** PolicyDefaultPermissionPolicy+    , PolicyDefaultPermissionPolicy (..)++    -- ** NetworkInfo+    , NetworkInfo+    , networkInfo+    , niNetworkOperatorName+    , niMeid+    , niImei+    , niWifiMACAddress++    -- ** PowerManagementEvent+    , PowerManagementEvent+    , powerManagementEvent+    , pmeBatteryLevel+    , pmeEventType+    , pmeCreateTime++    -- ** Policy+    , Policy+    , policy+    , pBluetoothConfigDisabled+    , pUnmuteMicrophoneDisabled+    , pMountPhysicalMediaDisabled+    , pFrpAdminEmails+    , pAppAutoUpdatePolicy+    , pEncryptionPolicy+    , pAndroidDevicePolicyTracks+    , pSafeBootDisabled+    , pAlwaysOnVPNPackage+    , pChoosePrivateKeyRules+    , pCredentialsConfigDisabled+    , pRecommendedGlobalProxy+    , pKeyguardDisabled+    , pSkipFirstUseHintsEnabled+    , pAdjustVolumeDisabled+    , pDefaultPermissionPolicy+    , pUninstallAppsDisabled+    , pSetUserIconDisabled+    , pPermittedInputMethods+    , pScreenCaptureDisabled+    , pAddUserDisabled+    , pShareLocationDisabled+    , pAutoTimeRequired+    , pInstallAppsDisabled+    , pCreateWindowsDisabled+    , pNetworkResetDisabled+    , pBluetoothContactSharingDisabled+    , pPermissionGrants+    , pShortSupportMessage+    , pStayOnPluggedModes+    , pDataRoamingDisabled+    , pDebuggingFeaturesAllowed+    , pKioskCustomLauncherEnabled+    , pWifiConfigsLockdownEnabled+    , pUsbMassStorageEnabled+    , pNetworkEscapeHatchEnabled+    , pSystemUpdate+    , pInstallUnknownSourcesAllowed+    , pName+    , pPrivateKeySelectionEnabled+    , pOutgoingCallsDisabled+    , pStatusReportingSettings+    , pRemoveUserDisabled+    , pMobileNetworksConfigDisabled+    , pVersion+    , pEnsureVerifyAppsEnabled+    , pSetWallpaperDisabled+    , pVPNConfigDisabled+    , pOpenNetworkConfiguration+    , pModifyAccountsDisabled+    , pBlockApplicationsEnabled+    , pKeyguardDisabledFeatures+    , pFunDisabled+    , pSmsDisabled+    , pMaximumTimeToLock+    , pOutgoingBeamDisabled+    , pStatusBarDisabled+    , pCellBroadcastsConfigDisabled+    , pDeviceOwnerLockScreenInfo+    , pPlayStoreMode+    , pComplianceRules+    , pTetheringConfigDisabled+    , pAccountTypesWithManagementDisabled+    , pWifiConfigDisabled+    , pPersistentPreferredActivities+    , pPasswordRequirements+    , pLongSupportMessage+    , pLocationMode+    , pBluetoothDisabled+    , pUsbFileTransferDisabled+    , pCameraDisabled+    , pApplications+    , pPasswordPolicies+    , pFactoryResetDisabled++    -- ** NonComplianceDetailCondition+    , NonComplianceDetailCondition+    , nonComplianceDetailCondition+    , ncdcPackageName+    , ncdcNonComplianceReason+    , ncdcSettingName++    -- ** OperationMetadata+    , OperationMetadata+    , operationMetadata+    , omAddtional++    -- ** WebToken+    , WebToken+    , webToken+    , wtParentFrameURL+    , wtValue+    , wtName+    , wtPermissions++    -- ** ComplianceRule+    , ComplianceRule+    , complianceRule+    , crAPILevelCondition+    , crDisableApps+    , crPackageNamesToDisable+    , crNonComplianceDetailCondition++    -- ** PasswordRequirements+    , PasswordRequirements+    , passwordRequirements+    , prPasswordMinimumSymbols+    , prMaximumFailedPasswordsForWipe+    , prPasswordExpirationTimeout+    , prPasswordMinimumNonLetter+    , prPasswordHistoryLength+    , prPasswordMinimumLetters+    , prPasswordMinimumUpperCase+    , prPasswordMinimumNumeric+    , prPasswordQuality+    , prPasswordMinimumLength+    , prPasswordScope+    , prPasswordMinimumLowerCase++    -- ** ApplicationReportState+    , ApplicationReportState (..)++    -- ** NonComplianceDetail+    , NonComplianceDetail+    , nonComplianceDetail+    , ncdFieldPath+    , ncdPackageName+    , ncdInstallationFailureReason+    , ncdNonComplianceReason+    , ncdSettingName+    , ncdCurrentValue++    -- ** NonComplianceDetailConditionNonComplianceReason+    , NonComplianceDetailConditionNonComplianceReason (..)++    -- ** ApplicationEvent+    , ApplicationEvent+    , applicationEvent+    , aeEventType+    , aeCreateTime++    -- ** TermsAndConditions+    , TermsAndConditions+    , termsAndConditions+    , tacContent+    , tacHeader++    -- ** OperationResponse+    , OperationResponse+    , operationResponse+    , orAddtional++    -- ** UserFacingMessage+    , UserFacingMessage+    , userFacingMessage+    , ufmLocalizedMessages+    , ufmDefaultMessage++    -- ** SoftwareInfo+    , SoftwareInfo+    , softwareInfo+    , siSecurityPatchLevel+    , siAndroidDevicePolicyVersionName+    , siDeviceKernelVersion+    , siAndroidDevicePolicyVersionCode+    , siDeviceBuildSignature+    , siBootLoaderVersion+    , siAndroidBuildTime+    , siPrimaryLanguageCode+    , siAndroidBuildNumber+    , siAndroidVersion++    -- ** MemoryEventEventType+    , MemoryEventEventType (..)++    -- ** ApplicationPermission+    , ApplicationPermission+    , applicationPermission+    , apName+    , apDescription+    , apPermissionId++    -- ** PasswordRequirementsPasswordQuality+    , PasswordRequirementsPasswordQuality (..)+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude+import           Network.Google.Resource.AndroidManagement.Enterprises.Applications.Get+import           Network.Google.Resource.AndroidManagement.Enterprises.Create+import           Network.Google.Resource.AndroidManagement.Enterprises.Devices.Delete+import           Network.Google.Resource.AndroidManagement.Enterprises.Devices.Get+import           Network.Google.Resource.AndroidManagement.Enterprises.Devices.IssueCommand+import           Network.Google.Resource.AndroidManagement.Enterprises.Devices.List+import           Network.Google.Resource.AndroidManagement.Enterprises.Devices.Operations.Cancel+import           Network.Google.Resource.AndroidManagement.Enterprises.Devices.Operations.Delete+import           Network.Google.Resource.AndroidManagement.Enterprises.Devices.Operations.Get+import           Network.Google.Resource.AndroidManagement.Enterprises.Devices.Operations.List+import           Network.Google.Resource.AndroidManagement.Enterprises.Devices.Patch+import           Network.Google.Resource.AndroidManagement.Enterprises.EnrollmentTokens.Create+import           Network.Google.Resource.AndroidManagement.Enterprises.EnrollmentTokens.Delete+import           Network.Google.Resource.AndroidManagement.Enterprises.Get+import           Network.Google.Resource.AndroidManagement.Enterprises.Patch+import           Network.Google.Resource.AndroidManagement.Enterprises.Policies.Delete+import           Network.Google.Resource.AndroidManagement.Enterprises.Policies.Get+import           Network.Google.Resource.AndroidManagement.Enterprises.Policies.List+import           Network.Google.Resource.AndroidManagement.Enterprises.Policies.Patch+import           Network.Google.Resource.AndroidManagement.Enterprises.WebTokens.Create+import           Network.Google.Resource.AndroidManagement.SignupURLs.Create++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Android Management API service.+type AndroidManagementAPI =+     EnterprisesEnrollmentTokensCreateResource :<|>+       EnterprisesEnrollmentTokensDeleteResource+       :<|> EnterprisesWebTokensCreateResource+       :<|> EnterprisesDevicesOperationsListResource+       :<|> EnterprisesDevicesOperationsGetResource+       :<|> EnterprisesDevicesOperationsCancelResource+       :<|> EnterprisesDevicesOperationsDeleteResource+       :<|> EnterprisesDevicesListResource+       :<|> EnterprisesDevicesPatchResource+       :<|> EnterprisesDevicesGetResource+       :<|> EnterprisesDevicesIssueCommandResource+       :<|> EnterprisesDevicesDeleteResource+       :<|> EnterprisesPoliciesListResource+       :<|> EnterprisesPoliciesPatchResource+       :<|> EnterprisesPoliciesGetResource+       :<|> EnterprisesPoliciesDeleteResource+       :<|> EnterprisesApplicationsGetResource+       :<|> EnterprisesPatchResource+       :<|> EnterprisesGetResource+       :<|> EnterprisesCreateResource+       :<|> SignupURLsCreateResource
+ gen/Network/Google/AndroidManagement/Types.hs view
@@ -0,0 +1,657 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.AndroidManagement.Types+-- 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)+--+module Network.Google.AndroidManagement.Types+    (+    -- * Service Configuration+      androidManagementService++    -- * OAuth Scopes+    , androidManagementScope++    -- * PowerManagementEventEventType+    , PowerManagementEventEventType (..)++    -- * Status+    , Status+    , status+    , sDetails+    , sCode+    , sMessage++    -- * SystemUpdateType+    , SystemUpdateType (..)++    -- * ListPoliciesResponse+    , ListPoliciesResponse+    , listPoliciesResponse+    , lprNextPageToken+    , lprPolicies++    -- * MemoryInfo+    , MemoryInfo+    , memoryInfo+    , miTotalInternalStorage+    , miTotalRam++    -- * DeviceState+    , DeviceState (..)++    -- * PackageNameList+    , PackageNameList+    , packageNameList+    , pnlPackageNames++    -- * Command+    , Command+    , command+    , cResetPasswordFlags+    , cNewPassword+    , cUserName+    , cErrorCode+    , cType+    , cDuration+    , cCreateTime++    -- * ListOperationsResponse+    , ListOperationsResponse+    , listOperationsResponse+    , lorNextPageToken+    , lorOperations++    -- * Display+    , Display+    , display+    , dHeight+    , dState+    , dWidth+    , dName+    , dRefreshRate+    , dDisplayId+    , dDensity++    -- * AlwaysOnVPNPackage+    , AlwaysOnVPNPackage+    , alwaysOnVPNPackage+    , aovpLockdownEnabled+    , aovpPackageName++    -- * PolicyOpenNetworkConfiguration+    , PolicyOpenNetworkConfiguration+    , policyOpenNetworkConfiguration+    , poncAddtional++    -- * CommandErrorCode+    , CommandErrorCode (..)++    -- * HardwareStatus+    , HardwareStatus+    , hardwareStatus+    , hsCPUTemperatures+    , hsBatteryTemperatures+    , hsGpuTemperatures+    , hsFanSpeeds+    , hsSkinTemperatures+    , hsCPUUsages+    , hsCreateTime++    -- * Application+    , Application+    , application+    , aManagedProperties+    , aName+    , aPermissions+    , aTitle++    -- * ManagedProperty+    , ManagedProperty+    , managedProperty+    , mpEntries+    , mpNestedProperties+    , mpKey+    , mpDefaultValue+    , mpTitle+    , mpType+    , mpDescription++    -- * ProxyInfo+    , ProxyInfo+    , proxyInfo+    , piPacURI+    , piHost+    , piExcludedHosts+    , piPort++    -- * PermissionGrantPolicy+    , PermissionGrantPolicy (..)++    -- * PersistentPreferredActivity+    , PersistentPreferredActivity+    , persistentPreferredActivity+    , ppaActions+    , ppaCategories+    , ppaReceiverActivity++    -- * Operation+    , Operation+    , operation+    , oDone+    , oError+    , oResponse+    , oName+    , oMetadata++    -- * Empty+    , Empty+    , empty++    -- * ExternalData+    , ExternalData+    , externalData+    , edURL+    , edSha256Hash++    -- * DisplayState+    , DisplayState (..)++    -- * APILevelCondition+    , APILevelCondition+    , apiLevelCondition+    , alcMinAPILevel++    -- * DeviceSettings+    , DeviceSettings+    , deviceSettings+    , dsIsEncrypted+    , dsAdbEnabled+    , dsIsDeviceSecure+    , dsVerifyAppsEnabled+    , dsDevelopmentSettingsEnabled+    , dsEncryptionStatus+    , dsUnknownSourcesEnabled++    -- * PolicyPlayStoreMode+    , PolicyPlayStoreMode (..)++    -- * ManagedConfigurationTemplateConfigurationVariables+    , ManagedConfigurationTemplateConfigurationVariables+    , managedConfigurationTemplateConfigurationVariables+    , mctcvAddtional++    -- * DeviceManagementMode+    , DeviceManagementMode (..)++    -- * HardwareInfo+    , HardwareInfo+    , hardwareInfo+    , hiCPUThrottlingTemperatures+    , hiManufacturer+    , hiBrand+    , hiCPUShutdownTemperatures+    , hiBatteryThrottlingTemperatures+    , hiModel+    , hiBatteryShutdownTemperatures+    , hiSkinThrottlingTemperatures+    , hiGpuShutdownTemperatures+    , hiGpuThrottlingTemperatures+    , hiSkinShutdownTemperatures+    , hiSerialNumber+    , hiDeviceBasebandVersion+    , hiHardware++    -- * Device+    , Device+    , device+    , devMemoryInfo+    , devPolicyCompliant+    , devApplicationReports+    , devPolicyName+    , devState+    , devAppliedPolicyName+    , devLastStatusReportTime+    , devDeviceSettings+    , devEnrollmentTokenName+    , devManagementMode+    , devHardwareInfo+    , devPowerManagementEvents+    , devUserName+    , devMemoryEvents+    , devAPILevel+    , devUser+    , devDisabledReason+    , devLastPolicyComplianceReportTime+    , devEnrollmentTokenData+    , devName+    , devAppliedPolicyVersion+    , devHardwareStatusSamples+    , devAppliedState+    , devPreviousDeviceNames+    , devLastPolicySyncTime+    , devNetworkInfo+    , devNonComplianceDetails+    , devSoftwareInfo+    , devEnrollmentTime+    , devDisplays++    -- * ApplicationReportApplicationSource+    , ApplicationReportApplicationSource (..)++    -- * StatusDetailsItem+    , StatusDetailsItem+    , statusDetailsItem+    , sdiAddtional++    -- * ApplicationPolicyInstallType+    , ApplicationPolicyInstallType (..)++    -- * NonComplianceDetailInstallationFailureReason+    , NonComplianceDetailInstallationFailureReason (..)++    -- * PasswordRequirementsPasswordScope+    , PasswordRequirementsPasswordScope (..)++    -- * ManagedPropertyEntry+    , ManagedPropertyEntry+    , managedPropertyEntry+    , mpeValue+    , mpeName++    -- * DeviceSettingsEncryptionStatus+    , DeviceSettingsEncryptionStatus (..)++    -- * PolicyLocationMode+    , PolicyLocationMode (..)++    -- * ChoosePrivateKeyRule+    , ChoosePrivateKeyRule+    , choosePrivateKeyRule+    , cpkrPrivateKeyAlias+    , cpkrURLPattern+    , cpkrPackageNames++    -- * UserFacingMessageLocalizedMessages+    , UserFacingMessageLocalizedMessages+    , userFacingMessageLocalizedMessages+    , ufmlmAddtional++    -- * User+    , User+    , user+    , uAccountIdentifier++    -- * SystemUpdate+    , SystemUpdate+    , systemUpdate+    , suEndMinutes+    , suStartMinutes+    , suType++    -- * ApplicationReport+    , ApplicationReport+    , applicationReport+    , arVersionCode+    , arSigningKeyCertFingerprints+    , arState+    , arVersionName+    , arPackageName+    , arPackageSha256Hash+    , arApplicationSource+    , arEvents+    , arDisplayName+    , arInstallerPackageName++    -- * PolicyAppAutoUpdatePolicy+    , PolicyAppAutoUpdatePolicy (..)++    -- * EnrollmentToken+    , EnrollmentToken+    , enrollmentToken+    , etPolicyName+    , etValue+    , etQrCode+    , etAdditionalData+    , etUser+    , etName+    , etOneTimeOnly+    , etExpirationTimestamp+    , etDuration++    -- * ApplicationPolicyManagedConfiguration+    , ApplicationPolicyManagedConfiguration+    , applicationPolicyManagedConfiguration+    , apmcAddtional++    -- * PolicyEncryptionPolicy+    , PolicyEncryptionPolicy (..)++    -- * StatusReportingSettings+    , StatusReportingSettings+    , statusReportingSettings+    , srsSoftwareInfoEnabled+    , srsHardwareStatusEnabled+    , srsPowerManagementEventsEnabled+    , srsDisplayInfoEnabled+    , srsApplicationReportsEnabled+    , srsMemoryInfoEnabled+    , srsNetworkInfoEnabled+    , srsDeviceSettingsEnabled++    -- * CommandType+    , CommandType (..)++    -- * ApplicationPolicyDefaultPermissionPolicy+    , ApplicationPolicyDefaultPermissionPolicy (..)++    -- * Xgafv+    , Xgafv (..)++    -- * ApplicationPolicy+    , ApplicationPolicy+    , applicationPolicy+    , apDelegatedScopes+    , apPackageName+    , apManagedConfiguration+    , apDefaultPermissionPolicy+    , apDisabled+    , apLockTaskAllowed+    , apPermissionGrants+    , apManagedConfigurationTemplate+    , apMinimumVersionCode+    , apInstallType++    -- * ManagedPropertyType+    , ManagedPropertyType (..)++    -- * DeviceAppliedState+    , DeviceAppliedState (..)++    -- * ApplicationEventEventType+    , ApplicationEventEventType (..)++    -- * ListDevicesResponse+    , ListDevicesResponse+    , listDevicesResponse+    , ldrNextPageToken+    , ldrDevices++    -- * ManagedConfigurationTemplate+    , ManagedConfigurationTemplate+    , managedConfigurationTemplate+    , mctTemplateId+    , mctConfigurationVariables++    -- * NonComplianceDetailNonComplianceReason+    , NonComplianceDetailNonComplianceReason (..)++    -- * Enterprise+    , Enterprise+    , enterprise+    , eAppAutoApprovalEnabled+    , eEnabledNotificationTypes+    , eSigninDetails+    , eName+    , ePubsubTopic+    , eEnterpriseDisplayName+    , eLogo+    , eTermsAndConditions+    , ePrimaryColor++    -- * MemoryEvent+    , MemoryEvent+    , memoryEvent+    , meByteCount+    , meEventType+    , meCreateTime++    -- * PermissionGrant+    , PermissionGrant+    , permissionGrant+    , pgPolicy+    , pgPermission++    -- * SigninDetail+    , SigninDetail+    , signinDetail+    , sdSigninURL+    , sdQrCode+    , sdSigninEnrollmentToken++    -- * SignupURL+    , SignupURL+    , signupURL+    , suURL+    , suName++    -- * PolicyDefaultPermissionPolicy+    , PolicyDefaultPermissionPolicy (..)++    -- * NetworkInfo+    , NetworkInfo+    , networkInfo+    , niNetworkOperatorName+    , niMeid+    , niImei+    , niWifiMACAddress++    -- * PowerManagementEvent+    , PowerManagementEvent+    , powerManagementEvent+    , pmeBatteryLevel+    , pmeEventType+    , pmeCreateTime++    -- * Policy+    , Policy+    , policy+    , pBluetoothConfigDisabled+    , pUnmuteMicrophoneDisabled+    , pMountPhysicalMediaDisabled+    , pFrpAdminEmails+    , pAppAutoUpdatePolicy+    , pEncryptionPolicy+    , pAndroidDevicePolicyTracks+    , pSafeBootDisabled+    , pAlwaysOnVPNPackage+    , pChoosePrivateKeyRules+    , pCredentialsConfigDisabled+    , pRecommendedGlobalProxy+    , pKeyguardDisabled+    , pSkipFirstUseHintsEnabled+    , pAdjustVolumeDisabled+    , pDefaultPermissionPolicy+    , pUninstallAppsDisabled+    , pSetUserIconDisabled+    , pPermittedInputMethods+    , pScreenCaptureDisabled+    , pAddUserDisabled+    , pShareLocationDisabled+    , pAutoTimeRequired+    , pInstallAppsDisabled+    , pCreateWindowsDisabled+    , pNetworkResetDisabled+    , pBluetoothContactSharingDisabled+    , pPermissionGrants+    , pShortSupportMessage+    , pStayOnPluggedModes+    , pDataRoamingDisabled+    , pDebuggingFeaturesAllowed+    , pKioskCustomLauncherEnabled+    , pWifiConfigsLockdownEnabled+    , pUsbMassStorageEnabled+    , pNetworkEscapeHatchEnabled+    , pSystemUpdate+    , pInstallUnknownSourcesAllowed+    , pName+    , pPrivateKeySelectionEnabled+    , pOutgoingCallsDisabled+    , pStatusReportingSettings+    , pRemoveUserDisabled+    , pMobileNetworksConfigDisabled+    , pVersion+    , pEnsureVerifyAppsEnabled+    , pSetWallpaperDisabled+    , pVPNConfigDisabled+    , pOpenNetworkConfiguration+    , pModifyAccountsDisabled+    , pBlockApplicationsEnabled+    , pKeyguardDisabledFeatures+    , pFunDisabled+    , pSmsDisabled+    , pMaximumTimeToLock+    , pOutgoingBeamDisabled+    , pStatusBarDisabled+    , pCellBroadcastsConfigDisabled+    , pDeviceOwnerLockScreenInfo+    , pPlayStoreMode+    , pComplianceRules+    , pTetheringConfigDisabled+    , pAccountTypesWithManagementDisabled+    , pWifiConfigDisabled+    , pPersistentPreferredActivities+    , pPasswordRequirements+    , pLongSupportMessage+    , pLocationMode+    , pBluetoothDisabled+    , pUsbFileTransferDisabled+    , pCameraDisabled+    , pApplications+    , pPasswordPolicies+    , pFactoryResetDisabled++    -- * NonComplianceDetailCondition+    , NonComplianceDetailCondition+    , nonComplianceDetailCondition+    , ncdcPackageName+    , ncdcNonComplianceReason+    , ncdcSettingName++    -- * OperationMetadata+    , OperationMetadata+    , operationMetadata+    , omAddtional++    -- * WebToken+    , WebToken+    , webToken+    , wtParentFrameURL+    , wtValue+    , wtName+    , wtPermissions++    -- * ComplianceRule+    , ComplianceRule+    , complianceRule+    , crAPILevelCondition+    , crDisableApps+    , crPackageNamesToDisable+    , crNonComplianceDetailCondition++    -- * PasswordRequirements+    , PasswordRequirements+    , passwordRequirements+    , prPasswordMinimumSymbols+    , prMaximumFailedPasswordsForWipe+    , prPasswordExpirationTimeout+    , prPasswordMinimumNonLetter+    , prPasswordHistoryLength+    , prPasswordMinimumLetters+    , prPasswordMinimumUpperCase+    , prPasswordMinimumNumeric+    , prPasswordQuality+    , prPasswordMinimumLength+    , prPasswordScope+    , prPasswordMinimumLowerCase++    -- * ApplicationReportState+    , ApplicationReportState (..)++    -- * NonComplianceDetail+    , NonComplianceDetail+    , nonComplianceDetail+    , ncdFieldPath+    , ncdPackageName+    , ncdInstallationFailureReason+    , ncdNonComplianceReason+    , ncdSettingName+    , ncdCurrentValue++    -- * NonComplianceDetailConditionNonComplianceReason+    , NonComplianceDetailConditionNonComplianceReason (..)++    -- * ApplicationEvent+    , ApplicationEvent+    , applicationEvent+    , aeEventType+    , aeCreateTime++    -- * TermsAndConditions+    , TermsAndConditions+    , termsAndConditions+    , tacContent+    , tacHeader++    -- * OperationResponse+    , OperationResponse+    , operationResponse+    , orAddtional++    -- * UserFacingMessage+    , UserFacingMessage+    , userFacingMessage+    , ufmLocalizedMessages+    , ufmDefaultMessage++    -- * SoftwareInfo+    , SoftwareInfo+    , softwareInfo+    , siSecurityPatchLevel+    , siAndroidDevicePolicyVersionName+    , siDeviceKernelVersion+    , siAndroidDevicePolicyVersionCode+    , siDeviceBuildSignature+    , siBootLoaderVersion+    , siAndroidBuildTime+    , siPrimaryLanguageCode+    , siAndroidBuildNumber+    , siAndroidVersion++    -- * MemoryEventEventType+    , MemoryEventEventType (..)++    -- * ApplicationPermission+    , ApplicationPermission+    , applicationPermission+    , apName+    , apDescription+    , apPermissionId++    -- * PasswordRequirementsPasswordQuality+    , PasswordRequirementsPasswordQuality (..)+    ) where++import           Network.Google.AndroidManagement.Types.Product+import           Network.Google.AndroidManagement.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v1' of the Android Management API. This contains the host and root path used as a starting point for constructing service requests.+androidManagementService :: ServiceConfig+androidManagementService+  = defaultService (ServiceId "androidmanagement:v1")+      "androidmanagement.googleapis.com"++-- | Manage Android devices and apps for your customers+androidManagementScope :: Proxy '["https://www.googleapis.com/auth/androidmanagement"]+androidManagementScope = Proxy;
+ gen/Network/Google/AndroidManagement/Types/Product.hs view
@@ -0,0 +1,5707 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}++{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.AndroidManagement.Types.Product+-- 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)+--+module Network.Google.AndroidManagement.Types.Product where++import           Network.Google.AndroidManagement.Types.Sum+import           Network.Google.Prelude++-- | The Status type defines a logical error model that is suitable for+-- different programming environments, including REST APIs and RPC APIs. It+-- is used by gRPC (https:\/\/github.com\/grpc). The error model is+-- designed to be: Simple to use and understand for most users Flexible+-- enough to meet unexpected needsOverviewThe Status message contains three+-- pieces of data: error code, error message, and error details. The error+-- code should be an enum value of google.rpc.Code, but it may accept+-- additional error codes if needed. The error message should be a+-- developer-facing English message that helps developers understand and+-- resolve the error. If a localized user-facing error message is needed,+-- put the localized message in the error details or localize it in the+-- client. The optional error details may contain arbitrary information+-- about the error. There is a predefined set of error detail types in the+-- package google.rpc that can be used for common error conditions.Language+-- mappingThe Status message is the logical representation of the error+-- model, but it is not necessarily the actual wire format. When the Status+-- message is exposed in different client libraries and different wire+-- protocols, it can be mapped differently. For example, it will likely be+-- mapped to some exceptions in Java, but more likely mapped to some error+-- codes in C.Other usesThe error model and the Status message can be used+-- in a variety of environments, either with or without APIs, to provide a+-- consistent developer experience across different environments.Example+-- uses of this error model include: Partial errors. If a service needs to+-- return partial errors to the client, it may embed the Status in the+-- normal response to indicate the partial errors. Workflow errors. A+-- typical workflow has multiple steps. Each step may have a Status message+-- for error reporting. Batch operations. If a client uses batch request+-- and batch response, the Status message should be used directly inside+-- batch response, one for each error sub-response. Asynchronous+-- operations. If an API call embeds asynchronous operation results in its+-- response, the status of those operations should be represented directly+-- using the Status message. Logging. If some API errors are stored in+-- logs, the message Status could be used directly after any stripping+-- needed for security\/privacy reasons.+--+-- /See:/ 'status' smart constructor.+data Status = Status'+    { _sDetails :: !(Maybe [StatusDetailsItem])+    , _sCode    :: !(Maybe (Textual Int32))+    , _sMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Status' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sDetails'+--+-- * 'sCode'+--+-- * 'sMessage'+status+    :: Status+status =+    Status'+    { _sDetails = Nothing+    , _sCode = Nothing+    , _sMessage = Nothing+    }++-- | A list of messages that carry the error details. There is a common set+-- of message types for APIs to use.+sDetails :: Lens' Status [StatusDetailsItem]+sDetails+  = lens _sDetails (\ s a -> s{_sDetails = a}) .+      _Default+      . _Coerce++-- | The status code, which should be an enum value of google.rpc.Code.+sCode :: Lens' Status (Maybe Int32)+sCode+  = lens _sCode (\ s a -> s{_sCode = a}) .+      mapping _Coerce++-- | A developer-facing error message, which should be in English. Any+-- user-facing error message should be localized and sent in the+-- google.rpc.Status.details field, or localized by the client.+sMessage :: Lens' Status (Maybe Text)+sMessage = lens _sMessage (\ s a -> s{_sMessage = a})++instance FromJSON Status where+        parseJSON+          = withObject "Status"+              (\ o ->+                 Status' <$>+                   (o .:? "details" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON Status where+        toJSON Status'{..}+          = object+              (catMaybes+                 [("details" .=) <$> _sDetails,+                  ("code" .=) <$> _sCode,+                  ("message" .=) <$> _sMessage])++-- | Response to a request to list policies for a given enterprise.+--+-- /See:/ 'listPoliciesResponse' smart constructor.+data ListPoliciesResponse = ListPoliciesResponse'+    { _lprNextPageToken :: !(Maybe Text)+    , _lprPolicies      :: !(Maybe [Policy])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListPoliciesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lprNextPageToken'+--+-- * 'lprPolicies'+listPoliciesResponse+    :: ListPoliciesResponse+listPoliciesResponse =+    ListPoliciesResponse'+    { _lprNextPageToken = Nothing+    , _lprPolicies = Nothing+    }++-- | If there are more results, a token to retrieve next page of results.+lprNextPageToken :: Lens' ListPoliciesResponse (Maybe Text)+lprNextPageToken+  = lens _lprNextPageToken+      (\ s a -> s{_lprNextPageToken = a})++-- | The list of policies.+lprPolicies :: Lens' ListPoliciesResponse [Policy]+lprPolicies+  = lens _lprPolicies (\ s a -> s{_lprPolicies = a}) .+      _Default+      . _Coerce++instance FromJSON ListPoliciesResponse where+        parseJSON+          = withObject "ListPoliciesResponse"+              (\ o ->+                 ListPoliciesResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "policies" .!= mempty))++instance ToJSON ListPoliciesResponse where+        toJSON ListPoliciesResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _lprNextPageToken,+                  ("policies" .=) <$> _lprPolicies])++-- | Information about device memory and storage.+--+-- /See:/ 'memoryInfo' smart constructor.+data MemoryInfo = MemoryInfo'+    { _miTotalInternalStorage :: !(Maybe (Textual Int64))+    , _miTotalRam             :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MemoryInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'miTotalInternalStorage'+--+-- * 'miTotalRam'+memoryInfo+    :: MemoryInfo+memoryInfo =+    MemoryInfo'+    { _miTotalInternalStorage = Nothing+    , _miTotalRam = Nothing+    }++-- | Total internal storage on device in bytes.+miTotalInternalStorage :: Lens' MemoryInfo (Maybe Int64)+miTotalInternalStorage+  = lens _miTotalInternalStorage+      (\ s a -> s{_miTotalInternalStorage = a})+      . mapping _Coerce++-- | Total RAM on device in bytes.+miTotalRam :: Lens' MemoryInfo (Maybe Int64)+miTotalRam+  = lens _miTotalRam (\ s a -> s{_miTotalRam = a}) .+      mapping _Coerce++instance FromJSON MemoryInfo where+        parseJSON+          = withObject "MemoryInfo"+              (\ o ->+                 MemoryInfo' <$>+                   (o .:? "totalInternalStorage") <*>+                     (o .:? "totalRam"))++instance ToJSON MemoryInfo where+        toJSON MemoryInfo'{..}+          = object+              (catMaybes+                 [("totalInternalStorage" .=) <$>+                    _miTotalInternalStorage,+                  ("totalRam" .=) <$> _miTotalRam])++-- | A list of package names.+--+-- /See:/ 'packageNameList' smart constructor.+newtype PackageNameList = PackageNameList'+    { _pnlPackageNames :: Maybe [Text]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PackageNameList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pnlPackageNames'+packageNameList+    :: PackageNameList+packageNameList =+    PackageNameList'+    { _pnlPackageNames = Nothing+    }++-- | A list of package names.+pnlPackageNames :: Lens' PackageNameList [Text]+pnlPackageNames+  = lens _pnlPackageNames+      (\ s a -> s{_pnlPackageNames = a})+      . _Default+      . _Coerce++instance FromJSON PackageNameList where+        parseJSON+          = withObject "PackageNameList"+              (\ o ->+                 PackageNameList' <$>+                   (o .:? "packageNames" .!= mempty))++instance ToJSON PackageNameList where+        toJSON PackageNameList'{..}+          = object+              (catMaybes+                 [("packageNames" .=) <$> _pnlPackageNames])++-- | A command.+--+-- /See:/ 'command' smart constructor.+data Command = Command'+    { _cResetPasswordFlags :: !(Maybe [Text])+    , _cNewPassword        :: !(Maybe Text)+    , _cUserName           :: !(Maybe Text)+    , _cErrorCode          :: !(Maybe CommandErrorCode)+    , _cType               :: !(Maybe CommandType)+    , _cDuration           :: !(Maybe GDuration)+    , _cCreateTime         :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Command' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cResetPasswordFlags'+--+-- * 'cNewPassword'+--+-- * 'cUserName'+--+-- * 'cErrorCode'+--+-- * 'cType'+--+-- * 'cDuration'+--+-- * 'cCreateTime'+command+    :: Command+command =+    Command'+    { _cResetPasswordFlags = Nothing+    , _cNewPassword = Nothing+    , _cUserName = Nothing+    , _cErrorCode = Nothing+    , _cType = Nothing+    , _cDuration = Nothing+    , _cCreateTime = Nothing+    }++-- | For commands of type RESET_PASSWORD, optionally specifies flags.+cResetPasswordFlags :: Lens' Command [Text]+cResetPasswordFlags+  = lens _cResetPasswordFlags+      (\ s a -> s{_cResetPasswordFlags = a})+      . _Default+      . _Coerce++-- | For commands of type RESET_PASSWORD, optionally specifies the new+-- password.+cNewPassword :: Lens' Command (Maybe Text)+cNewPassword+  = lens _cNewPassword (\ s a -> s{_cNewPassword = a})++-- | The resource name of the user that owns the device in the form+-- enterprises\/{enterpriseId}\/users\/{userId}. This is automatically+-- generated by the server based on the device the command is sent to.+cUserName :: Lens' Command (Maybe Text)+cUserName+  = lens _cUserName (\ s a -> s{_cUserName = a})++-- | If the command failed, an error code explaining the failure. This is not+-- set when the command is cancelled by the caller.+cErrorCode :: Lens' Command (Maybe CommandErrorCode)+cErrorCode+  = lens _cErrorCode (\ s a -> s{_cErrorCode = a})++-- | The type of the command.+cType :: Lens' Command (Maybe CommandType)+cType = lens _cType (\ s a -> s{_cType = a})++-- | The duration for which the command is valid. The command will expire if+-- not executed by the device during this time. The default duration if+-- unspecified is ten minutes. There is no maximum duration.+cDuration :: Lens' Command (Maybe Scientific)+cDuration+  = lens _cDuration (\ s a -> s{_cDuration = a}) .+      mapping _GDuration++-- | The timestamp at which the command was created. The timestamp is+-- automatically generated by the server.+cCreateTime :: Lens' Command (Maybe UTCTime)+cCreateTime+  = lens _cCreateTime (\ s a -> s{_cCreateTime = a}) .+      mapping _DateTime++instance FromJSON Command where+        parseJSON+          = withObject "Command"+              (\ o ->+                 Command' <$>+                   (o .:? "resetPasswordFlags" .!= mempty) <*>+                     (o .:? "newPassword")+                     <*> (o .:? "userName")+                     <*> (o .:? "errorCode")+                     <*> (o .:? "type")+                     <*> (o .:? "duration")+                     <*> (o .:? "createTime"))++instance ToJSON Command where+        toJSON Command'{..}+          = object+              (catMaybes+                 [("resetPasswordFlags" .=) <$> _cResetPasswordFlags,+                  ("newPassword" .=) <$> _cNewPassword,+                  ("userName" .=) <$> _cUserName,+                  ("errorCode" .=) <$> _cErrorCode,+                  ("type" .=) <$> _cType,+                  ("duration" .=) <$> _cDuration,+                  ("createTime" .=) <$> _cCreateTime])++-- | The response message for Operations.ListOperations.+--+-- /See:/ 'listOperationsResponse' smart constructor.+data ListOperationsResponse = ListOperationsResponse'+    { _lorNextPageToken :: !(Maybe Text)+    , _lorOperations    :: !(Maybe [Operation])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListOperationsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lorNextPageToken'+--+-- * 'lorOperations'+listOperationsResponse+    :: ListOperationsResponse+listOperationsResponse =+    ListOperationsResponse'+    { _lorNextPageToken = Nothing+    , _lorOperations = Nothing+    }++-- | The standard List next-page token.+lorNextPageToken :: Lens' ListOperationsResponse (Maybe Text)+lorNextPageToken+  = lens _lorNextPageToken+      (\ s a -> s{_lorNextPageToken = a})++-- | A list of operations that matches the specified filter in the request.+lorOperations :: Lens' ListOperationsResponse [Operation]+lorOperations+  = lens _lorOperations+      (\ s a -> s{_lorOperations = a})+      . _Default+      . _Coerce++instance FromJSON ListOperationsResponse where+        parseJSON+          = withObject "ListOperationsResponse"+              (\ o ->+                 ListOperationsResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "operations" .!= mempty))++instance ToJSON ListOperationsResponse where+        toJSON ListOperationsResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _lorNextPageToken,+                  ("operations" .=) <$> _lorOperations])++-- | Device display information.+--+-- /See:/ 'display' smart constructor.+data Display = Display'+    { _dHeight      :: !(Maybe (Textual Int32))+    , _dState       :: !(Maybe DisplayState)+    , _dWidth       :: !(Maybe (Textual Int32))+    , _dName        :: !(Maybe Text)+    , _dRefreshRate :: !(Maybe (Textual Int32))+    , _dDisplayId   :: !(Maybe (Textual Int32))+    , _dDensity     :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Display' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dHeight'+--+-- * 'dState'+--+-- * 'dWidth'+--+-- * 'dName'+--+-- * 'dRefreshRate'+--+-- * 'dDisplayId'+--+-- * 'dDensity'+display+    :: Display+display =+    Display'+    { _dHeight = Nothing+    , _dState = Nothing+    , _dWidth = Nothing+    , _dName = Nothing+    , _dRefreshRate = Nothing+    , _dDisplayId = Nothing+    , _dDensity = Nothing+    }++-- | Display height in pixels.+dHeight :: Lens' Display (Maybe Int32)+dHeight+  = lens _dHeight (\ s a -> s{_dHeight = a}) .+      mapping _Coerce++-- | State of the display.+dState :: Lens' Display (Maybe DisplayState)+dState = lens _dState (\ s a -> s{_dState = a})++-- | Display width in pixels.+dWidth :: Lens' Display (Maybe Int32)+dWidth+  = lens _dWidth (\ s a -> s{_dWidth = a}) .+      mapping _Coerce++-- | Name of the display.+dName :: Lens' Display (Maybe Text)+dName = lens _dName (\ s a -> s{_dName = a})++-- | Refresh rate of the display in frames per second.+dRefreshRate :: Lens' Display (Maybe Int32)+dRefreshRate+  = lens _dRefreshRate (\ s a -> s{_dRefreshRate = a})+      . mapping _Coerce++-- | Unique display id.+dDisplayId :: Lens' Display (Maybe Int32)+dDisplayId+  = lens _dDisplayId (\ s a -> s{_dDisplayId = a}) .+      mapping _Coerce++-- | Display density expressed as dots-per-inch.+dDensity :: Lens' Display (Maybe Int32)+dDensity+  = lens _dDensity (\ s a -> s{_dDensity = a}) .+      mapping _Coerce++instance FromJSON Display where+        parseJSON+          = withObject "Display"+              (\ o ->+                 Display' <$>+                   (o .:? "height") <*> (o .:? "state") <*>+                     (o .:? "width")+                     <*> (o .:? "name")+                     <*> (o .:? "refreshRate")+                     <*> (o .:? "displayId")+                     <*> (o .:? "density"))++instance ToJSON Display where+        toJSON Display'{..}+          = object+              (catMaybes+                 [("height" .=) <$> _dHeight,+                  ("state" .=) <$> _dState, ("width" .=) <$> _dWidth,+                  ("name" .=) <$> _dName,+                  ("refreshRate" .=) <$> _dRefreshRate,+                  ("displayId" .=) <$> _dDisplayId,+                  ("density" .=) <$> _dDensity])++-- | Configuration for an always-on VPN connection.+--+-- /See:/ 'alwaysOnVPNPackage' smart constructor.+data AlwaysOnVPNPackage = AlwaysOnVPNPackage'+    { _aovpLockdownEnabled :: !(Maybe Bool)+    , _aovpPackageName     :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AlwaysOnVPNPackage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aovpLockdownEnabled'+--+-- * 'aovpPackageName'+alwaysOnVPNPackage+    :: AlwaysOnVPNPackage+alwaysOnVPNPackage =+    AlwaysOnVPNPackage'+    { _aovpLockdownEnabled = Nothing+    , _aovpPackageName = Nothing+    }++-- | Disallows networking when the VPN is not connected.+aovpLockdownEnabled :: Lens' AlwaysOnVPNPackage (Maybe Bool)+aovpLockdownEnabled+  = lens _aovpLockdownEnabled+      (\ s a -> s{_aovpLockdownEnabled = a})++-- | The package name of the VPN app.+aovpPackageName :: Lens' AlwaysOnVPNPackage (Maybe Text)+aovpPackageName+  = lens _aovpPackageName+      (\ s a -> s{_aovpPackageName = a})++instance FromJSON AlwaysOnVPNPackage where+        parseJSON+          = withObject "AlwaysOnVPNPackage"+              (\ o ->+                 AlwaysOnVPNPackage' <$>+                   (o .:? "lockdownEnabled") <*> (o .:? "packageName"))++instance ToJSON AlwaysOnVPNPackage where+        toJSON AlwaysOnVPNPackage'{..}+          = object+              (catMaybes+                 [("lockdownEnabled" .=) <$> _aovpLockdownEnabled,+                  ("packageName" .=) <$> _aovpPackageName])++-- | Network configuration for the device. See configure networks for more+-- information.+--+-- /See:/ 'policyOpenNetworkConfiguration' smart constructor.+newtype PolicyOpenNetworkConfiguration = PolicyOpenNetworkConfiguration'+    { _poncAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PolicyOpenNetworkConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'poncAddtional'+policyOpenNetworkConfiguration+    :: HashMap Text JSONValue -- ^ 'poncAddtional'+    -> PolicyOpenNetworkConfiguration+policyOpenNetworkConfiguration pPoncAddtional_ =+    PolicyOpenNetworkConfiguration'+    { _poncAddtional = _Coerce # pPoncAddtional_+    }++-- | Properties of the object.+poncAddtional :: Lens' PolicyOpenNetworkConfiguration (HashMap Text JSONValue)+poncAddtional+  = lens _poncAddtional+      (\ s a -> s{_poncAddtional = a})+      . _Coerce++instance FromJSON PolicyOpenNetworkConfiguration+         where+        parseJSON+          = withObject "PolicyOpenNetworkConfiguration"+              (\ o ->+                 PolicyOpenNetworkConfiguration' <$>+                   (parseJSONObject o))++instance ToJSON PolicyOpenNetworkConfiguration where+        toJSON = toJSON . _poncAddtional++-- | Hardware status. Temperatures may be compared to the temperature+-- thresholds available in hardwareInfo to determine hardware health.+--+-- /See:/ 'hardwareStatus' smart constructor.+data HardwareStatus = HardwareStatus'+    { _hsCPUTemperatures     :: !(Maybe [Textual Double])+    , _hsBatteryTemperatures :: !(Maybe [Textual Double])+    , _hsGpuTemperatures     :: !(Maybe [Textual Double])+    , _hsFanSpeeds           :: !(Maybe [Textual Double])+    , _hsSkinTemperatures    :: !(Maybe [Textual Double])+    , _hsCPUUsages           :: !(Maybe [Textual Double])+    , _hsCreateTime          :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HardwareStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hsCPUTemperatures'+--+-- * 'hsBatteryTemperatures'+--+-- * 'hsGpuTemperatures'+--+-- * 'hsFanSpeeds'+--+-- * 'hsSkinTemperatures'+--+-- * 'hsCPUUsages'+--+-- * 'hsCreateTime'+hardwareStatus+    :: HardwareStatus+hardwareStatus =+    HardwareStatus'+    { _hsCPUTemperatures = Nothing+    , _hsBatteryTemperatures = Nothing+    , _hsGpuTemperatures = Nothing+    , _hsFanSpeeds = Nothing+    , _hsSkinTemperatures = Nothing+    , _hsCPUUsages = Nothing+    , _hsCreateTime = Nothing+    }++-- | Current CPU temperatures in Celsius for each CPU on the device.+hsCPUTemperatures :: Lens' HardwareStatus [Double]+hsCPUTemperatures+  = lens _hsCPUTemperatures+      (\ s a -> s{_hsCPUTemperatures = a})+      . _Default+      . _Coerce++-- | Current battery temperatures in Celsius for each battery on the device.+hsBatteryTemperatures :: Lens' HardwareStatus [Double]+hsBatteryTemperatures+  = lens _hsBatteryTemperatures+      (\ s a -> s{_hsBatteryTemperatures = a})+      . _Default+      . _Coerce++-- | Current GPU temperatures in Celsius for each GPU on the device.+hsGpuTemperatures :: Lens' HardwareStatus [Double]+hsGpuTemperatures+  = lens _hsGpuTemperatures+      (\ s a -> s{_hsGpuTemperatures = a})+      . _Default+      . _Coerce++-- | Fan speeds in RPM for each fan on the device. Empty array means that+-- there are no fans or fan speed is not supported on the system.+hsFanSpeeds :: Lens' HardwareStatus [Double]+hsFanSpeeds+  = lens _hsFanSpeeds (\ s a -> s{_hsFanSpeeds = a}) .+      _Default+      . _Coerce++-- | Current device skin temperatures in Celsius.+hsSkinTemperatures :: Lens' HardwareStatus [Double]+hsSkinTemperatures+  = lens _hsSkinTemperatures+      (\ s a -> s{_hsSkinTemperatures = a})+      . _Default+      . _Coerce++-- | CPU usages in percentage for each core available on the device. Usage is+-- 0 for each unplugged core. Empty array implies that CPU usage is not+-- supported in the system.+hsCPUUsages :: Lens' HardwareStatus [Double]+hsCPUUsages+  = lens _hsCPUUsages (\ s a -> s{_hsCPUUsages = a}) .+      _Default+      . _Coerce++-- | The time the measurements were taken.+hsCreateTime :: Lens' HardwareStatus (Maybe UTCTime)+hsCreateTime+  = lens _hsCreateTime (\ s a -> s{_hsCreateTime = a})+      . mapping _DateTime++instance FromJSON HardwareStatus where+        parseJSON+          = withObject "HardwareStatus"+              (\ o ->+                 HardwareStatus' <$>+                   (o .:? "cpuTemperatures" .!= mempty) <*>+                     (o .:? "batteryTemperatures" .!= mempty)+                     <*> (o .:? "gpuTemperatures" .!= mempty)+                     <*> (o .:? "fanSpeeds" .!= mempty)+                     <*> (o .:? "skinTemperatures" .!= mempty)+                     <*> (o .:? "cpuUsages" .!= mempty)+                     <*> (o .:? "createTime"))++instance ToJSON HardwareStatus where+        toJSON HardwareStatus'{..}+          = object+              (catMaybes+                 [("cpuTemperatures" .=) <$> _hsCPUTemperatures,+                  ("batteryTemperatures" .=) <$>+                    _hsBatteryTemperatures,+                  ("gpuTemperatures" .=) <$> _hsGpuTemperatures,+                  ("fanSpeeds" .=) <$> _hsFanSpeeds,+                  ("skinTemperatures" .=) <$> _hsSkinTemperatures,+                  ("cpuUsages" .=) <$> _hsCPUUsages,+                  ("createTime" .=) <$> _hsCreateTime])++-- | Information about an app.+--+-- /See:/ 'application' smart constructor.+data Application = Application'+    { _aManagedProperties :: !(Maybe [ManagedProperty])+    , _aName              :: !(Maybe Text)+    , _aPermissions       :: !(Maybe [ApplicationPermission])+    , _aTitle             :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Application' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aManagedProperties'+--+-- * 'aName'+--+-- * 'aPermissions'+--+-- * 'aTitle'+application+    :: Application+application =+    Application'+    { _aManagedProperties = Nothing+    , _aName = Nothing+    , _aPermissions = Nothing+    , _aTitle = Nothing+    }++-- | The set of managed properties available to be pre-configured for the+-- app.+aManagedProperties :: Lens' Application [ManagedProperty]+aManagedProperties+  = lens _aManagedProperties+      (\ s a -> s{_aManagedProperties = a})+      . _Default+      . _Coerce++-- | The name of the app in the form+-- enterprises\/{enterpriseId}\/applications\/{package_name}.+aName :: Lens' Application (Maybe Text)+aName = lens _aName (\ s a -> s{_aName = a})++-- | The permissions required by the app.+aPermissions :: Lens' Application [ApplicationPermission]+aPermissions+  = lens _aPermissions (\ s a -> s{_aPermissions = a})+      . _Default+      . _Coerce++-- | The title of the app. Localized.+aTitle :: Lens' Application (Maybe Text)+aTitle = lens _aTitle (\ s a -> s{_aTitle = a})++instance FromJSON Application where+        parseJSON+          = withObject "Application"+              (\ o ->+                 Application' <$>+                   (o .:? "managedProperties" .!= mempty) <*>+                     (o .:? "name")+                     <*> (o .:? "permissions" .!= mempty)+                     <*> (o .:? "title"))++instance ToJSON Application where+        toJSON Application'{..}+          = object+              (catMaybes+                 [("managedProperties" .=) <$> _aManagedProperties,+                  ("name" .=) <$> _aName,+                  ("permissions" .=) <$> _aPermissions,+                  ("title" .=) <$> _aTitle])++-- | Managed property.+--+-- /See:/ 'managedProperty' smart constructor.+data ManagedProperty = ManagedProperty'+    { _mpEntries          :: !(Maybe [ManagedPropertyEntry])+    , _mpNestedProperties :: !(Maybe [ManagedProperty])+    , _mpKey              :: !(Maybe Text)+    , _mpDefaultValue     :: !(Maybe JSONValue)+    , _mpTitle            :: !(Maybe Text)+    , _mpType             :: !(Maybe ManagedPropertyType)+    , _mpDescription      :: !(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:+--+-- * 'mpEntries'+--+-- * 'mpNestedProperties'+--+-- * 'mpKey'+--+-- * 'mpDefaultValue'+--+-- * 'mpTitle'+--+-- * 'mpType'+--+-- * 'mpDescription'+managedProperty+    :: ManagedProperty+managedProperty =+    ManagedProperty'+    { _mpEntries = Nothing+    , _mpNestedProperties = Nothing+    , _mpKey = Nothing+    , _mpDefaultValue = Nothing+    , _mpTitle = Nothing+    , _mpType = Nothing+    , _mpDescription = Nothing+    }++-- | For CHOICE or MULTISELECT properties, the list of possible entries.+mpEntries :: Lens' ManagedProperty [ManagedPropertyEntry]+mpEntries+  = lens _mpEntries (\ s a -> s{_mpEntries = a}) .+      _Default+      . _Coerce++-- | For BUNDLE_ARRAY properties, the list of nested properties. A+-- BUNDLE_ARRAY property is at most two levels deep.+mpNestedProperties :: Lens' ManagedProperty [ManagedProperty]+mpNestedProperties+  = lens _mpNestedProperties+      (\ s a -> s{_mpNestedProperties = a})+      . _Default+      . _Coerce++-- | The unique key that the app uses to identify the property, e.g.+-- \"com.google.android.gm.fieldname\".+mpKey :: Lens' ManagedProperty (Maybe Text)+mpKey = lens _mpKey (\ s a -> s{_mpKey = a})++-- | The default value of the property. BUNDLE_ARRAY properties don\'t have a+-- default value.+mpDefaultValue :: Lens' ManagedProperty (Maybe JSONValue)+mpDefaultValue+  = lens _mpDefaultValue+      (\ s a -> s{_mpDefaultValue = a})++-- | The name of the property. Localized.+mpTitle :: Lens' ManagedProperty (Maybe Text)+mpTitle = lens _mpTitle (\ s a -> s{_mpTitle = a})++-- | The type of the property.+mpType :: Lens' ManagedProperty (Maybe ManagedPropertyType)+mpType = lens _mpType (\ s a -> s{_mpType = a})++-- | A longer description of the property, providing more detail of what it+-- affects. Localized.+mpDescription :: Lens' ManagedProperty (Maybe Text)+mpDescription+  = lens _mpDescription+      (\ s a -> s{_mpDescription = a})++instance FromJSON ManagedProperty where+        parseJSON+          = withObject "ManagedProperty"+              (\ o ->+                 ManagedProperty' <$>+                   (o .:? "entries" .!= mempty) <*>+                     (o .:? "nestedProperties" .!= mempty)+                     <*> (o .:? "key")+                     <*> (o .:? "defaultValue")+                     <*> (o .:? "title")+                     <*> (o .:? "type")+                     <*> (o .:? "description"))++instance ToJSON ManagedProperty where+        toJSON ManagedProperty'{..}+          = object+              (catMaybes+                 [("entries" .=) <$> _mpEntries,+                  ("nestedProperties" .=) <$> _mpNestedProperties,+                  ("key" .=) <$> _mpKey,+                  ("defaultValue" .=) <$> _mpDefaultValue,+                  ("title" .=) <$> _mpTitle, ("type" .=) <$> _mpType,+                  ("description" .=) <$> _mpDescription])++-- | Configuration info for an HTTP proxy. For a direct proxy, set the host,+-- port, and excluded_hosts fields. For a PAC script proxy, set the pac_uri+-- field.+--+-- /See:/ 'proxyInfo' smart constructor.+data ProxyInfo = ProxyInfo'+    { _piPacURI        :: !(Maybe Text)+    , _piHost          :: !(Maybe Text)+    , _piExcludedHosts :: !(Maybe [Text])+    , _piPort          :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProxyInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'piPacURI'+--+-- * 'piHost'+--+-- * 'piExcludedHosts'+--+-- * 'piPort'+proxyInfo+    :: ProxyInfo+proxyInfo =+    ProxyInfo'+    { _piPacURI = Nothing+    , _piHost = Nothing+    , _piExcludedHosts = Nothing+    , _piPort = Nothing+    }++-- | The URI of the PAC script used to configure the proxy.+piPacURI :: Lens' ProxyInfo (Maybe Text)+piPacURI = lens _piPacURI (\ s a -> s{_piPacURI = a})++-- | The host of the direct proxy.+piHost :: Lens' ProxyInfo (Maybe Text)+piHost = lens _piHost (\ s a -> s{_piHost = a})++-- | For a direct proxy, the hosts for which the proxy is bypassed. The host+-- names may contain wildcards such as *.example.com.+piExcludedHosts :: Lens' ProxyInfo [Text]+piExcludedHosts+  = lens _piExcludedHosts+      (\ s a -> s{_piExcludedHosts = a})+      . _Default+      . _Coerce++-- | The port of the direct proxy.+piPort :: Lens' ProxyInfo (Maybe Int32)+piPort+  = lens _piPort (\ s a -> s{_piPort = a}) .+      mapping _Coerce++instance FromJSON ProxyInfo where+        parseJSON+          = withObject "ProxyInfo"+              (\ o ->+                 ProxyInfo' <$>+                   (o .:? "pacUri") <*> (o .:? "host") <*>+                     (o .:? "excludedHosts" .!= mempty)+                     <*> (o .:? "port"))++instance ToJSON ProxyInfo where+        toJSON ProxyInfo'{..}+          = object+              (catMaybes+                 [("pacUri" .=) <$> _piPacURI,+                  ("host" .=) <$> _piHost,+                  ("excludedHosts" .=) <$> _piExcludedHosts,+                  ("port" .=) <$> _piPort])++-- | A default activity for handling intents that match a particular intent+-- filter.+--+-- /See:/ 'persistentPreferredActivity' smart constructor.+data PersistentPreferredActivity = PersistentPreferredActivity'+    { _ppaActions          :: !(Maybe [Text])+    , _ppaCategories       :: !(Maybe [Text])+    , _ppaReceiverActivity :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PersistentPreferredActivity' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ppaActions'+--+-- * 'ppaCategories'+--+-- * 'ppaReceiverActivity'+persistentPreferredActivity+    :: PersistentPreferredActivity+persistentPreferredActivity =+    PersistentPreferredActivity'+    { _ppaActions = Nothing+    , _ppaCategories = Nothing+    , _ppaReceiverActivity = Nothing+    }++-- | The intent actions to match in the filter. If any actions are included+-- in the filter, then an intent\'s action must be one of those values for+-- it to match. If no actions are included, the intent action is ignored.+ppaActions :: Lens' PersistentPreferredActivity [Text]+ppaActions+  = lens _ppaActions (\ s a -> s{_ppaActions = a}) .+      _Default+      . _Coerce++-- | The intent categories to match in the filter. An intent includes the+-- categories that it requires, all of which must be included in the filter+-- in order to match. In other words, adding a category to the filter has+-- no impact on matching unless that category is specified in the intent.+ppaCategories :: Lens' PersistentPreferredActivity [Text]+ppaCategories+  = lens _ppaCategories+      (\ s a -> s{_ppaCategories = a})+      . _Default+      . _Coerce++-- | The activity that should be the default intent handler. This should be+-- an Android component name, e.g.+-- com.android.enterprise.app\/.MainActivity. Alternatively, the value may+-- be the package name of an app, which causes Android Device Policy to+-- choose an appropriate activity from the app to handle the intent.+ppaReceiverActivity :: Lens' PersistentPreferredActivity (Maybe Text)+ppaReceiverActivity+  = lens _ppaReceiverActivity+      (\ s a -> s{_ppaReceiverActivity = a})++instance FromJSON PersistentPreferredActivity where+        parseJSON+          = withObject "PersistentPreferredActivity"+              (\ o ->+                 PersistentPreferredActivity' <$>+                   (o .:? "actions" .!= mempty) <*>+                     (o .:? "categories" .!= mempty)+                     <*> (o .:? "receiverActivity"))++instance ToJSON PersistentPreferredActivity where+        toJSON PersistentPreferredActivity'{..}+          = object+              (catMaybes+                 [("actions" .=) <$> _ppaActions,+                  ("categories" .=) <$> _ppaCategories,+                  ("receiverActivity" .=) <$> _ppaReceiverActivity])++-- | This resource represents a long-running operation that is the result of+-- a network API call.+--+-- /See:/ 'operation' smart constructor.+data Operation = Operation'+    { _oDone     :: !(Maybe Bool)+    , _oError    :: !(Maybe Status)+    , _oResponse :: !(Maybe OperationResponse)+    , _oName     :: !(Maybe Text)+    , _oMetadata :: !(Maybe OperationMetadata)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Operation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oDone'+--+-- * 'oError'+--+-- * 'oResponse'+--+-- * 'oName'+--+-- * 'oMetadata'+operation+    :: Operation+operation =+    Operation'+    { _oDone = Nothing+    , _oError = Nothing+    , _oResponse = Nothing+    , _oName = Nothing+    , _oMetadata = Nothing+    }++-- | If the value is false, it means the operation is still in progress. If+-- true, the operation is completed, and either error or response is+-- available.+oDone :: Lens' Operation (Maybe Bool)+oDone = lens _oDone (\ s a -> s{_oDone = a})++-- | The error result of the operation in case of failure or cancellation.+oError :: Lens' Operation (Maybe Status)+oError = lens _oError (\ s a -> s{_oError = a})++-- | The normal response of the operation in case of success. If the original+-- method returns no data on success, such as Delete, the response is+-- google.protobuf.Empty. If the original method is standard+-- Get\/Create\/Update, the response should be the resource. For other+-- methods, the response should have the type XxxResponse, where Xxx is the+-- original method name. For example, if the original method name is+-- TakeSnapshot(), the inferred response type is TakeSnapshotResponse.+oResponse :: Lens' Operation (Maybe OperationResponse)+oResponse+  = lens _oResponse (\ s a -> s{_oResponse = a})++-- | The server-assigned name, which is only unique within the same service+-- that originally returns it. If you use the default HTTP mapping, the+-- name should have the format of operations\/some\/unique\/name.+oName :: Lens' Operation (Maybe Text)+oName = lens _oName (\ s a -> s{_oName = a})++-- | Service-specific metadata associated with the operation. It typically+-- contains progress information and common metadata such as create time.+-- Some services might not provide such metadata. Any method that returns a+-- long-running operation should document the metadata type, if any.+oMetadata :: Lens' Operation (Maybe OperationMetadata)+oMetadata+  = lens _oMetadata (\ s a -> s{_oMetadata = a})++instance FromJSON Operation where+        parseJSON+          = withObject "Operation"+              (\ o ->+                 Operation' <$>+                   (o .:? "done") <*> (o .:? "error") <*>+                     (o .:? "response")+                     <*> (o .:? "name")+                     <*> (o .:? "metadata"))++instance ToJSON Operation where+        toJSON Operation'{..}+          = object+              (catMaybes+                 [("done" .=) <$> _oDone, ("error" .=) <$> _oError,+                  ("response" .=) <$> _oResponse,+                  ("name" .=) <$> _oName,+                  ("metadata" .=) <$> _oMetadata])++-- | A generic empty message that you can re-use to avoid defining duplicated+-- empty messages in your APIs. A typical example is to use it as the+-- request or the response type of an API method. For instance: service Foo+-- { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The+-- JSON representation for Empty is empty JSON object {}.+--+-- /See:/ 'empty' smart constructor.+data Empty =+    Empty'+    deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Empty' with the minimum fields required to make a request.+--+empty+    :: Empty+empty = Empty'++instance FromJSON Empty where+        parseJSON = withObject "Empty" (\ o -> pure Empty')++instance ToJSON Empty where+        toJSON = const emptyObject++-- | Data hosted at an external location. The data is to be downloaded by+-- Android Device Policy and verified against the hash.+--+-- /See:/ 'externalData' smart constructor.+data ExternalData = ExternalData'+    { _edURL        :: !(Maybe Text)+    , _edSha256Hash :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ExternalData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'edURL'+--+-- * 'edSha256Hash'+externalData+    :: ExternalData+externalData =+    ExternalData'+    { _edURL = Nothing+    , _edSha256Hash = Nothing+    }++-- | The absolute URL to the data, which must use either the http or https+-- scheme. Android Device Policy doesn\'t provide any credentials in the+-- GET request, so the URL must be publicly accessible. Including a long,+-- random component in the URL may be used to prevent attackers from+-- discovering the URL.+edURL :: Lens' ExternalData (Maybe Text)+edURL = lens _edURL (\ s a -> s{_edURL = a})++-- | The base-64 encoded SHA-256 hash of the content hosted at url. If the+-- content doesn\'t match this hash, Android Device Policy won\'t use the+-- data.+edSha256Hash :: Lens' ExternalData (Maybe Text)+edSha256Hash+  = lens _edSha256Hash (\ s a -> s{_edSha256Hash = a})++instance FromJSON ExternalData where+        parseJSON+          = withObject "ExternalData"+              (\ o ->+                 ExternalData' <$>+                   (o .:? "url") <*> (o .:? "sha256Hash"))++instance ToJSON ExternalData where+        toJSON ExternalData'{..}+          = object+              (catMaybes+                 [("url" .=) <$> _edURL,+                  ("sha256Hash" .=) <$> _edSha256Hash])++-- | A compliance rule condition which is satisfied if the Android Framework+-- API level on the device doesn\'t meet a minimum requirement. There can+-- only be one rule with this type of condition per policy.+--+-- /See:/ 'apiLevelCondition' smart constructor.+newtype APILevelCondition = APILevelCondition'+    { _alcMinAPILevel :: Maybe (Textual Int32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'APILevelCondition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'alcMinAPILevel'+apiLevelCondition+    :: APILevelCondition+apiLevelCondition =+    APILevelCondition'+    { _alcMinAPILevel = Nothing+    }++-- | The minimum desired Android Framework API level. If the device doesn\'t+-- meet the minimum requirement, this condition is satisfied. Must be+-- greater than zero.+alcMinAPILevel :: Lens' APILevelCondition (Maybe Int32)+alcMinAPILevel+  = lens _alcMinAPILevel+      (\ s a -> s{_alcMinAPILevel = a})+      . mapping _Coerce++instance FromJSON APILevelCondition where+        parseJSON+          = withObject "APILevelCondition"+              (\ o -> APILevelCondition' <$> (o .:? "minApiLevel"))++instance ToJSON APILevelCondition where+        toJSON APILevelCondition'{..}+          = object+              (catMaybes [("minApiLevel" .=) <$> _alcMinAPILevel])++-- | Information about security related device settings on device.+--+-- /See:/ 'deviceSettings' smart constructor.+data DeviceSettings = DeviceSettings'+    { _dsIsEncrypted                :: !(Maybe Bool)+    , _dsAdbEnabled                 :: !(Maybe Bool)+    , _dsIsDeviceSecure             :: !(Maybe Bool)+    , _dsVerifyAppsEnabled          :: !(Maybe Bool)+    , _dsDevelopmentSettingsEnabled :: !(Maybe Bool)+    , _dsEncryptionStatus           :: !(Maybe DeviceSettingsEncryptionStatus)+    , _dsUnknownSourcesEnabled      :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeviceSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsIsEncrypted'+--+-- * 'dsAdbEnabled'+--+-- * 'dsIsDeviceSecure'+--+-- * 'dsVerifyAppsEnabled'+--+-- * 'dsDevelopmentSettingsEnabled'+--+-- * 'dsEncryptionStatus'+--+-- * 'dsUnknownSourcesEnabled'+deviceSettings+    :: DeviceSettings+deviceSettings =+    DeviceSettings'+    { _dsIsEncrypted = Nothing+    , _dsAdbEnabled = Nothing+    , _dsIsDeviceSecure = Nothing+    , _dsVerifyAppsEnabled = Nothing+    , _dsDevelopmentSettingsEnabled = Nothing+    , _dsEncryptionStatus = Nothing+    , _dsUnknownSourcesEnabled = Nothing+    }++-- | Whether the storage encryption is enabled.+dsIsEncrypted :: Lens' DeviceSettings (Maybe Bool)+dsIsEncrypted+  = lens _dsIsEncrypted+      (\ s a -> s{_dsIsEncrypted = a})++-- | Whether ADB+-- (https:\/\/developer.android.com\/studio\/command-line\/adb.html) is+-- enabled on the device.+dsAdbEnabled :: Lens' DeviceSettings (Maybe Bool)+dsAdbEnabled+  = lens _dsAdbEnabled (\ s a -> s{_dsAdbEnabled = a})++-- | Whether the device is secured with PIN\/password.+dsIsDeviceSecure :: Lens' DeviceSettings (Maybe Bool)+dsIsDeviceSecure+  = lens _dsIsDeviceSecure+      (\ s a -> s{_dsIsDeviceSecure = a})++-- | Whether Verify Apps (Google Play Protect+-- (https:\/\/support.google.com\/googleplay\/answer\/2812853)) is enabled+-- on the device.+dsVerifyAppsEnabled :: Lens' DeviceSettings (Maybe Bool)+dsVerifyAppsEnabled+  = lens _dsVerifyAppsEnabled+      (\ s a -> s{_dsVerifyAppsEnabled = a})++-- | Whether developer mode is enabled on the device.+dsDevelopmentSettingsEnabled :: Lens' DeviceSettings (Maybe Bool)+dsDevelopmentSettingsEnabled+  = lens _dsDevelopmentSettingsEnabled+      (\ s a -> s{_dsDevelopmentSettingsEnabled = a})++-- | Encryption status from DevicePolicyManager.+dsEncryptionStatus :: Lens' DeviceSettings (Maybe DeviceSettingsEncryptionStatus)+dsEncryptionStatus+  = lens _dsEncryptionStatus+      (\ s a -> s{_dsEncryptionStatus = a})++-- | Whether installing apps from unknown sources is enabled.+dsUnknownSourcesEnabled :: Lens' DeviceSettings (Maybe Bool)+dsUnknownSourcesEnabled+  = lens _dsUnknownSourcesEnabled+      (\ s a -> s{_dsUnknownSourcesEnabled = a})++instance FromJSON DeviceSettings where+        parseJSON+          = withObject "DeviceSettings"+              (\ o ->+                 DeviceSettings' <$>+                   (o .:? "isEncrypted") <*> (o .:? "adbEnabled") <*>+                     (o .:? "isDeviceSecure")+                     <*> (o .:? "verifyAppsEnabled")+                     <*> (o .:? "developmentSettingsEnabled")+                     <*> (o .:? "encryptionStatus")+                     <*> (o .:? "unknownSourcesEnabled"))++instance ToJSON DeviceSettings where+        toJSON DeviceSettings'{..}+          = object+              (catMaybes+                 [("isEncrypted" .=) <$> _dsIsEncrypted,+                  ("adbEnabled" .=) <$> _dsAdbEnabled,+                  ("isDeviceSecure" .=) <$> _dsIsDeviceSecure,+                  ("verifyAppsEnabled" .=) <$> _dsVerifyAppsEnabled,+                  ("developmentSettingsEnabled" .=) <$>+                    _dsDevelopmentSettingsEnabled,+                  ("encryptionStatus" .=) <$> _dsEncryptionStatus,+                  ("unknownSourcesEnabled" .=) <$>+                    _dsUnknownSourcesEnabled])++-- | Optional, a map containing configuration variables defined for the+-- configuration.+--+-- /See:/ 'managedConfigurationTemplateConfigurationVariables' smart constructor.+newtype ManagedConfigurationTemplateConfigurationVariables = ManagedConfigurationTemplateConfigurationVariables'+    { _mctcvAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ManagedConfigurationTemplateConfigurationVariables' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mctcvAddtional'+managedConfigurationTemplateConfigurationVariables+    :: HashMap Text Text -- ^ 'mctcvAddtional'+    -> ManagedConfigurationTemplateConfigurationVariables+managedConfigurationTemplateConfigurationVariables pMctcvAddtional_ =+    ManagedConfigurationTemplateConfigurationVariables'+    { _mctcvAddtional = _Coerce # pMctcvAddtional_+    }++mctcvAddtional :: Lens' ManagedConfigurationTemplateConfigurationVariables (HashMap Text Text)+mctcvAddtional+  = lens _mctcvAddtional+      (\ s a -> s{_mctcvAddtional = a})+      . _Coerce++instance FromJSON+         ManagedConfigurationTemplateConfigurationVariables+         where+        parseJSON+          = withObject+              "ManagedConfigurationTemplateConfigurationVariables"+              (\ o ->+                 ManagedConfigurationTemplateConfigurationVariables'+                   <$> (parseJSONObject o))++instance ToJSON+         ManagedConfigurationTemplateConfigurationVariables+         where+        toJSON = toJSON . _mctcvAddtional++-- | Information about device hardware. The fields related to temperature+-- thresholds are only available if hardwareStatusEnabled is true in the+-- device\'s policy.+--+-- /See:/ 'hardwareInfo' smart constructor.+data HardwareInfo = HardwareInfo'+    { _hiCPUThrottlingTemperatures     :: !(Maybe [Textual Double])+    , _hiManufacturer                  :: !(Maybe Text)+    , _hiBrand                         :: !(Maybe Text)+    , _hiCPUShutdownTemperatures       :: !(Maybe [Textual Double])+    , _hiBatteryThrottlingTemperatures :: !(Maybe [Textual Double])+    , _hiModel                         :: !(Maybe Text)+    , _hiBatteryShutdownTemperatures   :: !(Maybe [Textual Double])+    , _hiSkinThrottlingTemperatures    :: !(Maybe [Textual Double])+    , _hiGpuShutdownTemperatures       :: !(Maybe [Textual Double])+    , _hiGpuThrottlingTemperatures     :: !(Maybe [Textual Double])+    , _hiSkinShutdownTemperatures      :: !(Maybe [Textual Double])+    , _hiSerialNumber                  :: !(Maybe Text)+    , _hiDeviceBasebandVersion         :: !(Maybe Text)+    , _hiHardware                      :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HardwareInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hiCPUThrottlingTemperatures'+--+-- * 'hiManufacturer'+--+-- * 'hiBrand'+--+-- * 'hiCPUShutdownTemperatures'+--+-- * 'hiBatteryThrottlingTemperatures'+--+-- * 'hiModel'+--+-- * 'hiBatteryShutdownTemperatures'+--+-- * 'hiSkinThrottlingTemperatures'+--+-- * 'hiGpuShutdownTemperatures'+--+-- * 'hiGpuThrottlingTemperatures'+--+-- * 'hiSkinShutdownTemperatures'+--+-- * 'hiSerialNumber'+--+-- * 'hiDeviceBasebandVersion'+--+-- * 'hiHardware'+hardwareInfo+    :: HardwareInfo+hardwareInfo =+    HardwareInfo'+    { _hiCPUThrottlingTemperatures = Nothing+    , _hiManufacturer = Nothing+    , _hiBrand = Nothing+    , _hiCPUShutdownTemperatures = Nothing+    , _hiBatteryThrottlingTemperatures = Nothing+    , _hiModel = Nothing+    , _hiBatteryShutdownTemperatures = Nothing+    , _hiSkinThrottlingTemperatures = Nothing+    , _hiGpuShutdownTemperatures = Nothing+    , _hiGpuThrottlingTemperatures = Nothing+    , _hiSkinShutdownTemperatures = Nothing+    , _hiSerialNumber = Nothing+    , _hiDeviceBasebandVersion = Nothing+    , _hiHardware = Nothing+    }++-- | CPU throttling temperature thresholds in Celsius for each CPU on the+-- device.+hiCPUThrottlingTemperatures :: Lens' HardwareInfo [Double]+hiCPUThrottlingTemperatures+  = lens _hiCPUThrottlingTemperatures+      (\ s a -> s{_hiCPUThrottlingTemperatures = a})+      . _Default+      . _Coerce++-- | Manufacturer. For example, Motorola.+hiManufacturer :: Lens' HardwareInfo (Maybe Text)+hiManufacturer+  = lens _hiManufacturer+      (\ s a -> s{_hiManufacturer = a})++-- | Brand of the device. For example, Google.+hiBrand :: Lens' HardwareInfo (Maybe Text)+hiBrand = lens _hiBrand (\ s a -> s{_hiBrand = a})++-- | CPU shutdown temperature thresholds in Celsius for each CPU on the+-- device.+hiCPUShutdownTemperatures :: Lens' HardwareInfo [Double]+hiCPUShutdownTemperatures+  = lens _hiCPUShutdownTemperatures+      (\ s a -> s{_hiCPUShutdownTemperatures = a})+      . _Default+      . _Coerce++-- | Battery throttling temperature thresholds in Celsius for each battery on+-- the device.+hiBatteryThrottlingTemperatures :: Lens' HardwareInfo [Double]+hiBatteryThrottlingTemperatures+  = lens _hiBatteryThrottlingTemperatures+      (\ s a -> s{_hiBatteryThrottlingTemperatures = a})+      . _Default+      . _Coerce++-- | The model of the device. For example, Asus Nexus 7.+hiModel :: Lens' HardwareInfo (Maybe Text)+hiModel = lens _hiModel (\ s a -> s{_hiModel = a})++-- | Battery shutdown temperature thresholds in Celsius for each battery on+-- the device.+hiBatteryShutdownTemperatures :: Lens' HardwareInfo [Double]+hiBatteryShutdownTemperatures+  = lens _hiBatteryShutdownTemperatures+      (\ s a -> s{_hiBatteryShutdownTemperatures = a})+      . _Default+      . _Coerce++-- | Device skin throttling temperature thresholds in Celsius.+hiSkinThrottlingTemperatures :: Lens' HardwareInfo [Double]+hiSkinThrottlingTemperatures+  = lens _hiSkinThrottlingTemperatures+      (\ s a -> s{_hiSkinThrottlingTemperatures = a})+      . _Default+      . _Coerce++-- | GPU shutdown temperature thresholds in Celsius for each GPU on the+-- device.+hiGpuShutdownTemperatures :: Lens' HardwareInfo [Double]+hiGpuShutdownTemperatures+  = lens _hiGpuShutdownTemperatures+      (\ s a -> s{_hiGpuShutdownTemperatures = a})+      . _Default+      . _Coerce++-- | GPU throttling temperature thresholds in Celsius for each GPU on the+-- device.+hiGpuThrottlingTemperatures :: Lens' HardwareInfo [Double]+hiGpuThrottlingTemperatures+  = lens _hiGpuThrottlingTemperatures+      (\ s a -> s{_hiGpuThrottlingTemperatures = a})+      . _Default+      . _Coerce++-- | Device skin shutdown temperature thresholds in Celsius.+hiSkinShutdownTemperatures :: Lens' HardwareInfo [Double]+hiSkinShutdownTemperatures+  = lens _hiSkinShutdownTemperatures+      (\ s a -> s{_hiSkinShutdownTemperatures = a})+      . _Default+      . _Coerce++-- | The device serial number.+hiSerialNumber :: Lens' HardwareInfo (Maybe Text)+hiSerialNumber+  = lens _hiSerialNumber+      (\ s a -> s{_hiSerialNumber = a})++-- | Baseband version. For example, MDM9625_104662.22.05.34p.+hiDeviceBasebandVersion :: Lens' HardwareInfo (Maybe Text)+hiDeviceBasebandVersion+  = lens _hiDeviceBasebandVersion+      (\ s a -> s{_hiDeviceBasebandVersion = a})++-- | Name of the hardware. For example, Angler.+hiHardware :: Lens' HardwareInfo (Maybe Text)+hiHardware+  = lens _hiHardware (\ s a -> s{_hiHardware = a})++instance FromJSON HardwareInfo where+        parseJSON+          = withObject "HardwareInfo"+              (\ o ->+                 HardwareInfo' <$>+                   (o .:? "cpuThrottlingTemperatures" .!= mempty) <*>+                     (o .:? "manufacturer")+                     <*> (o .:? "brand")+                     <*> (o .:? "cpuShutdownTemperatures" .!= mempty)+                     <*>+                     (o .:? "batteryThrottlingTemperatures" .!= mempty)+                     <*> (o .:? "model")+                     <*> (o .:? "batteryShutdownTemperatures" .!= mempty)+                     <*> (o .:? "skinThrottlingTemperatures" .!= mempty)+                     <*> (o .:? "gpuShutdownTemperatures" .!= mempty)+                     <*> (o .:? "gpuThrottlingTemperatures" .!= mempty)+                     <*> (o .:? "skinShutdownTemperatures" .!= mempty)+                     <*> (o .:? "serialNumber")+                     <*> (o .:? "deviceBasebandVersion")+                     <*> (o .:? "hardware"))++instance ToJSON HardwareInfo where+        toJSON HardwareInfo'{..}+          = object+              (catMaybes+                 [("cpuThrottlingTemperatures" .=) <$>+                    _hiCPUThrottlingTemperatures,+                  ("manufacturer" .=) <$> _hiManufacturer,+                  ("brand" .=) <$> _hiBrand,+                  ("cpuShutdownTemperatures" .=) <$>+                    _hiCPUShutdownTemperatures,+                  ("batteryThrottlingTemperatures" .=) <$>+                    _hiBatteryThrottlingTemperatures,+                  ("model" .=) <$> _hiModel,+                  ("batteryShutdownTemperatures" .=) <$>+                    _hiBatteryShutdownTemperatures,+                  ("skinThrottlingTemperatures" .=) <$>+                    _hiSkinThrottlingTemperatures,+                  ("gpuShutdownTemperatures" .=) <$>+                    _hiGpuShutdownTemperatures,+                  ("gpuThrottlingTemperatures" .=) <$>+                    _hiGpuThrottlingTemperatures,+                  ("skinShutdownTemperatures" .=) <$>+                    _hiSkinShutdownTemperatures,+                  ("serialNumber" .=) <$> _hiSerialNumber,+                  ("deviceBasebandVersion" .=) <$>+                    _hiDeviceBasebandVersion,+                  ("hardware" .=) <$> _hiHardware])++-- | A device owned by an enterprise. Unless otherwise noted, all fields are+-- read-only and can\'t be modified by enterprises.devices.patch.+--+-- /See:/ 'device' smart constructor.+data Device = Device'+    { _devMemoryInfo                     :: !(Maybe MemoryInfo)+    , _devPolicyCompliant                :: !(Maybe Bool)+    , _devApplicationReports             :: !(Maybe [ApplicationReport])+    , _devPolicyName                     :: !(Maybe Text)+    , _devState                          :: !(Maybe DeviceState)+    , _devAppliedPolicyName              :: !(Maybe Text)+    , _devLastStatusReportTime           :: !(Maybe DateTime')+    , _devDeviceSettings                 :: !(Maybe DeviceSettings)+    , _devEnrollmentTokenName            :: !(Maybe Text)+    , _devManagementMode                 :: !(Maybe DeviceManagementMode)+    , _devHardwareInfo                   :: !(Maybe HardwareInfo)+    , _devPowerManagementEvents          :: !(Maybe [PowerManagementEvent])+    , _devUserName                       :: !(Maybe Text)+    , _devMemoryEvents                   :: !(Maybe [MemoryEvent])+    , _devAPILevel                       :: !(Maybe (Textual Int32))+    , _devUser                           :: !(Maybe User)+    , _devDisabledReason                 :: !(Maybe UserFacingMessage)+    , _devLastPolicyComplianceReportTime :: !(Maybe DateTime')+    , _devEnrollmentTokenData            :: !(Maybe Text)+    , _devName                           :: !(Maybe Text)+    , _devAppliedPolicyVersion           :: !(Maybe (Textual Int64))+    , _devHardwareStatusSamples          :: !(Maybe [HardwareStatus])+    , _devAppliedState                   :: !(Maybe DeviceAppliedState)+    , _devPreviousDeviceNames            :: !(Maybe [Text])+    , _devLastPolicySyncTime             :: !(Maybe DateTime')+    , _devNetworkInfo                    :: !(Maybe NetworkInfo)+    , _devNonComplianceDetails           :: !(Maybe [NonComplianceDetail])+    , _devSoftwareInfo                   :: !(Maybe SoftwareInfo)+    , _devEnrollmentTime                 :: !(Maybe DateTime')+    , _devDisplays                       :: !(Maybe [Display])+    } 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:+--+-- * 'devMemoryInfo'+--+-- * 'devPolicyCompliant'+--+-- * 'devApplicationReports'+--+-- * 'devPolicyName'+--+-- * 'devState'+--+-- * 'devAppliedPolicyName'+--+-- * 'devLastStatusReportTime'+--+-- * 'devDeviceSettings'+--+-- * 'devEnrollmentTokenName'+--+-- * 'devManagementMode'+--+-- * 'devHardwareInfo'+--+-- * 'devPowerManagementEvents'+--+-- * 'devUserName'+--+-- * 'devMemoryEvents'+--+-- * 'devAPILevel'+--+-- * 'devUser'+--+-- * 'devDisabledReason'+--+-- * 'devLastPolicyComplianceReportTime'+--+-- * 'devEnrollmentTokenData'+--+-- * 'devName'+--+-- * 'devAppliedPolicyVersion'+--+-- * 'devHardwareStatusSamples'+--+-- * 'devAppliedState'+--+-- * 'devPreviousDeviceNames'+--+-- * 'devLastPolicySyncTime'+--+-- * 'devNetworkInfo'+--+-- * 'devNonComplianceDetails'+--+-- * 'devSoftwareInfo'+--+-- * 'devEnrollmentTime'+--+-- * 'devDisplays'+device+    :: Device+device =+    Device'+    { _devMemoryInfo = Nothing+    , _devPolicyCompliant = Nothing+    , _devApplicationReports = Nothing+    , _devPolicyName = Nothing+    , _devState = Nothing+    , _devAppliedPolicyName = Nothing+    , _devLastStatusReportTime = Nothing+    , _devDeviceSettings = Nothing+    , _devEnrollmentTokenName = Nothing+    , _devManagementMode = Nothing+    , _devHardwareInfo = Nothing+    , _devPowerManagementEvents = Nothing+    , _devUserName = Nothing+    , _devMemoryEvents = Nothing+    , _devAPILevel = Nothing+    , _devUser = Nothing+    , _devDisabledReason = Nothing+    , _devLastPolicyComplianceReportTime = Nothing+    , _devEnrollmentTokenData = Nothing+    , _devName = Nothing+    , _devAppliedPolicyVersion = Nothing+    , _devHardwareStatusSamples = Nothing+    , _devAppliedState = Nothing+    , _devPreviousDeviceNames = Nothing+    , _devLastPolicySyncTime = Nothing+    , _devNetworkInfo = Nothing+    , _devNonComplianceDetails = Nothing+    , _devSoftwareInfo = Nothing+    , _devEnrollmentTime = Nothing+    , _devDisplays = Nothing+    }++-- | Memory information. This information is only available if+-- memoryInfoEnabled is true in the device\'s policy.+devMemoryInfo :: Lens' Device (Maybe MemoryInfo)+devMemoryInfo+  = lens _devMemoryInfo+      (\ s a -> s{_devMemoryInfo = a})++-- | Whether the device is compliant with its policy.+devPolicyCompliant :: Lens' Device (Maybe Bool)+devPolicyCompliant+  = lens _devPolicyCompliant+      (\ s a -> s{_devPolicyCompliant = a})++-- | Reports for apps installed on the device. This information is only+-- available when application_reports_enabled is true in the device\'s+-- policy.+devApplicationReports :: Lens' Device [ApplicationReport]+devApplicationReports+  = lens _devApplicationReports+      (\ s a -> s{_devApplicationReports = a})+      . _Default+      . _Coerce++-- | The name of the policy applied to the device, in the form+-- enterprises\/{enterpriseId}\/policies\/{policyId}. If not specified, the+-- policy_name for the device\'s user is applied. This field can be+-- modified by a patch request. You can specify only the policyId when+-- calling enterprises.devices.patch, as long as the policyId doesn’t+-- contain any slashes. The rest of the policy name is inferred.+devPolicyName :: Lens' Device (Maybe Text)+devPolicyName+  = lens _devPolicyName+      (\ s a -> s{_devPolicyName = a})++-- | The state to be applied to the device. This field can be modified by a+-- patch request. Note that when calling enterprises.devices.patch, ACTIVE+-- and DISABLED are the only allowable values. To enter the device into a+-- DELETED state, call enterprises.devices.delete.+devState :: Lens' Device (Maybe DeviceState)+devState = lens _devState (\ s a -> s{_devState = a})++-- | The name of the policy currently applied to the device.+devAppliedPolicyName :: Lens' Device (Maybe Text)+devAppliedPolicyName+  = lens _devAppliedPolicyName+      (\ s a -> s{_devAppliedPolicyName = a})++-- | The last time the device sent a status report.+devLastStatusReportTime :: Lens' Device (Maybe UTCTime)+devLastStatusReportTime+  = lens _devLastStatusReportTime+      (\ s a -> s{_devLastStatusReportTime = a})+      . mapping _DateTime++-- | Device settings information. This information is only available if+-- deviceSettingsEnabled is true in the device\'s policy.+devDeviceSettings :: Lens' Device (Maybe DeviceSettings)+devDeviceSettings+  = lens _devDeviceSettings+      (\ s a -> s{_devDeviceSettings = a})++-- | If the device was enrolled with an enrollment token, this field contains+-- the name of the token.+devEnrollmentTokenName :: Lens' Device (Maybe Text)+devEnrollmentTokenName+  = lens _devEnrollmentTokenName+      (\ s a -> s{_devEnrollmentTokenName = a})++-- | The type of management mode Android Device Policy takes on the device.+-- This influences which policy settings are supported.+devManagementMode :: Lens' Device (Maybe DeviceManagementMode)+devManagementMode+  = lens _devManagementMode+      (\ s a -> s{_devManagementMode = a})++-- | Detailed information about the device hardware.+devHardwareInfo :: Lens' Device (Maybe HardwareInfo)+devHardwareInfo+  = lens _devHardwareInfo+      (\ s a -> s{_devHardwareInfo = a})++-- | Power management events on the device in chronological order. This+-- information is only available if powerManagementEventsEnabled is true in+-- the device\'s policy.+devPowerManagementEvents :: Lens' Device [PowerManagementEvent]+devPowerManagementEvents+  = lens _devPowerManagementEvents+      (\ s a -> s{_devPowerManagementEvents = a})+      . _Default+      . _Coerce++-- | The resource name of the user that owns this device in the form+-- enterprises\/{enterpriseId}\/users\/{userId}.+devUserName :: Lens' Device (Maybe Text)+devUserName+  = lens _devUserName (\ s a -> s{_devUserName = a})++-- | Events related to memory and storage measurements in chronological+-- order. This information is only available if memoryInfoEnabled is true+-- in the device\'s policy.+devMemoryEvents :: Lens' Device [MemoryEvent]+devMemoryEvents+  = lens _devMemoryEvents+      (\ s a -> s{_devMemoryEvents = a})+      . _Default+      . _Coerce++-- | The API level of the Android platform version running on the device.+devAPILevel :: Lens' Device (Maybe Int32)+devAPILevel+  = lens _devAPILevel (\ s a -> s{_devAPILevel = a}) .+      mapping _Coerce++-- | The user who owns the device.+devUser :: Lens' Device (Maybe User)+devUser = lens _devUser (\ s a -> s{_devUser = a})++-- | If the device state is DISABLED, an optional message that is displayed+-- on the device indicating the reason the device is disabled. This field+-- can be modified by a patch request.+devDisabledReason :: Lens' Device (Maybe UserFacingMessage)+devDisabledReason+  = lens _devDisabledReason+      (\ s a -> s{_devDisabledReason = a})++-- | Deprecated.+devLastPolicyComplianceReportTime :: Lens' Device (Maybe UTCTime)+devLastPolicyComplianceReportTime+  = lens _devLastPolicyComplianceReportTime+      (\ s a -> s{_devLastPolicyComplianceReportTime = a})+      . mapping _DateTime++-- | If the device was enrolled with an enrollment token with additional data+-- provided, this field contains that data.+devEnrollmentTokenData :: Lens' Device (Maybe Text)+devEnrollmentTokenData+  = lens _devEnrollmentTokenData+      (\ s a -> s{_devEnrollmentTokenData = a})++-- | The name of the device in the form+-- enterprises\/{enterpriseId}\/devices\/{deviceId}.+devName :: Lens' Device (Maybe Text)+devName = lens _devName (\ s a -> s{_devName = a})++-- | The version of the policy currently applied to the device.+devAppliedPolicyVersion :: Lens' Device (Maybe Int64)+devAppliedPolicyVersion+  = lens _devAppliedPolicyVersion+      (\ s a -> s{_devAppliedPolicyVersion = a})+      . mapping _Coerce++-- | Hardware status samples in chronological order. This information is only+-- available if hardwareStatusEnabled is true in the device\'s policy.+devHardwareStatusSamples :: Lens' Device [HardwareStatus]+devHardwareStatusSamples+  = lens _devHardwareStatusSamples+      (\ s a -> s{_devHardwareStatusSamples = a})+      . _Default+      . _Coerce++-- | The state currently applied to the device.+devAppliedState :: Lens' Device (Maybe DeviceAppliedState)+devAppliedState+  = lens _devAppliedState+      (\ s a -> s{_devAppliedState = a})++-- | If the same physical device has been enrolled multiple times, this field+-- contains its previous device names. The serial number is used as the+-- unique identifier to determine if the same physical device has enrolled+-- previously. The names are in chronological order.+devPreviousDeviceNames :: Lens' Device [Text]+devPreviousDeviceNames+  = lens _devPreviousDeviceNames+      (\ s a -> s{_devPreviousDeviceNames = a})+      . _Default+      . _Coerce++-- | The last time the device fetched its policy.+devLastPolicySyncTime :: Lens' Device (Maybe UTCTime)+devLastPolicySyncTime+  = lens _devLastPolicySyncTime+      (\ s a -> s{_devLastPolicySyncTime = a})+      . mapping _DateTime++-- | Device network information. This information is only available if+-- networkInfoEnabled is true in the device\'s policy.+devNetworkInfo :: Lens' Device (Maybe NetworkInfo)+devNetworkInfo+  = lens _devNetworkInfo+      (\ s a -> s{_devNetworkInfo = a})++-- | Details about policy settings that the device is not compliant with.+devNonComplianceDetails :: Lens' Device [NonComplianceDetail]+devNonComplianceDetails+  = lens _devNonComplianceDetails+      (\ s a -> s{_devNonComplianceDetails = a})+      . _Default+      . _Coerce++-- | Detailed information about the device software. This information is only+-- available if softwareInfoEnabled is true in the device\'s policy.+devSoftwareInfo :: Lens' Device (Maybe SoftwareInfo)+devSoftwareInfo+  = lens _devSoftwareInfo+      (\ s a -> s{_devSoftwareInfo = a})++-- | The time of device enrollment.+devEnrollmentTime :: Lens' Device (Maybe UTCTime)+devEnrollmentTime+  = lens _devEnrollmentTime+      (\ s a -> s{_devEnrollmentTime = a})+      . mapping _DateTime++-- | Detailed information about displays on the device. This information is+-- only available if displayInfoEnabled is true in the device\'s policy.+devDisplays :: Lens' Device [Display]+devDisplays+  = lens _devDisplays (\ s a -> s{_devDisplays = a}) .+      _Default+      . _Coerce++instance FromJSON Device where+        parseJSON+          = withObject "Device"+              (\ o ->+                 Device' <$>+                   (o .:? "memoryInfo") <*> (o .:? "policyCompliant")+                     <*> (o .:? "applicationReports" .!= mempty)+                     <*> (o .:? "policyName")+                     <*> (o .:? "state")+                     <*> (o .:? "appliedPolicyName")+                     <*> (o .:? "lastStatusReportTime")+                     <*> (o .:? "deviceSettings")+                     <*> (o .:? "enrollmentTokenName")+                     <*> (o .:? "managementMode")+                     <*> (o .:? "hardwareInfo")+                     <*> (o .:? "powerManagementEvents" .!= mempty)+                     <*> (o .:? "userName")+                     <*> (o .:? "memoryEvents" .!= mempty)+                     <*> (o .:? "apiLevel")+                     <*> (o .:? "user")+                     <*> (o .:? "disabledReason")+                     <*> (o .:? "lastPolicyComplianceReportTime")+                     <*> (o .:? "enrollmentTokenData")+                     <*> (o .:? "name")+                     <*> (o .:? "appliedPolicyVersion")+                     <*> (o .:? "hardwareStatusSamples" .!= mempty)+                     <*> (o .:? "appliedState")+                     <*> (o .:? "previousDeviceNames" .!= mempty)+                     <*> (o .:? "lastPolicySyncTime")+                     <*> (o .:? "networkInfo")+                     <*> (o .:? "nonComplianceDetails" .!= mempty)+                     <*> (o .:? "softwareInfo")+                     <*> (o .:? "enrollmentTime")+                     <*> (o .:? "displays" .!= mempty))++instance ToJSON Device where+        toJSON Device'{..}+          = object+              (catMaybes+                 [("memoryInfo" .=) <$> _devMemoryInfo,+                  ("policyCompliant" .=) <$> _devPolicyCompliant,+                  ("applicationReports" .=) <$> _devApplicationReports,+                  ("policyName" .=) <$> _devPolicyName,+                  ("state" .=) <$> _devState,+                  ("appliedPolicyName" .=) <$> _devAppliedPolicyName,+                  ("lastStatusReportTime" .=) <$>+                    _devLastStatusReportTime,+                  ("deviceSettings" .=) <$> _devDeviceSettings,+                  ("enrollmentTokenName" .=) <$>+                    _devEnrollmentTokenName,+                  ("managementMode" .=) <$> _devManagementMode,+                  ("hardwareInfo" .=) <$> _devHardwareInfo,+                  ("powerManagementEvents" .=) <$>+                    _devPowerManagementEvents,+                  ("userName" .=) <$> _devUserName,+                  ("memoryEvents" .=) <$> _devMemoryEvents,+                  ("apiLevel" .=) <$> _devAPILevel,+                  ("user" .=) <$> _devUser,+                  ("disabledReason" .=) <$> _devDisabledReason,+                  ("lastPolicyComplianceReportTime" .=) <$>+                    _devLastPolicyComplianceReportTime,+                  ("enrollmentTokenData" .=) <$>+                    _devEnrollmentTokenData,+                  ("name" .=) <$> _devName,+                  ("appliedPolicyVersion" .=) <$>+                    _devAppliedPolicyVersion,+                  ("hardwareStatusSamples" .=) <$>+                    _devHardwareStatusSamples,+                  ("appliedState" .=) <$> _devAppliedState,+                  ("previousDeviceNames" .=) <$>+                    _devPreviousDeviceNames,+                  ("lastPolicySyncTime" .=) <$> _devLastPolicySyncTime,+                  ("networkInfo" .=) <$> _devNetworkInfo,+                  ("nonComplianceDetails" .=) <$>+                    _devNonComplianceDetails,+                  ("softwareInfo" .=) <$> _devSoftwareInfo,+                  ("enrollmentTime" .=) <$> _devEnrollmentTime,+                  ("displays" .=) <$> _devDisplays])++--+-- /See:/ 'statusDetailsItem' smart constructor.+newtype StatusDetailsItem = StatusDetailsItem'+    { _sdiAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'StatusDetailsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdiAddtional'+statusDetailsItem+    :: HashMap Text JSONValue -- ^ 'sdiAddtional'+    -> StatusDetailsItem+statusDetailsItem pSdiAddtional_ =+    StatusDetailsItem'+    { _sdiAddtional = _Coerce # pSdiAddtional_+    }++-- | Properties of the object. Contains field \'type with type URL.+sdiAddtional :: Lens' StatusDetailsItem (HashMap Text JSONValue)+sdiAddtional+  = lens _sdiAddtional (\ s a -> s{_sdiAddtional = a})+      . _Coerce++instance FromJSON StatusDetailsItem where+        parseJSON+          = withObject "StatusDetailsItem"+              (\ o -> StatusDetailsItem' <$> (parseJSONObject o))++instance ToJSON StatusDetailsItem where+        toJSON = toJSON . _sdiAddtional++-- | An entry of a managed property.+--+-- /See:/ 'managedPropertyEntry' smart constructor.+data ManagedPropertyEntry = ManagedPropertyEntry'+    { _mpeValue :: !(Maybe Text)+    , _mpeName  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ManagedPropertyEntry' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mpeValue'+--+-- * 'mpeName'+managedPropertyEntry+    :: ManagedPropertyEntry+managedPropertyEntry =+    ManagedPropertyEntry'+    { _mpeValue = Nothing+    , _mpeName = Nothing+    }++-- | The machine-readable value of the entry, which should be used in the+-- configuration. Not localized.+mpeValue :: Lens' ManagedPropertyEntry (Maybe Text)+mpeValue = lens _mpeValue (\ s a -> s{_mpeValue = a})++-- | The human-readable name of the value. Localized.+mpeName :: Lens' ManagedPropertyEntry (Maybe Text)+mpeName = lens _mpeName (\ s a -> s{_mpeName = a})++instance FromJSON ManagedPropertyEntry where+        parseJSON+          = withObject "ManagedPropertyEntry"+              (\ o ->+                 ManagedPropertyEntry' <$>+                   (o .:? "value") <*> (o .:? "name"))++instance ToJSON ManagedPropertyEntry where+        toJSON ManagedPropertyEntry'{..}+          = object+              (catMaybes+                 [("value" .=) <$> _mpeValue,+                  ("name" .=) <$> _mpeName])++-- | A rule for automatically choosing a private key and certificate to+-- authenticate the device to a server.+--+-- /See:/ 'choosePrivateKeyRule' smart constructor.+data ChoosePrivateKeyRule = ChoosePrivateKeyRule'+    { _cpkrPrivateKeyAlias :: !(Maybe Text)+    , _cpkrURLPattern      :: !(Maybe Text)+    , _cpkrPackageNames    :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChoosePrivateKeyRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpkrPrivateKeyAlias'+--+-- * 'cpkrURLPattern'+--+-- * 'cpkrPackageNames'+choosePrivateKeyRule+    :: ChoosePrivateKeyRule+choosePrivateKeyRule =+    ChoosePrivateKeyRule'+    { _cpkrPrivateKeyAlias = Nothing+    , _cpkrURLPattern = Nothing+    , _cpkrPackageNames = Nothing+    }++-- | The alias of the private key to be used.+cpkrPrivateKeyAlias :: Lens' ChoosePrivateKeyRule (Maybe Text)+cpkrPrivateKeyAlias+  = lens _cpkrPrivateKeyAlias+      (\ s a -> s{_cpkrPrivateKeyAlias = a})++-- | The URL pattern to match against the URL of the outgoing request. The+-- pattern may contain asterisk (*) wildcards. Any URL is matched if+-- unspecified.+cpkrURLPattern :: Lens' ChoosePrivateKeyRule (Maybe Text)+cpkrURLPattern+  = lens _cpkrURLPattern+      (\ s a -> s{_cpkrURLPattern = a})++-- | The package names for which outgoing requests are subject to this rule.+-- If no package names are specified, then the rule applies to all+-- packages. For each package name listed, the rule applies to that package+-- and all other packages that shared the same Android UID. The SHA256 hash+-- of the signing key signatures of each package_name will be verified+-- against those provided by Play+cpkrPackageNames :: Lens' ChoosePrivateKeyRule [Text]+cpkrPackageNames+  = lens _cpkrPackageNames+      (\ s a -> s{_cpkrPackageNames = a})+      . _Default+      . _Coerce++instance FromJSON ChoosePrivateKeyRule where+        parseJSON+          = withObject "ChoosePrivateKeyRule"+              (\ o ->+                 ChoosePrivateKeyRule' <$>+                   (o .:? "privateKeyAlias") <*> (o .:? "urlPattern")+                     <*> (o .:? "packageNames" .!= mempty))++instance ToJSON ChoosePrivateKeyRule where+        toJSON ChoosePrivateKeyRule'{..}+          = object+              (catMaybes+                 [("privateKeyAlias" .=) <$> _cpkrPrivateKeyAlias,+                  ("urlPattern" .=) <$> _cpkrURLPattern,+                  ("packageNames" .=) <$> _cpkrPackageNames])++-- | A map containing pairs, where locale is a well-formed BCP 47 language+-- (https:\/\/www.w3.org\/International\/articles\/language-tags\/) code,+-- such as en-US, es-ES, or fr.+--+-- /See:/ 'userFacingMessageLocalizedMessages' smart constructor.+newtype UserFacingMessageLocalizedMessages = UserFacingMessageLocalizedMessages'+    { _ufmlmAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserFacingMessageLocalizedMessages' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ufmlmAddtional'+userFacingMessageLocalizedMessages+    :: HashMap Text Text -- ^ 'ufmlmAddtional'+    -> UserFacingMessageLocalizedMessages+userFacingMessageLocalizedMessages pUfmlmAddtional_ =+    UserFacingMessageLocalizedMessages'+    { _ufmlmAddtional = _Coerce # pUfmlmAddtional_+    }++ufmlmAddtional :: Lens' UserFacingMessageLocalizedMessages (HashMap Text Text)+ufmlmAddtional+  = lens _ufmlmAddtional+      (\ s a -> s{_ufmlmAddtional = a})+      . _Coerce++instance FromJSON UserFacingMessageLocalizedMessages+         where+        parseJSON+          = withObject "UserFacingMessageLocalizedMessages"+              (\ o ->+                 UserFacingMessageLocalizedMessages' <$>+                   (parseJSONObject o))++instance ToJSON UserFacingMessageLocalizedMessages+         where+        toJSON = toJSON . _ufmlmAddtional++-- | A user belonging to an enterprise.+--+-- /See:/ 'user' smart constructor.+newtype User = User'+    { _uAccountIdentifier :: 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'+user+    :: User+user =+    User'+    { _uAccountIdentifier = Nothing+    }++-- | A unique identifier you create for this user, such as user342 or+-- asset#44418. This field must be set when the user is created and can\'t+-- be updated. This field must not contain personally identifiable+-- information (PII). This identifier must be 1024 characters or less;+-- otherwise, the update policy request will fail.+uAccountIdentifier :: Lens' User (Maybe Text)+uAccountIdentifier+  = lens _uAccountIdentifier+      (\ s a -> s{_uAccountIdentifier = a})++instance FromJSON User where+        parseJSON+          = withObject "User"+              (\ o -> User' <$> (o .:? "accountIdentifier"))++instance ToJSON User where+        toJSON User'{..}+          = object+              (catMaybes+                 [("accountIdentifier" .=) <$> _uAccountIdentifier])++-- | Configuration for managing system updates+--+-- /See:/ 'systemUpdate' smart constructor.+data SystemUpdate = SystemUpdate'+    { _suEndMinutes   :: !(Maybe (Textual Int32))+    , _suStartMinutes :: !(Maybe (Textual Int32))+    , _suType         :: !(Maybe SystemUpdateType)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SystemUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'suEndMinutes'+--+-- * 'suStartMinutes'+--+-- * 'suType'+systemUpdate+    :: SystemUpdate+systemUpdate =+    SystemUpdate'+    { _suEndMinutes = Nothing+    , _suStartMinutes = Nothing+    , _suType = Nothing+    }++-- | If the type is WINDOWED, the end of the maintenance window, measured as+-- the number of minutes after midnight in device\'s local time. This value+-- must be between 0 and 1439, inclusive. If this value is less than+-- start_minutes, then the maintenance window spans midnight. If the+-- maintenance window specified is smaller than 30 minutes, the actual+-- window is extended to 30 minutes beyond the start time.+suEndMinutes :: Lens' SystemUpdate (Maybe Int32)+suEndMinutes+  = lens _suEndMinutes (\ s a -> s{_suEndMinutes = a})+      . mapping _Coerce++-- | If the type is WINDOWED, the start of the maintenance window, measured+-- as the number of minutes after midnight in the device\'s local time.+-- This value must be between 0 and 1439, inclusive.+suStartMinutes :: Lens' SystemUpdate (Maybe Int32)+suStartMinutes+  = lens _suStartMinutes+      (\ s a -> s{_suStartMinutes = a})+      . mapping _Coerce++-- | The type of system update to configure.+suType :: Lens' SystemUpdate (Maybe SystemUpdateType)+suType = lens _suType (\ s a -> s{_suType = a})++instance FromJSON SystemUpdate where+        parseJSON+          = withObject "SystemUpdate"+              (\ o ->+                 SystemUpdate' <$>+                   (o .:? "endMinutes") <*> (o .:? "startMinutes") <*>+                     (o .:? "type"))++instance ToJSON SystemUpdate where+        toJSON SystemUpdate'{..}+          = object+              (catMaybes+                 [("endMinutes" .=) <$> _suEndMinutes,+                  ("startMinutes" .=) <$> _suStartMinutes,+                  ("type" .=) <$> _suType])++-- | Information reported about an installed app.+--+-- /See:/ 'applicationReport' smart constructor.+data ApplicationReport = ApplicationReport'+    { _arVersionCode                :: !(Maybe (Textual Int32))+    , _arSigningKeyCertFingerprints :: !(Maybe [Text])+    , _arState                      :: !(Maybe ApplicationReportState)+    , _arVersionName                :: !(Maybe Text)+    , _arPackageName                :: !(Maybe Text)+    , _arPackageSha256Hash          :: !(Maybe Text)+    , _arApplicationSource          :: !(Maybe ApplicationReportApplicationSource)+    , _arEvents                     :: !(Maybe [ApplicationEvent])+    , _arDisplayName                :: !(Maybe Text)+    , _arInstallerPackageName       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ApplicationReport' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'arVersionCode'+--+-- * 'arSigningKeyCertFingerprints'+--+-- * 'arState'+--+-- * 'arVersionName'+--+-- * 'arPackageName'+--+-- * 'arPackageSha256Hash'+--+-- * 'arApplicationSource'+--+-- * 'arEvents'+--+-- * 'arDisplayName'+--+-- * 'arInstallerPackageName'+applicationReport+    :: ApplicationReport+applicationReport =+    ApplicationReport'+    { _arVersionCode = Nothing+    , _arSigningKeyCertFingerprints = Nothing+    , _arState = Nothing+    , _arVersionName = Nothing+    , _arPackageName = Nothing+    , _arPackageSha256Hash = Nothing+    , _arApplicationSource = Nothing+    , _arEvents = Nothing+    , _arDisplayName = Nothing+    , _arInstallerPackageName = Nothing+    }++-- | The app version code, which can be used to determine whether one version+-- is more recent than another.+arVersionCode :: Lens' ApplicationReport (Maybe Int32)+arVersionCode+  = lens _arVersionCode+      (\ s a -> s{_arVersionCode = a})+      . mapping _Coerce++-- | The SHA-1 hash of each android.content.pm.Signature+-- (https:\/\/developer.android.com\/reference\/android\/content\/pm\/Signature.html)+-- associated with the app package. Each byte of each hash value is+-- represented as a two-digit hexadecimal number.+arSigningKeyCertFingerprints :: Lens' ApplicationReport [Text]+arSigningKeyCertFingerprints+  = lens _arSigningKeyCertFingerprints+      (\ s a -> s{_arSigningKeyCertFingerprints = a})+      . _Default+      . _Coerce++-- | Application state.+arState :: Lens' ApplicationReport (Maybe ApplicationReportState)+arState = lens _arState (\ s a -> s{_arState = a})++-- | The app version as displayed to the user.+arVersionName :: Lens' ApplicationReport (Maybe Text)+arVersionName+  = lens _arVersionName+      (\ s a -> s{_arVersionName = a})++-- | Package name of the app.+arPackageName :: Lens' ApplicationReport (Maybe Text)+arPackageName+  = lens _arPackageName+      (\ s a -> s{_arPackageName = a})++-- | The SHA-256 hash of the app\'s APK file, which can be used to verify the+-- app hasn\'t been modified. Each byte of the hash value is represented as+-- a two-digit hexadecimal number.+arPackageSha256Hash :: Lens' ApplicationReport (Maybe Text)+arPackageSha256Hash+  = lens _arPackageSha256Hash+      (\ s a -> s{_arPackageSha256Hash = a})++-- | The source of the package.+arApplicationSource :: Lens' ApplicationReport (Maybe ApplicationReportApplicationSource)+arApplicationSource+  = lens _arApplicationSource+      (\ s a -> s{_arApplicationSource = a})++-- | List of app events. The most recent 20 events are stored in the list.+arEvents :: Lens' ApplicationReport [ApplicationEvent]+arEvents+  = lens _arEvents (\ s a -> s{_arEvents = a}) .+      _Default+      . _Coerce++-- | The display name of the app.+arDisplayName :: Lens' ApplicationReport (Maybe Text)+arDisplayName+  = lens _arDisplayName+      (\ s a -> s{_arDisplayName = a})++-- | The package name of the app that installed this app.+arInstallerPackageName :: Lens' ApplicationReport (Maybe Text)+arInstallerPackageName+  = lens _arInstallerPackageName+      (\ s a -> s{_arInstallerPackageName = a})++instance FromJSON ApplicationReport where+        parseJSON+          = withObject "ApplicationReport"+              (\ o ->+                 ApplicationReport' <$>+                   (o .:? "versionCode") <*>+                     (o .:? "signingKeyCertFingerprints" .!= mempty)+                     <*> (o .:? "state")+                     <*> (o .:? "versionName")+                     <*> (o .:? "packageName")+                     <*> (o .:? "packageSha256Hash")+                     <*> (o .:? "applicationSource")+                     <*> (o .:? "events" .!= mempty)+                     <*> (o .:? "displayName")+                     <*> (o .:? "installerPackageName"))++instance ToJSON ApplicationReport where+        toJSON ApplicationReport'{..}+          = object+              (catMaybes+                 [("versionCode" .=) <$> _arVersionCode,+                  ("signingKeyCertFingerprints" .=) <$>+                    _arSigningKeyCertFingerprints,+                  ("state" .=) <$> _arState,+                  ("versionName" .=) <$> _arVersionName,+                  ("packageName" .=) <$> _arPackageName,+                  ("packageSha256Hash" .=) <$> _arPackageSha256Hash,+                  ("applicationSource" .=) <$> _arApplicationSource,+                  ("events" .=) <$> _arEvents,+                  ("displayName" .=) <$> _arDisplayName,+                  ("installerPackageName" .=) <$>+                    _arInstallerPackageName])++-- | An enrollment token.+--+-- /See:/ 'enrollmentToken' smart constructor.+data EnrollmentToken = EnrollmentToken'+    { _etPolicyName          :: !(Maybe Text)+    , _etValue               :: !(Maybe Text)+    , _etQrCode              :: !(Maybe Text)+    , _etAdditionalData      :: !(Maybe Text)+    , _etUser                :: !(Maybe User)+    , _etName                :: !(Maybe Text)+    , _etOneTimeOnly         :: !(Maybe Bool)+    , _etExpirationTimestamp :: !(Maybe DateTime')+    , _etDuration            :: !(Maybe GDuration)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnrollmentToken' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'etPolicyName'+--+-- * 'etValue'+--+-- * 'etQrCode'+--+-- * 'etAdditionalData'+--+-- * 'etUser'+--+-- * 'etName'+--+-- * 'etOneTimeOnly'+--+-- * 'etExpirationTimestamp'+--+-- * 'etDuration'+enrollmentToken+    :: EnrollmentToken+enrollmentToken =+    EnrollmentToken'+    { _etPolicyName = Nothing+    , _etValue = Nothing+    , _etQrCode = Nothing+    , _etAdditionalData = Nothing+    , _etUser = Nothing+    , _etName = Nothing+    , _etOneTimeOnly = Nothing+    , _etExpirationTimestamp = Nothing+    , _etDuration = Nothing+    }++-- | The name of the policy initially applied to the enrolled device, in the+-- form enterprises\/{enterpriseId}\/policies\/{policyId}. If not+-- specified, the policy_name for the device’s user is applied. If+-- user_name is also not specified,+-- enterprises\/{enterpriseId}\/policies\/default is applied by default.+-- When updating this field, you can specify only the policyId as long as+-- the policyId doesn’t contain any slashes. The rest of the policy name+-- will be inferred.+etPolicyName :: Lens' EnrollmentToken (Maybe Text)+etPolicyName+  = lens _etPolicyName (\ s a -> s{_etPolicyName = a})++-- | The token value that\'s passed to the device and authorizes the device+-- to enroll. This is a read-only field generated by the server.+etValue :: Lens' EnrollmentToken (Maybe Text)+etValue = lens _etValue (\ s a -> s{_etValue = a})++-- | A JSON string whose UTF-8 representation can be used to generate a QR+-- code to enroll a device with this enrollment token. To enroll a device+-- using NFC, the NFC record must contain a serialized java.util.Properties+-- representation of the properties in the JSON.+etQrCode :: Lens' EnrollmentToken (Maybe Text)+etQrCode = lens _etQrCode (\ s a -> s{_etQrCode = a})++-- | Optional, arbitrary data associated with the enrollment token. This+-- could contain, for example, the ID of an org unit the device is assigned+-- to after enrollment. After a device enrolls with the token, this data+-- will be exposed in the enrollment_token_data field of the Device+-- resource. The data must be 1024 characters or less; otherwise, the+-- creation request will fail.+etAdditionalData :: Lens' EnrollmentToken (Maybe Text)+etAdditionalData+  = lens _etAdditionalData+      (\ s a -> s{_etAdditionalData = a})++-- | The user associated with this enrollment token. If it\'s specified when+-- the enrollment token is created and the user does not exist, the user+-- will be created. This field must not contain personally identifiable+-- information. Only the account_identifier field needs to be set.+etUser :: Lens' EnrollmentToken (Maybe User)+etUser = lens _etUser (\ s a -> s{_etUser = a})++-- | The name of the enrollment token, which is generated by the server+-- during creation, in the form+-- enterprises\/{enterpriseId}\/enrollmentTokens\/{enrollmentTokenId}.+etName :: Lens' EnrollmentToken (Maybe Text)+etName = lens _etName (\ s a -> s{_etName = a})++-- | Whether the enrollment token is for one time use only. If the flag is+-- set to true, only one device can use it for registration.+etOneTimeOnly :: Lens' EnrollmentToken (Maybe Bool)+etOneTimeOnly+  = lens _etOneTimeOnly+      (\ s a -> s{_etOneTimeOnly = a})++-- | The expiration time of the token. This is a read-only field generated by+-- the server.+etExpirationTimestamp :: Lens' EnrollmentToken (Maybe UTCTime)+etExpirationTimestamp+  = lens _etExpirationTimestamp+      (\ s a -> s{_etExpirationTimestamp = a})+      . mapping _DateTime++-- | The length of time the enrollment token is valid, ranging from 1 minute+-- to 30 days. If not specified, the default duration is 1 hour.+etDuration :: Lens' EnrollmentToken (Maybe Scientific)+etDuration+  = lens _etDuration (\ s a -> s{_etDuration = a}) .+      mapping _GDuration++instance FromJSON EnrollmentToken where+        parseJSON+          = withObject "EnrollmentToken"+              (\ o ->+                 EnrollmentToken' <$>+                   (o .:? "policyName") <*> (o .:? "value") <*>+                     (o .:? "qrCode")+                     <*> (o .:? "additionalData")+                     <*> (o .:? "user")+                     <*> (o .:? "name")+                     <*> (o .:? "oneTimeOnly")+                     <*> (o .:? "expirationTimestamp")+                     <*> (o .:? "duration"))++instance ToJSON EnrollmentToken where+        toJSON EnrollmentToken'{..}+          = object+              (catMaybes+                 [("policyName" .=) <$> _etPolicyName,+                  ("value" .=) <$> _etValue,+                  ("qrCode" .=) <$> _etQrCode,+                  ("additionalData" .=) <$> _etAdditionalData,+                  ("user" .=) <$> _etUser, ("name" .=) <$> _etName,+                  ("oneTimeOnly" .=) <$> _etOneTimeOnly,+                  ("expirationTimestamp" .=) <$>+                    _etExpirationTimestamp,+                  ("duration" .=) <$> _etDuration])++-- | Managed configuration applied to the app. The format for the+-- configuration is dictated by the ManagedProperty values supported by the+-- app. Each field name in the managed configuration must match the key+-- field of the ManagedProperty. The field value must be compatible with+-- the type of the ManagedProperty:+-- >   -------------- ------------------+-- >   /type/         /JSON value/+-- >   BOOL           true or false+-- >   STRING         string+-- >   INTEGER        number+-- >   CHOICE         string+-- >   MULTISELECT    array of strings+-- >   HIDDEN         string+-- >   BUNDLE_ARRAY   array of objects+-- >   -------------- ------------------+--+-- /See:/ 'applicationPolicyManagedConfiguration' smart constructor.+newtype ApplicationPolicyManagedConfiguration = ApplicationPolicyManagedConfiguration'+    { _apmcAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ApplicationPolicyManagedConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'apmcAddtional'+applicationPolicyManagedConfiguration+    :: HashMap Text JSONValue -- ^ 'apmcAddtional'+    -> ApplicationPolicyManagedConfiguration+applicationPolicyManagedConfiguration pApmcAddtional_ =+    ApplicationPolicyManagedConfiguration'+    { _apmcAddtional = _Coerce # pApmcAddtional_+    }++-- | Properties of the object.+apmcAddtional :: Lens' ApplicationPolicyManagedConfiguration (HashMap Text JSONValue)+apmcAddtional+  = lens _apmcAddtional+      (\ s a -> s{_apmcAddtional = a})+      . _Coerce++instance FromJSON+         ApplicationPolicyManagedConfiguration where+        parseJSON+          = withObject "ApplicationPolicyManagedConfiguration"+              (\ o ->+                 ApplicationPolicyManagedConfiguration' <$>+                   (parseJSONObject o))++instance ToJSON ApplicationPolicyManagedConfiguration+         where+        toJSON = toJSON . _apmcAddtional++-- | Settings controlling the behavior of status reports.+--+-- /See:/ 'statusReportingSettings' smart constructor.+data StatusReportingSettings = StatusReportingSettings'+    { _srsSoftwareInfoEnabled          :: !(Maybe Bool)+    , _srsHardwareStatusEnabled        :: !(Maybe Bool)+    , _srsPowerManagementEventsEnabled :: !(Maybe Bool)+    , _srsDisplayInfoEnabled           :: !(Maybe Bool)+    , _srsApplicationReportsEnabled    :: !(Maybe Bool)+    , _srsMemoryInfoEnabled            :: !(Maybe Bool)+    , _srsNetworkInfoEnabled           :: !(Maybe Bool)+    , _srsDeviceSettingsEnabled        :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'StatusReportingSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srsSoftwareInfoEnabled'+--+-- * 'srsHardwareStatusEnabled'+--+-- * 'srsPowerManagementEventsEnabled'+--+-- * 'srsDisplayInfoEnabled'+--+-- * 'srsApplicationReportsEnabled'+--+-- * 'srsMemoryInfoEnabled'+--+-- * 'srsNetworkInfoEnabled'+--+-- * 'srsDeviceSettingsEnabled'+statusReportingSettings+    :: StatusReportingSettings+statusReportingSettings =+    StatusReportingSettings'+    { _srsSoftwareInfoEnabled = Nothing+    , _srsHardwareStatusEnabled = Nothing+    , _srsPowerManagementEventsEnabled = Nothing+    , _srsDisplayInfoEnabled = Nothing+    , _srsApplicationReportsEnabled = Nothing+    , _srsMemoryInfoEnabled = Nothing+    , _srsNetworkInfoEnabled = Nothing+    , _srsDeviceSettingsEnabled = Nothing+    }++-- | Whether software info reporting is enabled.+srsSoftwareInfoEnabled :: Lens' StatusReportingSettings (Maybe Bool)+srsSoftwareInfoEnabled+  = lens _srsSoftwareInfoEnabled+      (\ s a -> s{_srsSoftwareInfoEnabled = a})++-- | Whether hardware status reporting is enabled.+srsHardwareStatusEnabled :: Lens' StatusReportingSettings (Maybe Bool)+srsHardwareStatusEnabled+  = lens _srsHardwareStatusEnabled+      (\ s a -> s{_srsHardwareStatusEnabled = a})++-- | Whether power management event reporting is enabled.+srsPowerManagementEventsEnabled :: Lens' StatusReportingSettings (Maybe Bool)+srsPowerManagementEventsEnabled+  = lens _srsPowerManagementEventsEnabled+      (\ s a -> s{_srsPowerManagementEventsEnabled = a})++-- | Whether displays reporting is enabled.+srsDisplayInfoEnabled :: Lens' StatusReportingSettings (Maybe Bool)+srsDisplayInfoEnabled+  = lens _srsDisplayInfoEnabled+      (\ s a -> s{_srsDisplayInfoEnabled = a})++-- | Whether app reports are enabled.+srsApplicationReportsEnabled :: Lens' StatusReportingSettings (Maybe Bool)+srsApplicationReportsEnabled+  = lens _srsApplicationReportsEnabled+      (\ s a -> s{_srsApplicationReportsEnabled = a})++-- | Whether memory reporting is enabled.+srsMemoryInfoEnabled :: Lens' StatusReportingSettings (Maybe Bool)+srsMemoryInfoEnabled+  = lens _srsMemoryInfoEnabled+      (\ s a -> s{_srsMemoryInfoEnabled = a})++-- | Whether network info reporting is enabled.+srsNetworkInfoEnabled :: Lens' StatusReportingSettings (Maybe Bool)+srsNetworkInfoEnabled+  = lens _srsNetworkInfoEnabled+      (\ s a -> s{_srsNetworkInfoEnabled = a})++-- | Whether device settings reporting is enabled.+srsDeviceSettingsEnabled :: Lens' StatusReportingSettings (Maybe Bool)+srsDeviceSettingsEnabled+  = lens _srsDeviceSettingsEnabled+      (\ s a -> s{_srsDeviceSettingsEnabled = a})++instance FromJSON StatusReportingSettings where+        parseJSON+          = withObject "StatusReportingSettings"+              (\ o ->+                 StatusReportingSettings' <$>+                   (o .:? "softwareInfoEnabled") <*>+                     (o .:? "hardwareStatusEnabled")+                     <*> (o .:? "powerManagementEventsEnabled")+                     <*> (o .:? "displayInfoEnabled")+                     <*> (o .:? "applicationReportsEnabled")+                     <*> (o .:? "memoryInfoEnabled")+                     <*> (o .:? "networkInfoEnabled")+                     <*> (o .:? "deviceSettingsEnabled"))++instance ToJSON StatusReportingSettings where+        toJSON StatusReportingSettings'{..}+          = object+              (catMaybes+                 [("softwareInfoEnabled" .=) <$>+                    _srsSoftwareInfoEnabled,+                  ("hardwareStatusEnabled" .=) <$>+                    _srsHardwareStatusEnabled,+                  ("powerManagementEventsEnabled" .=) <$>+                    _srsPowerManagementEventsEnabled,+                  ("displayInfoEnabled" .=) <$> _srsDisplayInfoEnabled,+                  ("applicationReportsEnabled" .=) <$>+                    _srsApplicationReportsEnabled,+                  ("memoryInfoEnabled" .=) <$> _srsMemoryInfoEnabled,+                  ("networkInfoEnabled" .=) <$> _srsNetworkInfoEnabled,+                  ("deviceSettingsEnabled" .=) <$>+                    _srsDeviceSettingsEnabled])++-- | Policy for an individual app.+--+-- /See:/ 'applicationPolicy' smart constructor.+data ApplicationPolicy = ApplicationPolicy'+    { _apDelegatedScopes              :: !(Maybe [Text])+    , _apPackageName                  :: !(Maybe Text)+    , _apManagedConfiguration         :: !(Maybe ApplicationPolicyManagedConfiguration)+    , _apDefaultPermissionPolicy      :: !(Maybe ApplicationPolicyDefaultPermissionPolicy)+    , _apDisabled                     :: !(Maybe Bool)+    , _apLockTaskAllowed              :: !(Maybe Bool)+    , _apPermissionGrants             :: !(Maybe [PermissionGrant])+    , _apManagedConfigurationTemplate :: !(Maybe ManagedConfigurationTemplate)+    , _apMinimumVersionCode           :: !(Maybe (Textual Int32))+    , _apInstallType                  :: !(Maybe ApplicationPolicyInstallType)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ApplicationPolicy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'apDelegatedScopes'+--+-- * 'apPackageName'+--+-- * 'apManagedConfiguration'+--+-- * 'apDefaultPermissionPolicy'+--+-- * 'apDisabled'+--+-- * 'apLockTaskAllowed'+--+-- * 'apPermissionGrants'+--+-- * 'apManagedConfigurationTemplate'+--+-- * 'apMinimumVersionCode'+--+-- * 'apInstallType'+applicationPolicy+    :: ApplicationPolicy+applicationPolicy =+    ApplicationPolicy'+    { _apDelegatedScopes = Nothing+    , _apPackageName = Nothing+    , _apManagedConfiguration = Nothing+    , _apDefaultPermissionPolicy = Nothing+    , _apDisabled = Nothing+    , _apLockTaskAllowed = Nothing+    , _apPermissionGrants = Nothing+    , _apManagedConfigurationTemplate = Nothing+    , _apMinimumVersionCode = Nothing+    , _apInstallType = Nothing+    }++-- | The scopes delegated to the app from Android Device Policy.+apDelegatedScopes :: Lens' ApplicationPolicy [Text]+apDelegatedScopes+  = lens _apDelegatedScopes+      (\ s a -> s{_apDelegatedScopes = a})+      . _Default+      . _Coerce++-- | The package name of the app. For example, com.google.android.youtube for+-- the YouTube app.+apPackageName :: Lens' ApplicationPolicy (Maybe Text)+apPackageName+  = lens _apPackageName+      (\ s a -> s{_apPackageName = a})++-- | Managed configuration applied to the app. The format for the+-- configuration is dictated by the ManagedProperty values supported by the+-- app. Each field name in the managed configuration must match the key+-- field of the ManagedProperty. The field value must be compatible with+-- the type of the ManagedProperty:+-- >   -------------- ------------------+-- >   /type/         /JSON value/+-- >   BOOL           true or false+-- >   STRING         string+-- >   INTEGER        number+-- >   CHOICE         string+-- >   MULTISELECT    array of strings+-- >   HIDDEN         string+-- >   BUNDLE_ARRAY   array of objects+-- >   -------------- ------------------+apManagedConfiguration :: Lens' ApplicationPolicy (Maybe ApplicationPolicyManagedConfiguration)+apManagedConfiguration+  = lens _apManagedConfiguration+      (\ s a -> s{_apManagedConfiguration = a})++-- | The default policy for all permissions requested by the app. If+-- specified, this overrides the policy-level default_permission_policy+-- which applies to all apps. It does not override the permission_grants+-- which applies to all apps.+apDefaultPermissionPolicy :: Lens' ApplicationPolicy (Maybe ApplicationPolicyDefaultPermissionPolicy)+apDefaultPermissionPolicy+  = lens _apDefaultPermissionPolicy+      (\ s a -> s{_apDefaultPermissionPolicy = a})++-- | Whether the app is disabled. When disabled, the app data is still+-- preserved.+apDisabled :: Lens' ApplicationPolicy (Maybe Bool)+apDisabled+  = lens _apDisabled (\ s a -> s{_apDisabled = a})++-- | Whether the app is allowed to lock itself in full-screen mode.+apLockTaskAllowed :: Lens' ApplicationPolicy (Maybe Bool)+apLockTaskAllowed+  = lens _apLockTaskAllowed+      (\ s a -> s{_apLockTaskAllowed = a})++-- | Explicit permission grants or denials for the app. These values override+-- the default_permission_policy and permission_grants which apply to all+-- apps.+apPermissionGrants :: Lens' ApplicationPolicy [PermissionGrant]+apPermissionGrants+  = lens _apPermissionGrants+      (\ s a -> s{_apPermissionGrants = a})+      . _Default+      . _Coerce++-- | The managed configurations template for the app, saved from the managed+-- configurations iframe. This field is ignored if managed_configuration is+-- set.+apManagedConfigurationTemplate :: Lens' ApplicationPolicy (Maybe ManagedConfigurationTemplate)+apManagedConfigurationTemplate+  = lens _apManagedConfigurationTemplate+      (\ s a -> s{_apManagedConfigurationTemplate = a})++-- | The minimum version of the app that runs on the device. If set, the+-- device attempts to update the app to at least this version code. If the+-- app is not up-to-date, the device will contain a NonComplianceDetail+-- with non_compliance_reason set to APP_NOT_UPDATED. The app must already+-- be published to Google Play with a version code greater than or equal to+-- this value. At most 20 apps may specify a minimum version code per+-- policy.+apMinimumVersionCode :: Lens' ApplicationPolicy (Maybe Int32)+apMinimumVersionCode+  = lens _apMinimumVersionCode+      (\ s a -> s{_apMinimumVersionCode = a})+      . mapping _Coerce++-- | The type of installation to perform.+apInstallType :: Lens' ApplicationPolicy (Maybe ApplicationPolicyInstallType)+apInstallType+  = lens _apInstallType+      (\ s a -> s{_apInstallType = a})++instance FromJSON ApplicationPolicy where+        parseJSON+          = withObject "ApplicationPolicy"+              (\ o ->+                 ApplicationPolicy' <$>+                   (o .:? "delegatedScopes" .!= mempty) <*>+                     (o .:? "packageName")+                     <*> (o .:? "managedConfiguration")+                     <*> (o .:? "defaultPermissionPolicy")+                     <*> (o .:? "disabled")+                     <*> (o .:? "lockTaskAllowed")+                     <*> (o .:? "permissionGrants" .!= mempty)+                     <*> (o .:? "managedConfigurationTemplate")+                     <*> (o .:? "minimumVersionCode")+                     <*> (o .:? "installType"))++instance ToJSON ApplicationPolicy where+        toJSON ApplicationPolicy'{..}+          = object+              (catMaybes+                 [("delegatedScopes" .=) <$> _apDelegatedScopes,+                  ("packageName" .=) <$> _apPackageName,+                  ("managedConfiguration" .=) <$>+                    _apManagedConfiguration,+                  ("defaultPermissionPolicy" .=) <$>+                    _apDefaultPermissionPolicy,+                  ("disabled" .=) <$> _apDisabled,+                  ("lockTaskAllowed" .=) <$> _apLockTaskAllowed,+                  ("permissionGrants" .=) <$> _apPermissionGrants,+                  ("managedConfigurationTemplate" .=) <$>+                    _apManagedConfigurationTemplate,+                  ("minimumVersionCode" .=) <$> _apMinimumVersionCode,+                  ("installType" .=) <$> _apInstallType])++-- | Response to a request to list devices for a given enterprise.+--+-- /See:/ 'listDevicesResponse' smart constructor.+data ListDevicesResponse = ListDevicesResponse'+    { _ldrNextPageToken :: !(Maybe Text)+    , _ldrDevices       :: !(Maybe [Device])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListDevicesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ldrNextPageToken'+--+-- * 'ldrDevices'+listDevicesResponse+    :: ListDevicesResponse+listDevicesResponse =+    ListDevicesResponse'+    { _ldrNextPageToken = Nothing+    , _ldrDevices = Nothing+    }++-- | If there are more results, a token to retrieve next page of results.+ldrNextPageToken :: Lens' ListDevicesResponse (Maybe Text)+ldrNextPageToken+  = lens _ldrNextPageToken+      (\ s a -> s{_ldrNextPageToken = a})++-- | The list of devices.+ldrDevices :: Lens' ListDevicesResponse [Device]+ldrDevices+  = lens _ldrDevices (\ s a -> s{_ldrDevices = a}) .+      _Default+      . _Coerce++instance FromJSON ListDevicesResponse where+        parseJSON+          = withObject "ListDevicesResponse"+              (\ o ->+                 ListDevicesResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "devices" .!= mempty))++instance ToJSON ListDevicesResponse where+        toJSON ListDevicesResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _ldrNextPageToken,+                  ("devices" .=) <$> _ldrDevices])++-- | The managed configurations template for the app, saved from the managed+-- configurations iframe.+--+-- /See:/ 'managedConfigurationTemplate' smart constructor.+data ManagedConfigurationTemplate = ManagedConfigurationTemplate'+    { _mctTemplateId             :: !(Maybe Text)+    , _mctConfigurationVariables :: !(Maybe ManagedConfigurationTemplateConfigurationVariables)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ManagedConfigurationTemplate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mctTemplateId'+--+-- * 'mctConfigurationVariables'+managedConfigurationTemplate+    :: ManagedConfigurationTemplate+managedConfigurationTemplate =+    ManagedConfigurationTemplate'+    { _mctTemplateId = Nothing+    , _mctConfigurationVariables = Nothing+    }++-- | The ID of the managed configurations template.+mctTemplateId :: Lens' ManagedConfigurationTemplate (Maybe Text)+mctTemplateId+  = lens _mctTemplateId+      (\ s a -> s{_mctTemplateId = a})++-- | Optional, a map containing configuration variables defined for the+-- configuration.+mctConfigurationVariables :: Lens' ManagedConfigurationTemplate (Maybe ManagedConfigurationTemplateConfigurationVariables)+mctConfigurationVariables+  = lens _mctConfigurationVariables+      (\ s a -> s{_mctConfigurationVariables = a})++instance FromJSON ManagedConfigurationTemplate where+        parseJSON+          = withObject "ManagedConfigurationTemplate"+              (\ o ->+                 ManagedConfigurationTemplate' <$>+                   (o .:? "templateId") <*>+                     (o .:? "configurationVariables"))++instance ToJSON ManagedConfigurationTemplate where+        toJSON ManagedConfigurationTemplate'{..}+          = object+              (catMaybes+                 [("templateId" .=) <$> _mctTemplateId,+                  ("configurationVariables" .=) <$>+                    _mctConfigurationVariables])++-- | The configuration applied to an enterprise.+--+-- /See:/ 'enterprise' smart constructor.+data Enterprise = Enterprise'+    { _eAppAutoApprovalEnabled   :: !(Maybe Bool)+    , _eEnabledNotificationTypes :: !(Maybe [Text])+    , _eSigninDetails            :: !(Maybe [SigninDetail])+    , _eName                     :: !(Maybe Text)+    , _ePubsubTopic              :: !(Maybe Text)+    , _eEnterpriseDisplayName    :: !(Maybe Text)+    , _eLogo                     :: !(Maybe ExternalData)+    , _eTermsAndConditions       :: !(Maybe [TermsAndConditions])+    , _ePrimaryColor             :: !(Maybe (Textual Int32))+    } 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:+--+-- * 'eAppAutoApprovalEnabled'+--+-- * 'eEnabledNotificationTypes'+--+-- * 'eSigninDetails'+--+-- * 'eName'+--+-- * 'ePubsubTopic'+--+-- * 'eEnterpriseDisplayName'+--+-- * 'eLogo'+--+-- * 'eTermsAndConditions'+--+-- * 'ePrimaryColor'+enterprise+    :: Enterprise+enterprise =+    Enterprise'+    { _eAppAutoApprovalEnabled = Nothing+    , _eEnabledNotificationTypes = Nothing+    , _eSigninDetails = Nothing+    , _eName = Nothing+    , _ePubsubTopic = Nothing+    , _eEnterpriseDisplayName = Nothing+    , _eLogo = Nothing+    , _eTermsAndConditions = Nothing+    , _ePrimaryColor = Nothing+    }++-- | Deprecated and unused.+eAppAutoApprovalEnabled :: Lens' Enterprise (Maybe Bool)+eAppAutoApprovalEnabled+  = lens _eAppAutoApprovalEnabled+      (\ s a -> s{_eAppAutoApprovalEnabled = a})++-- | The types of Google Pub\/Sub notifications enabled for the enterprise.+eEnabledNotificationTypes :: Lens' Enterprise [Text]+eEnabledNotificationTypes+  = lens _eEnabledNotificationTypes+      (\ s a -> s{_eEnabledNotificationTypes = a})+      . _Default+      . _Coerce++-- | Sign-in details of the enterprise. Maximum of 1 SigninDetail is+-- supported.+eSigninDetails :: Lens' Enterprise [SigninDetail]+eSigninDetails+  = lens _eSigninDetails+      (\ s a -> s{_eSigninDetails = a})+      . _Default+      . _Coerce++-- | The name of the enterprise which is generated by the server during+-- creation, in the form enterprises\/{enterpriseId}.+eName :: Lens' Enterprise (Maybe Text)+eName = lens _eName (\ s a -> s{_eName = a})++-- | The topic that Cloud Pub\/Sub notifications are published to, in the+-- form projects\/{project}\/topics\/{topic}. This field is only required+-- if Pub\/Sub notifications are enabled.+ePubsubTopic :: Lens' Enterprise (Maybe Text)+ePubsubTopic+  = lens _ePubsubTopic (\ s a -> s{_ePubsubTopic = a})++-- | The name of the enterprise displayed to users.+eEnterpriseDisplayName :: Lens' Enterprise (Maybe Text)+eEnterpriseDisplayName+  = lens _eEnterpriseDisplayName+      (\ s a -> s{_eEnterpriseDisplayName = a})++-- | An image displayed as a logo during device provisioning. Supported types+-- are: image\/bmp, image\/gif, image\/x-ico, image\/jpeg, image\/png,+-- image\/webp, image\/vnd.wap.wbmp, image\/x-adobe-dng.+eLogo :: Lens' Enterprise (Maybe ExternalData)+eLogo = lens _eLogo (\ s a -> s{_eLogo = a})++-- | Terms and conditions that must be accepted when provisioning a device+-- for this enterprise. A page of terms is generated for each value in this+-- list.+eTermsAndConditions :: Lens' Enterprise [TermsAndConditions]+eTermsAndConditions+  = lens _eTermsAndConditions+      (\ s a -> s{_eTermsAndConditions = a})+      . _Default+      . _Coerce++-- | A color in RGB format that indicates the predominant color to display in+-- the device management app UI. The color components are stored as+-- follows: (red \<\< 16) | (green \<\< 8) | blue, where the value of each+-- component is between 0 and 255, inclusive.+ePrimaryColor :: Lens' Enterprise (Maybe Int32)+ePrimaryColor+  = lens _ePrimaryColor+      (\ s a -> s{_ePrimaryColor = a})+      . mapping _Coerce++instance FromJSON Enterprise where+        parseJSON+          = withObject "Enterprise"+              (\ o ->+                 Enterprise' <$>+                   (o .:? "appAutoApprovalEnabled") <*>+                     (o .:? "enabledNotificationTypes" .!= mempty)+                     <*> (o .:? "signinDetails" .!= mempty)+                     <*> (o .:? "name")+                     <*> (o .:? "pubsubTopic")+                     <*> (o .:? "enterpriseDisplayName")+                     <*> (o .:? "logo")+                     <*> (o .:? "termsAndConditions" .!= mempty)+                     <*> (o .:? "primaryColor"))++instance ToJSON Enterprise where+        toJSON Enterprise'{..}+          = object+              (catMaybes+                 [("appAutoApprovalEnabled" .=) <$>+                    _eAppAutoApprovalEnabled,+                  ("enabledNotificationTypes" .=) <$>+                    _eEnabledNotificationTypes,+                  ("signinDetails" .=) <$> _eSigninDetails,+                  ("name" .=) <$> _eName,+                  ("pubsubTopic" .=) <$> _ePubsubTopic,+                  ("enterpriseDisplayName" .=) <$>+                    _eEnterpriseDisplayName,+                  ("logo" .=) <$> _eLogo,+                  ("termsAndConditions" .=) <$> _eTermsAndConditions,+                  ("primaryColor" .=) <$> _ePrimaryColor])++-- | An event related to memory and storage measurements.+--+-- /See:/ 'memoryEvent' smart constructor.+data MemoryEvent = MemoryEvent'+    { _meByteCount  :: !(Maybe (Textual Int64))+    , _meEventType  :: !(Maybe MemoryEventEventType)+    , _meCreateTime :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MemoryEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'meByteCount'+--+-- * 'meEventType'+--+-- * 'meCreateTime'+memoryEvent+    :: MemoryEvent+memoryEvent =+    MemoryEvent'+    { _meByteCount = Nothing+    , _meEventType = Nothing+    , _meCreateTime = Nothing+    }++-- | The number of free bytes in the medium, or for+-- EXTERNAL_STORAGE_DETECTED, the total capacity in bytes of the storage+-- medium.+meByteCount :: Lens' MemoryEvent (Maybe Int64)+meByteCount+  = lens _meByteCount (\ s a -> s{_meByteCount = a}) .+      mapping _Coerce++-- | Event type.+meEventType :: Lens' MemoryEvent (Maybe MemoryEventEventType)+meEventType+  = lens _meEventType (\ s a -> s{_meEventType = a})++-- | The creation time of the event.+meCreateTime :: Lens' MemoryEvent (Maybe UTCTime)+meCreateTime+  = lens _meCreateTime (\ s a -> s{_meCreateTime = a})+      . mapping _DateTime++instance FromJSON MemoryEvent where+        parseJSON+          = withObject "MemoryEvent"+              (\ o ->+                 MemoryEvent' <$>+                   (o .:? "byteCount") <*> (o .:? "eventType") <*>+                     (o .:? "createTime"))++instance ToJSON MemoryEvent where+        toJSON MemoryEvent'{..}+          = object+              (catMaybes+                 [("byteCount" .=) <$> _meByteCount,+                  ("eventType" .=) <$> _meEventType,+                  ("createTime" .=) <$> _meCreateTime])++-- | Configuration for an Android permission and its grant state.+--+-- /See:/ 'permissionGrant' smart constructor.+data PermissionGrant = PermissionGrant'+    { _pgPolicy     :: !(Maybe PermissionGrantPolicy)+    , _pgPermission :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PermissionGrant' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pgPolicy'+--+-- * 'pgPermission'+permissionGrant+    :: PermissionGrant+permissionGrant =+    PermissionGrant'+    { _pgPolicy = Nothing+    , _pgPermission = Nothing+    }++-- | The policy for granting the permission.+pgPolicy :: Lens' PermissionGrant (Maybe PermissionGrantPolicy)+pgPolicy = lens _pgPolicy (\ s a -> s{_pgPolicy = a})++-- | The Android permission or group, e.g. android.permission.READ_CALENDAR+-- or android.permission_group.CALENDAR.+pgPermission :: Lens' PermissionGrant (Maybe Text)+pgPermission+  = lens _pgPermission (\ s a -> s{_pgPermission = a})++instance FromJSON PermissionGrant where+        parseJSON+          = withObject "PermissionGrant"+              (\ o ->+                 PermissionGrant' <$>+                   (o .:? "policy") <*> (o .:? "permission"))++instance ToJSON PermissionGrant where+        toJSON PermissionGrant'{..}+          = object+              (catMaybes+                 [("policy" .=) <$> _pgPolicy,+                  ("permission" .=) <$> _pgPermission])++-- | A resource containing sign in details for an enterprise.+--+-- /See:/ 'signinDetail' smart constructor.+data SigninDetail = SigninDetail'+    { _sdSigninURL             :: !(Maybe Text)+    , _sdQrCode                :: !(Maybe Text)+    , _sdSigninEnrollmentToken :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SigninDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdSigninURL'+--+-- * 'sdQrCode'+--+-- * 'sdSigninEnrollmentToken'+signinDetail+    :: SigninDetail+signinDetail =+    SigninDetail'+    { _sdSigninURL = Nothing+    , _sdQrCode = Nothing+    , _sdSigninEnrollmentToken = Nothing+    }++-- | Sign-in URL for authentication when device is provisioned with a sign-in+-- enrollment token. The sign-in endpoint should finish authentication flow+-- with a URL in the form of+-- https:\/\/enterprise.google.com\/android\/enroll?et= for a successful+-- login, or https:\/\/enterprise.google.com\/android\/enroll\/invalid for+-- a failed login.+sdSigninURL :: Lens' SigninDetail (Maybe Text)+sdSigninURL+  = lens _sdSigninURL (\ s a -> s{_sdSigninURL = a})++-- | A JSON string whose UTF-8 representation can be used to generate a QR+-- code to enroll a device with this enrollment token. To enroll a device+-- using NFC, the NFC record must contain a serialized java.util.Properties+-- representation of the properties in the JSON. This is a read-only field+-- generated by the server.+sdQrCode :: Lens' SigninDetail (Maybe Text)+sdQrCode = lens _sdQrCode (\ s a -> s{_sdQrCode = a})++-- | An enterprise wide enrollment token used to trigger custom sign-in flow.+-- This is a read-only field generated by the server.+sdSigninEnrollmentToken :: Lens' SigninDetail (Maybe Text)+sdSigninEnrollmentToken+  = lens _sdSigninEnrollmentToken+      (\ s a -> s{_sdSigninEnrollmentToken = a})++instance FromJSON SigninDetail where+        parseJSON+          = withObject "SigninDetail"+              (\ o ->+                 SigninDetail' <$>+                   (o .:? "signinUrl") <*> (o .:? "qrCode") <*>+                     (o .:? "signinEnrollmentToken"))++instance ToJSON SigninDetail where+        toJSON SigninDetail'{..}+          = object+              (catMaybes+                 [("signinUrl" .=) <$> _sdSigninURL,+                  ("qrCode" .=) <$> _sdQrCode,+                  ("signinEnrollmentToken" .=) <$>+                    _sdSigninEnrollmentToken])++-- | An enterprise signup URL.+--+-- /See:/ 'signupURL' smart constructor.+data SignupURL = SignupURL'+    { _suURL  :: !(Maybe Text)+    , _suName :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SignupURL' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'suURL'+--+-- * 'suName'+signupURL+    :: SignupURL+signupURL =+    SignupURL'+    { _suURL = Nothing+    , _suName = Nothing+    }++-- | A URL where an enterprise admin can register their enterprise. The page+-- can\'t be rendered in an iframe.+suURL :: Lens' SignupURL (Maybe Text)+suURL = lens _suURL (\ s a -> s{_suURL = a})++-- | The name of the resource. Use this value in the signupUrl field when+-- calling enterprises.create to complete the enterprise signup flow.+suName :: Lens' SignupURL (Maybe Text)+suName = lens _suName (\ s a -> s{_suName = a})++instance FromJSON SignupURL where+        parseJSON+          = withObject "SignupURL"+              (\ o ->+                 SignupURL' <$> (o .:? "url") <*> (o .:? "name"))++instance ToJSON SignupURL where+        toJSON SignupURL'{..}+          = object+              (catMaybes+                 [("url" .=) <$> _suURL, ("name" .=) <$> _suName])++-- | Device network info.+--+-- /See:/ 'networkInfo' smart constructor.+data NetworkInfo = NetworkInfo'+    { _niNetworkOperatorName :: !(Maybe Text)+    , _niMeid                :: !(Maybe Text)+    , _niImei                :: !(Maybe Text)+    , _niWifiMACAddress      :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NetworkInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'niNetworkOperatorName'+--+-- * 'niMeid'+--+-- * 'niImei'+--+-- * 'niWifiMACAddress'+networkInfo+    :: NetworkInfo+networkInfo =+    NetworkInfo'+    { _niNetworkOperatorName = Nothing+    , _niMeid = Nothing+    , _niImei = Nothing+    , _niWifiMACAddress = Nothing+    }++-- | Alphabetic name of current registered operator. For example, Vodafone.+niNetworkOperatorName :: Lens' NetworkInfo (Maybe Text)+niNetworkOperatorName+  = lens _niNetworkOperatorName+      (\ s a -> s{_niNetworkOperatorName = a})++-- | MEID number of the CDMA device. For example, A00000292788E1.+niMeid :: Lens' NetworkInfo (Maybe Text)+niMeid = lens _niMeid (\ s a -> s{_niMeid = a})++-- | IMEI number of the GSM device. For example, A1000031212.+niImei :: Lens' NetworkInfo (Maybe Text)+niImei = lens _niImei (\ s a -> s{_niImei = a})++-- | Wi-Fi MAC address of the device. For example, 7c:11:11:11:11:11.+niWifiMACAddress :: Lens' NetworkInfo (Maybe Text)+niWifiMACAddress+  = lens _niWifiMACAddress+      (\ s a -> s{_niWifiMACAddress = a})++instance FromJSON NetworkInfo where+        parseJSON+          = withObject "NetworkInfo"+              (\ o ->+                 NetworkInfo' <$>+                   (o .:? "networkOperatorName") <*> (o .:? "meid") <*>+                     (o .:? "imei")+                     <*> (o .:? "wifiMacAddress"))++instance ToJSON NetworkInfo where+        toJSON NetworkInfo'{..}+          = object+              (catMaybes+                 [("networkOperatorName" .=) <$>+                    _niNetworkOperatorName,+                  ("meid" .=) <$> _niMeid, ("imei" .=) <$> _niImei,+                  ("wifiMacAddress" .=) <$> _niWifiMACAddress])++-- | A power management event.+--+-- /See:/ 'powerManagementEvent' smart constructor.+data PowerManagementEvent = PowerManagementEvent'+    { _pmeBatteryLevel :: !(Maybe (Textual Double))+    , _pmeEventType    :: !(Maybe PowerManagementEventEventType)+    , _pmeCreateTime   :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PowerManagementEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pmeBatteryLevel'+--+-- * 'pmeEventType'+--+-- * 'pmeCreateTime'+powerManagementEvent+    :: PowerManagementEvent+powerManagementEvent =+    PowerManagementEvent'+    { _pmeBatteryLevel = Nothing+    , _pmeEventType = Nothing+    , _pmeCreateTime = Nothing+    }++-- | For BATTERY_LEVEL_COLLECTED events, the battery level as a percentage.+pmeBatteryLevel :: Lens' PowerManagementEvent (Maybe Double)+pmeBatteryLevel+  = lens _pmeBatteryLevel+      (\ s a -> s{_pmeBatteryLevel = a})+      . mapping _Coerce++-- | Event type.+pmeEventType :: Lens' PowerManagementEvent (Maybe PowerManagementEventEventType)+pmeEventType+  = lens _pmeEventType (\ s a -> s{_pmeEventType = a})++-- | The creation time of the event.+pmeCreateTime :: Lens' PowerManagementEvent (Maybe UTCTime)+pmeCreateTime+  = lens _pmeCreateTime+      (\ s a -> s{_pmeCreateTime = a})+      . mapping _DateTime++instance FromJSON PowerManagementEvent where+        parseJSON+          = withObject "PowerManagementEvent"+              (\ o ->+                 PowerManagementEvent' <$>+                   (o .:? "batteryLevel") <*> (o .:? "eventType") <*>+                     (o .:? "createTime"))++instance ToJSON PowerManagementEvent where+        toJSON PowerManagementEvent'{..}+          = object+              (catMaybes+                 [("batteryLevel" .=) <$> _pmeBatteryLevel,+                  ("eventType" .=) <$> _pmeEventType,+                  ("createTime" .=) <$> _pmeCreateTime])++-- | A policy resources represents a group settings that govern the behavior+-- of a managed device and the apps installed on it.+--+-- /See:/ 'policy' smart constructor.+data Policy = Policy'+    { _pBluetoothConfigDisabled            :: !(Maybe Bool)+    , _pUnmuteMicrophoneDisabled           :: !(Maybe Bool)+    , _pMountPhysicalMediaDisabled         :: !(Maybe Bool)+    , _pFrpAdminEmails                     :: !(Maybe [Text])+    , _pAppAutoUpdatePolicy                :: !(Maybe PolicyAppAutoUpdatePolicy)+    , _pEncryptionPolicy                   :: !(Maybe PolicyEncryptionPolicy)+    , _pAndroidDevicePolicyTracks          :: !(Maybe [Text])+    , _pSafeBootDisabled                   :: !(Maybe Bool)+    , _pAlwaysOnVPNPackage                 :: !(Maybe AlwaysOnVPNPackage)+    , _pChoosePrivateKeyRules              :: !(Maybe [ChoosePrivateKeyRule])+    , _pCredentialsConfigDisabled          :: !(Maybe Bool)+    , _pRecommendedGlobalProxy             :: !(Maybe ProxyInfo)+    , _pKeyguardDisabled                   :: !(Maybe Bool)+    , _pSkipFirstUseHintsEnabled           :: !(Maybe Bool)+    , _pAdjustVolumeDisabled               :: !(Maybe Bool)+    , _pDefaultPermissionPolicy            :: !(Maybe PolicyDefaultPermissionPolicy)+    , _pUninstallAppsDisabled              :: !(Maybe Bool)+    , _pSetUserIconDisabled                :: !(Maybe Bool)+    , _pPermittedInputMethods              :: !(Maybe PackageNameList)+    , _pScreenCaptureDisabled              :: !(Maybe Bool)+    , _pAddUserDisabled                    :: !(Maybe Bool)+    , _pShareLocationDisabled              :: !(Maybe Bool)+    , _pAutoTimeRequired                   :: !(Maybe Bool)+    , _pInstallAppsDisabled                :: !(Maybe Bool)+    , _pCreateWindowsDisabled              :: !(Maybe Bool)+    , _pNetworkResetDisabled               :: !(Maybe Bool)+    , _pBluetoothContactSharingDisabled    :: !(Maybe Bool)+    , _pPermissionGrants                   :: !(Maybe [PermissionGrant])+    , _pShortSupportMessage                :: !(Maybe UserFacingMessage)+    , _pStayOnPluggedModes                 :: !(Maybe [Text])+    , _pDataRoamingDisabled                :: !(Maybe Bool)+    , _pDebuggingFeaturesAllowed           :: !(Maybe Bool)+    , _pKioskCustomLauncherEnabled         :: !(Maybe Bool)+    , _pWifiConfigsLockdownEnabled         :: !(Maybe Bool)+    , _pUsbMassStorageEnabled              :: !(Maybe Bool)+    , _pNetworkEscapeHatchEnabled          :: !(Maybe Bool)+    , _pSystemUpdate                       :: !(Maybe SystemUpdate)+    , _pInstallUnknownSourcesAllowed       :: !(Maybe Bool)+    , _pName                               :: !(Maybe Text)+    , _pPrivateKeySelectionEnabled         :: !(Maybe Bool)+    , _pOutgoingCallsDisabled              :: !(Maybe Bool)+    , _pStatusReportingSettings            :: !(Maybe StatusReportingSettings)+    , _pRemoveUserDisabled                 :: !(Maybe Bool)+    , _pMobileNetworksConfigDisabled       :: !(Maybe Bool)+    , _pVersion                            :: !(Maybe (Textual Int64))+    , _pEnsureVerifyAppsEnabled            :: !(Maybe Bool)+    , _pSetWallpaperDisabled               :: !(Maybe Bool)+    , _pVPNConfigDisabled                  :: !(Maybe Bool)+    , _pOpenNetworkConfiguration           :: !(Maybe PolicyOpenNetworkConfiguration)+    , _pModifyAccountsDisabled             :: !(Maybe Bool)+    , _pBlockApplicationsEnabled           :: !(Maybe Bool)+    , _pKeyguardDisabledFeatures           :: !(Maybe [Text])+    , _pFunDisabled                        :: !(Maybe Bool)+    , _pSmsDisabled                        :: !(Maybe Bool)+    , _pMaximumTimeToLock                  :: !(Maybe (Textual Int64))+    , _pOutgoingBeamDisabled               :: !(Maybe Bool)+    , _pStatusBarDisabled                  :: !(Maybe Bool)+    , _pCellBroadcastsConfigDisabled       :: !(Maybe Bool)+    , _pDeviceOwnerLockScreenInfo          :: !(Maybe UserFacingMessage)+    , _pPlayStoreMode                      :: !(Maybe PolicyPlayStoreMode)+    , _pComplianceRules                    :: !(Maybe [ComplianceRule])+    , _pTetheringConfigDisabled            :: !(Maybe Bool)+    , _pAccountTypesWithManagementDisabled :: !(Maybe [Text])+    , _pWifiConfigDisabled                 :: !(Maybe Bool)+    , _pPersistentPreferredActivities      :: !(Maybe [PersistentPreferredActivity])+    , _pPasswordRequirements               :: !(Maybe PasswordRequirements)+    , _pLongSupportMessage                 :: !(Maybe UserFacingMessage)+    , _pLocationMode                       :: !(Maybe PolicyLocationMode)+    , _pBluetoothDisabled                  :: !(Maybe Bool)+    , _pUsbFileTransferDisabled            :: !(Maybe Bool)+    , _pCameraDisabled                     :: !(Maybe Bool)+    , _pApplications                       :: !(Maybe [ApplicationPolicy])+    , _pPasswordPolicies                   :: !(Maybe [PasswordRequirements])+    , _pFactoryResetDisabled               :: !(Maybe Bool)+    } 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:+--+-- * 'pBluetoothConfigDisabled'+--+-- * 'pUnmuteMicrophoneDisabled'+--+-- * 'pMountPhysicalMediaDisabled'+--+-- * 'pFrpAdminEmails'+--+-- * 'pAppAutoUpdatePolicy'+--+-- * 'pEncryptionPolicy'+--+-- * 'pAndroidDevicePolicyTracks'+--+-- * 'pSafeBootDisabled'+--+-- * 'pAlwaysOnVPNPackage'+--+-- * 'pChoosePrivateKeyRules'+--+-- * 'pCredentialsConfigDisabled'+--+-- * 'pRecommendedGlobalProxy'+--+-- * 'pKeyguardDisabled'+--+-- * 'pSkipFirstUseHintsEnabled'+--+-- * 'pAdjustVolumeDisabled'+--+-- * 'pDefaultPermissionPolicy'+--+-- * 'pUninstallAppsDisabled'+--+-- * 'pSetUserIconDisabled'+--+-- * 'pPermittedInputMethods'+--+-- * 'pScreenCaptureDisabled'+--+-- * 'pAddUserDisabled'+--+-- * 'pShareLocationDisabled'+--+-- * 'pAutoTimeRequired'+--+-- * 'pInstallAppsDisabled'+--+-- * 'pCreateWindowsDisabled'+--+-- * 'pNetworkResetDisabled'+--+-- * 'pBluetoothContactSharingDisabled'+--+-- * 'pPermissionGrants'+--+-- * 'pShortSupportMessage'+--+-- * 'pStayOnPluggedModes'+--+-- * 'pDataRoamingDisabled'+--+-- * 'pDebuggingFeaturesAllowed'+--+-- * 'pKioskCustomLauncherEnabled'+--+-- * 'pWifiConfigsLockdownEnabled'+--+-- * 'pUsbMassStorageEnabled'+--+-- * 'pNetworkEscapeHatchEnabled'+--+-- * 'pSystemUpdate'+--+-- * 'pInstallUnknownSourcesAllowed'+--+-- * 'pName'+--+-- * 'pPrivateKeySelectionEnabled'+--+-- * 'pOutgoingCallsDisabled'+--+-- * 'pStatusReportingSettings'+--+-- * 'pRemoveUserDisabled'+--+-- * 'pMobileNetworksConfigDisabled'+--+-- * 'pVersion'+--+-- * 'pEnsureVerifyAppsEnabled'+--+-- * 'pSetWallpaperDisabled'+--+-- * 'pVPNConfigDisabled'+--+-- * 'pOpenNetworkConfiguration'+--+-- * 'pModifyAccountsDisabled'+--+-- * 'pBlockApplicationsEnabled'+--+-- * 'pKeyguardDisabledFeatures'+--+-- * 'pFunDisabled'+--+-- * 'pSmsDisabled'+--+-- * 'pMaximumTimeToLock'+--+-- * 'pOutgoingBeamDisabled'+--+-- * 'pStatusBarDisabled'+--+-- * 'pCellBroadcastsConfigDisabled'+--+-- * 'pDeviceOwnerLockScreenInfo'+--+-- * 'pPlayStoreMode'+--+-- * 'pComplianceRules'+--+-- * 'pTetheringConfigDisabled'+--+-- * 'pAccountTypesWithManagementDisabled'+--+-- * 'pWifiConfigDisabled'+--+-- * 'pPersistentPreferredActivities'+--+-- * 'pPasswordRequirements'+--+-- * 'pLongSupportMessage'+--+-- * 'pLocationMode'+--+-- * 'pBluetoothDisabled'+--+-- * 'pUsbFileTransferDisabled'+--+-- * 'pCameraDisabled'+--+-- * 'pApplications'+--+-- * 'pPasswordPolicies'+--+-- * 'pFactoryResetDisabled'+policy+    :: Policy+policy =+    Policy'+    { _pBluetoothConfigDisabled = Nothing+    , _pUnmuteMicrophoneDisabled = Nothing+    , _pMountPhysicalMediaDisabled = Nothing+    , _pFrpAdminEmails = Nothing+    , _pAppAutoUpdatePolicy = Nothing+    , _pEncryptionPolicy = Nothing+    , _pAndroidDevicePolicyTracks = Nothing+    , _pSafeBootDisabled = Nothing+    , _pAlwaysOnVPNPackage = Nothing+    , _pChoosePrivateKeyRules = Nothing+    , _pCredentialsConfigDisabled = Nothing+    , _pRecommendedGlobalProxy = Nothing+    , _pKeyguardDisabled = Nothing+    , _pSkipFirstUseHintsEnabled = Nothing+    , _pAdjustVolumeDisabled = Nothing+    , _pDefaultPermissionPolicy = Nothing+    , _pUninstallAppsDisabled = Nothing+    , _pSetUserIconDisabled = Nothing+    , _pPermittedInputMethods = Nothing+    , _pScreenCaptureDisabled = Nothing+    , _pAddUserDisabled = Nothing+    , _pShareLocationDisabled = Nothing+    , _pAutoTimeRequired = Nothing+    , _pInstallAppsDisabled = Nothing+    , _pCreateWindowsDisabled = Nothing+    , _pNetworkResetDisabled = Nothing+    , _pBluetoothContactSharingDisabled = Nothing+    , _pPermissionGrants = Nothing+    , _pShortSupportMessage = Nothing+    , _pStayOnPluggedModes = Nothing+    , _pDataRoamingDisabled = Nothing+    , _pDebuggingFeaturesAllowed = Nothing+    , _pKioskCustomLauncherEnabled = Nothing+    , _pWifiConfigsLockdownEnabled = Nothing+    , _pUsbMassStorageEnabled = Nothing+    , _pNetworkEscapeHatchEnabled = Nothing+    , _pSystemUpdate = Nothing+    , _pInstallUnknownSourcesAllowed = Nothing+    , _pName = Nothing+    , _pPrivateKeySelectionEnabled = Nothing+    , _pOutgoingCallsDisabled = Nothing+    , _pStatusReportingSettings = Nothing+    , _pRemoveUserDisabled = Nothing+    , _pMobileNetworksConfigDisabled = Nothing+    , _pVersion = Nothing+    , _pEnsureVerifyAppsEnabled = Nothing+    , _pSetWallpaperDisabled = Nothing+    , _pVPNConfigDisabled = Nothing+    , _pOpenNetworkConfiguration = Nothing+    , _pModifyAccountsDisabled = Nothing+    , _pBlockApplicationsEnabled = Nothing+    , _pKeyguardDisabledFeatures = Nothing+    , _pFunDisabled = Nothing+    , _pSmsDisabled = Nothing+    , _pMaximumTimeToLock = Nothing+    , _pOutgoingBeamDisabled = Nothing+    , _pStatusBarDisabled = Nothing+    , _pCellBroadcastsConfigDisabled = Nothing+    , _pDeviceOwnerLockScreenInfo = Nothing+    , _pPlayStoreMode = Nothing+    , _pComplianceRules = Nothing+    , _pTetheringConfigDisabled = Nothing+    , _pAccountTypesWithManagementDisabled = Nothing+    , _pWifiConfigDisabled = Nothing+    , _pPersistentPreferredActivities = Nothing+    , _pPasswordRequirements = Nothing+    , _pLongSupportMessage = Nothing+    , _pLocationMode = Nothing+    , _pBluetoothDisabled = Nothing+    , _pUsbFileTransferDisabled = Nothing+    , _pCameraDisabled = Nothing+    , _pApplications = Nothing+    , _pPasswordPolicies = Nothing+    , _pFactoryResetDisabled = Nothing+    }++-- | Whether configuring bluetooth is disabled.+pBluetoothConfigDisabled :: Lens' Policy (Maybe Bool)+pBluetoothConfigDisabled+  = lens _pBluetoothConfigDisabled+      (\ s a -> s{_pBluetoothConfigDisabled = a})++-- | Whether the microphone is muted and adjusting microphone volume is+-- disabled.+pUnmuteMicrophoneDisabled :: Lens' Policy (Maybe Bool)+pUnmuteMicrophoneDisabled+  = lens _pUnmuteMicrophoneDisabled+      (\ s a -> s{_pUnmuteMicrophoneDisabled = a})++-- | Whether the user mounting physical external media is disabled.+pMountPhysicalMediaDisabled :: Lens' Policy (Maybe Bool)+pMountPhysicalMediaDisabled+  = lens _pMountPhysicalMediaDisabled+      (\ s a -> s{_pMountPhysicalMediaDisabled = a})++-- | Email addresses of device administrators for factory reset protection.+-- When the device is factory reset, it will require one of these admins to+-- log in with the Google account email and password to unlock the device.+-- If no admins are specified, the device won\'t provide factory reset+-- protection.+pFrpAdminEmails :: Lens' Policy [Text]+pFrpAdminEmails+  = lens _pFrpAdminEmails+      (\ s a -> s{_pFrpAdminEmails = a})+      . _Default+      . _Coerce++-- | The app auto update policy, which controls when automatic app updates+-- can be applied.+pAppAutoUpdatePolicy :: Lens' Policy (Maybe PolicyAppAutoUpdatePolicy)+pAppAutoUpdatePolicy+  = lens _pAppAutoUpdatePolicy+      (\ s a -> s{_pAppAutoUpdatePolicy = a})++-- | Whether encryption is enabled+pEncryptionPolicy :: Lens' Policy (Maybe PolicyEncryptionPolicy)+pEncryptionPolicy+  = lens _pEncryptionPolicy+      (\ s a -> s{_pEncryptionPolicy = a})++-- | The app tracks for Android Device Policy the device can access. The+-- device receives the latest version among all accessible tracks. If no+-- tracks are specified, then the device only uses the production track.+pAndroidDevicePolicyTracks :: Lens' Policy [Text]+pAndroidDevicePolicyTracks+  = lens _pAndroidDevicePolicyTracks+      (\ s a -> s{_pAndroidDevicePolicyTracks = a})+      . _Default+      . _Coerce++-- | Whether rebooting the device into safe boot is disabled.+pSafeBootDisabled :: Lens' Policy (Maybe Bool)+pSafeBootDisabled+  = lens _pSafeBootDisabled+      (\ s a -> s{_pSafeBootDisabled = a})++-- | Configuration for an always-on VPN connection. Use with+-- vpn_config_disabled to prevent modification of this setting.+pAlwaysOnVPNPackage :: Lens' Policy (Maybe AlwaysOnVPNPackage)+pAlwaysOnVPNPackage+  = lens _pAlwaysOnVPNPackage+      (\ s a -> s{_pAlwaysOnVPNPackage = a})++-- | Rules for automatically choosing a private key and certificate to+-- authenticate the device to a server. The rules are ordered by increasing+-- precedence, so if an outgoing request matches more than one rule, the+-- last rule defines which private key to use.+pChoosePrivateKeyRules :: Lens' Policy [ChoosePrivateKeyRule]+pChoosePrivateKeyRules+  = lens _pChoosePrivateKeyRules+      (\ s a -> s{_pChoosePrivateKeyRules = a})+      . _Default+      . _Coerce++-- | Whether configuring user credentials is disabled.+pCredentialsConfigDisabled :: Lens' Policy (Maybe Bool)+pCredentialsConfigDisabled+  = lens _pCredentialsConfigDisabled+      (\ s a -> s{_pCredentialsConfigDisabled = a})++-- | The network-independent global HTTP proxy. Typically proxies should be+-- configured per-network in open_network_configuration. However for+-- unusual configurations like general internal filtering a global HTTP+-- proxy may be useful. If the proxy is not accessible, network access may+-- break. The global proxy is only a recommendation and some apps may+-- ignore it.+pRecommendedGlobalProxy :: Lens' Policy (Maybe ProxyInfo)+pRecommendedGlobalProxy+  = lens _pRecommendedGlobalProxy+      (\ s a -> s{_pRecommendedGlobalProxy = a})++-- | Whether the keyguard is disabled.+pKeyguardDisabled :: Lens' Policy (Maybe Bool)+pKeyguardDisabled+  = lens _pKeyguardDisabled+      (\ s a -> s{_pKeyguardDisabled = a})++-- | Flag to skip hints on the first use. Enterprise admin can enable the+-- system recommendation for apps to skip their user tutorial and other+-- introductory hints on first start-up.+pSkipFirstUseHintsEnabled :: Lens' Policy (Maybe Bool)+pSkipFirstUseHintsEnabled+  = lens _pSkipFirstUseHintsEnabled+      (\ s a -> s{_pSkipFirstUseHintsEnabled = a})++-- | Whether adjusting the master volume is disabled.+pAdjustVolumeDisabled :: Lens' Policy (Maybe Bool)+pAdjustVolumeDisabled+  = lens _pAdjustVolumeDisabled+      (\ s a -> s{_pAdjustVolumeDisabled = a})++-- | The default permission policy for runtime permission requests.+pDefaultPermissionPolicy :: Lens' Policy (Maybe PolicyDefaultPermissionPolicy)+pDefaultPermissionPolicy+  = lens _pDefaultPermissionPolicy+      (\ s a -> s{_pDefaultPermissionPolicy = a})++-- | Whether user uninstallation of applications is disabled.+pUninstallAppsDisabled :: Lens' Policy (Maybe Bool)+pUninstallAppsDisabled+  = lens _pUninstallAppsDisabled+      (\ s a -> s{_pUninstallAppsDisabled = a})++-- | Whether changing the user icon is disabled.+pSetUserIconDisabled :: Lens' Policy (Maybe Bool)+pSetUserIconDisabled+  = lens _pSetUserIconDisabled+      (\ s a -> s{_pSetUserIconDisabled = a})++-- | If present, only the input methods provided by packages in this list are+-- permitted. If this field is present, but the list is empty, then only+-- system input methods are permitted.+pPermittedInputMethods :: Lens' Policy (Maybe PackageNameList)+pPermittedInputMethods+  = lens _pPermittedInputMethods+      (\ s a -> s{_pPermittedInputMethods = a})++-- | Whether screen capture is disabled.+pScreenCaptureDisabled :: Lens' Policy (Maybe Bool)+pScreenCaptureDisabled+  = lens _pScreenCaptureDisabled+      (\ s a -> s{_pScreenCaptureDisabled = a})++-- | Whether adding new users and profiles is disabled.+pAddUserDisabled :: Lens' Policy (Maybe Bool)+pAddUserDisabled+  = lens _pAddUserDisabled+      (\ s a -> s{_pAddUserDisabled = a})++-- | Whether location sharing is disabled.+pShareLocationDisabled :: Lens' Policy (Maybe Bool)+pShareLocationDisabled+  = lens _pShareLocationDisabled+      (\ s a -> s{_pShareLocationDisabled = a})++-- | Whether auto time is required, which prevents the user from manually+-- setting the date and time.+pAutoTimeRequired :: Lens' Policy (Maybe Bool)+pAutoTimeRequired+  = lens _pAutoTimeRequired+      (\ s a -> s{_pAutoTimeRequired = a})++-- | Whether user installation of apps is disabled.+pInstallAppsDisabled :: Lens' Policy (Maybe Bool)+pInstallAppsDisabled+  = lens _pInstallAppsDisabled+      (\ s a -> s{_pInstallAppsDisabled = a})++-- | Whether creating windows besides app windows is disabled.+pCreateWindowsDisabled :: Lens' Policy (Maybe Bool)+pCreateWindowsDisabled+  = lens _pCreateWindowsDisabled+      (\ s a -> s{_pCreateWindowsDisabled = a})++-- | Whether resetting network settings is disabled.+pNetworkResetDisabled :: Lens' Policy (Maybe Bool)+pNetworkResetDisabled+  = lens _pNetworkResetDisabled+      (\ s a -> s{_pNetworkResetDisabled = a})++-- | Whether bluetooth contact sharing is disabled.+pBluetoothContactSharingDisabled :: Lens' Policy (Maybe Bool)+pBluetoothContactSharingDisabled+  = lens _pBluetoothContactSharingDisabled+      (\ s a -> s{_pBluetoothContactSharingDisabled = a})++-- | Explicit permission or group grants or denials for all apps. These+-- values override the default_permission_policy.+pPermissionGrants :: Lens' Policy [PermissionGrant]+pPermissionGrants+  = lens _pPermissionGrants+      (\ s a -> s{_pPermissionGrants = a})+      . _Default+      . _Coerce++-- | A message displayed to the user in the settings screen wherever+-- functionality has been disabled by the admin.+pShortSupportMessage :: Lens' Policy (Maybe UserFacingMessage)+pShortSupportMessage+  = lens _pShortSupportMessage+      (\ s a -> s{_pShortSupportMessage = a})++-- | The battery plugged in modes for which the device stays on. When using+-- this setting, it is recommended to clear maximum_time_to_lock so that+-- the device doesn\'t lock itself while it stays on.+pStayOnPluggedModes :: Lens' Policy [Text]+pStayOnPluggedModes+  = lens _pStayOnPluggedModes+      (\ s a -> s{_pStayOnPluggedModes = a})+      . _Default+      . _Coerce++-- | Whether roaming data services are disabled.+pDataRoamingDisabled :: Lens' Policy (Maybe Bool)+pDataRoamingDisabled+  = lens _pDataRoamingDisabled+      (\ s a -> s{_pDataRoamingDisabled = a})++-- | Whether the user is allowed to enable debugging features.+pDebuggingFeaturesAllowed :: Lens' Policy (Maybe Bool)+pDebuggingFeaturesAllowed+  = lens _pDebuggingFeaturesAllowed+      (\ s a -> s{_pDebuggingFeaturesAllowed = a})++-- | Whether the kiosk custom launcher is enabled. This replaces the home+-- screen with a launcher that locks down the device to the apps installed+-- via the applications setting. The apps appear on a single page in+-- alphabetical order. It is recommended to also use status_bar_disabled to+-- block access to device settings.+pKioskCustomLauncherEnabled :: Lens' Policy (Maybe Bool)+pKioskCustomLauncherEnabled+  = lens _pKioskCustomLauncherEnabled+      (\ s a -> s{_pKioskCustomLauncherEnabled = a})++-- | Whether Wi-Fi networks defined in Open Network Configuration are locked+-- so they can\'t be edited by the user.+pWifiConfigsLockdownEnabled :: Lens' Policy (Maybe Bool)+pWifiConfigsLockdownEnabled+  = lens _pWifiConfigsLockdownEnabled+      (\ s a -> s{_pWifiConfigsLockdownEnabled = a})++-- | Whether USB storage is enabled. Deprecated.+pUsbMassStorageEnabled :: Lens' Policy (Maybe Bool)+pUsbMassStorageEnabled+  = lens _pUsbMassStorageEnabled+      (\ s a -> s{_pUsbMassStorageEnabled = a})++-- | Whether the network escape hatch is enabled. If a network connection+-- can\'t be made at boot time, the escape hatch prompts the user to+-- temporarily connect to a network in order to refresh the device policy.+-- After applying policy, the temporary network will be forgotten and the+-- device will continue booting. This prevents being unable to connect to a+-- network if there is no suitable network in the last policy and the+-- device boots into an app in lock task mode, or the user is otherwise+-- unable to reach device settings.+pNetworkEscapeHatchEnabled :: Lens' Policy (Maybe Bool)+pNetworkEscapeHatchEnabled+  = lens _pNetworkEscapeHatchEnabled+      (\ s a -> s{_pNetworkEscapeHatchEnabled = a})++-- | The system update policy, which controls how OS updates are applied. If+-- the update type is WINDOWED, the update window will automatically apply+-- to Play app updates as well.+pSystemUpdate :: Lens' Policy (Maybe SystemUpdate)+pSystemUpdate+  = lens _pSystemUpdate+      (\ s a -> s{_pSystemUpdate = a})++-- | Whether the user is allowed to enable the \"Unknown Sources\" setting,+-- which allows installation of apps from unknown sources.+pInstallUnknownSourcesAllowed :: Lens' Policy (Maybe Bool)+pInstallUnknownSourcesAllowed+  = lens _pInstallUnknownSourcesAllowed+      (\ s a -> s{_pInstallUnknownSourcesAllowed = a})++-- | The name of the policy in the form+-- enterprises\/{enterpriseId}\/policies\/{policyId}.+pName :: Lens' Policy (Maybe Text)+pName = lens _pName (\ s a -> s{_pName = a})++-- | Allows showing UI on a device for a user to choose a private key alias+-- if there are no matching rules in ChoosePrivateKeyRules. For devices+-- below Android P, setting this may leave enterprise keys vulnerable.+pPrivateKeySelectionEnabled :: Lens' Policy (Maybe Bool)+pPrivateKeySelectionEnabled+  = lens _pPrivateKeySelectionEnabled+      (\ s a -> s{_pPrivateKeySelectionEnabled = a})++-- | Whether outgoing calls are disabled.+pOutgoingCallsDisabled :: Lens' Policy (Maybe Bool)+pOutgoingCallsDisabled+  = lens _pOutgoingCallsDisabled+      (\ s a -> s{_pOutgoingCallsDisabled = a})++-- | Status reporting settings+pStatusReportingSettings :: Lens' Policy (Maybe StatusReportingSettings)+pStatusReportingSettings+  = lens _pStatusReportingSettings+      (\ s a -> s{_pStatusReportingSettings = a})++-- | Whether removing other users is disabled.+pRemoveUserDisabled :: Lens' Policy (Maybe Bool)+pRemoveUserDisabled+  = lens _pRemoveUserDisabled+      (\ s a -> s{_pRemoveUserDisabled = a})++-- | Whether configuring mobile networks is disabled.+pMobileNetworksConfigDisabled :: Lens' Policy (Maybe Bool)+pMobileNetworksConfigDisabled+  = lens _pMobileNetworksConfigDisabled+      (\ s a -> s{_pMobileNetworksConfigDisabled = a})++-- | The version of the policy. This is a read-only field. The version is+-- incremented each time the policy is updated.+pVersion :: Lens' Policy (Maybe Int64)+pVersion+  = lens _pVersion (\ s a -> s{_pVersion = a}) .+      mapping _Coerce++-- | Whether app verification is force-enabled.+pEnsureVerifyAppsEnabled :: Lens' Policy (Maybe Bool)+pEnsureVerifyAppsEnabled+  = lens _pEnsureVerifyAppsEnabled+      (\ s a -> s{_pEnsureVerifyAppsEnabled = a})++-- | Whether changing the wallpaper is disabled.+pSetWallpaperDisabled :: Lens' Policy (Maybe Bool)+pSetWallpaperDisabled+  = lens _pSetWallpaperDisabled+      (\ s a -> s{_pSetWallpaperDisabled = a})++-- | Whether configuring VPN is disabled.+pVPNConfigDisabled :: Lens' Policy (Maybe Bool)+pVPNConfigDisabled+  = lens _pVPNConfigDisabled+      (\ s a -> s{_pVPNConfigDisabled = a})++-- | Network configuration for the device. See configure networks for more+-- information.+pOpenNetworkConfiguration :: Lens' Policy (Maybe PolicyOpenNetworkConfiguration)+pOpenNetworkConfiguration+  = lens _pOpenNetworkConfiguration+      (\ s a -> s{_pOpenNetworkConfiguration = a})++-- | Whether adding or removing accounts is disabled.+pModifyAccountsDisabled :: Lens' Policy (Maybe Bool)+pModifyAccountsDisabled+  = lens _pModifyAccountsDisabled+      (\ s a -> s{_pModifyAccountsDisabled = a})++-- | Whether applications other than the ones configured in applications are+-- blocked from being installed. When set, applications that were installed+-- under a previous policy but no longer appear in the policy are+-- automatically uninstalled.+pBlockApplicationsEnabled :: Lens' Policy (Maybe Bool)+pBlockApplicationsEnabled+  = lens _pBlockApplicationsEnabled+      (\ s a -> s{_pBlockApplicationsEnabled = a})++-- | Disabled keyguard customizations, such as widgets.+pKeyguardDisabledFeatures :: Lens' Policy [Text]+pKeyguardDisabledFeatures+  = lens _pKeyguardDisabledFeatures+      (\ s a -> s{_pKeyguardDisabledFeatures = a})+      . _Default+      . _Coerce++-- | Whether the user is allowed to have fun. Controls whether the Easter egg+-- game in Settings is disabled.+pFunDisabled :: Lens' Policy (Maybe Bool)+pFunDisabled+  = lens _pFunDisabled (\ s a -> s{_pFunDisabled = a})++-- | Whether sending and receiving SMS messages is disabled.+pSmsDisabled :: Lens' Policy (Maybe Bool)+pSmsDisabled+  = lens _pSmsDisabled (\ s a -> s{_pSmsDisabled = a})++-- | Maximum time in milliseconds for user activity until the device locks. A+-- value of 0 means there is no restriction.+pMaximumTimeToLock :: Lens' Policy (Maybe Int64)+pMaximumTimeToLock+  = lens _pMaximumTimeToLock+      (\ s a -> s{_pMaximumTimeToLock = a})+      . mapping _Coerce++-- | Whether using NFC to beam data from apps is disabled.+pOutgoingBeamDisabled :: Lens' Policy (Maybe Bool)+pOutgoingBeamDisabled+  = lens _pOutgoingBeamDisabled+      (\ s a -> s{_pOutgoingBeamDisabled = a})++-- | Whether the status bar is disabled. This disables notifications, quick+-- settings, and other screen overlays that allow escape from full-screen+-- mode.+pStatusBarDisabled :: Lens' Policy (Maybe Bool)+pStatusBarDisabled+  = lens _pStatusBarDisabled+      (\ s a -> s{_pStatusBarDisabled = a})++-- | Whether configuring cell broadcast is disabled.+pCellBroadcastsConfigDisabled :: Lens' Policy (Maybe Bool)+pCellBroadcastsConfigDisabled+  = lens _pCellBroadcastsConfigDisabled+      (\ s a -> s{_pCellBroadcastsConfigDisabled = a})++-- | The device owner information to be shown on the lock screen.+pDeviceOwnerLockScreenInfo :: Lens' Policy (Maybe UserFacingMessage)+pDeviceOwnerLockScreenInfo+  = lens _pDeviceOwnerLockScreenInfo+      (\ s a -> s{_pDeviceOwnerLockScreenInfo = a})++-- | This mode controls which apps are available to the user in the Play+-- Store and the behavior on the device when apps are removed from the+-- policy.+pPlayStoreMode :: Lens' Policy (Maybe PolicyPlayStoreMode)+pPlayStoreMode+  = lens _pPlayStoreMode+      (\ s a -> s{_pPlayStoreMode = a})++-- | Rules declaring which mitigating actions to take when a device is not+-- compliant with its policy. When the conditions for multiple rules are+-- satisfied, all of the mitigating actions for the rules are taken. There+-- is a maximum limit of 100 rules.+pComplianceRules :: Lens' Policy [ComplianceRule]+pComplianceRules+  = lens _pComplianceRules+      (\ s a -> s{_pComplianceRules = a})+      . _Default+      . _Coerce++-- | Whether configuring tethering and portable hotspots is disabled.+pTetheringConfigDisabled :: Lens' Policy (Maybe Bool)+pTetheringConfigDisabled+  = lens _pTetheringConfigDisabled+      (\ s a -> s{_pTetheringConfigDisabled = a})++-- | Account types that can\'t be managed by the user.+pAccountTypesWithManagementDisabled :: Lens' Policy [Text]+pAccountTypesWithManagementDisabled+  = lens _pAccountTypesWithManagementDisabled+      (\ s a ->+         s{_pAccountTypesWithManagementDisabled = a})+      . _Default+      . _Coerce++-- | Whether configuring Wi-Fi access points is disabled.+pWifiConfigDisabled :: Lens' Policy (Maybe Bool)+pWifiConfigDisabled+  = lens _pWifiConfigDisabled+      (\ s a -> s{_pWifiConfigDisabled = a})++-- | Default intent handler activities.+pPersistentPreferredActivities :: Lens' Policy [PersistentPreferredActivity]+pPersistentPreferredActivities+  = lens _pPersistentPreferredActivities+      (\ s a -> s{_pPersistentPreferredActivities = a})+      . _Default+      . _Coerce++-- | Password requirements. DEPRECATED - Use password_policies+pPasswordRequirements :: Lens' Policy (Maybe PasswordRequirements)+pPasswordRequirements+  = lens _pPasswordRequirements+      (\ s a -> s{_pPasswordRequirements = a})++-- | A message displayed to the user in the device administators settings+-- screen.+pLongSupportMessage :: Lens' Policy (Maybe UserFacingMessage)+pLongSupportMessage+  = lens _pLongSupportMessage+      (\ s a -> s{_pLongSupportMessage = a})++-- | The degree of location detection enabled. The user may change the value+-- unless the user is otherwise blocked from accessing device settings.+pLocationMode :: Lens' Policy (Maybe PolicyLocationMode)+pLocationMode+  = lens _pLocationMode+      (\ s a -> s{_pLocationMode = a})++-- | Whether bluetooth is disabled. Prefer this setting over+-- bluetooth_config_disabled because bluetooth_config_disabled can be+-- bypassed by the user.+pBluetoothDisabled :: Lens' Policy (Maybe Bool)+pBluetoothDisabled+  = lens _pBluetoothDisabled+      (\ s a -> s{_pBluetoothDisabled = a})++-- | Whether transferring files over USB is disabled.+pUsbFileTransferDisabled :: Lens' Policy (Maybe Bool)+pUsbFileTransferDisabled+  = lens _pUsbFileTransferDisabled+      (\ s a -> s{_pUsbFileTransferDisabled = a})++-- | Whether all cameras on the device are disabled.+pCameraDisabled :: Lens' Policy (Maybe Bool)+pCameraDisabled+  = lens _pCameraDisabled+      (\ s a -> s{_pCameraDisabled = a})++-- | Policy applied to apps.+pApplications :: Lens' Policy [ApplicationPolicy]+pApplications+  = lens _pApplications+      (\ s a -> s{_pApplications = a})+      . _Default+      . _Coerce++-- | Password requirement policies. Different policies can be set for work+-- profile or fully managed devices by setting the password_scope field in+-- the policy.+pPasswordPolicies :: Lens' Policy [PasswordRequirements]+pPasswordPolicies+  = lens _pPasswordPolicies+      (\ s a -> s{_pPasswordPolicies = a})+      . _Default+      . _Coerce++-- | Whether factory resetting from settings is disabled.+pFactoryResetDisabled :: Lens' Policy (Maybe Bool)+pFactoryResetDisabled+  = lens _pFactoryResetDisabled+      (\ s a -> s{_pFactoryResetDisabled = a})++instance FromJSON Policy where+        parseJSON+          = withObject "Policy"+              (\ o ->+                 Policy' <$>+                   (o .:? "bluetoothConfigDisabled") <*>+                     (o .:? "unmuteMicrophoneDisabled")+                     <*> (o .:? "mountPhysicalMediaDisabled")+                     <*> (o .:? "frpAdminEmails" .!= mempty)+                     <*> (o .:? "appAutoUpdatePolicy")+                     <*> (o .:? "encryptionPolicy")+                     <*> (o .:? "androidDevicePolicyTracks" .!= mempty)+                     <*> (o .:? "safeBootDisabled")+                     <*> (o .:? "alwaysOnVpnPackage")+                     <*> (o .:? "choosePrivateKeyRules" .!= mempty)+                     <*> (o .:? "credentialsConfigDisabled")+                     <*> (o .:? "recommendedGlobalProxy")+                     <*> (o .:? "keyguardDisabled")+                     <*> (o .:? "skipFirstUseHintsEnabled")+                     <*> (o .:? "adjustVolumeDisabled")+                     <*> (o .:? "defaultPermissionPolicy")+                     <*> (o .:? "uninstallAppsDisabled")+                     <*> (o .:? "setUserIconDisabled")+                     <*> (o .:? "permittedInputMethods")+                     <*> (o .:? "screenCaptureDisabled")+                     <*> (o .:? "addUserDisabled")+                     <*> (o .:? "shareLocationDisabled")+                     <*> (o .:? "autoTimeRequired")+                     <*> (o .:? "installAppsDisabled")+                     <*> (o .:? "createWindowsDisabled")+                     <*> (o .:? "networkResetDisabled")+                     <*> (o .:? "bluetoothContactSharingDisabled")+                     <*> (o .:? "permissionGrants" .!= mempty)+                     <*> (o .:? "shortSupportMessage")+                     <*> (o .:? "stayOnPluggedModes" .!= mempty)+                     <*> (o .:? "dataRoamingDisabled")+                     <*> (o .:? "debuggingFeaturesAllowed")+                     <*> (o .:? "kioskCustomLauncherEnabled")+                     <*> (o .:? "wifiConfigsLockdownEnabled")+                     <*> (o .:? "usbMassStorageEnabled")+                     <*> (o .:? "networkEscapeHatchEnabled")+                     <*> (o .:? "systemUpdate")+                     <*> (o .:? "installUnknownSourcesAllowed")+                     <*> (o .:? "name")+                     <*> (o .:? "privateKeySelectionEnabled")+                     <*> (o .:? "outgoingCallsDisabled")+                     <*> (o .:? "statusReportingSettings")+                     <*> (o .:? "removeUserDisabled")+                     <*> (o .:? "mobileNetworksConfigDisabled")+                     <*> (o .:? "version")+                     <*> (o .:? "ensureVerifyAppsEnabled")+                     <*> (o .:? "setWallpaperDisabled")+                     <*> (o .:? "vpnConfigDisabled")+                     <*> (o .:? "openNetworkConfiguration")+                     <*> (o .:? "modifyAccountsDisabled")+                     <*> (o .:? "blockApplicationsEnabled")+                     <*> (o .:? "keyguardDisabledFeatures" .!= mempty)+                     <*> (o .:? "funDisabled")+                     <*> (o .:? "smsDisabled")+                     <*> (o .:? "maximumTimeToLock")+                     <*> (o .:? "outgoingBeamDisabled")+                     <*> (o .:? "statusBarDisabled")+                     <*> (o .:? "cellBroadcastsConfigDisabled")+                     <*> (o .:? "deviceOwnerLockScreenInfo")+                     <*> (o .:? "playStoreMode")+                     <*> (o .:? "complianceRules" .!= mempty)+                     <*> (o .:? "tetheringConfigDisabled")+                     <*>+                     (o .:? "accountTypesWithManagementDisabled" .!=+                        mempty)+                     <*> (o .:? "wifiConfigDisabled")+                     <*>+                     (o .:? "persistentPreferredActivities" .!= mempty)+                     <*> (o .:? "passwordRequirements")+                     <*> (o .:? "longSupportMessage")+                     <*> (o .:? "locationMode")+                     <*> (o .:? "bluetoothDisabled")+                     <*> (o .:? "usbFileTransferDisabled")+                     <*> (o .:? "cameraDisabled")+                     <*> (o .:? "applications" .!= mempty)+                     <*> (o .:? "passwordPolicies" .!= mempty)+                     <*> (o .:? "factoryResetDisabled"))++instance ToJSON Policy where+        toJSON Policy'{..}+          = object+              (catMaybes+                 [("bluetoothConfigDisabled" .=) <$>+                    _pBluetoothConfigDisabled,+                  ("unmuteMicrophoneDisabled" .=) <$>+                    _pUnmuteMicrophoneDisabled,+                  ("mountPhysicalMediaDisabled" .=) <$>+                    _pMountPhysicalMediaDisabled,+                  ("frpAdminEmails" .=) <$> _pFrpAdminEmails,+                  ("appAutoUpdatePolicy" .=) <$> _pAppAutoUpdatePolicy,+                  ("encryptionPolicy" .=) <$> _pEncryptionPolicy,+                  ("androidDevicePolicyTracks" .=) <$>+                    _pAndroidDevicePolicyTracks,+                  ("safeBootDisabled" .=) <$> _pSafeBootDisabled,+                  ("alwaysOnVpnPackage" .=) <$> _pAlwaysOnVPNPackage,+                  ("choosePrivateKeyRules" .=) <$>+                    _pChoosePrivateKeyRules,+                  ("credentialsConfigDisabled" .=) <$>+                    _pCredentialsConfigDisabled,+                  ("recommendedGlobalProxy" .=) <$>+                    _pRecommendedGlobalProxy,+                  ("keyguardDisabled" .=) <$> _pKeyguardDisabled,+                  ("skipFirstUseHintsEnabled" .=) <$>+                    _pSkipFirstUseHintsEnabled,+                  ("adjustVolumeDisabled" .=) <$>+                    _pAdjustVolumeDisabled,+                  ("defaultPermissionPolicy" .=) <$>+                    _pDefaultPermissionPolicy,+                  ("uninstallAppsDisabled" .=) <$>+                    _pUninstallAppsDisabled,+                  ("setUserIconDisabled" .=) <$> _pSetUserIconDisabled,+                  ("permittedInputMethods" .=) <$>+                    _pPermittedInputMethods,+                  ("screenCaptureDisabled" .=) <$>+                    _pScreenCaptureDisabled,+                  ("addUserDisabled" .=) <$> _pAddUserDisabled,+                  ("shareLocationDisabled" .=) <$>+                    _pShareLocationDisabled,+                  ("autoTimeRequired" .=) <$> _pAutoTimeRequired,+                  ("installAppsDisabled" .=) <$> _pInstallAppsDisabled,+                  ("createWindowsDisabled" .=) <$>+                    _pCreateWindowsDisabled,+                  ("networkResetDisabled" .=) <$>+                    _pNetworkResetDisabled,+                  ("bluetoothContactSharingDisabled" .=) <$>+                    _pBluetoothContactSharingDisabled,+                  ("permissionGrants" .=) <$> _pPermissionGrants,+                  ("shortSupportMessage" .=) <$> _pShortSupportMessage,+                  ("stayOnPluggedModes" .=) <$> _pStayOnPluggedModes,+                  ("dataRoamingDisabled" .=) <$> _pDataRoamingDisabled,+                  ("debuggingFeaturesAllowed" .=) <$>+                    _pDebuggingFeaturesAllowed,+                  ("kioskCustomLauncherEnabled" .=) <$>+                    _pKioskCustomLauncherEnabled,+                  ("wifiConfigsLockdownEnabled" .=) <$>+                    _pWifiConfigsLockdownEnabled,+                  ("usbMassStorageEnabled" .=) <$>+                    _pUsbMassStorageEnabled,+                  ("networkEscapeHatchEnabled" .=) <$>+                    _pNetworkEscapeHatchEnabled,+                  ("systemUpdate" .=) <$> _pSystemUpdate,+                  ("installUnknownSourcesAllowed" .=) <$>+                    _pInstallUnknownSourcesAllowed,+                  ("name" .=) <$> _pName,+                  ("privateKeySelectionEnabled" .=) <$>+                    _pPrivateKeySelectionEnabled,+                  ("outgoingCallsDisabled" .=) <$>+                    _pOutgoingCallsDisabled,+                  ("statusReportingSettings" .=) <$>+                    _pStatusReportingSettings,+                  ("removeUserDisabled" .=) <$> _pRemoveUserDisabled,+                  ("mobileNetworksConfigDisabled" .=) <$>+                    _pMobileNetworksConfigDisabled,+                  ("version" .=) <$> _pVersion,+                  ("ensureVerifyAppsEnabled" .=) <$>+                    _pEnsureVerifyAppsEnabled,+                  ("setWallpaperDisabled" .=) <$>+                    _pSetWallpaperDisabled,+                  ("vpnConfigDisabled" .=) <$> _pVPNConfigDisabled,+                  ("openNetworkConfiguration" .=) <$>+                    _pOpenNetworkConfiguration,+                  ("modifyAccountsDisabled" .=) <$>+                    _pModifyAccountsDisabled,+                  ("blockApplicationsEnabled" .=) <$>+                    _pBlockApplicationsEnabled,+                  ("keyguardDisabledFeatures" .=) <$>+                    _pKeyguardDisabledFeatures,+                  ("funDisabled" .=) <$> _pFunDisabled,+                  ("smsDisabled" .=) <$> _pSmsDisabled,+                  ("maximumTimeToLock" .=) <$> _pMaximumTimeToLock,+                  ("outgoingBeamDisabled" .=) <$>+                    _pOutgoingBeamDisabled,+                  ("statusBarDisabled" .=) <$> _pStatusBarDisabled,+                  ("cellBroadcastsConfigDisabled" .=) <$>+                    _pCellBroadcastsConfigDisabled,+                  ("deviceOwnerLockScreenInfo" .=) <$>+                    _pDeviceOwnerLockScreenInfo,+                  ("playStoreMode" .=) <$> _pPlayStoreMode,+                  ("complianceRules" .=) <$> _pComplianceRules,+                  ("tetheringConfigDisabled" .=) <$>+                    _pTetheringConfigDisabled,+                  ("accountTypesWithManagementDisabled" .=) <$>+                    _pAccountTypesWithManagementDisabled,+                  ("wifiConfigDisabled" .=) <$> _pWifiConfigDisabled,+                  ("persistentPreferredActivities" .=) <$>+                    _pPersistentPreferredActivities,+                  ("passwordRequirements" .=) <$>+                    _pPasswordRequirements,+                  ("longSupportMessage" .=) <$> _pLongSupportMessage,+                  ("locationMode" .=) <$> _pLocationMode,+                  ("bluetoothDisabled" .=) <$> _pBluetoothDisabled,+                  ("usbFileTransferDisabled" .=) <$>+                    _pUsbFileTransferDisabled,+                  ("cameraDisabled" .=) <$> _pCameraDisabled,+                  ("applications" .=) <$> _pApplications,+                  ("passwordPolicies" .=) <$> _pPasswordPolicies,+                  ("factoryResetDisabled" .=) <$>+                    _pFactoryResetDisabled])++-- | A compliance rule condition which is satisfied if there exists any+-- matching NonComplianceDetail for the device. A NonComplianceDetail+-- matches a NonComplianceDetailCondition if all the fields which are set+-- within the NonComplianceDetailCondition match the corresponding+-- NonComplianceDetail fields.+--+-- /See:/ 'nonComplianceDetailCondition' smart constructor.+data NonComplianceDetailCondition = NonComplianceDetailCondition'+    { _ncdcPackageName         :: !(Maybe Text)+    , _ncdcNonComplianceReason :: !(Maybe NonComplianceDetailConditionNonComplianceReason)+    , _ncdcSettingName         :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NonComplianceDetailCondition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ncdcPackageName'+--+-- * 'ncdcNonComplianceReason'+--+-- * 'ncdcSettingName'+nonComplianceDetailCondition+    :: NonComplianceDetailCondition+nonComplianceDetailCondition =+    NonComplianceDetailCondition'+    { _ncdcPackageName = Nothing+    , _ncdcNonComplianceReason = Nothing+    , _ncdcSettingName = Nothing+    }++-- | The package name of the app that\'s out of compliance. If not set, then+-- this condition matches any package name.+ncdcPackageName :: Lens' NonComplianceDetailCondition (Maybe Text)+ncdcPackageName+  = lens _ncdcPackageName+      (\ s a -> s{_ncdcPackageName = a})++-- | The reason the device is not in compliance with the setting. If not set,+-- then this condition matches any reason.+ncdcNonComplianceReason :: Lens' NonComplianceDetailCondition (Maybe NonComplianceDetailConditionNonComplianceReason)+ncdcNonComplianceReason+  = lens _ncdcNonComplianceReason+      (\ s a -> s{_ncdcNonComplianceReason = a})++-- | The name of the policy setting. This is the JSON field name of a+-- top-level Policy field. If not set, then this condition matches any+-- setting name.+ncdcSettingName :: Lens' NonComplianceDetailCondition (Maybe Text)+ncdcSettingName+  = lens _ncdcSettingName+      (\ s a -> s{_ncdcSettingName = a})++instance FromJSON NonComplianceDetailCondition where+        parseJSON+          = withObject "NonComplianceDetailCondition"+              (\ o ->+                 NonComplianceDetailCondition' <$>+                   (o .:? "packageName") <*>+                     (o .:? "nonComplianceReason")+                     <*> (o .:? "settingName"))++instance ToJSON NonComplianceDetailCondition where+        toJSON NonComplianceDetailCondition'{..}+          = object+              (catMaybes+                 [("packageName" .=) <$> _ncdcPackageName,+                  ("nonComplianceReason" .=) <$>+                    _ncdcNonComplianceReason,+                  ("settingName" .=) <$> _ncdcSettingName])++-- | Service-specific metadata associated with the operation. It typically+-- contains progress information and common metadata such as create time.+-- Some services might not provide such metadata. Any method that returns a+-- long-running operation should document the metadata type, if any.+--+-- /See:/ 'operationMetadata' smart constructor.+newtype OperationMetadata = OperationMetadata'+    { _omAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OperationMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'omAddtional'+operationMetadata+    :: HashMap Text JSONValue -- ^ 'omAddtional'+    -> OperationMetadata+operationMetadata pOmAddtional_ =+    OperationMetadata'+    { _omAddtional = _Coerce # pOmAddtional_+    }++-- | Properties of the object. Contains field \'type with type URL.+omAddtional :: Lens' OperationMetadata (HashMap Text JSONValue)+omAddtional+  = lens _omAddtional (\ s a -> s{_omAddtional = a}) .+      _Coerce++instance FromJSON OperationMetadata where+        parseJSON+          = withObject "OperationMetadata"+              (\ o -> OperationMetadata' <$> (parseJSONObject o))++instance ToJSON OperationMetadata where+        toJSON = toJSON . _omAddtional++-- | A web token used to access the managed Google Play iframe.+--+-- /See:/ 'webToken' smart constructor.+data WebToken = WebToken'+    { _wtParentFrameURL :: !(Maybe Text)+    , _wtValue          :: !(Maybe Text)+    , _wtName           :: !(Maybe Text)+    , _wtPermissions    :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'WebToken' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wtParentFrameURL'+--+-- * 'wtValue'+--+-- * 'wtName'+--+-- * 'wtPermissions'+webToken+    :: WebToken+webToken =+    WebToken'+    { _wtParentFrameURL = Nothing+    , _wtValue = Nothing+    , _wtName = Nothing+    , _wtPermissions = Nothing+    }++-- | The URL of the parent frame hosting the iframe with the embedded UI. To+-- prevent XSS, the iframe may not be hosted at other URLs. The URL must+-- use the https scheme.+wtParentFrameURL :: Lens' WebToken (Maybe Text)+wtParentFrameURL+  = lens _wtParentFrameURL+      (\ s a -> s{_wtParentFrameURL = a})++-- | The token value which is used in the hosting page to generate the iframe+-- with the embedded UI. This is a read-only field generated by the server.+wtValue :: Lens' WebToken (Maybe Text)+wtValue = lens _wtValue (\ s a -> s{_wtValue = a})++-- | The name of the web token, which is generated by the server during+-- creation in the form+-- enterprises\/{enterpriseId}\/webTokens\/{webTokenId}.+wtName :: Lens' WebToken (Maybe Text)+wtName = lens _wtName (\ s a -> s{_wtName = a})++-- | Permissions available to an admin in the embedded UI. An admin must have+-- all of these permissions in order to view the UI.+wtPermissions :: Lens' WebToken [Text]+wtPermissions+  = lens _wtPermissions+      (\ s a -> s{_wtPermissions = a})+      . _Default+      . _Coerce++instance FromJSON WebToken where+        parseJSON+          = withObject "WebToken"+              (\ o ->+                 WebToken' <$>+                   (o .:? "parentFrameUrl") <*> (o .:? "value") <*>+                     (o .:? "name")+                     <*> (o .:? "permissions" .!= mempty))++instance ToJSON WebToken where+        toJSON WebToken'{..}+          = object+              (catMaybes+                 [("parentFrameUrl" .=) <$> _wtParentFrameURL,+                  ("value" .=) <$> _wtValue, ("name" .=) <$> _wtName,+                  ("permissions" .=) <$> _wtPermissions])++-- | A rule declaring which mitigating actions to take when a device is not+-- compliant with its policy. For every rule, there is always an implicit+-- mitigating action to set policy_compliant to false for the Device+-- resource, and display a message on the device indicating that the device+-- is not compliant with its policy. Other mitigating actions may+-- optionally be taken as well, depending on the field values in the rule.+--+-- /See:/ 'complianceRule' smart constructor.+data ComplianceRule = ComplianceRule'+    { _crAPILevelCondition            :: !(Maybe APILevelCondition)+    , _crDisableApps                  :: !(Maybe Bool)+    , _crPackageNamesToDisable        :: !(Maybe [Text])+    , _crNonComplianceDetailCondition :: !(Maybe NonComplianceDetailCondition)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ComplianceRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crAPILevelCondition'+--+-- * 'crDisableApps'+--+-- * 'crPackageNamesToDisable'+--+-- * 'crNonComplianceDetailCondition'+complianceRule+    :: ComplianceRule+complianceRule =+    ComplianceRule'+    { _crAPILevelCondition = Nothing+    , _crDisableApps = Nothing+    , _crPackageNamesToDisable = Nothing+    , _crNonComplianceDetailCondition = Nothing+    }++-- | A condition which is satisfied if the Android Framework API level on the+-- device doesn\'t meet a minimum requirement.+crAPILevelCondition :: Lens' ComplianceRule (Maybe APILevelCondition)+crAPILevelCondition+  = lens _crAPILevelCondition+      (\ s a -> s{_crAPILevelCondition = a})++-- | If set to true, the rule includes a mitigating action to disable apps so+-- that the device is effectively disabled, but app data is preserved. If+-- the device is running an app in locked task mode, the app will be closed+-- and a UI showing the reason for non-compliance will be displayed.+crDisableApps :: Lens' ComplianceRule (Maybe Bool)+crDisableApps+  = lens _crDisableApps+      (\ s a -> s{_crDisableApps = a})++-- | If set, the rule includes a mitigating action to disable apps specified+-- in the list, but app data is preserved.+crPackageNamesToDisable :: Lens' ComplianceRule [Text]+crPackageNamesToDisable+  = lens _crPackageNamesToDisable+      (\ s a -> s{_crPackageNamesToDisable = a})+      . _Default+      . _Coerce++-- | A condition which is satisfied if there exists any matching+-- NonComplianceDetail for the device.+crNonComplianceDetailCondition :: Lens' ComplianceRule (Maybe NonComplianceDetailCondition)+crNonComplianceDetailCondition+  = lens _crNonComplianceDetailCondition+      (\ s a -> s{_crNonComplianceDetailCondition = a})++instance FromJSON ComplianceRule where+        parseJSON+          = withObject "ComplianceRule"+              (\ o ->+                 ComplianceRule' <$>+                   (o .:? "apiLevelCondition") <*> (o .:? "disableApps")+                     <*> (o .:? "packageNamesToDisable" .!= mempty)+                     <*> (o .:? "nonComplianceDetailCondition"))++instance ToJSON ComplianceRule where+        toJSON ComplianceRule'{..}+          = object+              (catMaybes+                 [("apiLevelCondition" .=) <$> _crAPILevelCondition,+                  ("disableApps" .=) <$> _crDisableApps,+                  ("packageNamesToDisable" .=) <$>+                    _crPackageNamesToDisable,+                  ("nonComplianceDetailCondition" .=) <$>+                    _crNonComplianceDetailCondition])++-- | Requirements for the password used to unlock a device.+--+-- /See:/ 'passwordRequirements' smart constructor.+data PasswordRequirements = PasswordRequirements'+    { _prPasswordMinimumSymbols        :: !(Maybe (Textual Int32))+    , _prMaximumFailedPasswordsForWipe :: !(Maybe (Textual Int32))+    , _prPasswordExpirationTimeout     :: !(Maybe GDuration)+    , _prPasswordMinimumNonLetter      :: !(Maybe (Textual Int32))+    , _prPasswordHistoryLength         :: !(Maybe (Textual Int32))+    , _prPasswordMinimumLetters        :: !(Maybe (Textual Int32))+    , _prPasswordMinimumUpperCase      :: !(Maybe (Textual Int32))+    , _prPasswordMinimumNumeric        :: !(Maybe (Textual Int32))+    , _prPasswordQuality               :: !(Maybe PasswordRequirementsPasswordQuality)+    , _prPasswordMinimumLength         :: !(Maybe (Textual Int32))+    , _prPasswordScope                 :: !(Maybe PasswordRequirementsPasswordScope)+    , _prPasswordMinimumLowerCase      :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PasswordRequirements' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'prPasswordMinimumSymbols'+--+-- * 'prMaximumFailedPasswordsForWipe'+--+-- * 'prPasswordExpirationTimeout'+--+-- * 'prPasswordMinimumNonLetter'+--+-- * 'prPasswordHistoryLength'+--+-- * 'prPasswordMinimumLetters'+--+-- * 'prPasswordMinimumUpperCase'+--+-- * 'prPasswordMinimumNumeric'+--+-- * 'prPasswordQuality'+--+-- * 'prPasswordMinimumLength'+--+-- * 'prPasswordScope'+--+-- * 'prPasswordMinimumLowerCase'+passwordRequirements+    :: PasswordRequirements+passwordRequirements =+    PasswordRequirements'+    { _prPasswordMinimumSymbols = Nothing+    , _prMaximumFailedPasswordsForWipe = Nothing+    , _prPasswordExpirationTimeout = Nothing+    , _prPasswordMinimumNonLetter = Nothing+    , _prPasswordHistoryLength = Nothing+    , _prPasswordMinimumLetters = Nothing+    , _prPasswordMinimumUpperCase = Nothing+    , _prPasswordMinimumNumeric = Nothing+    , _prPasswordQuality = Nothing+    , _prPasswordMinimumLength = Nothing+    , _prPasswordScope = Nothing+    , _prPasswordMinimumLowerCase = Nothing+    }++-- | Minimum number of symbols required in the password. Only enforced when+-- password_quality is COMPLEX.+prPasswordMinimumSymbols :: Lens' PasswordRequirements (Maybe Int32)+prPasswordMinimumSymbols+  = lens _prPasswordMinimumSymbols+      (\ s a -> s{_prPasswordMinimumSymbols = a})+      . mapping _Coerce++-- | Number of incorrect device-unlock passwords that can be entered before a+-- device is wiped. A value of 0 means there is no restriction.+prMaximumFailedPasswordsForWipe :: Lens' PasswordRequirements (Maybe Int32)+prMaximumFailedPasswordsForWipe+  = lens _prMaximumFailedPasswordsForWipe+      (\ s a -> s{_prMaximumFailedPasswordsForWipe = a})+      . mapping _Coerce++-- | Password expiration timeout.+prPasswordExpirationTimeout :: Lens' PasswordRequirements (Maybe Scientific)+prPasswordExpirationTimeout+  = lens _prPasswordExpirationTimeout+      (\ s a -> s{_prPasswordExpirationTimeout = a})+      . mapping _GDuration++-- | Minimum number of non-letter characters (numerical digits or symbols)+-- required in the password. Only enforced when password_quality is+-- COMPLEX.+prPasswordMinimumNonLetter :: Lens' PasswordRequirements (Maybe Int32)+prPasswordMinimumNonLetter+  = lens _prPasswordMinimumNonLetter+      (\ s a -> s{_prPasswordMinimumNonLetter = a})+      . mapping _Coerce++-- | The length of the password history. After setting this field, the user+-- won\'t be able to enter a new password that is the same as any password+-- in the history. A value of 0 means there is no restriction.+prPasswordHistoryLength :: Lens' PasswordRequirements (Maybe Int32)+prPasswordHistoryLength+  = lens _prPasswordHistoryLength+      (\ s a -> s{_prPasswordHistoryLength = a})+      . mapping _Coerce++-- | Minimum number of letters required in the password. Only enforced when+-- password_quality is COMPLEX.+prPasswordMinimumLetters :: Lens' PasswordRequirements (Maybe Int32)+prPasswordMinimumLetters+  = lens _prPasswordMinimumLetters+      (\ s a -> s{_prPasswordMinimumLetters = a})+      . mapping _Coerce++-- | Minimum number of upper case letters required in the password. Only+-- enforced when password_quality is COMPLEX.+prPasswordMinimumUpperCase :: Lens' PasswordRequirements (Maybe Int32)+prPasswordMinimumUpperCase+  = lens _prPasswordMinimumUpperCase+      (\ s a -> s{_prPasswordMinimumUpperCase = a})+      . mapping _Coerce++-- | Minimum number of numerical digits required in the password. Only+-- enforced when password_quality is COMPLEX.+prPasswordMinimumNumeric :: Lens' PasswordRequirements (Maybe Int32)+prPasswordMinimumNumeric+  = lens _prPasswordMinimumNumeric+      (\ s a -> s{_prPasswordMinimumNumeric = a})+      . mapping _Coerce++-- | The required password quality.+prPasswordQuality :: Lens' PasswordRequirements (Maybe PasswordRequirementsPasswordQuality)+prPasswordQuality+  = lens _prPasswordQuality+      (\ s a -> s{_prPasswordQuality = a})++-- | The minimum allowed password length. A value of 0 means there is no+-- restriction. Only enforced when password_quality is NUMERIC,+-- NUMERIC_COMPLEX, ALPHABETIC, ALPHANUMERIC, or COMPLEX.+prPasswordMinimumLength :: Lens' PasswordRequirements (Maybe Int32)+prPasswordMinimumLength+  = lens _prPasswordMinimumLength+      (\ s a -> s{_prPasswordMinimumLength = a})+      . mapping _Coerce++-- | The scope that the password requirement applies to.+prPasswordScope :: Lens' PasswordRequirements (Maybe PasswordRequirementsPasswordScope)+prPasswordScope+  = lens _prPasswordScope+      (\ s a -> s{_prPasswordScope = a})++-- | Minimum number of lower case letters required in the password. Only+-- enforced when password_quality is COMPLEX.+prPasswordMinimumLowerCase :: Lens' PasswordRequirements (Maybe Int32)+prPasswordMinimumLowerCase+  = lens _prPasswordMinimumLowerCase+      (\ s a -> s{_prPasswordMinimumLowerCase = a})+      . mapping _Coerce++instance FromJSON PasswordRequirements where+        parseJSON+          = withObject "PasswordRequirements"+              (\ o ->+                 PasswordRequirements' <$>+                   (o .:? "passwordMinimumSymbols") <*>+                     (o .:? "maximumFailedPasswordsForWipe")+                     <*> (o .:? "passwordExpirationTimeout")+                     <*> (o .:? "passwordMinimumNonLetter")+                     <*> (o .:? "passwordHistoryLength")+                     <*> (o .:? "passwordMinimumLetters")+                     <*> (o .:? "passwordMinimumUpperCase")+                     <*> (o .:? "passwordMinimumNumeric")+                     <*> (o .:? "passwordQuality")+                     <*> (o .:? "passwordMinimumLength")+                     <*> (o .:? "passwordScope")+                     <*> (o .:? "passwordMinimumLowerCase"))++instance ToJSON PasswordRequirements where+        toJSON PasswordRequirements'{..}+          = object+              (catMaybes+                 [("passwordMinimumSymbols" .=) <$>+                    _prPasswordMinimumSymbols,+                  ("maximumFailedPasswordsForWipe" .=) <$>+                    _prMaximumFailedPasswordsForWipe,+                  ("passwordExpirationTimeout" .=) <$>+                    _prPasswordExpirationTimeout,+                  ("passwordMinimumNonLetter" .=) <$>+                    _prPasswordMinimumNonLetter,+                  ("passwordHistoryLength" .=) <$>+                    _prPasswordHistoryLength,+                  ("passwordMinimumLetters" .=) <$>+                    _prPasswordMinimumLetters,+                  ("passwordMinimumUpperCase" .=) <$>+                    _prPasswordMinimumUpperCase,+                  ("passwordMinimumNumeric" .=) <$>+                    _prPasswordMinimumNumeric,+                  ("passwordQuality" .=) <$> _prPasswordQuality,+                  ("passwordMinimumLength" .=) <$>+                    _prPasswordMinimumLength,+                  ("passwordScope" .=) <$> _prPasswordScope,+                  ("passwordMinimumLowerCase" .=) <$>+                    _prPasswordMinimumLowerCase])++-- | Provides detail about non-compliance with a policy setting.+--+-- /See:/ 'nonComplianceDetail' smart constructor.+data NonComplianceDetail = NonComplianceDetail'+    { _ncdFieldPath                 :: !(Maybe Text)+    , _ncdPackageName               :: !(Maybe Text)+    , _ncdInstallationFailureReason :: !(Maybe NonComplianceDetailInstallationFailureReason)+    , _ncdNonComplianceReason       :: !(Maybe NonComplianceDetailNonComplianceReason)+    , _ncdSettingName               :: !(Maybe Text)+    , _ncdCurrentValue              :: !(Maybe JSONValue)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NonComplianceDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ncdFieldPath'+--+-- * 'ncdPackageName'+--+-- * 'ncdInstallationFailureReason'+--+-- * 'ncdNonComplianceReason'+--+-- * 'ncdSettingName'+--+-- * 'ncdCurrentValue'+nonComplianceDetail+    :: NonComplianceDetail+nonComplianceDetail =+    NonComplianceDetail'+    { _ncdFieldPath = Nothing+    , _ncdPackageName = Nothing+    , _ncdInstallationFailureReason = Nothing+    , _ncdNonComplianceReason = Nothing+    , _ncdSettingName = Nothing+    , _ncdCurrentValue = Nothing+    }++-- | For settings with nested fields, if a particular nested field is out of+-- compliance, this specifies the full path to the offending field. The+-- path is formatted in the same way the policy JSON field would be+-- referenced in JavaScript, that is: 1) For object-typed fields, the field+-- name is followed by a dot then by a subfield name. 2) For array-typed+-- fields, the field name is followed by the array index enclosed in+-- brackets. For example, to indicate a problem with the url field in the+-- externalData field in the 3rd application, the path would be+-- applications[2].externalData.url+ncdFieldPath :: Lens' NonComplianceDetail (Maybe Text)+ncdFieldPath+  = lens _ncdFieldPath (\ s a -> s{_ncdFieldPath = a})++-- | The package name indicating which app is out of compliance, if+-- applicable.+ncdPackageName :: Lens' NonComplianceDetail (Maybe Text)+ncdPackageName+  = lens _ncdPackageName+      (\ s a -> s{_ncdPackageName = a})++-- | If package_name is set and the non-compliance reason is+-- APP_NOT_INSTALLED or APP_NOT_UPDATED, the detailed reason the app can\'t+-- be installed or updated.+ncdInstallationFailureReason :: Lens' NonComplianceDetail (Maybe NonComplianceDetailInstallationFailureReason)+ncdInstallationFailureReason+  = lens _ncdInstallationFailureReason+      (\ s a -> s{_ncdInstallationFailureReason = a})++-- | The reason the device is not in compliance with the setting.+ncdNonComplianceReason :: Lens' NonComplianceDetail (Maybe NonComplianceDetailNonComplianceReason)+ncdNonComplianceReason+  = lens _ncdNonComplianceReason+      (\ s a -> s{_ncdNonComplianceReason = a})++-- | The name of the policy setting. This is the JSON field name of a+-- top-level Policy field.+ncdSettingName :: Lens' NonComplianceDetail (Maybe Text)+ncdSettingName+  = lens _ncdSettingName+      (\ s a -> s{_ncdSettingName = a})++-- | If the policy setting could not be applied, the current value of the+-- setting on the device.+ncdCurrentValue :: Lens' NonComplianceDetail (Maybe JSONValue)+ncdCurrentValue+  = lens _ncdCurrentValue+      (\ s a -> s{_ncdCurrentValue = a})++instance FromJSON NonComplianceDetail where+        parseJSON+          = withObject "NonComplianceDetail"+              (\ o ->+                 NonComplianceDetail' <$>+                   (o .:? "fieldPath") <*> (o .:? "packageName") <*>+                     (o .:? "installationFailureReason")+                     <*> (o .:? "nonComplianceReason")+                     <*> (o .:? "settingName")+                     <*> (o .:? "currentValue"))++instance ToJSON NonComplianceDetail where+        toJSON NonComplianceDetail'{..}+          = object+              (catMaybes+                 [("fieldPath" .=) <$> _ncdFieldPath,+                  ("packageName" .=) <$> _ncdPackageName,+                  ("installationFailureReason" .=) <$>+                    _ncdInstallationFailureReason,+                  ("nonComplianceReason" .=) <$>+                    _ncdNonComplianceReason,+                  ("settingName" .=) <$> _ncdSettingName,+                  ("currentValue" .=) <$> _ncdCurrentValue])++-- | An app-related event.+--+-- /See:/ 'applicationEvent' smart constructor.+data ApplicationEvent = ApplicationEvent'+    { _aeEventType  :: !(Maybe ApplicationEventEventType)+    , _aeCreateTime :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ApplicationEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aeEventType'+--+-- * 'aeCreateTime'+applicationEvent+    :: ApplicationEvent+applicationEvent =+    ApplicationEvent'+    { _aeEventType = Nothing+    , _aeCreateTime = Nothing+    }++-- | App event type.+aeEventType :: Lens' ApplicationEvent (Maybe ApplicationEventEventType)+aeEventType+  = lens _aeEventType (\ s a -> s{_aeEventType = a})++-- | The creation time of the event.+aeCreateTime :: Lens' ApplicationEvent (Maybe UTCTime)+aeCreateTime+  = lens _aeCreateTime (\ s a -> s{_aeCreateTime = a})+      . mapping _DateTime++instance FromJSON ApplicationEvent where+        parseJSON+          = withObject "ApplicationEvent"+              (\ o ->+                 ApplicationEvent' <$>+                   (o .:? "eventType") <*> (o .:? "createTime"))++instance ToJSON ApplicationEvent where+        toJSON ApplicationEvent'{..}+          = object+              (catMaybes+                 [("eventType" .=) <$> _aeEventType,+                  ("createTime" .=) <$> _aeCreateTime])++-- | A terms and conditions page to be accepted during provisioning.+--+-- /See:/ 'termsAndConditions' smart constructor.+data TermsAndConditions = TermsAndConditions'+    { _tacContent :: !(Maybe UserFacingMessage)+    , _tacHeader  :: !(Maybe UserFacingMessage)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TermsAndConditions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tacContent'+--+-- * 'tacHeader'+termsAndConditions+    :: TermsAndConditions+termsAndConditions =+    TermsAndConditions'+    { _tacContent = Nothing+    , _tacHeader = Nothing+    }++-- | A well-formatted HTML string. It will be parsed on the client with+-- android.text.Html#fromHtml.+tacContent :: Lens' TermsAndConditions (Maybe UserFacingMessage)+tacContent+  = lens _tacContent (\ s a -> s{_tacContent = a})++-- | A short header which appears above the HTML content.+tacHeader :: Lens' TermsAndConditions (Maybe UserFacingMessage)+tacHeader+  = lens _tacHeader (\ s a -> s{_tacHeader = a})++instance FromJSON TermsAndConditions where+        parseJSON+          = withObject "TermsAndConditions"+              (\ o ->+                 TermsAndConditions' <$>+                   (o .:? "content") <*> (o .:? "header"))++instance ToJSON TermsAndConditions where+        toJSON TermsAndConditions'{..}+          = object+              (catMaybes+                 [("content" .=) <$> _tacContent,+                  ("header" .=) <$> _tacHeader])++-- | The normal response of the operation in case of success. If the original+-- method returns no data on success, such as Delete, the response is+-- google.protobuf.Empty. If the original method is standard+-- Get\/Create\/Update, the response should be the resource. For other+-- methods, the response should have the type XxxResponse, where Xxx is the+-- original method name. For example, if the original method name is+-- TakeSnapshot(), the inferred response type is TakeSnapshotResponse.+--+-- /See:/ 'operationResponse' smart constructor.+newtype OperationResponse = OperationResponse'+    { _orAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OperationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'orAddtional'+operationResponse+    :: HashMap Text JSONValue -- ^ 'orAddtional'+    -> OperationResponse+operationResponse pOrAddtional_ =+    OperationResponse'+    { _orAddtional = _Coerce # pOrAddtional_+    }++-- | Properties of the object. Contains field \'type with type URL.+orAddtional :: Lens' OperationResponse (HashMap Text JSONValue)+orAddtional+  = lens _orAddtional (\ s a -> s{_orAddtional = a}) .+      _Coerce++instance FromJSON OperationResponse where+        parseJSON+          = withObject "OperationResponse"+              (\ o -> OperationResponse' <$> (parseJSONObject o))++instance ToJSON OperationResponse where+        toJSON = toJSON . _orAddtional++-- | Provides a user-facing message with locale info. The maximum message+-- length is 4096 characters.+--+-- /See:/ 'userFacingMessage' smart constructor.+data UserFacingMessage = UserFacingMessage'+    { _ufmLocalizedMessages :: !(Maybe UserFacingMessageLocalizedMessages)+    , _ufmDefaultMessage    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserFacingMessage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ufmLocalizedMessages'+--+-- * 'ufmDefaultMessage'+userFacingMessage+    :: UserFacingMessage+userFacingMessage =+    UserFacingMessage'+    { _ufmLocalizedMessages = Nothing+    , _ufmDefaultMessage = Nothing+    }++-- | A map containing pairs, where locale is a well-formed BCP 47 language+-- (https:\/\/www.w3.org\/International\/articles\/language-tags\/) code,+-- such as en-US, es-ES, or fr.+ufmLocalizedMessages :: Lens' UserFacingMessage (Maybe UserFacingMessageLocalizedMessages)+ufmLocalizedMessages+  = lens _ufmLocalizedMessages+      (\ s a -> s{_ufmLocalizedMessages = a})++-- | The default message displayed if no localized message is specified or+-- the user\'s locale doesn\'t match with any of the localized messages. A+-- default message must be provided if any localized messages are provided.+ufmDefaultMessage :: Lens' UserFacingMessage (Maybe Text)+ufmDefaultMessage+  = lens _ufmDefaultMessage+      (\ s a -> s{_ufmDefaultMessage = a})++instance FromJSON UserFacingMessage where+        parseJSON+          = withObject "UserFacingMessage"+              (\ o ->+                 UserFacingMessage' <$>+                   (o .:? "localizedMessages") <*>+                     (o .:? "defaultMessage"))++instance ToJSON UserFacingMessage where+        toJSON UserFacingMessage'{..}+          = object+              (catMaybes+                 [("localizedMessages" .=) <$> _ufmLocalizedMessages,+                  ("defaultMessage" .=) <$> _ufmDefaultMessage])++-- | Information about device software.+--+-- /See:/ 'softwareInfo' smart constructor.+data SoftwareInfo = SoftwareInfo'+    { _siSecurityPatchLevel             :: !(Maybe Text)+    , _siAndroidDevicePolicyVersionName :: !(Maybe Text)+    , _siDeviceKernelVersion            :: !(Maybe Text)+    , _siAndroidDevicePolicyVersionCode :: !(Maybe (Textual Int32))+    , _siDeviceBuildSignature           :: !(Maybe Text)+    , _siBootLoaderVersion              :: !(Maybe Text)+    , _siAndroidBuildTime               :: !(Maybe DateTime')+    , _siPrimaryLanguageCode            :: !(Maybe Text)+    , _siAndroidBuildNumber             :: !(Maybe Text)+    , _siAndroidVersion                 :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SoftwareInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siSecurityPatchLevel'+--+-- * 'siAndroidDevicePolicyVersionName'+--+-- * 'siDeviceKernelVersion'+--+-- * 'siAndroidDevicePolicyVersionCode'+--+-- * 'siDeviceBuildSignature'+--+-- * 'siBootLoaderVersion'+--+-- * 'siAndroidBuildTime'+--+-- * 'siPrimaryLanguageCode'+--+-- * 'siAndroidBuildNumber'+--+-- * 'siAndroidVersion'+softwareInfo+    :: SoftwareInfo+softwareInfo =+    SoftwareInfo'+    { _siSecurityPatchLevel = Nothing+    , _siAndroidDevicePolicyVersionName = Nothing+    , _siDeviceKernelVersion = Nothing+    , _siAndroidDevicePolicyVersionCode = Nothing+    , _siDeviceBuildSignature = Nothing+    , _siBootLoaderVersion = Nothing+    , _siAndroidBuildTime = Nothing+    , _siPrimaryLanguageCode = Nothing+    , _siAndroidBuildNumber = Nothing+    , _siAndroidVersion = Nothing+    }++-- | Security patch level, e.g. 2016-05-01.+siSecurityPatchLevel :: Lens' SoftwareInfo (Maybe Text)+siSecurityPatchLevel+  = lens _siSecurityPatchLevel+      (\ s a -> s{_siSecurityPatchLevel = a})++-- | The Android Device Policy app version as displayed to the user.+siAndroidDevicePolicyVersionName :: Lens' SoftwareInfo (Maybe Text)+siAndroidDevicePolicyVersionName+  = lens _siAndroidDevicePolicyVersionName+      (\ s a -> s{_siAndroidDevicePolicyVersionName = a})++-- | Kernel version, for example, 2.6.32.9-g103d848.+siDeviceKernelVersion :: Lens' SoftwareInfo (Maybe Text)+siDeviceKernelVersion+  = lens _siDeviceKernelVersion+      (\ s a -> s{_siDeviceKernelVersion = a})++-- | The Android Device Policy app version code.+siAndroidDevicePolicyVersionCode :: Lens' SoftwareInfo (Maybe Int32)+siAndroidDevicePolicyVersionCode+  = lens _siAndroidDevicePolicyVersionCode+      (\ s a -> s{_siAndroidDevicePolicyVersionCode = a})+      . mapping _Coerce++-- | SHA-256 hash of android.content.pm.Signature+-- (https:\/\/developer.android.com\/reference\/android\/content\/pm\/Signature.html)+-- associated with the system package, which can be used to verify that the+-- system build hasn\'t been modified.+siDeviceBuildSignature :: Lens' SoftwareInfo (Maybe Text)+siDeviceBuildSignature+  = lens _siDeviceBuildSignature+      (\ s a -> s{_siDeviceBuildSignature = a})++-- | The system bootloader version number, e.g. 0.6.7.+siBootLoaderVersion :: Lens' SoftwareInfo (Maybe Text)+siBootLoaderVersion+  = lens _siBootLoaderVersion+      (\ s a -> s{_siBootLoaderVersion = a})++-- | Build time.+siAndroidBuildTime :: Lens' SoftwareInfo (Maybe UTCTime)+siAndroidBuildTime+  = lens _siAndroidBuildTime+      (\ s a -> s{_siAndroidBuildTime = a})+      . mapping _DateTime++-- | An IETF BCP 47 language code for the primary locale on the device.+siPrimaryLanguageCode :: Lens' SoftwareInfo (Maybe Text)+siPrimaryLanguageCode+  = lens _siPrimaryLanguageCode+      (\ s a -> s{_siPrimaryLanguageCode = a})++-- | Android build ID string meant for displaying to the user. For example,+-- shamu-userdebug 6.0.1 MOB30I 2756745 dev-keys.+siAndroidBuildNumber :: Lens' SoftwareInfo (Maybe Text)+siAndroidBuildNumber+  = lens _siAndroidBuildNumber+      (\ s a -> s{_siAndroidBuildNumber = a})++-- | The user-visible Android version string. For example, 6.0.1.+siAndroidVersion :: Lens' SoftwareInfo (Maybe Text)+siAndroidVersion+  = lens _siAndroidVersion+      (\ s a -> s{_siAndroidVersion = a})++instance FromJSON SoftwareInfo where+        parseJSON+          = withObject "SoftwareInfo"+              (\ o ->+                 SoftwareInfo' <$>+                   (o .:? "securityPatchLevel") <*>+                     (o .:? "androidDevicePolicyVersionName")+                     <*> (o .:? "deviceKernelVersion")+                     <*> (o .:? "androidDevicePolicyVersionCode")+                     <*> (o .:? "deviceBuildSignature")+                     <*> (o .:? "bootloaderVersion")+                     <*> (o .:? "androidBuildTime")+                     <*> (o .:? "primaryLanguageCode")+                     <*> (o .:? "androidBuildNumber")+                     <*> (o .:? "androidVersion"))++instance ToJSON SoftwareInfo where+        toJSON SoftwareInfo'{..}+          = object+              (catMaybes+                 [("securityPatchLevel" .=) <$> _siSecurityPatchLevel,+                  ("androidDevicePolicyVersionName" .=) <$>+                    _siAndroidDevicePolicyVersionName,+                  ("deviceKernelVersion" .=) <$>+                    _siDeviceKernelVersion,+                  ("androidDevicePolicyVersionCode" .=) <$>+                    _siAndroidDevicePolicyVersionCode,+                  ("deviceBuildSignature" .=) <$>+                    _siDeviceBuildSignature,+                  ("bootloaderVersion" .=) <$> _siBootLoaderVersion,+                  ("androidBuildTime" .=) <$> _siAndroidBuildTime,+                  ("primaryLanguageCode" .=) <$>+                    _siPrimaryLanguageCode,+                  ("androidBuildNumber" .=) <$> _siAndroidBuildNumber,+                  ("androidVersion" .=) <$> _siAndroidVersion])++-- | A permission required by the app.+--+-- /See:/ 'applicationPermission' smart constructor.+data ApplicationPermission = ApplicationPermission'+    { _apName         :: !(Maybe Text)+    , _apDescription  :: !(Maybe Text)+    , _apPermissionId :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ApplicationPermission' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'apName'+--+-- * 'apDescription'+--+-- * 'apPermissionId'+applicationPermission+    :: ApplicationPermission+applicationPermission =+    ApplicationPermission'+    { _apName = Nothing+    , _apDescription = Nothing+    , _apPermissionId = Nothing+    }++-- | The name of the permission. Localized.+apName :: Lens' ApplicationPermission (Maybe Text)+apName = lens _apName (\ s a -> s{_apName = a})++-- | A longer description of the permission, providing more detail on what it+-- affects. Localized.+apDescription :: Lens' ApplicationPermission (Maybe Text)+apDescription+  = lens _apDescription+      (\ s a -> s{_apDescription = a})++-- | An opaque string uniquely identifying the permission. Not localized.+apPermissionId :: Lens' ApplicationPermission (Maybe Text)+apPermissionId+  = lens _apPermissionId+      (\ s a -> s{_apPermissionId = a})++instance FromJSON ApplicationPermission where+        parseJSON+          = withObject "ApplicationPermission"+              (\ o ->+                 ApplicationPermission' <$>+                   (o .:? "name") <*> (o .:? "description") <*>+                     (o .:? "permissionId"))++instance ToJSON ApplicationPermission where+        toJSON ApplicationPermission'{..}+          = object+              (catMaybes+                 [("name" .=) <$> _apName,+                  ("description" .=) <$> _apDescription,+                  ("permissionId" .=) <$> _apPermissionId])
+ gen/Network/Google/AndroidManagement/Types/Sum.hs view
@@ -0,0 +1,1392 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.AndroidManagement.Types.Sum+-- 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)+--+module Network.Google.AndroidManagement.Types.Sum where++import           Network.Google.Prelude hiding (Bytes)++-- | Event type.+data PowerManagementEventEventType+    = PowerManagementEventTypeUnspecified+      -- ^ @POWER_MANAGEMENT_EVENT_TYPE_UNSPECIFIED@+      -- Unspecified. No events have this type.+    | BatteryLevelCollected+      -- ^ @BATTERY_LEVEL_COLLECTED@+      -- Battery level was measured.+    | PowerConnected+      -- ^ @POWER_CONNECTED@+      -- The device started charging.+    | PowerDisconnected+      -- ^ @POWER_DISCONNECTED@+      -- The device stopped charging.+    | BatteryLow+      -- ^ @BATTERY_LOW@+      -- The device entered low-power mode.+    | BatteryOkay+      -- ^ @BATTERY_OKAY@+      -- The device exited low-power mode.+    | BootCompleted+      -- ^ @BOOT_COMPLETED@+      -- The device booted.+    | Shutdown+      -- ^ @SHUTDOWN@+      -- The device shut down.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PowerManagementEventEventType++instance FromHttpApiData PowerManagementEventEventType where+    parseQueryParam = \case+        "POWER_MANAGEMENT_EVENT_TYPE_UNSPECIFIED" -> Right PowerManagementEventTypeUnspecified+        "BATTERY_LEVEL_COLLECTED" -> Right BatteryLevelCollected+        "POWER_CONNECTED" -> Right PowerConnected+        "POWER_DISCONNECTED" -> Right PowerDisconnected+        "BATTERY_LOW" -> Right BatteryLow+        "BATTERY_OKAY" -> Right BatteryOkay+        "BOOT_COMPLETED" -> Right BootCompleted+        "SHUTDOWN" -> Right Shutdown+        x -> Left ("Unable to parse PowerManagementEventEventType from: " <> x)++instance ToHttpApiData PowerManagementEventEventType where+    toQueryParam = \case+        PowerManagementEventTypeUnspecified -> "POWER_MANAGEMENT_EVENT_TYPE_UNSPECIFIED"+        BatteryLevelCollected -> "BATTERY_LEVEL_COLLECTED"+        PowerConnected -> "POWER_CONNECTED"+        PowerDisconnected -> "POWER_DISCONNECTED"+        BatteryLow -> "BATTERY_LOW"+        BatteryOkay -> "BATTERY_OKAY"+        BootCompleted -> "BOOT_COMPLETED"+        Shutdown -> "SHUTDOWN"++instance FromJSON PowerManagementEventEventType where+    parseJSON = parseJSONText "PowerManagementEventEventType"++instance ToJSON PowerManagementEventEventType where+    toJSON = toJSONText++-- | The type of system update to configure.+data SystemUpdateType+    = SystemUpdateTypeUnspecified+      -- ^ @SYSTEM_UPDATE_TYPE_UNSPECIFIED@+      -- Follow the default update behavior for the device, which typically+      -- requires the user to accept system updates.+    | Automatic+      -- ^ @AUTOMATIC@+      -- Install automatically as soon as an update is available.+    | Windowed+      -- ^ @WINDOWED@+      -- Install automatically within a daily maintenance window. This also+      -- configures Play apps to be updated within the window. This is strongly+      -- recommended for kiosk devices because this is the only way apps+      -- persistently pinned to the foreground can be updated by Play.+    | Postpone+      -- ^ @POSTPONE@+      -- Postpone automatic install up to a maximum of 30 days.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable SystemUpdateType++instance FromHttpApiData SystemUpdateType where+    parseQueryParam = \case+        "SYSTEM_UPDATE_TYPE_UNSPECIFIED" -> Right SystemUpdateTypeUnspecified+        "AUTOMATIC" -> Right Automatic+        "WINDOWED" -> Right Windowed+        "POSTPONE" -> Right Postpone+        x -> Left ("Unable to parse SystemUpdateType from: " <> x)++instance ToHttpApiData SystemUpdateType where+    toQueryParam = \case+        SystemUpdateTypeUnspecified -> "SYSTEM_UPDATE_TYPE_UNSPECIFIED"+        Automatic -> "AUTOMATIC"+        Windowed -> "WINDOWED"+        Postpone -> "POSTPONE"++instance FromJSON SystemUpdateType where+    parseJSON = parseJSONText "SystemUpdateType"++instance ToJSON SystemUpdateType where+    toJSON = toJSONText++-- | The state to be applied to the device. This field can be modified by a+-- patch request. Note that when calling enterprises.devices.patch, ACTIVE+-- and DISABLED are the only allowable values. To enter the device into a+-- DELETED state, call enterprises.devices.delete.+data DeviceState+    = DeviceStateUnspecified+      -- ^ @DEVICE_STATE_UNSPECIFIED@+      -- This value is disallowed.+    | Active+      -- ^ @ACTIVE@+      -- The device is active.+    | Disabled+      -- ^ @DISABLED@+      -- The device is disabled.+    | Deleted+      -- ^ @DELETED@+      -- The device was deleted. This state will never be returned by an API+      -- call, but is used in the final status report published to Cloud Pub\/Sub+      -- when the device acknowledges the deletion.+    | Provisioning+      -- ^ @PROVISIONING@+      -- The device is being provisioned. Newly enrolled devices are in this+      -- state until they have a policy applied.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DeviceState++instance FromHttpApiData DeviceState where+    parseQueryParam = \case+        "DEVICE_STATE_UNSPECIFIED" -> Right DeviceStateUnspecified+        "ACTIVE" -> Right Active+        "DISABLED" -> Right Disabled+        "DELETED" -> Right Deleted+        "PROVISIONING" -> Right Provisioning+        x -> Left ("Unable to parse DeviceState from: " <> x)++instance ToHttpApiData DeviceState where+    toQueryParam = \case+        DeviceStateUnspecified -> "DEVICE_STATE_UNSPECIFIED"+        Active -> "ACTIVE"+        Disabled -> "DISABLED"+        Deleted -> "DELETED"+        Provisioning -> "PROVISIONING"++instance FromJSON DeviceState where+    parseJSON = parseJSONText "DeviceState"++instance ToJSON DeviceState where+    toJSON = toJSONText++-- | If the command failed, an error code explaining the failure. This is not+-- set when the command is cancelled by the caller.+data CommandErrorCode+    = CommandErrorCodeUnspecified+      -- ^ @COMMAND_ERROR_CODE_UNSPECIFIED@+      -- There was no error.+    | Unknown+      -- ^ @UNKNOWN@+      -- An unknown error occurred.+    | APILevel+      -- ^ @API_LEVEL@+      -- The API level of the device does not support this command.+    | ManagementMode+      -- ^ @MANAGEMENT_MODE@+      -- The management mode (profile owner, device owner, etc.) does not support+      -- the command.+    | InvalidValue+      -- ^ @INVALID_VALUE@+      -- The command has an invalid parameter value.+    | Unsupported+      -- ^ @UNSUPPORTED@+      -- The device doesn\'t support the command. Updating Android Device Policy+      -- to the latest version may resolve the issue.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable CommandErrorCode++instance FromHttpApiData CommandErrorCode where+    parseQueryParam = \case+        "COMMAND_ERROR_CODE_UNSPECIFIED" -> Right CommandErrorCodeUnspecified+        "UNKNOWN" -> Right Unknown+        "API_LEVEL" -> Right APILevel+        "MANAGEMENT_MODE" -> Right ManagementMode+        "INVALID_VALUE" -> Right InvalidValue+        "UNSUPPORTED" -> Right Unsupported+        x -> Left ("Unable to parse CommandErrorCode from: " <> x)++instance ToHttpApiData CommandErrorCode where+    toQueryParam = \case+        CommandErrorCodeUnspecified -> "COMMAND_ERROR_CODE_UNSPECIFIED"+        Unknown -> "UNKNOWN"+        APILevel -> "API_LEVEL"+        ManagementMode -> "MANAGEMENT_MODE"+        InvalidValue -> "INVALID_VALUE"+        Unsupported -> "UNSUPPORTED"++instance FromJSON CommandErrorCode where+    parseJSON = parseJSONText "CommandErrorCode"++instance ToJSON CommandErrorCode where+    toJSON = toJSONText++-- | The policy for granting the permission.+data PermissionGrantPolicy+    = PermissionPolicyUnspecified+      -- ^ @PERMISSION_POLICY_UNSPECIFIED@+      -- Policy not specified. If no policy is specified for a permission at any+      -- level, then the PROMPT behavior is used by default.+    | Prompt+      -- ^ @PROMPT@+      -- Prompt the user to grant a permission.+    | Grant+      -- ^ @GRANT@+      -- Automatically grant a permission.+    | Deny+      -- ^ @DENY@+      -- Automatically deny a permission.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PermissionGrantPolicy++instance FromHttpApiData PermissionGrantPolicy where+    parseQueryParam = \case+        "PERMISSION_POLICY_UNSPECIFIED" -> Right PermissionPolicyUnspecified+        "PROMPT" -> Right Prompt+        "GRANT" -> Right Grant+        "DENY" -> Right Deny+        x -> Left ("Unable to parse PermissionGrantPolicy from: " <> x)++instance ToHttpApiData PermissionGrantPolicy where+    toQueryParam = \case+        PermissionPolicyUnspecified -> "PERMISSION_POLICY_UNSPECIFIED"+        Prompt -> "PROMPT"+        Grant -> "GRANT"+        Deny -> "DENY"++instance FromJSON PermissionGrantPolicy where+    parseJSON = parseJSONText "PermissionGrantPolicy"++instance ToJSON PermissionGrantPolicy where+    toJSON = toJSONText++-- | State of the display.+data DisplayState+    = DisplayStateUnspecified+      -- ^ @DISPLAY_STATE_UNSPECIFIED@+      -- This value is disallowed.+    | Off+      -- ^ @OFF@+      -- Display is off.+    | ON+      -- ^ @ON@+      -- Display is on.+    | Doze+      -- ^ @DOZE@+      -- Display is dozing in a low power state+    | Suspended+      -- ^ @SUSPENDED@+      -- Display is dozing in a suspended low power state.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DisplayState++instance FromHttpApiData DisplayState where+    parseQueryParam = \case+        "DISPLAY_STATE_UNSPECIFIED" -> Right DisplayStateUnspecified+        "OFF" -> Right Off+        "ON" -> Right ON+        "DOZE" -> Right Doze+        "SUSPENDED" -> Right Suspended+        x -> Left ("Unable to parse DisplayState from: " <> x)++instance ToHttpApiData DisplayState where+    toQueryParam = \case+        DisplayStateUnspecified -> "DISPLAY_STATE_UNSPECIFIED"+        Off -> "OFF"+        ON -> "ON"+        Doze -> "DOZE"+        Suspended -> "SUSPENDED"++instance FromJSON DisplayState where+    parseJSON = parseJSONText "DisplayState"++instance ToJSON DisplayState where+    toJSON = toJSONText++-- | This mode controls which apps are available to the user in the Play+-- Store and the behavior on the device when apps are removed from the+-- policy.+data PolicyPlayStoreMode+    = PlayStoreModeUnspecified+      -- ^ @PLAY_STORE_MODE_UNSPECIFIED@+      -- Unspecified. Defaults to WHITELIST.+    | WhiteList+      -- ^ @WHITELIST@+      -- Only apps that are in the policy are available and any app not in the+      -- policy will be automatically uninstalled from the device.+    | BlackList+      -- ^ @BLACKLIST@+      -- All apps are available and any app that should not be on the device+      -- should be explicitly markeds as \'BLOCKED\' in the applications policy.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PolicyPlayStoreMode++instance FromHttpApiData PolicyPlayStoreMode where+    parseQueryParam = \case+        "PLAY_STORE_MODE_UNSPECIFIED" -> Right PlayStoreModeUnspecified+        "WHITELIST" -> Right WhiteList+        "BLACKLIST" -> Right BlackList+        x -> Left ("Unable to parse PolicyPlayStoreMode from: " <> x)++instance ToHttpApiData PolicyPlayStoreMode where+    toQueryParam = \case+        PlayStoreModeUnspecified -> "PLAY_STORE_MODE_UNSPECIFIED"+        WhiteList -> "WHITELIST"+        BlackList -> "BLACKLIST"++instance FromJSON PolicyPlayStoreMode where+    parseJSON = parseJSONText "PolicyPlayStoreMode"++instance ToJSON PolicyPlayStoreMode where+    toJSON = toJSONText++-- | The type of management mode Android Device Policy takes on the device.+-- This influences which policy settings are supported.+data DeviceManagementMode+    = ManagementModeUnspecified+      -- ^ @MANAGEMENT_MODE_UNSPECIFIED@+      -- This value is disallowed.+    | DeviceOwner+      -- ^ @DEVICE_OWNER@+      -- Device owner. Android Device Policy has full control over the device.+    | ProFileOwner+      -- ^ @PROFILE_OWNER@+      -- Profile owner. Android Device Policy has control over a managed profile+      -- on the device.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DeviceManagementMode++instance FromHttpApiData DeviceManagementMode where+    parseQueryParam = \case+        "MANAGEMENT_MODE_UNSPECIFIED" -> Right ManagementModeUnspecified+        "DEVICE_OWNER" -> Right DeviceOwner+        "PROFILE_OWNER" -> Right ProFileOwner+        x -> Left ("Unable to parse DeviceManagementMode from: " <> x)++instance ToHttpApiData DeviceManagementMode where+    toQueryParam = \case+        ManagementModeUnspecified -> "MANAGEMENT_MODE_UNSPECIFIED"+        DeviceOwner -> "DEVICE_OWNER"+        ProFileOwner -> "PROFILE_OWNER"++instance FromJSON DeviceManagementMode where+    parseJSON = parseJSONText "DeviceManagementMode"++instance ToJSON DeviceManagementMode where+    toJSON = toJSONText++-- | The source of the package.+data ApplicationReportApplicationSource+    = ApplicationSourceUnspecified+      -- ^ @APPLICATION_SOURCE_UNSPECIFIED@+      -- The app was sideloaded from an unspecified source.+    | SystemAppFactoryVersion+      -- ^ @SYSTEM_APP_FACTORY_VERSION@+      -- This is a system app from the device\'s factory image.+    | SystemAppUpdatedVersion+      -- ^ @SYSTEM_APP_UPDATED_VERSION@+      -- This is an updated system app.+    | InstalledFromPlayStore+      -- ^ @INSTALLED_FROM_PLAY_STORE@+      -- The app was installed from the Google Play Store.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ApplicationReportApplicationSource++instance FromHttpApiData ApplicationReportApplicationSource where+    parseQueryParam = \case+        "APPLICATION_SOURCE_UNSPECIFIED" -> Right ApplicationSourceUnspecified+        "SYSTEM_APP_FACTORY_VERSION" -> Right SystemAppFactoryVersion+        "SYSTEM_APP_UPDATED_VERSION" -> Right SystemAppUpdatedVersion+        "INSTALLED_FROM_PLAY_STORE" -> Right InstalledFromPlayStore+        x -> Left ("Unable to parse ApplicationReportApplicationSource from: " <> x)++instance ToHttpApiData ApplicationReportApplicationSource where+    toQueryParam = \case+        ApplicationSourceUnspecified -> "APPLICATION_SOURCE_UNSPECIFIED"+        SystemAppFactoryVersion -> "SYSTEM_APP_FACTORY_VERSION"+        SystemAppUpdatedVersion -> "SYSTEM_APP_UPDATED_VERSION"+        InstalledFromPlayStore -> "INSTALLED_FROM_PLAY_STORE"++instance FromJSON ApplicationReportApplicationSource where+    parseJSON = parseJSONText "ApplicationReportApplicationSource"++instance ToJSON ApplicationReportApplicationSource where+    toJSON = toJSONText++-- | The type of installation to perform.+data ApplicationPolicyInstallType+    = InstallTypeUnspecified+      -- ^ @INSTALL_TYPE_UNSPECIFIED@+      -- Unspecified. Defaults to AVAILABLE.+    | Preinstalled+      -- ^ @PREINSTALLED@+      -- The app is automatically installed and can be removed by the user.+    | ForceInstalled+      -- ^ @FORCE_INSTALLED@+      -- The app is automatically installed and can\'t be removed by the user.+    | Blocked+      -- ^ @BLOCKED@+      -- The app is blocked and can\'t be installed. If the app was installed+      -- under a previous policy, it will be uninstalled.+    | Available+      -- ^ @AVAILABLE@+      -- The app is available to install.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ApplicationPolicyInstallType++instance FromHttpApiData ApplicationPolicyInstallType where+    parseQueryParam = \case+        "INSTALL_TYPE_UNSPECIFIED" -> Right InstallTypeUnspecified+        "PREINSTALLED" -> Right Preinstalled+        "FORCE_INSTALLED" -> Right ForceInstalled+        "BLOCKED" -> Right Blocked+        "AVAILABLE" -> Right Available+        x -> Left ("Unable to parse ApplicationPolicyInstallType from: " <> x)++instance ToHttpApiData ApplicationPolicyInstallType where+    toQueryParam = \case+        InstallTypeUnspecified -> "INSTALL_TYPE_UNSPECIFIED"+        Preinstalled -> "PREINSTALLED"+        ForceInstalled -> "FORCE_INSTALLED"+        Blocked -> "BLOCKED"+        Available -> "AVAILABLE"++instance FromJSON ApplicationPolicyInstallType where+    parseJSON = parseJSONText "ApplicationPolicyInstallType"++instance ToJSON ApplicationPolicyInstallType where+    toJSON = toJSONText++-- | If package_name is set and the non-compliance reason is+-- APP_NOT_INSTALLED or APP_NOT_UPDATED, the detailed reason the app can\'t+-- be installed or updated.+data NonComplianceDetailInstallationFailureReason+    = InstallationFailureReasonUnspecified+      -- ^ @INSTALLATION_FAILURE_REASON_UNSPECIFIED@+      -- This value is disallowed.+    | InstallationFailureReasonUnknown+      -- ^ @INSTALLATION_FAILURE_REASON_UNKNOWN@+      -- An unknown condition is preventing the app from being installed. Some+      -- potential reasons are that the device doesn\'t have enough storage, the+      -- device network connection is unreliable, or the installation is taking+      -- longer than expected. The installation will be retried automatically.+    | InProgress+      -- ^ @IN_PROGRESS@+      -- The installation is still in progress.+    | NotFound+      -- ^ @NOT_FOUND@+      -- The app was not found in Play.+    | NotCompatibleWithDevice+      -- ^ @NOT_COMPATIBLE_WITH_DEVICE@+      -- The app is incompatible with the device.+    | NotApproved+      -- ^ @NOT_APPROVED@+      -- The app has not been approved by the admin.+    | PermissionsNotAccepted+      -- ^ @PERMISSIONS_NOT_ACCEPTED@+      -- The app has new permissions that have not been accepted by the admin.+    | NotAvailableInCountry+      -- ^ @NOT_AVAILABLE_IN_COUNTRY@+      -- The app is not available in the user\'s country.+    | NoLicensesRemaining+      -- ^ @NO_LICENSES_REMAINING@+      -- There are no licenses available to assign to the user.+    | NotEnrolled+      -- ^ @NOT_ENROLLED@+      -- The enterprise is no longer enrolled with managed Play or the admin has+      -- not accepted the latest managed Play terms of service.+    | UserInvalid+      -- ^ @USER_INVALID@+      -- The user is no longer valid. The user may have been deleted or disabled.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable NonComplianceDetailInstallationFailureReason++instance FromHttpApiData NonComplianceDetailInstallationFailureReason where+    parseQueryParam = \case+        "INSTALLATION_FAILURE_REASON_UNSPECIFIED" -> Right InstallationFailureReasonUnspecified+        "INSTALLATION_FAILURE_REASON_UNKNOWN" -> Right InstallationFailureReasonUnknown+        "IN_PROGRESS" -> Right InProgress+        "NOT_FOUND" -> Right NotFound+        "NOT_COMPATIBLE_WITH_DEVICE" -> Right NotCompatibleWithDevice+        "NOT_APPROVED" -> Right NotApproved+        "PERMISSIONS_NOT_ACCEPTED" -> Right PermissionsNotAccepted+        "NOT_AVAILABLE_IN_COUNTRY" -> Right NotAvailableInCountry+        "NO_LICENSES_REMAINING" -> Right NoLicensesRemaining+        "NOT_ENROLLED" -> Right NotEnrolled+        "USER_INVALID" -> Right UserInvalid+        x -> Left ("Unable to parse NonComplianceDetailInstallationFailureReason from: " <> x)++instance ToHttpApiData NonComplianceDetailInstallationFailureReason where+    toQueryParam = \case+        InstallationFailureReasonUnspecified -> "INSTALLATION_FAILURE_REASON_UNSPECIFIED"+        InstallationFailureReasonUnknown -> "INSTALLATION_FAILURE_REASON_UNKNOWN"+        InProgress -> "IN_PROGRESS"+        NotFound -> "NOT_FOUND"+        NotCompatibleWithDevice -> "NOT_COMPATIBLE_WITH_DEVICE"+        NotApproved -> "NOT_APPROVED"+        PermissionsNotAccepted -> "PERMISSIONS_NOT_ACCEPTED"+        NotAvailableInCountry -> "NOT_AVAILABLE_IN_COUNTRY"+        NoLicensesRemaining -> "NO_LICENSES_REMAINING"+        NotEnrolled -> "NOT_ENROLLED"+        UserInvalid -> "USER_INVALID"++instance FromJSON NonComplianceDetailInstallationFailureReason where+    parseJSON = parseJSONText "NonComplianceDetailInstallationFailureReason"++instance ToJSON NonComplianceDetailInstallationFailureReason where+    toJSON = toJSONText++-- | The scope that the password requirement applies to.+data PasswordRequirementsPasswordScope+    = ScopeUnspecified+      -- ^ @SCOPE_UNSPECIFIED@+      -- The scope is unspecified. The password requirements are applied to the+      -- work profile for work profile devices and the whole device for fully+      -- managed or dedicated devices.+    | ScopeDevice+      -- ^ @SCOPE_DEVICE@+      -- The password requirements are only applied to the device.+    | ScopeProFile+      -- ^ @SCOPE_PROFILE@+      -- The password requirements are only applied to the work profile.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PasswordRequirementsPasswordScope++instance FromHttpApiData PasswordRequirementsPasswordScope where+    parseQueryParam = \case+        "SCOPE_UNSPECIFIED" -> Right ScopeUnspecified+        "SCOPE_DEVICE" -> Right ScopeDevice+        "SCOPE_PROFILE" -> Right ScopeProFile+        x -> Left ("Unable to parse PasswordRequirementsPasswordScope from: " <> x)++instance ToHttpApiData PasswordRequirementsPasswordScope where+    toQueryParam = \case+        ScopeUnspecified -> "SCOPE_UNSPECIFIED"+        ScopeDevice -> "SCOPE_DEVICE"+        ScopeProFile -> "SCOPE_PROFILE"++instance FromJSON PasswordRequirementsPasswordScope where+    parseJSON = parseJSONText "PasswordRequirementsPasswordScope"++instance ToJSON PasswordRequirementsPasswordScope where+    toJSON = toJSONText++-- | Encryption status from DevicePolicyManager.+data DeviceSettingsEncryptionStatus+    = DSESEncryptionStatusUnspecified+      -- ^ @ENCRYPTION_STATUS_UNSPECIFIED@+      -- Unspecified. No device should have this type.+    | DSESUnsupported+      -- ^ @UNSUPPORTED@+      -- Encryption is not supported by the device.+    | DSESInactive+      -- ^ @INACTIVE@+      -- Encryption is supported by the device, but is not currently active.+    | DSESActivating+      -- ^ @ACTIVATING@+      -- Encryption is not currently active, but is currently being activated.+    | DSESActive+      -- ^ @ACTIVE@+      -- Encryption is active.+    | DSESActiveDefaultKey+      -- ^ @ACTIVE_DEFAULT_KEY@+      -- Encryption is active, but an encryption key is not set by the user.+    | DSESActivePerUser+      -- ^ @ACTIVE_PER_USER@+      -- Encryption is active, and the encryption key is tied to the user+      -- profile.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DeviceSettingsEncryptionStatus++instance FromHttpApiData DeviceSettingsEncryptionStatus where+    parseQueryParam = \case+        "ENCRYPTION_STATUS_UNSPECIFIED" -> Right DSESEncryptionStatusUnspecified+        "UNSUPPORTED" -> Right DSESUnsupported+        "INACTIVE" -> Right DSESInactive+        "ACTIVATING" -> Right DSESActivating+        "ACTIVE" -> Right DSESActive+        "ACTIVE_DEFAULT_KEY" -> Right DSESActiveDefaultKey+        "ACTIVE_PER_USER" -> Right DSESActivePerUser+        x -> Left ("Unable to parse DeviceSettingsEncryptionStatus from: " <> x)++instance ToHttpApiData DeviceSettingsEncryptionStatus where+    toQueryParam = \case+        DSESEncryptionStatusUnspecified -> "ENCRYPTION_STATUS_UNSPECIFIED"+        DSESUnsupported -> "UNSUPPORTED"+        DSESInactive -> "INACTIVE"+        DSESActivating -> "ACTIVATING"+        DSESActive -> "ACTIVE"+        DSESActiveDefaultKey -> "ACTIVE_DEFAULT_KEY"+        DSESActivePerUser -> "ACTIVE_PER_USER"++instance FromJSON DeviceSettingsEncryptionStatus where+    parseJSON = parseJSONText "DeviceSettingsEncryptionStatus"++instance ToJSON DeviceSettingsEncryptionStatus where+    toJSON = toJSONText++-- | The degree of location detection enabled. The user may change the value+-- unless the user is otherwise blocked from accessing device settings.+data PolicyLocationMode+    = PLMLocationModeUnspecified+      -- ^ @LOCATION_MODE_UNSPECIFIED@+      -- The current device value is not modified.+    | PLMHighAccuracy+      -- ^ @HIGH_ACCURACY@+      -- All location detection methods are enabled, including GPS, networks, and+      -- other sensors.+    | PLMSensorsOnly+      -- ^ @SENSORS_ONLY@+      -- Only GPS and other sensors are enabled.+    | PLMBatterySaving+      -- ^ @BATTERY_SAVING@+      -- Only the network location provider is enabled.+    | PLMOff+      -- ^ @OFF@+      -- Location detection is disabled.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PolicyLocationMode++instance FromHttpApiData PolicyLocationMode where+    parseQueryParam = \case+        "LOCATION_MODE_UNSPECIFIED" -> Right PLMLocationModeUnspecified+        "HIGH_ACCURACY" -> Right PLMHighAccuracy+        "SENSORS_ONLY" -> Right PLMSensorsOnly+        "BATTERY_SAVING" -> Right PLMBatterySaving+        "OFF" -> Right PLMOff+        x -> Left ("Unable to parse PolicyLocationMode from: " <> x)++instance ToHttpApiData PolicyLocationMode where+    toQueryParam = \case+        PLMLocationModeUnspecified -> "LOCATION_MODE_UNSPECIFIED"+        PLMHighAccuracy -> "HIGH_ACCURACY"+        PLMSensorsOnly -> "SENSORS_ONLY"+        PLMBatterySaving -> "BATTERY_SAVING"+        PLMOff -> "OFF"++instance FromJSON PolicyLocationMode where+    parseJSON = parseJSONText "PolicyLocationMode"++instance ToJSON PolicyLocationMode where+    toJSON = toJSONText++-- | The app auto update policy, which controls when automatic app updates+-- can be applied.+data PolicyAppAutoUpdatePolicy+    = AppAutoUpdatePolicyUnspecified+      -- ^ @APP_AUTO_UPDATE_POLICY_UNSPECIFIED@+      -- The auto-update policy is not set. Equivalent to CHOICE_TO_THE_USER.+    | ChoiceToTheUser+      -- ^ @CHOICE_TO_THE_USER@+      -- The user can control auto-updates.+    | Never+      -- ^ @NEVER@+      -- Apps are never auto-updated.+    | WifiOnly+      -- ^ @WIFI_ONLY@+      -- Apps are auto-updated over Wi-Fi only.+    | Always+      -- ^ @ALWAYS@+      -- Apps are auto-updated at any time. Data charges may apply.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PolicyAppAutoUpdatePolicy++instance FromHttpApiData PolicyAppAutoUpdatePolicy where+    parseQueryParam = \case+        "APP_AUTO_UPDATE_POLICY_UNSPECIFIED" -> Right AppAutoUpdatePolicyUnspecified+        "CHOICE_TO_THE_USER" -> Right ChoiceToTheUser+        "NEVER" -> Right Never+        "WIFI_ONLY" -> Right WifiOnly+        "ALWAYS" -> Right Always+        x -> Left ("Unable to parse PolicyAppAutoUpdatePolicy from: " <> x)++instance ToHttpApiData PolicyAppAutoUpdatePolicy where+    toQueryParam = \case+        AppAutoUpdatePolicyUnspecified -> "APP_AUTO_UPDATE_POLICY_UNSPECIFIED"+        ChoiceToTheUser -> "CHOICE_TO_THE_USER"+        Never -> "NEVER"+        WifiOnly -> "WIFI_ONLY"+        Always -> "ALWAYS"++instance FromJSON PolicyAppAutoUpdatePolicy where+    parseJSON = parseJSONText "PolicyAppAutoUpdatePolicy"++instance ToJSON PolicyAppAutoUpdatePolicy where+    toJSON = toJSONText++-- | Whether encryption is enabled+data PolicyEncryptionPolicy+    = EncryptionPolicyUnspecified+      -- ^ @ENCRYPTION_POLICY_UNSPECIFIED@+      -- This value is ignored, i.e. no encryption required+    | EnabledWithoutPassword+      -- ^ @ENABLED_WITHOUT_PASSWORD@+      -- Encryption required but no password required to boot+    | EnabledWithPassword+      -- ^ @ENABLED_WITH_PASSWORD@+      -- Encryption required with password required to boot+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PolicyEncryptionPolicy++instance FromHttpApiData PolicyEncryptionPolicy where+    parseQueryParam = \case+        "ENCRYPTION_POLICY_UNSPECIFIED" -> Right EncryptionPolicyUnspecified+        "ENABLED_WITHOUT_PASSWORD" -> Right EnabledWithoutPassword+        "ENABLED_WITH_PASSWORD" -> Right EnabledWithPassword+        x -> Left ("Unable to parse PolicyEncryptionPolicy from: " <> x)++instance ToHttpApiData PolicyEncryptionPolicy where+    toQueryParam = \case+        EncryptionPolicyUnspecified -> "ENCRYPTION_POLICY_UNSPECIFIED"+        EnabledWithoutPassword -> "ENABLED_WITHOUT_PASSWORD"+        EnabledWithPassword -> "ENABLED_WITH_PASSWORD"++instance FromJSON PolicyEncryptionPolicy where+    parseJSON = parseJSONText "PolicyEncryptionPolicy"++instance ToJSON PolicyEncryptionPolicy where+    toJSON = toJSONText++-- | The type of the command.+data CommandType+    = CommandTypeUnspecified+      -- ^ @COMMAND_TYPE_UNSPECIFIED@+      -- This value is disallowed.+    | Lock+      -- ^ @LOCK@+      -- Lock the device, as if the lock screen timeout had expired.+    | ResetPassword+      -- ^ @RESET_PASSWORD@+      -- Reset the user\'s password.+    | Reboot+      -- ^ @REBOOT@+      -- Reboot the device. Only supported on API level 24+.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable CommandType++instance FromHttpApiData CommandType where+    parseQueryParam = \case+        "COMMAND_TYPE_UNSPECIFIED" -> Right CommandTypeUnspecified+        "LOCK" -> Right Lock+        "RESET_PASSWORD" -> Right ResetPassword+        "REBOOT" -> Right Reboot+        x -> Left ("Unable to parse CommandType from: " <> x)++instance ToHttpApiData CommandType where+    toQueryParam = \case+        CommandTypeUnspecified -> "COMMAND_TYPE_UNSPECIFIED"+        Lock -> "LOCK"+        ResetPassword -> "RESET_PASSWORD"+        Reboot -> "REBOOT"++instance FromJSON CommandType where+    parseJSON = parseJSONText "CommandType"++instance ToJSON CommandType where+    toJSON = toJSONText++-- | The default policy for all permissions requested by the app. If+-- specified, this overrides the policy-level default_permission_policy+-- which applies to all apps. It does not override the permission_grants+-- which applies to all apps.+data ApplicationPolicyDefaultPermissionPolicy+    = APDPPPermissionPolicyUnspecified+      -- ^ @PERMISSION_POLICY_UNSPECIFIED@+      -- Policy not specified. If no policy is specified for a permission at any+      -- level, then the PROMPT behavior is used by default.+    | APDPPPrompt+      -- ^ @PROMPT@+      -- Prompt the user to grant a permission.+    | APDPPGrant+      -- ^ @GRANT@+      -- Automatically grant a permission.+    | APDPPDeny+      -- ^ @DENY@+      -- Automatically deny a permission.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ApplicationPolicyDefaultPermissionPolicy++instance FromHttpApiData ApplicationPolicyDefaultPermissionPolicy where+    parseQueryParam = \case+        "PERMISSION_POLICY_UNSPECIFIED" -> Right APDPPPermissionPolicyUnspecified+        "PROMPT" -> Right APDPPPrompt+        "GRANT" -> Right APDPPGrant+        "DENY" -> Right APDPPDeny+        x -> Left ("Unable to parse ApplicationPolicyDefaultPermissionPolicy from: " <> x)++instance ToHttpApiData ApplicationPolicyDefaultPermissionPolicy where+    toQueryParam = \case+        APDPPPermissionPolicyUnspecified -> "PERMISSION_POLICY_UNSPECIFIED"+        APDPPPrompt -> "PROMPT"+        APDPPGrant -> "GRANT"+        APDPPDeny -> "DENY"++instance FromJSON ApplicationPolicyDefaultPermissionPolicy where+    parseJSON = parseJSONText "ApplicationPolicyDefaultPermissionPolicy"++instance ToJSON ApplicationPolicyDefaultPermissionPolicy where+    toJSON = toJSONText++-- | V1 error format.+data Xgafv+    = X1+      -- ^ @1@+      -- v1 error format+    | X2+      -- ^ @2@+      -- v2 error format+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable Xgafv++instance FromHttpApiData Xgafv where+    parseQueryParam = \case+        "1" -> Right X1+        "2" -> Right X2+        x -> Left ("Unable to parse Xgafv from: " <> x)++instance ToHttpApiData Xgafv where+    toQueryParam = \case+        X1 -> "1"+        X2 -> "2"++instance FromJSON Xgafv where+    parseJSON = parseJSONText "Xgafv"++instance ToJSON Xgafv where+    toJSON = toJSONText++-- | The type of the property.+data ManagedPropertyType+    = ManagedPropertyTypeUnspecified+      -- ^ @MANAGED_PROPERTY_TYPE_UNSPECIFIED@+      -- Not used.+    | Bool+      -- ^ @BOOL@+      -- A property of boolean type.+    | String+      -- ^ @STRING@+      -- A property of string type.+    | Integer+      -- ^ @INTEGER@+      -- A property of integer type.+    | Choice+      -- ^ @CHOICE@+      -- A choice of one item from a set.+    | Multiselect+      -- ^ @MULTISELECT@+      -- A choice of multiple items from a set.+    | Hidden+      -- ^ @HIDDEN@+      -- A hidden restriction of string type (the default value can be used to+      -- pass along information that can\'t be modified, such as a version code).+    | BundleArray+      -- ^ @BUNDLE_ARRAY@+      -- An array of property bundles.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ManagedPropertyType++instance FromHttpApiData ManagedPropertyType where+    parseQueryParam = \case+        "MANAGED_PROPERTY_TYPE_UNSPECIFIED" -> Right ManagedPropertyTypeUnspecified+        "BOOL" -> Right Bool+        "STRING" -> Right String+        "INTEGER" -> Right Integer+        "CHOICE" -> Right Choice+        "MULTISELECT" -> Right Multiselect+        "HIDDEN" -> Right Hidden+        "BUNDLE_ARRAY" -> Right BundleArray+        x -> Left ("Unable to parse ManagedPropertyType from: " <> x)++instance ToHttpApiData ManagedPropertyType where+    toQueryParam = \case+        ManagedPropertyTypeUnspecified -> "MANAGED_PROPERTY_TYPE_UNSPECIFIED"+        Bool -> "BOOL"+        String -> "STRING"+        Integer -> "INTEGER"+        Choice -> "CHOICE"+        Multiselect -> "MULTISELECT"+        Hidden -> "HIDDEN"+        BundleArray -> "BUNDLE_ARRAY"++instance FromJSON ManagedPropertyType where+    parseJSON = parseJSONText "ManagedPropertyType"++instance ToJSON ManagedPropertyType where+    toJSON = toJSONText++-- | The state currently applied to the device.+data DeviceAppliedState+    = DASDeviceStateUnspecified+      -- ^ @DEVICE_STATE_UNSPECIFIED@+      -- This value is disallowed.+    | DASActive+      -- ^ @ACTIVE@+      -- The device is active.+    | DASDisabled+      -- ^ @DISABLED@+      -- The device is disabled.+    | DASDeleted+      -- ^ @DELETED@+      -- The device was deleted. This state will never be returned by an API+      -- call, but is used in the final status report published to Cloud Pub\/Sub+      -- when the device acknowledges the deletion.+    | DASProvisioning+      -- ^ @PROVISIONING@+      -- The device is being provisioned. Newly enrolled devices are in this+      -- state until they have a policy applied.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DeviceAppliedState++instance FromHttpApiData DeviceAppliedState where+    parseQueryParam = \case+        "DEVICE_STATE_UNSPECIFIED" -> Right DASDeviceStateUnspecified+        "ACTIVE" -> Right DASActive+        "DISABLED" -> Right DASDisabled+        "DELETED" -> Right DASDeleted+        "PROVISIONING" -> Right DASProvisioning+        x -> Left ("Unable to parse DeviceAppliedState from: " <> x)++instance ToHttpApiData DeviceAppliedState where+    toQueryParam = \case+        DASDeviceStateUnspecified -> "DEVICE_STATE_UNSPECIFIED"+        DASActive -> "ACTIVE"+        DASDisabled -> "DISABLED"+        DASDeleted -> "DELETED"+        DASProvisioning -> "PROVISIONING"++instance FromJSON DeviceAppliedState where+    parseJSON = parseJSONText "DeviceAppliedState"++instance ToJSON DeviceAppliedState where+    toJSON = toJSONText++-- | App event type.+data ApplicationEventEventType+    = ApplicationEventTypeUnspecified+      -- ^ @APPLICATION_EVENT_TYPE_UNSPECIFIED@+      -- This value is disallowed.+    | Installed+      -- ^ @INSTALLED@+      -- The app was installed.+    | Changed+      -- ^ @CHANGED@+      -- The app was changed, for example, a component was enabled or disabled.+    | DataCleared+      -- ^ @DATA_CLEARED@+      -- The app data was cleared.+    | Removed+      -- ^ @REMOVED@+      -- The app was removed.+    | Replaced+      -- ^ @REPLACED@+      -- A new version of the app has been installed, replacing the old version.+    | Restarted+      -- ^ @RESTARTED@+      -- The app was restarted.+    | Pinned+      -- ^ @PINNED@+      -- The app was pinned to the foreground.+    | Unpinned+      -- ^ @UNPINNED@+      -- The app was unpinned.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ApplicationEventEventType++instance FromHttpApiData ApplicationEventEventType where+    parseQueryParam = \case+        "APPLICATION_EVENT_TYPE_UNSPECIFIED" -> Right ApplicationEventTypeUnspecified+        "INSTALLED" -> Right Installed+        "CHANGED" -> Right Changed+        "DATA_CLEARED" -> Right DataCleared+        "REMOVED" -> Right Removed+        "REPLACED" -> Right Replaced+        "RESTARTED" -> Right Restarted+        "PINNED" -> Right Pinned+        "UNPINNED" -> Right Unpinned+        x -> Left ("Unable to parse ApplicationEventEventType from: " <> x)++instance ToHttpApiData ApplicationEventEventType where+    toQueryParam = \case+        ApplicationEventTypeUnspecified -> "APPLICATION_EVENT_TYPE_UNSPECIFIED"+        Installed -> "INSTALLED"+        Changed -> "CHANGED"+        DataCleared -> "DATA_CLEARED"+        Removed -> "REMOVED"+        Replaced -> "REPLACED"+        Restarted -> "RESTARTED"+        Pinned -> "PINNED"+        Unpinned -> "UNPINNED"++instance FromJSON ApplicationEventEventType where+    parseJSON = parseJSONText "ApplicationEventEventType"++instance ToJSON ApplicationEventEventType where+    toJSON = toJSONText++-- | The reason the device is not in compliance with the setting.+data NonComplianceDetailNonComplianceReason+    = NCDNCRNonComplianceReasonUnspecified+      -- ^ @NON_COMPLIANCE_REASON_UNSPECIFIED@+      -- This value is disallowed.+    | NCDNCRAPILevel+      -- ^ @API_LEVEL@+      -- The setting is not supported in the API level of the Android version+      -- running on the device.+    | NCDNCRManagementMode+      -- ^ @MANAGEMENT_MODE@+      -- The management mode (profile owner, device owner, etc.) doesn\'t support+      -- the setting.+    | NCDNCRUserAction+      -- ^ @USER_ACTION@+      -- The user has not taken required action to comply with the setting.+    | NCDNCRInvalidValue+      -- ^ @INVALID_VALUE@+      -- The setting has an invalid value.+    | NCDNCRAppNotInstalled+      -- ^ @APP_NOT_INSTALLED@+      -- The app required to implement the policy is not installed.+    | NCDNCRUnsupported+      -- ^ @UNSUPPORTED@+      -- The policy is not supported by the version of Android Device Policy on+      -- the device.+    | NCDNCRAppInstalled+      -- ^ @APP_INSTALLED@+      -- A blocked app is installed.+    | NCDNCRPending+      -- ^ @PENDING@+      -- The setting hasn\'t been applied at the time of the report, but is+      -- expected to be applied shortly.+    | NCDNCRAppIncompatible+      -- ^ @APP_INCOMPATIBLE@+      -- The setting can\'t be applied to the app because the app doesn\'t+      -- support it, for example because its target SDK version is not high+      -- enough.+    | NCDNCRAppNotUpdated+      -- ^ @APP_NOT_UPDATED@+      -- The app is installed, but it hasn\'t been updated to the minimum version+      -- code specified by policy.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable NonComplianceDetailNonComplianceReason++instance FromHttpApiData NonComplianceDetailNonComplianceReason where+    parseQueryParam = \case+        "NON_COMPLIANCE_REASON_UNSPECIFIED" -> Right NCDNCRNonComplianceReasonUnspecified+        "API_LEVEL" -> Right NCDNCRAPILevel+        "MANAGEMENT_MODE" -> Right NCDNCRManagementMode+        "USER_ACTION" -> Right NCDNCRUserAction+        "INVALID_VALUE" -> Right NCDNCRInvalidValue+        "APP_NOT_INSTALLED" -> Right NCDNCRAppNotInstalled+        "UNSUPPORTED" -> Right NCDNCRUnsupported+        "APP_INSTALLED" -> Right NCDNCRAppInstalled+        "PENDING" -> Right NCDNCRPending+        "APP_INCOMPATIBLE" -> Right NCDNCRAppIncompatible+        "APP_NOT_UPDATED" -> Right NCDNCRAppNotUpdated+        x -> Left ("Unable to parse NonComplianceDetailNonComplianceReason from: " <> x)++instance ToHttpApiData NonComplianceDetailNonComplianceReason where+    toQueryParam = \case+        NCDNCRNonComplianceReasonUnspecified -> "NON_COMPLIANCE_REASON_UNSPECIFIED"+        NCDNCRAPILevel -> "API_LEVEL"+        NCDNCRManagementMode -> "MANAGEMENT_MODE"+        NCDNCRUserAction -> "USER_ACTION"+        NCDNCRInvalidValue -> "INVALID_VALUE"+        NCDNCRAppNotInstalled -> "APP_NOT_INSTALLED"+        NCDNCRUnsupported -> "UNSUPPORTED"+        NCDNCRAppInstalled -> "APP_INSTALLED"+        NCDNCRPending -> "PENDING"+        NCDNCRAppIncompatible -> "APP_INCOMPATIBLE"+        NCDNCRAppNotUpdated -> "APP_NOT_UPDATED"++instance FromJSON NonComplianceDetailNonComplianceReason where+    parseJSON = parseJSONText "NonComplianceDetailNonComplianceReason"++instance ToJSON NonComplianceDetailNonComplianceReason where+    toJSON = toJSONText++-- | The default permission policy for runtime permission requests.+data PolicyDefaultPermissionPolicy+    = PDPPPermissionPolicyUnspecified+      -- ^ @PERMISSION_POLICY_UNSPECIFIED@+      -- Policy not specified. If no policy is specified for a permission at any+      -- level, then the PROMPT behavior is used by default.+    | PDPPPrompt+      -- ^ @PROMPT@+      -- Prompt the user to grant a permission.+    | PDPPGrant+      -- ^ @GRANT@+      -- Automatically grant a permission.+    | PDPPDeny+      -- ^ @DENY@+      -- Automatically deny a permission.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PolicyDefaultPermissionPolicy++instance FromHttpApiData PolicyDefaultPermissionPolicy where+    parseQueryParam = \case+        "PERMISSION_POLICY_UNSPECIFIED" -> Right PDPPPermissionPolicyUnspecified+        "PROMPT" -> Right PDPPPrompt+        "GRANT" -> Right PDPPGrant+        "DENY" -> Right PDPPDeny+        x -> Left ("Unable to parse PolicyDefaultPermissionPolicy from: " <> x)++instance ToHttpApiData PolicyDefaultPermissionPolicy where+    toQueryParam = \case+        PDPPPermissionPolicyUnspecified -> "PERMISSION_POLICY_UNSPECIFIED"+        PDPPPrompt -> "PROMPT"+        PDPPGrant -> "GRANT"+        PDPPDeny -> "DENY"++instance FromJSON PolicyDefaultPermissionPolicy where+    parseJSON = parseJSONText "PolicyDefaultPermissionPolicy"++instance ToJSON PolicyDefaultPermissionPolicy where+    toJSON = toJSONText++-- | Application state.+data ApplicationReportState+    = ARSInstalled+      -- ^ @INSTALLED@+      -- App is installed on the device+    | ARSRemoved+      -- ^ @REMOVED@+      -- App was removed from the device+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ApplicationReportState++instance FromHttpApiData ApplicationReportState where+    parseQueryParam = \case+        "INSTALLED" -> Right ARSInstalled+        "REMOVED" -> Right ARSRemoved+        x -> Left ("Unable to parse ApplicationReportState from: " <> x)++instance ToHttpApiData ApplicationReportState where+    toQueryParam = \case+        ARSInstalled -> "INSTALLED"+        ARSRemoved -> "REMOVED"++instance FromJSON ApplicationReportState where+    parseJSON = parseJSONText "ApplicationReportState"++instance ToJSON ApplicationReportState where+    toJSON = toJSONText++-- | The reason the device is not in compliance with the setting. If not set,+-- then this condition matches any reason.+data NonComplianceDetailConditionNonComplianceReason+    = NCDCNCRNonComplianceReasonUnspecified+      -- ^ @NON_COMPLIANCE_REASON_UNSPECIFIED@+      -- This value is disallowed.+    | NCDCNCRAPILevel+      -- ^ @API_LEVEL@+      -- The setting is not supported in the API level of the Android version+      -- running on the device.+    | NCDCNCRManagementMode+      -- ^ @MANAGEMENT_MODE@+      -- The management mode (profile owner, device owner, etc.) doesn\'t support+      -- the setting.+    | NCDCNCRUserAction+      -- ^ @USER_ACTION@+      -- The user has not taken required action to comply with the setting.+    | NCDCNCRInvalidValue+      -- ^ @INVALID_VALUE@+      -- The setting has an invalid value.+    | NCDCNCRAppNotInstalled+      -- ^ @APP_NOT_INSTALLED@+      -- The app required to implement the policy is not installed.+    | NCDCNCRUnsupported+      -- ^ @UNSUPPORTED@+      -- The policy is not supported by the version of Android Device Policy on+      -- the device.+    | NCDCNCRAppInstalled+      -- ^ @APP_INSTALLED@+      -- A blocked app is installed.+    | NCDCNCRPending+      -- ^ @PENDING@+      -- The setting hasn\'t been applied at the time of the report, but is+      -- expected to be applied shortly.+    | NCDCNCRAppIncompatible+      -- ^ @APP_INCOMPATIBLE@+      -- The setting can\'t be applied to the app because the app doesn\'t+      -- support it, for example because its target SDK version is not high+      -- enough.+    | NCDCNCRAppNotUpdated+      -- ^ @APP_NOT_UPDATED@+      -- The app is installed, but it hasn\'t been updated to the minimum version+      -- code specified by policy.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable NonComplianceDetailConditionNonComplianceReason++instance FromHttpApiData NonComplianceDetailConditionNonComplianceReason where+    parseQueryParam = \case+        "NON_COMPLIANCE_REASON_UNSPECIFIED" -> Right NCDCNCRNonComplianceReasonUnspecified+        "API_LEVEL" -> Right NCDCNCRAPILevel+        "MANAGEMENT_MODE" -> Right NCDCNCRManagementMode+        "USER_ACTION" -> Right NCDCNCRUserAction+        "INVALID_VALUE" -> Right NCDCNCRInvalidValue+        "APP_NOT_INSTALLED" -> Right NCDCNCRAppNotInstalled+        "UNSUPPORTED" -> Right NCDCNCRUnsupported+        "APP_INSTALLED" -> Right NCDCNCRAppInstalled+        "PENDING" -> Right NCDCNCRPending+        "APP_INCOMPATIBLE" -> Right NCDCNCRAppIncompatible+        "APP_NOT_UPDATED" -> Right NCDCNCRAppNotUpdated+        x -> Left ("Unable to parse NonComplianceDetailConditionNonComplianceReason from: " <> x)++instance ToHttpApiData NonComplianceDetailConditionNonComplianceReason where+    toQueryParam = \case+        NCDCNCRNonComplianceReasonUnspecified -> "NON_COMPLIANCE_REASON_UNSPECIFIED"+        NCDCNCRAPILevel -> "API_LEVEL"+        NCDCNCRManagementMode -> "MANAGEMENT_MODE"+        NCDCNCRUserAction -> "USER_ACTION"+        NCDCNCRInvalidValue -> "INVALID_VALUE"+        NCDCNCRAppNotInstalled -> "APP_NOT_INSTALLED"+        NCDCNCRUnsupported -> "UNSUPPORTED"+        NCDCNCRAppInstalled -> "APP_INSTALLED"+        NCDCNCRPending -> "PENDING"+        NCDCNCRAppIncompatible -> "APP_INCOMPATIBLE"+        NCDCNCRAppNotUpdated -> "APP_NOT_UPDATED"++instance FromJSON NonComplianceDetailConditionNonComplianceReason where+    parseJSON = parseJSONText "NonComplianceDetailConditionNonComplianceReason"++instance ToJSON NonComplianceDetailConditionNonComplianceReason where+    toJSON = toJSONText++-- | Event type.+data MemoryEventEventType+    = MemoryEventTypeUnspecified+      -- ^ @MEMORY_EVENT_TYPE_UNSPECIFIED@+      -- Unspecified. No events have this type.+    | RamMeasured+      -- ^ @RAM_MEASURED@+      -- Free space in RAM was measured.+    | InternalStorageMeasured+      -- ^ @INTERNAL_STORAGE_MEASURED@+      -- Free space in internal storage was measured.+    | ExternalStorageDetected+      -- ^ @EXTERNAL_STORAGE_DETECTED@+      -- A new external storage medium was detected. The reported byte count is+      -- the total capacity of the storage medium.+    | ExternalStorageRemoved+      -- ^ @EXTERNAL_STORAGE_REMOVED@+      -- An external storage medium was removed. The reported byte count is zero.+    | ExternalStorageMeasured+      -- ^ @EXTERNAL_STORAGE_MEASURED@+      -- Free space in an external storage medium was measured.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable MemoryEventEventType++instance FromHttpApiData MemoryEventEventType where+    parseQueryParam = \case+        "MEMORY_EVENT_TYPE_UNSPECIFIED" -> Right MemoryEventTypeUnspecified+        "RAM_MEASURED" -> Right RamMeasured+        "INTERNAL_STORAGE_MEASURED" -> Right InternalStorageMeasured+        "EXTERNAL_STORAGE_DETECTED" -> Right ExternalStorageDetected+        "EXTERNAL_STORAGE_REMOVED" -> Right ExternalStorageRemoved+        "EXTERNAL_STORAGE_MEASURED" -> Right ExternalStorageMeasured+        x -> Left ("Unable to parse MemoryEventEventType from: " <> x)++instance ToHttpApiData MemoryEventEventType where+    toQueryParam = \case+        MemoryEventTypeUnspecified -> "MEMORY_EVENT_TYPE_UNSPECIFIED"+        RamMeasured -> "RAM_MEASURED"+        InternalStorageMeasured -> "INTERNAL_STORAGE_MEASURED"+        ExternalStorageDetected -> "EXTERNAL_STORAGE_DETECTED"+        ExternalStorageRemoved -> "EXTERNAL_STORAGE_REMOVED"+        ExternalStorageMeasured -> "EXTERNAL_STORAGE_MEASURED"++instance FromJSON MemoryEventEventType where+    parseJSON = parseJSONText "MemoryEventEventType"++instance ToJSON MemoryEventEventType where+    toJSON = toJSONText++-- | The required password quality.+data PasswordRequirementsPasswordQuality+    = PasswordQualityUnspecified+      -- ^ @PASSWORD_QUALITY_UNSPECIFIED@+      -- There are no password requirements.+    | BiometricWeak+      -- ^ @BIOMETRIC_WEAK@+      -- The device must be secured with a low-security biometric recognition+      -- technology, at minimum. This includes technologies that can recognize+      -- the identity of an individual that are roughly equivalent to a 3-digit+      -- PIN (false detection is less than 1 in 1,000).+    | Something+      -- ^ @SOMETHING@+      -- A password is required, but there are no restrictions on what the+      -- password must contain.+    | Numeric+      -- ^ @NUMERIC@+      -- The password must contain numeric characters.+    | NumericComplex+      -- ^ @NUMERIC_COMPLEX@+      -- The password must contain numeric characters with no repeating (4444) or+      -- ordered (1234, 4321, 2468) sequences.+    | Alphabetic+      -- ^ @ALPHABETIC@+      -- The password must contain alphabetic (or symbol) characters.+    | Alphanumeric+      -- ^ @ALPHANUMERIC@+      -- The password must contain both numeric and alphabetic (or symbol)+      -- characters.+    | Complex+      -- ^ @COMPLEX@+      -- The password must contain at least a letter, a numerical digit and a+      -- special symbol. Other password constraints, for example,+      -- password_minimum_letters are enforced.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PasswordRequirementsPasswordQuality++instance FromHttpApiData PasswordRequirementsPasswordQuality where+    parseQueryParam = \case+        "PASSWORD_QUALITY_UNSPECIFIED" -> Right PasswordQualityUnspecified+        "BIOMETRIC_WEAK" -> Right BiometricWeak+        "SOMETHING" -> Right Something+        "NUMERIC" -> Right Numeric+        "NUMERIC_COMPLEX" -> Right NumericComplex+        "ALPHABETIC" -> Right Alphabetic+        "ALPHANUMERIC" -> Right Alphanumeric+        "COMPLEX" -> Right Complex+        x -> Left ("Unable to parse PasswordRequirementsPasswordQuality from: " <> x)++instance ToHttpApiData PasswordRequirementsPasswordQuality where+    toQueryParam = \case+        PasswordQualityUnspecified -> "PASSWORD_QUALITY_UNSPECIFIED"+        BiometricWeak -> "BIOMETRIC_WEAK"+        Something -> "SOMETHING"+        Numeric -> "NUMERIC"+        NumericComplex -> "NUMERIC_COMPLEX"+        Alphabetic -> "ALPHABETIC"+        Alphanumeric -> "ALPHANUMERIC"+        Complex -> "COMPLEX"++instance FromJSON PasswordRequirementsPasswordQuality where+    parseJSON = parseJSONText "PasswordRequirementsPasswordQuality"++instance ToJSON PasswordRequirementsPasswordQuality where+    toJSON = toJSONText
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Applications/Get.hs view
@@ -0,0 +1,161 @@+{-# 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.AndroidManagement.Enterprises.Applications.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets info about an application.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.applications.get@.+module Network.Google.Resource.AndroidManagement.Enterprises.Applications.Get+    (+    -- * REST Resource+      EnterprisesApplicationsGetResource++    -- * Creating a Request+    , enterprisesApplicationsGet+    , EnterprisesApplicationsGet++    -- * Request Lenses+    , eagXgafv+    , eagLanguageCode+    , eagUploadProtocol+    , eagAccessToken+    , eagUploadType+    , eagName+    , eagCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.applications.get@ method which the+-- 'EnterprisesApplicationsGet' request conforms to.+type EnterprisesApplicationsGetResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "languageCode" Text :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] Application++-- | Gets info about an application.+--+-- /See:/ 'enterprisesApplicationsGet' smart constructor.+data EnterprisesApplicationsGet = EnterprisesApplicationsGet'+    { _eagXgafv          :: !(Maybe Xgafv)+    , _eagLanguageCode   :: !(Maybe Text)+    , _eagUploadProtocol :: !(Maybe Text)+    , _eagAccessToken    :: !(Maybe Text)+    , _eagUploadType     :: !(Maybe Text)+    , _eagName           :: !Text+    , _eagCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesApplicationsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eagXgafv'+--+-- * 'eagLanguageCode'+--+-- * 'eagUploadProtocol'+--+-- * 'eagAccessToken'+--+-- * 'eagUploadType'+--+-- * 'eagName'+--+-- * 'eagCallback'+enterprisesApplicationsGet+    :: Text -- ^ 'eagName'+    -> EnterprisesApplicationsGet+enterprisesApplicationsGet pEagName_ =+    EnterprisesApplicationsGet'+    { _eagXgafv = Nothing+    , _eagLanguageCode = Nothing+    , _eagUploadProtocol = Nothing+    , _eagAccessToken = Nothing+    , _eagUploadType = Nothing+    , _eagName = pEagName_+    , _eagCallback = Nothing+    }++-- | V1 error format.+eagXgafv :: Lens' EnterprisesApplicationsGet (Maybe Xgafv)+eagXgafv = lens _eagXgafv (\ s a -> s{_eagXgafv = a})++-- | The preferred language for localized application info, as a BCP47 tag+-- (e.g. \"en-US\", \"de\"). If not specified the default language of the+-- application will be used.+eagLanguageCode :: Lens' EnterprisesApplicationsGet (Maybe Text)+eagLanguageCode+  = lens _eagLanguageCode+      (\ s a -> s{_eagLanguageCode = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+eagUploadProtocol :: Lens' EnterprisesApplicationsGet (Maybe Text)+eagUploadProtocol+  = lens _eagUploadProtocol+      (\ s a -> s{_eagUploadProtocol = a})++-- | OAuth access token.+eagAccessToken :: Lens' EnterprisesApplicationsGet (Maybe Text)+eagAccessToken+  = lens _eagAccessToken+      (\ s a -> s{_eagAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+eagUploadType :: Lens' EnterprisesApplicationsGet (Maybe Text)+eagUploadType+  = lens _eagUploadType+      (\ s a -> s{_eagUploadType = a})++-- | The name of the application in the form+-- enterprises\/{enterpriseId}\/applications\/{package_name}.+eagName :: Lens' EnterprisesApplicationsGet Text+eagName = lens _eagName (\ s a -> s{_eagName = a})++-- | JSONP+eagCallback :: Lens' EnterprisesApplicationsGet (Maybe Text)+eagCallback+  = lens _eagCallback (\ s a -> s{_eagCallback = a})++instance GoogleRequest EnterprisesApplicationsGet+         where+        type Rs EnterprisesApplicationsGet = Application+        type Scopes EnterprisesApplicationsGet =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesApplicationsGet'{..}+          = go _eagName _eagXgafv _eagLanguageCode+              _eagUploadProtocol+              _eagAccessToken+              _eagUploadType+              _eagCallback+              (Just AltJSON)+              androidManagementService+          where go+                  = buildClient+                      (Proxy :: Proxy EnterprisesApplicationsGetResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Create.hs view
@@ -0,0 +1,186 @@+{-# 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.AndroidManagement.Enterprises.Create+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an enterprise. This is the last step in the enterprise signup+-- flow.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.create@.+module Network.Google.Resource.AndroidManagement.Enterprises.Create+    (+    -- * REST Resource+      EnterprisesCreateResource++    -- * Creating a Request+    , enterprisesCreate+    , EnterprisesCreate++    -- * Request Lenses+    , ecXgafv+    , ecSignupURLName+    , ecUploadProtocol+    , ecAccessToken+    , ecUploadType+    , ecPayload+    , ecProjectId+    , ecEnterpriseToken+    , ecCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.create@ method which the+-- 'EnterprisesCreate' request conforms to.+type EnterprisesCreateResource =+     "v1" :>+       "enterprises" :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "signupUrlName" Text :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "projectId" Text :>+                     QueryParam "enterpriseToken" Text :>+                       QueryParam "callback" Text :>+                         QueryParam "alt" AltJSON :>+                           ReqBody '[JSON] Enterprise :> Post '[JSON] Enterprise++-- | Creates an enterprise. This is the last step in the enterprise signup+-- flow.+--+-- /See:/ 'enterprisesCreate' smart constructor.+data EnterprisesCreate = EnterprisesCreate'+    { _ecXgafv           :: !(Maybe Xgafv)+    , _ecSignupURLName   :: !(Maybe Text)+    , _ecUploadProtocol  :: !(Maybe Text)+    , _ecAccessToken     :: !(Maybe Text)+    , _ecUploadType      :: !(Maybe Text)+    , _ecPayload         :: !Enterprise+    , _ecProjectId       :: !(Maybe Text)+    , _ecEnterpriseToken :: !(Maybe Text)+    , _ecCallback        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ecXgafv'+--+-- * 'ecSignupURLName'+--+-- * 'ecUploadProtocol'+--+-- * 'ecAccessToken'+--+-- * 'ecUploadType'+--+-- * 'ecPayload'+--+-- * 'ecProjectId'+--+-- * 'ecEnterpriseToken'+--+-- * 'ecCallback'+enterprisesCreate+    :: Enterprise -- ^ 'ecPayload'+    -> EnterprisesCreate+enterprisesCreate pEcPayload_ =+    EnterprisesCreate'+    { _ecXgafv = Nothing+    , _ecSignupURLName = Nothing+    , _ecUploadProtocol = Nothing+    , _ecAccessToken = Nothing+    , _ecUploadType = Nothing+    , _ecPayload = pEcPayload_+    , _ecProjectId = Nothing+    , _ecEnterpriseToken = Nothing+    , _ecCallback = Nothing+    }++-- | V1 error format.+ecXgafv :: Lens' EnterprisesCreate (Maybe Xgafv)+ecXgafv = lens _ecXgafv (\ s a -> s{_ecXgafv = a})++-- | The name of the SignupUrl used to sign up for the enterprise.+ecSignupURLName :: Lens' EnterprisesCreate (Maybe Text)+ecSignupURLName+  = lens _ecSignupURLName+      (\ s a -> s{_ecSignupURLName = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ecUploadProtocol :: Lens' EnterprisesCreate (Maybe Text)+ecUploadProtocol+  = lens _ecUploadProtocol+      (\ s a -> s{_ecUploadProtocol = a})++-- | OAuth access token.+ecAccessToken :: Lens' EnterprisesCreate (Maybe Text)+ecAccessToken+  = lens _ecAccessToken+      (\ s a -> s{_ecAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ecUploadType :: Lens' EnterprisesCreate (Maybe Text)+ecUploadType+  = lens _ecUploadType (\ s a -> s{_ecUploadType = a})++-- | Multipart request metadata.+ecPayload :: Lens' EnterprisesCreate Enterprise+ecPayload+  = lens _ecPayload (\ s a -> s{_ecPayload = a})++-- | The ID of the Google Cloud Platform project which will own the+-- enterprise.+ecProjectId :: Lens' EnterprisesCreate (Maybe Text)+ecProjectId+  = lens _ecProjectId (\ s a -> s{_ecProjectId = a})++-- | The enterprise token appended to the callback URL.+ecEnterpriseToken :: Lens' EnterprisesCreate (Maybe Text)+ecEnterpriseToken+  = lens _ecEnterpriseToken+      (\ s a -> s{_ecEnterpriseToken = a})++-- | JSONP+ecCallback :: Lens' EnterprisesCreate (Maybe Text)+ecCallback+  = lens _ecCallback (\ s a -> s{_ecCallback = a})++instance GoogleRequest EnterprisesCreate where+        type Rs EnterprisesCreate = Enterprise+        type Scopes EnterprisesCreate =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesCreate'{..}+          = go _ecXgafv _ecSignupURLName _ecUploadProtocol+              _ecAccessToken+              _ecUploadType+              _ecProjectId+              _ecEnterpriseToken+              _ecCallback+              (Just AltJSON)+              _ecPayload+              androidManagementService+          where go+                  = buildClient+                      (Proxy :: Proxy EnterprisesCreateResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Devices/Delete.hs view
@@ -0,0 +1,161 @@+{-# 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.AndroidManagement.Enterprises.Devices.Delete+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a device. This operation wipes the device.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.devices.delete@.+module Network.Google.Resource.AndroidManagement.Enterprises.Devices.Delete+    (+    -- * REST Resource+      EnterprisesDevicesDeleteResource++    -- * Creating a Request+    , enterprisesDevicesDelete+    , EnterprisesDevicesDelete++    -- * Request Lenses+    , eddXgafv+    , eddWipeDataFlags+    , eddUploadProtocol+    , eddAccessToken+    , eddUploadType+    , eddName+    , eddCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.devices.delete@ method which the+-- 'EnterprisesDevicesDelete' request conforms to.+type EnterprisesDevicesDeleteResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParams "wipeDataFlags" Text :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] Empty++-- | Deletes a device. This operation wipes the device.+--+-- /See:/ 'enterprisesDevicesDelete' smart constructor.+data EnterprisesDevicesDelete = EnterprisesDevicesDelete'+    { _eddXgafv          :: !(Maybe Xgafv)+    , _eddWipeDataFlags  :: !(Maybe [Text])+    , _eddUploadProtocol :: !(Maybe Text)+    , _eddAccessToken    :: !(Maybe Text)+    , _eddUploadType     :: !(Maybe Text)+    , _eddName           :: !Text+    , _eddCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesDevicesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eddXgafv'+--+-- * 'eddWipeDataFlags'+--+-- * 'eddUploadProtocol'+--+-- * 'eddAccessToken'+--+-- * 'eddUploadType'+--+-- * 'eddName'+--+-- * 'eddCallback'+enterprisesDevicesDelete+    :: Text -- ^ 'eddName'+    -> EnterprisesDevicesDelete+enterprisesDevicesDelete pEddName_ =+    EnterprisesDevicesDelete'+    { _eddXgafv = Nothing+    , _eddWipeDataFlags = Nothing+    , _eddUploadProtocol = Nothing+    , _eddAccessToken = Nothing+    , _eddUploadType = Nothing+    , _eddName = pEddName_+    , _eddCallback = Nothing+    }++-- | V1 error format.+eddXgafv :: Lens' EnterprisesDevicesDelete (Maybe Xgafv)+eddXgafv = lens _eddXgafv (\ s a -> s{_eddXgafv = a})++-- | Optional flags that control the device wiping behavior.+eddWipeDataFlags :: Lens' EnterprisesDevicesDelete [Text]+eddWipeDataFlags+  = lens _eddWipeDataFlags+      (\ s a -> s{_eddWipeDataFlags = a})+      . _Default+      . _Coerce++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+eddUploadProtocol :: Lens' EnterprisesDevicesDelete (Maybe Text)+eddUploadProtocol+  = lens _eddUploadProtocol+      (\ s a -> s{_eddUploadProtocol = a})++-- | OAuth access token.+eddAccessToken :: Lens' EnterprisesDevicesDelete (Maybe Text)+eddAccessToken+  = lens _eddAccessToken+      (\ s a -> s{_eddAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+eddUploadType :: Lens' EnterprisesDevicesDelete (Maybe Text)+eddUploadType+  = lens _eddUploadType+      (\ s a -> s{_eddUploadType = a})++-- | The name of the device in the form+-- enterprises\/{enterpriseId}\/devices\/{deviceId}.+eddName :: Lens' EnterprisesDevicesDelete Text+eddName = lens _eddName (\ s a -> s{_eddName = a})++-- | JSONP+eddCallback :: Lens' EnterprisesDevicesDelete (Maybe Text)+eddCallback+  = lens _eddCallback (\ s a -> s{_eddCallback = a})++instance GoogleRequest EnterprisesDevicesDelete where+        type Rs EnterprisesDevicesDelete = Empty+        type Scopes EnterprisesDevicesDelete =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesDevicesDelete'{..}+          = go _eddName _eddXgafv+              (_eddWipeDataFlags ^. _Default)+              _eddUploadProtocol+              _eddAccessToken+              _eddUploadType+              _eddCallback+              (Just AltJSON)+              androidManagementService+          where go+                  = buildClient+                      (Proxy :: Proxy EnterprisesDevicesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Devices/Get.hs view
@@ -0,0 +1,145 @@+{-# 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.AndroidManagement.Enterprises.Devices.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a device.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.devices.get@.+module Network.Google.Resource.AndroidManagement.Enterprises.Devices.Get+    (+    -- * REST Resource+      EnterprisesDevicesGetResource++    -- * Creating a Request+    , enterprisesDevicesGet+    , EnterprisesDevicesGet++    -- * Request Lenses+    , edgXgafv+    , edgUploadProtocol+    , edgAccessToken+    , edgUploadType+    , edgName+    , edgCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.devices.get@ method which the+-- 'EnterprisesDevicesGet' request conforms to.+type EnterprisesDevicesGetResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Device++-- | Gets a device.+--+-- /See:/ 'enterprisesDevicesGet' smart constructor.+data EnterprisesDevicesGet = EnterprisesDevicesGet'+    { _edgXgafv          :: !(Maybe Xgafv)+    , _edgUploadProtocol :: !(Maybe Text)+    , _edgAccessToken    :: !(Maybe Text)+    , _edgUploadType     :: !(Maybe Text)+    , _edgName           :: !Text+    , _edgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesDevicesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'edgXgafv'+--+-- * 'edgUploadProtocol'+--+-- * 'edgAccessToken'+--+-- * 'edgUploadType'+--+-- * 'edgName'+--+-- * 'edgCallback'+enterprisesDevicesGet+    :: Text -- ^ 'edgName'+    -> EnterprisesDevicesGet+enterprisesDevicesGet pEdgName_ =+    EnterprisesDevicesGet'+    { _edgXgafv = Nothing+    , _edgUploadProtocol = Nothing+    , _edgAccessToken = Nothing+    , _edgUploadType = Nothing+    , _edgName = pEdgName_+    , _edgCallback = Nothing+    }++-- | V1 error format.+edgXgafv :: Lens' EnterprisesDevicesGet (Maybe Xgafv)+edgXgafv = lens _edgXgafv (\ s a -> s{_edgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+edgUploadProtocol :: Lens' EnterprisesDevicesGet (Maybe Text)+edgUploadProtocol+  = lens _edgUploadProtocol+      (\ s a -> s{_edgUploadProtocol = a})++-- | OAuth access token.+edgAccessToken :: Lens' EnterprisesDevicesGet (Maybe Text)+edgAccessToken+  = lens _edgAccessToken+      (\ s a -> s{_edgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+edgUploadType :: Lens' EnterprisesDevicesGet (Maybe Text)+edgUploadType+  = lens _edgUploadType+      (\ s a -> s{_edgUploadType = a})++-- | The name of the device in the form+-- enterprises\/{enterpriseId}\/devices\/{deviceId}.+edgName :: Lens' EnterprisesDevicesGet Text+edgName = lens _edgName (\ s a -> s{_edgName = a})++-- | JSONP+edgCallback :: Lens' EnterprisesDevicesGet (Maybe Text)+edgCallback+  = lens _edgCallback (\ s a -> s{_edgCallback = a})++instance GoogleRequest EnterprisesDevicesGet where+        type Rs EnterprisesDevicesGet = Device+        type Scopes EnterprisesDevicesGet =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesDevicesGet'{..}+          = go _edgName _edgXgafv _edgUploadProtocol+              _edgAccessToken+              _edgUploadType+              _edgCallback+              (Just AltJSON)+              androidManagementService+          where go+                  = buildClient+                      (Proxy :: Proxy EnterprisesDevicesGetResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Devices/IssueCommand.hs view
@@ -0,0 +1,165 @@+{-# 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.AndroidManagement.Enterprises.Devices.IssueCommand+-- 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)+--+-- Issues a command to a device. The Operation resource returned contains a+-- Command in its metadata field. Use the get operation method to get the+-- status of the command.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.devices.issueCommand@.+module Network.Google.Resource.AndroidManagement.Enterprises.Devices.IssueCommand+    (+    -- * REST Resource+      EnterprisesDevicesIssueCommandResource++    -- * Creating a Request+    , enterprisesDevicesIssueCommand+    , EnterprisesDevicesIssueCommand++    -- * Request Lenses+    , edicXgafv+    , edicUploadProtocol+    , edicAccessToken+    , edicUploadType+    , edicPayload+    , edicName+    , edicCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.devices.issueCommand@ method which the+-- 'EnterprisesDevicesIssueCommand' request conforms to.+type EnterprisesDevicesIssueCommandResource =+     "v1" :>+       CaptureMode "name" "issueCommand" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Command :> Post '[JSON] Operation++-- | Issues a command to a device. The Operation resource returned contains a+-- Command in its metadata field. Use the get operation method to get the+-- status of the command.+--+-- /See:/ 'enterprisesDevicesIssueCommand' smart constructor.+data EnterprisesDevicesIssueCommand = EnterprisesDevicesIssueCommand'+    { _edicXgafv          :: !(Maybe Xgafv)+    , _edicUploadProtocol :: !(Maybe Text)+    , _edicAccessToken    :: !(Maybe Text)+    , _edicUploadType     :: !(Maybe Text)+    , _edicPayload        :: !Command+    , _edicName           :: !Text+    , _edicCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesDevicesIssueCommand' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'edicXgafv'+--+-- * 'edicUploadProtocol'+--+-- * 'edicAccessToken'+--+-- * 'edicUploadType'+--+-- * 'edicPayload'+--+-- * 'edicName'+--+-- * 'edicCallback'+enterprisesDevicesIssueCommand+    :: Command -- ^ 'edicPayload'+    -> Text -- ^ 'edicName'+    -> EnterprisesDevicesIssueCommand+enterprisesDevicesIssueCommand pEdicPayload_ pEdicName_ =+    EnterprisesDevicesIssueCommand'+    { _edicXgafv = Nothing+    , _edicUploadProtocol = Nothing+    , _edicAccessToken = Nothing+    , _edicUploadType = Nothing+    , _edicPayload = pEdicPayload_+    , _edicName = pEdicName_+    , _edicCallback = Nothing+    }++-- | V1 error format.+edicXgafv :: Lens' EnterprisesDevicesIssueCommand (Maybe Xgafv)+edicXgafv+  = lens _edicXgafv (\ s a -> s{_edicXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+edicUploadProtocol :: Lens' EnterprisesDevicesIssueCommand (Maybe Text)+edicUploadProtocol+  = lens _edicUploadProtocol+      (\ s a -> s{_edicUploadProtocol = a})++-- | OAuth access token.+edicAccessToken :: Lens' EnterprisesDevicesIssueCommand (Maybe Text)+edicAccessToken+  = lens _edicAccessToken+      (\ s a -> s{_edicAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+edicUploadType :: Lens' EnterprisesDevicesIssueCommand (Maybe Text)+edicUploadType+  = lens _edicUploadType+      (\ s a -> s{_edicUploadType = a})++-- | Multipart request metadata.+edicPayload :: Lens' EnterprisesDevicesIssueCommand Command+edicPayload+  = lens _edicPayload (\ s a -> s{_edicPayload = a})++-- | The name of the device in the form+-- enterprises\/{enterpriseId}\/devices\/{deviceId}.+edicName :: Lens' EnterprisesDevicesIssueCommand Text+edicName = lens _edicName (\ s a -> s{_edicName = a})++-- | JSONP+edicCallback :: Lens' EnterprisesDevicesIssueCommand (Maybe Text)+edicCallback+  = lens _edicCallback (\ s a -> s{_edicCallback = a})++instance GoogleRequest EnterprisesDevicesIssueCommand+         where+        type Rs EnterprisesDevicesIssueCommand = Operation+        type Scopes EnterprisesDevicesIssueCommand =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesDevicesIssueCommand'{..}+          = go _edicName _edicXgafv _edicUploadProtocol+              _edicAccessToken+              _edicUploadType+              _edicCallback+              (Just AltJSON)+              _edicPayload+              androidManagementService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy EnterprisesDevicesIssueCommandResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Devices/List.hs view
@@ -0,0 +1,173 @@+{-# 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.AndroidManagement.Enterprises.Devices.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists devices for a given enterprise.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.devices.list@.+module Network.Google.Resource.AndroidManagement.Enterprises.Devices.List+    (+    -- * REST Resource+      EnterprisesDevicesListResource++    -- * Creating a Request+    , enterprisesDevicesList+    , EnterprisesDevicesList++    -- * Request Lenses+    , edlParent+    , edlXgafv+    , edlUploadProtocol+    , edlAccessToken+    , edlUploadType+    , edlPageToken+    , edlPageSize+    , edlCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.devices.list@ method which the+-- 'EnterprisesDevicesList' request conforms to.+type EnterprisesDevicesListResource =+     "v1" :>+       Capture "parent" Text :>+         "devices" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "pageSize" (Textual Int32) :>+                       QueryParam "callback" Text :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] ListDevicesResponse++-- | Lists devices for a given enterprise.+--+-- /See:/ 'enterprisesDevicesList' smart constructor.+data EnterprisesDevicesList = EnterprisesDevicesList'+    { _edlParent         :: !Text+    , _edlXgafv          :: !(Maybe Xgafv)+    , _edlUploadProtocol :: !(Maybe Text)+    , _edlAccessToken    :: !(Maybe Text)+    , _edlUploadType     :: !(Maybe Text)+    , _edlPageToken      :: !(Maybe Text)+    , _edlPageSize       :: !(Maybe (Textual Int32))+    , _edlCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesDevicesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'edlParent'+--+-- * 'edlXgafv'+--+-- * 'edlUploadProtocol'+--+-- * 'edlAccessToken'+--+-- * 'edlUploadType'+--+-- * 'edlPageToken'+--+-- * 'edlPageSize'+--+-- * 'edlCallback'+enterprisesDevicesList+    :: Text -- ^ 'edlParent'+    -> EnterprisesDevicesList+enterprisesDevicesList pEdlParent_ =+    EnterprisesDevicesList'+    { _edlParent = pEdlParent_+    , _edlXgafv = Nothing+    , _edlUploadProtocol = Nothing+    , _edlAccessToken = Nothing+    , _edlUploadType = Nothing+    , _edlPageToken = Nothing+    , _edlPageSize = Nothing+    , _edlCallback = Nothing+    }++-- | The name of the enterprise in the form enterprises\/{enterpriseId}.+edlParent :: Lens' EnterprisesDevicesList Text+edlParent+  = lens _edlParent (\ s a -> s{_edlParent = a})++-- | V1 error format.+edlXgafv :: Lens' EnterprisesDevicesList (Maybe Xgafv)+edlXgafv = lens _edlXgafv (\ s a -> s{_edlXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+edlUploadProtocol :: Lens' EnterprisesDevicesList (Maybe Text)+edlUploadProtocol+  = lens _edlUploadProtocol+      (\ s a -> s{_edlUploadProtocol = a})++-- | OAuth access token.+edlAccessToken :: Lens' EnterprisesDevicesList (Maybe Text)+edlAccessToken+  = lens _edlAccessToken+      (\ s a -> s{_edlAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+edlUploadType :: Lens' EnterprisesDevicesList (Maybe Text)+edlUploadType+  = lens _edlUploadType+      (\ s a -> s{_edlUploadType = a})++-- | A token identifying a page of results returned by the server.+edlPageToken :: Lens' EnterprisesDevicesList (Maybe Text)+edlPageToken+  = lens _edlPageToken (\ s a -> s{_edlPageToken = a})++-- | The requested page size. The actual page size may be fixed to a min or+-- max value.+edlPageSize :: Lens' EnterprisesDevicesList (Maybe Int32)+edlPageSize+  = lens _edlPageSize (\ s a -> s{_edlPageSize = a}) .+      mapping _Coerce++-- | JSONP+edlCallback :: Lens' EnterprisesDevicesList (Maybe Text)+edlCallback+  = lens _edlCallback (\ s a -> s{_edlCallback = a})++instance GoogleRequest EnterprisesDevicesList where+        type Rs EnterprisesDevicesList = ListDevicesResponse+        type Scopes EnterprisesDevicesList =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesDevicesList'{..}+          = go _edlParent _edlXgafv _edlUploadProtocol+              _edlAccessToken+              _edlUploadType+              _edlPageToken+              _edlPageSize+              _edlCallback+              (Just AltJSON)+              androidManagementService+          where go+                  = buildClient+                      (Proxy :: Proxy EnterprisesDevicesListResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Devices/Operations/Cancel.hs view
@@ -0,0 +1,163 @@+{-# 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.AndroidManagement.Enterprises.Devices.Operations.Cancel+-- 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)+--+-- Starts asynchronous cancellation on a long-running operation. The server+-- makes a best effort to cancel the operation, but success is not+-- guaranteed. If the server doesn\'t support this method, it returns+-- google.rpc.Code.UNIMPLEMENTED. Clients can use Operations.GetOperation+-- or other methods to check whether the cancellation succeeded or whether+-- the operation completed despite cancellation. On successful+-- cancellation, the operation is not deleted; instead, it becomes an+-- operation with an Operation.error value with a google.rpc.Status.code of+-- 1, corresponding to Code.CANCELLED.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.devices.operations.cancel@.+module Network.Google.Resource.AndroidManagement.Enterprises.Devices.Operations.Cancel+    (+    -- * REST Resource+      EnterprisesDevicesOperationsCancelResource++    -- * Creating a Request+    , enterprisesDevicesOperationsCancel+    , EnterprisesDevicesOperationsCancel++    -- * Request Lenses+    , edocXgafv+    , edocUploadProtocol+    , edocAccessToken+    , edocUploadType+    , edocName+    , edocCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.devices.operations.cancel@ method which the+-- 'EnterprisesDevicesOperationsCancel' request conforms to.+type EnterprisesDevicesOperationsCancelResource =+     "v1" :>+       CaptureMode "name" "cancel" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Post '[JSON] Empty++-- | Starts asynchronous cancellation on a long-running operation. The server+-- makes a best effort to cancel the operation, but success is not+-- guaranteed. If the server doesn\'t support this method, it returns+-- google.rpc.Code.UNIMPLEMENTED. Clients can use Operations.GetOperation+-- or other methods to check whether the cancellation succeeded or whether+-- the operation completed despite cancellation. On successful+-- cancellation, the operation is not deleted; instead, it becomes an+-- operation with an Operation.error value with a google.rpc.Status.code of+-- 1, corresponding to Code.CANCELLED.+--+-- /See:/ 'enterprisesDevicesOperationsCancel' smart constructor.+data EnterprisesDevicesOperationsCancel = EnterprisesDevicesOperationsCancel'+    { _edocXgafv          :: !(Maybe Xgafv)+    , _edocUploadProtocol :: !(Maybe Text)+    , _edocAccessToken    :: !(Maybe Text)+    , _edocUploadType     :: !(Maybe Text)+    , _edocName           :: !Text+    , _edocCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesDevicesOperationsCancel' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'edocXgafv'+--+-- * 'edocUploadProtocol'+--+-- * 'edocAccessToken'+--+-- * 'edocUploadType'+--+-- * 'edocName'+--+-- * 'edocCallback'+enterprisesDevicesOperationsCancel+    :: Text -- ^ 'edocName'+    -> EnterprisesDevicesOperationsCancel+enterprisesDevicesOperationsCancel pEdocName_ =+    EnterprisesDevicesOperationsCancel'+    { _edocXgafv = Nothing+    , _edocUploadProtocol = Nothing+    , _edocAccessToken = Nothing+    , _edocUploadType = Nothing+    , _edocName = pEdocName_+    , _edocCallback = Nothing+    }++-- | V1 error format.+edocXgafv :: Lens' EnterprisesDevicesOperationsCancel (Maybe Xgafv)+edocXgafv+  = lens _edocXgafv (\ s a -> s{_edocXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+edocUploadProtocol :: Lens' EnterprisesDevicesOperationsCancel (Maybe Text)+edocUploadProtocol+  = lens _edocUploadProtocol+      (\ s a -> s{_edocUploadProtocol = a})++-- | OAuth access token.+edocAccessToken :: Lens' EnterprisesDevicesOperationsCancel (Maybe Text)+edocAccessToken+  = lens _edocAccessToken+      (\ s a -> s{_edocAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+edocUploadType :: Lens' EnterprisesDevicesOperationsCancel (Maybe Text)+edocUploadType+  = lens _edocUploadType+      (\ s a -> s{_edocUploadType = a})++-- | The name of the operation resource to be cancelled.+edocName :: Lens' EnterprisesDevicesOperationsCancel Text+edocName = lens _edocName (\ s a -> s{_edocName = a})++-- | JSONP+edocCallback :: Lens' EnterprisesDevicesOperationsCancel (Maybe Text)+edocCallback+  = lens _edocCallback (\ s a -> s{_edocCallback = a})++instance GoogleRequest+         EnterprisesDevicesOperationsCancel where+        type Rs EnterprisesDevicesOperationsCancel = Empty+        type Scopes EnterprisesDevicesOperationsCancel =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesDevicesOperationsCancel'{..}+          = go _edocName _edocXgafv _edocUploadProtocol+              _edocAccessToken+              _edocUploadType+              _edocCallback+              (Just AltJSON)+              androidManagementService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy EnterprisesDevicesOperationsCancelResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Devices/Operations/Delete.hs view
@@ -0,0 +1,153 @@+{-# 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.AndroidManagement.Enterprises.Devices.Operations.Delete+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a long-running operation. This method indicates that the client+-- is no longer interested in the operation result. It does not cancel the+-- operation. If the server doesn\'t support this method, it returns+-- google.rpc.Code.UNIMPLEMENTED.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.devices.operations.delete@.+module Network.Google.Resource.AndroidManagement.Enterprises.Devices.Operations.Delete+    (+    -- * REST Resource+      EnterprisesDevicesOperationsDeleteResource++    -- * Creating a Request+    , enterprisesDevicesOperationsDelete+    , EnterprisesDevicesOperationsDelete++    -- * Request Lenses+    , edodXgafv+    , edodUploadProtocol+    , edodAccessToken+    , edodUploadType+    , edodName+    , edodCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.devices.operations.delete@ method which the+-- 'EnterprisesDevicesOperationsDelete' request conforms to.+type EnterprisesDevicesOperationsDeleteResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty++-- | Deletes a long-running operation. This method indicates that the client+-- is no longer interested in the operation result. It does not cancel the+-- operation. If the server doesn\'t support this method, it returns+-- google.rpc.Code.UNIMPLEMENTED.+--+-- /See:/ 'enterprisesDevicesOperationsDelete' smart constructor.+data EnterprisesDevicesOperationsDelete = EnterprisesDevicesOperationsDelete'+    { _edodXgafv          :: !(Maybe Xgafv)+    , _edodUploadProtocol :: !(Maybe Text)+    , _edodAccessToken    :: !(Maybe Text)+    , _edodUploadType     :: !(Maybe Text)+    , _edodName           :: !Text+    , _edodCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesDevicesOperationsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'edodXgafv'+--+-- * 'edodUploadProtocol'+--+-- * 'edodAccessToken'+--+-- * 'edodUploadType'+--+-- * 'edodName'+--+-- * 'edodCallback'+enterprisesDevicesOperationsDelete+    :: Text -- ^ 'edodName'+    -> EnterprisesDevicesOperationsDelete+enterprisesDevicesOperationsDelete pEdodName_ =+    EnterprisesDevicesOperationsDelete'+    { _edodXgafv = Nothing+    , _edodUploadProtocol = Nothing+    , _edodAccessToken = Nothing+    , _edodUploadType = Nothing+    , _edodName = pEdodName_+    , _edodCallback = Nothing+    }++-- | V1 error format.+edodXgafv :: Lens' EnterprisesDevicesOperationsDelete (Maybe Xgafv)+edodXgafv+  = lens _edodXgafv (\ s a -> s{_edodXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+edodUploadProtocol :: Lens' EnterprisesDevicesOperationsDelete (Maybe Text)+edodUploadProtocol+  = lens _edodUploadProtocol+      (\ s a -> s{_edodUploadProtocol = a})++-- | OAuth access token.+edodAccessToken :: Lens' EnterprisesDevicesOperationsDelete (Maybe Text)+edodAccessToken+  = lens _edodAccessToken+      (\ s a -> s{_edodAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+edodUploadType :: Lens' EnterprisesDevicesOperationsDelete (Maybe Text)+edodUploadType+  = lens _edodUploadType+      (\ s a -> s{_edodUploadType = a})++-- | The name of the operation resource to be deleted.+edodName :: Lens' EnterprisesDevicesOperationsDelete Text+edodName = lens _edodName (\ s a -> s{_edodName = a})++-- | JSONP+edodCallback :: Lens' EnterprisesDevicesOperationsDelete (Maybe Text)+edodCallback+  = lens _edodCallback (\ s a -> s{_edodCallback = a})++instance GoogleRequest+         EnterprisesDevicesOperationsDelete where+        type Rs EnterprisesDevicesOperationsDelete = Empty+        type Scopes EnterprisesDevicesOperationsDelete =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesDevicesOperationsDelete'{..}+          = go _edodName _edodXgafv _edodUploadProtocol+              _edodAccessToken+              _edodUploadType+              _edodCallback+              (Just AltJSON)+              androidManagementService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy EnterprisesDevicesOperationsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Devices/Operations/Get.hs view
@@ -0,0 +1,151 @@+{-# 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.AndroidManagement.Enterprises.Devices.Operations.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the latest state of a long-running operation. Clients can use this+-- method to poll the operation result at intervals as recommended by the+-- API service.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.devices.operations.get@.+module Network.Google.Resource.AndroidManagement.Enterprises.Devices.Operations.Get+    (+    -- * REST Resource+      EnterprisesDevicesOperationsGetResource++    -- * Creating a Request+    , enterprisesDevicesOperationsGet+    , EnterprisesDevicesOperationsGet++    -- * Request Lenses+    , edogXgafv+    , edogUploadProtocol+    , edogAccessToken+    , edogUploadType+    , edogName+    , edogCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.devices.operations.get@ method which the+-- 'EnterprisesDevicesOperationsGet' request conforms to.+type EnterprisesDevicesOperationsGetResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Operation++-- | Gets the latest state of a long-running operation. Clients can use this+-- method to poll the operation result at intervals as recommended by the+-- API service.+--+-- /See:/ 'enterprisesDevicesOperationsGet' smart constructor.+data EnterprisesDevicesOperationsGet = EnterprisesDevicesOperationsGet'+    { _edogXgafv          :: !(Maybe Xgafv)+    , _edogUploadProtocol :: !(Maybe Text)+    , _edogAccessToken    :: !(Maybe Text)+    , _edogUploadType     :: !(Maybe Text)+    , _edogName           :: !Text+    , _edogCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesDevicesOperationsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'edogXgafv'+--+-- * 'edogUploadProtocol'+--+-- * 'edogAccessToken'+--+-- * 'edogUploadType'+--+-- * 'edogName'+--+-- * 'edogCallback'+enterprisesDevicesOperationsGet+    :: Text -- ^ 'edogName'+    -> EnterprisesDevicesOperationsGet+enterprisesDevicesOperationsGet pEdogName_ =+    EnterprisesDevicesOperationsGet'+    { _edogXgafv = Nothing+    , _edogUploadProtocol = Nothing+    , _edogAccessToken = Nothing+    , _edogUploadType = Nothing+    , _edogName = pEdogName_+    , _edogCallback = Nothing+    }++-- | V1 error format.+edogXgafv :: Lens' EnterprisesDevicesOperationsGet (Maybe Xgafv)+edogXgafv+  = lens _edogXgafv (\ s a -> s{_edogXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+edogUploadProtocol :: Lens' EnterprisesDevicesOperationsGet (Maybe Text)+edogUploadProtocol+  = lens _edogUploadProtocol+      (\ s a -> s{_edogUploadProtocol = a})++-- | OAuth access token.+edogAccessToken :: Lens' EnterprisesDevicesOperationsGet (Maybe Text)+edogAccessToken+  = lens _edogAccessToken+      (\ s a -> s{_edogAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+edogUploadType :: Lens' EnterprisesDevicesOperationsGet (Maybe Text)+edogUploadType+  = lens _edogUploadType+      (\ s a -> s{_edogUploadType = a})++-- | The name of the operation resource.+edogName :: Lens' EnterprisesDevicesOperationsGet Text+edogName = lens _edogName (\ s a -> s{_edogName = a})++-- | JSONP+edogCallback :: Lens' EnterprisesDevicesOperationsGet (Maybe Text)+edogCallback+  = lens _edogCallback (\ s a -> s{_edogCallback = a})++instance GoogleRequest+         EnterprisesDevicesOperationsGet where+        type Rs EnterprisesDevicesOperationsGet = Operation+        type Scopes EnterprisesDevicesOperationsGet =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesDevicesOperationsGet'{..}+          = go _edogName _edogXgafv _edogUploadProtocol+              _edogAccessToken+              _edogUploadType+              _edogCallback+              (Just AltJSON)+              androidManagementService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy EnterprisesDevicesOperationsGetResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Devices/Operations/List.hs view
@@ -0,0 +1,203 @@+{-# 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.AndroidManagement.Enterprises.Devices.Operations.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists operations that match the specified filter in the request. If the+-- server doesn\'t support this method, it returns UNIMPLEMENTED.NOTE: the+-- name binding allows API services to override the binding to use+-- different resource name schemes, such as users\/*\/operations. To+-- override the binding, API services can add a binding such as+-- \"\/v1\/{name=users\/*}\/operations\" to their service configuration.+-- For backwards compatibility, the default name includes the operations+-- collection id, however overriding users must ensure the name binding is+-- the parent resource, without the operations collection id.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.devices.operations.list@.+module Network.Google.Resource.AndroidManagement.Enterprises.Devices.Operations.List+    (+    -- * REST Resource+      EnterprisesDevicesOperationsListResource++    -- * Creating a Request+    , enterprisesDevicesOperationsList+    , EnterprisesDevicesOperationsList++    -- * Request Lenses+    , edolXgafv+    , edolUploadProtocol+    , edolAccessToken+    , edolUploadType+    , edolName+    , edolFilter+    , edolPageToken+    , edolPageSize+    , edolCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.devices.operations.list@ method which the+-- 'EnterprisesDevicesOperationsList' request conforms to.+type EnterprisesDevicesOperationsListResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "pageSize" (Textual Int32) :>+                       QueryParam "callback" Text :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] ListOperationsResponse++-- | Lists operations that match the specified filter in the request. If the+-- server doesn\'t support this method, it returns UNIMPLEMENTED.NOTE: the+-- name binding allows API services to override the binding to use+-- different resource name schemes, such as users\/*\/operations. To+-- override the binding, API services can add a binding such as+-- \"\/v1\/{name=users\/*}\/operations\" to their service configuration.+-- For backwards compatibility, the default name includes the operations+-- collection id, however overriding users must ensure the name binding is+-- the parent resource, without the operations collection id.+--+-- /See:/ 'enterprisesDevicesOperationsList' smart constructor.+data EnterprisesDevicesOperationsList = EnterprisesDevicesOperationsList'+    { _edolXgafv          :: !(Maybe Xgafv)+    , _edolUploadProtocol :: !(Maybe Text)+    , _edolAccessToken    :: !(Maybe Text)+    , _edolUploadType     :: !(Maybe Text)+    , _edolName           :: !Text+    , _edolFilter         :: !(Maybe Text)+    , _edolPageToken      :: !(Maybe Text)+    , _edolPageSize       :: !(Maybe (Textual Int32))+    , _edolCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesDevicesOperationsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'edolXgafv'+--+-- * 'edolUploadProtocol'+--+-- * 'edolAccessToken'+--+-- * 'edolUploadType'+--+-- * 'edolName'+--+-- * 'edolFilter'+--+-- * 'edolPageToken'+--+-- * 'edolPageSize'+--+-- * 'edolCallback'+enterprisesDevicesOperationsList+    :: Text -- ^ 'edolName'+    -> EnterprisesDevicesOperationsList+enterprisesDevicesOperationsList pEdolName_ =+    EnterprisesDevicesOperationsList'+    { _edolXgafv = Nothing+    , _edolUploadProtocol = Nothing+    , _edolAccessToken = Nothing+    , _edolUploadType = Nothing+    , _edolName = pEdolName_+    , _edolFilter = Nothing+    , _edolPageToken = Nothing+    , _edolPageSize = Nothing+    , _edolCallback = Nothing+    }++-- | V1 error format.+edolXgafv :: Lens' EnterprisesDevicesOperationsList (Maybe Xgafv)+edolXgafv+  = lens _edolXgafv (\ s a -> s{_edolXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+edolUploadProtocol :: Lens' EnterprisesDevicesOperationsList (Maybe Text)+edolUploadProtocol+  = lens _edolUploadProtocol+      (\ s a -> s{_edolUploadProtocol = a})++-- | OAuth access token.+edolAccessToken :: Lens' EnterprisesDevicesOperationsList (Maybe Text)+edolAccessToken+  = lens _edolAccessToken+      (\ s a -> s{_edolAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+edolUploadType :: Lens' EnterprisesDevicesOperationsList (Maybe Text)+edolUploadType+  = lens _edolUploadType+      (\ s a -> s{_edolUploadType = a})++-- | The name of the operation\'s parent resource.+edolName :: Lens' EnterprisesDevicesOperationsList Text+edolName = lens _edolName (\ s a -> s{_edolName = a})++-- | The standard list filter.+edolFilter :: Lens' EnterprisesDevicesOperationsList (Maybe Text)+edolFilter+  = lens _edolFilter (\ s a -> s{_edolFilter = a})++-- | The standard list page token.+edolPageToken :: Lens' EnterprisesDevicesOperationsList (Maybe Text)+edolPageToken+  = lens _edolPageToken+      (\ s a -> s{_edolPageToken = a})++-- | The standard list page size.+edolPageSize :: Lens' EnterprisesDevicesOperationsList (Maybe Int32)+edolPageSize+  = lens _edolPageSize (\ s a -> s{_edolPageSize = a})+      . mapping _Coerce++-- | JSONP+edolCallback :: Lens' EnterprisesDevicesOperationsList (Maybe Text)+edolCallback+  = lens _edolCallback (\ s a -> s{_edolCallback = a})++instance GoogleRequest+         EnterprisesDevicesOperationsList where+        type Rs EnterprisesDevicesOperationsList =+             ListOperationsResponse+        type Scopes EnterprisesDevicesOperationsList =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesDevicesOperationsList'{..}+          = go _edolName _edolXgafv _edolUploadProtocol+              _edolAccessToken+              _edolUploadType+              _edolFilter+              _edolPageToken+              _edolPageSize+              _edolCallback+              (Just AltJSON)+              androidManagementService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy EnterprisesDevicesOperationsListResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Devices/Patch.hs view
@@ -0,0 +1,172 @@+{-# 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.AndroidManagement.Enterprises.Devices.Patch+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a device.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.devices.patch@.+module Network.Google.Resource.AndroidManagement.Enterprises.Devices.Patch+    (+    -- * REST Resource+      EnterprisesDevicesPatchResource++    -- * Creating a Request+    , enterprisesDevicesPatch+    , EnterprisesDevicesPatch++    -- * Request Lenses+    , edpXgafv+    , edpUploadProtocol+    , edpUpdateMask+    , edpAccessToken+    , edpUploadType+    , edpPayload+    , edpName+    , edpCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.devices.patch@ method which the+-- 'EnterprisesDevicesPatch' request conforms to.+type EnterprisesDevicesPatchResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "updateMask" GFieldMask :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Device :> Patch '[JSON] Device++-- | Updates a device.+--+-- /See:/ 'enterprisesDevicesPatch' smart constructor.+data EnterprisesDevicesPatch = EnterprisesDevicesPatch'+    { _edpXgafv          :: !(Maybe Xgafv)+    , _edpUploadProtocol :: !(Maybe Text)+    , _edpUpdateMask     :: !(Maybe GFieldMask)+    , _edpAccessToken    :: !(Maybe Text)+    , _edpUploadType     :: !(Maybe Text)+    , _edpPayload        :: !Device+    , _edpName           :: !Text+    , _edpCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesDevicesPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'edpXgafv'+--+-- * 'edpUploadProtocol'+--+-- * 'edpUpdateMask'+--+-- * 'edpAccessToken'+--+-- * 'edpUploadType'+--+-- * 'edpPayload'+--+-- * 'edpName'+--+-- * 'edpCallback'+enterprisesDevicesPatch+    :: Device -- ^ 'edpPayload'+    -> Text -- ^ 'edpName'+    -> EnterprisesDevicesPatch+enterprisesDevicesPatch pEdpPayload_ pEdpName_ =+    EnterprisesDevicesPatch'+    { _edpXgafv = Nothing+    , _edpUploadProtocol = Nothing+    , _edpUpdateMask = Nothing+    , _edpAccessToken = Nothing+    , _edpUploadType = Nothing+    , _edpPayload = pEdpPayload_+    , _edpName = pEdpName_+    , _edpCallback = Nothing+    }++-- | V1 error format.+edpXgafv :: Lens' EnterprisesDevicesPatch (Maybe Xgafv)+edpXgafv = lens _edpXgafv (\ s a -> s{_edpXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+edpUploadProtocol :: Lens' EnterprisesDevicesPatch (Maybe Text)+edpUploadProtocol+  = lens _edpUploadProtocol+      (\ s a -> s{_edpUploadProtocol = a})++-- | The field mask indicating the fields to update. If not set, all+-- modifiable fields will be modified.+edpUpdateMask :: Lens' EnterprisesDevicesPatch (Maybe GFieldMask)+edpUpdateMask+  = lens _edpUpdateMask+      (\ s a -> s{_edpUpdateMask = a})++-- | OAuth access token.+edpAccessToken :: Lens' EnterprisesDevicesPatch (Maybe Text)+edpAccessToken+  = lens _edpAccessToken+      (\ s a -> s{_edpAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+edpUploadType :: Lens' EnterprisesDevicesPatch (Maybe Text)+edpUploadType+  = lens _edpUploadType+      (\ s a -> s{_edpUploadType = a})++-- | Multipart request metadata.+edpPayload :: Lens' EnterprisesDevicesPatch Device+edpPayload+  = lens _edpPayload (\ s a -> s{_edpPayload = a})++-- | The name of the device in the form+-- enterprises\/{enterpriseId}\/devices\/{deviceId}.+edpName :: Lens' EnterprisesDevicesPatch Text+edpName = lens _edpName (\ s a -> s{_edpName = a})++-- | JSONP+edpCallback :: Lens' EnterprisesDevicesPatch (Maybe Text)+edpCallback+  = lens _edpCallback (\ s a -> s{_edpCallback = a})++instance GoogleRequest EnterprisesDevicesPatch where+        type Rs EnterprisesDevicesPatch = Device+        type Scopes EnterprisesDevicesPatch =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesDevicesPatch'{..}+          = go _edpName _edpXgafv _edpUploadProtocol+              _edpUpdateMask+              _edpAccessToken+              _edpUploadType+              _edpCallback+              (Just AltJSON)+              _edpPayload+              androidManagementService+          where go+                  = buildClient+                      (Proxy :: Proxy EnterprisesDevicesPatchResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/EnrollmentTokens/Create.hs view
@@ -0,0 +1,164 @@+{-# 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.AndroidManagement.Enterprises.EnrollmentTokens.Create+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an enrollment token for a given enterprise.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.enrollmentTokens.create@.+module Network.Google.Resource.AndroidManagement.Enterprises.EnrollmentTokens.Create+    (+    -- * REST Resource+      EnterprisesEnrollmentTokensCreateResource++    -- * Creating a Request+    , enterprisesEnrollmentTokensCreate+    , EnterprisesEnrollmentTokensCreate++    -- * Request Lenses+    , eetcParent+    , eetcXgafv+    , eetcUploadProtocol+    , eetcAccessToken+    , eetcUploadType+    , eetcPayload+    , eetcCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.enrollmentTokens.create@ method which the+-- 'EnterprisesEnrollmentTokensCreate' request conforms to.+type EnterprisesEnrollmentTokensCreateResource =+     "v1" :>+       Capture "parent" Text :>+         "enrollmentTokens" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] EnrollmentToken :>+                         Post '[JSON] EnrollmentToken++-- | Creates an enrollment token for a given enterprise.+--+-- /See:/ 'enterprisesEnrollmentTokensCreate' smart constructor.+data EnterprisesEnrollmentTokensCreate = EnterprisesEnrollmentTokensCreate'+    { _eetcParent         :: !Text+    , _eetcXgafv          :: !(Maybe Xgafv)+    , _eetcUploadProtocol :: !(Maybe Text)+    , _eetcAccessToken    :: !(Maybe Text)+    , _eetcUploadType     :: !(Maybe Text)+    , _eetcPayload        :: !EnrollmentToken+    , _eetcCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesEnrollmentTokensCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eetcParent'+--+-- * 'eetcXgafv'+--+-- * 'eetcUploadProtocol'+--+-- * 'eetcAccessToken'+--+-- * 'eetcUploadType'+--+-- * 'eetcPayload'+--+-- * 'eetcCallback'+enterprisesEnrollmentTokensCreate+    :: Text -- ^ 'eetcParent'+    -> EnrollmentToken -- ^ 'eetcPayload'+    -> EnterprisesEnrollmentTokensCreate+enterprisesEnrollmentTokensCreate pEetcParent_ pEetcPayload_ =+    EnterprisesEnrollmentTokensCreate'+    { _eetcParent = pEetcParent_+    , _eetcXgafv = Nothing+    , _eetcUploadProtocol = Nothing+    , _eetcAccessToken = Nothing+    , _eetcUploadType = Nothing+    , _eetcPayload = pEetcPayload_+    , _eetcCallback = Nothing+    }++-- | The name of the enterprise in the form enterprises\/{enterpriseId}.+eetcParent :: Lens' EnterprisesEnrollmentTokensCreate Text+eetcParent+  = lens _eetcParent (\ s a -> s{_eetcParent = a})++-- | V1 error format.+eetcXgafv :: Lens' EnterprisesEnrollmentTokensCreate (Maybe Xgafv)+eetcXgafv+  = lens _eetcXgafv (\ s a -> s{_eetcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+eetcUploadProtocol :: Lens' EnterprisesEnrollmentTokensCreate (Maybe Text)+eetcUploadProtocol+  = lens _eetcUploadProtocol+      (\ s a -> s{_eetcUploadProtocol = a})++-- | OAuth access token.+eetcAccessToken :: Lens' EnterprisesEnrollmentTokensCreate (Maybe Text)+eetcAccessToken+  = lens _eetcAccessToken+      (\ s a -> s{_eetcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+eetcUploadType :: Lens' EnterprisesEnrollmentTokensCreate (Maybe Text)+eetcUploadType+  = lens _eetcUploadType+      (\ s a -> s{_eetcUploadType = a})++-- | Multipart request metadata.+eetcPayload :: Lens' EnterprisesEnrollmentTokensCreate EnrollmentToken+eetcPayload+  = lens _eetcPayload (\ s a -> s{_eetcPayload = a})++-- | JSONP+eetcCallback :: Lens' EnterprisesEnrollmentTokensCreate (Maybe Text)+eetcCallback+  = lens _eetcCallback (\ s a -> s{_eetcCallback = a})++instance GoogleRequest+         EnterprisesEnrollmentTokensCreate where+        type Rs EnterprisesEnrollmentTokensCreate =+             EnrollmentToken+        type Scopes EnterprisesEnrollmentTokensCreate =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesEnrollmentTokensCreate'{..}+          = go _eetcParent _eetcXgafv _eetcUploadProtocol+              _eetcAccessToken+              _eetcUploadType+              _eetcCallback+              (Just AltJSON)+              _eetcPayload+              androidManagementService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy EnterprisesEnrollmentTokensCreateResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/EnrollmentTokens/Delete.hs view
@@ -0,0 +1,150 @@+{-# 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.AndroidManagement.Enterprises.EnrollmentTokens.Delete+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an enrollment token. This operation invalidates the token,+-- preventing its future use.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.enrollmentTokens.delete@.+module Network.Google.Resource.AndroidManagement.Enterprises.EnrollmentTokens.Delete+    (+    -- * REST Resource+      EnterprisesEnrollmentTokensDeleteResource++    -- * Creating a Request+    , enterprisesEnrollmentTokensDelete+    , EnterprisesEnrollmentTokensDelete++    -- * Request Lenses+    , eetdXgafv+    , eetdUploadProtocol+    , eetdAccessToken+    , eetdUploadType+    , eetdName+    , eetdCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.enrollmentTokens.delete@ method which the+-- 'EnterprisesEnrollmentTokensDelete' request conforms to.+type EnterprisesEnrollmentTokensDeleteResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty++-- | Deletes an enrollment token. This operation invalidates the token,+-- preventing its future use.+--+-- /See:/ 'enterprisesEnrollmentTokensDelete' smart constructor.+data EnterprisesEnrollmentTokensDelete = EnterprisesEnrollmentTokensDelete'+    { _eetdXgafv          :: !(Maybe Xgafv)+    , _eetdUploadProtocol :: !(Maybe Text)+    , _eetdAccessToken    :: !(Maybe Text)+    , _eetdUploadType     :: !(Maybe Text)+    , _eetdName           :: !Text+    , _eetdCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesEnrollmentTokensDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eetdXgafv'+--+-- * 'eetdUploadProtocol'+--+-- * 'eetdAccessToken'+--+-- * 'eetdUploadType'+--+-- * 'eetdName'+--+-- * 'eetdCallback'+enterprisesEnrollmentTokensDelete+    :: Text -- ^ 'eetdName'+    -> EnterprisesEnrollmentTokensDelete+enterprisesEnrollmentTokensDelete pEetdName_ =+    EnterprisesEnrollmentTokensDelete'+    { _eetdXgafv = Nothing+    , _eetdUploadProtocol = Nothing+    , _eetdAccessToken = Nothing+    , _eetdUploadType = Nothing+    , _eetdName = pEetdName_+    , _eetdCallback = Nothing+    }++-- | V1 error format.+eetdXgafv :: Lens' EnterprisesEnrollmentTokensDelete (Maybe Xgafv)+eetdXgafv+  = lens _eetdXgafv (\ s a -> s{_eetdXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+eetdUploadProtocol :: Lens' EnterprisesEnrollmentTokensDelete (Maybe Text)+eetdUploadProtocol+  = lens _eetdUploadProtocol+      (\ s a -> s{_eetdUploadProtocol = a})++-- | OAuth access token.+eetdAccessToken :: Lens' EnterprisesEnrollmentTokensDelete (Maybe Text)+eetdAccessToken+  = lens _eetdAccessToken+      (\ s a -> s{_eetdAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+eetdUploadType :: Lens' EnterprisesEnrollmentTokensDelete (Maybe Text)+eetdUploadType+  = lens _eetdUploadType+      (\ s a -> s{_eetdUploadType = a})++-- | The name of the enrollment token in the form+-- enterprises\/{enterpriseId}\/enrollmentTokens\/{enrollmentTokenId}.+eetdName :: Lens' EnterprisesEnrollmentTokensDelete Text+eetdName = lens _eetdName (\ s a -> s{_eetdName = a})++-- | JSONP+eetdCallback :: Lens' EnterprisesEnrollmentTokensDelete (Maybe Text)+eetdCallback+  = lens _eetdCallback (\ s a -> s{_eetdCallback = a})++instance GoogleRequest+         EnterprisesEnrollmentTokensDelete where+        type Rs EnterprisesEnrollmentTokensDelete = Empty+        type Scopes EnterprisesEnrollmentTokensDelete =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesEnrollmentTokensDelete'{..}+          = go _eetdName _eetdXgafv _eetdUploadProtocol+              _eetdAccessToken+              _eetdUploadType+              _eetdCallback+              (Just AltJSON)+              androidManagementService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy EnterprisesEnrollmentTokensDeleteResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Get.hs view
@@ -0,0 +1,142 @@+{-# 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.AndroidManagement.Enterprises.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets an enterprise.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.get@.+module Network.Google.Resource.AndroidManagement.Enterprises.Get+    (+    -- * REST Resource+      EnterprisesGetResource++    -- * Creating a Request+    , enterprisesGet+    , EnterprisesGet++    -- * Request Lenses+    , egXgafv+    , egUploadProtocol+    , egAccessToken+    , egUploadType+    , egName+    , egCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.get@ method which the+-- 'EnterprisesGet' request conforms to.+type EnterprisesGetResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Enterprise++-- | Gets an enterprise.+--+-- /See:/ 'enterprisesGet' smart constructor.+data EnterprisesGet = EnterprisesGet'+    { _egXgafv          :: !(Maybe Xgafv)+    , _egUploadProtocol :: !(Maybe Text)+    , _egAccessToken    :: !(Maybe Text)+    , _egUploadType     :: !(Maybe Text)+    , _egName           :: !Text+    , _egCallback       :: !(Maybe Text)+    } 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:+--+-- * 'egXgafv'+--+-- * 'egUploadProtocol'+--+-- * 'egAccessToken'+--+-- * 'egUploadType'+--+-- * 'egName'+--+-- * 'egCallback'+enterprisesGet+    :: Text -- ^ 'egName'+    -> EnterprisesGet+enterprisesGet pEgName_ =+    EnterprisesGet'+    { _egXgafv = Nothing+    , _egUploadProtocol = Nothing+    , _egAccessToken = Nothing+    , _egUploadType = Nothing+    , _egName = pEgName_+    , _egCallback = Nothing+    }++-- | V1 error format.+egXgafv :: Lens' EnterprisesGet (Maybe Xgafv)+egXgafv = lens _egXgafv (\ s a -> s{_egXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+egUploadProtocol :: Lens' EnterprisesGet (Maybe Text)+egUploadProtocol+  = lens _egUploadProtocol+      (\ s a -> s{_egUploadProtocol = a})++-- | OAuth access token.+egAccessToken :: Lens' EnterprisesGet (Maybe Text)+egAccessToken+  = lens _egAccessToken+      (\ s a -> s{_egAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+egUploadType :: Lens' EnterprisesGet (Maybe Text)+egUploadType+  = lens _egUploadType (\ s a -> s{_egUploadType = a})++-- | The name of the enterprise in the form enterprises\/{enterpriseId}.+egName :: Lens' EnterprisesGet Text+egName = lens _egName (\ s a -> s{_egName = a})++-- | JSONP+egCallback :: Lens' EnterprisesGet (Maybe Text)+egCallback+  = lens _egCallback (\ s a -> s{_egCallback = a})++instance GoogleRequest EnterprisesGet where+        type Rs EnterprisesGet = Enterprise+        type Scopes EnterprisesGet =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesGet'{..}+          = go _egName _egXgafv _egUploadProtocol+              _egAccessToken+              _egUploadType+              _egCallback+              (Just AltJSON)+              androidManagementService+          where go+                  = buildClient (Proxy :: Proxy EnterprisesGetResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Patch.hs view
@@ -0,0 +1,169 @@+{-# 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.AndroidManagement.Enterprises.Patch+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an enterprise.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.patch@.+module Network.Google.Resource.AndroidManagement.Enterprises.Patch+    (+    -- * REST Resource+      EnterprisesPatchResource++    -- * Creating a Request+    , enterprisesPatch+    , EnterprisesPatch++    -- * Request Lenses+    , epXgafv+    , epUploadProtocol+    , epUpdateMask+    , epAccessToken+    , epUploadType+    , epPayload+    , epName+    , epCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.patch@ method which the+-- 'EnterprisesPatch' request conforms to.+type EnterprisesPatchResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "updateMask" GFieldMask :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Enterprise :>+                         Patch '[JSON] Enterprise++-- | Updates an enterprise.+--+-- /See:/ 'enterprisesPatch' smart constructor.+data EnterprisesPatch = EnterprisesPatch'+    { _epXgafv          :: !(Maybe Xgafv)+    , _epUploadProtocol :: !(Maybe Text)+    , _epUpdateMask     :: !(Maybe GFieldMask)+    , _epAccessToken    :: !(Maybe Text)+    , _epUploadType     :: !(Maybe Text)+    , _epPayload        :: !Enterprise+    , _epName           :: !Text+    , _epCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'epXgafv'+--+-- * 'epUploadProtocol'+--+-- * 'epUpdateMask'+--+-- * 'epAccessToken'+--+-- * 'epUploadType'+--+-- * 'epPayload'+--+-- * 'epName'+--+-- * 'epCallback'+enterprisesPatch+    :: Enterprise -- ^ 'epPayload'+    -> Text -- ^ 'epName'+    -> EnterprisesPatch+enterprisesPatch pEpPayload_ pEpName_ =+    EnterprisesPatch'+    { _epXgafv = Nothing+    , _epUploadProtocol = Nothing+    , _epUpdateMask = Nothing+    , _epAccessToken = Nothing+    , _epUploadType = Nothing+    , _epPayload = pEpPayload_+    , _epName = pEpName_+    , _epCallback = Nothing+    }++-- | V1 error format.+epXgafv :: Lens' EnterprisesPatch (Maybe Xgafv)+epXgafv = lens _epXgafv (\ s a -> s{_epXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+epUploadProtocol :: Lens' EnterprisesPatch (Maybe Text)+epUploadProtocol+  = lens _epUploadProtocol+      (\ s a -> s{_epUploadProtocol = a})++-- | The field mask indicating the fields to update. If not set, all+-- modifiable fields will be modified.+epUpdateMask :: Lens' EnterprisesPatch (Maybe GFieldMask)+epUpdateMask+  = lens _epUpdateMask (\ s a -> s{_epUpdateMask = a})++-- | OAuth access token.+epAccessToken :: Lens' EnterprisesPatch (Maybe Text)+epAccessToken+  = lens _epAccessToken+      (\ s a -> s{_epAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+epUploadType :: Lens' EnterprisesPatch (Maybe Text)+epUploadType+  = lens _epUploadType (\ s a -> s{_epUploadType = a})++-- | Multipart request metadata.+epPayload :: Lens' EnterprisesPatch Enterprise+epPayload+  = lens _epPayload (\ s a -> s{_epPayload = a})++-- | The name of the enterprise in the form enterprises\/{enterpriseId}.+epName :: Lens' EnterprisesPatch Text+epName = lens _epName (\ s a -> s{_epName = a})++-- | JSONP+epCallback :: Lens' EnterprisesPatch (Maybe Text)+epCallback+  = lens _epCallback (\ s a -> s{_epCallback = a})++instance GoogleRequest EnterprisesPatch where+        type Rs EnterprisesPatch = Enterprise+        type Scopes EnterprisesPatch =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesPatch'{..}+          = go _epName _epXgafv _epUploadProtocol _epUpdateMask+              _epAccessToken+              _epUploadType+              _epCallback+              (Just AltJSON)+              _epPayload+              androidManagementService+          where go+                  = buildClient+                      (Proxy :: Proxy EnterprisesPatchResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Policies/Delete.hs view
@@ -0,0 +1,148 @@+{-# 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.AndroidManagement.Enterprises.Policies.Delete+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a policy. This operation is only permitted if no devices are+-- currently referencing the policy.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.policies.delete@.+module Network.Google.Resource.AndroidManagement.Enterprises.Policies.Delete+    (+    -- * REST Resource+      EnterprisesPoliciesDeleteResource++    -- * Creating a Request+    , enterprisesPoliciesDelete+    , EnterprisesPoliciesDelete++    -- * Request Lenses+    , epdXgafv+    , epdUploadProtocol+    , epdAccessToken+    , epdUploadType+    , epdName+    , epdCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.policies.delete@ method which the+-- 'EnterprisesPoliciesDelete' request conforms to.+type EnterprisesPoliciesDeleteResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty++-- | Deletes a policy. This operation is only permitted if no devices are+-- currently referencing the policy.+--+-- /See:/ 'enterprisesPoliciesDelete' smart constructor.+data EnterprisesPoliciesDelete = EnterprisesPoliciesDelete'+    { _epdXgafv          :: !(Maybe Xgafv)+    , _epdUploadProtocol :: !(Maybe Text)+    , _epdAccessToken    :: !(Maybe Text)+    , _epdUploadType     :: !(Maybe Text)+    , _epdName           :: !Text+    , _epdCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesPoliciesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'epdXgafv'+--+-- * 'epdUploadProtocol'+--+-- * 'epdAccessToken'+--+-- * 'epdUploadType'+--+-- * 'epdName'+--+-- * 'epdCallback'+enterprisesPoliciesDelete+    :: Text -- ^ 'epdName'+    -> EnterprisesPoliciesDelete+enterprisesPoliciesDelete pEpdName_ =+    EnterprisesPoliciesDelete'+    { _epdXgafv = Nothing+    , _epdUploadProtocol = Nothing+    , _epdAccessToken = Nothing+    , _epdUploadType = Nothing+    , _epdName = pEpdName_+    , _epdCallback = Nothing+    }++-- | V1 error format.+epdXgafv :: Lens' EnterprisesPoliciesDelete (Maybe Xgafv)+epdXgafv = lens _epdXgafv (\ s a -> s{_epdXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+epdUploadProtocol :: Lens' EnterprisesPoliciesDelete (Maybe Text)+epdUploadProtocol+  = lens _epdUploadProtocol+      (\ s a -> s{_epdUploadProtocol = a})++-- | OAuth access token.+epdAccessToken :: Lens' EnterprisesPoliciesDelete (Maybe Text)+epdAccessToken+  = lens _epdAccessToken+      (\ s a -> s{_epdAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+epdUploadType :: Lens' EnterprisesPoliciesDelete (Maybe Text)+epdUploadType+  = lens _epdUploadType+      (\ s a -> s{_epdUploadType = a})++-- | The name of the policy in the form+-- enterprises\/{enterpriseId}\/policies\/{policyId}.+epdName :: Lens' EnterprisesPoliciesDelete Text+epdName = lens _epdName (\ s a -> s{_epdName = a})++-- | JSONP+epdCallback :: Lens' EnterprisesPoliciesDelete (Maybe Text)+epdCallback+  = lens _epdCallback (\ s a -> s{_epdCallback = a})++instance GoogleRequest EnterprisesPoliciesDelete+         where+        type Rs EnterprisesPoliciesDelete = Empty+        type Scopes EnterprisesPoliciesDelete =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesPoliciesDelete'{..}+          = go _epdName _epdXgafv _epdUploadProtocol+              _epdAccessToken+              _epdUploadType+              _epdCallback+              (Just AltJSON)+              androidManagementService+          where go+                  = buildClient+                      (Proxy :: Proxy EnterprisesPoliciesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Policies/Get.hs view
@@ -0,0 +1,145 @@+{-# 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.AndroidManagement.Enterprises.Policies.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a policy.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.policies.get@.+module Network.Google.Resource.AndroidManagement.Enterprises.Policies.Get+    (+    -- * REST Resource+      EnterprisesPoliciesGetResource++    -- * Creating a Request+    , enterprisesPoliciesGet+    , EnterprisesPoliciesGet++    -- * Request Lenses+    , epgXgafv+    , epgUploadProtocol+    , epgAccessToken+    , epgUploadType+    , epgName+    , epgCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.policies.get@ method which the+-- 'EnterprisesPoliciesGet' request conforms to.+type EnterprisesPoliciesGetResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Policy++-- | Gets a policy.+--+-- /See:/ 'enterprisesPoliciesGet' smart constructor.+data EnterprisesPoliciesGet = EnterprisesPoliciesGet'+    { _epgXgafv          :: !(Maybe Xgafv)+    , _epgUploadProtocol :: !(Maybe Text)+    , _epgAccessToken    :: !(Maybe Text)+    , _epgUploadType     :: !(Maybe Text)+    , _epgName           :: !Text+    , _epgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesPoliciesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'epgXgafv'+--+-- * 'epgUploadProtocol'+--+-- * 'epgAccessToken'+--+-- * 'epgUploadType'+--+-- * 'epgName'+--+-- * 'epgCallback'+enterprisesPoliciesGet+    :: Text -- ^ 'epgName'+    -> EnterprisesPoliciesGet+enterprisesPoliciesGet pEpgName_ =+    EnterprisesPoliciesGet'+    { _epgXgafv = Nothing+    , _epgUploadProtocol = Nothing+    , _epgAccessToken = Nothing+    , _epgUploadType = Nothing+    , _epgName = pEpgName_+    , _epgCallback = Nothing+    }++-- | V1 error format.+epgXgafv :: Lens' EnterprisesPoliciesGet (Maybe Xgafv)+epgXgafv = lens _epgXgafv (\ s a -> s{_epgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+epgUploadProtocol :: Lens' EnterprisesPoliciesGet (Maybe Text)+epgUploadProtocol+  = lens _epgUploadProtocol+      (\ s a -> s{_epgUploadProtocol = a})++-- | OAuth access token.+epgAccessToken :: Lens' EnterprisesPoliciesGet (Maybe Text)+epgAccessToken+  = lens _epgAccessToken+      (\ s a -> s{_epgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+epgUploadType :: Lens' EnterprisesPoliciesGet (Maybe Text)+epgUploadType+  = lens _epgUploadType+      (\ s a -> s{_epgUploadType = a})++-- | The name of the policy in the form+-- enterprises\/{enterpriseId}\/policies\/{policyId}.+epgName :: Lens' EnterprisesPoliciesGet Text+epgName = lens _epgName (\ s a -> s{_epgName = a})++-- | JSONP+epgCallback :: Lens' EnterprisesPoliciesGet (Maybe Text)+epgCallback+  = lens _epgCallback (\ s a -> s{_epgCallback = a})++instance GoogleRequest EnterprisesPoliciesGet where+        type Rs EnterprisesPoliciesGet = Policy+        type Scopes EnterprisesPoliciesGet =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesPoliciesGet'{..}+          = go _epgName _epgXgafv _epgUploadProtocol+              _epgAccessToken+              _epgUploadType+              _epgCallback+              (Just AltJSON)+              androidManagementService+          where go+                  = buildClient+                      (Proxy :: Proxy EnterprisesPoliciesGetResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Policies/List.hs view
@@ -0,0 +1,174 @@+{-# 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.AndroidManagement.Enterprises.Policies.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists policies for a given enterprise.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.policies.list@.+module Network.Google.Resource.AndroidManagement.Enterprises.Policies.List+    (+    -- * REST Resource+      EnterprisesPoliciesListResource++    -- * Creating a Request+    , enterprisesPoliciesList+    , EnterprisesPoliciesList++    -- * Request Lenses+    , eplParent+    , eplXgafv+    , eplUploadProtocol+    , eplAccessToken+    , eplUploadType+    , eplPageToken+    , eplPageSize+    , eplCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.policies.list@ method which the+-- 'EnterprisesPoliciesList' request conforms to.+type EnterprisesPoliciesListResource =+     "v1" :>+       Capture "parent" Text :>+         "policies" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "pageSize" (Textual Int32) :>+                       QueryParam "callback" Text :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] ListPoliciesResponse++-- | Lists policies for a given enterprise.+--+-- /See:/ 'enterprisesPoliciesList' smart constructor.+data EnterprisesPoliciesList = EnterprisesPoliciesList'+    { _eplParent         :: !Text+    , _eplXgafv          :: !(Maybe Xgafv)+    , _eplUploadProtocol :: !(Maybe Text)+    , _eplAccessToken    :: !(Maybe Text)+    , _eplUploadType     :: !(Maybe Text)+    , _eplPageToken      :: !(Maybe Text)+    , _eplPageSize       :: !(Maybe (Textual Int32))+    , _eplCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesPoliciesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eplParent'+--+-- * 'eplXgafv'+--+-- * 'eplUploadProtocol'+--+-- * 'eplAccessToken'+--+-- * 'eplUploadType'+--+-- * 'eplPageToken'+--+-- * 'eplPageSize'+--+-- * 'eplCallback'+enterprisesPoliciesList+    :: Text -- ^ 'eplParent'+    -> EnterprisesPoliciesList+enterprisesPoliciesList pEplParent_ =+    EnterprisesPoliciesList'+    { _eplParent = pEplParent_+    , _eplXgafv = Nothing+    , _eplUploadProtocol = Nothing+    , _eplAccessToken = Nothing+    , _eplUploadType = Nothing+    , _eplPageToken = Nothing+    , _eplPageSize = Nothing+    , _eplCallback = Nothing+    }++-- | The name of the enterprise in the form enterprises\/{enterpriseId}.+eplParent :: Lens' EnterprisesPoliciesList Text+eplParent+  = lens _eplParent (\ s a -> s{_eplParent = a})++-- | V1 error format.+eplXgafv :: Lens' EnterprisesPoliciesList (Maybe Xgafv)+eplXgafv = lens _eplXgafv (\ s a -> s{_eplXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+eplUploadProtocol :: Lens' EnterprisesPoliciesList (Maybe Text)+eplUploadProtocol+  = lens _eplUploadProtocol+      (\ s a -> s{_eplUploadProtocol = a})++-- | OAuth access token.+eplAccessToken :: Lens' EnterprisesPoliciesList (Maybe Text)+eplAccessToken+  = lens _eplAccessToken+      (\ s a -> s{_eplAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+eplUploadType :: Lens' EnterprisesPoliciesList (Maybe Text)+eplUploadType+  = lens _eplUploadType+      (\ s a -> s{_eplUploadType = a})++-- | A token identifying a page of results returned by the server.+eplPageToken :: Lens' EnterprisesPoliciesList (Maybe Text)+eplPageToken+  = lens _eplPageToken (\ s a -> s{_eplPageToken = a})++-- | The requested page size. The actual page size may be fixed to a min or+-- max value.+eplPageSize :: Lens' EnterprisesPoliciesList (Maybe Int32)+eplPageSize+  = lens _eplPageSize (\ s a -> s{_eplPageSize = a}) .+      mapping _Coerce++-- | JSONP+eplCallback :: Lens' EnterprisesPoliciesList (Maybe Text)+eplCallback+  = lens _eplCallback (\ s a -> s{_eplCallback = a})++instance GoogleRequest EnterprisesPoliciesList where+        type Rs EnterprisesPoliciesList =+             ListPoliciesResponse+        type Scopes EnterprisesPoliciesList =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesPoliciesList'{..}+          = go _eplParent _eplXgafv _eplUploadProtocol+              _eplAccessToken+              _eplUploadType+              _eplPageToken+              _eplPageSize+              _eplCallback+              (Just AltJSON)+              androidManagementService+          where go+                  = buildClient+                      (Proxy :: Proxy EnterprisesPoliciesListResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/Policies/Patch.hs view
@@ -0,0 +1,172 @@+{-# 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.AndroidManagement.Enterprises.Policies.Patch+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates or creates a policy.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.policies.patch@.+module Network.Google.Resource.AndroidManagement.Enterprises.Policies.Patch+    (+    -- * REST Resource+      EnterprisesPoliciesPatchResource++    -- * Creating a Request+    , enterprisesPoliciesPatch+    , EnterprisesPoliciesPatch++    -- * Request Lenses+    , eppXgafv+    , eppUploadProtocol+    , eppUpdateMask+    , eppAccessToken+    , eppUploadType+    , eppPayload+    , eppName+    , eppCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.policies.patch@ method which the+-- 'EnterprisesPoliciesPatch' request conforms to.+type EnterprisesPoliciesPatchResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "updateMask" GFieldMask :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Policy :> Patch '[JSON] Policy++-- | Updates or creates a policy.+--+-- /See:/ 'enterprisesPoliciesPatch' smart constructor.+data EnterprisesPoliciesPatch = EnterprisesPoliciesPatch'+    { _eppXgafv          :: !(Maybe Xgafv)+    , _eppUploadProtocol :: !(Maybe Text)+    , _eppUpdateMask     :: !(Maybe GFieldMask)+    , _eppAccessToken    :: !(Maybe Text)+    , _eppUploadType     :: !(Maybe Text)+    , _eppPayload        :: !Policy+    , _eppName           :: !Text+    , _eppCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesPoliciesPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eppXgafv'+--+-- * 'eppUploadProtocol'+--+-- * 'eppUpdateMask'+--+-- * 'eppAccessToken'+--+-- * 'eppUploadType'+--+-- * 'eppPayload'+--+-- * 'eppName'+--+-- * 'eppCallback'+enterprisesPoliciesPatch+    :: Policy -- ^ 'eppPayload'+    -> Text -- ^ 'eppName'+    -> EnterprisesPoliciesPatch+enterprisesPoliciesPatch pEppPayload_ pEppName_ =+    EnterprisesPoliciesPatch'+    { _eppXgafv = Nothing+    , _eppUploadProtocol = Nothing+    , _eppUpdateMask = Nothing+    , _eppAccessToken = Nothing+    , _eppUploadType = Nothing+    , _eppPayload = pEppPayload_+    , _eppName = pEppName_+    , _eppCallback = Nothing+    }++-- | V1 error format.+eppXgafv :: Lens' EnterprisesPoliciesPatch (Maybe Xgafv)+eppXgafv = lens _eppXgafv (\ s a -> s{_eppXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+eppUploadProtocol :: Lens' EnterprisesPoliciesPatch (Maybe Text)+eppUploadProtocol+  = lens _eppUploadProtocol+      (\ s a -> s{_eppUploadProtocol = a})++-- | The field mask indicating the fields to update. If not set, all+-- modifiable fields will be modified.+eppUpdateMask :: Lens' EnterprisesPoliciesPatch (Maybe GFieldMask)+eppUpdateMask+  = lens _eppUpdateMask+      (\ s a -> s{_eppUpdateMask = a})++-- | OAuth access token.+eppAccessToken :: Lens' EnterprisesPoliciesPatch (Maybe Text)+eppAccessToken+  = lens _eppAccessToken+      (\ s a -> s{_eppAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+eppUploadType :: Lens' EnterprisesPoliciesPatch (Maybe Text)+eppUploadType+  = lens _eppUploadType+      (\ s a -> s{_eppUploadType = a})++-- | Multipart request metadata.+eppPayload :: Lens' EnterprisesPoliciesPatch Policy+eppPayload+  = lens _eppPayload (\ s a -> s{_eppPayload = a})++-- | The name of the policy in the form+-- enterprises\/{enterpriseId}\/policies\/{policyId}.+eppName :: Lens' EnterprisesPoliciesPatch Text+eppName = lens _eppName (\ s a -> s{_eppName = a})++-- | JSONP+eppCallback :: Lens' EnterprisesPoliciesPatch (Maybe Text)+eppCallback+  = lens _eppCallback (\ s a -> s{_eppCallback = a})++instance GoogleRequest EnterprisesPoliciesPatch where+        type Rs EnterprisesPoliciesPatch = Policy+        type Scopes EnterprisesPoliciesPatch =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesPoliciesPatch'{..}+          = go _eppName _eppXgafv _eppUploadProtocol+              _eppUpdateMask+              _eppAccessToken+              _eppUploadType+              _eppCallback+              (Just AltJSON)+              _eppPayload+              androidManagementService+          where go+                  = buildClient+                      (Proxy :: Proxy EnterprisesPoliciesPatchResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/Enterprises/WebTokens/Create.hs view
@@ -0,0 +1,163 @@+{-# 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.AndroidManagement.Enterprises.WebTokens.Create+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a web token to access an embeddable managed Google Play web UI+-- for a given enterprise.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.enterprises.webTokens.create@.+module Network.Google.Resource.AndroidManagement.Enterprises.WebTokens.Create+    (+    -- * REST Resource+      EnterprisesWebTokensCreateResource++    -- * Creating a Request+    , enterprisesWebTokensCreate+    , EnterprisesWebTokensCreate++    -- * Request Lenses+    , ewtcParent+    , ewtcXgafv+    , ewtcUploadProtocol+    , ewtcAccessToken+    , ewtcUploadType+    , ewtcPayload+    , ewtcCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.enterprises.webTokens.create@ method which the+-- 'EnterprisesWebTokensCreate' request conforms to.+type EnterprisesWebTokensCreateResource =+     "v1" :>+       Capture "parent" Text :>+         "webTokens" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] WebToken :> Post '[JSON] WebToken++-- | Creates a web token to access an embeddable managed Google Play web UI+-- for a given enterprise.+--+-- /See:/ 'enterprisesWebTokensCreate' smart constructor.+data EnterprisesWebTokensCreate = EnterprisesWebTokensCreate'+    { _ewtcParent         :: !Text+    , _ewtcXgafv          :: !(Maybe Xgafv)+    , _ewtcUploadProtocol :: !(Maybe Text)+    , _ewtcAccessToken    :: !(Maybe Text)+    , _ewtcUploadType     :: !(Maybe Text)+    , _ewtcPayload        :: !WebToken+    , _ewtcCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnterprisesWebTokensCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ewtcParent'+--+-- * 'ewtcXgafv'+--+-- * 'ewtcUploadProtocol'+--+-- * 'ewtcAccessToken'+--+-- * 'ewtcUploadType'+--+-- * 'ewtcPayload'+--+-- * 'ewtcCallback'+enterprisesWebTokensCreate+    :: Text -- ^ 'ewtcParent'+    -> WebToken -- ^ 'ewtcPayload'+    -> EnterprisesWebTokensCreate+enterprisesWebTokensCreate pEwtcParent_ pEwtcPayload_ =+    EnterprisesWebTokensCreate'+    { _ewtcParent = pEwtcParent_+    , _ewtcXgafv = Nothing+    , _ewtcUploadProtocol = Nothing+    , _ewtcAccessToken = Nothing+    , _ewtcUploadType = Nothing+    , _ewtcPayload = pEwtcPayload_+    , _ewtcCallback = Nothing+    }++-- | The name of the enterprise in the form enterprises\/{enterpriseId}.+ewtcParent :: Lens' EnterprisesWebTokensCreate Text+ewtcParent+  = lens _ewtcParent (\ s a -> s{_ewtcParent = a})++-- | V1 error format.+ewtcXgafv :: Lens' EnterprisesWebTokensCreate (Maybe Xgafv)+ewtcXgafv+  = lens _ewtcXgafv (\ s a -> s{_ewtcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ewtcUploadProtocol :: Lens' EnterprisesWebTokensCreate (Maybe Text)+ewtcUploadProtocol+  = lens _ewtcUploadProtocol+      (\ s a -> s{_ewtcUploadProtocol = a})++-- | OAuth access token.+ewtcAccessToken :: Lens' EnterprisesWebTokensCreate (Maybe Text)+ewtcAccessToken+  = lens _ewtcAccessToken+      (\ s a -> s{_ewtcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ewtcUploadType :: Lens' EnterprisesWebTokensCreate (Maybe Text)+ewtcUploadType+  = lens _ewtcUploadType+      (\ s a -> s{_ewtcUploadType = a})++-- | Multipart request metadata.+ewtcPayload :: Lens' EnterprisesWebTokensCreate WebToken+ewtcPayload+  = lens _ewtcPayload (\ s a -> s{_ewtcPayload = a})++-- | JSONP+ewtcCallback :: Lens' EnterprisesWebTokensCreate (Maybe Text)+ewtcCallback+  = lens _ewtcCallback (\ s a -> s{_ewtcCallback = a})++instance GoogleRequest EnterprisesWebTokensCreate+         where+        type Rs EnterprisesWebTokensCreate = WebToken+        type Scopes EnterprisesWebTokensCreate =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient EnterprisesWebTokensCreate'{..}+          = go _ewtcParent _ewtcXgafv _ewtcUploadProtocol+              _ewtcAccessToken+              _ewtcUploadType+              _ewtcCallback+              (Just AltJSON)+              _ewtcPayload+              androidManagementService+          where go+                  = buildClient+                      (Proxy :: Proxy EnterprisesWebTokensCreateResource)+                      mempty
+ gen/Network/Google/Resource/AndroidManagement/SignupURLs/Create.hs view
@@ -0,0 +1,164 @@+{-# 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.AndroidManagement.SignupURLs.Create+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an enterprise signup URL.+--+-- /See:/ <https://developers.google.com/android/management Android Management API Reference> for @androidmanagement.signupUrls.create@.+module Network.Google.Resource.AndroidManagement.SignupURLs.Create+    (+    -- * REST Resource+      SignupURLsCreateResource++    -- * Creating a Request+    , signupURLsCreate+    , SignupURLsCreate++    -- * Request Lenses+    , sucXgafv+    , sucUploadProtocol+    , sucCallbackURL+    , sucAccessToken+    , sucUploadType+    , sucProjectId+    , sucCallback+    ) where++import           Network.Google.AndroidManagement.Types+import           Network.Google.Prelude++-- | A resource alias for @androidmanagement.signupUrls.create@ method which the+-- 'SignupURLsCreate' request conforms to.+type SignupURLsCreateResource =+     "v1" :>+       "signupUrls" :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "callbackUrl" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "projectId" Text :>+                     QueryParam "callback" Text :>+                       QueryParam "alt" AltJSON :> Post '[JSON] SignupURL++-- | Creates an enterprise signup URL.+--+-- /See:/ 'signupURLsCreate' smart constructor.+data SignupURLsCreate = SignupURLsCreate'+    { _sucXgafv          :: !(Maybe Xgafv)+    , _sucUploadProtocol :: !(Maybe Text)+    , _sucCallbackURL    :: !(Maybe Text)+    , _sucAccessToken    :: !(Maybe Text)+    , _sucUploadType     :: !(Maybe Text)+    , _sucProjectId      :: !(Maybe Text)+    , _sucCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SignupURLsCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sucXgafv'+--+-- * 'sucUploadProtocol'+--+-- * 'sucCallbackURL'+--+-- * 'sucAccessToken'+--+-- * 'sucUploadType'+--+-- * 'sucProjectId'+--+-- * 'sucCallback'+signupURLsCreate+    :: SignupURLsCreate+signupURLsCreate =+    SignupURLsCreate'+    { _sucXgafv = Nothing+    , _sucUploadProtocol = Nothing+    , _sucCallbackURL = Nothing+    , _sucAccessToken = Nothing+    , _sucUploadType = Nothing+    , _sucProjectId = Nothing+    , _sucCallback = Nothing+    }++-- | V1 error format.+sucXgafv :: Lens' SignupURLsCreate (Maybe Xgafv)+sucXgafv = lens _sucXgafv (\ s a -> s{_sucXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+sucUploadProtocol :: Lens' SignupURLsCreate (Maybe Text)+sucUploadProtocol+  = lens _sucUploadProtocol+      (\ s a -> s{_sucUploadProtocol = a})++-- | The callback URL that the admin will be redirected to after successfully+-- creating an enterprise. Before redirecting there the system will add a+-- query parameter to this URL named enterpriseToken which will contain an+-- opaque token to be used for the create enterprise request. The URL will+-- be parsed then reformatted in order to add the enterpriseToken+-- parameter, so there may be some minor formatting changes.+sucCallbackURL :: Lens' SignupURLsCreate (Maybe Text)+sucCallbackURL+  = lens _sucCallbackURL+      (\ s a -> s{_sucCallbackURL = a})++-- | OAuth access token.+sucAccessToken :: Lens' SignupURLsCreate (Maybe Text)+sucAccessToken+  = lens _sucAccessToken+      (\ s a -> s{_sucAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+sucUploadType :: Lens' SignupURLsCreate (Maybe Text)+sucUploadType+  = lens _sucUploadType+      (\ s a -> s{_sucUploadType = a})++-- | The ID of the Google Cloud Platform project which will own the+-- enterprise.+sucProjectId :: Lens' SignupURLsCreate (Maybe Text)+sucProjectId+  = lens _sucProjectId (\ s a -> s{_sucProjectId = a})++-- | JSONP+sucCallback :: Lens' SignupURLsCreate (Maybe Text)+sucCallback+  = lens _sucCallback (\ s a -> s{_sucCallback = a})++instance GoogleRequest SignupURLsCreate where+        type Rs SignupURLsCreate = SignupURL+        type Scopes SignupURLsCreate =+             '["https://www.googleapis.com/auth/androidmanagement"]+        requestClient SignupURLsCreate'{..}+          = go _sucXgafv _sucUploadProtocol _sucCallbackURL+              _sucAccessToken+              _sucUploadType+              _sucProjectId+              _sucCallback+              (Just AltJSON)+              androidManagementService+          where go+                  = buildClient+                      (Proxy :: Proxy SignupURLsCreateResource)+                      mempty
+ gogol-androidmanagement.cabal view
@@ -0,0 +1,67 @@+name:                  gogol-androidmanagement+version:               0.4.0+synopsis:              Google Android Management SDK.+homepage:              https://github.com/brendanhay/gogol+bug-reports:           https://github.com/brendanhay/gogol/issues+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2015-2016 Brendan Hay+category:              Network, Google, Cloud+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md src/.gitkeep++description:+    The Android Management API provides remote enterprise management of+    Android devices and apps.+    .+    /Warning:/ This is an experimental prototype/preview release which is still+    under exploratory development and not intended for public use, caveat emptor!+    .+    This library is compatible with version @v1@+    of the API.++source-repository head+    type:     git+    location: git://github.com/brendanhay/gogol.git++library+    default-language:  Haskell2010+    hs-source-dirs:    src gen++    ghc-options:       -Wall++    exposed-modules:+          Network.Google.AndroidManagement+        , Network.Google.AndroidManagement.Types+        , Network.Google.Resource.AndroidManagement.Enterprises.Applications.Get+        , Network.Google.Resource.AndroidManagement.Enterprises.Create+        , Network.Google.Resource.AndroidManagement.Enterprises.Devices.Delete+        , Network.Google.Resource.AndroidManagement.Enterprises.Devices.Get+        , Network.Google.Resource.AndroidManagement.Enterprises.Devices.IssueCommand+        , Network.Google.Resource.AndroidManagement.Enterprises.Devices.List+        , Network.Google.Resource.AndroidManagement.Enterprises.Devices.Operations.Cancel+        , Network.Google.Resource.AndroidManagement.Enterprises.Devices.Operations.Delete+        , Network.Google.Resource.AndroidManagement.Enterprises.Devices.Operations.Get+        , Network.Google.Resource.AndroidManagement.Enterprises.Devices.Operations.List+        , Network.Google.Resource.AndroidManagement.Enterprises.Devices.Patch+        , Network.Google.Resource.AndroidManagement.Enterprises.EnrollmentTokens.Create+        , Network.Google.Resource.AndroidManagement.Enterprises.EnrollmentTokens.Delete+        , Network.Google.Resource.AndroidManagement.Enterprises.Get+        , Network.Google.Resource.AndroidManagement.Enterprises.Patch+        , Network.Google.Resource.AndroidManagement.Enterprises.Policies.Delete+        , Network.Google.Resource.AndroidManagement.Enterprises.Policies.Get+        , Network.Google.Resource.AndroidManagement.Enterprises.Policies.List+        , Network.Google.Resource.AndroidManagement.Enterprises.Policies.Patch+        , Network.Google.Resource.AndroidManagement.Enterprises.WebTokens.Create+        , Network.Google.Resource.AndroidManagement.SignupURLs.Create++    other-modules:+          Network.Google.AndroidManagement.Types.Product+        , Network.Google.AndroidManagement.Types.Sum++    build-depends:+          gogol-core == 0.4.0.*+        , base       >= 4.7 && < 5
+ src/.gitkeep view