REST Resource: enterprises.devices

Resource: Device

A device owned by an enterprise. Unless otherwise noted, all fields are read-only and can't be modified by enterprises.devices.patch.

JSON representation
{
  "name": string,
  "userName": string,
  "managementMode": enum (ManagementMode),
  "state": enum (DeviceState),
  "appliedState": enum (DeviceState),
  "policyCompliant": boolean,
  "nonComplianceDetails": [
    {
      object (NonComplianceDetail)
    }
  ],
  "enrollmentTime": string,
  "lastStatusReportTime": string,
  "lastPolicyComplianceReportTime": string,
  "lastPolicySyncTime": string,
  "policyName": string,
  "appliedPolicyName": string,
  "appliedPolicyVersion": string,
  "apiLevel": integer,
  "enrollmentTokenData": string,
  "enrollmentTokenName": string,
  "disabledReason": {
    object (UserFacingMessage)
  },
  "softwareInfo": {
    object (SoftwareInfo)
  },
  "hardwareInfo": {
    object (HardwareInfo)
  },
  "displays": [
    {
      object (Display)
    }
  ],
  "applicationReports": [
    {
      object (ApplicationReport)
    }
  ],
  "previousDeviceNames": [
    string
  ],
  "networkInfo": {
    object (NetworkInfo)
  },
  "memoryInfo": {
    object (MemoryInfo)
  },
  "memoryEvents": [
    {
      object (MemoryEvent)
    }
  ],
  "powerManagementEvents": [
    {
      object (PowerManagementEvent)
    }
  ],
  "hardwareStatusSamples": [
    {
      object (HardwareStatus)
    }
  ],
  "deviceSettings": {
    object (DeviceSettings)
  },
  "user": {
    object (User)
  },
  "systemProperties": {
    string: string,
    ...
  },
  "securityPosture": {
    object (SecurityPosture)
  },
  "ownership": enum (Ownership),
  "commonCriteriaModeInfo": {
    object (CommonCriteriaModeInfo)
  },
  "appliedPasswordPolicies": [
    {
      object (PasswordRequirements)
    }
  ],
  "dpcMigrationInfo": {
    object (DpcMigrationInfo)
  }
}
Fields
name

string

The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}.

userName

string

The resource name of the user that owns this device in the form enterprises/{enterpriseId}/users/{userId}.

managementMode

enum (ManagementMode)

The type of management mode Android Device Policy takes on the device. This influences which policy settings are supported.

state

enum (DeviceState)

The state to be applied to the device. This field can be modified by a patch request. Note that when calling enterprises.devices.patch, ACTIVE and DISABLED are the only allowable values. To enter the device into a DELETED state, call enterprises.devices.delete.

appliedState

enum (DeviceState)

The state currently applied to the device.

policyCompliant

boolean

Whether the device is compliant with its policy.

nonComplianceDetails[]

object (NonComplianceDetail)

Details about policy settings that the device is not compliant with.

enrollmentTime

string (Timestamp format)

The time of device enrollment.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

lastStatusReportTime

string (Timestamp format)

The last time the device sent a status report.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

lastPolicyComplianceReportTime
(deprecated)

string (Timestamp format)

Deprecated.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

lastPolicySyncTime

string (Timestamp format)

The last time the device fetched its policy.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

policyName

string

The name of the policy applied to the device, in the form enterprises/{enterpriseId}/policies/{policyId}. If not specified, the policyName for the device's user is applied. This field can be modified by a patch request. You can specify only the policyId when calling enterprises.devices.patch, as long as the policyId doesn’t contain any slashes. The rest of the policy name is inferred.

appliedPolicyName

string

The name of the policy currently applied to the device.

appliedPolicyVersion

string (int64 format)

The version of the policy currently applied to the device.

apiLevel

integer

The API level of the Android platform version running on the device.

enrollmentTokenData

string

If the device was enrolled with an enrollment token with additional data provided, this field contains that data.

enrollmentTokenName

string

If the device was enrolled with an enrollment token, this field contains the name of the token.

disabledReason

object (UserFacingMessage)

If the device state is DISABLED, an optional message that is displayed on the device indicating the reason the device is disabled. This field can be modified by a patch request.

softwareInfo

object (SoftwareInfo)

Detailed information about the device software. This information is only available if softwareInfoEnabled is true in the device's policy.

hardwareInfo

object (HardwareInfo)

