UNPKG

googleapis

Version:
1,375 lines 154 kB
/** * Copyright 2015 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { AxiosPromise } from 'axios'; import { GoogleApis } from '../..'; import { BodyResponseCallback, GlobalOptions, MethodOptions } from '../../lib/api'; /** * Google Play EMM API * * Manages the deployment of apps to Android for Work users. * * @example * const google = require('googleapis'); * const androidenterprise = google.androidenterprise('v1'); * * @namespace androidenterprise * @type {Function} * @version v1 * @variation v1 * @param {object=} options Options for Androidenterprise */ export declare class Androidenterprise { _options: GlobalOptions; google: GoogleApis; root: this; devices: Resource$Devices; enterprises: Resource$Enterprises; entitlements: Resource$Entitlements; grouplicenses: Resource$Grouplicenses; grouplicenseusers: Resource$Grouplicenseusers; installs: Resource$Installs; managedconfigurationsfordevice: Resource$Managedconfigurationsfordevice; managedconfigurationsforuser: Resource$Managedconfigurationsforuser; managedconfigurationssettings: Resource$Managedconfigurationssettings; permissions: Resource$Permissions; products: Resource$Products; serviceaccountkeys: Resource$Serviceaccountkeys; storelayoutclusters: Resource$Storelayoutclusters; storelayoutpages: Resource$Storelayoutpages; users: Resource$Users; constructor(options: GlobalOptions, google: GoogleApis); getRoot(): this; } /** * This represents an enterprise admin who can manage the enterprise in the * managed Google Play store. */ export interface Schema$Administrator { /** * The admin's email address. */ email: string; } /** * A token authorizing an admin to access an iframe. */ export interface Schema$AdministratorWebToken { /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#administratorWebToken". */ kind: string; /** * An opaque token to be passed to the Play front-end to generate an iframe. */ token: string; } /** * 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. */ export interface Schema$AdministratorWebTokenSpec { /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#administratorWebTokenSpec". */ kind: string; /** * 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. */ parent: string; /** * 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. */ permission: string[]; } /** * The Android Device Policy configuration of an enterprise. */ export interface Schema$AndroidDevicePolicyConfig { /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#androidDevicePolicyConfig". */ kind: string; /** * The state of Android Device Policy. "enabled" indicates that * Android Device Policy is enabled for the enterprise and the EMM is allowed * to manage devices with Android Device Policy, while "disabled" * means that it cannot. */ state: string; } /** * Represents the list of app restrictions available to be pre-configured for * the product. */ export interface Schema$AppRestrictionsSchema { /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#appRestrictionsSchema". */ kind: string; /** * The set of restrictions that make up this schema. */ restrictions: Schema$AppRestrictionsSchemaRestriction[]; } /** * 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. */ export interface Schema$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. */ productId: string; } /** * A restriction in the App Restriction Schema represents a piece of * configuration that may be pre-applied. */ export interface Schema$AppRestrictionsSchemaRestriction { /** * The default value of the restriction. bundle and bundleArray restrictions * never have a default value. */ defaultValue: Schema$AppRestrictionsSchemaRestrictionRestrictionValue; /** * A longer description of the restriction, giving more detail of what it * affects. */ description: string; /** * For choice or multiselect restrictions, the list of possible entries' * human-readable names. */ entry: string[]; /** * 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. */ entryValue: string[]; /** * The unique key that the product uses to identify the restriction, e.g. * "com.google.android.gm.fieldname". */ key: string; /** * 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. */ nestedRestriction: Schema$AppRestrictionsSchemaRestriction[]; /** * The type of the restriction. */ restrictionType: string; /** * The name of the restriction. */ title: string; } /** * A typed value for the restriction. */ export interface Schema$AppRestrictionsSchemaRestrictionRestrictionValue { /** * The type of the value being provided. */ type: string; /** * The boolean value - this will only be present if type is bool. */ valueBool: boolean; /** * The integer value - this will only be present if type is integer. */ valueInteger: number; /** * The list of string values - this will only be present if type is * multiselect. */ valueMultiselect: string[]; /** * The string value - this will be present for types string, choice and * hidden. */ valueString: string; } /** * Information on an approval URL. */ export interface Schema$ApprovalUrlInfo { /** * A URL that displays a product's permissions and that can also be used * to approve the product with the Products.approve call. */ approvalUrl: string; /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#approvalUrlInfo". */ kind: string; } /** * 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. */ export interface Schema$AppUpdateEvent { /** * The id of the product (e.g. "app:com.google.android.gm") that was * updated. This field will always be present. */ productId: string; } /** * This represents a single version of the app. */ export interface Schema$AppVersion { /** * The track that this app was published in. For example if track is * "alpha", this is an alpha version of the app. */ track: string; /** * Unique increasing identifier for the app version. */ versionCode: number; /** * 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"). */ versionString: string; } /** * An AuthenticationToken is used by the EMM's device policy client on a * device to provision the given EMM-managed user on that device. */ export interface Schema$AuthenticationToken { /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#authenticationToken". */ kind: string; /** * 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. */ token: string; } /** * A configuration variables resource contains the managed configuration * settings ID to be applied to a single user, as well as the variable set that * is attributed to the user. The variable set will be used to replace * placeholders in the managed configuration settings. */ export interface Schema$ConfigurationVariables { /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#configurationVariables". */ kind: string; /** * The ID of the managed configurations settings. */ mcmId: string; /** * The variable set that is attributed to the user. */ variableSet: Schema$VariableSet[]; } /** * A Devices resource represents a mobile device managed by the EMM and * belonging to a specific enterprise user. */ export interface Schema$Device { /** * The Google Play Services Android ID for the device encoded as a lowercase * hex string. For example, "123456789abcdef0". */ androidId: string; /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#device". */ kind: string; /** * Identifies the extent to which the device is controlled by a managed Google * Play EMM in various deployment configurations. Possible values include: - * "managedDevice", a device that has the EMM's device policy * controller (DPC) as the device owner. - "managedProfile", a * device that has a profile managed by the DPC (DPC is profile owner) in * addition to a separate, personal profile that is unavailable to the DPC. - * "containerApp", no longer used (deprecated). - * "unmanagedProfile", a device that has been allowed (by the * domain's admin, using the Admin Console to enable the privilege) to use * managed Google Play, but the profile is itself not owned by a DPC. */ managementType: string; /** * The policy enforced on the device. */ policy: Schema$Policy; } /** * The device resources for the user. */ export interface Schema$DevicesListResponse { /** * A managed device. */ device: Schema$Device[]; /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#devicesListResponse". */ kind: string; } /** * The state of a user's device, as accessed by the getState and setState * methods on device resources. */ export interface Schema$DeviceState { /** * 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. */ accountState: string; /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#deviceState". */ kind: string; } /** * 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. */ export interface Schema$Enterprise { /** * Admins of the enterprise. This is only supported for enterprises created * via the EMM-initiated flow. */ administrator: Schema$Administrator[]; /** * The unique ID for the enterprise. */ id: string; /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#enterprise". */ kind: string; /** * The name of the enterprise, for example, "Example, Inc". */ name: string; /** * The enterprise's primary domain, such as "example.com". */ primaryDomain: string; } /** * A service account that can be used to authenticate as the enterprise to API * calls that require such authentication. */ export interface Schema$EnterpriseAccount { /** * The email address of the service account. */ accountEmail: string; /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#enterpriseAccount". */ kind: string; } /** * The matching enterprise resources. */ export interface Schema$EnterprisesListResponse { /** * An enterprise. */ enterprise: Schema$Enterprise[]; /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#enterprisesListResponse". */ kind: string; } export interface Schema$EnterprisesSendTestPushNotificationResponse { /** * The message ID of the test push notification that was sent. */ messageId: string; /** * The name of the Cloud Pub/Sub topic to which notifications for this * enterprise's enrolled account will be sent. */ topicName: string; } /** * The presence of an Entitlements resource indicates that a user has the right * to use a particular app. Entitlements are user specific, not device specific. * This allows a user with an entitlement to an app to install the app on all * their devices. It's also possible for a user to hold an entitlement to an * app without installing the app on any device. The API can be used to create * an entitlement. As an option, you can also use the API to trigger the * installation of an app on all a user's managed devices at the same time * the entitlement is created. If the app is free, creating the entitlement * also creates a group license for that app. For paid apps, creating the * entitlement consumes one license, and that license remains consumed until the * entitlement is removed. If the enterprise hasn't purchased enough * licenses, then no entitlement is created and the installation fails. An * entitlement is also not created for an app if the app requires permissions * that the enterprise hasn't accepted. If an entitlement is deleted, the * app may be uninstalled from a user's device. As a best practice, * uninstall the app by calling Installs.delete() before deleting the * entitlement. Entitlements for apps that a user pays for on an unmanaged * profile have "userPurchase" as the entitlement reason. These * entitlements cannot be removed via the API. */ export interface Schema$Entitlement { /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#entitlement". */ kind: string; /** * The ID of the product that the entitlement is for. For example, * "app:com.google.android.gm". */ productId: string; /** * The reason for the entitlement. For example, "free" for free * apps. This property is temporary: it will be replaced by the acquisition * kind field of group licenses. */ reason: string; } /** * The entitlement resources for the user. */ export interface Schema$EntitlementsListResponse { /** * 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. */ entitlement: Schema$Entitlement[]; /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#entitlementsListResponse". */ kind: string; } /** * Group license objects allow you to keep track of licenses (called * entitlements) for both free and paid apps. For a free app, a group license is * created when an enterprise admin first approves the product in Google Play or * when the first entitlement for the product is created for a user via the API. * For a paid app, a group license object is only created when an enterprise * admin purchases the product in Google Play for the first time. Use the API * to query group licenses. A Grouplicenses resource includes the total number * of licenses purchased (paid apps only) and the total number of licenses * currently in use. In other words, the total number of Entitlements that exist * for the product. Only one group license object is created per product and * group license objects are never deleted. If a product is unapproved, its * group license remains. This allows enterprise admins to keep track of any * remaining entitlements for the product. */ export interface Schema$GroupLicense { /** * How this group license was acquired. "bulkPurchase" means that * this Grouplicenses resource was created because the enterprise purchased * licenses for this product; otherwise, the value is "free" (for * free products). */ acquisitionKind: string; /** * Whether the product to which this group license relates is currently * approved by the enterprise. Products are approved when a group license is * first created, but this approval may be revoked by an enterprise admin via * Google Play. Unapproved products will not be visible to end users in * collections, and new entitlements to them should not normally be created. */ approval: string; /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#groupLicense". */ kind: string; /** * The total number of provisioned licenses for this product. Returned by read * operations, but ignored in write operations. */ numProvisioned: number; /** * The number of purchased licenses (possibly in multiple purchases). If this * field is omitted, then there is no limit on the number of licenses that can * be provisioned (for example, if the acquisition kind is "free"). */ numPurchased: number; /** * The permission approval status of the product. This field is only set if * the product is approved. Possible states are: - * "currentApproved", the current set of permissions is approved, * but additional permissions will require the administrator to reapprove the * product (If the product was approved without specifying the approved * permissions setting, then this is the default behavior.), - * "needsReapproval", the product has unapproved permissions. No * additional product licenses can be assigned until the product is * reapproved, - "allCurrentAndFutureApproved", the current * permissions are approved and any future permission updates will be * automatically approved without administrator review. */ permissions: string; /** * The ID of the product that the license is for. For example, * "app:com.google.android.gm". */ productId: string; } /** * The grouplicense resources for the enterprise. */ export interface Schema$GroupLicensesListResponse { /** * A group license for a product approved for use in the enterprise. */ groupLicense: Schema$GroupLicense[]; /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#groupLicensesListResponse". */ kind: string; } /** * The user resources for the group license. */ export interface Schema$GroupLicenseUsersListResponse { /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#groupLicenseUsersListResponse". */ kind: string; /** * A user of an enterprise. */ user: Schema$User[]; } /** * The existence of an Installs resource indicates that an app is installed on a * particular device (or that an install is pending). The API can be used to * create an install resource using the update method. This triggers the actual * install of the app on the device. If the user does not already have an * entitlement for the app, then an attempt is made to create one. If this fails * (for example, because the app is not free and there is no available license), * then the creation of the install fails. The API can also be used to update * an installed app. If the update method is used on an existing install, then * the app will be updated to the latest available version. Note that it is not * possible to force the installation of a specific version of an app: the * version code is read-only. If a user installs an app themselves (as * permitted by the enterprise), then again an install resource and possibly an * entitlement resource are automatically created. The API can also be used to * delete an install resource, which triggers the removal of the app from the * device. Note that deleting an install does not automatically remove the * corresponding entitlement, even if there are no remaining installs. The * install resource will also be deleted if the user uninstalls the app * themselves. */ export interface Schema$Install { /** * 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. */ installState: string; /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#install". */ kind: string; /** * The ID of the product that the install is for. For example, * "app:com.google.android.gm". */ productId: string; /** * The version of the installed product. Guaranteed to be set only if the * install state is "installed". */ versionCode: number; } /** * An event generated when an app installation failed on a device */ export interface Schema$InstallFailureEvent { /** * The Android ID of the device. This field will always be present. */ deviceId: string; /** * Additional details on the failure if applicable. */ failureDetails: string; /** * The reason for the installation failure. This field will always be present. */ failureReason: string; /** * 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. */ productId: string; /** * The ID of the user. This field will always be present. */ userId: string; } /** * The install resources for the device. */ export interface Schema$InstallsListResponse { /** * 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. */ install: Schema$Install[]; /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#installsListResponse". */ kind: string; } /** * A localized string with its locale. */ export interface Schema$LocalizedText { /** * The BCP47 tag for a locale. (e.g. "en-US", "de"). */ locale: string; /** * The text localized in the associated locale. */ text: string; } /** * Maintenance window for managed Google Play Accounts. This allows Play store * to update the apps on the foreground in the designated window. */ export interface Schema$MaintenanceWindow { /** * Duration of the maintenance window, in milliseconds. The duration must be * between 30 minutes and 24 hours (inclusive). */ durationMs: string; /** * Start time of the maintenance window, in milliseconds after midnight on the * device. Windows can span midnight. */ startTimeAfterMidnightMs: string; } /** * A managed configuration resource contains the set of managed properties * defined by the app developer in the app's managed configurations schema, * as well as any configuration variables defined for the user. */ export interface Schema$ManagedConfiguration { /** * Contains the ID of the managed configuration profile and the set of * configuration variables (if any) defined for the user. */ configurationVariables: Schema$ConfigurationVariables; /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#managedConfiguration". */ kind: string; /** * The set of managed properties for this configuration. */ managedProperty: Schema$ManagedProperty[]; /** * The ID of the product that the managed configuration is for, e.g. * "app:com.google.android.gm". */ productId: string; } /** * The managed configuration resources for the device. */ export interface Schema$ManagedConfigurationsForDeviceListResponse { /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#managedConfigurationsForDeviceListResponse". */ kind: string; /** * A managed configuration for an app on a specific device. */ managedConfigurationForDevice: Schema$ManagedConfiguration[]; } /** * The managed configuration resources for the user. */ export interface Schema$ManagedConfigurationsForUserListResponse { /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#managedConfigurationsForUserListResponse". */ kind: string; /** * A managed configuration for an app for a specific user. */ managedConfigurationForUser: Schema$ManagedConfiguration[]; } /** * A managed configurations settings resource contains the set of managed * properties that have been configured for an Android app to be applied to a * set of users. The app's developer would have defined configurable * properties in the managed configurations schema. */ export interface Schema$ManagedConfigurationsSettings { /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#managedConfigurationsSettings". */ kind: string; /** * The last updated time of the managed configuration settings in milliseconds * since 1970-01-01T00:00:00Z. */ lastUpdatedTimestampMillis: string; /** * The set of managed properties for this configuration. */ managedProperty: Schema$ManagedProperty[]; /** * The ID of the managed configurations settings. */ mcmId: string; /** * The name of the managed configurations settings. */ name: string; } /** * The managed configurations settings for a product. */ export interface Schema$ManagedConfigurationsSettingsListResponse { /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#managedConfigurationsSettingsListResponse". */ kind: string; /** * A managed configurations settings for an app that may be assigned to a * group of users in an enterprise. */ managedConfigurationsSettings: Schema$ManagedConfigurationsSettings[]; } /** * 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. */ export interface Schema$ManagedProperty { /** * The unique key that identifies the property. */ key: string; /** * The boolean value - this will only be present if type of the property is * bool. */ valueBool: boolean; /** * The bundle of managed properties - this will only be present if type of the * property is bundle. */ valueBundle: Schema$ManagedPropertyBundle; /** * The list of bundles of properties - this will only be present if type of * the property is bundle_array. */ valueBundleArray: Schema$ManagedPropertyBundle[]; /** * The integer value - this will only be present if type of the property is * integer. */ valueInteger: number; /** * The string value - this will only be present if type of the property is * string, choice or hidden. */ valueString: string; /** * The list of string values - this will only be present if type of the * property is multiselect. */ valueStringArray: string[]; } /** * A bundle of managed properties. */ export interface Schema$ManagedPropertyBundle { /** * The list of managed properties. */ managedProperty: Schema$ManagedProperty[]; } /** * An event generated when a new device is ready to be managed. */ export interface Schema$NewDeviceEvent { /** * The Android ID of the device. This field will always be present. */ deviceId: string; /** * Policy app on the device. */ dpcPackageName: string; /** * Identifies the extent to which the device is controlled by an Android EMM * in various deployment configurations. Possible values include: - * "managedDevice", a device where the DPC is set as device owner, * - "managedProfile", a device where the DPC is set as profile * owner. */ managementType: string; /** * The ID of the user. This field will always be present. */ userId: string; } /** * An event generated when new permissions are added to an app. */ export interface Schema$NewPermissionsEvent { /** * 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. */ approvedPermissions: string[]; /** * The id of the product (e.g. "app:com.google.android.gm") for * which new permissions were added. This field will always be present. */ productId: string; /** * The set of permissions that the app is currently requesting. Use * Permissions.Get on the EMM API to retrieve details about these permissions. */ requestedPermissions: string[]; } /** * A notification of one event relating to an enterprise. */ export interface Schema$Notification { /** * Notifications about new app restrictions schema changes. */ appRestrictionsSchemaChangeEvent: Schema$AppRestrictionsSchemaChangeEvent; /** * Notifications about app updates. */ appUpdateEvent: Schema$AppUpdateEvent; /** * The ID of the enterprise for which the notification is sent. This will * always be present. */ enterpriseId: string; /** * Notifications about an app installation failure. */ installFailureEvent: Schema$InstallFailureEvent; /** * Notifications about new devices. */ newDeviceEvent: Schema$NewDeviceEvent; /** * Notifications about new app permissions. */ newPermissionsEvent: Schema$NewPermissionsEvent; /** * Type of the notification. */ notificationType: string; /** * Notifications about changes to a product's approval status. */ productApprovalEvent: Schema$ProductApprovalEvent; /** * Notifications about product availability changes. */ productAvailabilityChangeEvent: Schema$ProductAvailabilityChangeEvent; /** * The time when the notification was published in milliseconds since * 1970-01-01T00:00:00Z. This will always be present. */ timestampMillis: string; } /** * A resource returned by the PullNotificationSet API, which contains a * collection of notifications for enterprises associated with the service * account authenticated for the request. */ export interface Schema$NotificationSet { /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#notificationSet". */ kind: string; /** * The notifications received, or empty if no notifications are present. */ notification: Schema$Notification[]; /** * 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. */ notificationSetId: string; } export interface Schema$PageInfo { resultPerPage: number; startIndex: number; totalResults: number; } /** * A Permissions resource represents some extra capability, to be granted to an * Android app, which requires explicit consent. An enterprise admin must * consent to these permissions on behalf of their users before an entitlement * for the app can be created. The permissions collection is read-only. The * information provided for each permission (localized name and description) is * intended to be used in the MDM user interface when obtaining consent from the * enterprise. */ export interface Schema$Permission { /** * A longer description of the Permissions resource, giving more details of * what it affects. */ description: string; /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#permission". */ kind: string; /** * The name of the permission. */ name: string; /** * An opaque string uniquely identifying the permission. */ permissionId: string; } /** * The device policy for a given managed device. */ export interface Schema$Policy { /** * The auto-update policy for apps installed on the device. * "choiceToTheUser" allows the device's user to configure the * app update policy. "always" enables auto updates. * "never" disables auto updates. "wifiOnly" enables auto * updates only when the device is connected to wifi. */ autoUpdatePolicy: string; /** * The maintenance window defining when apps running in the foreground should * be updated. This feature is only supported on fully managed devices. */ maintenanceWindow: Schema$MaintenanceWindow; /** * The availability granted to the device for the specified products. * "all" gives the device access to all products, regardless of * approval status. "allApproved" entitles the device to access all * products that are approved for the enterprise. "allApproved" and * "all" do not enable automatic visibility of "alpha" or * "beta" tracks. "whitelist" grants the device access the * products specified in productPolicy[]. Only products that are approved or * products that were previously approved (products with revoked approval) by * the enterprise can be whitelisted. If no value is provided, the * availability set at the user level is applied by default. */ productAvailabilityPolicy: string; /** * The list of product policies. */ productPolicy: Schema$ProductPolicy[]; } /** * 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. */ export interface Schema$Product { /** * App versions currently available for this product. */ appVersion: Schema$AppVersion[]; /** * The name of the author of the product (for example, the app developer). */ authorName: string; /** * The countries which this app is available in. */ availableCountries: string[]; /** * The tracks that are visible to the enterprise. */ availableTracks: string[]; /** * The app category (e.g. RACING, SOCIAL, etc.) */ category: string; /** * The content rating for this app. */ contentRating: string; /** * The localized promotional description, if available. */ description: string; /** * A link to the (consumer) Google Play details page for the product. */ detailsUrl: string; /** * 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. */ distributionChannel: string; /** * 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. */ iconUrl: string; /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#product". */ kind: string; /** * The approximate time (within 7 days) the app was last published, expressed * in milliseconds since epoch. */ lastUpdatedTimestampMillis: string; /** * The minimum Android SDK necessary to run the app. */ minAndroidSdkVersion: number; /** * A list of permissions required by the app. */ permissions: Schema$ProductPermission[]; /** * A string of the form app:<package name>. For example, * app:com.google.android.gm represents the Gmail app. */ productId: string; /** * 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). */ productPricing: string; /** * A description of the recent changes made to the app. */ recentChanges: string; /** * Deprecated. */ requiresContainerApp: boolean; /** * A list of screenshot links representing the app. */ screenshotUrls: string[]; /** * The certificate used to sign this product. */ signingCertificate: Schema$ProductSigningCertificate; /** * 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. */ smallIconUrl: string; /** * The name of the product. */ title: string; /** * A link to the managed Google Play details page for the product, for use by * an Enterprise admin. */ workDetailsUrl: string; } /** * An event generated when a product's approval status is changed. */ export interface Schema$ProductApprovalEvent { /** * Whether the product was approved or unapproved. This field will always be * present. */ approved: string; /** * 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. */ productId: string; } /** * An event generated whenever a product's availability changes. */ export interface Schema$ProductAvailabilityChangeEvent { /** * The new state of the product. This field will always be present. */ availabilityStatus: string; /** * The id of the product (e.g. "app:com.google.android.gm") for * which the product availability changed. This field will always be present. */ productId: string; } /** * 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. */ export interface Schema$ProductPermission { /** * An opaque string uniquely identifying the permission. */ permissionId: string; /** * Whether the permission has been accepted or not. */ state: string; } /** * Information about the permissions required by a specific app and whether they * have been accepted by the enterprise. */ export interface Schema$ProductPermissions { /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#productPermissions". */ kind: string; /** * The permissions required by the app. */ permission: Schema$ProductPermission[]; /** * The ID of the app that the permissions relate to, e.g. * "app:com.google.android.gm". */ productId: string; } /** * The policy for a product. */ export interface Schema$ProductPolicy { /** * The ID of the product. For example, "app:com.google.android.gm". */ productId: string; /** * Grants visibility to the specified track(s) of the product to the device. * The track available to the device is based on the following order of * preference: alpha, beta, production. For example, if an app has a prod * version, a beta version and an alpha version and the enterprise has been * granted visibility to both the alpha and beta tracks, if tracks is * {"beta", "production"} then the beta version of the app * is made available to the device. If there are no app versions in the * specified track adding the "alpha" and "beta" values to * the list of tracks will have no effect. Note that the enterprise requires * access to alpha and/or beta tracks before users can be granted visibility * to apps in those tracks. The allowed sets are: {} (considered equivalent * to {"production"}) {"production"} {"beta", * "production"} {"alpha", "beta", * "production"} The order of elements is not relevant. Any other * set of tracks will be rejected with an error. */ tracks: string[]; } export interface Schema$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. */ approvalUrlInfo: Schema$ApprovalUrlInfo; /** * Sets how new permission requests for the product are handled. * "allPermissions" automatically approves all current and future * permissions for the product. "currentPermissionsOnly" approves * the current set of permissions for the product, but any future permissions * added through updates will require manual reapproval. If not specified, * only the current set of permissions will be approved. */ approvedPermissions: string; } /** * A set of products. */ export interface Schema$ProductSet { /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#productSet". */ kind: string; /** * The list of product IDs making up the set of products. */ productId: string[]; /** * The interpretation of this product set. "unknown" should never be * sent and is ignored if received. "whitelist" means that the user * is entitled to access the product set. "includeAll" means that * all products are accessible, including products that are approved, products * with revoked approval, and products that have never been approved. * "allApproved" means that the user is entitled to access all * products that are approved for the enterprise. If the value is * "allApproved" or "includeAll", the productId field is * ignored. If no value is provided, it is interpreted as * "whitelist" for backwards compatibility. Further * "allApproved" or "includeAll" does not enable automatic * visibility of "alpha" or "beta" tracks for Android app. * Use ProductVisibility to enable "alpha" or "beta" * tracks per user. */ productSetBehavior: string; /** * Additional list of product IDs making up the product set. Unlike the * productID array, in this list It's possible to specify which tracks * (alpha, beta, production) of a product are visible to the user. See * ProductVisibility and its fields for more information. Specifying the same * product ID both here and in the productId array is not allowed and it will * result in an error. */ productVisibility: Schema$ProductVisibility[]; } export interface Schema$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. */ url: string; } export interface Schema$ProductSigningCertificate { /** * The base64 urlsafe encoded SHA1 hash of the certificate. (This field is * deprecated in favor of SHA2-256. It should not be used and may be removed * at any time.) */ certificateHashSha1: string; /** * The base64 urlsafe encoded SHA2-256 hash of the certificate. */ certificateHashSha256: string; } /** * The matching products. */ export interface Schema$ProductsListResponse { /** * Identifies what kind of resource this is. Value: the fixed string * "androidenterprise#productsListResponse". */ kind: string; /** * General pagination information. */ pageInfo: Schema$PageInfo; /** * Information about a product (e.g. an app) in the Google Play store, for * display to an enterprise admin. */ product: Schema$Product[]; /** * Pagination information for token pagination. */ tokenPagination: Schema$TokenPagination; } /** * A product to be made visible to a user. */ export interface Schema$ProductVisibility { /** * The product ID to make visible to the user. Required for each item in the * productVisibility list. */ productId: string; /** * Grants visibility to the specified track(s) of the product to the user. The * track available to the user is based on the following order