-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Google Play EMM SDK.
--   
--   Manages the deployment of apps to Android for Work users.
--   
--   <i>Warning:</i> 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 <tt>v1</tt> of the API.
@package gogol-android-enterprise
@version 0.3.0


module Network.Google.AndroidEnterprise.Types

-- | Default request referring to version <tt>v1</tt> of the Google Play
--   EMM API. This contains the host and root path used as a starting point
--   for constructing service requests.
androidEnterpriseService :: ServiceConfig

-- | Manage corporate Android devices
androidEnterpriseScope :: Proxy '["https://www.googleapis.com/auth/androidenterprise"]

-- | A group license object indicates a product that an enterprise admin
--   has approved for use in the enterprise. The product may be free or
--   paid. For free products, a group license object is created in these
--   cases: if the enterprise admin approves a product in Google Play, if
--   the product is added to a collection, or if an entitlement for the
--   product is created for a user via the API. For paid products, a group
--   license object is only created as part of the first bulk purchase of
--   that product in Google Play by the enterprise admin. The API can be
--   used to query group licenses; the available information includes the
--   total number of licenses purchased (for paid products) and the total
--   number of licenses that have been provisioned, that is, the total
--   number of user entitlements in existence for the product. Group
--   license objects are never deleted. If, for example, a free app is
--   added to a collection and then removed, the group license will remain,
--   allowing the enterprise admin to keep track of any remaining
--   entitlements. An enterprise admin may indicate they are no longer
--   interested in the group license by marking it as unapproved in Google
--   Play.
--   
--   <i>See:</i> <a>groupLicense</a> smart constructor.
data GroupLicense

-- | Creates a value of <a>GroupLicense</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>glKind</a></li>
--   <li><a>glNumProvisioned</a></li>
--   <li><a>glNumPurchased</a></li>
--   <li><a>glApproval</a></li>
--   <li><a>glProductId</a></li>
--   <li><a>glAcquisitionKind</a></li>
--   </ul>
groupLicense :: GroupLicense

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#groupLicense".
glKind :: Lens' GroupLicense Text

-- | The total number of provisioned licenses for this product. Returned by
--   read operations, but ignored in write operations.
glNumProvisioned :: Lens' GroupLicense (Maybe Int32)

-- | The number of purchased licenses (possibly in multiple purchases). If
--   this field is omitted then there is no limit on the number of licenses
--   that can be provisioned (e.g. if the acquisition kind is "free").
glNumPurchased :: Lens' GroupLicense (Maybe Int32)

-- | Whether the product to which this group license relates is currently
--   approved by the enterprise, as either "approved" or "unapproved".
--   Products are approved when a group license is first created, but this
--   approval may be revoked by an enterprise admin via Google Play.
--   Unapproved products will not be visible to end users in collections
--   and new entitlements to them should not normally be created.
glApproval :: Lens' GroupLicense (Maybe Text)

-- | The ID of the product that the license is for, e.g.
--   "app:com.google.android.gm".
glProductId :: Lens' GroupLicense (Maybe Text)

-- | How this group license was acquired. "bulkPurchase" means that this
--   group license object was created because the enterprise purchased
--   licenses for this product; this is "free" otherwise (for free
--   products).
glAcquisitionKind :: Lens' GroupLicense (Maybe Text)

-- | The store page resources for the enterprise.
--   
--   <i>See:</i> <a>storeLayoutPagesListResponse</a> smart constructor.
data StoreLayoutPagesListResponse

-- | Creates a value of <a>StoreLayoutPagesListResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slplrKind</a></li>
--   <li><a>slplrPage</a></li>
--   </ul>
storeLayoutPagesListResponse :: StoreLayoutPagesListResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#storeLayoutPagesListResponse".
slplrKind :: Lens' StoreLayoutPagesListResponse Text

-- | A store page of an enterprise.
slplrPage :: Lens' StoreLayoutPagesListResponse [StorePage]

-- | A service account that can be used to authenticate as the enterprise
--   to API calls that require such authentication.
--   
--   <i>See:</i> <a>enterpriseAccount</a> smart constructor.
data EnterpriseAccount

-- | Creates a value of <a>EnterpriseAccount</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eaKind</a></li>
--   <li><a>eaAccountEmail</a></li>
--   </ul>
enterpriseAccount :: EnterpriseAccount

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#enterpriseAccount".
eaKind :: Lens' EnterpriseAccount Text

-- | The email address of the service account.
eaAccountEmail :: Lens' EnterpriseAccount (Maybe Text)

-- | A typed value for the restriction.
--   
--   <i>See:</i> <a>appRestrictionsSchemaRestrictionRestrictionValue</a>
--   smart constructor.
data AppRestrictionsSchemaRestrictionRestrictionValue

-- | Creates a value of
--   <a>AppRestrictionsSchemaRestrictionRestrictionValue</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>arsrrvValueMultiselect</a></li>
--   <li><a>arsrrvValueBool</a></li>
--   <li><a>arsrrvValueInteger</a></li>
--   <li><a>arsrrvType</a></li>
--   <li><a>arsrrvValueString</a></li>
--   </ul>
appRestrictionsSchemaRestrictionRestrictionValue :: AppRestrictionsSchemaRestrictionRestrictionValue

-- | The list of string values - this will only be present if type is
--   multiselect.
arsrrvValueMultiselect :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue [Text]

-- | The boolean value - this will only be present if type is bool.
arsrrvValueBool :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue (Maybe Bool)

-- | The integer value - this will only be present if type is integer.
arsrrvValueInteger :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue (Maybe Int32)

-- | The type of the value being provided.
arsrrvType :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue (Maybe Text)

-- | The string value - this will be present for types string, choice and
--   hidden.
arsrrvValueString :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue (Maybe Text)

-- | The state of a user's device, as accessed by the getState and setState
--   methods on device resources.
--   
--   <i>See:</i> <a>deviceState</a> smart constructor.
data DeviceState

-- | Creates a value of <a>DeviceState</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsKind</a></li>
--   <li><a>dsAccountState</a></li>
--   </ul>
deviceState :: DeviceState

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#deviceState".
dsKind :: Lens' DeviceState Text

-- | The state of the Google account on the device. "enabled" indicates
--   that the Google account on the device can be used to access Google
--   services (including Google Play), while "disabled" means that it
--   cannot. A new device is initially in the "disabled" state.
dsAccountState :: Lens' DeviceState (Maybe Text)

-- | The user resources for the group license.
--   
--   <i>See:</i> <a>groupLicenseUsersListResponse</a> smart constructor.
data GroupLicenseUsersListResponse

-- | Creates a value of <a>GroupLicenseUsersListResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>glulrKind</a></li>
--   <li><a>glulrUser</a></li>
--   </ul>
groupLicenseUsersListResponse :: GroupLicenseUsersListResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#groupLicenseUsersListResponse".
glulrKind :: Lens' GroupLicenseUsersListResponse Text

-- | A user of an enterprise.
glulrUser :: Lens' GroupLicenseUsersListResponse [User]
data TokenPagination

-- | Creates a value of <a>TokenPagination</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tpNextPageToken</a></li>
--   <li><a>tpPreviousPageToken</a></li>
--   </ul>
tokenPagination :: TokenPagination
tpNextPageToken :: Lens' TokenPagination (Maybe Text)
tpPreviousPageToken :: Lens' TokenPagination (Maybe Text)

-- | Information on an approval URL.
--   
--   <i>See:</i> <a>approvalURLInfo</a> smart constructor.
data ApprovalURLInfo

-- | Creates a value of <a>ApprovalURLInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>auiApprovalURL</a></li>
--   <li><a>auiKind</a></li>
--   </ul>
approvalURLInfo :: ApprovalURLInfo

-- | A URL that displays a product's permissions and that can also be used
--   to approve the product with the Products.approve call.
auiApprovalURL :: Lens' ApprovalURLInfo (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#approvalUrlInfo".
auiKind :: Lens' ApprovalURLInfo Text

-- | A managed property of a managed configuration. The property must match
--   one of the properties in the app restrictions schema of the product.
--   Exactly one of the value fields must be populated, and it must match
--   the property's type in the app restrictions schema.
--   
--   <i>See:</i> <a>managedProperty</a> smart constructor.
data ManagedProperty

-- | Creates a value of <a>ManagedProperty</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mpValueStringArray</a></li>
--   <li><a>mpValueBool</a></li>
--   <li><a>mpKey</a></li>
--   <li><a>mpValueBundle</a></li>
--   <li><a>mpValueInteger</a></li>
--   <li><a>mpValueBundleArray</a></li>
--   <li><a>mpValueString</a></li>
--   </ul>
managedProperty :: ManagedProperty

-- | The list of string values - this will only be present if type of the
--   property is multiselect.
mpValueStringArray :: Lens' ManagedProperty [Text]

-- | The boolean value - this will only be present if type of the property
--   is bool.
mpValueBool :: Lens' ManagedProperty (Maybe Bool)

-- | The unique key that identifies the property.
mpKey :: Lens' ManagedProperty (Maybe Text)

-- | The bundle of managed properties - this will only be present if type
--   of the property is bundle.
mpValueBundle :: Lens' ManagedProperty (Maybe ManagedPropertyBundle)

-- | The integer value - this will only be present if type of the property
--   is integer.
mpValueInteger :: Lens' ManagedProperty (Maybe Int32)

-- | The list of bundles of properties - this will only be present if type
--   of the property is bundle_array.
mpValueBundleArray :: Lens' ManagedProperty [ManagedPropertyBundle]

-- | The string value - this will only be present if type of the property
--   is string, choice or hidden.
mpValueString :: Lens' ManagedProperty (Maybe Text)

-- | The store page resources for the enterprise.
--   
--   <i>See:</i> <a>storeLayoutClustersListResponse</a> smart constructor.
data StoreLayoutClustersListResponse

-- | Creates a value of <a>StoreLayoutClustersListResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slclrCluster</a></li>
--   <li><a>slclrKind</a></li>
--   </ul>
storeLayoutClustersListResponse :: StoreLayoutClustersListResponse

-- | A store cluster of an enterprise.
slclrCluster :: Lens' StoreLayoutClustersListResponse [StoreCluster]

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#storeLayoutClustersListResponse".
slclrKind :: Lens' StoreLayoutClustersListResponse Text

-- | A managed configuration resource contains the set of managed
--   properties that have been configured for an Android app. The app's
--   developer would have defined configurable properties in the managed
--   configurations schema.
--   
--   <i>See:</i> <a>managedConfiguration</a> smart constructor.
data ManagedConfiguration

-- | Creates a value of <a>ManagedConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcManagedProperty</a></li>
--   <li><a>mcKind</a></li>
--   <li><a>mcProductId</a></li>
--   </ul>
managedConfiguration :: ManagedConfiguration

-- | The set of managed properties for this configuration.
mcManagedProperty :: Lens' ManagedConfiguration [ManagedProperty]

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#managedConfiguration".
mcKind :: Lens' ManagedConfiguration Text

-- | The ID of the product that the managed configuration is for, e.g.
--   "app:com.google.android.gm".
mcProductId :: Lens' ManagedConfiguration (Maybe Text)

-- | Definition of a managed Google Play store cluster, a list of products
--   displayed as part of a store page.
--   
--   <i>See:</i> <a>storeCluster</a> smart constructor.
data StoreCluster

-- | Creates a value of <a>StoreCluster</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scKind</a></li>
--   <li><a>scName</a></li>
--   <li><a>scOrderInPage</a></li>
--   <li><a>scId</a></li>
--   <li><a>scProductId</a></li>
--   </ul>
storeCluster :: StoreCluster

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#storeCluster".
scKind :: Lens' StoreCluster Text

-- | Ordered list of localized strings giving the name of this page. The
--   text displayed is the one that best matches the user locale, or the
--   first entry if there is no good match. There needs to be at least one
--   entry.
scName :: Lens' StoreCluster [LocalizedText]

-- | String (US-ASCII only) used to determine order of this cluster within
--   the parent page's elements. Page elements are sorted in lexicographic
--   order of this field. Duplicated values are allowed, but ordering
--   between elements with duplicate order is undefined. The value of this
--   field is never visible to a user, it is used solely for the purpose of
--   defining an ordering. Maximum length is 256 characters.
scOrderInPage :: Lens' StoreCluster (Maybe Text)

-- | Unique ID of this cluster. Assigned by the server. Immutable once
--   assigned.
scId :: Lens' StoreCluster (Maybe Text)

-- | List of products in the order they are displayed in the cluster. There
--   should not be duplicates within a cluster.
scProductId :: Lens' StoreCluster [Text]

-- | Specification for a token used to generate iframes. The token
--   specifies what data the admin is allowed to modify and the URI the
--   iframe is allowed to communiate with.
--   
--   <i>See:</i> <a>administratorWebTokenSpec</a> smart constructor.
data AdministratorWebTokenSpec

-- | Creates a value of <a>AdministratorWebTokenSpec</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>awtsParent</a></li>
--   <li><a>awtsKind</a></li>
--   <li><a>awtsPermission</a></li>
--   </ul>
administratorWebTokenSpec :: AdministratorWebTokenSpec

-- | The URI of the parent frame hosting the iframe. To prevent XSS, the
--   iframe may not be hosted at other URIs. This URI must be https.
awtsParent :: Lens' AdministratorWebTokenSpec (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#administratorWebTokenSpec".
awtsKind :: Lens' AdministratorWebTokenSpec Text

-- | The list of permissions the admin is granted within the iframe. The
--   admin will only be allowed to view an iframe if they have all of the
--   permissions associated with it. The only valid value is "approveApps"
--   that will allow the admin to access the iframe in "approve" mode.
awtsPermission :: Lens' AdministratorWebTokenSpec [Text]

-- | A notification of one event relating to an enterprise.
--   
--   <i>See:</i> <a>notification</a> smart constructor.
data Notification

-- | Creates a value of <a>Notification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nEnterpriseId</a></li>
--   <li><a>nNewPermissionsEvent</a></li>
--   <li><a>nProductApprovalEvent</a></li>
--   <li><a>nProductAvailabilityChangeEvent</a></li>
--   <li><a>nAppUpdateEvent</a></li>
--   <li><a>nInstallFailureEvent</a></li>
--   <li><a>nAppRestrictionsSchemaChangeEvent</a></li>
--   <li><a>nNewDeviceEvent</a></li>
--   <li><a>nTimestampMillis</a></li>
--   </ul>
notification :: Notification

-- | The ID of the enterprise for which the notification is sent. This will
--   always be present.
nEnterpriseId :: Lens' Notification (Maybe Text)

-- | Notifications about new app permissions.
nNewPermissionsEvent :: Lens' Notification (Maybe NewPermissionsEvent)

-- | Notifications about changes to a product's approval status.
nProductApprovalEvent :: Lens' Notification (Maybe ProductApprovalEvent)

-- | Notifications about product availability changes.
nProductAvailabilityChangeEvent :: Lens' Notification (Maybe ProductAvailabilityChangeEvent)

-- | Notifications about app updates.
nAppUpdateEvent :: Lens' Notification (Maybe AppUpdateEvent)

-- | Notifications about an app installation failure.
nInstallFailureEvent :: Lens' Notification (Maybe InstallFailureEvent)

-- | Notifications about new app restrictions schema changes.
nAppRestrictionsSchemaChangeEvent :: Lens' Notification (Maybe AppRestrictionsSchemaChangeEvent)

-- | Notifications about new devices.
nNewDeviceEvent :: Lens' Notification (Maybe NewDeviceEvent)

-- | The time when the notification was published in milliseconds since
--   1970-01-01T00:00:00Z. This will always be present.
nTimestampMillis :: Lens' Notification (Maybe Int64)
data PageInfo

-- | Creates a value of <a>PageInfo</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>piResultPerPage</a></li>
--   <li><a>piTotalResults</a></li>
--   <li><a>piStartIndex</a></li>
--   </ul>
pageInfo :: PageInfo
piResultPerPage :: Lens' PageInfo (Maybe Int32)
piTotalResults :: Lens' PageInfo (Maybe Int32)
piStartIndex :: Lens' PageInfo (Maybe Int32)

-- | A product permissions resource represents the set of permissions
--   required by a specific app and whether or not they have been accepted
--   by an enterprise admin. The API can be used to read the set of
--   permissions, and also to update the set to indicate that permissions
--   have been accepted.
--   
--   <i>See:</i> <a>productPermission</a> smart constructor.
data ProductPermission

-- | Creates a value of <a>ProductPermission</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ppState</a></li>
--   <li><a>ppPermissionId</a></li>
--   </ul>
productPermission :: ProductPermission

-- | Whether the permission has been accepted or not.
ppState :: Lens' ProductPermission (Maybe Text)

-- | An opaque string uniquely identifying the permission.
ppPermissionId :: Lens' ProductPermission (Maybe Text)

-- | An event generated when new permissions are added to an app.
--   
--   <i>See:</i> <a>newPermissionsEvent</a> smart constructor.
data NewPermissionsEvent

-- | Creates a value of <a>NewPermissionsEvent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>npeRequestedPermissions</a></li>
--   <li><a>npeApprovedPermissions</a></li>
--   <li><a>npeProductId</a></li>
--   </ul>
newPermissionsEvent :: NewPermissionsEvent

-- | The set of permissions that the app is currently requesting. Use
--   Permissions.Get on the EMM API to retrieve details about these
--   permissions.
npeRequestedPermissions :: Lens' NewPermissionsEvent [Text]

-- | The set of permissions that the enterprise admin has already approved
--   for this application. Use Permissions.Get on the EMM API to retrieve
--   details about these permissions.
npeApprovedPermissions :: Lens' NewPermissionsEvent [Text]

-- | The id of the product (e.g. "app:com.google.android.gm") for which new
--   permissions were added. This field will always be present.
npeProductId :: Lens' NewPermissionsEvent (Maybe Text)

-- | An event generated whenever a product's availability changes.
--   
--   <i>See:</i> <a>productAvailabilityChangeEvent</a> smart constructor.
data ProductAvailabilityChangeEvent

-- | Creates a value of <a>ProductAvailabilityChangeEvent</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>paceAvailabilityStatus</a></li>
--   <li><a>paceProductId</a></li>
--   </ul>
productAvailabilityChangeEvent :: ProductAvailabilityChangeEvent

-- | The new state of the product. This field will always be present.
paceAvailabilityStatus :: Lens' ProductAvailabilityChangeEvent (Maybe Text)

-- | The id of the product (e.g. "app:com.google.android.gm") for which the
--   product availability changed. This field will always be present.
paceProductId :: Lens' ProductAvailabilityChangeEvent (Maybe Text)

-- | An event generated when a product's approval status is changed.
--   
--   <i>See:</i> <a>productApprovalEvent</a> smart constructor.
data ProductApprovalEvent

-- | Creates a value of <a>ProductApprovalEvent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>paeApproved</a></li>
--   <li><a>paeProductId</a></li>
--   </ul>
productApprovalEvent :: ProductApprovalEvent

-- | Whether the product was approved or unapproved. This field will always
--   be present.
paeApproved :: Lens' ProductApprovalEvent (Maybe Text)

-- | The id of the product (e.g. "app:com.google.android.gm") for which the
--   approval status has changed. This field will always be present.
paeProductId :: Lens' ProductApprovalEvent (Maybe Text)

-- | A device resource represents a mobile device managed by the EMM and
--   belonging to a specific enterprise user. This collection cannot be
--   modified via the API; it is automatically populated as devices are set
--   up to be managed.
--   
--   <i>See:</i> <a>device</a> smart constructor.
data Device

-- | Creates a value of <a>Device</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dKind</a></li>
--   <li><a>dManagementType</a></li>
--   <li><a>dAndroidId</a></li>
--   </ul>
device :: Device

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#device".
dKind :: Lens' Device Text

-- | Identifies the extent to which the device is controlled by a managed
--   Google Play EMM in various deployment configurations. Possible values
--   include: - "managedDevice", a device that has the EMM's device policy
--   controller (DPC) as the device owner, - "managedProfile", a device
--   that has a profile managed by the DPC (DPC is profile owner) in
--   addition to a separate, personal profile that is unavailable to the
--   DPC, - "containerApp", a device running the container App. The
--   container App is managed by the DPC, - "unmanagedProfile", a device
--   that has been allowed (by the domain's admin, using the Admin Console
--   to enable the privilege) to use managed Google Play, but the profile
--   is itself not owned by a DPC.
dManagementType :: Lens' Device (Maybe Text)

-- | The Google Play Services Android ID for the device encoded as a
--   lowercase hex string, e.g. "123456789abcdef0".
dAndroidId :: Lens' Device (Maybe Text)

-- | Credentials that can be used to authenticate as a service account.
--   
--   <i>See:</i> <a>serviceAccountKey</a> smart constructor.
data ServiceAccountKey

-- | Creates a value of <a>ServiceAccountKey</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sakKind</a></li>
--   <li><a>sakData</a></li>
--   <li><a>sakId</a></li>
--   <li><a>sakType</a></li>
--   <li><a>sakPublicData</a></li>
--   </ul>
serviceAccountKey :: ServiceAccountKey

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#serviceAccountKey".
sakKind :: Lens' ServiceAccountKey Text

-- | The body of the private key credentials file, in string format. This
--   is only populated when the ServiceAccountKey is created, and is not
--   stored by Google.
sakData :: Lens' ServiceAccountKey (Maybe Text)

-- | An opaque, unique identifier for this ServiceAccountKey. Assigned by
--   the server.
sakId :: Lens' ServiceAccountKey (Maybe Text)

-- | The file format of the generated key data.
sakType :: Lens' ServiceAccountKey (Maybe Text)

-- | Public key data for the credentials file. This is an X.509 cert. If
--   you are using the googleCredentials key type, this is identical to the
--   cert that can be retrieved by using the X.509 cert url inside of the
--   credentials file.
sakPublicData :: Lens' ServiceAccountKey (Maybe Text)

-- | The install resources for the device.
--   
--   <i>See:</i> <a>installsListResponse</a> smart constructor.
data InstallsListResponse

-- | Creates a value of <a>InstallsListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ilrKind</a></li>
--   <li><a>ilrInstall</a></li>
--   </ul>
installsListResponse :: InstallsListResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#installsListResponse".
ilrKind :: Lens' InstallsListResponse Text

-- | An installation of an app for a user on a specific device. The
--   existence of an install implies that the user must have an entitlement
--   to the app.
ilrInstall :: Lens' InstallsListResponse [Install]

-- | A restriction in the App Restriction Schema represents a piece of
--   configuration that may be pre-applied.
--   
--   <i>See:</i> <a>appRestrictionsSchemaRestriction</a> smart constructor.
data AppRestrictionsSchemaRestriction

-- | Creates a value of <a>AppRestrictionsSchemaRestriction</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>arsrRestrictionType</a></li>
--   <li><a>arsrEntry</a></li>
--   <li><a>arsrKey</a></li>
--   <li><a>arsrEntryValue</a></li>
--   <li><a>arsrDefaultValue</a></li>
--   <li><a>arsrTitle</a></li>
--   <li><a>arsrDescription</a></li>
--   <li><a>arsrNestedRestriction</a></li>
--   </ul>
appRestrictionsSchemaRestriction :: AppRestrictionsSchemaRestriction

-- | The type of the restriction.
arsrRestrictionType :: Lens' AppRestrictionsSchemaRestriction (Maybe Text)

-- | For choice or multiselect restrictions, the list of possible entries'
--   human-readable names.
arsrEntry :: Lens' AppRestrictionsSchemaRestriction [Text]

-- | The unique key that the product uses to identify the restriction, e.g.
--   "com.google.android.gm.fieldname".
arsrKey :: Lens' AppRestrictionsSchemaRestriction (Maybe Text)

-- | For choice or multiselect restrictions, the list of possible entries'
--   machine-readable values. These values should be used in the
--   configuration, either as a single string value for a choice
--   restriction or in a stringArray for a multiselect restriction.
arsrEntryValue :: Lens' AppRestrictionsSchemaRestriction [Text]

-- | The default value of the restriction. bundle and bundleArray
--   restrictions never have a default value.
arsrDefaultValue :: Lens' AppRestrictionsSchemaRestriction (Maybe AppRestrictionsSchemaRestrictionRestrictionValue)

-- | The name of the restriction.
arsrTitle :: Lens' AppRestrictionsSchemaRestriction (Maybe Text)

-- | A longer description of the restriction, giving more detail of what it
--   affects.
arsrDescription :: Lens' AppRestrictionsSchemaRestriction (Maybe Text)

-- | For bundle or bundleArray restrictions, the list of nested
--   restrictions. A bundle restriction is always nested within a
--   bundleArray restriction, and a bundleArray restriction is at most two
--   levels deep.
arsrNestedRestriction :: Lens' AppRestrictionsSchemaRestriction [AppRestrictionsSchemaRestriction]

-- | This represents an enterprise admin who can manage the enterprise in
--   the managed Google Play store.
--   
--   <i>See:</i> <a>administrator</a> smart constructor.
data Administrator

-- | Creates a value of <a>Administrator</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aEmail</a></li>
--   </ul>
administrator :: Administrator

-- | The admin's email address.
aEmail :: Lens' Administrator (Maybe Text)

-- | The matching user resources.
--   
--   <i>See:</i> <a>usersListResponse</a> smart constructor.
data UsersListResponse

-- | Creates a value of <a>UsersListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ulrKind</a></li>
--   <li><a>ulrUser</a></li>
--   </ul>
usersListResponse :: UsersListResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#usersListResponse".
ulrKind :: Lens' UsersListResponse Text

-- | A user of an enterprise.
ulrUser :: Lens' UsersListResponse [User]

-- | An AuthenticationToken is used by the EMM's device policy client on a
--   device to provision the given EMM-managed user on that device.
--   
--   <i>See:</i> <a>authenticationToken</a> smart constructor.
data AuthenticationToken

-- | Creates a value of <a>AuthenticationToken</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>atKind</a></li>
--   <li><a>atToken</a></li>
--   </ul>
authenticationToken :: AuthenticationToken

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#authenticationToken".
atKind :: Lens' AuthenticationToken Text

-- | The authentication token to be passed to the device policy client on
--   the device where it can be used to provision the account for which
--   this token was generated.
atToken :: Lens' AuthenticationToken (Maybe Text)

-- | This represents a single version of the app.
--   
--   <i>See:</i> <a>appVersion</a> smart constructor.
data AppVersion

-- | Creates a value of <a>AppVersion</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avVersionCode</a></li>
--   <li><a>avVersionString</a></li>
--   </ul>
appVersion :: AppVersion

-- | Unique increasing identifier for the app version.
avVersionCode :: Lens' AppVersion (Maybe Int32)

-- | The string used in the Play store by the app developer to identify the
--   version. The string is not necessarily unique or localized (for
--   example, the string could be "1.4").
avVersionString :: Lens' AppVersion (Maybe Text)

-- | The request mode for pulling notifications. Specifying
--   waitForNotifications will cause the request to block and wait until
--   one or more notifications are present, or return an empty notification
--   list if no notifications are present after some time. Speciying
--   returnImmediately will cause the request to immediately return the
--   pending notifications, or an empty list if no notifications are
--   present. If omitted, defaults to waitForNotifications.
data EnterprisesPullNotificationSetRequestMode

-- | <pre>
--   returnImmediately
--   </pre>
ReturnImmediately :: EnterprisesPullNotificationSetRequestMode

-- | <pre>
--   waitForNotifications
--   </pre>
WaitForNotifications :: EnterprisesPullNotificationSetRequestMode

-- | A bundle of managed properties.
--   
--   <i>See:</i> <a>managedPropertyBundle</a> smart constructor.
data ManagedPropertyBundle

-- | Creates a value of <a>ManagedPropertyBundle</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mpbManagedProperty</a></li>
--   </ul>
managedPropertyBundle :: ManagedPropertyBundle

-- | The list of managed properties.
mpbManagedProperty :: Lens' ManagedPropertyBundle [ManagedProperty]

-- | The grouplicense resources for the enterprise.
--   
--   <i>See:</i> <a>groupLicensesListResponse</a> smart constructor.
data GroupLicensesListResponse

-- | Creates a value of <a>GroupLicensesListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gllrGroupLicense</a></li>
--   <li><a>gllrKind</a></li>
--   </ul>
groupLicensesListResponse :: GroupLicensesListResponse

-- | A group license for a product approved for use in the enterprise.
gllrGroupLicense :: Lens' GroupLicensesListResponse [GroupLicense]

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#groupLicensesListResponse".
gllrKind :: Lens' GroupLicensesListResponse Text

-- | A set of products.
--   
--   <i>See:</i> <a>productSet</a> smart constructor.
data ProductSet

-- | Creates a value of <a>ProductSet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psKind</a></li>
--   <li><a>psProductSetBehavior</a></li>
--   <li><a>psProductId</a></li>
--   </ul>
productSet :: ProductSet

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#productSet".
psKind :: Lens' ProductSet Text

-- | The interpretation of this product set. "unknown" should never be sent
--   and ignored if received. "whitelist" means that this product set
--   constitutes a whitelist. "includeAll" means that all products are
--   accessible, including products that are approved, not approved, and
--   even products where approval has been revoked. If the value is
--   "includeAll", the value of the productId field is therefore ignored.
--   If a value is not supplied, it is interpreted to be "whitelist" for
--   backwards compatibility.
psProductSetBehavior :: Lens' ProductSet (Maybe Text)

-- | The list of product IDs making up the set of products.
psProductId :: Lens' ProductSet [Text]

-- | The existence of an install resource indicates that an app is
--   installed on a particular device (or that an install is pending). The
--   API can be used to create an install resource using the update method.
--   This triggers the actual install of the app on the device. If the user
--   does not already have an entitlement for the app then an attempt is
--   made to create one. If this fails (e.g. because the app is not free
--   and there is no available license) then the creation of the install
--   fails. The API can also be used to update an installed app. If the
--   update method is used on an existing install then the app will be
--   updated to the latest available version. Note that it is not possible
--   to force the installation of a specific version of an app; the version
--   code is read-only. If a user installs an app themselves (as permitted
--   by the enterprise), then again an install resource and possibly an
--   entitlement resource are automatically created. The API can also be
--   used to delete an install resource, which triggers the removal of the
--   app from the device. Note that deleting an install does not
--   automatically remove the corresponding entitlement, even if there are
--   no remaining installs. The install resource will also be deleted if
--   the user uninstalls the app themselves.
--   
--   <i>See:</i> <a>install</a> smart constructor.
data Install

-- | Creates a value of <a>Install</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iVersionCode</a></li>
--   <li><a>iKind</a></li>
--   <li><a>iInstallState</a></li>
--   <li><a>iProductId</a></li>
--   </ul>
install :: Install

-- | The version of the installed product. Guaranteed to be set only if the
--   install state is "installed".
iVersionCode :: Lens' Install (Maybe Int32)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#install".
iKind :: Lens' Install Text