Detailed information about the device hardware.

displays[]

object (Display)

Detailed information about displays on the device. This information is only available if displayInfoEnabled is true in the device's policy.

applicationReports[]

object (ApplicationReport)

Reports for apps installed on the device. This information is only available when applicationReportsEnabled is true in the device's policy.

previousDeviceNames[]

string

If the same physical device has been enrolled multiple times, this field contains its previous device names. The serial number is used as the unique identifier to determine if the same physical device has enrolled previously. The names are in chronological order.

networkInfo

object (NetworkInfo)

Device network information. This information is only available if networkInfoEnabled is true in the device's policy.

memoryInfo

object (MemoryInfo)

Memory information: contains information about device memory and storage.

memoryEvents[]

object (MemoryEvent)

Events related to memory and storage measurements in chronological order. This information is only available if memoryInfoEnabled is true in the device's policy.

Events are retained for a certain period of time and old events are deleted.

powerManagementEvents[]

object (PowerManagementEvent)

Power management events on the device in chronological order. This information is only available if powerManagementEventsEnabled is true in the device's policy.

hardwareStatusSamples[]

object (HardwareStatus)

Hardware status samples in chronological order. This information is only available if hardwareStatusEnabled is true in the device's policy.

deviceSettings

object (DeviceSettings)

Device settings information. This information is only available if deviceSettingsEnabled is true in the device's policy.

user

object (User)

The user who owns the device.

systemProperties

map (key: string, value: string)

Map of selected system properties name and value related to the device. This information is only available if systemPropertiesEnabled is true in the device's policy.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

securityPosture

object (SecurityPosture)

Device's security posture value that reflects how secure the device is.

ownership

enum (Ownership)

Ownership of the managed device.

commonCriteriaModeInfo

object (CommonCriteriaModeInfo)

Information about Common Criteria Mode—security standards defined in the Common Criteria for Information Technology Security Evaluation (CC).

This information is only available if statusReportingSettings.commonCriteriaModeEnabled is true in the device's policy the device is company-owned.

appliedPasswordPolicies[]

object (PasswordRequirements)

The password requirements currently applied to the device.

  • The applied requirements may be slightly different from those specified in passwordPolicies in some cases.
  • fieldPath is set based on passwordPolicies.
dpcMigrationInfo

object (DpcMigrationInfo)

Output only. Information related to whether this device was migrated from being managed by another Device Policy Controller (DPC).

DeviceState

States that may be applied to a device.

Enums
DEVICE_STATE_UNSPECIFIED This value is disallowed.
ACTIVE The device is active.
DISABLED The device is disabled.
DELETED The device was deleted. This state is never returned by an API call, but is used in the final status report when the device acknowledges the deletion. If the device is deleted via the API call, this state is published to Pub/Sub. If the user deletes the work profile or resets the device, the device state will remain unknown to the server.
PROVISIONING The device is being provisioned. Newly enrolled devices are in this state until they have a policy applied.
LOST The device is lost. This state is only possible on organization-owned devices.
PREPARING_FOR_MIGRATION The device is preparing for migrating to Android Management API. No further action is needed for the migration to continue.
DEACTIVATED_BY_DEVICE_FINANCE This is a financed device that has been "locked" by the financing agent. This means certain policy settings have been applied which limit device functionality until the device has been "unlocked" by the financing agent. The device will continue to apply policy settings excluding those overridden by the financing agent. When the device is "locked", the state is reported in appliedState as DEACTIVATED_BY_DEVICE_FINANCE.

NonComplianceDetail

Provides detail about non-compliance with a policy setting.

JSON representation
{
  "settingName": string,
  "nonComplianceReason": enum (NonComplianceReason),
  "packageName": string,
  "fieldPath": string,
  "currentValue": value,
  "installationFailureReason": enum (InstallationFailureReason),
  "specificNonComplianceReason": enum (SpecificNonComplianceReason),
  "specificNonComplianceContext": {
    object (SpecificNonComplianceContext)
  }
}
Fields
settingName

string

The name of the policy setting. This is the JSON field name of a top-level Policy field.

nonComplianceReason

enum (NonComplianceReason)

The reason the device is not in compliance with the setting.

packageName

string

The package name indicating which app is out of compliance, if applicable.

fieldPath

string

