Class ApplicationPolicy
Policy for an individual app. Note: Application availability on a given device cannot be changed using this policy if installAppsDisabled is enabled. The maximum number of applications that you can specify per policy is 3,000.
Implements
Inherited Members
Namespace: Google.Apis.AndroidManagement.v1.Data
Assembly: Google.Apis.AndroidManagement.v1.dll
Syntax
public class ApplicationPolicy : IDirectResponseSchema
Properties
AccessibleTrackIds
List of the app’s track IDs that a device belonging to the enterprise can access. If the list contains multiple track IDs, devices receive the latest version among all accessible tracks. If the list contains no track IDs, devices only have access to the app’s production track. More details about each track are available in AppTrackInfo.
Declaration
[JsonProperty("accessibleTrackIds")]
public virtual IList<string> AccessibleTrackIds { get; set; }
Property Value
| Type | Description |
|---|---|
| IList<string> |
AlwaysOnVpnLockdownExemption
Specifies whether the app is allowed networking when the VPN is not connected and alwaysOnVpnPackage.lockdownEnabled is enabled. If set to VPN_LOCKDOWN_ENFORCED, the app is not allowed networking, and if set to VPN_LOCKDOWN_EXEMPTION, the app is allowed networking. Only supported on devices running Android 10 and above. If this is not supported by the device, the device will contain a NonComplianceDetail with non_compliance_reason set to API_LEVEL and a fieldPath. If this is not applicable to the app, the device will contain a NonComplianceDetail with non_compliance_reason set to UNSUPPORTED and a fieldPath. The fieldPath is set to applications[i].alwaysOnVpnLockdownExemption, where i is the index of the package in the applications policy.
Declaration
[JsonProperty("alwaysOnVpnLockdownExemption")]
public virtual string AlwaysOnVpnLockdownExemption { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
AutoUpdateMode
Controls the auto-update mode for the app.
Declaration
[JsonProperty("autoUpdateMode")]
public virtual string AutoUpdateMode { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
ConnectedWorkAndPersonalApp
Controls whether the app can communicate with itself across a device’s work and personal profiles, subject to user consent.
Declaration
[JsonProperty("connectedWorkAndPersonalApp")]
public virtual string ConnectedWorkAndPersonalApp { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
CredentialProviderPolicy
Optional. Whether the app is allowed to act as a credential provider on Android 14 and above.
Declaration
[JsonProperty("credentialProviderPolicy")]
public virtual string CredentialProviderPolicy { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
CustomAppConfig
Optional. Configuration for this custom app.install_type must be set to CUSTOM for this to be set.
Declaration
[JsonProperty("customAppConfig")]
public virtual CustomAppConfig CustomAppConfig { get; set; }
Property Value
| Type | Description |
|---|---|
| CustomAppConfig |
DefaultPermissionPolicy
The default policy for all permissions requested by the app. If specified, this overrides the policy-level default_permission_policy which applies to all apps. It does not override the permission_grants which applies to all apps.
Declaration
[JsonProperty("defaultPermissionPolicy")]
public virtual string DefaultPermissionPolicy { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
DelegatedScopes
The scopes delegated to the app from Android Device Policy. These provide additional privileges for the applications they are applied to.
Declaration
[JsonProperty("delegatedScopes")]
public virtual IList<string> DelegatedScopes { get; set; }
Property Value
| Type | Description |
|---|---|
| IList<string> |
Disabled
Whether the app is disabled. When disabled, the app data is still preserved.
Declaration
[JsonProperty("disabled")]
public virtual bool? Disabled { get; set; }
Property Value
| Type | Description |
|---|---|
| bool? |
ETag
The ETag of the item.
Declaration
public virtual string ETag { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
ExtensionConfig
Configuration to enable this app as an extension app, with the capability of interacting with Android Device Policy offline.This field can be set for at most one app. If there is any app with COMPANION_APP role, this field cannot be set.The signing key certificate fingerprint of the app on the device must match one of the entries in ApplicationPolicy.signingKeyCerts or ExtensionConfig.signingKeyFingerprintsSha256 (deprecated) or the signing key certificate fingerprints obtained from Play Store for the app to be able to communicate with Android Device Policy. If the app is not on Play Store and if ApplicationPolicy.signingKeyCerts and ExtensionConfig.signingKeyFingerprintsSha256 (deprecated) are not set, a NonComplianceDetail with INVALID_VALUE is reported.
Declaration
[JsonProperty("extensionConfig")]
public virtual ExtensionConfig ExtensionConfig { get; set; }
Property Value
| Type | Description |
|---|---|
| ExtensionConfig |
InstallConstraint
Optional. The constraints for installing the app. You can specify a maximum of one InstallConstraint. Multiple constraints are rejected.
Declaration
[JsonProperty("installConstraint")]
public virtual IList<InstallConstraint> InstallConstraint { get; set; }
Property Value
| Type | Description |
|---|---|
| IList<InstallConstraint> |
InstallPriority
Optional. Amongst apps with installType set to: FORCE_INSTALLED PREINSTALLEDthis controls the relative priority of installation. A value of 0 (default) means this app has no priority over other apps. For values between 1 and 10,000, a lower value means a higher priority. Values outside of the range 0 to 10,000 inclusive are rejected.
Declaration
[JsonProperty("installPriority")]
public virtual int? InstallPriority { get; set; }
Property Value
| Type | Description |
|---|---|
| int? |
InstallType
The type of installation to perform.
Declaration
[JsonProperty("installType")]
public virtual string InstallType { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
LockTaskAllowed
Whether the app is allowed to lock itself in full-screen mode. DEPRECATED. Use InstallType KIOSK or kioskCustomLauncherEnabled to configure a dedicated device.
Declaration
[JsonProperty("lockTaskAllowed")]
public virtual bool? LockTaskAllowed { get; set; }
Property Value
| Type | Description |
|---|---|
| bool? |
ManagedConfiguration
Managed configuration applied to the app. The format for the configuration is dictated by the ManagedProperty values supported by the app. Each field name in the managed configuration must match the key field of the ManagedProperty. The field value must be compatible with the type of the ManagedProperty: type JSON value BOOL true or false STRING string INTEGER number CHOICE string MULTISELECT array of strings HIDDEN string BUNDLE_ARRAY array of objects
Declaration
[JsonProperty("managedConfiguration")]
public virtual IDictionary<string, object> ManagedConfiguration { get; set; }
Property Value
| Type | Description |
|---|---|
| IDictionary<string, object> |
ManagedConfigurationTemplate
The managed configurations template for the app, saved from the managed configurations iframe. This field is ignored if managed_configuration is set.
Declaration
[JsonProperty("managedConfigurationTemplate")]
public virtual ManagedConfigurationTemplate ManagedConfigurationTemplate { get; set; }
Property Value
| Type | Description |
|---|---|
| ManagedConfigurationTemplate |
MinimumVersionCode
The minimum version of the app that runs on the device. If set, the device attempts to update the app to at least this version code. If the app is not up-to-date, the device will contain a NonComplianceDetail with non_compliance_reason set to APP_NOT_UPDATED. The app must already be published to Google Play with a version code greater than or equal to this value. At most 20 apps may specify a minimum version code per policy.
Declaration
[JsonProperty("minimumVersionCode")]
public virtual int? MinimumVersionCode { get; set; }
Property Value
| Type | Description |
|---|---|
| int? |
PackageName
The package name of the app. For example, com.google.android.youtube for the YouTube app.
Declaration
[JsonProperty("packageName")]
public virtual string PackageName { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
PermissionGrants
Explicit permission grants or denials for the app. These values override the default_permission_policy and permission_grants which apply to all apps.
Declaration
[JsonProperty("permissionGrants")]
public virtual IList<PermissionGrant> PermissionGrants { get; set; }
Property Value
| Type | Description |
|---|---|
| IList<PermissionGrant> |
PreferentialNetworkId
Optional. ID of the preferential network the application uses. There must be a configuration for the specified network ID in preferentialNetworkServiceConfigs. If set to PREFERENTIAL_NETWORK_ID_UNSPECIFIED, the application will use the default network ID specified in defaultPreferentialNetworkId. See the documentation of defaultPreferentialNetworkId for the list of apps excluded from this defaulting. This applies on both work profiles and fully managed devices on Android 13 and above.
Declaration
[JsonProperty("preferentialNetworkId")]
public virtual string PreferentialNetworkId { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
Roles
Optional. Roles the app has.Apps having certain roles can be exempted from power and background execution restrictions, suspension and hibernation on Android 14 and above. The user control can also be disallowed for apps with certain roles on Android 11 and above. Refer to the documentation of each RoleType for more details.The app is notified about the roles that are set for it if the app has a notification receiver service with . The app is notified whenever its roles are updated or after the app is installed when it has nonempty list of roles. The app can use this notification to bootstrap itself after the installation. See Integrate with the AMAPI SDK (https://developers.google.com/android/management/sdk-integration) and Manage app roles (https://developers.google.com/android/management/app-roles) guides for more details on the requirements for the service.For the exemptions to be applied and the app to be notified about the roles, the signing key certificate fingerprint of the app on the device must match one of the signing key certificate fingerprints obtained from Play Store or one of the entries in ApplicationPolicy.signingKeyCerts. Otherwise, a NonComplianceDetail with APP_SIGNING_CERT_MISMATCH is reported.There must not be duplicate roles with the same roleType. Multiple apps cannot hold a role with the same roleType. A role with type ROLE_TYPE_UNSPECIFIED is not allowed.
Declaration
[JsonProperty("roles")]
public virtual IList<Role> Roles { get; set; }
Property Value
| Type | Description |
|---|---|
| IList<Role> |
SigningKeyCerts
Optional. Signing key certificates of the app.This field is required in the following cases: The app has installType set to CUSTOM (i.e. a custom app). The app has roles set to a nonempty list and the app does not exist on the Play Store. The app has extensionConfig set (i.e. an extension app) but ExtensionConfig.signingKeyFingerprintsSha256 (deprecated) is not set and the app does not exist on the Play Store.If this field is not set for a custom app, the policy is rejected. If it is not set when required for a non-custom app, a NonComplianceDetail with INVALID_VALUE is reported.For other cases, this field is optional and the signing key certificates obtained from Play Store are used.See following policy settings to see how this field is used: choosePrivateKeyRules ApplicationPolicy.InstallType.CUSTOM ApplicationPolicy.extensionConfig ApplicationPolicy.roles
Declaration
[JsonProperty("signingKeyCerts")]
public virtual IList<ApplicationSigningKeyCert> SigningKeyCerts { get; set; }
Property Value
| Type | Description |
|---|---|
| IList<ApplicationSigningKeyCert> |
UserControlSettings
Optional. Specifies whether user control is permitted for the app. User control includes user actions like force-stopping and clearing app data. Certain types of apps have special treatment, see USER_CONTROL_SETTINGS_UNSPECIFIED and USER_CONTROL_ALLOWED for more details.
Declaration
[JsonProperty("userControlSettings")]
public virtual string UserControlSettings { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
WorkProfileWidgets
Specifies whether the app installed in the work profile is allowed to add widgets to the home screen.
Declaration
[JsonProperty("workProfileWidgets")]
public virtual string WorkProfileWidgets { get; set; }
Property Value
| Type | Description |
|---|---|
| string |