-- | Install state. The state "installPending" means that an install
--   request has recently been made and download to the device is in
--   progress. The state "installed" means that the app has been installed.
--   This field is read-only.
iInstallState :: Lens' Install (Maybe Text)

-- | The ID of the product that the install is for, e.g.
--   "app:com.google.android.gm".
iProductId :: Lens' Install (Maybe Text)
data ServiceAccountKeysListResponse

-- | Creates a value of <a>ServiceAccountKeysListResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>saklrServiceAccountKey</a></li>
--   </ul>
serviceAccountKeysListResponse :: ServiceAccountKeysListResponse

-- | The service account credentials.
saklrServiceAccountKey :: Lens' ServiceAccountKeysListResponse [ServiceAccountKey]

-- | A Users resource represents an account associated with an enterprise.
--   The account may be specific to a device or to an individual user (who
--   can then use the account across multiple devices). The account may
--   provide access to managed Google Play only, or to other Google
--   services, depending on the identity model: - The Google managed domain
--   identity model requires synchronization to Google account sources (via
--   primaryEmail). - The managed Google Play Accounts identity model
--   provides a dynamic means for enterprises to create user or device
--   accounts as needed. These accounts provide access to managed Google
--   Play.
--   
--   <i>See:</i> <a>user</a> smart constructor.
data User

-- | Creates a value of <a>User</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uAccountIdentifier</a></li>
--   <li><a>uKind</a></li>
--   <li><a>uDisplayName</a></li>
--   <li><a>uId</a></li>
--   <li><a>uPrimaryEmail</a></li>
--   <li><a>uManagementType</a></li>
--   <li><a>uAccountType</a></li>
--   </ul>
user :: User

-- | A unique identifier you create for this user, such as "user342" or
--   "asset#44418". Do not use personally identifiable information (PII)
--   for this property. Must always be set for EMM-managed users. Not set
--   for Google-managed users.
uAccountIdentifier :: Lens' User (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#user".
uKind :: Lens' User Text

-- | The name that will appear in user interfaces. Setting this property is
--   optional when creating EMM-managed users. If you do set this property,
--   use something generic about the organization (such as "Example, Inc.")
--   or your name (as EMM). Not used for Google-managed user accounts.
uDisplayName :: Lens' User (Maybe Text)

-- | The unique ID for the user.
uId :: Lens' User (Maybe Text)

-- | The user's primary email address, for example, "jsmith'example.com".
--   Will always be set for Google managed users and not set for EMM
--   managed users.
uPrimaryEmail :: Lens' User (Maybe Text)

-- | The entity that manages the user. With googleManaged users, the source
--   of truth is Google so EMMs have to make sure a Google Account exists
--   for the user. With emmManaged users, the EMM is in charge.
uManagementType :: Lens' User (Maybe Text)

-- | The type of account that this user represents. A userAccount can be
--   installed on multiple devices, but a deviceAccount is specific to a
--   single device. An EMM-managed user (emmManaged) can be either type
--   (userAccount, deviceAccount), but a Google-managed user
--   (googleManaged) is always a userAccount.
uAccountType :: Lens' User (Maybe Text)

-- | The managed configuration resources for the device.
--   
--   <i>See:</i> <a>managedConfigurationsForDeviceListResponse</a> smart
--   constructor.
data ManagedConfigurationsForDeviceListResponse

-- | Creates a value of <a>ManagedConfigurationsForDeviceListResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcfdlrKind</a></li>
--   <li><a>mcfdlrManagedConfigurationForDevice</a></li>
--   </ul>
managedConfigurationsForDeviceListResponse :: ManagedConfigurationsForDeviceListResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#managedConfigurationsForDeviceListResponse".
mcfdlrKind :: Lens' ManagedConfigurationsForDeviceListResponse Text

-- | A managed configuration for an app on a specific device.
mcfdlrManagedConfigurationForDevice :: Lens' ManagedConfigurationsForDeviceListResponse [ManagedConfiguration]
data ProductsGenerateApprovalURLResponse

-- | Creates a value of <a>ProductsGenerateApprovalURLResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pgaurURL</a></li>
--   </ul>
productsGenerateApprovalURLResponse :: ProductsGenerateApprovalURLResponse

-- | A URL that can be rendered in an iframe to display the permissions (if
--   any) of a product. This URL can be used to approve the product only
--   once and only within 24 hours of being generated, using the
--   Products.approve call. If the product is currently unapproved and has
--   no permissions, this URL will point to an empty page. If the product
--   is currently approved, a URL will only be generated if that product
--   has added permissions since it was last approved, and the URL will
--   only display those new permissions that have not yet been accepted.
pgaurURL :: Lens' ProductsGenerateApprovalURLResponse (Maybe Text)

-- | Definition of a managed Google Play store page, made of a localized
--   name and links to other pages. A page also contains clusters defined
--   as a subcollection.
--   
--   <i>See:</i> <a>storePage</a> smart constructor.
data StorePage

-- | Creates a value of <a>StorePage</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spKind</a></li>
--   <li><a>spLink</a></li>
--   <li><a>spName</a></li>
--   <li><a>spId</a></li>
--   </ul>
storePage :: StorePage

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#storePage".
spKind :: Lens' StorePage Text

-- | Ordered list of pages a user should be able to reach from this page.
--   The pages must exist, must not be this page, and once a link is
--   created the page linked to cannot be deleted until all links to it are
--   removed. It is recommended that the basic pages are created first,
--   before adding the links between pages. No attempt is made to verify
--   that all pages are reachable from the homepage.
spLink :: Lens' StorePage [Text]

-- | Ordered list of localized strings giving the name of this page. The
--   text displayed is the one that best matches the user locale, or the
--   first entry if there is no good match. There needs to be at least one
--   entry.
spName :: Lens' StorePage [LocalizedText]

-- | Unique ID of this page. Assigned by the server. Immutable once
--   assigned.
spId :: Lens' StorePage (Maybe Text)
data EnterprisesSendTestPushNotificationResponse

-- | Creates a value of <a>EnterprisesSendTestPushNotificationResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>estpnrTopicName</a></li>
--   <li><a>estpnrMessageId</a></li>
--   </ul>
enterprisesSendTestPushNotificationResponse :: EnterprisesSendTestPushNotificationResponse

-- | The name of the Cloud Pub/Sub topic to which notifications for this
--   enterprise's enrolled account will be sent.
estpnrTopicName :: Lens' EnterprisesSendTestPushNotificationResponse (Maybe Text)

-- | The message ID of the test push notification that was sent.
estpnrMessageId :: Lens' EnterprisesSendTestPushNotificationResponse (Maybe Text)

-- | A service account identity, including the name and credentials that
--   can be used to authenticate as the service account.
--   
--   <i>See:</i> <a>serviceAccount</a> smart constructor.
data ServiceAccount

-- | Creates a value of <a>ServiceAccount</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>saKind</a></li>
--   <li><a>saKey</a></li>
--   <li><a>saName</a></li>
--   </ul>
serviceAccount :: ServiceAccount

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#serviceAccount".
saKind :: Lens' ServiceAccount Text

-- | Credentials that can be used to authenticate as this ServiceAccount.
saKey :: Lens' ServiceAccount (Maybe ServiceAccountKey)

-- | The account name of the service account, in the form of an email
--   address. Assigned by the server.
saName :: Lens' ServiceAccount (Maybe Text)

-- | An event generated when a new version of an app is uploaded to Google
--   Play. Notifications are sent for new public versions only: alpha,
--   beta, or canary versions do not generate this event. To fetch
--   up-to-date version history for an app, use Products.Get on the EMM
--   API.
--   
--   <i>See:</i> <a>appUpdateEvent</a> smart constructor.
data AppUpdateEvent

-- | Creates a value of <a>AppUpdateEvent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aueProductId</a></li>
--   </ul>
appUpdateEvent :: AppUpdateEvent

-- | The id of the product (e.g. "app:com.google.android.gm") that was
--   updated. This field will always be present.
aueProductId :: Lens' AppUpdateEvent (Maybe Text)

-- | The matching enterprise resources.
--   
--   <i>See:</i> <a>enterprisesListResponse</a> smart constructor.
data EnterprisesListResponse

-- | Creates a value of <a>EnterprisesListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>elrKind</a></li>
--   <li><a>elrEnterprise</a></li>
--   </ul>
enterprisesListResponse :: EnterprisesListResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#enterprisesListResponse".
elrKind :: Lens' EnterprisesListResponse Text

-- | An enterprise.
elrEnterprise :: Lens' EnterprisesListResponse [Enterprise]

-- | A resource returned by the PullNotificationSet API, which contains a
--   collection of notifications for enterprises associated with the
--   service account authenticated for the request.
--   
--   <i>See:</i> <a>notificationSet</a> smart constructor.
data NotificationSet

-- | Creates a value of <a>NotificationSet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nsNotificationSetId</a></li>
--   <li><a>nsNotification</a></li>
--   <li><a>nsKind</a></li>
--   </ul>
notificationSet :: NotificationSet

-- | The notification set ID, required to mark the notification as received
--   with the Enterprises.AcknowledgeNotification API. This will be omitted
--   if no notifications are present.
nsNotificationSetId :: Lens' NotificationSet (Maybe Text)

-- | The notifications received, or empty if no notifications are present.
nsNotification :: Lens' NotificationSet [Notification]

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#notificationSet".
nsKind :: Lens' NotificationSet Text

-- | Represents the list of app restrictions available to be pre-configured
--   for the product.
--   
--   <i>See:</i> <a>appRestrictionsSchema</a> smart constructor.
data AppRestrictionsSchema

-- | Creates a value of <a>AppRestrictionsSchema</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>arsKind</a></li>
--   <li><a>arsRestrictions</a></li>
--   </ul>
appRestrictionsSchema :: AppRestrictionsSchema

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#appRestrictionsSchema".
arsKind :: Lens' AppRestrictionsSchema Text

-- | The set of restrictions that make up this schema.
arsRestrictions :: Lens' AppRestrictionsSchema [AppRestrictionsSchemaRestriction]

-- | A localized string with its locale.
--   
--   <i>See:</i> <a>localizedText</a> smart constructor.
data LocalizedText

-- | Creates a value of <a>LocalizedText</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltText</a></li>
--   <li><a>ltLocale</a></li>
--   </ul>
localizedText :: LocalizedText

-- | The text localized in the associated locale.
ltText :: Lens' LocalizedText (Maybe Text)

-- | The BCP47 tag for a locale. (e.g. "en-US", "de").
ltLocale :: Lens' LocalizedText (Maybe Text)

-- | A UserToken is used by a user when setting up a managed device or
--   profile with their managed Google Play account on a device. When the
--   user enters their email address and token (activation code) the
--   appropriate EMM app can be automatically downloaded.
--   
--   <i>See:</i> <a>userToken</a> smart constructor.
data UserToken

-- | Creates a value of <a>UserToken</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>utKind</a></li>
--   <li><a>utToken</a></li>
--   <li><a>utUserId</a></li>
--   </ul>
userToken :: UserToken

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#userToken".
utKind :: Lens' UserToken Text

-- | The token (activation code) to be entered by the user. This consists
--   of a sequence of decimal digits. Note that the leading digit may be 0.
utToken :: Lens' UserToken (Maybe Text)

-- | The unique ID for the user.
utUserId :: Lens' UserToken (Maybe Text)

-- | The device resources for the user.
--   
--   <i>See:</i> <a>devicesListResponse</a> smart constructor.
data DevicesListResponse

-- | Creates a value of <a>DevicesListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlrKind</a></li>
--   <li><a>dlrDevice</a></li>
--   </ul>
devicesListResponse :: DevicesListResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#devicesListResponse".
dlrKind :: Lens' DevicesListResponse Text

-- | A managed device.
dlrDevice :: Lens' DevicesListResponse [Device]

-- | An Enterprises resource represents the binding between an EMM and a
--   specific organization. That binding can be instantiated in one of two
--   different ways using this API as follows: - For Google managed domain
--   customers, the process involves using Enterprises.enroll and
--   Enterprises.setAccount (in conjunction with artifacts obtained from
--   the Admin console and the Google API Console) and submitted to the EMM
--   through a more-or-less manual process. - For managed Google Play
--   Accounts customers, the process involves using
--   Enterprises.generateSignupUrl and Enterprises.completeSignup in
--   conjunction with the managed Google Play sign-up UI (Google-provided
--   mechanism) to create the binding without manual steps. As an EMM, you
--   can support either or both approaches in your EMM console. See Create
--   an Enterprise for details.
--   
--   <i>See:</i> <a>enterprise</a> smart constructor.
data Enterprise

-- | Creates a value of <a>Enterprise</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eKind</a></li>
--   <li><a>eAdministrator</a></li>
--   <li><a>ePrimaryDomain</a></li>
--   <li><a>eName</a></li>
--   <li><a>eId</a></li>
--   </ul>
enterprise :: Enterprise

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#enterprise".
eKind :: Lens' Enterprise Text

-- | Admins of the enterprise. This is only supported for enterprises
--   created via the EMM-initiated flow.
eAdministrator :: Lens' Enterprise [Administrator]

-- | The enterprise's primary domain, such as "example.com".
ePrimaryDomain :: Lens' Enterprise (Maybe Text)

-- | The name of the enterprise, for example, "Example, Inc".
eName :: Lens' Enterprise (Maybe Text)

-- | The unique ID for the enterprise.
eId :: Lens' Enterprise (Maybe Text)

-- | An event generated when an app installation failed on a device
--   
--   <i>See:</i> <a>installFailureEvent</a> smart constructor.
data InstallFailureEvent

-- | Creates a value of <a>InstallFailureEvent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ifeFailureReason</a></li>
--   <li><a>ifeFailureDetails</a></li>
--   <li><a>ifeUserId</a></li>
--   <li><a>ifeDeviceId</a></li>
--   <li><a>ifeProductId</a></li>
--   </ul>
installFailureEvent :: InstallFailureEvent

-- | The reason for the installation failure. This field will always be
--   present.
ifeFailureReason :: Lens' InstallFailureEvent (Maybe Text)

-- | Additional details on the failure if applicable.
ifeFailureDetails :: Lens' InstallFailureEvent (Maybe Text)

-- | The ID of the user. This field will always be present.
ifeUserId :: Lens' InstallFailureEvent (Maybe Text)

-- | The Android ID of the device. This field will always be present.
ifeDeviceId :: Lens' InstallFailureEvent (Maybe Text)

-- | The id of the product (e.g. "app:com.google.android.gm") for which the
--   install failure event occured. This field will always be present.
ifeProductId :: Lens' InstallFailureEvent (Maybe Text)

-- | The managed configuration resources for the user.
--   
--   <i>See:</i> <a>managedConfigurationsForUserListResponse</a> smart
--   constructor.
data ManagedConfigurationsForUserListResponse

-- | Creates a value of <a>ManagedConfigurationsForUserListResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcfulrManagedConfigurationForUser</a></li>
--   <li><a>mcfulrKind</a></li>
--   </ul>
managedConfigurationsForUserListResponse :: ManagedConfigurationsForUserListResponse

-- | A managed configuration for an app for a specific user.
mcfulrManagedConfigurationForUser :: Lens' ManagedConfigurationsForUserListResponse [ManagedConfiguration]

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#managedConfigurationsForUserListResponse".
mcfulrKind :: Lens' ManagedConfigurationsForUserListResponse Text

-- | General setting for the managed Google Play store layout, currently
--   only specifying the page to display the first time the store is
--   opened.
--   
--   <i>See:</i> <a>storeLayout</a> smart constructor.
data StoreLayout

-- | Creates a value of <a>StoreLayout</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slStoreLayoutType</a></li>
--   <li><a>slKind</a></li>
--   <li><a>slHomepageId</a></li>
--   </ul>
storeLayout :: StoreLayout

-- | The store layout type. By default, this value is set to "basic". If
--   set to "custom", "homepageId" must be specified. If set to "basic",
--   the layout will consist of all approved apps accessible by the user,
--   split in pages of 100 each; in this case, "homepageId" must not be
--   specified. The "basic" setting takes precedence over any existing
--   collections setup for this enterprise (if any). Should the enterprise
--   use collectionViewers for controlling access rights, these will still
--   be respected.
slStoreLayoutType :: Lens' StoreLayout (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#storeLayout".
slKind :: Lens' StoreLayout Text

-- | The ID of the store page to be used as the homepage. The homepage will
--   be used as the first page shown in the managed Google Play store. If a
--   homepage has not been set, the Play store shown on devices will be
--   empty. Not specifying a homepage on a store layout effectively empties
--   the store. If there exists at least one page, this field must be set
--   to the ID of a valid page.
slHomepageId :: Lens' StoreLayout (Maybe Text)

-- | An event generated when a new app version is uploaded to Google Play
--   and its app restrictions schema changed. To fetch the app restrictions
--   schema for an app, use Products.getAppRestrictionsSchema on the EMM
--   API.
--   
--   <i>See:</i> <a>appRestrictionsSchemaChangeEvent</a> smart constructor.
data AppRestrictionsSchemaChangeEvent

-- | Creates a value of <a>AppRestrictionsSchemaChangeEvent</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>arsceProductId</a></li>
--   </ul>
appRestrictionsSchemaChangeEvent :: AppRestrictionsSchemaChangeEvent

-- | The id of the product (e.g. "app:com.google.android.gm") for which the
--   app restriction schema changed. This field will always be present.
arsceProductId :: Lens' AppRestrictionsSchemaChangeEvent (Maybe Text)

-- | An event generated when a new device is ready to be managed.
--   
--   <i>See:</i> <a>newDeviceEvent</a> smart constructor.
data NewDeviceEvent

-- | Creates a value of <a>NewDeviceEvent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ndeUserId</a></li>
--   <li><a>ndeDeviceId</a></li>
--   <li><a>ndeManagementType</a></li>
--   </ul>
newDeviceEvent :: NewDeviceEvent

-- | The ID of the user. This field will always be present.
ndeUserId :: Lens' NewDeviceEvent (Maybe Text)

-- | The Android ID of the device. This field will always be present.
ndeDeviceId :: Lens' NewDeviceEvent (Maybe Text)

-- | Identifies the extent to which the device is controlled by an Android
--   for Work EMM in various deployment configurations. Possible values
--   include: - "managedDevice", a device that has the EMM's device policy
--   controller (DPC) as the device owner, - "managedProfile", a device
--   that has a work profile managed by the DPC (DPC is profile owner) in
--   addition to a separate, personal profile that is unavailable to the
--   DPC,
ndeManagementType :: Lens' NewDeviceEvent (Maybe Text)

-- | A token authorizing an admin to access an iframe.
--   
--   <i>See:</i> <a>administratorWebToken</a> smart constructor.
data AdministratorWebToken

-- | Creates a value of <a>AdministratorWebToken</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>awtKind</a></li>
--   <li><a>awtToken</a></li>
--   </ul>
administratorWebToken :: AdministratorWebToken

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#administratorWebToken".
awtKind :: Lens' AdministratorWebToken Text

-- | An opaque token to be passed to the Play front-end to generate an
--   iframe.
awtToken :: Lens' AdministratorWebToken (Maybe Text)

-- | A resource returned by the GenerateSignupUrl API, which contains the
--   Signup URL and Completion Token.
--   
--   <i>See:</i> <a>signupInfo</a> smart constructor.
data SignupInfo

-- | Creates a value of <a>SignupInfo</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siCompletionToken</a></li>
--   <li><a>siKind</a></li>
--   <li><a>siURL</a></li>
--   </ul>
signupInfo :: SignupInfo

-- | An opaque token that will be required, along with the Enterprise
--   Token, for obtaining the enterprise resource from CompleteSignup.
siCompletionToken :: Lens' SignupInfo (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#signupInfo".
siKind :: Lens' SignupInfo Text

-- | A URL under which the Admin can sign up for an enterprise. The page
--   pointed to cannot be rendered in an iframe.
siURL :: Lens' SignupInfo (Maybe Text)

-- | A Products resource represents an app in the Google Play store that is
--   available to at least some users in the enterprise. (Some apps are
--   restricted to a single enterprise, and no information about them is
--   made available outside that enterprise.) The information provided for
--   each product (localized name, icon, link to the full Google Play
--   details page) is intended to allow a basic representation of the
--   product within an EMM user interface.
--   
--   <i>See:</i> <a>product</a> smart constructor.
data Product

-- | Creates a value of <a>Product</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pSmallIconURL</a></li>
--   <li><a>pAuthorName</a></li>
--   <li><a>pKind</a></li>
--   <li><a>pWorkDetailsURL</a></li>
--   <li><a>pRequiresContainerApp</a></li>
--   <li><a>pAppVersion</a></li>
--   <li><a>pProductPricing</a></li>
--   <li><a>pDistributionChannel</a></li>
--   <li><a>pIconURL</a></li>
--   <li><a>pTitle</a></li>
--   <li><a>pProductId</a></li>
--   <li><a>pDetailsURL</a></li>
--   </ul>
product :: Product

-- | A link to a smaller image that can be used as an icon for the product.
--   This image is suitable for use at up to 128px x 128px.
pSmallIconURL :: Lens' Product (Maybe Text)

-- | The name of the author of the product (e.g. the app developer).
pAuthorName :: Lens' Product (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#product".
pKind :: Lens' Product Text

-- | A link to the managed Google Play details page for the product, for
--   use by an Enterprise admin.
pWorkDetailsURL :: Lens' Product (Maybe Text)

-- | Whether this app can only be installed on devices using the Android
--   container app.
pRequiresContainerApp :: Lens' Product (Maybe Bool)

-- | App versions currently available for this product. The returned list
--   contains only public versions. Alpha and beta versions are not
--   included.
pAppVersion :: Lens' Product [AppVersion]

-- | Whether this product is free, free with in-app purchases, or paid. If
--   the pricing is unknown, this means the product is not generally
--   available anymore (even though it might still be available to people
--   who own it).
pProductPricing :: Lens' Product (Maybe Text)

-- | How and to whom the package is made available. The value
--   publicGoogleHosted means that the package is available through the
--   Play store and not restricted to a specific enterprise. The value
--   privateGoogleHosted means that the package is a private app
--   (restricted to an enterprise) but hosted by Google. The value
--   privateSelfHosted means that the package is a private app (restricted
--   to an enterprise) and is privately hosted.
pDistributionChannel :: Lens' Product (Maybe Text)

-- | A link to an image that can be used as an icon for the product. This
--   image is suitable for use at up to 512px x 512px.
pIconURL :: Lens' Product (Maybe Text)

-- | The name of the product.
pTitle :: Lens' Product (Maybe Text)

-- | A string of the form app:. For example, app:com.google.android.gm
--   represents the Gmail app.
pProductId :: Lens' Product (Maybe Text)

-- | A link to the (consumer) Google Play details page for the product.
pDetailsURL :: Lens' Product (Maybe Text)

-- | The entitlement resources for the user.
--   
--   <i>See:</i> <a>entitlementsListResponse</a> smart constructor.
data EntitlementsListResponse

-- | Creates a value of <a>EntitlementsListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>entKind</a></li>
--   <li><a>entEntitlement</a></li>
--   </ul>
entitlementsListResponse :: EntitlementsListResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#entitlementsListResponse".
entKind :: Lens' EntitlementsListResponse Text

-- | An entitlement of a user to a product (e.g. an app). For example, a
--   free app that they have installed, or a paid app that they have been
--   allocated a license to.
entEntitlement :: Lens' EntitlementsListResponse [Entitlement]

-- | The type of credential to return with the service account. Required.
data EnterprisesGetServiceAccountKeyType

-- | <pre>
--   googleCredentials
--   </pre>
GoogleCredentials :: EnterprisesGetServiceAccountKeyType

-- | <pre>
--   pkcs12
--   </pre>
PKCS12 :: EnterprisesGetServiceAccountKeyType

-- | Information about the permissions required by a specific app and
--   whether they have been accepted by the enterprise.
--   
--   <i>See:</i> <a>productPermissions</a> smart constructor.
data ProductPermissions

-- | Creates a value of <a>ProductPermissions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ppKind</a></li>
--   <li><a>ppPermission</a></li>
--   <li><a>ppProductId</a></li>
--   </ul>
productPermissions :: ProductPermissions

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#productPermissions".
ppKind :: Lens' ProductPermissions Text

-- | The permissions required by the app.
ppPermission :: Lens' ProductPermissions [ProductPermission]

-- | The ID of the app that the permissions relate to, e.g.
--   "app:com.google.android.gm".
ppProductId :: Lens' ProductPermissions (Maybe Text)

-- | A permission represents some extra capability, to be granted to an
--   Android app, which requires explicit consent. An enterprise admin must
--   consent to these permissions on behalf of their users before an
--   entitlement for the app can be created. The permissions collection is
--   read-only. The information provided for each permission (localized
--   name and description) is intended to be used in the EMM user interface
--   when obtaining consent from the enterprise.
--   
--   <i>See:</i> <a>permission</a> smart constructor.
data Permission

-- | Creates a value of <a>Permission</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>perKind</a></li>
--   <li><a>perName</a></li>
--   <li><a>perDescription</a></li>
--   <li><a>perPermissionId</a></li>
--   </ul>
permission :: Permission

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#permission".
perKind :: Lens' Permission Text

-- | The name of the permission.
perName :: Lens' Permission (Maybe Text)

-- | A longer description of the permissions giving more details of what it
--   affects.
perDescription :: Lens' Permission (Maybe Text)

-- | An opaque string uniquely identifying the permission.
perPermissionId :: Lens' Permission (Maybe Text)
data ProductsApproveRequest

-- | Creates a value of <a>ProductsApproveRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>parApprovalURLInfo</a></li>
--   </ul>
productsApproveRequest :: ProductsApproveRequest

-- | The approval URL that was shown to the user. Only the permissions
--   shown to the user with that URL will be accepted, which may not be the
--   product's entire set of permissions. For example, the URL may only
--   display new permissions from an update after the product was approved,
--   or not include new permissions if the product was updated since the
--   URL was generated.
parApprovalURLInfo :: Lens' ProductsApproveRequest (Maybe ApprovalURLInfo)

-- | The existence of an entitlement resource means that a user has the
--   right to use a particular app on any of their devices. This might be
--   because the app is free or because they have been allocated a license
--   to the app from a group license purchased by the enterprise. It should
--   always be true that a user has an app installed on one of their
--   devices only if they have an entitlement to it. So if an entitlement
--   is deleted, the app will be uninstalled from all devices. Similarly if
--   the user installs an app (and is permitted to do so), or the EMM
--   triggers an install of the app, an entitlement to that app is
--   automatically created. If this is impossible - e.g. the enterprise has
--   not purchased sufficient licenses - then installation fails. Note that
--   entitlements are always user specific, not device specific; a user may
--   have an entitlement even though they have not installed the app
--   anywhere. Once they have an entitlement they can install the app on
--   multiple devices. The API can be used to create an entitlement. If the
--   app is a free app, a group license for that app is created. If it's a
--   paid app, creating the entitlement consumes one license; it remains
--   consumed until the entitlement is removed. Optionally an installation
--   of the app on all the user's managed devices can be triggered at the
--   time the entitlement is created. An entitlement cannot be created for
--   an app if the app requires permissions that the enterprise has not yet
--   accepted. Entitlements for paid apps that are due to purchases by the
--   user on a non-managed profile will have "userPurchase" as entitlement
--   reason; those entitlements cannot be removed via the API.
--   
--   <i>See:</i> <a>entitlement</a> smart constructor.
data Entitlement

-- | Creates a value of <a>Entitlement</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eeKind</a></li>
--   <li><a>eeReason</a></li>
--   <li><a>eeProductId</a></li>
--   </ul>
entitlement :: Entitlement

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#entitlement".
eeKind :: Lens' Entitlement Text

-- | The reason for the entitlement, e.g. "free" for free apps. This is
--   temporary, it will be replaced by the acquisition kind field of group
--   licenses.
eeReason :: Lens' Entitlement (Maybe Text)

-- | The ID of the product that the entitlement is for, e.g.
--   "app:com.google.android.gm".
eeProductId :: Lens' Entitlement (Maybe Text)

-- | The matching products.
--   
--   <i>See:</i> <a>productsListResponse</a> smart constructor.
data ProductsListResponse

-- | Creates a value of <a>ProductsListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>plrTokenPagination</a></li>
--   <li><a>plrPageInfo</a></li>
--   <li><a>plrKind</a></li>
--   <li><a>plrProduct</a></li>
--   </ul>
productsListResponse :: ProductsListResponse

-- | Pagination information for token pagination.
plrTokenPagination :: Lens' ProductsListResponse (Maybe TokenPagination)

-- | General pagination information.
plrPageInfo :: Lens' ProductsListResponse (Maybe PageInfo)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#productsListResponse".
plrKind :: Lens' ProductsListResponse Text

-- | Information about a product (e.g. an app) in the Google Play store,
--   for display to an enterprise admin.
plrProduct :: Lens' ProductsListResponse [Product]


-- | Retrieves the details of a device.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.devices.get</tt>.
module Network.Google.Resource.AndroidEnterprise.Devices.Get