For settings with nested fields, if a particular nested field is out of compliance, this specifies the full path to the offending field. The path is formatted in the same way the policy JSON field would be referenced in JavaScript, that is: 1) For object-typed fields, the field name is followed by a dot then by a subfield name. 2) For array-typed fields, the field name is followed by the array index enclosed in brackets. For example, to indicate a problem with the url field in the externalData field in the 3rd application, the path would be applications[2].externalData.url

currentValue

value (Value format)

If the policy setting could not be applied, the current value of the setting on the device.

installationFailureReason

enum (InstallationFailureReason)

If packageName is set and the non-compliance reason is APP_NOT_INSTALLED or APP_NOT_UPDATED, the detailed reason the app can't be installed or updated.

specificNonComplianceReason

enum (SpecificNonComplianceReason)

The policy-specific reason the device is not in compliance with the setting.

specificNonComplianceContext

object (SpecificNonComplianceContext)

Additional context for specificNonComplianceReason.

InstallationFailureReason

Reasons an app installation might fail.

Enums
INSTALLATION_FAILURE_REASON_UNSPECIFIED This value is disallowed.
INSTALLATION_FAILURE_REASON_UNKNOWN An unknown condition is preventing the app from being installed. Some potential reasons are that the device doesn't have enough storage, the device network connection is unreliable, or the installation is taking longer than expected. The installation will be retried automatically.
IN_PROGRESS The installation is still in progress.
NOT_FOUND The app was not found in Play.
NOT_COMPATIBLE_WITH_DEVICE The app is incompatible with the device.
NOT_APPROVED The app has not been approved by the admin.
PERMISSIONS_NOT_ACCEPTED The app has new permissions that have not been accepted by the admin.
NOT_AVAILABLE_IN_COUNTRY The app is not available in the user's country.
NO_LICENSES_REMAINING There are no licenses available to assign to the user.
NOT_ENROLLED The enterprise is no longer enrolled with Managed Google Play or the admin has not accepted the latest Managed Google Play Terms of Service.
USER_INVALID The user is no longer valid. The user may have been deleted or disabled.
NETWORK_ERROR_UNRELIABLE_CONNECTION

A network error on the user's device has prevented the install from succeeding. This usually happens when the device's internet connectivity is degraded, unavailable or there's a network configuration issue. Please ensure the device has access to full internet connectivity on a network that meets Android Enterprise Network Requirements. App install or update will automatically resume once this is the case.

INSUFFICIENT_STORAGE The user's device does not have sufficient storage space to install the app. This can be resolved by clearing up storage space on the device. App install or update will automatically resume once the device has sufficient storage.

SpecificNonComplianceReason

More details for the reason a device might not be compliant with a policy setting. New values can be added to the enum in the future.

Enums
SPECIFIC_NON_COMPLIANCE_REASON_UNSPECIFIED Specific non-compliance reason is not specified. Fields in specificNonComplianceContext are not set.
PASSWORD_POLICIES_USER_CREDENTIALS_CONFIRMATION_REQUIRED User needs to confirm credentials by entering the screen lock. Fields in specificNonComplianceContext are not set. nonComplianceReason is set to USER_ACTION.
PASSWORD_POLICIES_PASSWORD_EXPIRED The device or profile password has expired. passwordPoliciesContext is set. nonComplianceReason is set to USER_ACTION.
PASSWORD_POLICIES_PASSWORD_NOT_SUFFICIENT The device password does not satisfy password requirements. passwordPoliciesContext is set. nonComplianceReason is set to USER_ACTION.
ONC_WIFI_INVALID_VALUE There is an incorrect value in ONC Wi-Fi configuration. fieldPath specifies which field value is incorrect. oncWifiContext is set. nonComplianceReason is set to INVALID_VALUE.
ONC_WIFI_API_LEVEL The ONC Wi-Fi setting is not supported in the API level of the Android version running on the device. fieldPath specifies which field value is not supported. oncWifiContext is set. nonComplianceReason is set to API_LEVEL.
ONC_WIFI_INVALID_ENTERPRISE_CONFIG The enterprise Wi-Fi network is missing either the root CA or domain name. nonComplianceReason is set to INVALID_VALUE.
ONC_WIFI_USER_SHOULD_REMOVE_NETWORK User needs to remove the configured Wi-Fi network manually. This is applicable only on work profiles on personally-owned devices. nonComplianceReason is set to USER_ACTION.
ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY Key pair alias specified via ClientCertKeyPairAlias field in openNetworkConfiguration does not correspond to an existing key installed on the device. nonComplianceReason is set to INVALID_VALUE.

SpecificNonComplianceContext

Additional context for SpecificNonComplianceReason.

JSON representation
{
  "oncWifiContext": {
    object (OncWifiContext)
  },
  "passwordPoliciesContext": {
    object (PasswordPoliciesContext)
  }
}
Fields
oncWifiContext

object (OncWifiContext)

Additional context for non-compliance related to Wi-Fi configuration. See ONC_WIFI_INVALID_VALUE and ONC_WIFI_API_LEVEL

passwordPoliciesContext

object (PasswordPoliciesContext)

Additional context for non-compliance related to password policies. See PASSWORD_POLICIES_PASSWORD_EXPIRED and PASSWORD_POLICIES_PASSWORD_NOT_SUFFICIENT.

OncWifiContext

Additional context for non-compliance related to Wi-Fi configuration.

JSON representation
{
  "wifiGuid": string
}
Fields
wifiGuid

string

The GUID of non-compliant Wi-Fi configuration.

PasswordPoliciesContext

Additional context for non-compliance related to password policies.

JSON representation
{
  "passwordPolicyScope": enum (PasswordPolicyScope)
}
Fields
passwordPolicyScope

enum (PasswordPolicyScope)

The scope of non-compliant password.

SoftwareInfo

Information about device software.

JSON representation
{
  "androidVersion": string,
  "androidDevicePolicyVersionCode": integer,
  "androidDevicePolicyVersionName": string,
  "androidBuildNumber": string,
  "deviceKernelVersion": string,
  "bootloaderVersion": string,
  "androidBuildTime": string,
  "securityPatchLevel": string,
  "primaryLanguageCode": string,
  "deviceBuildSignature": string,
  "systemUpdateInfo": {
    object (SystemUpdateInfo)
  }
}
Fields
androidVersion

string

The user-visible Android version string. For example, 6.0.1.

androidDevicePolicyVersionCode

integer

The Android Device Policy app version code.

androidDevicePolicyVersionName

string

The Android Device Policy app version as displayed to the user.

androidBuildNumber

string

Android build ID string meant for displaying to the user. For example, shamu-userdebug 6.0.1 MOB30I 2756745 dev-keys.

deviceKernelVersion

string

Kernel version, for example, 2.6.32.9-g103d848.

bootloaderVersion

string

The system bootloader version number, e.g. 0.6.7.

androidBuildTime

string (Timestamp format)

Build time.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

securityPatchLevel

string

Security patch level, e.g. 2016-05-01.

primaryLanguageCode

string

An IETF BCP 47 language code for the primary locale on the device.

deviceBuildSignature

string

SHA-256 hash of android.content.pm.Signature associated with the system package, which can be used to verify that the system build hasn't been modified.

systemUpdateInfo

object (SystemUpdateInfo)

Information about a potential pending system update.

SystemUpdateInfo

Information about a potential pending system update.

JSON representation
{
  "updateStatus": enum (UpdateStatus),
  "updateReceivedTime": string
}
Fields
updateStatus

enum (UpdateStatus)

The status of an update: whether an update exists and what type it is.

updateReceivedTime

string (Timestamp format)

The time when the update was first available. A zero value indicates that this field is not set. This field is set only if an update is available (that is, updateStatus is neither UPDATE_STATUS_UNKNOWN nor UP_TO_DATE).

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

UpdateStatus

The status of an update: whether an update exists and what type it is.

Enums
UPDATE_STATUS_UNKNOWN It is unknown whether there is a pending system update. This happens when, for example, the device API level is less than 26, or if the version of Android Device Policy is outdated.
UP_TO_DATE There is no pending system update available on the device.
UNKNOWN_UPDATE_AVAILABLE There is a pending system update available, but its type is not known.
SECURITY_UPDATE_AVAILABLE There is a pending security update available.
OS_UPDATE_AVAILABLE There is a pending OS update available.

HardwareInfo

Information about device hardware. The fields related to temperature thresholds are only available if hardwareStatusEnabled is true in the device's policy.