-- | A resource alias for <tt>androidenterprise.devices.get</tt> method
--   which the <a>DevicesGet</a> request conforms to.
type DevicesGetResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("devices" :> (Capture "deviceId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Device))))))))

-- | Creates a value of <a>DevicesGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dgEnterpriseId</a></li>
--   <li><a>dgUserId</a></li>
--   <li><a>dgDeviceId</a></li>
--   </ul>
devicesGet :: Text -> Text -> Text -> DevicesGet

-- | Retrieves the details of a device.
--   
--   <i>See:</i> <a>devicesGet</a> smart constructor.
data DevicesGet

-- | The ID of the enterprise.
dgEnterpriseId :: Lens' DevicesGet Text

-- | The ID of the user.
dgUserId :: Lens' DevicesGet Text

-- | The ID of the device.
dgDeviceId :: Lens' DevicesGet Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Devices.Get.DevicesGet
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Devices.Get.DevicesGet
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Devices.Get.DevicesGet
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Devices.Get.DevicesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Devices.Get.DevicesGet


-- | Retrieves whether a device's access to Google services is enabled or
--   disabled. The device state takes effect only if enforcing EMM policies
--   on Android devices is enabled in the Google Admin Console. Otherwise,
--   the device state is ignored and all devices are allowed access to
--   Google services. This is only supported for Google-managed users.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.devices.getState</tt>.
module Network.Google.Resource.AndroidEnterprise.Devices.GetState

-- | A resource alias for <tt>androidenterprise.devices.getState</tt>
--   method which the <a>DevicesGetState</a> request conforms to.
type DevicesGetStateResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("devices" :> (Capture "deviceId" Text :> ("state" :> (QueryParam "alt" AltJSON :> Get '[JSON] DeviceState)))))))))

-- | Creates a value of <a>DevicesGetState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dgsEnterpriseId</a></li>
--   <li><a>dgsUserId</a></li>
--   <li><a>dgsDeviceId</a></li>
--   </ul>
devicesGetState :: Text -> Text -> Text -> DevicesGetState

-- | Retrieves whether a device's access to Google services is enabled or
--   disabled. The device state takes effect only if enforcing EMM policies
--   on Android devices is enabled in the Google Admin Console. Otherwise,
--   the device state is ignored and all devices are allowed access to
--   Google services. This is only supported for Google-managed users.
--   
--   <i>See:</i> <a>devicesGetState</a> smart constructor.
data DevicesGetState

-- | The ID of the enterprise.
dgsEnterpriseId :: Lens' DevicesGetState Text

-- | The ID of the user.
dgsUserId :: Lens' DevicesGetState Text

-- | The ID of the device.
dgsDeviceId :: Lens' DevicesGetState Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Devices.GetState.DevicesGetState
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Devices.GetState.DevicesGetState
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Devices.GetState.DevicesGetState
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Devices.GetState.DevicesGetState
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Devices.GetState.DevicesGetState


-- | Retrieves the IDs of all of a user's devices.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.devices.list</tt>.
module Network.Google.Resource.AndroidEnterprise.Devices.List

-- | A resource alias for <tt>androidenterprise.devices.list</tt> method
--   which the <a>DevicesList</a> request conforms to.
type DevicesListResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("devices" :> (QueryParam "alt" AltJSON :> Get '[JSON] DevicesListResponse)))))))

-- | Creates a value of <a>DevicesList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlEnterpriseId</a></li>
--   <li><a>dlUserId</a></li>
--   </ul>
devicesList :: Text -> Text -> DevicesList

-- | Retrieves the IDs of all of a user's devices.
--   
--   <i>See:</i> <a>devicesList</a> smart constructor.
data DevicesList

-- | The ID of the enterprise.
dlEnterpriseId :: Lens' DevicesList Text

-- | The ID of the user.
dlUserId :: Lens' DevicesList Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Devices.List.DevicesList
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Devices.List.DevicesList
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Devices.List.DevicesList
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Devices.List.DevicesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Devices.List.DevicesList


-- | Sets whether a device's access to Google services is enabled or
--   disabled. The device state takes effect only if enforcing EMM policies
--   on Android devices is enabled in the Google Admin Console. Otherwise,
--   the device state is ignored and all devices are allowed access to
--   Google services. This is only supported for Google-managed users.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.devices.setState</tt>.
module Network.Google.Resource.AndroidEnterprise.Devices.SetState

-- | A resource alias for <tt>androidenterprise.devices.setState</tt>
--   method which the <a>DevicesSetState</a> request conforms to.
type DevicesSetStateResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("devices" :> (Capture "deviceId" Text :> ("state" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DeviceState :> Put '[JSON] DeviceState))))))))))

-- | Creates a value of <a>DevicesSetState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dssEnterpriseId</a></li>
--   <li><a>dssPayload</a></li>
--   <li><a>dssUserId</a></li>
--   <li><a>dssDeviceId</a></li>
--   </ul>
devicesSetState :: Text -> DeviceState -> Text -> Text -> DevicesSetState

-- | Sets whether a device's access to Google services is enabled or
--   disabled. The device state takes effect only if enforcing EMM policies
--   on Android devices is enabled in the Google Admin Console. Otherwise,
--   the device state is ignored and all devices are allowed access to
--   Google services. This is only supported for Google-managed users.
--   
--   <i>See:</i> <a>devicesSetState</a> smart constructor.
data DevicesSetState

-- | The ID of the enterprise.
dssEnterpriseId :: Lens' DevicesSetState Text

-- | Multipart request metadata.
dssPayload :: Lens' DevicesSetState DeviceState

-- | The ID of the user.
dssUserId :: Lens' DevicesSetState Text

-- | The ID of the device.
dssDeviceId :: Lens' DevicesSetState Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Devices.SetState.DevicesSetState
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Devices.SetState.DevicesSetState
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Devices.SetState.DevicesSetState
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Devices.SetState.DevicesSetState
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Devices.SetState.DevicesSetState


-- | Acknowledges notifications that were received from
--   Enterprises.PullNotificationSet to prevent subsequent calls from
--   returning the same notifications.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.enterprises.acknowledgeNotificationSet</tt>.
module Network.Google.Resource.AndroidEnterprise.Enterprises.AcknowledgeNotificationSet

-- | A resource alias for
--   <tt>androidenterprise.enterprises.acknowledgeNotificationSet</tt>
--   method which the <a>EnterprisesAcknowledgeNotificationSet</a> request
--   conforms to.
type EnterprisesAcknowledgeNotificationSetResource = "androidenterprise" :> ("v1" :> ("enterprises" :> ("acknowledgeNotificationSet" :> (QueryParam "notificationSetId" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] ())))))

-- | Creates a value of <a>EnterprisesAcknowledgeNotificationSet</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eansNotificationSetId</a></li>
--   </ul>
enterprisesAcknowledgeNotificationSet :: EnterprisesAcknowledgeNotificationSet

-- | Acknowledges notifications that were received from
--   Enterprises.PullNotificationSet to prevent subsequent calls from
--   returning the same notifications.
--   
--   <i>See:</i> <a>enterprisesAcknowledgeNotificationSet</a> smart
--   constructor.
data EnterprisesAcknowledgeNotificationSet

-- | The notification set ID as returned by
--   Enterprises.PullNotificationSet. This must be provided.
eansNotificationSetId :: Lens' EnterprisesAcknowledgeNotificationSet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.AcknowledgeNotificationSet.EnterprisesAcknowledgeNotificationSet
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.AcknowledgeNotificationSet.EnterprisesAcknowledgeNotificationSet
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.AcknowledgeNotificationSet.EnterprisesAcknowledgeNotificationSet
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.AcknowledgeNotificationSet.EnterprisesAcknowledgeNotificationSet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.AcknowledgeNotificationSet.EnterprisesAcknowledgeNotificationSet


-- | Completes the signup flow, by specifying the Completion token and
--   Enterprise token. This request must not be called multiple times for a
--   given Enterprise Token.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.enterprises.completeSignup</tt>.
module Network.Google.Resource.AndroidEnterprise.Enterprises.CompleteSignup

-- | A resource alias for
--   <tt>androidenterprise.enterprises.completeSignup</tt> method which the
--   <a>EnterprisesCompleteSignup</a> request conforms to.
type EnterprisesCompleteSignupResource = "androidenterprise" :> ("v1" :> ("enterprises" :> ("completeSignup" :> (QueryParam "completionToken" Text :> (QueryParam "enterpriseToken" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] Enterprise))))))

-- | Creates a value of <a>EnterprisesCompleteSignup</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ecsCompletionToken</a></li>
--   <li><a>ecsEnterpriseToken</a></li>
--   </ul>
enterprisesCompleteSignup :: EnterprisesCompleteSignup

-- | Completes the signup flow, by specifying the Completion token and
--   Enterprise token. This request must not be called multiple times for a
--   given Enterprise Token.
--   
--   <i>See:</i> <a>enterprisesCompleteSignup</a> smart constructor.
data EnterprisesCompleteSignup

-- | The Completion token initially returned by GenerateSignupUrl.
ecsCompletionToken :: Lens' EnterprisesCompleteSignup (Maybe Text)

-- | The Enterprise token appended to the Callback URL.
ecsEnterpriseToken :: Lens' EnterprisesCompleteSignup (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.CompleteSignup.EnterprisesCompleteSignup
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.CompleteSignup.EnterprisesCompleteSignup
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.CompleteSignup.EnterprisesCompleteSignup
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.CompleteSignup.EnterprisesCompleteSignup
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.CompleteSignup.EnterprisesCompleteSignup


-- | Returns a unique token to access an embeddable UI. To generate a web
--   UI, pass the generated token into the managed Google Play javascript
--   API. Each token may only be used to start one UI session. See the
--   javascript API documentation for further information.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.enterprises.createWebToken</tt>.
module Network.Google.Resource.AndroidEnterprise.Enterprises.CreateWebToken

-- | A resource alias for
--   <tt>androidenterprise.enterprises.createWebToken</tt> method which the
--   <a>EnterprisesCreateWebToken</a> request conforms to.
type EnterprisesCreateWebTokenResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("createWebToken" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] AdministratorWebTokenSpec :> Post '[JSON] AdministratorWebToken))))))

-- | Creates a value of <a>EnterprisesCreateWebToken</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ecwtEnterpriseId</a></li>
--   <li><a>ecwtPayload</a></li>
--   </ul>
enterprisesCreateWebToken :: Text -> AdministratorWebTokenSpec -> EnterprisesCreateWebToken

-- | Returns a unique token to access an embeddable UI. To generate a web
--   UI, pass the generated token into the managed Google Play javascript
--   API. Each token may only be used to start one UI session. See the
--   javascript API documentation for further information.
--   
--   <i>See:</i> <a>enterprisesCreateWebToken</a> smart constructor.
data EnterprisesCreateWebToken

-- | The ID of the enterprise.
ecwtEnterpriseId :: Lens' EnterprisesCreateWebToken Text

-- | Multipart request metadata.
ecwtPayload :: Lens' EnterprisesCreateWebToken AdministratorWebTokenSpec
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.CreateWebToken.EnterprisesCreateWebToken
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.CreateWebToken.EnterprisesCreateWebToken
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.CreateWebToken.EnterprisesCreateWebToken
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.CreateWebToken.EnterprisesCreateWebToken
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.CreateWebToken.EnterprisesCreateWebToken


-- | Deletes the binding between the EMM and enterprise. This is now
--   deprecated; use this to unenroll customers that were previously
--   enrolled with the 'insert' call, then enroll them again with the
--   'enroll' call.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.enterprises.delete</tt>.
module Network.Google.Resource.AndroidEnterprise.Enterprises.Delete

-- | A resource alias for <tt>androidenterprise.enterprises.delete</tt>
--   method which the <a>EnterprisesDelete</a> request conforms to.
type EnterprisesDeleteResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))

-- | Creates a value of <a>EnterprisesDelete</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edEnterpriseId</a></li>
--   </ul>
enterprisesDelete :: Text -> EnterprisesDelete

-- | Deletes the binding between the EMM and enterprise. This is now
--   deprecated; use this to unenroll customers that were previously
--   enrolled with the 'insert' call, then enroll them again with the
--   'enroll' call.
--   
--   <i>See:</i> <a>enterprisesDelete</a> smart constructor.
data EnterprisesDelete

-- | The ID of the enterprise.
edEnterpriseId :: Lens' EnterprisesDelete Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.Delete.EnterprisesDelete
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.Delete.EnterprisesDelete
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.Delete.EnterprisesDelete
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.Delete.EnterprisesDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.Delete.EnterprisesDelete


-- | Enrolls an enterprise with the calling EMM.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.enterprises.enroll</tt>.
module Network.Google.Resource.AndroidEnterprise.Enterprises.Enroll

-- | A resource alias for <tt>androidenterprise.enterprises.enroll</tt>
--   method which the <a>EnterprisesEnroll</a> request conforms to.
type EnterprisesEnrollResource = "androidenterprise" :> ("v1" :> ("enterprises" :> ("enroll" :> (QueryParam "token" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Enterprise :> Post '[JSON] Enterprise))))))

-- | Creates a value of <a>EnterprisesEnroll</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eeToken</a></li>
--   <li><a>eePayload</a></li>
--   </ul>
enterprisesEnroll :: Text -> Enterprise -> EnterprisesEnroll

-- | Enrolls an enterprise with the calling EMM.
--   
--   <i>See:</i> <a>enterprisesEnroll</a> smart constructor.
data EnterprisesEnroll

-- | The token provided by the enterprise to register the EMM.
eeToken :: Lens' EnterprisesEnroll Text

-- | Multipart request metadata.
eePayload :: Lens' EnterprisesEnroll Enterprise
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.Enroll.EnterprisesEnroll
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.Enroll.EnterprisesEnroll
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.Enroll.EnterprisesEnroll
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.Enroll.EnterprisesEnroll
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.Enroll.EnterprisesEnroll


-- | Generates a sign-up URL.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.enterprises.generateSignupUrl</tt>.
module Network.Google.Resource.AndroidEnterprise.Enterprises.GenerateSignupURL

-- | A resource alias for
--   <tt>androidenterprise.enterprises.generateSignupUrl</tt> method which
--   the <a>EnterprisesGenerateSignupURL</a> request conforms to.
type EnterprisesGenerateSignupURLResource = "androidenterprise" :> ("v1" :> ("enterprises" :> ("signupUrl" :> (QueryParam "callbackUrl" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] SignupInfo)))))

-- | Creates a value of <a>EnterprisesGenerateSignupURL</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>egsuCallbackURL</a></li>
--   </ul>
enterprisesGenerateSignupURL :: EnterprisesGenerateSignupURL

-- | Generates a sign-up URL.
--   
--   <i>See:</i> <a>enterprisesGenerateSignupURL</a> smart constructor.
data EnterprisesGenerateSignupURL

-- | The callback URL to which the Admin will be redirected after
--   successfully creating an enterprise. Before redirecting there the
--   system will add a single query parameter to this URL named
--   "enterpriseToken" which will contain an opaque token to be used for
--   the CompleteSignup request. Beware that this means that the URL will
--   be parsed, the parameter added and then a new URL formatted, i.e.
--   there may be some minor formatting changes and, more importantly, the
--   URL must be well-formed so that it can be parsed.
egsuCallbackURL :: Lens' EnterprisesGenerateSignupURL (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.GenerateSignupURL.EnterprisesGenerateSignupURL
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.GenerateSignupURL.EnterprisesGenerateSignupURL
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.GenerateSignupURL.EnterprisesGenerateSignupURL
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.GenerateSignupURL.EnterprisesGenerateSignupURL
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.GenerateSignupURL.EnterprisesGenerateSignupURL


-- | Retrieves the name and domain of an enterprise.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.enterprises.get</tt>.
module Network.Google.Resource.AndroidEnterprise.Enterprises.Get

-- | A resource alias for <tt>androidenterprise.enterprises.get</tt> method
--   which the <a>EnterprisesGet</a> request conforms to.
type EnterprisesGetResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Enterprise))))

-- | Creates a value of <a>EnterprisesGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eEnterpriseId</a></li>
--   </ul>
enterprisesGet :: Text -> EnterprisesGet

-- | Retrieves the name and domain of an enterprise.
--   
--   <i>See:</i> <a>enterprisesGet</a> smart constructor.
data EnterprisesGet

-- | The ID of the enterprise.
eEnterpriseId :: Lens' EnterprisesGet Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.Get.EnterprisesGet
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.Get.EnterprisesGet
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.Get.EnterprisesGet
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.Get.EnterprisesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.Get.EnterprisesGet


-- | Returns a service account and credentials. The service account can be
--   bound to the enterprise by calling setAccount. The service account is
--   unique to this enterprise and EMM, and will be deleted if the
--   enterprise is unbound. The credentials contain private key data and
--   are not stored server-side. This method can only be called after
--   calling Enterprises.Enroll or Enterprises.CompleteSignup, and before
--   Enterprises.SetAccount; at other times it will return an error.
--   Subsequent calls after the first will generate a new, unique set of
--   credentials, and invalidate the previously generated credentials. Once
--   the service account is bound to the enterprise, it can be managed
--   using the serviceAccountKeys resource.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.enterprises.getServiceAccount</tt>.
module Network.Google.Resource.AndroidEnterprise.Enterprises.GetServiceAccount

-- | A resource alias for
--   <tt>androidenterprise.enterprises.getServiceAccount</tt> method which
--   the <a>EnterprisesGetServiceAccount</a> request conforms to.
type EnterprisesGetServiceAccountResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("serviceAccount" :> (QueryParam "keyType" EnterprisesGetServiceAccountKeyType :> (QueryParam "alt" AltJSON :> Get '[JSON] ServiceAccount))))))

-- | Creates a value of <a>EnterprisesGetServiceAccount</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>egsaKeyType</a></li>
--   <li><a>egsaEnterpriseId</a></li>
--   </ul>
enterprisesGetServiceAccount :: Text -> EnterprisesGetServiceAccount

-- | Returns a service account and credentials. The service account can be
--   bound to the enterprise by calling setAccount. The service account is
--   unique to this enterprise and EMM, and will be deleted if the
--   enterprise is unbound. The credentials contain private key data and
--   are not stored server-side. This method can only be called after
--   calling Enterprises.Enroll or Enterprises.CompleteSignup, and before
--   Enterprises.SetAccount; at other times it will return an error.
--   Subsequent calls after the first will generate a new, unique set of
--   credentials, and invalidate the previously generated credentials. Once
--   the service account is bound to the enterprise, it can be managed
--   using the serviceAccountKeys resource.
--   
--   <i>See:</i> <a>enterprisesGetServiceAccount</a> smart constructor.
data EnterprisesGetServiceAccount

-- | The type of credential to return with the service account. Required.
egsaKeyType :: Lens' EnterprisesGetServiceAccount (Maybe EnterprisesGetServiceAccountKeyType)

-- | The ID of the enterprise.
egsaEnterpriseId :: Lens' EnterprisesGetServiceAccount Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.GetServiceAccount.EnterprisesGetServiceAccount
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.GetServiceAccount.EnterprisesGetServiceAccount
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.GetServiceAccount.EnterprisesGetServiceAccount
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.GetServiceAccount.EnterprisesGetServiceAccount
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.GetServiceAccount.EnterprisesGetServiceAccount


-- | Returns the store layout for the enterprise. If the store layout has
--   not been set, or if the store layout has no homepageId set, returns a
--   NOT_FOUND error.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.enterprises.getStoreLayout</tt>.
module Network.Google.Resource.AndroidEnterprise.Enterprises.GetStoreLayout

-- | A resource alias for
--   <tt>androidenterprise.enterprises.getStoreLayout</tt> method which the
--   <a>EnterprisesGetStoreLayout</a> request conforms to.
type EnterprisesGetStoreLayoutResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("storeLayout" :> (QueryParam "alt" AltJSON :> Get '[JSON] StoreLayout)))))

-- | Creates a value of <a>EnterprisesGetStoreLayout</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>egslEnterpriseId</a></li>
--   </ul>
enterprisesGetStoreLayout :: Text -> EnterprisesGetStoreLayout

-- | Returns the store layout for the enterprise. If the store layout has
--   not been set, or if the store layout has no homepageId set, returns a
--   NOT_FOUND error.
--   
--   <i>See:</i> <a>enterprisesGetStoreLayout</a> smart constructor.
data EnterprisesGetStoreLayout

-- | The ID of the enterprise.
egslEnterpriseId :: Lens' EnterprisesGetStoreLayout Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.GetStoreLayout.EnterprisesGetStoreLayout
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.GetStoreLayout.EnterprisesGetStoreLayout
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.GetStoreLayout.EnterprisesGetStoreLayout
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.GetStoreLayout.EnterprisesGetStoreLayout
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.GetStoreLayout.EnterprisesGetStoreLayout


-- | Establishes the binding between the EMM and an enterprise. This is now
--   deprecated; use enroll instead.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.enterprises.insert</tt>.
module Network.Google.Resource.AndroidEnterprise.Enterprises.Insert

-- | A resource alias for <tt>androidenterprise.enterprises.insert</tt>
--   method which the <a>EnterprisesInsert</a> request conforms to.
type EnterprisesInsertResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (QueryParam "token" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Enterprise :> Post '[JSON] Enterprise)))))

-- | Creates a value of <a>EnterprisesInsert</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eiToken</a></li>
--   <li><a>eiPayload</a></li>
--   </ul>
enterprisesInsert :: Text -> Enterprise -> EnterprisesInsert

-- | Establishes the binding between the EMM and an enterprise. This is now
--   deprecated; use enroll instead.
--   
--   <i>See:</i> <a>enterprisesInsert</a> smart constructor.
data EnterprisesInsert

-- | The token provided by the enterprise to register the EMM.
eiToken :: Lens' EnterprisesInsert Text

-- | Multipart request metadata.
eiPayload :: Lens' EnterprisesInsert Enterprise
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.Insert.EnterprisesInsert
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.Insert.EnterprisesInsert
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.Insert.EnterprisesInsert
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.Insert.EnterprisesInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.Insert.EnterprisesInsert


-- | Looks up an enterprise by domain name. This is only supported for
--   enterprises created via the Google-initiated creation flow. Lookup of
--   the id is not needed for enterprises created via the EMM-initiated
--   flow since the EMM learns the enterprise ID in the callback specified
--   in the Enterprises.generateSignupUrl call.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.enterprises.list</tt>.
module Network.Google.Resource.AndroidEnterprise.Enterprises.List

-- | A resource alias for <tt>androidenterprise.enterprises.list</tt>
--   method which the <a>EnterprisesList</a> request conforms to.
type EnterprisesListResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (QueryParam "domain" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] EnterprisesListResponse))))

-- | Creates a value of <a>EnterprisesList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>elDomain</a></li>
--   </ul>
enterprisesList :: Text -> EnterprisesList

-- | Looks up an enterprise by domain name. This is only supported for
--   enterprises created via the Google-initiated creation flow. Lookup of
--   the id is not needed for enterprises created via the EMM-initiated
--   flow since the EMM learns the enterprise ID in the callback specified
--   in the Enterprises.generateSignupUrl call.
--   
--   <i>See:</i> <a>enterprisesList</a> smart constructor.
data EnterprisesList

-- | The exact primary domain name of the enterprise to look up.
elDomain :: Lens' EnterprisesList Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.List.EnterprisesList
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.List.EnterprisesList
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.List.EnterprisesList
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.List.EnterprisesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.List.EnterprisesList


-- | Pulls and returns a notification set for the enterprises associated
--   with the service account authenticated for the request. The
--   notification set may be empty if no notification are pending. A
--   notification set returned needs to be acknowledged within 20 seconds
--   by calling Enterprises​.AcknowledgeNotificationSet, unless the
--   notification set is empty. Notifications that are not acknowledged
--   within the 20 seconds will eventually be included again in the
--   response to another PullNotificationSet request, and those that are
--   never acknowledged will ultimately be deleted according to the Google
--   Cloud Platform Pub/Sub system policy. Multiple requests might be
--   performed concurrently to retrieve notifications, in which case the
--   pending notifications (if any) will be split among each caller, if any
--   are pending. If no notifications are present, an empty notification
--   list is returned. Subsequent requests may return more notifications
--   once they become available.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.enterprises.pullNotificationSet</tt>.
module Network.Google.Resource.AndroidEnterprise.Enterprises.PullNotificationSet

-- | A resource alias for
--   <tt>androidenterprise.enterprises.pullNotificationSet</tt> method
--   which the <a>EnterprisesPullNotificationSet</a> request conforms to.
type EnterprisesPullNotificationSetResource = "androidenterprise" :> ("v1" :> ("enterprises" :> ("pullNotificationSet" :> (QueryParam "requestMode" EnterprisesPullNotificationSetRequestMode :> (QueryParam "alt" AltJSON :> Post '[JSON] NotificationSet)))))

-- | Creates a value of <a>EnterprisesPullNotificationSet</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>epnsRequestMode</a></li>
--   </ul>
enterprisesPullNotificationSet :: EnterprisesPullNotificationSet

-- | Pulls and returns a notification set for the enterprises associated
--   with the service account authenticated for the request. The
--   notification set may be empty if no notification are pending. A
--   notification set returned needs to be acknowledged within 20 seconds
--   by calling Enterprises​.AcknowledgeNotificationSet, unless the
--   notification set is empty. Notifications that are not acknowledged
--   within the 20 seconds will eventually be included again in the
--   response to another PullNotificationSet request, and those that are
--   never acknowledged will ultimately be deleted according to the Google
--   Cloud Platform Pub/Sub system policy. Multiple requests might be
--   performed concurrently to retrieve notifications, in which case the
--   pending notifications (if any) will be split among each caller, if any
--   are pending. If no notifications are present, an empty notification
--   list is returned. Subsequent requests may return more notifications
--   once they become available.
--   
--   <i>See:</i> <a>enterprisesPullNotificationSet</a> smart constructor.
data EnterprisesPullNotificationSet

-- | The request mode for pulling notifications. Specifying
--   waitForNotifications will cause the request to block and wait until
--   one or more notifications are present, or return an empty notification
--   list if no notifications are present after some time. Speciying
--   returnImmediately will cause the request to immediately return the
--   pending notifications, or an empty list if no notifications are
--   present. If omitted, defaults to waitForNotifications.
epnsRequestMode :: Lens' EnterprisesPullNotificationSet (Maybe EnterprisesPullNotificationSetRequestMode)
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.PullNotificationSet.EnterprisesPullNotificationSet
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.PullNotificationSet.EnterprisesPullNotificationSet
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.PullNotificationSet.EnterprisesPullNotificationSet
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.PullNotificationSet.EnterprisesPullNotificationSet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.PullNotificationSet.EnterprisesPullNotificationSet


-- | Sends a test push notification to validate the EMM integration with
--   the Google Cloud Pub/Sub service for this enterprise.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.enterprises.sendTestPushNotification</tt>.
module Network.Google.Resource.AndroidEnterprise.Enterprises.SendTestPushNotification

-- | A resource alias for
--   <tt>androidenterprise.enterprises.sendTestPushNotification</tt> method
--   which the <a>EnterprisesSendTestPushNotification</a> request conforms
--   to.
type EnterprisesSendTestPushNotificationResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("sendTestPushNotification" :> (QueryParam "alt" AltJSON :> Post '[JSON] EnterprisesSendTestPushNotificationResponse)))))

-- | Creates a value of <a>EnterprisesSendTestPushNotification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>estpnEnterpriseId</a></li>
--   </ul>
enterprisesSendTestPushNotification :: Text -> EnterprisesSendTestPushNotification

-- | Sends a test push notification to validate the EMM integration with
--   the Google Cloud Pub/Sub service for this enterprise.
--   
--   <i>See:</i> <a>enterprisesSendTestPushNotification</a> smart
--   constructor.
data EnterprisesSendTestPushNotification

-- | The ID of the enterprise.
estpnEnterpriseId :: Lens' EnterprisesSendTestPushNotification Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.SendTestPushNotification.EnterprisesSendTestPushNotification
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.SendTestPushNotification.EnterprisesSendTestPushNotification
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.SendTestPushNotification.EnterprisesSendTestPushNotification
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.SendTestPushNotification.EnterprisesSendTestPushNotification
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.SendTestPushNotification.EnterprisesSendTestPushNotification


-- | Set the account that will be used to authenticate to the API as the
--   enterprise.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.enterprises.setAccount</tt>.
module Network.Google.Resource.AndroidEnterprise.Enterprises.SetAccount

-- | A resource alias for <tt>androidenterprise.enterprises.setAccount</tt>
--   method which the <a>EnterprisesSetAccount</a> request conforms to.
type EnterprisesSetAccountResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("account" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] EnterpriseAccount :> Put '[JSON] EnterpriseAccount))))))

-- | Creates a value of <a>EnterprisesSetAccount</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>esaEnterpriseId</a></li>
--   <li><a>esaPayload</a></li>
--   </ul>
enterprisesSetAccount :: Text -> EnterpriseAccount -> EnterprisesSetAccount

-- | Set the account that will be used to authenticate to the API as the
--   enterprise.
--   
--   <i>See:</i> <a>enterprisesSetAccount</a> smart constructor.
data EnterprisesSetAccount

-- | The ID of the enterprise.
esaEnterpriseId :: Lens' EnterprisesSetAccount Text

-- | Multipart request metadata.
esaPayload :: Lens' EnterprisesSetAccount EnterpriseAccount
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.SetAccount.EnterprisesSetAccount
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.SetAccount.EnterprisesSetAccount
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.SetAccount.EnterprisesSetAccount
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.SetAccount.EnterprisesSetAccount
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.SetAccount.EnterprisesSetAccount


-- | Sets the store layout for the enterprise. By default, storeLayoutType
--   is set to "basic" and the basic store layout is enabled. The basic
--   layout only contains apps approved by the admin, and that have been
--   added to the available product set for a user (using the
--   setAvailableProductSet call). Apps on the page are sorted in order of
--   their product ID value. If you create a custom store layout (by
--   setting storeLayoutType = "custom"), the basic store layout is
--   disabled.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.enterprises.setStoreLayout</tt>.
module Network.Google.Resource.AndroidEnterprise.Enterprises.SetStoreLayout

-- | A resource alias for
--   <tt>androidenterprise.enterprises.setStoreLayout</tt> method which the
--   <a>EnterprisesSetStoreLayout</a> request conforms to.
type EnterprisesSetStoreLayoutResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("storeLayout" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] StoreLayout :> Put '[JSON] StoreLayout))))))

-- | Creates a value of <a>EnterprisesSetStoreLayout</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>esslEnterpriseId</a></li>
--   <li><a>esslPayload</a></li>
--   </ul>
enterprisesSetStoreLayout :: Text -> StoreLayout -> EnterprisesSetStoreLayout

-- | Sets the store layout for the enterprise. By default, storeLayoutType
--   is set to "basic" and the basic store layout is enabled. The basic
--   layout only contains apps approved by the admin, and that have been
--   added to the available product set for a user (using the
--   setAvailableProductSet call). Apps on the page are sorted in order of
--   their product ID value. If you create a custom store layout (by
--   setting storeLayoutType = "custom"), the basic store layout is
--   disabled.
--   
--   <i>See:</i> <a>enterprisesSetStoreLayout</a> smart constructor.
data EnterprisesSetStoreLayout

-- | The ID of the enterprise.
esslEnterpriseId :: Lens' EnterprisesSetStoreLayout Text

-- | Multipart request metadata.
esslPayload :: Lens' EnterprisesSetStoreLayout StoreLayout
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.SetStoreLayout.EnterprisesSetStoreLayout
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.SetStoreLayout.EnterprisesSetStoreLayout
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.SetStoreLayout.EnterprisesSetStoreLayout
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.SetStoreLayout.EnterprisesSetStoreLayout
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.SetStoreLayout.EnterprisesSetStoreLayout


-- | Unenrolls an enterprise from the calling EMM.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.enterprises.unenroll</tt>.
module Network.Google.Resource.AndroidEnterprise.Enterprises.Unenroll

-- | A resource alias for <tt>androidenterprise.enterprises.unenroll</tt>
--   method which the <a>EnterprisesUnenroll</a> request conforms to.
type EnterprisesUnenrollResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("unenroll" :> (QueryParam "alt" AltJSON :> Post '[JSON] ())))))

-- | Creates a value of <a>EnterprisesUnenroll</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>euuEnterpriseId</a></li>
--   </ul>
enterprisesUnenroll :: Text -> EnterprisesUnenroll

-- | Unenrolls an enterprise from the calling EMM.
--   
--   <i>See:</i> <a>enterprisesUnenroll</a> smart constructor.
data EnterprisesUnenroll

-- | The ID of the enterprise.
euuEnterpriseId :: Lens' EnterprisesUnenroll Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Enterprises.Unenroll.EnterprisesUnenroll
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Enterprises.Unenroll.EnterprisesUnenroll
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Enterprises.Unenroll.EnterprisesUnenroll
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Enterprises.Unenroll.EnterprisesUnenroll
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Enterprises.Unenroll.EnterprisesUnenroll


-- | Removes an entitlement to an app for a user and uninstalls it.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.entitlements.delete</tt>.
module Network.Google.Resource.AndroidEnterprise.Entitlements.Delete

-- | A resource alias for <tt>androidenterprise.entitlements.delete</tt>
--   method which the <a>EntitlementsDelete</a> request conforms to.
type EntitlementsDeleteResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("entitlements" :> (Capture "entitlementId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))))

-- | Creates a value of <a>EntitlementsDelete</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>entEntitlementId</a></li>
--   <li><a>entEnterpriseId</a></li>
--   <li><a>entUserId</a></li>
--   </ul>
entitlementsDelete :: Text -> Text -> Text -> EntitlementsDelete

-- | Removes an entitlement to an app for a user and uninstalls it.
--   
--   <i>See:</i> <a>entitlementsDelete</a> smart constructor.
data EntitlementsDelete

-- | The ID of the entitlement (a product ID), e.g.
--   "app:com.google.android.gm".
entEntitlementId :: Lens' EntitlementsDelete Text

-- | The ID of the enterprise.
entEnterpriseId :: Lens' EntitlementsDelete Text

-- | The ID of the user.
entUserId :: Lens' EntitlementsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Entitlements.Delete.EntitlementsDelete
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Entitlements.Delete.EntitlementsDelete
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Entitlements.Delete.EntitlementsDelete
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Entitlements.Delete.EntitlementsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Entitlements.Delete.EntitlementsDelete


-- | Retrieves details of an entitlement.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.entitlements.get</tt>.
module Network.Google.Resource.AndroidEnterprise.Entitlements.Get

-- | A resource alias for <tt>androidenterprise.entitlements.get</tt>
--   method which the <a>EntitlementsGet</a> request conforms to.
type EntitlementsGetResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("entitlements" :> (Capture "entitlementId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Entitlement))))))))

-- | Creates a value of <a>EntitlementsGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>egEntitlementId</a></li>
--   <li><a>egEnterpriseId</a></li>
--   <li><a>egUserId</a></li>
--   </ul>
entitlementsGet :: Text -> Text -> Text -> EntitlementsGet

-- | Retrieves details of an entitlement.
--   
--   <i>See:</i> <a>entitlementsGet</a> smart constructor.
data EntitlementsGet

-- | The ID of the entitlement (a product ID), e.g.
--   "app:com.google.android.gm".
egEntitlementId :: Lens' EntitlementsGet Text

-- | The ID of the enterprise.
egEnterpriseId :: Lens' EntitlementsGet Text

-- | The ID of the user.
egUserId :: Lens' EntitlementsGet Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Entitlements.Get.EntitlementsGet
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Entitlements.Get.EntitlementsGet
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Entitlements.Get.EntitlementsGet
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Entitlements.Get.EntitlementsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Entitlements.Get.EntitlementsGet


-- | List of all entitlements for the specified user. Only the ID is set.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.entitlements.list</tt>.
module Network.Google.Resource.AndroidEnterprise.Entitlements.List

-- | A resource alias for <tt>androidenterprise.entitlements.list</tt>
--   method which the <a>EntitlementsList</a> request conforms to.
type EntitlementsListResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("entitlements" :> (QueryParam "alt" AltJSON :> Get '[JSON] EntitlementsListResponse)))))))

-- | Creates a value of <a>EntitlementsList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>elEnterpriseId</a></li>
--   <li><a>elUserId</a></li>
--   </ul>
entitlementsList :: Text -> Text -> EntitlementsList

-- | List of all entitlements for the specified user. Only the ID is set.
--   
--   <i>See:</i> <a>entitlementsList</a> smart constructor.
data EntitlementsList

-- | The ID of the enterprise.
elEnterpriseId :: Lens' EntitlementsList Text

-- | The ID of the user.
elUserId :: Lens' EntitlementsList Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Entitlements.List.EntitlementsList
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Entitlements.List.EntitlementsList
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Entitlements.List.EntitlementsList
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Entitlements.List.EntitlementsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Entitlements.List.EntitlementsList


-- | Adds or updates an entitlement to an app for a user. This method
--   supports patch semantics.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.entitlements.patch</tt>.
module Network.Google.Resource.AndroidEnterprise.Entitlements.Patch

-- | A resource alias for <tt>androidenterprise.entitlements.patch</tt>
--   method which the <a>EntitlementsPatch</a> request conforms to.
type EntitlementsPatchResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("entitlements" :> (Capture "entitlementId" Text :> (QueryParam "install" Bool :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Entitlement :> Patch '[JSON] Entitlement))))))))))

-- | Creates a value of <a>EntitlementsPatch</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>epEntitlementId</a></li>
--   <li><a>epEnterpriseId</a></li>
--   <li><a>epPayload</a></li>
--   <li><a>epInstall</a></li>
--   <li><a>epUserId</a></li>
--   </ul>
entitlementsPatch :: Text -> Text -> Entitlement -> Text -> EntitlementsPatch

-- | Adds or updates an entitlement to an app for a user. This method
--   supports patch semantics.
--   
--   <i>See:</i> <a>entitlementsPatch</a> smart constructor.
data EntitlementsPatch

-- | The ID of the entitlement (a product ID), e.g.
--   "app:com.google.android.gm".
epEntitlementId :: Lens' EntitlementsPatch Text

-- | The ID of the enterprise.
epEnterpriseId :: Lens' EntitlementsPatch Text

-- | Multipart request metadata.
epPayload :: Lens' EntitlementsPatch Entitlement

-- | Set to true to also install the product on all the user's devices
--   where possible. Failure to install on one or more devices will not
--   prevent this operation from returning successfully, as long as the
--   entitlement was successfully assigned to the user.
epInstall :: Lens' EntitlementsPatch (Maybe Bool)

-- | The ID of the user.
epUserId :: Lens' EntitlementsPatch Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Entitlements.Patch.EntitlementsPatch
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Entitlements.Patch.EntitlementsPatch
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Entitlements.Patch.EntitlementsPatch
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Entitlements.Patch.EntitlementsPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Entitlements.Patch.EntitlementsPatch


-- | Adds or updates an entitlement to an app for a user.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.entitlements.update</tt>.
module Network.Google.Resource.AndroidEnterprise.Entitlements.Update

-- | A resource alias for <tt>androidenterprise.entitlements.update</tt>
--   method which the <a>EntitlementsUpdate</a> request conforms to.
type EntitlementsUpdateResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("entitlements" :> (Capture "entitlementId" Text :> (QueryParam "install" Bool :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Entitlement :> Put '[JSON] Entitlement))))))))))

-- | Creates a value of <a>EntitlementsUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>euEntitlementId</a></li>
--   <li><a>euEnterpriseId</a></li>
--   <li><a>euPayload</a></li>
--   <li><a>euInstall</a></li>
--   <li><a>euUserId</a></li>
--   </ul>
entitlementsUpdate :: Text -> Text -> Entitlement -> Text -> EntitlementsUpdate

-- | Adds or updates an entitlement to an app for a user.
--   
--   <i>See:</i> <a>entitlementsUpdate</a> smart constructor.
data EntitlementsUpdate

-- | The ID of the entitlement (a product ID), e.g.
--   "app:com.google.android.gm".
euEntitlementId :: Lens' EntitlementsUpdate Text

-- | The ID of the enterprise.
euEnterpriseId :: Lens' EntitlementsUpdate Text

-- | Multipart request metadata.
euPayload :: Lens' EntitlementsUpdate Entitlement

-- | Set to true to also install the product on all the user's devices
--   where possible. Failure to install on one or more devices will not
--   prevent this operation from returning successfully, as long as the
--   entitlement was successfully assigned to the user.
euInstall :: Lens' EntitlementsUpdate (Maybe Bool)

-- | The ID of the user.
euUserId :: Lens' EntitlementsUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Entitlements.Update.EntitlementsUpdate
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Entitlements.Update.EntitlementsUpdate
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Entitlements.Update.EntitlementsUpdate
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Entitlements.Update.EntitlementsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Entitlements.Update.EntitlementsUpdate


-- | Retrieves the IDs of the users who have been granted entitlements
--   under the license.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.grouplicenseusers.list</tt>.
module Network.Google.Resource.AndroidEnterprise.GrouplicenseUsers.List

-- | A resource alias for <tt>androidenterprise.grouplicenseusers.list</tt>
--   method which the <a>GrouplicenseUsersList</a> request conforms to.
type GrouplicenseUsersListResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("groupLicenses" :> (Capture "groupLicenseId" Text :> ("users" :> (QueryParam "alt" AltJSON :> Get '[JSON] GroupLicenseUsersListResponse)))))))

-- | Creates a value of <a>GrouplicenseUsersList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gulEnterpriseId</a></li>
--   <li><a>gulGroupLicenseId</a></li>
--   </ul>
grouplicenseUsersList :: Text -> Text -> GrouplicenseUsersList

-- | Retrieves the IDs of the users who have been granted entitlements
--   under the license.
--   
--   <i>See:</i> <a>grouplicenseUsersList</a> smart constructor.
data GrouplicenseUsersList

-- | The ID of the enterprise.
gulEnterpriseId :: Lens' GrouplicenseUsersList Text

-- | The ID of the product the group license is for, e.g.
--   "app:com.google.android.gm".
gulGroupLicenseId :: Lens' GrouplicenseUsersList Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.GrouplicenseUsers.List.GrouplicenseUsersList
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.GrouplicenseUsers.List.GrouplicenseUsersList
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.GrouplicenseUsers.List.GrouplicenseUsersList
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.GrouplicenseUsers.List.GrouplicenseUsersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.GrouplicenseUsers.List.GrouplicenseUsersList


-- | Retrieves details of an enterprise's group license for a product.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.grouplicenses.get</tt>.
module Network.Google.Resource.AndroidEnterprise.Grouplicenses.Get

-- | A resource alias for <tt>androidenterprise.grouplicenses.get</tt>
--   method which the <a>GrouplicensesGet</a> request conforms to.
type GrouplicensesGetResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("groupLicenses" :> (Capture "groupLicenseId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] GroupLicense))))))

-- | Creates a value of <a>GrouplicensesGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ggEnterpriseId</a></li>
--   <li><a>ggGroupLicenseId</a></li>
--   </ul>
grouplicensesGet :: Text -> Text -> GrouplicensesGet

-- | Retrieves details of an enterprise's group license for a product.
--   
--   <i>See:</i> <a>grouplicensesGet</a> smart constructor.
data GrouplicensesGet

-- | The ID of the enterprise.
ggEnterpriseId :: Lens' GrouplicensesGet Text

-- | The ID of the product the group license is for, e.g.
--   "app:com.google.android.gm".
ggGroupLicenseId :: Lens' GrouplicensesGet Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Grouplicenses.Get.GrouplicensesGet
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Grouplicenses.Get.GrouplicensesGet
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Grouplicenses.Get.GrouplicensesGet
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Grouplicenses.Get.GrouplicensesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Grouplicenses.Get.GrouplicensesGet


-- | Retrieves IDs of all products for which the enterprise has a group
--   license.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.grouplicenses.list</tt>.
module Network.Google.Resource.AndroidEnterprise.Grouplicenses.List

-- | A resource alias for <tt>androidenterprise.grouplicenses.list</tt>
--   method which the <a>GrouplicensesList</a> request conforms to.
type GrouplicensesListResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("groupLicenses" :> (QueryParam "alt" AltJSON :> Get '[JSON] GroupLicensesListResponse)))))

-- | Creates a value of <a>GrouplicensesList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>glEnterpriseId</a></li>
--   </ul>
grouplicensesList :: Text -> GrouplicensesList

-- | Retrieves IDs of all products for which the enterprise has a group
--   license.
--   
--   <i>See:</i> <a>grouplicensesList</a> smart constructor.
data GrouplicensesList

-- | The ID of the enterprise.
glEnterpriseId :: Lens' GrouplicensesList Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Grouplicenses.List.GrouplicensesList
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Grouplicenses.List.GrouplicensesList
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Grouplicenses.List.GrouplicensesList
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Grouplicenses.List.GrouplicensesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Grouplicenses.List.GrouplicensesList


-- | Requests to remove an app from a device. A call to get or list will
--   still show the app as installed on the device until it is actually
--   removed.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.installs.delete</tt>.
module Network.Google.Resource.AndroidEnterprise.Installs.Delete

-- | A resource alias for <tt>androidenterprise.installs.delete</tt> method
--   which the <a>InstallsDelete</a> request conforms to.
type InstallsDeleteResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("devices" :> (Capture "deviceId" Text :> ("installs" :> (Capture "installId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))))))

-- | Creates a value of <a>InstallsDelete</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>idEnterpriseId</a></li>
--   <li><a>idUserId</a></li>
--   <li><a>idInstallId</a></li>
--   <li><a>idDeviceId</a></li>
--   </ul>
installsDelete :: Text -> Text -> Text -> Text -> InstallsDelete

-- | Requests to remove an app from a device. A call to get or list will
--   still show the app as installed on the device until it is actually
--   removed.
--   
--   <i>See:</i> <a>installsDelete</a> smart constructor.
data InstallsDelete

-- | The ID of the enterprise.
idEnterpriseId :: Lens' InstallsDelete Text

-- | The ID of the user.
idUserId :: Lens' InstallsDelete Text

-- | The ID of the product represented by the install, e.g.
--   "app:com.google.android.gm".
idInstallId :: Lens' InstallsDelete Text

-- | The Android ID of the device.
idDeviceId :: Lens' InstallsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Installs.Delete.InstallsDelete
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Installs.Delete.InstallsDelete
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Installs.Delete.InstallsDelete
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Installs.Delete.InstallsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Installs.Delete.InstallsDelete


-- | Retrieves details of an installation of an app on a device.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.installs.get</tt>.
module Network.Google.Resource.AndroidEnterprise.Installs.Get

-- | A resource alias for <tt>androidenterprise.installs.get</tt> method
--   which the <a>InstallsGet</a> request conforms to.
type InstallsGetResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("devices" :> (Capture "deviceId" Text :> ("installs" :> (Capture "installId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Install))))))))))

-- | Creates a value of <a>InstallsGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>igEnterpriseId</a></li>
--   <li><a>igUserId</a></li>
--   <li><a>igInstallId</a></li>
--   <li><a>igDeviceId</a></li>
--   </ul>
installsGet :: Text -> Text -> Text -> Text -> InstallsGet

-- | Retrieves details of an installation of an app on a device.
--   
--   <i>See:</i> <a>installsGet</a> smart constructor.
data InstallsGet

-- | The ID of the enterprise.
igEnterpriseId :: Lens' InstallsGet Text

-- | The ID of the user.
igUserId :: Lens' InstallsGet Text

-- | The ID of the product represented by the install, e.g.
--   "app:com.google.android.gm".
igInstallId :: Lens' InstallsGet Text

-- | The Android ID of the device.
igDeviceId :: Lens' InstallsGet Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Installs.Get.InstallsGet
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Installs.Get.InstallsGet
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Installs.Get.InstallsGet
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Installs.Get.InstallsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Installs.Get.InstallsGet


-- | Retrieves the details of all apps installed on the specified device.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.installs.list</tt>.
module Network.Google.Resource.AndroidEnterprise.Installs.List

-- | A resource alias for <tt>androidenterprise.installs.list</tt> method
--   which the <a>InstallsList</a> request conforms to.
type InstallsListResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("devices" :> (Capture "deviceId" Text :> ("installs" :> (QueryParam "alt" AltJSON :> Get '[JSON] InstallsListResponse)))))))))

-- | Creates a value of <a>InstallsList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ilEnterpriseId</a></li>
--   <li><a>ilUserId</a></li>
--   <li><a>ilDeviceId</a></li>
--   </ul>
installsList :: Text -> Text -> Text -> InstallsList

-- | Retrieves the details of all apps installed on the specified device.
--   
--   <i>See:</i> <a>installsList</a> smart constructor.
data InstallsList

-- | The ID of the enterprise.
ilEnterpriseId :: Lens' InstallsList Text

-- | The ID of the user.
ilUserId :: Lens' InstallsList Text

-- | The Android ID of the device.
ilDeviceId :: Lens' InstallsList Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Installs.List.InstallsList
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Installs.List.InstallsList
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Installs.List.InstallsList
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Installs.List.InstallsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Installs.List.InstallsList


-- | Requests to install the latest version of an app to a device. If the
--   app is already installed then it is updated to the latest version if
--   necessary. This method supports patch semantics.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.installs.patch</tt>.
module Network.Google.Resource.AndroidEnterprise.Installs.Patch

-- | A resource alias for <tt>androidenterprise.installs.patch</tt> method
--   which the <a>InstallsPatch</a> request conforms to.
type InstallsPatchResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("devices" :> (Capture "deviceId" Text :> ("installs" :> (Capture "installId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Install :> Patch '[JSON] Install)))))))))))

-- | Creates a value of <a>InstallsPatch</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ipEnterpriseId</a></li>
--   <li><a>ipPayload</a></li>
--   <li><a>ipUserId</a></li>
--   <li><a>ipInstallId</a></li>
--   <li><a>ipDeviceId</a></li>
--   </ul>
installsPatch :: Text -> Install -> Text -> Text -> Text -> InstallsPatch

-- | Requests to install the latest version of an app to a device. If the
--   app is already installed then it is updated to the latest version if
--   necessary. This method supports patch semantics.
--   
--   <i>See:</i> <a>installsPatch</a> smart constructor.
data InstallsPatch

-- | The ID of the enterprise.
ipEnterpriseId :: Lens' InstallsPatch Text

-- | Multipart request metadata.
ipPayload :: Lens' InstallsPatch Install

-- | The ID of the user.
ipUserId :: Lens' InstallsPatch Text

-- | The ID of the product represented by the install, e.g.
--   "app:com.google.android.gm".
ipInstallId :: Lens' InstallsPatch Text

-- | The Android ID of the device.
ipDeviceId :: Lens' InstallsPatch Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Installs.Patch.InstallsPatch
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Installs.Patch.InstallsPatch
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Installs.Patch.InstallsPatch
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Installs.Patch.InstallsPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Installs.Patch.InstallsPatch


-- | Requests to install the latest version of an app to a device. If the
--   app is already installed then it is updated to the latest version if
--   necessary.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.installs.update</tt>.
module Network.Google.Resource.AndroidEnterprise.Installs.Update

-- | A resource alias for <tt>androidenterprise.installs.update</tt> method
--   which the <a>InstallsUpdate</a> request conforms to.
type InstallsUpdateResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("devices" :> (Capture "deviceId" Text :> ("installs" :> (Capture "installId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Install :> Put '[JSON] Install)))))))))))

-- | Creates a value of <a>InstallsUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iuEnterpriseId</a></li>
--   <li><a>iuPayload</a></li>
--   <li><a>iuUserId</a></li>
--   <li><a>iuInstallId</a></li>
--   <li><a>iuDeviceId</a></li>
--   </ul>
installsUpdate :: Text -> Install -> Text -> Text -> Text -> InstallsUpdate

-- | Requests to install the latest version of an app to a device. If the
--   app is already installed then it is updated to the latest version if
--   necessary.
--   
--   <i>See:</i> <a>installsUpdate</a> smart constructor.
data InstallsUpdate

-- | The ID of the enterprise.
iuEnterpriseId :: Lens' InstallsUpdate Text

-- | Multipart request metadata.
iuPayload :: Lens' InstallsUpdate Install

-- | The ID of the user.
iuUserId :: Lens' InstallsUpdate Text

-- | The ID of the product represented by the install, e.g.
--   "app:com.google.android.gm".
iuInstallId :: Lens' InstallsUpdate Text

-- | The Android ID of the device.
iuDeviceId :: Lens' InstallsUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Installs.Update.InstallsUpdate
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Installs.Update.InstallsUpdate
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Installs.Update.InstallsUpdate
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Installs.Update.InstallsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Installs.Update.InstallsUpdate


-- | Removes a per-device managed configuration for an app for the
--   specified device.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.managedconfigurationsfordevice.delete</tt>.
module Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Delete

-- | A resource alias for
--   <tt>androidenterprise.managedconfigurationsfordevice.delete</tt>
--   method which the <a>ManagedConfigurationsforDeviceDelete</a> request
--   conforms to.
type ManagedConfigurationsforDeviceDeleteResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("devices" :> (Capture "deviceId" Text :> ("managedConfigurationsForDevice" :> (Capture "managedConfigurationForDeviceId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))))))

-- | Creates a value of <a>ManagedConfigurationsforDeviceDelete</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcddEnterpriseId</a></li>
--   <li><a>mcddUserId</a></li>
--   <li><a>mcddDeviceId</a></li>
--   <li><a>mcddManagedConfigurationForDeviceId</a></li>
--   </ul>
managedConfigurationsforDeviceDelete :: Text -> Text -> Text -> Text -> ManagedConfigurationsforDeviceDelete

-- | Removes a per-device managed configuration for an app for the
--   specified device.
--   
--   <i>See:</i> <a>managedConfigurationsforDeviceDelete</a> smart
--   constructor.
data ManagedConfigurationsforDeviceDelete

-- | The ID of the enterprise.
mcddEnterpriseId :: Lens' ManagedConfigurationsforDeviceDelete Text

-- | The ID of the user.
mcddUserId :: Lens' ManagedConfigurationsforDeviceDelete Text

-- | The Android ID of the device.
mcddDeviceId :: Lens' ManagedConfigurationsforDeviceDelete Text

-- | The ID of the managed configuration (a product ID), e.g.
--   "app:com.google.android.gm".
mcddManagedConfigurationForDeviceId :: Lens' ManagedConfigurationsforDeviceDelete Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Delete.ManagedConfigurationsforDeviceDelete
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Delete.ManagedConfigurationsforDeviceDelete
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Delete.ManagedConfigurationsforDeviceDelete
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Delete.ManagedConfigurationsforDeviceDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Delete.ManagedConfigurationsforDeviceDelete


-- | Retrieves details of a per-device managed configuration.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.managedconfigurationsfordevice.get</tt>.
module Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Get

-- | A resource alias for
--   <tt>androidenterprise.managedconfigurationsfordevice.get</tt> method
--   which the <a>ManagedConfigurationsforDeviceGet</a> request conforms
--   to.
type ManagedConfigurationsforDeviceGetResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("devices" :> (Capture "deviceId" Text :> ("managedConfigurationsForDevice" :> (Capture "managedConfigurationForDeviceId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ManagedConfiguration))))))))))

-- | Creates a value of <a>ManagedConfigurationsforDeviceGet</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcdgEnterpriseId</a></li>
--   <li><a>mcdgUserId</a></li>
--   <li><a>mcdgDeviceId</a></li>
--   <li><a>mcdgManagedConfigurationForDeviceId</a></li>
--   </ul>
managedConfigurationsforDeviceGet :: Text -> Text -> Text -> Text -> ManagedConfigurationsforDeviceGet

-- | Retrieves details of a per-device managed configuration.
--   
--   <i>See:</i> <a>managedConfigurationsforDeviceGet</a> smart
--   constructor.
data ManagedConfigurationsforDeviceGet

-- | The ID of the enterprise.
mcdgEnterpriseId :: Lens' ManagedConfigurationsforDeviceGet Text

-- | The ID of the user.
mcdgUserId :: Lens' ManagedConfigurationsforDeviceGet Text

-- | The Android ID of the device.
mcdgDeviceId :: Lens' ManagedConfigurationsforDeviceGet Text

-- | The ID of the managed configuration (a product ID), e.g.
--   "app:com.google.android.gm".
mcdgManagedConfigurationForDeviceId :: Lens' ManagedConfigurationsforDeviceGet Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Get.ManagedConfigurationsforDeviceGet
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Get.ManagedConfigurationsforDeviceGet
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Get.ManagedConfigurationsforDeviceGet
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Get.ManagedConfigurationsforDeviceGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Get.ManagedConfigurationsforDeviceGet


-- | Lists all the per-device managed configurations for the specified
--   device. Only the ID is set.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.managedconfigurationsfordevice.list</tt>.
module Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.List

-- | A resource alias for
--   <tt>androidenterprise.managedconfigurationsfordevice.list</tt> method
--   which the <a>ManagedConfigurationsforDeviceList</a> request conforms
--   to.
type ManagedConfigurationsforDeviceListResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("devices" :> (Capture "deviceId" Text :> ("managedConfigurationsForDevice" :> (QueryParam "alt" AltJSON :> Get '[JSON] ManagedConfigurationsForDeviceListResponse)))))))))

-- | Creates a value of <a>ManagedConfigurationsforDeviceList</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcdlEnterpriseId</a></li>
--   <li><a>mcdlUserId</a></li>
--   <li><a>mcdlDeviceId</a></li>
--   </ul>
managedConfigurationsforDeviceList :: Text -> Text -> Text -> ManagedConfigurationsforDeviceList

-- | Lists all the per-device managed configurations for the specified
--   device. Only the ID is set.
--   
--   <i>See:</i> <a>managedConfigurationsforDeviceList</a> smart
--   constructor.
data ManagedConfigurationsforDeviceList

-- | The ID of the enterprise.
mcdlEnterpriseId :: Lens' ManagedConfigurationsforDeviceList Text

-- | The ID of the user.
mcdlUserId :: Lens' ManagedConfigurationsforDeviceList Text

-- | The Android ID of the device.
mcdlDeviceId :: Lens' ManagedConfigurationsforDeviceList Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.List.ManagedConfigurationsforDeviceList
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.List.ManagedConfigurationsforDeviceList
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.List.ManagedConfigurationsforDeviceList
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.List.ManagedConfigurationsforDeviceList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.List.ManagedConfigurationsforDeviceList


-- | Adds or updates a per-device managed configuration for an app for the
--   specified device. This method supports patch semantics.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.managedconfigurationsfordevice.patch</tt>.
module Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Patch

-- | A resource alias for
--   <tt>androidenterprise.managedconfigurationsfordevice.patch</tt> method
--   which the <a>ManagedConfigurationsforDevicePatch</a> request conforms
--   to.
type ManagedConfigurationsforDevicePatchResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("devices" :> (Capture "deviceId" Text :> ("managedConfigurationsForDevice" :> (Capture "managedConfigurationForDeviceId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ManagedConfiguration :> Patch '[JSON] ManagedConfiguration)))))))))))

-- | Creates a value of <a>ManagedConfigurationsforDevicePatch</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcdpEnterpriseId</a></li>
--   <li><a>mcdpPayload</a></li>
--   <li><a>mcdpUserId</a></li>
--   <li><a>mcdpDeviceId</a></li>
--   <li><a>mcdpManagedConfigurationForDeviceId</a></li>
--   </ul>
managedConfigurationsforDevicePatch :: Text -> ManagedConfiguration -> Text -> Text -> Text -> ManagedConfigurationsforDevicePatch

-- | Adds or updates a per-device managed configuration for an app for the
--   specified device. This method supports patch semantics.
--   
--   <i>See:</i> <a>managedConfigurationsforDevicePatch</a> smart
--   constructor.
data ManagedConfigurationsforDevicePatch

-- | The ID of the enterprise.
mcdpEnterpriseId :: Lens' ManagedConfigurationsforDevicePatch Text

-- | Multipart request metadata.
mcdpPayload :: Lens' ManagedConfigurationsforDevicePatch ManagedConfiguration

-- | The ID of the user.
mcdpUserId :: Lens' ManagedConfigurationsforDevicePatch Text

-- | The Android ID of the device.
mcdpDeviceId :: Lens' ManagedConfigurationsforDevicePatch Text

-- | The ID of the managed configuration (a product ID), e.g.
--   "app:com.google.android.gm".
mcdpManagedConfigurationForDeviceId :: Lens' ManagedConfigurationsforDevicePatch Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Patch.ManagedConfigurationsforDevicePatch
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Patch.ManagedConfigurationsforDevicePatch
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Patch.ManagedConfigurationsforDevicePatch
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Patch.ManagedConfigurationsforDevicePatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Patch.ManagedConfigurationsforDevicePatch


-- | Adds or updates a per-device managed configuration for an app for the
--   specified device.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.managedconfigurationsfordevice.update</tt>.
module Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Update

-- | A resource alias for
--   <tt>androidenterprise.managedconfigurationsfordevice.update</tt>
--   method which the <a>ManagedConfigurationsforDeviceUpdate</a> request
--   conforms to.
type ManagedConfigurationsforDeviceUpdateResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("devices" :> (Capture "deviceId" Text :> ("managedConfigurationsForDevice" :> (Capture "managedConfigurationForDeviceId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ManagedConfiguration :> Put '[JSON] ManagedConfiguration)))))))))))

-- | Creates a value of <a>ManagedConfigurationsforDeviceUpdate</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcduEnterpriseId</a></li>
--   <li><a>mcduPayload</a></li>
--   <li><a>mcduUserId</a></li>
--   <li><a>mcduDeviceId</a></li>
--   <li><a>mcduManagedConfigurationForDeviceId</a></li>
--   </ul>
managedConfigurationsforDeviceUpdate :: Text -> ManagedConfiguration -> Text -> Text -> Text -> ManagedConfigurationsforDeviceUpdate

-- | Adds or updates a per-device managed configuration for an app for the
--   specified device.
--   
--   <i>See:</i> <a>managedConfigurationsforDeviceUpdate</a> smart
--   constructor.
data ManagedConfigurationsforDeviceUpdate

-- | The ID of the enterprise.
mcduEnterpriseId :: Lens' ManagedConfigurationsforDeviceUpdate Text

-- | Multipart request metadata.
mcduPayload :: Lens' ManagedConfigurationsforDeviceUpdate ManagedConfiguration

-- | The ID of the user.
mcduUserId :: Lens' ManagedConfigurationsforDeviceUpdate Text

-- | The Android ID of the device.
mcduDeviceId :: Lens' ManagedConfigurationsforDeviceUpdate Text

-- | The ID of the managed configuration (a product ID), e.g.
--   "app:com.google.android.gm".
mcduManagedConfigurationForDeviceId :: Lens' ManagedConfigurationsforDeviceUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Update.ManagedConfigurationsforDeviceUpdate
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Update.ManagedConfigurationsforDeviceUpdate
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Update.ManagedConfigurationsforDeviceUpdate
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Update.ManagedConfigurationsforDeviceUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforDevice.Update.ManagedConfigurationsforDeviceUpdate


-- | Removes a per-user managed configuration for an app for the specified
--   user.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.managedconfigurationsforuser.delete</tt>.
module Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Delete

-- | A resource alias for
--   <tt>androidenterprise.managedconfigurationsforuser.delete</tt> method
--   which the <a>ManagedConfigurationsforUserDelete</a> request conforms
--   to.
type ManagedConfigurationsforUserDeleteResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("managedConfigurationsForUser" :> (Capture "managedConfigurationForUserId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))))

-- | Creates a value of <a>ManagedConfigurationsforUserDelete</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcudEnterpriseId</a></li>
--   <li><a>mcudUserId</a></li>
--   <li><a>mcudManagedConfigurationForUserId</a></li>
--   </ul>
managedConfigurationsforUserDelete :: Text -> Text -> Text -> ManagedConfigurationsforUserDelete

-- | Removes a per-user managed configuration for an app for the specified
--   user.
--   
--   <i>See:</i> <a>managedConfigurationsforUserDelete</a> smart
--   constructor.
data ManagedConfigurationsforUserDelete

-- | The ID of the enterprise.
mcudEnterpriseId :: Lens' ManagedConfigurationsforUserDelete Text

-- | The ID of the user.
mcudUserId :: Lens' ManagedConfigurationsforUserDelete Text

-- | The ID of the managed configuration (a product ID), e.g.
--   "app:com.google.android.gm".
mcudManagedConfigurationForUserId :: Lens' ManagedConfigurationsforUserDelete Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Delete.ManagedConfigurationsforUserDelete
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Delete.ManagedConfigurationsforUserDelete
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Delete.ManagedConfigurationsforUserDelete
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Delete.ManagedConfigurationsforUserDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Delete.ManagedConfigurationsforUserDelete


-- | Retrieves details of a per-user managed configuration for an app for
--   the specified user.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.managedconfigurationsforuser.get</tt>.
module Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Get

-- | A resource alias for
--   <tt>androidenterprise.managedconfigurationsforuser.get</tt> method
--   which the <a>ManagedConfigurationsforUserGet</a> request conforms to.
type ManagedConfigurationsforUserGetResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("managedConfigurationsForUser" :> (Capture "managedConfigurationForUserId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ManagedConfiguration))))))))

-- | Creates a value of <a>ManagedConfigurationsforUserGet</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcugEnterpriseId</a></li>
--   <li><a>mcugUserId</a></li>
--   <li><a>mcugManagedConfigurationForUserId</a></li>
--   </ul>
managedConfigurationsforUserGet :: Text -> Text -> Text -> ManagedConfigurationsforUserGet

-- | Retrieves details of a per-user managed configuration for an app for
--   the specified user.
--   
--   <i>See:</i> <a>managedConfigurationsforUserGet</a> smart constructor.
data ManagedConfigurationsforUserGet

-- | The ID of the enterprise.
mcugEnterpriseId :: Lens' ManagedConfigurationsforUserGet Text

-- | The ID of the user.
mcugUserId :: Lens' ManagedConfigurationsforUserGet Text

-- | The ID of the managed configuration (a product ID), e.g.
--   "app:com.google.android.gm".
mcugManagedConfigurationForUserId :: Lens' ManagedConfigurationsforUserGet Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Get.ManagedConfigurationsforUserGet
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Get.ManagedConfigurationsforUserGet
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Get.ManagedConfigurationsforUserGet
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Get.ManagedConfigurationsforUserGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Get.ManagedConfigurationsforUserGet


-- | Lists all the per-user managed configurations for the specified user.
--   Only the ID is set.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.managedconfigurationsforuser.list</tt>.
module Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.List

-- | A resource alias for
--   <tt>androidenterprise.managedconfigurationsforuser.list</tt> method
--   which the <a>ManagedConfigurationsforUserList</a> request conforms to.
type ManagedConfigurationsforUserListResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("managedConfigurationsForUser" :> (QueryParam "alt" AltJSON :> Get '[JSON] ManagedConfigurationsForUserListResponse)))))))

-- | Creates a value of <a>ManagedConfigurationsforUserList</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mculEnterpriseId</a></li>
--   <li><a>mculUserId</a></li>
--   </ul>
managedConfigurationsforUserList :: Text -> Text -> ManagedConfigurationsforUserList

-- | Lists all the per-user managed configurations for the specified user.
--   Only the ID is set.
--   
--   <i>See:</i> <a>managedConfigurationsforUserList</a> smart constructor.
data ManagedConfigurationsforUserList

-- | The ID of the enterprise.
mculEnterpriseId :: Lens' ManagedConfigurationsforUserList Text

-- | The ID of the user.
mculUserId :: Lens' ManagedConfigurationsforUserList Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.List.ManagedConfigurationsforUserList
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.List.ManagedConfigurationsforUserList
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.List.ManagedConfigurationsforUserList
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.List.ManagedConfigurationsforUserList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.List.ManagedConfigurationsforUserList


-- | Adds or updates a per-user managed configuration for an app for the
--   specified user. This method supports patch semantics.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.managedconfigurationsforuser.patch</tt>.
module Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Patch

-- | A resource alias for
--   <tt>androidenterprise.managedconfigurationsforuser.patch</tt> method
--   which the <a>ManagedConfigurationsforUserPatch</a> request conforms
--   to.
type ManagedConfigurationsforUserPatchResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("managedConfigurationsForUser" :> (Capture "managedConfigurationForUserId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ManagedConfiguration :> Patch '[JSON] ManagedConfiguration)))))))))

-- | Creates a value of <a>ManagedConfigurationsforUserPatch</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcupEnterpriseId</a></li>
--   <li><a>mcupPayload</a></li>
--   <li><a>mcupUserId</a></li>
--   <li><a>mcupManagedConfigurationForUserId</a></li>
--   </ul>
managedConfigurationsforUserPatch :: Text -> ManagedConfiguration -> Text -> Text -> ManagedConfigurationsforUserPatch

-- | Adds or updates a per-user managed configuration for an app for the
--   specified user. This method supports patch semantics.
--   
--   <i>See:</i> <a>managedConfigurationsforUserPatch</a> smart
--   constructor.
data ManagedConfigurationsforUserPatch

-- | The ID of the enterprise.
mcupEnterpriseId :: Lens' ManagedConfigurationsforUserPatch Text

-- | Multipart request metadata.
mcupPayload :: Lens' ManagedConfigurationsforUserPatch ManagedConfiguration

-- | The ID of the user.
mcupUserId :: Lens' ManagedConfigurationsforUserPatch Text

-- | The ID of the managed configuration (a product ID), e.g.
--   "app:com.google.android.gm".
mcupManagedConfigurationForUserId :: Lens' ManagedConfigurationsforUserPatch Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Patch.ManagedConfigurationsforUserPatch
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Patch.ManagedConfigurationsforUserPatch
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Patch.ManagedConfigurationsforUserPatch
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Patch.ManagedConfigurationsforUserPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Patch.ManagedConfigurationsforUserPatch


-- | Adds or updates a per-user managed configuration for an app for the
--   specified user.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.managedconfigurationsforuser.update</tt>.
module Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Update

-- | A resource alias for
--   <tt>androidenterprise.managedconfigurationsforuser.update</tt> method
--   which the <a>ManagedConfigurationsforUserUpdate</a> request conforms
--   to.
type ManagedConfigurationsforUserUpdateResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("managedConfigurationsForUser" :> (Capture "managedConfigurationForUserId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ManagedConfiguration :> Put '[JSON] ManagedConfiguration)))))))))

-- | Creates a value of <a>ManagedConfigurationsforUserUpdate</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcuuEnterpriseId</a></li>
--   <li><a>mcuuPayload</a></li>
--   <li><a>mcuuUserId</a></li>
--   <li><a>mcuuManagedConfigurationForUserId</a></li>
--   </ul>
managedConfigurationsforUserUpdate :: Text -> ManagedConfiguration -> Text -> Text -> ManagedConfigurationsforUserUpdate

-- | Adds or updates a per-user managed configuration for an app for the
--   specified user.
--   
--   <i>See:</i> <a>managedConfigurationsforUserUpdate</a> smart
--   constructor.
data ManagedConfigurationsforUserUpdate

-- | The ID of the enterprise.
mcuuEnterpriseId :: Lens' ManagedConfigurationsforUserUpdate Text

-- | Multipart request metadata.
mcuuPayload :: Lens' ManagedConfigurationsforUserUpdate ManagedConfiguration

-- | The ID of the user.
mcuuUserId :: Lens' ManagedConfigurationsforUserUpdate Text

-- | The ID of the managed configuration (a product ID), e.g.
--   "app:com.google.android.gm".
mcuuManagedConfigurationForUserId :: Lens' ManagedConfigurationsforUserUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Update.ManagedConfigurationsforUserUpdate
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Update.ManagedConfigurationsforUserUpdate
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Update.ManagedConfigurationsforUserUpdate
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Update.ManagedConfigurationsforUserUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.ManagedConfigurationsforUser.Update.ManagedConfigurationsforUserUpdate


-- | Retrieves details of an Android app permission for display to an
--   enterprise admin.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.permissions.get</tt>.
module Network.Google.Resource.AndroidEnterprise.Permissions.Get

-- | A resource alias for <tt>androidenterprise.permissions.get</tt> method
--   which the <a>PermissionsGet</a> request conforms to.
type PermissionsGetResource = "androidenterprise" :> ("v1" :> ("permissions" :> (Capture "permissionId" Text :> (QueryParam "language" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Permission)))))

-- | Creates a value of <a>PermissionsGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pgLanguage</a></li>
--   <li><a>pgPermissionId</a></li>
--   </ul>
permissionsGet :: Text -> PermissionsGet

-- | Retrieves details of an Android app permission for display to an
--   enterprise admin.
--   
--   <i>See:</i> <a>permissionsGet</a> smart constructor.
data PermissionsGet

-- | The BCP47 tag for the user's preferred language (e.g. "en-US", "de")
pgLanguage :: Lens' PermissionsGet (Maybe Text)

-- | The ID of the permission.
pgPermissionId :: Lens' PermissionsGet Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Permissions.Get.PermissionsGet
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Permissions.Get.PermissionsGet
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Permissions.Get.PermissionsGet
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Permissions.Get.PermissionsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Permissions.Get.PermissionsGet


-- | Approves the specified product and the relevant app permissions, if
--   any. The maximum number of products that you can approve per
--   enterprise customer is 1,000. To learn how to use managed Google Play
--   to design and create a store layout to display approved products to
--   your users, see Store Layout Design.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.products.approve</tt>.
module Network.Google.Resource.AndroidEnterprise.Products.Approve

-- | A resource alias for <tt>androidenterprise.products.approve</tt>
--   method which the <a>ProductsApprove</a> request conforms to.
type ProductsApproveResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("products" :> (Capture "productId" Text :> ("approve" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ProductsApproveRequest :> Post '[JSON] ()))))))))

-- | Creates a value of <a>ProductsApprove</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>paEnterpriseId</a></li>
--   <li><a>paPayload</a></li>
--   <li><a>paProductId</a></li>
--   </ul>
productsApprove :: Text -> ProductsApproveRequest -> Text -> ProductsApprove

-- | Approves the specified product and the relevant app permissions, if
--   any. The maximum number of products that you can approve per
--   enterprise customer is 1,000. To learn how to use managed Google Play
--   to design and create a store layout to display approved products to
--   your users, see Store Layout Design.
--   
--   <i>See:</i> <a>productsApprove</a> smart constructor.
data ProductsApprove

-- | The ID of the enterprise.
paEnterpriseId :: Lens' ProductsApprove Text

-- | Multipart request metadata.
paPayload :: Lens' ProductsApprove ProductsApproveRequest

-- | The ID of the product.
paProductId :: Lens' ProductsApprove Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Products.Approve.ProductsApprove
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Products.Approve.ProductsApprove
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Products.Approve.ProductsApprove
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Products.Approve.ProductsApprove
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Products.Approve.ProductsApprove


-- | Generates a URL that can be rendered in an iframe to display the
--   permissions (if any) of a product. An enterprise admin must view these
--   permissions and accept them on behalf of their organization in order
--   to approve that product. Admins should accept the displayed
--   permissions by interacting with a separate UI element in the EMM
--   console, which in turn should trigger the use of this URL as the
--   approvalUrlInfo.approvalUrl property in a Products.approve call to
--   approve the product. This URL can only be used to display permissions
--   for up to 1 day.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.products.generateApprovalUrl</tt>.
module Network.Google.Resource.AndroidEnterprise.Products.GenerateApprovalURL

-- | A resource alias for
--   <tt>androidenterprise.products.generateApprovalUrl</tt> method which
--   the <a>ProductsGenerateApprovalURL</a> request conforms to.
type ProductsGenerateApprovalURLResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("products" :> (Capture "productId" Text :> ("generateApprovalUrl" :> (QueryParam "languageCode" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] ProductsGenerateApprovalURLResponse))))))))

-- | Creates a value of <a>ProductsGenerateApprovalURL</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pgauLanguageCode</a></li>
--   <li><a>pgauEnterpriseId</a></li>
--   <li><a>pgauProductId</a></li>
--   </ul>
productsGenerateApprovalURL :: Text -> Text -> ProductsGenerateApprovalURL

-- | Generates a URL that can be rendered in an iframe to display the
--   permissions (if any) of a product. An enterprise admin must view these
--   permissions and accept them on behalf of their organization in order
--   to approve that product. Admins should accept the displayed
--   permissions by interacting with a separate UI element in the EMM
--   console, which in turn should trigger the use of this URL as the
--   approvalUrlInfo.approvalUrl property in a Products.approve call to
--   approve the product. This URL can only be used to display permissions
--   for up to 1 day.
--   
--   <i>See:</i> <a>productsGenerateApprovalURL</a> smart constructor.
data ProductsGenerateApprovalURL

-- | The BCP 47 language code used for permission names and descriptions in
--   the returned iframe, for instance "en-US".
pgauLanguageCode :: Lens' ProductsGenerateApprovalURL (Maybe Text)

-- | The ID of the enterprise.
pgauEnterpriseId :: Lens' ProductsGenerateApprovalURL Text

-- | The ID of the product.
pgauProductId :: Lens' ProductsGenerateApprovalURL Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Products.GenerateApprovalURL.ProductsGenerateApprovalURL
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Products.GenerateApprovalURL.ProductsGenerateApprovalURL
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Products.GenerateApprovalURL.ProductsGenerateApprovalURL
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Products.GenerateApprovalURL.ProductsGenerateApprovalURL
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Products.GenerateApprovalURL.ProductsGenerateApprovalURL


-- | Retrieves details of a product for display to an enterprise admin.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.products.get</tt>.
module Network.Google.Resource.AndroidEnterprise.Products.Get

-- | A resource alias for <tt>androidenterprise.products.get</tt> method
--   which the <a>ProductsGet</a> request conforms to.
type ProductsGetResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("products" :> (Capture "productId" Text :> (QueryParam "language" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Product)))))))

-- | Creates a value of <a>ProductsGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>proEnterpriseId</a></li>
--   <li><a>proLanguage</a></li>
--   <li><a>proProductId</a></li>
--   </ul>
productsGet :: Text -> Text -> ProductsGet

-- | Retrieves details of a product for display to an enterprise admin.
--   
--   <i>See:</i> <a>productsGet</a> smart constructor.
data ProductsGet

-- | The ID of the enterprise.
proEnterpriseId :: Lens' ProductsGet Text

-- | The BCP47 tag for the user's preferred language (e.g. "en-US", "de").
proLanguage :: Lens' ProductsGet (Maybe Text)

-- | The ID of the product, e.g. "app:com.google.android.gm".
proProductId :: Lens' ProductsGet Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Products.Get.ProductsGet
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Products.Get.ProductsGet
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Products.Get.ProductsGet
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Products.Get.ProductsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Products.Get.ProductsGet


-- | Retrieves the schema that defines the configurable properties for this
--   product. All products have a schema, but this schema may be empty if
--   no managed configurations have been defined. This schema can be used
--   to populate a UI that allows an admin to configure the product. To
--   apply a managed configuration based on the schema obtained using this
--   API, see Managed Configurations through Play.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.products.getAppRestrictionsSchema</tt>.
module Network.Google.Resource.AndroidEnterprise.Products.GetAppRestrictionsSchema

-- | A resource alias for
--   <tt>androidenterprise.products.getAppRestrictionsSchema</tt> method
--   which the <a>ProductsGetAppRestrictionsSchema</a> request conforms to.
type ProductsGetAppRestrictionsSchemaResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("products" :> (Capture "productId" Text :> ("appRestrictionsSchema" :> (QueryParam "language" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] AppRestrictionsSchema))))))))

-- | Creates a value of <a>ProductsGetAppRestrictionsSchema</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pgarsEnterpriseId</a></li>
--   <li><a>pgarsLanguage</a></li>
--   <li><a>pgarsProductId</a></li>
--   </ul>
productsGetAppRestrictionsSchema :: Text -> Text -> ProductsGetAppRestrictionsSchema

-- | Retrieves the schema that defines the configurable properties for this
--   product. All products have a schema, but this schema may be empty if
--   no managed configurations have been defined. This schema can be used
--   to populate a UI that allows an admin to configure the product. To
--   apply a managed configuration based on the schema obtained using this
--   API, see Managed Configurations through Play.
--   
--   <i>See:</i> <a>productsGetAppRestrictionsSchema</a> smart constructor.
data ProductsGetAppRestrictionsSchema

-- | The ID of the enterprise.
pgarsEnterpriseId :: Lens' ProductsGetAppRestrictionsSchema Text

-- | The BCP47 tag for the user's preferred language (e.g. "en-US", "de").
pgarsLanguage :: Lens' ProductsGetAppRestrictionsSchema (Maybe Text)

-- | The ID of the product.
pgarsProductId :: Lens' ProductsGetAppRestrictionsSchema Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Products.GetAppRestrictionsSchema.ProductsGetAppRestrictionsSchema
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Products.GetAppRestrictionsSchema.ProductsGetAppRestrictionsSchema
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Products.GetAppRestrictionsSchema.ProductsGetAppRestrictionsSchema
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Products.GetAppRestrictionsSchema.ProductsGetAppRestrictionsSchema
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Products.GetAppRestrictionsSchema.ProductsGetAppRestrictionsSchema


-- | Retrieves the Android app permissions required by this app.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.products.getPermissions</tt>.
module Network.Google.Resource.AndroidEnterprise.Products.GetPermissions

-- | A resource alias for
--   <tt>androidenterprise.products.getPermissions</tt> method which the
--   <a>ProductsGetPermissions</a> request conforms to.
type ProductsGetPermissionsResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("products" :> (Capture "productId" Text :> ("permissions" :> (QueryParam "alt" AltJSON :> Get '[JSON] ProductPermissions)))))))

-- | Creates a value of <a>ProductsGetPermissions</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pgpEnterpriseId</a></li>
--   <li><a>pgpProductId</a></li>
--   </ul>
productsGetPermissions :: Text -> Text -> ProductsGetPermissions

-- | Retrieves the Android app permissions required by this app.
--   
--   <i>See:</i> <a>productsGetPermissions</a> smart constructor.
data ProductsGetPermissions

-- | The ID of the enterprise.
pgpEnterpriseId :: Lens' ProductsGetPermissions Text

-- | The ID of the product.
pgpProductId :: Lens' ProductsGetPermissions Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Products.GetPermissions.ProductsGetPermissions
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Products.GetPermissions.ProductsGetPermissions
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Products.GetPermissions.ProductsGetPermissions
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Products.GetPermissions.ProductsGetPermissions
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Products.GetPermissions.ProductsGetPermissions


-- | Finds approved products that match a query, or all approved products
--   if there is no query.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.products.list</tt>.
module Network.Google.Resource.AndroidEnterprise.Products.List

-- | A resource alias for <tt>androidenterprise.products.list</tt> method
--   which the <a>ProductsList</a> request conforms to.
type ProductsListResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("products" :> (QueryParam "token" Text :> (QueryParam "query" Text :> (QueryParam "language" Text :> (QueryParam "approved" Bool :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] ProductsListResponse))))))))))

-- | Creates a value of <a>ProductsList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>plEnterpriseId</a></li>
--   <li><a>plToken</a></li>
--   <li><a>plQuery</a></li>
--   <li><a>plLanguage</a></li>
--   <li><a>plApproved</a></li>
--   <li><a>plMaxResults</a></li>
--   </ul>
productsList :: Text -> ProductsList

-- | Finds approved products that match a query, or all approved products
--   if there is no query.
--   
--   <i>See:</i> <a>productsList</a> smart constructor.
data ProductsList

-- | The ID of the enterprise.
plEnterpriseId :: Lens' ProductsList Text

-- | A pagination token is contained in a request’s response when there are
--   more products. The token can be used in a subsequent request to obtain
--   more products, and so forth. This parameter cannot be used in the
--   initial request.
plToken :: Lens' ProductsList (Maybe Text)

-- | The search query as typed in the Google Play store search box. If
--   omitted, all approved apps will be returned (using the pagination
--   parameters), including apps that are not available in the store (e.g.
--   unpublished apps).
plQuery :: Lens' ProductsList (Maybe Text)

-- | The BCP47 tag for the user's preferred language (e.g. "en-US", "de").
--   Results are returned in the language best matching the preferred
--   language.
plLanguage :: Lens' ProductsList (Maybe Text)

-- | Specifies whether to search among all products (false) or among only
--   products that have been approved (true). Only "true" is supported, and
--   should be specified.
plApproved :: Lens' ProductsList (Maybe Bool)

-- | Specifies the maximum number of products that can be returned per
--   request. If not specified, uses a default value of 100, which is also
--   the maximum retrievable within a single response.
plMaxResults :: Lens' ProductsList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Products.List.ProductsList
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Products.List.ProductsList
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Products.List.ProductsList
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Products.List.ProductsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Products.List.ProductsList


-- | Unapproves the specified product (and the relevant app permissions, if
--   any)
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.products.unapprove</tt>.
module Network.Google.Resource.AndroidEnterprise.Products.UnApprove

-- | A resource alias for <tt>androidenterprise.products.unapprove</tt>
--   method which the <a>ProductsUnApprove</a> request conforms to.
type ProductsUnApproveResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("products" :> (Capture "productId" Text :> ("unapprove" :> (QueryParam "alt" AltJSON :> Post '[JSON] ())))))))

-- | Creates a value of <a>ProductsUnApprove</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>puaEnterpriseId</a></li>
--   <li><a>puaProductId</a></li>
--   </ul>
productsUnApprove :: Text -> Text -> ProductsUnApprove

-- | Unapproves the specified product (and the relevant app permissions, if
--   any)
--   
--   <i>See:</i> <a>productsUnApprove</a> smart constructor.
data ProductsUnApprove

-- | The ID of the enterprise.
puaEnterpriseId :: Lens' ProductsUnApprove Text

-- | The ID of the product.
puaProductId :: Lens' ProductsUnApprove Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Products.UnApprove.ProductsUnApprove
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Products.UnApprove.ProductsUnApprove
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Products.UnApprove.ProductsUnApprove
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Products.UnApprove.ProductsUnApprove
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Products.UnApprove.ProductsUnApprove


-- | Removes and invalidates the specified credentials for the service
--   account associated with this enterprise. The calling service account
--   must have been retrieved by calling Enterprises.GetServiceAccount and
--   must have been set as the enterprise service account by calling
--   Enterprises.SetAccount.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.serviceaccountkeys.delete</tt>.
module Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.Delete

-- | A resource alias for
--   <tt>androidenterprise.serviceaccountkeys.delete</tt> method which the
--   <a>ServiceAccountkeysDelete</a> request conforms to.
type ServiceAccountkeysDeleteResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("serviceAccountKeys" :> (Capture "keyId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))

-- | Creates a value of <a>ServiceAccountkeysDelete</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sadKeyId</a></li>
--   <li><a>sadEnterpriseId</a></li>
--   </ul>
serviceAccountkeysDelete :: Text -> Text -> ServiceAccountkeysDelete

-- | Removes and invalidates the specified credentials for the service
--   account associated with this enterprise. The calling service account
--   must have been retrieved by calling Enterprises.GetServiceAccount and
--   must have been set as the enterprise service account by calling
--   Enterprises.SetAccount.
--   
--   <i>See:</i> <a>serviceAccountkeysDelete</a> smart constructor.
data ServiceAccountkeysDelete

-- | The ID of the key.
sadKeyId :: Lens' ServiceAccountkeysDelete Text

-- | The ID of the enterprise.
sadEnterpriseId :: Lens' ServiceAccountkeysDelete Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.Delete.ServiceAccountkeysDelete
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.Delete.ServiceAccountkeysDelete
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.Delete.ServiceAccountkeysDelete
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.Delete.ServiceAccountkeysDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.Delete.ServiceAccountkeysDelete


-- | Generates new credentials for the service account associated with this
--   enterprise. The calling service account must have been retrieved by
--   calling Enterprises.GetServiceAccount and must have been set as the
--   enterprise service account by calling Enterprises.SetAccount. Only the
--   type of the key should be populated in the resource to be inserted.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.serviceaccountkeys.insert</tt>.
module Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.Insert

-- | A resource alias for
--   <tt>androidenterprise.serviceaccountkeys.insert</tt> method which the
--   <a>ServiceAccountkeysInsert</a> request conforms to.
type ServiceAccountkeysInsertResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("serviceAccountKeys" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ServiceAccountKey :> Post '[JSON] ServiceAccountKey))))))

-- | Creates a value of <a>ServiceAccountkeysInsert</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>saiEnterpriseId</a></li>
--   <li><a>saiPayload</a></li>
--   </ul>
serviceAccountkeysInsert :: Text -> ServiceAccountKey -> ServiceAccountkeysInsert

-- | Generates new credentials for the service account associated with this
--   enterprise. The calling service account must have been retrieved by
--   calling Enterprises.GetServiceAccount and must have been set as the
--   enterprise service account by calling Enterprises.SetAccount. Only the
--   type of the key should be populated in the resource to be inserted.
--   
--   <i>See:</i> <a>serviceAccountkeysInsert</a> smart constructor.
data ServiceAccountkeysInsert

-- | The ID of the enterprise.
saiEnterpriseId :: Lens' ServiceAccountkeysInsert Text

-- | Multipart request metadata.
saiPayload :: Lens' ServiceAccountkeysInsert ServiceAccountKey
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.Insert.ServiceAccountkeysInsert
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.Insert.ServiceAccountkeysInsert
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.Insert.ServiceAccountkeysInsert
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.Insert.ServiceAccountkeysInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.Insert.ServiceAccountkeysInsert


-- | Lists all active credentials for the service account associated with
--   this enterprise. Only the ID and key type are returned. The calling
--   service account must have been retrieved by calling
--   Enterprises.GetServiceAccount and must have been set as the enterprise
--   service account by calling Enterprises.SetAccount.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.serviceaccountkeys.list</tt>.
module Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.List

-- | A resource alias for
--   <tt>androidenterprise.serviceaccountkeys.list</tt> method which the
--   <a>ServiceAccountkeysList</a> request conforms to.
type ServiceAccountkeysListResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("serviceAccountKeys" :> (QueryParam "alt" AltJSON :> Get '[JSON] ServiceAccountKeysListResponse)))))

-- | Creates a value of <a>ServiceAccountkeysList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>salEnterpriseId</a></li>
--   </ul>
serviceAccountkeysList :: Text -> ServiceAccountkeysList

-- | Lists all active credentials for the service account associated with
--   this enterprise. Only the ID and key type are returned. The calling
--   service account must have been retrieved by calling
--   Enterprises.GetServiceAccount and must have been set as the enterprise
--   service account by calling Enterprises.SetAccount.
--   
--   <i>See:</i> <a>serviceAccountkeysList</a> smart constructor.
data ServiceAccountkeysList

-- | The ID of the enterprise.
salEnterpriseId :: Lens' ServiceAccountkeysList Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.List.ServiceAccountkeysList
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.List.ServiceAccountkeysList
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.List.ServiceAccountkeysList
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.List.ServiceAccountkeysList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.ServiceAccountkeys.List.ServiceAccountkeysList


-- | Deletes a cluster.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.storelayoutclusters.delete</tt>.
module Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Delete

-- | A resource alias for
--   <tt>androidenterprise.storelayoutclusters.delete</tt> method which the
--   <a>StorelayoutclustersDelete</a> request conforms to.
type StorelayoutclustersDeleteResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("storeLayout" :> ("pages" :> (Capture "pageId" Text :> ("clusters" :> (Capture "clusterId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))))

-- | Creates a value of <a>StorelayoutclustersDelete</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sddEnterpriseId</a></li>
--   <li><a>sddPageId</a></li>
--   <li><a>sddClusterId</a></li>
--   </ul>
storelayoutclustersDelete :: Text -> Text -> Text -> StorelayoutclustersDelete

-- | Deletes a cluster.
--   
--   <i>See:</i> <a>storelayoutclustersDelete</a> smart constructor.
data StorelayoutclustersDelete

-- | The ID of the enterprise.
sddEnterpriseId :: Lens' StorelayoutclustersDelete Text

-- | The ID of the page.
sddPageId :: Lens' StorelayoutclustersDelete Text

-- | The ID of the cluster.
sddClusterId :: Lens' StorelayoutclustersDelete Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Delete.StorelayoutclustersDelete
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Delete.StorelayoutclustersDelete
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Delete.StorelayoutclustersDelete
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Delete.StorelayoutclustersDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Delete.StorelayoutclustersDelete


-- | Retrieves details of a cluster.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.storelayoutclusters.get</tt>.
module Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Get

-- | A resource alias for
--   <tt>androidenterprise.storelayoutclusters.get</tt> method which the
--   <a>StorelayoutclustersGet</a> request conforms to.
type StorelayoutclustersGetResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("storeLayout" :> ("pages" :> (Capture "pageId" Text :> ("clusters" :> (Capture "clusterId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] StoreCluster)))))))))

-- | Creates a value of <a>StorelayoutclustersGet</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>stoEnterpriseId</a></li>
--   <li><a>stoPageId</a></li>
--   <li><a>stoClusterId</a></li>
--   </ul>
storelayoutclustersGet :: Text -> Text -> Text -> StorelayoutclustersGet

-- | Retrieves details of a cluster.
--   
--   <i>See:</i> <a>storelayoutclustersGet</a> smart constructor.
data StorelayoutclustersGet

-- | The ID of the enterprise.
stoEnterpriseId :: Lens' StorelayoutclustersGet Text

-- | The ID of the page.
stoPageId :: Lens' StorelayoutclustersGet Text

-- | The ID of the cluster.
stoClusterId :: Lens' StorelayoutclustersGet Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Get.StorelayoutclustersGet
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Get.StorelayoutclustersGet
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Get.StorelayoutclustersGet
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Get.StorelayoutclustersGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Get.StorelayoutclustersGet


-- | Inserts a new cluster in a page.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.storelayoutclusters.insert</tt>.
module Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Insert

-- | A resource alias for
--   <tt>androidenterprise.storelayoutclusters.insert</tt> method which the
--   <a>StorelayoutclustersInsert</a> request conforms to.
type StorelayoutclustersInsertResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("storeLayout" :> ("pages" :> (Capture "pageId" Text :> ("clusters" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] StoreCluster :> Post '[JSON] StoreCluster)))))))))

-- | Creates a value of <a>StorelayoutclustersInsert</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sEnterpriseId</a></li>
--   <li><a>sPageId</a></li>
--   <li><a>sPayload</a></li>
--   </ul>
storelayoutclustersInsert :: Text -> Text -> StoreCluster -> StorelayoutclustersInsert

-- | Inserts a new cluster in a page.
--   
--   <i>See:</i> <a>storelayoutclustersInsert</a> smart constructor.
data StorelayoutclustersInsert

-- | The ID of the enterprise.
sEnterpriseId :: Lens' StorelayoutclustersInsert Text

-- | The ID of the page.
sPageId :: Lens' StorelayoutclustersInsert Text

-- | Multipart request metadata.
sPayload :: Lens' StorelayoutclustersInsert StoreCluster
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Insert.StorelayoutclustersInsert
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Insert.StorelayoutclustersInsert
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Insert.StorelayoutclustersInsert
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Insert.StorelayoutclustersInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Insert.StorelayoutclustersInsert


-- | Retrieves the details of all clusters on the specified page.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.storelayoutclusters.list</tt>.
module Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.List

-- | A resource alias for
--   <tt>androidenterprise.storelayoutclusters.list</tt> method which the
--   <a>StorelayoutclustersList</a> request conforms to.
type StorelayoutclustersListResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("storeLayout" :> ("pages" :> (Capture "pageId" Text :> ("clusters" :> (QueryParam "alt" AltJSON :> Get '[JSON] StoreLayoutClustersListResponse))))))))

-- | Creates a value of <a>StorelayoutclustersList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sllEnterpriseId</a></li>
--   <li><a>sllPageId</a></li>
--   </ul>
storelayoutclustersList :: Text -> Text -> StorelayoutclustersList

-- | Retrieves the details of all clusters on the specified page.
--   
--   <i>See:</i> <a>storelayoutclustersList</a> smart constructor.
data StorelayoutclustersList

-- | The ID of the enterprise.
sllEnterpriseId :: Lens' StorelayoutclustersList Text

-- | The ID of the page.
sllPageId :: Lens' StorelayoutclustersList Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.List.StorelayoutclustersList
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.List.StorelayoutclustersList
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.List.StorelayoutclustersList
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.List.StorelayoutclustersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.List.StorelayoutclustersList


-- | Updates a cluster. This method supports patch semantics.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.storelayoutclusters.patch</tt>.
module Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Patch

-- | A resource alias for
--   <tt>androidenterprise.storelayoutclusters.patch</tt> method which the
--   <a>StorelayoutclustersPatch</a> request conforms to.
type StorelayoutclustersPatchResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("storeLayout" :> ("pages" :> (Capture "pageId" Text :> ("clusters" :> (Capture "clusterId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] StoreCluster :> Patch '[JSON] StoreCluster))))))))))

-- | Creates a value of <a>StorelayoutclustersPatch</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sppEnterpriseId</a></li>
--   <li><a>sppPageId</a></li>
--   <li><a>sppPayload</a></li>
--   <li><a>sppClusterId</a></li>
--   </ul>
storelayoutclustersPatch :: Text -> Text -> StoreCluster -> Text -> StorelayoutclustersPatch

-- | Updates a cluster. This method supports patch semantics.
--   
--   <i>See:</i> <a>storelayoutclustersPatch</a> smart constructor.
data StorelayoutclustersPatch

-- | The ID of the enterprise.
sppEnterpriseId :: Lens' StorelayoutclustersPatch Text

-- | The ID of the page.
sppPageId :: Lens' StorelayoutclustersPatch Text

-- | Multipart request metadata.
sppPayload :: Lens' StorelayoutclustersPatch StoreCluster

-- | The ID of the cluster.
sppClusterId :: Lens' StorelayoutclustersPatch Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Patch.StorelayoutclustersPatch
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Patch.StorelayoutclustersPatch
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Patch.StorelayoutclustersPatch
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Patch.StorelayoutclustersPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Patch.StorelayoutclustersPatch


-- | Updates a cluster.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.storelayoutclusters.update</tt>.
module Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Update

-- | A resource alias for
--   <tt>androidenterprise.storelayoutclusters.update</tt> method which the
--   <a>StorelayoutclustersUpdate</a> request conforms to.
type StorelayoutclustersUpdateResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("storeLayout" :> ("pages" :> (Capture "pageId" Text :> ("clusters" :> (Capture "clusterId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] StoreCluster :> Put '[JSON] StoreCluster))))))))))

-- | Creates a value of <a>StorelayoutclustersUpdate</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>suuEnterpriseId</a></li>
--   <li><a>suuPageId</a></li>
--   <li><a>suuPayload</a></li>
--   <li><a>suuClusterId</a></li>
--   </ul>
storelayoutclustersUpdate :: Text -> Text -> StoreCluster -> Text -> StorelayoutclustersUpdate

-- | Updates a cluster.
--   
--   <i>See:</i> <a>storelayoutclustersUpdate</a> smart constructor.
data StorelayoutclustersUpdate

-- | The ID of the enterprise.
suuEnterpriseId :: Lens' StorelayoutclustersUpdate Text

-- | The ID of the page.
suuPageId :: Lens' StorelayoutclustersUpdate Text

-- | Multipart request metadata.
suuPayload :: Lens' StorelayoutclustersUpdate StoreCluster

-- | The ID of the cluster.
suuClusterId :: Lens' StorelayoutclustersUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Update.StorelayoutclustersUpdate
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Update.StorelayoutclustersUpdate
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Update.StorelayoutclustersUpdate
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Update.StorelayoutclustersUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Storelayoutclusters.Update.StorelayoutclustersUpdate


-- | Deletes a store page.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.storelayoutpages.delete</tt>.
module Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Delete

-- | A resource alias for
--   <tt>androidenterprise.storelayoutpages.delete</tt> method which the
--   <a>StorelayoutpagesDelete</a> request conforms to.
type StorelayoutpagesDeleteResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("storeLayout" :> ("pages" :> (Capture "pageId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))

-- | Creates a value of <a>StorelayoutpagesDelete</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdEnterpriseId</a></li>
--   <li><a>sdPageId</a></li>
--   </ul>
storelayoutpagesDelete :: Text -> Text -> StorelayoutpagesDelete

-- | Deletes a store page.
--   
--   <i>See:</i> <a>storelayoutpagesDelete</a> smart constructor.
data StorelayoutpagesDelete

-- | The ID of the enterprise.
sdEnterpriseId :: Lens' StorelayoutpagesDelete Text

-- | The ID of the page.
sdPageId :: Lens' StorelayoutpagesDelete Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Delete.StorelayoutpagesDelete
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Delete.StorelayoutpagesDelete
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Delete.StorelayoutpagesDelete
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Delete.StorelayoutpagesDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Delete.StorelayoutpagesDelete


-- | Retrieves details of a store page.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.storelayoutpages.get</tt>.
module Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Get

-- | A resource alias for <tt>androidenterprise.storelayoutpages.get</tt>
--   method which the <a>StorelayoutpagesGet</a> request conforms to.
type StorelayoutpagesGetResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("storeLayout" :> ("pages" :> (Capture "pageId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] StorePage)))))))

-- | Creates a value of <a>StorelayoutpagesGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sgEnterpriseId</a></li>
--   <li><a>sgPageId</a></li>
--   </ul>
storelayoutpagesGet :: Text -> Text -> StorelayoutpagesGet

-- | Retrieves details of a store page.
--   
--   <i>See:</i> <a>storelayoutpagesGet</a> smart constructor.
data StorelayoutpagesGet

-- | The ID of the enterprise.
sgEnterpriseId :: Lens' StorelayoutpagesGet Text

-- | The ID of the page.
sgPageId :: Lens' StorelayoutpagesGet Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Get.StorelayoutpagesGet
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Get.StorelayoutpagesGet
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Get.StorelayoutpagesGet
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Get.StorelayoutpagesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Get.StorelayoutpagesGet


-- | Inserts a new store page.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.storelayoutpages.insert</tt>.
module Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Insert

-- | A resource alias for
--   <tt>androidenterprise.storelayoutpages.insert</tt> method which the
--   <a>StorelayoutpagesInsert</a> request conforms to.
type StorelayoutpagesInsertResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("storeLayout" :> ("pages" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] StorePage :> Post '[JSON] StorePage)))))))

-- | Creates a value of <a>StorelayoutpagesInsert</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siEnterpriseId</a></li>
--   <li><a>siPayload</a></li>
--   </ul>
storelayoutpagesInsert :: Text -> StorePage -> StorelayoutpagesInsert

-- | Inserts a new store page.
--   
--   <i>See:</i> <a>storelayoutpagesInsert</a> smart constructor.
data StorelayoutpagesInsert

-- | The ID of the enterprise.
siEnterpriseId :: Lens' StorelayoutpagesInsert Text

-- | Multipart request metadata.
siPayload :: Lens' StorelayoutpagesInsert StorePage
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Insert.StorelayoutpagesInsert
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Insert.StorelayoutpagesInsert
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Insert.StorelayoutpagesInsert
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Insert.StorelayoutpagesInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Insert.StorelayoutpagesInsert


-- | Retrieves the details of all pages in the store.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.storelayoutpages.list</tt>.
module Network.Google.Resource.AndroidEnterprise.Storelayoutpages.List

-- | A resource alias for <tt>androidenterprise.storelayoutpages.list</tt>
--   method which the <a>StorelayoutpagesList</a> request conforms to.
type StorelayoutpagesListResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("storeLayout" :> ("pages" :> (QueryParam "alt" AltJSON :> Get '[JSON] StoreLayoutPagesListResponse))))))

-- | Creates a value of <a>StorelayoutpagesList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slEnterpriseId</a></li>
--   </ul>
storelayoutpagesList :: Text -> StorelayoutpagesList

-- | Retrieves the details of all pages in the store.
--   
--   <i>See:</i> <a>storelayoutpagesList</a> smart constructor.
data StorelayoutpagesList

-- | The ID of the enterprise.
slEnterpriseId :: Lens' StorelayoutpagesList Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Storelayoutpages.List.StorelayoutpagesList
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Storelayoutpages.List.StorelayoutpagesList
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Storelayoutpages.List.StorelayoutpagesList
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Storelayoutpages.List.StorelayoutpagesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Storelayoutpages.List.StorelayoutpagesList


-- | Updates the content of a store page. This method supports patch
--   semantics.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.storelayoutpages.patch</tt>.
module Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Patch

-- | A resource alias for <tt>androidenterprise.storelayoutpages.patch</tt>
--   method which the <a>StorelayoutpagesPatch</a> request conforms to.
type StorelayoutpagesPatchResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("storeLayout" :> ("pages" :> (Capture "pageId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] StorePage :> Patch '[JSON] StorePage))))))))

-- | Creates a value of <a>StorelayoutpagesPatch</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spEnterpriseId</a></li>
--   <li><a>spPageId</a></li>
--   <li><a>spPayload</a></li>
--   </ul>
storelayoutpagesPatch :: Text -> Text -> StorePage -> StorelayoutpagesPatch

-- | Updates the content of a store page. This method supports patch
--   semantics.
--   
--   <i>See:</i> <a>storelayoutpagesPatch</a> smart constructor.
data StorelayoutpagesPatch

-- | The ID of the enterprise.
spEnterpriseId :: Lens' StorelayoutpagesPatch Text

-- | The ID of the page.
spPageId :: Lens' StorelayoutpagesPatch Text

-- | Multipart request metadata.
spPayload :: Lens' StorelayoutpagesPatch StorePage
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Patch.StorelayoutpagesPatch
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Patch.StorelayoutpagesPatch
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Patch.StorelayoutpagesPatch
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Patch.StorelayoutpagesPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Patch.StorelayoutpagesPatch


-- | Updates the content of a store page.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.storelayoutpages.update</tt>.
module Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Update

-- | A resource alias for
--   <tt>androidenterprise.storelayoutpages.update</tt> method which the
--   <a>StorelayoutpagesUpdate</a> request conforms to.
type StorelayoutpagesUpdateResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("storeLayout" :> ("pages" :> (Capture "pageId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] StorePage :> Put '[JSON] StorePage))))))))

-- | Creates a value of <a>StorelayoutpagesUpdate</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>suEnterpriseId</a></li>
--   <li><a>suPageId</a></li>
--   <li><a>suPayload</a></li>
--   </ul>
storelayoutpagesUpdate :: Text -> Text -> StorePage -> StorelayoutpagesUpdate

-- | Updates the content of a store page.
--   
--   <i>See:</i> <a>storelayoutpagesUpdate</a> smart constructor.
data StorelayoutpagesUpdate

-- | The ID of the enterprise.
suEnterpriseId :: Lens' StorelayoutpagesUpdate Text

-- | The ID of the page.
suPageId :: Lens' StorelayoutpagesUpdate Text

-- | Multipart request metadata.
suPayload :: Lens' StorelayoutpagesUpdate StorePage
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Update.StorelayoutpagesUpdate
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Update.StorelayoutpagesUpdate
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Update.StorelayoutpagesUpdate
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Update.StorelayoutpagesUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Storelayoutpages.Update.StorelayoutpagesUpdate


-- | Deleted an EMM-managed user.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.users.delete</tt>.
module Network.Google.Resource.AndroidEnterprise.Users.Delete

-- | A resource alias for <tt>androidenterprise.users.delete</tt> method
--   which the <a>UsersDelete</a> request conforms to.
type UsersDeleteResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))

-- | Creates a value of <a>UsersDelete</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>udEnterpriseId</a></li>
--   <li><a>udUserId</a></li>
--   </ul>
usersDelete :: Text -> Text -> UsersDelete

-- | Deleted an EMM-managed user.
--   
--   <i>See:</i> <a>usersDelete</a> smart constructor.
data UsersDelete

-- | The ID of the enterprise.
udEnterpriseId :: Lens' UsersDelete Text

-- | The ID of the user.
udUserId :: Lens' UsersDelete Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Users.Delete.UsersDelete
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Users.Delete.UsersDelete
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Users.Delete.UsersDelete
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Users.Delete.UsersDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Users.Delete.UsersDelete


-- | Generates an authentication token which the device policy client can
--   use to provision the given EMM-managed user account on a device. The
--   generated token is single-use and expires after a few minutes. This
--   call only works with EMM-managed accounts.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.users.generateAuthenticationToken</tt>.
module Network.Google.Resource.AndroidEnterprise.Users.GenerateAuthenticationToken

-- | A resource alias for
--   <tt>androidenterprise.users.generateAuthenticationToken</tt> method
--   which the <a>UsersGenerateAuthenticationToken</a> request conforms to.
type UsersGenerateAuthenticationTokenResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("authenticationToken" :> (QueryParam "alt" AltJSON :> Post '[JSON] AuthenticationToken)))))))

-- | Creates a value of <a>UsersGenerateAuthenticationToken</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ugatEnterpriseId</a></li>
--   <li><a>ugatUserId</a></li>
--   </ul>
usersGenerateAuthenticationToken :: Text -> Text -> UsersGenerateAuthenticationToken

-- | Generates an authentication token which the device policy client can
--   use to provision the given EMM-managed user account on a device. The
--   generated token is single-use and expires after a few minutes. This
--   call only works with EMM-managed accounts.
--   
--   <i>See:</i> <a>usersGenerateAuthenticationToken</a> smart constructor.
data UsersGenerateAuthenticationToken

-- | The ID of the enterprise.
ugatEnterpriseId :: Lens' UsersGenerateAuthenticationToken Text

-- | The ID of the user.
ugatUserId :: Lens' UsersGenerateAuthenticationToken Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Users.GenerateAuthenticationToken.UsersGenerateAuthenticationToken
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Users.GenerateAuthenticationToken.UsersGenerateAuthenticationToken
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Users.GenerateAuthenticationToken.UsersGenerateAuthenticationToken
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Users.GenerateAuthenticationToken.UsersGenerateAuthenticationToken
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Users.GenerateAuthenticationToken.UsersGenerateAuthenticationToken


-- | Generates a token (activation code) to allow this user to configure
--   their managed account in the Android Setup Wizard. Revokes any
--   previously generated token. This call only works with Google managed
--   accounts.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.users.generateToken</tt>.
module Network.Google.Resource.AndroidEnterprise.Users.GenerateToken

-- | A resource alias for <tt>androidenterprise.users.generateToken</tt>
--   method which the <a>UsersGenerateToken</a> request conforms to.
type UsersGenerateTokenResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("token" :> (QueryParam "alt" AltJSON :> Post '[JSON] UserToken)))))))

-- | Creates a value of <a>UsersGenerateToken</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ugtEnterpriseId</a></li>
--   <li><a>ugtUserId</a></li>
--   </ul>
usersGenerateToken :: Text -> Text -> UsersGenerateToken

-- | Generates a token (activation code) to allow this user to configure
--   their managed account in the Android Setup Wizard. Revokes any
--   previously generated token. This call only works with Google managed
--   accounts.
--   
--   <i>See:</i> <a>usersGenerateToken</a> smart constructor.
data UsersGenerateToken

-- | The ID of the enterprise.
ugtEnterpriseId :: Lens' UsersGenerateToken Text

-- | The ID of the user.
ugtUserId :: Lens' UsersGenerateToken Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Users.GenerateToken.UsersGenerateToken
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Users.GenerateToken.UsersGenerateToken
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Users.GenerateToken.UsersGenerateToken
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Users.GenerateToken.UsersGenerateToken
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Users.GenerateToken.UsersGenerateToken


-- | Retrieves a user's details.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.users.get</tt>.
module Network.Google.Resource.AndroidEnterprise.Users.Get

-- | A resource alias for <tt>androidenterprise.users.get</tt> method which
--   the <a>UsersGet</a> request conforms to.
type UsersGetResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] User))))))

-- | Creates a value of <a>UsersGet</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ugEnterpriseId</a></li>
--   <li><a>ugUserId</a></li>
--   </ul>
usersGet :: Text -> Text -> UsersGet

-- | Retrieves a user's details.
--   
--   <i>See:</i> <a>usersGet</a> smart constructor.
data UsersGet

-- | The ID of the enterprise.
ugEnterpriseId :: Lens' UsersGet Text

-- | The ID of the user.
ugUserId :: Lens' UsersGet Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Users.Get.UsersGet
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Users.Get.UsersGet
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Users.Get.UsersGet
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Users.Get.UsersGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Users.Get.UsersGet


-- | Retrieves the set of products a user is entitled to access.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.users.getAvailableProductSet</tt>.
module Network.Google.Resource.AndroidEnterprise.Users.GetAvailableProductSet

-- | A resource alias for
--   <tt>androidenterprise.users.getAvailableProductSet</tt> method which
--   the <a>UsersGetAvailableProductSet</a> request conforms to.
type UsersGetAvailableProductSetResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("availableProductSet" :> (QueryParam "alt" AltJSON :> Get '[JSON] ProductSet)))))))

-- | Creates a value of <a>UsersGetAvailableProductSet</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ugapsEnterpriseId</a></li>
--   <li><a>ugapsUserId</a></li>
--   </ul>
usersGetAvailableProductSet :: Text -> Text -> UsersGetAvailableProductSet

-- | Retrieves the set of products a user is entitled to access.
--   
--   <i>See:</i> <a>usersGetAvailableProductSet</a> smart constructor.
data UsersGetAvailableProductSet

-- | The ID of the enterprise.
ugapsEnterpriseId :: Lens' UsersGetAvailableProductSet Text

-- | The ID of the user.
ugapsUserId :: Lens' UsersGetAvailableProductSet Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Users.GetAvailableProductSet.UsersGetAvailableProductSet
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Users.GetAvailableProductSet.UsersGetAvailableProductSet
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Users.GetAvailableProductSet.UsersGetAvailableProductSet
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Users.GetAvailableProductSet.UsersGetAvailableProductSet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Users.GetAvailableProductSet.UsersGetAvailableProductSet


-- | Creates a new EMM-managed user. The Users resource passed in the body
--   of the request should include an accountIdentifier and an accountType.
--   If a corresponding user already exists with the same account
--   identifier, the user will be updated with the resource. In this case
--   only the displayName field can be changed.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.users.insert</tt>.
module Network.Google.Resource.AndroidEnterprise.Users.Insert

-- | A resource alias for <tt>androidenterprise.users.insert</tt> method
--   which the <a>UsersInsert</a> request conforms to.
type UsersInsertResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] User :> Post '[JSON] User))))))

-- | Creates a value of <a>UsersInsert</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uiEnterpriseId</a></li>
--   <li><a>uiPayload</a></li>
--   </ul>
usersInsert :: Text -> User -> UsersInsert

-- | Creates a new EMM-managed user. The Users resource passed in the body
--   of the request should include an accountIdentifier and an accountType.
--   If a corresponding user already exists with the same account
--   identifier, the user will be updated with the resource. In this case
--   only the displayName field can be changed.
--   
--   <i>See:</i> <a>usersInsert</a> smart constructor.
data UsersInsert

-- | The ID of the enterprise.
uiEnterpriseId :: Lens' UsersInsert Text

-- | Multipart request metadata.
uiPayload :: Lens' UsersInsert User
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Users.Insert.UsersInsert
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Users.Insert.UsersInsert
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Users.Insert.UsersInsert
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Users.Insert.UsersInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Users.Insert.UsersInsert


-- | Looks up a user by primary email address. This is only supported for
--   Google-managed users. Lookup of the id is not needed for EMM-managed
--   users because the id is already returned in the result of the
--   Users.insert call.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.users.list</tt>.
module Network.Google.Resource.AndroidEnterprise.Users.List

-- | A resource alias for <tt>androidenterprise.users.list</tt> method
--   which the <a>UsersList</a> request conforms to.
type UsersListResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (QueryParam "email" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] UsersListResponse))))))

-- | Creates a value of <a>UsersList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ulEmail</a></li>
--   <li><a>ulEnterpriseId</a></li>
--   </ul>
usersList :: Text -> Text -> UsersList

-- | Looks up a user by primary email address. This is only supported for
--   Google-managed users. Lookup of the id is not needed for EMM-managed
--   users because the id is already returned in the result of the
--   Users.insert call.
--   
--   <i>See:</i> <a>usersList</a> smart constructor.
data UsersList

-- | The exact primary email address of the user to look up.
ulEmail :: Lens' UsersList Text

-- | The ID of the enterprise.
ulEnterpriseId :: Lens' UsersList Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Users.List.UsersList
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Users.List.UsersList
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Users.List.UsersList
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Users.List.UsersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Users.List.UsersList


-- | Updates the details of an EMM-managed user. Can be used with
--   EMM-managed users only (not Google managed users). Pass the new
--   details in the Users resource in the request body. Only the
--   displayName field can be changed. Other fields must either be unset or
--   have the currently active value. This method supports patch semantics.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.users.patch</tt>.
module Network.Google.Resource.AndroidEnterprise.Users.Patch

-- | A resource alias for <tt>androidenterprise.users.patch</tt> method
--   which the <a>UsersPatch</a> request conforms to.
type UsersPatchResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] User :> Patch '[JSON] User)))))))

-- | Creates a value of <a>UsersPatch</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>upEnterpriseId</a></li>
--   <li><a>upPayload</a></li>
--   <li><a>upUserId</a></li>
--   </ul>
usersPatch :: Text -> User -> Text -> UsersPatch

-- | Updates the details of an EMM-managed user. Can be used with
--   EMM-managed users only (not Google managed users). Pass the new
--   details in the Users resource in the request body. Only the
--   displayName field can be changed. Other fields must either be unset or
--   have the currently active value. This method supports patch semantics.
--   
--   <i>See:</i> <a>usersPatch</a> smart constructor.
data UsersPatch

-- | The ID of the enterprise.
upEnterpriseId :: Lens' UsersPatch Text

-- | Multipart request metadata.
upPayload :: Lens' UsersPatch User

-- | The ID of the user.
upUserId :: Lens' UsersPatch Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Users.Patch.UsersPatch
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Users.Patch.UsersPatch
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Users.Patch.UsersPatch
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Users.Patch.UsersPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Users.Patch.UsersPatch


-- | Revokes a previously generated token (activation code) for the user.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.users.revokeToken</tt>.
module Network.Google.Resource.AndroidEnterprise.Users.RevokeToken

-- | A resource alias for <tt>androidenterprise.users.revokeToken</tt>
--   method which the <a>UsersRevokeToken</a> request conforms to.
type UsersRevokeTokenResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("token" :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))

-- | Creates a value of <a>UsersRevokeToken</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>urtEnterpriseId</a></li>
--   <li><a>urtUserId</a></li>
--   </ul>
usersRevokeToken :: Text -> Text -> UsersRevokeToken

-- | Revokes a previously generated token (activation code) for the user.
--   
--   <i>See:</i> <a>usersRevokeToken</a> smart constructor.
data UsersRevokeToken

-- | The ID of the enterprise.
urtEnterpriseId :: Lens' UsersRevokeToken Text

-- | The ID of the user.
urtUserId :: Lens' UsersRevokeToken Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Users.RevokeToken.UsersRevokeToken
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Users.RevokeToken.UsersRevokeToken
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Users.RevokeToken.UsersRevokeToken
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Users.RevokeToken.UsersRevokeToken
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Users.RevokeToken.UsersRevokeToken


-- | Modifies the set of products a user is entitled to access.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.users.setAvailableProductSet</tt>.
module Network.Google.Resource.AndroidEnterprise.Users.SetAvailableProductSet

-- | A resource alias for
--   <tt>androidenterprise.users.setAvailableProductSet</tt> method which
--   the <a>UsersSetAvailableProductSet</a> request conforms to.
type UsersSetAvailableProductSetResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> ("availableProductSet" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ProductSet :> Put '[JSON] ProductSet))))))))

-- | Creates a value of <a>UsersSetAvailableProductSet</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usapsEnterpriseId</a></li>
--   <li><a>usapsPayload</a></li>
--   <li><a>usapsUserId</a></li>
--   </ul>
usersSetAvailableProductSet :: Text -> ProductSet -> Text -> UsersSetAvailableProductSet

-- | Modifies the set of products a user is entitled to access.
--   
--   <i>See:</i> <a>usersSetAvailableProductSet</a> smart constructor.
data UsersSetAvailableProductSet

-- | The ID of the enterprise.
usapsEnterpriseId :: Lens' UsersSetAvailableProductSet Text

-- | Multipart request metadata.
usapsPayload :: Lens' UsersSetAvailableProductSet ProductSet

-- | The ID of the user.
usapsUserId :: Lens' UsersSetAvailableProductSet Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Users.SetAvailableProductSet.UsersSetAvailableProductSet
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Users.SetAvailableProductSet.UsersSetAvailableProductSet
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Users.SetAvailableProductSet.UsersSetAvailableProductSet
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Users.SetAvailableProductSet.UsersSetAvailableProductSet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Users.SetAvailableProductSet.UsersSetAvailableProductSet


-- | Updates the details of an EMM-managed user. Can be used with
--   EMM-managed users only (not Google managed users). Pass the new
--   details in the Users resource in the request body. Only the
--   displayName field can be changed. Other fields must either be unset or
--   have the currently active value.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a> for
--   <tt>androidenterprise.users.update</tt>.
module Network.Google.Resource.AndroidEnterprise.Users.Update

-- | A resource alias for <tt>androidenterprise.users.update</tt> method
--   which the <a>UsersUpdate</a> request conforms to.
type UsersUpdateResource = "androidenterprise" :> ("v1" :> ("enterprises" :> (Capture "enterpriseId" Text :> ("users" :> (Capture "userId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] User :> Put '[JSON] User)))))))

-- | Creates a value of <a>UsersUpdate</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uuEnterpriseId</a></li>
--   <li><a>uuPayload</a></li>
--   <li><a>uuUserId</a></li>
--   </ul>
usersUpdate :: Text -> User -> Text -> UsersUpdate

-- | Updates the details of an EMM-managed user. Can be used with
--   EMM-managed users only (not Google managed users). Pass the new
--   details in the Users resource in the request body. Only the
--   displayName field can be changed. Other fields must either be unset or
--   have the currently active value.
--   
--   <i>See:</i> <a>usersUpdate</a> smart constructor.
data UsersUpdate

-- | The ID of the enterprise.
uuEnterpriseId :: Lens' UsersUpdate Text

-- | Multipart request metadata.
uuPayload :: Lens' UsersUpdate User

-- | The ID of the user.
uuUserId :: Lens' UsersUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.AndroidEnterprise.Users.Update.UsersUpdate
instance Data.Data.Data Network.Google.Resource.AndroidEnterprise.Users.Update.UsersUpdate
instance GHC.Show.Show Network.Google.Resource.AndroidEnterprise.Users.Update.UsersUpdate
instance GHC.Classes.Eq Network.Google.Resource.AndroidEnterprise.Users.Update.UsersUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.AndroidEnterprise.Users.Update.UsersUpdate


-- | Manages the deployment of apps to Android for Work users.
--   
--   <i>See:</i> <a>Google Play EMM API Reference</a>
module Network.Google.AndroidEnterprise

-- | Default request referring to version <tt>v1</tt> of the Google Play
--   EMM API. This contains the host and root path used as a starting point
--   for constructing service requests.
androidEnterpriseService :: ServiceConfig

-- | Manage corporate Android devices
androidEnterpriseScope :: Proxy '["https://www.googleapis.com/auth/androidenterprise"]

-- | Represents the entirety of the methods and resources available for the
--   Google Play EMM API service.
type AndroidEnterpriseAPI = StorelayoutclustersInsertResource :<|> (StorelayoutclustersListResource :<|> (StorelayoutclustersPatchResource :<|> (StorelayoutclustersGetResource :<|> (StorelayoutclustersDeleteResource :<|> (StorelayoutclustersUpdateResource :<|> (UsersInsertResource :<|> (UsersListResource :<|> (UsersGenerateTokenResource :<|> (UsersGenerateAuthenticationTokenResource :<|> (UsersPatchResource :<|> (UsersGetResource :<|> (UsersSetAvailableProductSetResource :<|> (UsersRevokeTokenResource :<|> (UsersGetAvailableProductSetResource :<|> (UsersDeleteResource :<|> (UsersUpdateResource :<|> (InstallsListResource :<|> (InstallsPatchResource :<|> (InstallsGetResource :<|> (InstallsDeleteResource :<|> (InstallsUpdateResource :<|> (StorelayoutpagesInsertResource :<|> (StorelayoutpagesListResource :<|> (StorelayoutpagesPatchResource :<|> (StorelayoutpagesGetResource :<|> (StorelayoutpagesDeleteResource :<|> (StorelayoutpagesUpdateResource :<|> (ServiceAccountkeysInsertResource :<|> (ServiceAccountkeysListResource :<|> (ServiceAccountkeysDeleteResource :<|> (EnterprisesCompleteSignupResource :<|> (EnterprisesCreateWebTokenResource :<|> (EnterprisesInsertResource :<|> (EnterprisesGetServiceAccountResource :<|> (EnterprisesListResource :<|> (EnterprisesUnenrollResource :<|> (EnterprisesGetStoreLayoutResource :<|> (EnterprisesSetAccountResource :<|> (EnterprisesEnrollResource :<|> (EnterprisesGetResource :<|> (EnterprisesGenerateSignupURLResource :<|> (EnterprisesSendTestPushNotificationResource :<|> (EnterprisesSetStoreLayoutResource :<|> (EnterprisesAcknowledgeNotificationSetResource :<|> (EnterprisesPullNotificationSetResource :<|> (EnterprisesDeleteResource :<|> (ManagedConfigurationsforUserListResource :<|> (ManagedConfigurationsforUserPatchResource :<|> (ManagedConfigurationsforUserGetResource :<|> (ManagedConfigurationsforUserDeleteResource :<|> (ManagedConfigurationsforUserUpdateResource :<|> (GrouplicensesListResource :<|> (GrouplicensesGetResource :<|> (EntitlementsListResource :<|> (EntitlementsPatchResource :<|> (EntitlementsGetResource :<|> (EntitlementsDeleteResource :<|> (EntitlementsUpdateResource :<|> (ManagedConfigurationsforDeviceListResource :<|> (ManagedConfigurationsforDevicePatchResource :<|> (ManagedConfigurationsforDeviceGetResource :<|> (ManagedConfigurationsforDeviceDeleteResource :<|> (ManagedConfigurationsforDeviceUpdateResource :<|> (PermissionsGetResource :<|> (ProductsGenerateApprovalURLResource :<|> (ProductsListResource :<|> (ProductsGetResource :<|> (ProductsGetAppRestrictionsSchemaResource :<|> (ProductsUnApproveResource :<|> (ProductsApproveResource :<|> (ProductsGetPermissionsResource :<|> (DevicesListResource :<|> (DevicesSetStateResource :<|> (DevicesGetResource :<|> (DevicesGetStateResource :<|> GrouplicenseUsersListResource)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

-- | A group license object indicates a product that an enterprise admin
--   has approved for use in the enterprise. The product may be free or
--   paid. For free products, a group license object is created in these
--   cases: if the enterprise admin approves a product in Google Play, if
--   the product is added to a collection, or if an entitlement for the
--   product is created for a user via the API. For paid products, a group
--   license object is only created as part of the first bulk purchase of
--   that product in Google Play by the enterprise admin. The API can be
--   used to query group licenses; the available information includes the
--   total number of licenses purchased (for paid products) and the total
--   number of licenses that have been provisioned, that is, the total
--   number of user entitlements in existence for the product. Group
--   license objects are never deleted. If, for example, a free app is
--   added to a collection and then removed, the group license will remain,
--   allowing the enterprise admin to keep track of any remaining
--   entitlements. An enterprise admin may indicate they are no longer
--   interested in the group license by marking it as unapproved in Google
--   Play.
--   
--   <i>See:</i> <a>groupLicense</a> smart constructor.
data GroupLicense

-- | Creates a value of <a>GroupLicense</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>glKind</a></li>
--   <li><a>glNumProvisioned</a></li>
--   <li><a>glNumPurchased</a></li>
--   <li><a>glApproval</a></li>
--   <li><a>glProductId</a></li>
--   <li><a>glAcquisitionKind</a></li>
--   </ul>
groupLicense :: GroupLicense

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#groupLicense".
glKind :: Lens' GroupLicense Text

-- | The total number of provisioned licenses for this product. Returned by
--   read operations, but ignored in write operations.
glNumProvisioned :: Lens' GroupLicense (Maybe Int32)

-- | The number of purchased licenses (possibly in multiple purchases). If
--   this field is omitted then there is no limit on the number of licenses
--   that can be provisioned (e.g. if the acquisition kind is "free").
glNumPurchased :: Lens' GroupLicense (Maybe Int32)

-- | Whether the product to which this group license relates is currently
--   approved by the enterprise, as either "approved" or "unapproved".
--   Products are approved when a group license is first created, but this
--   approval may be revoked by an enterprise admin via Google Play.
--   Unapproved products will not be visible to end users in collections
--   and new entitlements to them should not normally be created.
glApproval :: Lens' GroupLicense (Maybe Text)

-- | The ID of the product that the license is for, e.g.
--   "app:com.google.android.gm".
glProductId :: Lens' GroupLicense (Maybe Text)

-- | How this group license was acquired. "bulkPurchase" means that this
--   group license object was created because the enterprise purchased
--   licenses for this product; this is "free" otherwise (for free
--   products).
glAcquisitionKind :: Lens' GroupLicense (Maybe Text)

-- | The store page resources for the enterprise.
--   
--   <i>See:</i> <a>storeLayoutPagesListResponse</a> smart constructor.
data StoreLayoutPagesListResponse

-- | Creates a value of <a>StoreLayoutPagesListResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slplrKind</a></li>
--   <li><a>slplrPage</a></li>
--   </ul>
storeLayoutPagesListResponse :: StoreLayoutPagesListResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#storeLayoutPagesListResponse".
slplrKind :: Lens' StoreLayoutPagesListResponse Text

-- | A store page of an enterprise.
slplrPage :: Lens' StoreLayoutPagesListResponse [StorePage]

-- | A service account that can be used to authenticate as the enterprise
--   to API calls that require such authentication.
--   
--   <i>See:</i> <a>enterpriseAccount</a> smart constructor.
data EnterpriseAccount

-- | Creates a value of <a>EnterpriseAccount</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eaKind</a></li>
--   <li><a>eaAccountEmail</a></li>
--   </ul>
enterpriseAccount :: EnterpriseAccount

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#enterpriseAccount".
eaKind :: Lens' EnterpriseAccount Text

-- | The email address of the service account.
eaAccountEmail :: Lens' EnterpriseAccount (Maybe Text)

-- | A typed value for the restriction.
--   
--   <i>See:</i> <a>appRestrictionsSchemaRestrictionRestrictionValue</a>
--   smart constructor.
data AppRestrictionsSchemaRestrictionRestrictionValue

-- | Creates a value of
--   <a>AppRestrictionsSchemaRestrictionRestrictionValue</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>arsrrvValueMultiselect</a></li>
--   <li><a>arsrrvValueBool</a></li>
--   <li><a>arsrrvValueInteger</a></li>
--   <li><a>arsrrvType</a></li>
--   <li><a>arsrrvValueString</a></li>
--   </ul>
appRestrictionsSchemaRestrictionRestrictionValue :: AppRestrictionsSchemaRestrictionRestrictionValue

-- | The list of string values - this will only be present if type is
--   multiselect.
arsrrvValueMultiselect :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue [Text]

-- | The boolean value - this will only be present if type is bool.
arsrrvValueBool :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue (Maybe Bool)

-- | The integer value - this will only be present if type is integer.
arsrrvValueInteger :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue (Maybe Int32)

-- | The type of the value being provided.
arsrrvType :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue (Maybe Text)

-- | The string value - this will be present for types string, choice and
--   hidden.
arsrrvValueString :: Lens' AppRestrictionsSchemaRestrictionRestrictionValue (Maybe Text)

-- | The state of a user's device, as accessed by the getState and setState
--   methods on device resources.
--   
--   <i>See:</i> <a>deviceState</a> smart constructor.
data DeviceState

-- | Creates a value of <a>DeviceState</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsKind</a></li>
--   <li><a>dsAccountState</a></li>
--   </ul>
deviceState :: DeviceState

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#deviceState".
dsKind :: Lens' DeviceState Text

-- | The state of the Google account on the device. "enabled" indicates
--   that the Google account on the device can be used to access Google
--   services (including Google Play), while "disabled" means that it
--   cannot. A new device is initially in the "disabled" state.
dsAccountState :: Lens' DeviceState (Maybe Text)

-- | The user resources for the group license.
--   
--   <i>See:</i> <a>groupLicenseUsersListResponse</a> smart constructor.
data GroupLicenseUsersListResponse

-- | Creates a value of <a>GroupLicenseUsersListResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>glulrKind</a></li>
--   <li><a>glulrUser</a></li>
--   </ul>
groupLicenseUsersListResponse :: GroupLicenseUsersListResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#groupLicenseUsersListResponse".
glulrKind :: Lens' GroupLicenseUsersListResponse Text

-- | A user of an enterprise.
glulrUser :: Lens' GroupLicenseUsersListResponse [User]
data TokenPagination

-- | Creates a value of <a>TokenPagination</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tpNextPageToken</a></li>
--   <li><a>tpPreviousPageToken</a></li>
--   </ul>
tokenPagination :: TokenPagination
tpNextPageToken :: Lens' TokenPagination (Maybe Text)
tpPreviousPageToken :: Lens' TokenPagination (Maybe Text)

-- | Information on an approval URL.
--   
--   <i>See:</i> <a>approvalURLInfo</a> smart constructor.
data ApprovalURLInfo

-- | Creates a value of <a>ApprovalURLInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>auiApprovalURL</a></li>
--   <li><a>auiKind</a></li>
--   </ul>
approvalURLInfo :: ApprovalURLInfo

-- | A URL that displays a product's permissions and that can also be used
--   to approve the product with the Products.approve call.
auiApprovalURL :: Lens' ApprovalURLInfo (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#approvalUrlInfo".
auiKind :: Lens' ApprovalURLInfo Text

-- | A managed property of a managed configuration. The property must match
--   one of the properties in the app restrictions schema of the product.
--   Exactly one of the value fields must be populated, and it must match
--   the property's type in the app restrictions schema.
--   
--   <i>See:</i> <a>managedProperty</a> smart constructor.
data ManagedProperty

-- | Creates a value of <a>ManagedProperty</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mpValueStringArray</a></li>
--   <li><a>mpValueBool</a></li>
--   <li><a>mpKey</a></li>
--   <li><a>mpValueBundle</a></li>
--   <li><a>mpValueInteger</a></li>
--   <li><a>mpValueBundleArray</a></li>
--   <li><a>mpValueString</a></li>
--   </ul>
managedProperty :: ManagedProperty

-- | The list of string values - this will only be present if type of the
--   property is multiselect.
mpValueStringArray :: Lens' ManagedProperty [Text]

-- | The boolean value - this will only be present if type of the property
--   is bool.
mpValueBool :: Lens' ManagedProperty (Maybe Bool)

-- | The unique key that identifies the property.
mpKey :: Lens' ManagedProperty (Maybe Text)

-- | The bundle of managed properties - this will only be present if type
--   of the property is bundle.
mpValueBundle :: Lens' ManagedProperty (Maybe ManagedPropertyBundle)

-- | The integer value - this will only be present if type of the property
--   is integer.
mpValueInteger :: Lens' ManagedProperty (Maybe Int32)

-- | The list of bundles of properties - this will only be present if type
--   of the property is bundle_array.
mpValueBundleArray :: Lens' ManagedProperty [ManagedPropertyBundle]

-- | The string value - this will only be present if type of the property
--   is string, choice or hidden.
mpValueString :: Lens' ManagedProperty (Maybe Text)

-- | The store page resources for the enterprise.
--   
--   <i>See:</i> <a>storeLayoutClustersListResponse</a> smart constructor.
data StoreLayoutClustersListResponse

-- | Creates a value of <a>StoreLayoutClustersListResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slclrCluster</a></li>
--   <li><a>slclrKind</a></li>
--   </ul>
storeLayoutClustersListResponse :: StoreLayoutClustersListResponse

-- | A store cluster of an enterprise.
slclrCluster :: Lens' StoreLayoutClustersListResponse [StoreCluster]

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#storeLayoutClustersListResponse".
slclrKind :: Lens' StoreLayoutClustersListResponse Text

-- | A managed configuration resource contains the set of managed
--   properties that have been configured for an Android app. The app's
--   developer would have defined configurable properties in the managed
--   configurations schema.
--   
--   <i>See:</i> <a>managedConfiguration</a> smart constructor.
data ManagedConfiguration

-- | Creates a value of <a>ManagedConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcManagedProperty</a></li>
--   <li><a>mcKind</a></li>
--   <li><a>mcProductId</a></li>
--   </ul>
managedConfiguration :: ManagedConfiguration

-- | The set of managed properties for this configuration.
mcManagedProperty :: Lens' ManagedConfiguration [ManagedProperty]

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#managedConfiguration".
mcKind :: Lens' ManagedConfiguration Text

-- | The ID of the product that the managed configuration is for, e.g.
--   "app:com.google.android.gm".
mcProductId :: Lens' ManagedConfiguration (Maybe Text)

-- | Definition of a managed Google Play store cluster, a list of products
--   displayed as part of a store page.
--   
--   <i>See:</i> <a>storeCluster</a> smart constructor.
data StoreCluster

-- | Creates a value of <a>StoreCluster</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scKind</a></li>
--   <li><a>scName</a></li>
--   <li><a>scOrderInPage</a></li>
--   <li><a>scId</a></li>
--   <li><a>scProductId</a></li>
--   </ul>
storeCluster :: StoreCluster

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#storeCluster".
scKind :: Lens' StoreCluster Text

-- | Ordered list of localized strings giving the name of this page. The
--   text displayed is the one that best matches the user locale, or the
--   first entry if there is no good match. There needs to be at least one
--   entry.
scName :: Lens' StoreCluster [LocalizedText]

-- | String (US-ASCII only) used to determine order of this cluster within
--   the parent page's elements. Page elements are sorted in lexicographic
--   order of this field. Duplicated values are allowed, but ordering
--   between elements with duplicate order is undefined. The value of this
--   field is never visible to a user, it is used solely for the purpose of
--   defining an ordering. Maximum length is 256 characters.
scOrderInPage :: Lens' StoreCluster (Maybe Text)

-- | Unique ID of this cluster. Assigned by the server. Immutable once
--   assigned.
scId :: Lens' StoreCluster (Maybe Text)

-- | List of products in the order they are displayed in the cluster. There
--   should not be duplicates within a cluster.
scProductId :: Lens' StoreCluster [Text]

-- | Specification for a token used to generate iframes. The token
--   specifies what data the admin is allowed to modify and the URI the
--   iframe is allowed to communiate with.
--   
--   <i>See:</i> <a>administratorWebTokenSpec</a> smart constructor.
data AdministratorWebTokenSpec

-- | Creates a value of <a>AdministratorWebTokenSpec</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>awtsParent</a></li>
--   <li><a>awtsKind</a></li>
--   <li><a>awtsPermission</a></li>
--   </ul>
administratorWebTokenSpec :: AdministratorWebTokenSpec

-- | The URI of the parent frame hosting the iframe. To prevent XSS, the
--   iframe may not be hosted at other URIs. This URI must be https.
awtsParent :: Lens' AdministratorWebTokenSpec (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#administratorWebTokenSpec".
awtsKind :: Lens' AdministratorWebTokenSpec Text

-- | The list of permissions the admin is granted within the iframe. The
--   admin will only be allowed to view an iframe if they have all of the
--   permissions associated with it. The only valid value is "approveApps"
--   that will allow the admin to access the iframe in "approve" mode.
awtsPermission :: Lens' AdministratorWebTokenSpec [Text]

-- | A notification of one event relating to an enterprise.
--   
--   <i>See:</i> <a>notification</a> smart constructor.
data Notification

-- | Creates a value of <a>Notification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nEnterpriseId</a></li>
--   <li><a>nNewPermissionsEvent</a></li>
--   <li><a>nProductApprovalEvent</a></li>
--   <li><a>nProductAvailabilityChangeEvent</a></li>
--   <li><a>nAppUpdateEvent</a></li>
--   <li><a>nInstallFailureEvent</a></li>
--   <li><a>nAppRestrictionsSchemaChangeEvent</a></li>
--   <li><a>nNewDeviceEvent</a></li>
--   <li><a>nTimestampMillis</a></li>
--   </ul>
notification :: Notification

-- | The ID of the enterprise for which the notification is sent. This will
--   always be present.
nEnterpriseId :: Lens' Notification (Maybe Text)

-- | Notifications about new app permissions.
nNewPermissionsEvent :: Lens' Notification (Maybe NewPermissionsEvent)

-- | Notifications about changes to a product's approval status.
nProductApprovalEvent :: Lens' Notification (Maybe ProductApprovalEvent)

-- | Notifications about product availability changes.
nProductAvailabilityChangeEvent :: Lens' Notification (Maybe ProductAvailabilityChangeEvent)

-- | Notifications about app updates.
nAppUpdateEvent :: Lens' Notification (Maybe AppUpdateEvent)

-- | Notifications about an app installation failure.
nInstallFailureEvent :: Lens' Notification (Maybe InstallFailureEvent)

-- | Notifications about new app restrictions schema changes.
nAppRestrictionsSchemaChangeEvent :: Lens' Notification (Maybe AppRestrictionsSchemaChangeEvent)

-- | Notifications about new devices.
nNewDeviceEvent :: Lens' Notification (Maybe NewDeviceEvent)

-- | The time when the notification was published in milliseconds since
--   1970-01-01T00:00:00Z. This will always be present.
nTimestampMillis :: Lens' Notification (Maybe Int64)
data PageInfo

-- | Creates a value of <a>PageInfo</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>piResultPerPage</a></li>
--   <li><a>piTotalResults</a></li>
--   <li><a>piStartIndex</a></li>
--   </ul>
pageInfo :: PageInfo
piResultPerPage :: Lens' PageInfo (Maybe Int32)
piTotalResults :: Lens' PageInfo (Maybe Int32)
piStartIndex :: Lens' PageInfo (Maybe Int32)

-- | A product permissions resource represents the set of permissions
--   required by a specific app and whether or not they have been accepted
--   by an enterprise admin. The API can be used to read the set of
--   permissions, and also to update the set to indicate that permissions
--   have been accepted.
--   
--   <i>See:</i> <a>productPermission</a> smart constructor.
data ProductPermission

-- | Creates a value of <a>ProductPermission</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ppState</a></li>
--   <li><a>ppPermissionId</a></li>
--   </ul>
productPermission :: ProductPermission

-- | Whether the permission has been accepted or not.
ppState :: Lens' ProductPermission (Maybe Text)

-- | An opaque string uniquely identifying the permission.
ppPermissionId :: Lens' ProductPermission (Maybe Text)

-- | An event generated when new permissions are added to an app.
--   
--   <i>See:</i> <a>newPermissionsEvent</a> smart constructor.
data NewPermissionsEvent

-- | Creates a value of <a>NewPermissionsEvent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>npeRequestedPermissions</a></li>
--   <li><a>npeApprovedPermissions</a></li>
--   <li><a>npeProductId</a></li>
--   </ul>
newPermissionsEvent :: NewPermissionsEvent

-- | The set of permissions that the app is currently requesting. Use
--   Permissions.Get on the EMM API to retrieve details about these
--   permissions.
npeRequestedPermissions :: Lens' NewPermissionsEvent [Text]

-- | The set of permissions that the enterprise admin has already approved
--   for this application. Use Permissions.Get on the EMM API to retrieve
--   details about these permissions.
npeApprovedPermissions :: Lens' NewPermissionsEvent [Text]

-- | The id of the product (e.g. "app:com.google.android.gm") for which new
--   permissions were added. This field will always be present.
npeProductId :: Lens' NewPermissionsEvent (Maybe Text)

-- | An event generated whenever a product's availability changes.
--   
--   <i>See:</i> <a>productAvailabilityChangeEvent</a> smart constructor.
data ProductAvailabilityChangeEvent

-- | Creates a value of <a>ProductAvailabilityChangeEvent</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>paceAvailabilityStatus</a></li>
--   <li><a>paceProductId</a></li>
--   </ul>
productAvailabilityChangeEvent :: ProductAvailabilityChangeEvent

-- | The new state of the product. This field will always be present.
paceAvailabilityStatus :: Lens' ProductAvailabilityChangeEvent (Maybe Text)

-- | The id of the product (e.g. "app:com.google.android.gm") for which the
--   product availability changed. This field will always be present.
paceProductId :: Lens' ProductAvailabilityChangeEvent (Maybe Text)

-- | An event generated when a product's approval status is changed.
--   
--   <i>See:</i> <a>productApprovalEvent</a> smart constructor.
data ProductApprovalEvent

-- | Creates a value of <a>ProductApprovalEvent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>paeApproved</a></li>
--   <li><a>paeProductId</a></li>
--   </ul>
productApprovalEvent :: ProductApprovalEvent

-- | Whether the product was approved or unapproved. This field will always
--   be present.
paeApproved :: Lens' ProductApprovalEvent (Maybe Text)

-- | The id of the product (e.g. "app:com.google.android.gm") for which the
--   approval status has changed. This field will always be present.
paeProductId :: Lens' ProductApprovalEvent (Maybe Text)

-- | A device resource represents a mobile device managed by the EMM and
--   belonging to a specific enterprise user. This collection cannot be
--   modified via the API; it is automatically populated as devices are set
--   up to be managed.
--   
--   <i>See:</i> <a>device</a> smart constructor.
data Device

-- | Creates a value of <a>Device</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dKind</a></li>
--   <li><a>dManagementType</a></li>
--   <li><a>dAndroidId</a></li>
--   </ul>
device :: Device

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#device".
dKind :: Lens' Device Text

-- | Identifies the extent to which the device is controlled by a managed
--   Google Play EMM in various deployment configurations. Possible values
--   include: - "managedDevice", a device that has the EMM's device policy
--   controller (DPC) as the device owner, - "managedProfile", a device
--   that has a profile managed by the DPC (DPC is profile owner) in
--   addition to a separate, personal profile that is unavailable to the
--   DPC, - "containerApp", a device running the container App. The
--   container App is managed by the DPC, - "unmanagedProfile", a device
--   that has been allowed (by the domain's admin, using the Admin Console
--   to enable the privilege) to use managed Google Play, but the profile
--   is itself not owned by a DPC.
dManagementType :: Lens' Device (Maybe Text)

-- | The Google Play Services Android ID for the device encoded as a
--   lowercase hex string, e.g. "123456789abcdef0".
dAndroidId :: Lens' Device (Maybe Text)

-- | Credentials that can be used to authenticate as a service account.
--   
--   <i>See:</i> <a>serviceAccountKey</a> smart constructor.
data ServiceAccountKey

-- | Creates a value of <a>ServiceAccountKey</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sakKind</a></li>
--   <li><a>sakData</a></li>
--   <li><a>sakId</a></li>
--   <li><a>sakType</a></li>
--   <li><a>sakPublicData</a></li>
--   </ul>
serviceAccountKey :: ServiceAccountKey

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#serviceAccountKey".
sakKind :: Lens' ServiceAccountKey Text

-- | The body of the private key credentials file, in string format. This
--   is only populated when the ServiceAccountKey is created, and is not
--   stored by Google.
sakData :: Lens' ServiceAccountKey (Maybe Text)

-- | An opaque, unique identifier for this ServiceAccountKey. Assigned by
--   the server.
sakId :: Lens' ServiceAccountKey (Maybe Text)

-- | The file format of the generated key data.
sakType :: Lens' ServiceAccountKey (Maybe Text)

-- | Public key data for the credentials file. This is an X.509 cert. If
--   you are using the googleCredentials key type, this is identical to the
--   cert that can be retrieved by using the X.509 cert url inside of the
--   credentials file.
sakPublicData :: Lens' ServiceAccountKey (Maybe Text)

-- | The install resources for the device.
--   
--   <i>See:</i> <a>installsListResponse</a> smart constructor.
data InstallsListResponse

-- | Creates a value of <a>InstallsListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ilrKind</a></li>
--   <li><a>ilrInstall</a></li>
--   </ul>
installsListResponse :: InstallsListResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#installsListResponse".
ilrKind :: Lens' InstallsListResponse Text

-- | An installation of an app for a user on a specific device. The
--   existence of an install implies that the user must have an entitlement
--   to the app.
ilrInstall :: Lens' InstallsListResponse [Install]

-- | A restriction in the App Restriction Schema represents a piece of
--   configuration that may be pre-applied.
--   
--   <i>See:</i> <a>appRestrictionsSchemaRestriction</a> smart constructor.
data AppRestrictionsSchemaRestriction

-- | Creates a value of <a>AppRestrictionsSchemaRestriction</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>arsrRestrictionType</a></li>
--   <li><a>arsrEntry</a></li>
--   <li><a>arsrKey</a></li>
--   <li><a>arsrEntryValue</a></li>
--   <li><a>arsrDefaultValue</a></li>
--   <li><a>arsrTitle</a></li>
--   <li><a>arsrDescription</a></li>
--   <li><a>arsrNestedRestriction</a></li>
--   </ul>
appRestrictionsSchemaRestriction :: AppRestrictionsSchemaRestriction

-- | The type of the restriction.
arsrRestrictionType :: Lens' AppRestrictionsSchemaRestriction (Maybe Text)

-- | For choice or multiselect restrictions, the list of possible entries'
--   human-readable names.
arsrEntry :: Lens' AppRestrictionsSchemaRestriction [Text]

-- | The unique key that the product uses to identify the restriction, e.g.
--   "com.google.android.gm.fieldname".
arsrKey :: Lens' AppRestrictionsSchemaRestriction (Maybe Text)

-- | For choice or multiselect restrictions, the list of possible entries'
--   machine-readable values. These values should be used in the
--   configuration, either as a single string value for a choice
--   restriction or in a stringArray for a multiselect restriction.
arsrEntryValue :: Lens' AppRestrictionsSchemaRestriction [Text]

-- | The default value of the restriction. bundle and bundleArray
--   restrictions never have a default value.
arsrDefaultValue :: Lens' AppRestrictionsSchemaRestriction (Maybe AppRestrictionsSchemaRestrictionRestrictionValue)

-- | The name of the restriction.
arsrTitle :: Lens' AppRestrictionsSchemaRestriction (Maybe Text)

-- | A longer description of the restriction, giving more detail of what it
--   affects.
arsrDescription :: Lens' AppRestrictionsSchemaRestriction (Maybe Text)

-- | For bundle or bundleArray restrictions, the list of nested
--   restrictions. A bundle restriction is always nested within a
--   bundleArray restriction, and a bundleArray restriction is at most two
--   levels deep.
arsrNestedRestriction :: Lens' AppRestrictionsSchemaRestriction [AppRestrictionsSchemaRestriction]

-- | This represents an enterprise admin who can manage the enterprise in
--   the managed Google Play store.
--   
--   <i>See:</i> <a>administrator</a> smart constructor.
data Administrator

-- | Creates a value of <a>Administrator</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aEmail</a></li>
--   </ul>
administrator :: Administrator

-- | The admin's email address.
aEmail :: Lens' Administrator (Maybe Text)

-- | The matching user resources.
--   
--   <i>See:</i> <a>usersListResponse</a> smart constructor.
data UsersListResponse

-- | Creates a value of <a>UsersListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ulrKind</a></li>
--   <li><a>ulrUser</a></li>
--   </ul>
usersListResponse :: UsersListResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#usersListResponse".
ulrKind :: Lens' UsersListResponse Text

-- | A user of an enterprise.
ulrUser :: Lens' UsersListResponse [User]

-- | An AuthenticationToken is used by the EMM's device policy client on a
--   device to provision the given EMM-managed user on that device.
--   
--   <i>See:</i> <a>authenticationToken</a> smart constructor.
data AuthenticationToken

-- | Creates a value of <a>AuthenticationToken</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>atKind</a></li>
--   <li><a>atToken</a></li>
--   </ul>
authenticationToken :: AuthenticationToken

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#authenticationToken".
atKind :: Lens' AuthenticationToken Text

-- | The authentication token to be passed to the device policy client on
--   the device where it can be used to provision the account for which
--   this token was generated.
atToken :: Lens' AuthenticationToken (Maybe Text)

-- | This represents a single version of the app.
--   
--   <i>See:</i> <a>appVersion</a> smart constructor.
data AppVersion

-- | Creates a value of <a>AppVersion</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avVersionCode</a></li>
--   <li><a>avVersionString</a></li>
--   </ul>
appVersion :: AppVersion

-- | Unique increasing identifier for the app version.
avVersionCode :: Lens' AppVersion (Maybe Int32)

-- | The string used in the Play store by the app developer to identify the
--   version. The string is not necessarily unique or localized (for
--   example, the string could be "1.4").
avVersionString :: Lens' AppVersion (Maybe Text)

-- | The request mode for pulling notifications. Specifying
--   waitForNotifications will cause the request to block and wait until
--   one or more notifications are present, or return an empty notification
--   list if no notifications are present after some time. Speciying
--   returnImmediately will cause the request to immediately return the
--   pending notifications, or an empty list if no notifications are
--   present. If omitted, defaults to waitForNotifications.
data EnterprisesPullNotificationSetRequestMode

-- | <pre>
--   returnImmediately
--   </pre>
ReturnImmediately :: EnterprisesPullNotificationSetRequestMode

-- | <pre>
--   waitForNotifications
--   </pre>
WaitForNotifications :: EnterprisesPullNotificationSetRequestMode

-- | A bundle of managed properties.
--   
--   <i>See:</i> <a>managedPropertyBundle</a> smart constructor.
data ManagedPropertyBundle

-- | Creates a value of <a>ManagedPropertyBundle</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mpbManagedProperty</a></li>
--   </ul>
managedPropertyBundle :: ManagedPropertyBundle

-- | The list of managed properties.
mpbManagedProperty :: Lens' ManagedPropertyBundle [ManagedProperty]

-- | The grouplicense resources for the enterprise.
--   
--   <i>See:</i> <a>groupLicensesListResponse</a> smart constructor.
data GroupLicensesListResponse

-- | Creates a value of <a>GroupLicensesListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gllrGroupLicense</a></li>
--   <li><a>gllrKind</a></li>
--   </ul>
groupLicensesListResponse :: GroupLicensesListResponse

-- | A group license for a product approved for use in the enterprise.
gllrGroupLicense :: Lens' GroupLicensesListResponse [GroupLicense]

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#groupLicensesListResponse".
gllrKind :: Lens' GroupLicensesListResponse Text

-- | A set of products.
--   
--   <i>See:</i> <a>productSet</a> smart constructor.
data ProductSet

-- | Creates a value of <a>ProductSet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psKind</a></li>
--   <li><a>psProductSetBehavior</a></li>
--   <li><a>psProductId</a></li>
--   </ul>
productSet :: ProductSet

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#productSet".
psKind :: Lens' ProductSet Text

-- | The interpretation of this product set. "unknown" should never be sent
--   and ignored if received. "whitelist" means that this product set
--   constitutes a whitelist. "includeAll" means that all products are
--   accessible, including products that are approved, not approved, and
--   even products where approval has been revoked. If the value is
--   "includeAll", the value of the productId field is therefore ignored.
--   If a value is not supplied, it is interpreted to be "whitelist" for
--   backwards compatibility.
psProductSetBehavior :: Lens' ProductSet (Maybe Text)

-- | The list of product IDs making up the set of products.
psProductId :: Lens' ProductSet [Text]

-- | The existence of an install resource indicates that an app is
--   installed on a particular device (or that an install is pending). The
--   API can be used to create an install resource using the update method.
--   This triggers the actual install of the app on the device. If the user
--   does not already have an entitlement for the app then an attempt is
--   made to create one. If this fails (e.g. because the app is not free
--   and there is no available license) then the creation of the install
--   fails. The API can also be used to update an installed app. If the
--   update method is used on an existing install then the app will be
--   updated to the latest available version. Note that it is not possible
--   to force the installation of a specific version of an app; the version
--   code is read-only. If a user installs an app themselves (as permitted
--   by the enterprise), then again an install resource and possibly an
--   entitlement resource are automatically created. The API can also be
--   used to delete an install resource, which triggers the removal of the
--   app from the device. Note that deleting an install does not
--   automatically remove the corresponding entitlement, even if there are
--   no remaining installs. The install resource will also be deleted if
--   the user uninstalls the app themselves.
--   
--   <i>See:</i> <a>install</a> smart constructor.
data Install

-- | Creates a value of <a>Install</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iVersionCode</a></li>
--   <li><a>iKind</a></li>
--   <li><a>iInstallState</a></li>
--   <li><a>iProductId</a></li>
--   </ul>
install :: Install

-- | The version of the installed product. Guaranteed to be set only if the
--   install state is "installed".
iVersionCode :: Lens' Install (Maybe Int32)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#install".
iKind :: Lens' Install Text

-- | Install state. The state "installPending" means that an install
--   request has recently been made and download to the device is in
--   progress. The state "installed" means that the app has been installed.
--   This field is read-only.
iInstallState :: Lens' Install (Maybe Text)

-- | The ID of the product that the install is for, e.g.
--   "app:com.google.android.gm".
iProductId :: Lens' Install (Maybe Text)
data ServiceAccountKeysListResponse

-- | Creates a value of <a>ServiceAccountKeysListResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>saklrServiceAccountKey</a></li>
--   </ul>
serviceAccountKeysListResponse :: ServiceAccountKeysListResponse

-- | The service account credentials.
saklrServiceAccountKey :: Lens' ServiceAccountKeysListResponse [ServiceAccountKey]

-- | A Users resource represents an account associated with an enterprise.
--   The account may be specific to a device or to an individual user (who
--   can then use the account across multiple devices). The account may
--   provide access to managed Google Play only, or to other Google
--   services, depending on the identity model: - The Google managed domain
--   identity model requires synchronization to Google account sources (via
--   primaryEmail). - The managed Google Play Accounts identity model
--   provides a dynamic means for enterprises to create user or device
--   accounts as needed. These accounts provide access to managed Google
--   Play.
--   
--   <i>See:</i> <a>user</a> smart constructor.
data User

-- | Creates a value of <a>User</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uAccountIdentifier</a></li>
--   <li><a>uKind</a></li>
--   <li><a>uDisplayName</a></li>
--   <li><a>uId</a></li>
--   <li><a>uPrimaryEmail</a></li>
--   <li><a>uManagementType</a></li>
--   <li><a>uAccountType</a></li>
--   </ul>
user :: User

-- | A unique identifier you create for this user, such as "user342" or
--   "asset#44418". Do not use personally identifiable information (PII)
--   for this property. Must always be set for EMM-managed users. Not set
--   for Google-managed users.
uAccountIdentifier :: Lens' User (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#user".
uKind :: Lens' User Text

-- | The name that will appear in user interfaces. Setting this property is
--   optional when creating EMM-managed users. If you do set this property,
--   use something generic about the organization (such as "Example, Inc.")
--   or your name (as EMM). Not used for Google-managed user accounts.
uDisplayName :: Lens' User (Maybe Text)

-- | The unique ID for the user.
uId :: Lens' User (Maybe Text)

-- | The user's primary email address, for example, "jsmith'example.com".
--   Will always be set for Google managed users and not set for EMM
--   managed users.
uPrimaryEmail :: Lens' User (Maybe Text)

-- | The entity that manages the user. With googleManaged users, the source
--   of truth is Google so EMMs have to make sure a Google Account exists
--   for the user. With emmManaged users, the EMM is in charge.
uManagementType :: Lens' User (Maybe Text)

-- | The type of account that this user represents. A userAccount can be
--   installed on multiple devices, but a deviceAccount is specific to a
--   single device. An EMM-managed user (emmManaged) can be either type
--   (userAccount, deviceAccount), but a Google-managed user
--   (googleManaged) is always a userAccount.
uAccountType :: Lens' User (Maybe Text)

-- | The managed configuration resources for the device.
--   
--   <i>See:</i> <a>managedConfigurationsForDeviceListResponse</a> smart
--   constructor.
data ManagedConfigurationsForDeviceListResponse

-- | Creates a value of <a>ManagedConfigurationsForDeviceListResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcfdlrKind</a></li>
--   <li><a>mcfdlrManagedConfigurationForDevice</a></li>
--   </ul>
managedConfigurationsForDeviceListResponse :: ManagedConfigurationsForDeviceListResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#managedConfigurationsForDeviceListResponse".
mcfdlrKind :: Lens' ManagedConfigurationsForDeviceListResponse Text

-- | A managed configuration for an app on a specific device.
mcfdlrManagedConfigurationForDevice :: Lens' ManagedConfigurationsForDeviceListResponse [ManagedConfiguration]
data ProductsGenerateApprovalURLResponse

-- | Creates a value of <a>ProductsGenerateApprovalURLResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pgaurURL</a></li>
--   </ul>
productsGenerateApprovalURLResponse :: ProductsGenerateApprovalURLResponse

-- | A URL that can be rendered in an iframe to display the permissions (if
--   any) of a product. This URL can be used to approve the product only
--   once and only within 24 hours of being generated, using the
--   Products.approve call. If the product is currently unapproved and has
--   no permissions, this URL will point to an empty page. If the product
--   is currently approved, a URL will only be generated if that product
--   has added permissions since it was last approved, and the URL will
--   only display those new permissions that have not yet been accepted.
pgaurURL :: Lens' ProductsGenerateApprovalURLResponse (Maybe Text)

-- | Definition of a managed Google Play store page, made of a localized
--   name and links to other pages. A page also contains clusters defined
--   as a subcollection.
--   
--   <i>See:</i> <a>storePage</a> smart constructor.
data StorePage

-- | Creates a value of <a>StorePage</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spKind</a></li>
--   <li><a>spLink</a></li>
--   <li><a>spName</a></li>
--   <li><a>spId</a></li>
--   </ul>
storePage :: StorePage

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#storePage".
spKind :: Lens' StorePage Text

-- | Ordered list of pages a user should be able to reach from this page.
--   The pages must exist, must not be this page, and once a link is
--   created the page linked to cannot be deleted until all links to it are
--   removed. It is recommended that the basic pages are created first,
--   before adding the links between pages. No attempt is made to verify
--   that all pages are reachable from the homepage.
spLink :: Lens' StorePage [Text]

-- | Ordered list of localized strings giving the name of this page. The
--   text displayed is the one that best matches the user locale, or the
--   first entry if there is no good match. There needs to be at least one
--   entry.
spName :: Lens' StorePage [LocalizedText]

-- | Unique ID of this page. Assigned by the server. Immutable once
--   assigned.
spId :: Lens' StorePage (Maybe Text)
data EnterprisesSendTestPushNotificationResponse

-- | Creates a value of <a>EnterprisesSendTestPushNotificationResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>estpnrTopicName</a></li>
--   <li><a>estpnrMessageId</a></li>
--   </ul>
enterprisesSendTestPushNotificationResponse :: EnterprisesSendTestPushNotificationResponse

-- | The name of the Cloud Pub/Sub topic to which notifications for this
--   enterprise's enrolled account will be sent.
estpnrTopicName :: Lens' EnterprisesSendTestPushNotificationResponse (Maybe Text)

-- | The message ID of the test push notification that was sent.
estpnrMessageId :: Lens' EnterprisesSendTestPushNotificationResponse (Maybe Text)

-- | A service account identity, including the name and credentials that
--   can be used to authenticate as the service account.
--   
--   <i>See:</i> <a>serviceAccount</a> smart constructor.
data ServiceAccount

-- | Creates a value of <a>ServiceAccount</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>saKind</a></li>
--   <li><a>saKey</a></li>
--   <li><a>saName</a></li>
--   </ul>
serviceAccount :: ServiceAccount

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#serviceAccount".
saKind :: Lens' ServiceAccount Text

-- | Credentials that can be used to authenticate as this ServiceAccount.
saKey :: Lens' ServiceAccount (Maybe ServiceAccountKey)

-- | The account name of the service account, in the form of an email
--   address. Assigned by the server.
saName :: Lens' ServiceAccount (Maybe Text)

-- | An event generated when a new version of an app is uploaded to Google
--   Play. Notifications are sent for new public versions only: alpha,
--   beta, or canary versions do not generate this event. To fetch
--   up-to-date version history for an app, use Products.Get on the EMM
--   API.
--   
--   <i>See:</i> <a>appUpdateEvent</a> smart constructor.
data AppUpdateEvent

-- | Creates a value of <a>AppUpdateEvent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aueProductId</a></li>
--   </ul>
appUpdateEvent :: AppUpdateEvent

-- | The id of the product (e.g. "app:com.google.android.gm") that was
--   updated. This field will always be present.
aueProductId :: Lens' AppUpdateEvent (Maybe Text)

-- | The matching enterprise resources.
--   
--   <i>See:</i> <a>enterprisesListResponse</a> smart constructor.
data EnterprisesListResponse

-- | Creates a value of <a>EnterprisesListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>elrKind</a></li>
--   <li><a>elrEnterprise</a></li>
--   </ul>
enterprisesListResponse :: EnterprisesListResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#enterprisesListResponse".
elrKind :: Lens' EnterprisesListResponse Text

-- | An enterprise.
elrEnterprise :: Lens' EnterprisesListResponse [Enterprise]

-- | A resource returned by the PullNotificationSet API, which contains a
--   collection of notifications for enterprises associated with the
--   service account authenticated for the request.
--   
--   <i>See:</i> <a>notificationSet</a> smart constructor.
data NotificationSet

-- | Creates a value of <a>NotificationSet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nsNotificationSetId</a></li>
--   <li><a>nsNotification</a></li>
--   <li><a>nsKind</a></li>
--   </ul>
notificationSet :: NotificationSet

-- | The notification set ID, required to mark the notification as received
--   with the Enterprises.AcknowledgeNotification API. This will be omitted
--   if no notifications are present.
nsNotificationSetId :: Lens' NotificationSet (Maybe Text)

-- | The notifications received, or empty if no notifications are present.
nsNotification :: Lens' NotificationSet [Notification]

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#notificationSet".
nsKind :: Lens' NotificationSet Text

-- | Represents the list of app restrictions available to be pre-configured
--   for the product.
--   
--   <i>See:</i> <a>appRestrictionsSchema</a> smart constructor.
data AppRestrictionsSchema

-- | Creates a value of <a>AppRestrictionsSchema</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>arsKind</a></li>
--   <li><a>arsRestrictions</a></li>
--   </ul>
appRestrictionsSchema :: AppRestrictionsSchema

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#appRestrictionsSchema".
arsKind :: Lens' AppRestrictionsSchema Text

-- | The set of restrictions that make up this schema.
arsRestrictions :: Lens' AppRestrictionsSchema [AppRestrictionsSchemaRestriction]

-- | A localized string with its locale.
--   
--   <i>See:</i> <a>localizedText</a> smart constructor.
data LocalizedText

-- | Creates a value of <a>LocalizedText</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltText</a></li>
--   <li><a>ltLocale</a></li>
--   </ul>
localizedText :: LocalizedText

-- | The text localized in the associated locale.
ltText :: Lens' LocalizedText (Maybe Text)

-- | The BCP47 tag for a locale. (e.g. "en-US", "de").
ltLocale :: Lens' LocalizedText (Maybe Text)

-- | A UserToken is used by a user when setting up a managed device or
--   profile with their managed Google Play account on a device. When the
--   user enters their email address and token (activation code) the
--   appropriate EMM app can be automatically downloaded.
--   
--   <i>See:</i> <a>userToken</a> smart constructor.
data UserToken

-- | Creates a value of <a>UserToken</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>utKind</a></li>
--   <li><a>utToken</a></li>
--   <li><a>utUserId</a></li>
--   </ul>
userToken :: UserToken

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#userToken".
utKind :: Lens' UserToken Text

-- | The token (activation code) to be entered by the user. This consists
--   of a sequence of decimal digits. Note that the leading digit may be 0.
utToken :: Lens' UserToken (Maybe Text)

-- | The unique ID for the user.
utUserId :: Lens' UserToken (Maybe Text)

-- | The device resources for the user.
--   
--   <i>See:</i> <a>devicesListResponse</a> smart constructor.
data DevicesListResponse

-- | Creates a value of <a>DevicesListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlrKind</a></li>
--   <li><a>dlrDevice</a></li>
--   </ul>
devicesListResponse :: DevicesListResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#devicesListResponse".
dlrKind :: Lens' DevicesListResponse Text

-- | A managed device.
dlrDevice :: Lens' DevicesListResponse [Device]

-- | An Enterprises resource represents the binding between an EMM and a
--   specific organization. That binding can be instantiated in one of two
--   different ways using this API as follows: - For Google managed domain
--   customers, the process involves using Enterprises.enroll and
--   Enterprises.setAccount (in conjunction with artifacts obtained from
--   the Admin console and the Google API Console) and submitted to the EMM
--   through a more-or-less manual process. - For managed Google Play
--   Accounts customers, the process involves using
--   Enterprises.generateSignupUrl and Enterprises.completeSignup in
--   conjunction with the managed Google Play sign-up UI (Google-provided
--   mechanism) to create the binding without manual steps. As an EMM, you
--   can support either or both approaches in your EMM console. See Create
--   an Enterprise for details.
--   
--   <i>See:</i> <a>enterprise</a> smart constructor.
data Enterprise

-- | Creates a value of <a>Enterprise</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eKind</a></li>
--   <li><a>eAdministrator</a></li>
--   <li><a>ePrimaryDomain</a></li>
--   <li><a>eName</a></li>
--   <li><a>eId</a></li>
--   </ul>
enterprise :: Enterprise

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#enterprise".
eKind :: Lens' Enterprise Text

-- | Admins of the enterprise. This is only supported for enterprises
--   created via the EMM-initiated flow.
eAdministrator :: Lens' Enterprise [Administrator]

-- | The enterprise's primary domain, such as "example.com".
ePrimaryDomain :: Lens' Enterprise (Maybe Text)

-- | The name of the enterprise, for example, "Example, Inc".
eName :: Lens' Enterprise (Maybe Text)

-- | The unique ID for the enterprise.
eId :: Lens' Enterprise (Maybe Text)

-- | An event generated when an app installation failed on a device
--   
--   <i>See:</i> <a>installFailureEvent</a> smart constructor.
data InstallFailureEvent

-- | Creates a value of <a>InstallFailureEvent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ifeFailureReason</a></li>
--   <li><a>ifeFailureDetails</a></li>
--   <li><a>ifeUserId</a></li>
--   <li><a>ifeDeviceId</a></li>
--   <li><a>ifeProductId</a></li>
--   </ul>
installFailureEvent :: InstallFailureEvent

-- | The reason for the installation failure. This field will always be
--   present.
ifeFailureReason :: Lens' InstallFailureEvent (Maybe Text)

-- | Additional details on the failure if applicable.
ifeFailureDetails :: Lens' InstallFailureEvent (Maybe Text)

-- | The ID of the user. This field will always be present.
ifeUserId :: Lens' InstallFailureEvent (Maybe Text)

-- | The Android ID of the device. This field will always be present.
ifeDeviceId :: Lens' InstallFailureEvent (Maybe Text)

-- | The id of the product (e.g. "app:com.google.android.gm") for which the
--   install failure event occured. This field will always be present.
ifeProductId :: Lens' InstallFailureEvent (Maybe Text)

-- | The managed configuration resources for the user.
--   
--   <i>See:</i> <a>managedConfigurationsForUserListResponse</a> smart
--   constructor.
data ManagedConfigurationsForUserListResponse

-- | Creates a value of <a>ManagedConfigurationsForUserListResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcfulrManagedConfigurationForUser</a></li>
--   <li><a>mcfulrKind</a></li>
--   </ul>
managedConfigurationsForUserListResponse :: ManagedConfigurationsForUserListResponse

-- | A managed configuration for an app for a specific user.
mcfulrManagedConfigurationForUser :: Lens' ManagedConfigurationsForUserListResponse [ManagedConfiguration]

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#managedConfigurationsForUserListResponse".
mcfulrKind :: Lens' ManagedConfigurationsForUserListResponse Text

-- | General setting for the managed Google Play store layout, currently
--   only specifying the page to display the first time the store is
--   opened.
--   
--   <i>See:</i> <a>storeLayout</a> smart constructor.
data StoreLayout

-- | Creates a value of <a>StoreLayout</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slStoreLayoutType</a></li>
--   <li><a>slKind</a></li>
--   <li><a>slHomepageId</a></li>
--   </ul>
storeLayout :: StoreLayout

-- | The store layout type. By default, this value is set to "basic". If
--   set to "custom", "homepageId" must be specified. If set to "basic",
--   the layout will consist of all approved apps accessible by the user,
--   split in pages of 100 each; in this case, "homepageId" must not be
--   specified. The "basic" setting takes precedence over any existing
--   collections setup for this enterprise (if any). Should the enterprise
--   use collectionViewers for controlling access rights, these will still
--   be respected.
slStoreLayoutType :: Lens' StoreLayout (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#storeLayout".
slKind :: Lens' StoreLayout Text

-- | The ID of the store page to be used as the homepage. The homepage will
--   be used as the first page shown in the managed Google Play store. If a
--   homepage has not been set, the Play store shown on devices will be
--   empty. Not specifying a homepage on a store layout effectively empties
--   the store. If there exists at least one page, this field must be set
--   to the ID of a valid page.
slHomepageId :: Lens' StoreLayout (Maybe Text)

-- | An event generated when a new app version is uploaded to Google Play
--   and its app restrictions schema changed. To fetch the app restrictions
--   schema for an app, use Products.getAppRestrictionsSchema on the EMM
--   API.
--   
--   <i>See:</i> <a>appRestrictionsSchemaChangeEvent</a> smart constructor.
data AppRestrictionsSchemaChangeEvent

-- | Creates a value of <a>AppRestrictionsSchemaChangeEvent</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>arsceProductId</a></li>
--   </ul>
appRestrictionsSchemaChangeEvent :: AppRestrictionsSchemaChangeEvent

-- | The id of the product (e.g. "app:com.google.android.gm") for which the
--   app restriction schema changed. This field will always be present.
arsceProductId :: Lens' AppRestrictionsSchemaChangeEvent (Maybe Text)

-- | An event generated when a new device is ready to be managed.
--   
--   <i>See:</i> <a>newDeviceEvent</a> smart constructor.
data NewDeviceEvent

-- | Creates a value of <a>NewDeviceEvent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ndeUserId</a></li>
--   <li><a>ndeDeviceId</a></li>
--   <li><a>ndeManagementType</a></li>
--   </ul>
newDeviceEvent :: NewDeviceEvent

-- | The ID of the user. This field will always be present.
ndeUserId :: Lens' NewDeviceEvent (Maybe Text)

-- | The Android ID of the device. This field will always be present.
ndeDeviceId :: Lens' NewDeviceEvent (Maybe Text)

-- | Identifies the extent to which the device is controlled by an Android
--   for Work EMM in various deployment configurations. Possible values
--   include: - "managedDevice", a device that has the EMM's device policy
--   controller (DPC) as the device owner, - "managedProfile", a device
--   that has a work profile managed by the DPC (DPC is profile owner) in
--   addition to a separate, personal profile that is unavailable to the
--   DPC,
ndeManagementType :: Lens' NewDeviceEvent (Maybe Text)

-- | A token authorizing an admin to access an iframe.
--   
--   <i>See:</i> <a>administratorWebToken</a> smart constructor.
data AdministratorWebToken

-- | Creates a value of <a>AdministratorWebToken</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>awtKind</a></li>
--   <li><a>awtToken</a></li>
--   </ul>
administratorWebToken :: AdministratorWebToken

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#administratorWebToken".
awtKind :: Lens' AdministratorWebToken Text

-- | An opaque token to be passed to the Play front-end to generate an
--   iframe.
awtToken :: Lens' AdministratorWebToken (Maybe Text)

-- | A resource returned by the GenerateSignupUrl API, which contains the
--   Signup URL and Completion Token.
--   
--   <i>See:</i> <a>signupInfo</a> smart constructor.
data SignupInfo

-- | Creates a value of <a>SignupInfo</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siCompletionToken</a></li>
--   <li><a>siKind</a></li>
--   <li><a>siURL</a></li>
--   </ul>
signupInfo :: SignupInfo

-- | An opaque token that will be required, along with the Enterprise
--   Token, for obtaining the enterprise resource from CompleteSignup.
siCompletionToken :: Lens' SignupInfo (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#signupInfo".
siKind :: Lens' SignupInfo Text

-- | A URL under which the Admin can sign up for an enterprise. The page
--   pointed to cannot be rendered in an iframe.
siURL :: Lens' SignupInfo (Maybe Text)

-- | A Products resource represents an app in the Google Play store that is
--   available to at least some users in the enterprise. (Some apps are
--   restricted to a single enterprise, and no information about them is
--   made available outside that enterprise.) The information provided for
--   each product (localized name, icon, link to the full Google Play
--   details page) is intended to allow a basic representation of the
--   product within an EMM user interface.
--   
--   <i>See:</i> <a>product</a> smart constructor.
data Product

-- | Creates a value of <a>Product</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pSmallIconURL</a></li>
--   <li><a>pAuthorName</a></li>
--   <li><a>pKind</a></li>
--   <li><a>pWorkDetailsURL</a></li>
--   <li><a>pRequiresContainerApp</a></li>
--   <li><a>pAppVersion</a></li>
--   <li><a>pProductPricing</a></li>
--   <li><a>pDistributionChannel</a></li>
--   <li><a>pIconURL</a></li>
--   <li><a>pTitle</a></li>
--   <li><a>pProductId</a></li>
--   <li><a>pDetailsURL</a></li>
--   </ul>
product :: Product

-- | A link to a smaller image that can be used as an icon for the product.
--   This image is suitable for use at up to 128px x 128px.
pSmallIconURL :: Lens' Product (Maybe Text)

-- | The name of the author of the product (e.g. the app developer).
pAuthorName :: Lens' Product (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#product".
pKind :: Lens' Product Text

-- | A link to the managed Google Play details page for the product, for
--   use by an Enterprise admin.
pWorkDetailsURL :: Lens' Product (Maybe Text)

-- | Whether this app can only be installed on devices using the Android
--   container app.
pRequiresContainerApp :: Lens' Product (Maybe Bool)

-- | App versions currently available for this product. The returned list
--   contains only public versions. Alpha and beta versions are not
--   included.
pAppVersion :: Lens' Product [AppVersion]

-- | Whether this product is free, free with in-app purchases, or paid. If
--   the pricing is unknown, this means the product is not generally
--   available anymore (even though it might still be available to people
--   who own it).
pProductPricing :: Lens' Product (Maybe Text)

-- | How and to whom the package is made available. The value
--   publicGoogleHosted means that the package is available through the
--   Play store and not restricted to a specific enterprise. The value
--   privateGoogleHosted means that the package is a private app
--   (restricted to an enterprise) but hosted by Google. The value
--   privateSelfHosted means that the package is a private app (restricted
--   to an enterprise) and is privately hosted.
pDistributionChannel :: Lens' Product (Maybe Text)

-- | A link to an image that can be used as an icon for the product. This
--   image is suitable for use at up to 512px x 512px.
pIconURL :: Lens' Product (Maybe Text)

-- | The name of the product.
pTitle :: Lens' Product (Maybe Text)

-- | A string of the form app:. For example, app:com.google.android.gm
--   represents the Gmail app.
pProductId :: Lens' Product (Maybe Text)

-- | A link to the (consumer) Google Play details page for the product.
pDetailsURL :: Lens' Product (Maybe Text)

-- | The entitlement resources for the user.
--   
--   <i>See:</i> <a>entitlementsListResponse</a> smart constructor.
data EntitlementsListResponse

-- | Creates a value of <a>EntitlementsListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>entKind</a></li>
--   <li><a>entEntitlement</a></li>
--   </ul>
entitlementsListResponse :: EntitlementsListResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#entitlementsListResponse".
entKind :: Lens' EntitlementsListResponse Text

-- | An entitlement of a user to a product (e.g. an app). For example, a
--   free app that they have installed, or a paid app that they have been
--   allocated a license to.
entEntitlement :: Lens' EntitlementsListResponse [Entitlement]

-- | The type of credential to return with the service account. Required.
data EnterprisesGetServiceAccountKeyType

-- | <pre>
--   googleCredentials
--   </pre>
GoogleCredentials :: EnterprisesGetServiceAccountKeyType

-- | <pre>
--   pkcs12
--   </pre>
PKCS12 :: EnterprisesGetServiceAccountKeyType

-- | Information about the permissions required by a specific app and
--   whether they have been accepted by the enterprise.
--   
--   <i>See:</i> <a>productPermissions</a> smart constructor.
data ProductPermissions

-- | Creates a value of <a>ProductPermissions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ppKind</a></li>
--   <li><a>ppPermission</a></li>
--   <li><a>ppProductId</a></li>
--   </ul>
productPermissions :: ProductPermissions

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#productPermissions".
ppKind :: Lens' ProductPermissions Text

-- | The permissions required by the app.
ppPermission :: Lens' ProductPermissions [ProductPermission]

-- | The ID of the app that the permissions relate to, e.g.
--   "app:com.google.android.gm".
ppProductId :: Lens' ProductPermissions (Maybe Text)

-- | A permission represents some extra capability, to be granted to an
--   Android app, which requires explicit consent. An enterprise admin must
--   consent to these permissions on behalf of their users before an
--   entitlement for the app can be created. The permissions collection is
--   read-only. The information provided for each permission (localized
--   name and description) is intended to be used in the EMM user interface
--   when obtaining consent from the enterprise.
--   
--   <i>See:</i> <a>permission</a> smart constructor.
data Permission

-- | Creates a value of <a>Permission</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>perKind</a></li>
--   <li><a>perName</a></li>
--   <li><a>perDescription</a></li>
--   <li><a>perPermissionId</a></li>
--   </ul>
permission :: Permission

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#permission".
perKind :: Lens' Permission Text

-- | The name of the permission.
perName :: Lens' Permission (Maybe Text)

-- | A longer description of the permissions giving more details of what it
--   affects.
perDescription :: Lens' Permission (Maybe Text)

-- | An opaque string uniquely identifying the permission.
perPermissionId :: Lens' Permission (Maybe Text)
data ProductsApproveRequest

-- | Creates a value of <a>ProductsApproveRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>parApprovalURLInfo</a></li>
--   </ul>
productsApproveRequest :: ProductsApproveRequest

-- | The approval URL that was shown to the user. Only the permissions
--   shown to the user with that URL will be accepted, which may not be the
--   product's entire set of permissions. For example, the URL may only
--   display new permissions from an update after the product was approved,
--   or not include new permissions if the product was updated since the
--   URL was generated.
parApprovalURLInfo :: Lens' ProductsApproveRequest (Maybe ApprovalURLInfo)

-- | The existence of an entitlement resource means that a user has the
--   right to use a particular app on any of their devices. This might be
--   because the app is free or because they have been allocated a license
--   to the app from a group license purchased by the enterprise. It should
--   always be true that a user has an app installed on one of their
--   devices only if they have an entitlement to it. So if an entitlement
--   is deleted, the app will be uninstalled from all devices. Similarly if
--   the user installs an app (and is permitted to do so), or the EMM
--   triggers an install of the app, an entitlement to that app is
--   automatically created. If this is impossible - e.g. the enterprise has
--   not purchased sufficient licenses - then installation fails. Note that
--   entitlements are always user specific, not device specific; a user may
--   have an entitlement even though they have not installed the app
--   anywhere. Once they have an entitlement they can install the app on
--   multiple devices. The API can be used to create an entitlement. If the
--   app is a free app, a group license for that app is created. If it's a
--   paid app, creating the entitlement consumes one license; it remains
--   consumed until the entitlement is removed. Optionally an installation
--   of the app on all the user's managed devices can be triggered at the
--   time the entitlement is created. An entitlement cannot be created for
--   an app if the app requires permissions that the enterprise has not yet
--   accepted. Entitlements for paid apps that are due to purchases by the
--   user on a non-managed profile will have "userPurchase" as entitlement
--   reason; those entitlements cannot be removed via the API.
--   
--   <i>See:</i> <a>entitlement</a> smart constructor.
data Entitlement

-- | Creates a value of <a>Entitlement</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eeKind</a></li>
--   <li><a>eeReason</a></li>
--   <li><a>eeProductId</a></li>
--   </ul>
entitlement :: Entitlement

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#entitlement".
eeKind :: Lens' Entitlement Text

-- | The reason for the entitlement, e.g. "free" for free apps. This is
--   temporary, it will be replaced by the acquisition kind field of group
--   licenses.
eeReason :: Lens' Entitlement (Maybe Text)

-- | The ID of the product that the entitlement is for, e.g.
--   "app:com.google.android.gm".
eeProductId :: Lens' Entitlement (Maybe Text)

-- | The matching products.
--   
--   <i>See:</i> <a>productsListResponse</a> smart constructor.
data ProductsListResponse

-- | Creates a value of <a>ProductsListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>plrTokenPagination</a></li>
--   <li><a>plrPageInfo</a></li>
--   <li><a>plrKind</a></li>
--   <li><a>plrProduct</a></li>
--   </ul>
productsListResponse :: ProductsListResponse

-- | Pagination information for token pagination.
plrTokenPagination :: Lens' ProductsListResponse (Maybe TokenPagination)

-- | General pagination information.
plrPageInfo :: Lens' ProductsListResponse (Maybe PageInfo)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "androidenterprise#productsListResponse".
plrKind :: Lens' ProductsListResponse Text

-- | Information about a product (e.g. an app) in the Google Play store,
--   for display to an enterprise admin.
plrProduct :: Lens' ProductsListResponse [Product]