JSON representation
{
  "brand": string,
  "hardware": string,
  "deviceBasebandVersion": string,
  "manufacturer": string,
  "serialNumber": string,
  "model": string,
  "batteryShutdownTemperatures": [
    number
  ],
  "batteryThrottlingTemperatures": [
    number
  ],
  "cpuShutdownTemperatures": [
    number
  ],
  "cpuThrottlingTemperatures": [
    number
  ],
  "gpuShutdownTemperatures": [
    number
  ],
  "gpuThrottlingTemperatures": [
    number
  ],
  "skinShutdownTemperatures": [
    number
  ],
  "skinThrottlingTemperatures": [
    number
  ],
  "enterpriseSpecificId": string
}
Fields
brand

string

Brand of the device. For example, Google.

hardware

string

Name of the hardware. For example, Angler.

deviceBasebandVersion

string

Baseband version. For example, MDM9625_104662.22.05.34p.

manufacturer

string

Manufacturer. For example, Motorola.

serialNumber

string

The device serial number.

model

string

The model of the device. For example, Asus Nexus 7.

batteryShutdownTemperatures[]

number

Battery shutdown temperature thresholds in Celsius for each battery on the device.

batteryThrottlingTemperatures[]

number

Battery throttling temperature thresholds in Celsius for each battery on the device.

cpuShutdownTemperatures[]

number

CPU shutdown temperature thresholds in Celsius for each CPU on the device.

cpuThrottlingTemperatures[]

number

CPU throttling temperature thresholds in Celsius for each CPU on the device.

gpuShutdownTemperatures[]

number

GPU shutdown temperature thresholds in Celsius for each GPU on the device.

gpuThrottlingTemperatures[]

number

GPU throttling temperature thresholds in Celsius for each GPU on the device.

skinShutdownTemperatures[]

number

Device skin shutdown temperature thresholds in Celsius.

skinThrottlingTemperatures[]

number

Device skin throttling temperature thresholds in Celsius.

enterpriseSpecificId

string

Output only. ID that uniquely identifies a personally-owned device in a particular organization. On the same physical device when enrolled with the same organization, this ID persists across setups and even factory resets. This ID is available on personally-owned devices with a work profile on devices running Android 12 and above.

Display

Device display information.

JSON representation
{
  "name": string,
  "displayId": integer,
  "refreshRate": integer,
  "state": enum (DisplayState),
  "width": integer,
  "height": integer,
  "density": integer
}
Fields
name

string

Name of the display.

displayId

integer

Unique display id.

refreshRate

integer

Refresh rate of the display in frames per second.

state

enum (DisplayState)

State of the display.

width

integer

Display width in pixels.

height

integer

Display height in pixels.

density

integer

Display density expressed as dots-per-inch.

DisplayState

The state of a display.

Enums
DISPLAY_STATE_UNSPECIFIED This value is disallowed.
OFF Display is off.
ON Display is on.
DOZE Display is dozing in a low power state
SUSPENDED Display is dozing in a suspended low power state.

ApplicationReport

Information reported about an installed app.

JSON representation
{
  "packageName": string,
  "versionName": string,
  "versionCode": integer,
  "events": [
    {
      object (ApplicationEvent)
    }
  ],
  "displayName": string,
  "packageSha256Hash": string,
  "signingKeyCertFingerprints": [
    string
  ],
  "installerPackageName": string,
  "applicationSource": enum (ApplicationSource),
  "state": enum (ApplicationState),
  "keyedAppStates": [
    {
      object (KeyedAppState)
    }
  ],
  "userFacingType": enum (UserFacingType)
}
Fields
packageName

string

Package name of the app.

versionName

string

The app version as displayed to the user.

versionCode

integer

The app version code, which can be used to determine whether one version is more recent than another.

events[]

object (ApplicationEvent)

The list of app events which have occurred in the last 30 hours.

displayName

string

The display name of the app.

packageSha256Hash

string

The SHA-256 hash of the app's APK file, which can be used to verify the app hasn't been modified. Each byte of the hash value is represented as a two-digit hexadecimal number.

signingKeyCertFingerprints[]

string

The SHA-1 hash of each android.content.pm.Signature associated with the app package. Each byte of each hash value is represented as a two-digit hexadecimal number.

installerPackageName

string

The package name of the app that installed this app.

applicationSource

enum (ApplicationSource)

The source of the package.

state

enum (ApplicationState)

Application state.

keyedAppStates[]

object (KeyedAppState)

List of keyed app states reported by the app.

userFacingType

enum (UserFacingType)

Whether the app is user facing.

ApplicationEvent

An app-related event.

JSON representation
{
  "eventType": enum (ApplicationEventType),
  "createTime": string
}
Fields
eventType

enum (ApplicationEventType)

App event type.

createTime

string (Timestamp format)

The creation time of the event.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

ApplicationEventType

A type of app-related event.

Enums
APPLICATION_EVENT_TYPE_UNSPECIFIED This value is disallowed.
INSTALLED The app was installed.
CHANGED The app was changed, for example, a component was enabled or disabled.
DATA_CLEARED The app data was cleared.
REMOVED The app was removed.
REPLACED A new version of the app has been installed, replacing the old version.
RESTARTED The app was restarted.
PINNED The app was pinned to the foreground.
UNPINNED The app was unpinned.

ApplicationSource

The source that provided an app.

Enums
APPLICATION_SOURCE_UNSPECIFIED The app was sideloaded from an unspecified source.
SYSTEM_APP_FACTORY_VERSION This is a system app from the device's factory image.
SYSTEM_APP_UPDATED_VERSION This is an updated system app.
INSTALLED_FROM_PLAY_STORE The app was installed from the Google Play Store.

ApplicationState

The current installation status.

Enums
APPLICATION_STATE_UNSPECIFIED App state is unspecified
REMOVED App was removed from the device
INSTALLED App is installed on the device

KeyedAppState

Keyed app state reported by the app.

JSON representation
{
  "key": string,
  "severity": enum (Severity),
  "message": string,
  "data": string,
  "createTime": string,
  "lastUpdateTime": string
}
Fields
key

string

The key for the app state. Acts as a point of reference for what the app is providing state for. For example, when providing managed configuration feedback, this key could be the managed configuration key.

severity

enum (Severity)

The severity of the app state.

message

string

Optionally, a free-form message string to explain the app state. If the state was triggered by a particular value (e.g. a managed configuration value), it should be included in the message.

data

string

Optionally, a machine-readable value to be read by the EMM. For example, setting values that the admin can choose to query against in the EMM console (e.g. “notify me if the battery_warning data < 10”).

createTime

string (Timestamp format)

The creation time of the app state on the device.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

lastUpdateTime

string (Timestamp format)

The time the app state was most recently updated.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

Severity

The severity of the app state.

Enums
SEVERITY_UNSPECIFIED Unspecified severity level.
INFO Information severity level.
ERROR Error severity level. This should only be set for genuine error conditions that a management organization needs to take action to fix.

UserFacingType

Whether the app is user facing.

Enums
USER_FACING_TYPE_UNSPECIFIED App user facing type is unspecified.
NOT_USER_FACING App is not user facing.
USER_FACING App is user facing.

NetworkInfo

Device network info.

JSON representation
{
  "imei": string,
  "meid": string,
  "wifiMacAddress": string,
  "networkOperatorName": string,
  "telephonyInfos": [
    {
      object (TelephonyInfo)
    }
  ]
}
Fields
imei

string

IMEI number of the GSM device. For example, A1000031212.

meid

string

MEID number of the CDMA device. For example, A00000292788E1.

wifiMacAddress

string

Wi-Fi MAC address of the device. For example, 7c:11:11:11:11:11.

networkOperatorName
(deprecated)

string

Alphabetic name of current registered operator. For example, Vodafone.

telephonyInfos[]

object (TelephonyInfo)

Provides telephony information associated with each SIM card on the device. Only supported on fully managed devices starting from Android API level 23.

TelephonyInfo

Telephony information associated with a given SIM card on the device. Only supported on fully managed devices starting from Android API level 23.

JSON representation
{
  "phoneNumber": string,
  "carrierName": string,
  "iccId": string
}
Fields
phoneNumber

string

The phone number associated with this SIM card.

carrierName

string

The carrier name associated with this SIM card.

iccId

string

Output only. The ICCID associated with this SIM card.

MemoryInfo

Information about device memory and storage.

JSON representation
{
  "totalRam": string,
  "totalInternalStorage": string
}
Fields
totalRam

string (int64 format)

Total RAM on device in bytes.

totalInternalStorage

string (int64 format)

Total internal storage on device in bytes.

MemoryEvent

An event related to memory and storage measurements.

To distinguish between new and old events, we recommend using the createTime field.

JSON representation
{
  "eventType": enum (MemoryEventType),
  "createTime": string,
  "byteCount": string
}
Fields
eventType

enum (MemoryEventType)

Event type.

createTime

string (Timestamp format)

The creation time of the event.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

byteCount

string (int64 format)

The number of free bytes in the medium, or for EXTERNAL_STORAGE_DETECTED, the total capacity in bytes of the storage medium.

MemoryEventType

The type of event.

Enums
MEMORY_EVENT_TYPE_UNSPECIFIED Unspecified. No events have this type.
RAM_MEASURED Free space in RAM was measured.
INTERNAL_STORAGE_MEASURED Free space in internal storage was measured.
EXTERNAL_STORAGE_DETECTED A new external storage medium was detected. The reported byte count is the total capacity of the storage medium.
EXTERNAL_STORAGE_REMOVED An external storage medium was removed. The reported byte count is zero.
EXTERNAL_STORAGE_MEASURED Free space in an external storage medium was measured.

PowerManagementEvent

A power management event.

JSON representation
{
  "eventType": enum (PowerManagementEventType),
  "createTime": string,
  "batteryLevel": number
}
Fields
eventType

enum (PowerManagementEventType)

Event type.

createTime

string (Timestamp format)

The creation time of the event.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

batteryLevel

number

For BATTERY_LEVEL_COLLECTED events, the battery level as a percentage.

PowerManagementEventType

The type of event.

Enums
POWER_MANAGEMENT_EVENT_TYPE_UNSPECIFIED Unspecified. No events have this type.
BATTERY_LEVEL_COLLECTED Battery level was measured.
POWER_CONNECTED The device started charging.
POWER_DISCONNECTED The device stopped charging.
BATTERY_LOW The device entered low-power mode.
BATTERY_OKAY The device exited low-power mode.
BOOT_COMPLETED The device booted.
SHUTDOWN The device shut down.

HardwareStatus

Hardware status. Temperatures may be compared to the temperature thresholds available in hardwareInfo to determine hardware health.

JSON representation
{
  "createTime": string,
  "batteryTemperatures": [
    number
  ],
  "cpuTemperatures": [
    number
  ],
  "gpuTemperatures": [
    number
  ],
  "skinTemperatures": [
    number
  ],
  "fanSpeeds": [
    number
  ],
  "cpuUsages": [
    number
  ]
}
Fields
createTime

string (Timestamp format)

The time the measurements were taken.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

batteryTemperatures[]

number

Current battery temperatures in Celsius for each battery on the device.

cpuTemperatures[]

number

Current CPU temperatures in Celsius for each CPU on the device.

gpuTemperatures[]

number

Current GPU temperatures in Celsius for each GPU on the device.

skinTemperatures[]

number

Current device skin temperatures in Celsius.

fanSpeeds[]

number

Fan speeds in RPM for each fan on the device. Empty array means that there are no fans or fan speed is not supported on the system.

cpuUsages[]

number

CPU usages in percentage for each core available on the device. Usage is 0 for each unplugged core. Empty array implies that CPU usage is not supported in the system.

DeviceSettings

Information about security related device settings on device.

JSON representation
{
  "isDeviceSecure": boolean,
  "unknownSourcesEnabled": boolean,
  "developmentSettingsEnabled": boolean,
  "adbEnabled": boolean,
  "isEncrypted": boolean,
  "encryptionStatus": enum (EncryptionStatus),
  "verifyAppsEnabled": boolean
}
Fields
isDeviceSecure

boolean

Whether the device is secured with PIN/password.

unknownSourcesEnabled

boolean

Whether installing apps from unknown sources is enabled.

developmentSettingsEnabled

boolean

Whether developer mode is enabled on the device.

adbEnabled

boolean

Whether ADB is enabled on the device.

isEncrypted

boolean

Whether the storage encryption is enabled.

encryptionStatus

enum (EncryptionStatus)

Encryption status from DevicePolicyManager.

verifyAppsEnabled

boolean

Whether Google Play Protect verification is enforced on the device.

EncryptionStatus

Encryption status of a device.

Enums
ENCRYPTION_STATUS_UNSPECIFIED Unspecified. No device should have this type.
UNSUPPORTED Encryption is not supported by the device.
INACTIVE Encryption is supported by the device, but is not currently active.
ACTIVATING Encryption is not currently active, but is currently being activated.
ACTIVE Encryption is active.
ACTIVE_DEFAULT_KEY Encryption is active, but an encryption key is not set by the user.
ACTIVE_PER_USER Encryption is active, and the encryption key is tied to the user profile.

SecurityPosture

The security posture of the device, as determined by the current device state and the policies applied.

JSON representation
{
  "devicePosture": enum (DevicePosture),
  "postureDetails": [
    {
      object (PostureDetail)
    }
  ]
}
Fields
devicePosture

enum (DevicePosture)

Device's security posture value.

postureDetails[]

object (PostureDetail)

Additional details regarding the security posture of the device.

DevicePosture

Possible security posture values of a device under management.

Enums
POSTURE_UNSPECIFIED Unspecified. There is no posture detail for this posture value.
SECURE This device is secure.
AT_RISK This device may be more vulnerable to malicious actors than is recommended for use with corporate data.
POTENTIALLY_COMPROMISED This device may be compromised and corporate data may be accessible to unauthorized actors.

PostureDetail

Additional details regarding the security posture of the device.

JSON representation
{
  "securityRisk": enum (SecurityRisk),
  "advice": [
    {
      object (UserFacingMessage)
    }
  ]
}
Fields
securityRisk

enum (SecurityRisk)

A specific security risk that negatively affects the security posture of the device.

advice[]

object (UserFacingMessage)

Corresponding admin-facing advice to mitigate this security risk and improve the security posture of the device.

SecurityRisk

The risk that makes the device not in the most secure state.

Enums
SECURITY_RISK_UNSPECIFIED Unspecified.
UNKNOWN_OS Play Integrity API detects that the device is running an unknown OS (basicIntegrity check succeeds but ctsProfileMatch fails).
COMPROMISED_OS Play Integrity API detects that the device is running a compromised OS (basicIntegrity check fails).
HARDWARE_BACKED_EVALUATION_FAILED Play Integrity API detects that the device does not have a strong guarantee of system integrity, if the MEETS_STRONG_INTEGRITY label doesn't show in the device integrity field.

CommonCriteriaModeInfo

Information about Common Criteria Mode—security standards defined in the Common Criteria for Information Technology Security Evaluation (CC).

This information is only available if statusReportingSettings.commonCriteriaModeEnabled is true in the device's policy.

JSON representation
{
  "commonCriteriaModeStatus": enum (CommonCriteriaModeStatus),
  "policySignatureVerificationStatus": enum (PolicySignatureVerificationStatus)
}
Fields
commonCriteriaModeStatus

enum (CommonCriteriaModeStatus)

Whether Common Criteria Mode is enabled.

policySignatureVerificationStatus

enum (PolicySignatureVerificationStatus)

Output only. The status of policy signature verification.

CommonCriteriaModeStatus

Whether Common Criteria Mode is enabled.

Enums
COMMON_CRITERIA_MODE_STATUS_UNKNOWN Unknown status.
COMMON_CRITERIA_MODE_DISABLED Common Criteria Mode is currently disabled.
COMMON_CRITERIA_MODE_ENABLED Common Criteria Mode is currently enabled.

PolicySignatureVerificationStatus

The status of policy signature verification.

Enums
POLICY_SIGNATURE_VERIFICATION_STATUS_UNSPECIFIED Unspecified. The verification status has not been reported. This is set only if statusReportingSettings.commonCriteriaModeEnabled is false.
POLICY_SIGNATURE_VERIFICATION_DISABLED Policy signature verification is disabled on the device as commonCriteriaMode is set to false.
POLICY_SIGNATURE_VERIFICATION_SUCCEEDED Policy signature verification succeeded.
POLICY_SIGNATURE_VERIFICATION_NOT_SUPPORTED Policy signature verification is not supported, e.g. because the device has been enrolled with a CloudDPC version that does not support the policy signature verification.
POLICY_SIGNATURE_VERIFICATION_FAILED The policy signature verification failed. The policy has not been applied.

DpcMigrationInfo

Information related to whether this device was migrated from being managed by another Device Policy Controller (DPC).

JSON representation
{
  "previousDpc": string,
  "additionalData": string
}
Fields
previousDpc

string

Output only. If this device was migrated from another DPC, this is its package name. Not populated otherwise.

additionalData

string

Output only. If this device was migrated from another DPC, the additionalData field of the migration token is populated here.

Methods

delete

Deletes a device.

get

Gets a device.

issueCommand

Issues a command to a device.

list

Lists devices for a given enterprise.

patch

Updates a device.