MCP Tools Reference: Android Device Management MCP Server

Tool: list_devices

Lists devices for a given enterprise. Requires the enterprise ID in the parent field (e.g., enterprises/{enterpriseId}).

The following sample demonstrate how to use curl to invoke the list_devices MCP tool.

Curl Request
                  
curl --location 'https://androidmanagement.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "list_devices",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

Input Schema

Request to list devices for a given enterprise.

ListDevicesRequest

JSON representation
{
  "parent": string,
  "pageSize": integer,
  "pageToken": string
}
Fields
parent

string

The name of the enterprise in the form enterprises/{enterpriseId}.

pageSize

integer

The requested page size. If unspecified, at most 10 devices will be returned. The maximum value is 100; values above 100 will be coerced to 100. The limits can change over time.

pageToken

string

A token identifying a page of results returned by the server.

Output Schema

Response to a request to list devices for a given enterprise.

ListDevicesResponse

JSON representation
{
  "devices": [
    {
      object (Device)
    }
  ],
  "nextPageToken": string
}
Fields
devices[]

object (Device)

The list of devices.

nextPageToken

string

If there are more results, a token to retrieve next page of results.

Device

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)
  },
  "defaultApplicationInfo": [
    {
      object (DefaultApplicationInfo)
    }
  ]
}
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.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

lastStatusReportTime

string (Timestamp format)

The last time the device sent a status report.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

lastPolicyComplianceReportTime
(deprecated)

string (Timestamp format)

Deprecated.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

lastPolicySyncTime

string (Timestamp format)

The last time the device fetched its policy.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

policyName

string

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

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 application_reports_enabled 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.

  • This field exists because the applied requirements may be slightly different from those specified in passwordPolicies in some cases.
  • Note that this field does not provide information about password compliance. For non-compliance information, see nonComplianceDetails.
  • NonComplianceDetail.fieldPath, is set based on passwordPolicies, not based on this field.
dpcMigrationInfo

object (DpcMigrationInfo)

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

defaultApplicationInfo[]

object (DefaultApplicationInfo)

Output only. The default application information for the DefaultApplicationType. This information is only available if defaultApplicationInfoReportingEnabled is true in the device's policy. Available on Android 16 and above.

All app types are reported on fully managed devices. DEFAULT_BROWSER, DEFAULT_CALL_REDIRECTION, DEFAULT_CALL_SCREENING and DEFAULT_DIALER types are reported for the work profiles on company-owned devices with a work profile and personally-owned devices. DEFAULT_WALLET is also reported for company-owned devices with a work profile, but will only include work profile information.

NonComplianceDetail

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 package_name is set and the non-compliance reason is APP_NOT_INSTALLED or APP_NOT_UPDATED, the detailed reason the app can't be installed or updated.

specificNonComplianceReason

enum (SpecificNonComplianceReason)

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

specificNonComplianceContext

object (SpecificNonComplianceContext)

Additional context for specific_non_compliance_reason.

Value

JSON representation
{

  // Union field kind can be only one of the following:
  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
  // End of list of possible types for union field kind.
}
Fields
Union field kind. The kind of value. kind can be only one of the following:
nullValue

null

Represents a null value.

numberValue

number

Represents a double value.

stringValue

string

Represents a string value.

boolValue

boolean

Represents a boolean value.

structValue

object (Struct format)

Represents a structured value.

listValue

array (ListValue format)

Represents a repeated Value.

Struct

JSON representation
{
  "fields": {
    string: value,
    ...
  }
}
Fields
fields

map (key: string, value: value (Value format))

Unordered map of dynamically typed values.

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

FieldsEntry

JSON representation
{
  "key": string,
  "value": value
}
Fields
key

string

value

value (Value format)

ListValue

JSON representation
{
  "values": [
    value
  ]
}
Fields
values[]

value (Value format)

Repeated field of dynamically typed values.

SpecificNonComplianceContext

JSON representation
{
  "oncWifiContext": {
    object (OncWifiContext)
  },
  "passwordPoliciesContext": {
    object (PasswordPoliciesContext)
  },
  "defaultApplicationContext": {
    object (DefaultApplicationContext)
  }
}
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.

defaultApplicationContext

object (DefaultApplicationContext)

Output only. Additional context for non-compliance related to default application settings. See DEFAULT_APPLICATION_SETTING_FAILED_FOR_SCOPE.

OncWifiContext

JSON representation
{
  "wifiGuid": string
}
Fields
wifiGuid

string

The GUID of non-compliant Wi-Fi configuration.

PasswordPoliciesContext

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

enum (PasswordPolicyScope)

The scope of non-compliant password.

DefaultApplicationContext

JSON representation
{
  "defaultApplicationScope": enum (DefaultApplicationScope)
}
Fields
defaultApplicationScope

enum (DefaultApplicationScope)

Output only. The scope of non-compliant default application setting.

Timestamp

JSON representation
{
  "seconds": string,
  "nanos": integer
}
Fields
seconds

string (int64 format)

Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).

nanos

integer

Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive.

UserFacingMessage

JSON representation
{
  "localizedMessages": {
    string: string,
    ...
  },
  "defaultMessage": string
}
Fields
localizedMessages

map (key: string, value: string)

A map containing <locale, message> pairs, where locale is a well-formed BCP 47 language code, such as en-US, es-ES, or fr.

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

defaultMessage

string

The default message displayed if no localized message is specified or the user's locale doesn't match with any of the localized messages. A default message must be provided if any localized messages are provided.

LocalizedMessagesEntry

JSON representation
{
  "key": string,
  "value": string
}
Fields
key

string

value

string

SoftwareInfo

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.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

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

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).

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

HardwareInfo

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,
  "euiccChipInfo": [
    {
      object (EuiccChipInfo)
    }
  ]
}
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. However, for personally-owned devices running Android 12 and above, this is the same as the enterpriseSpecificId.

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.

euiccChipInfo[]

object (EuiccChipInfo)

Output only. Information related to the eUICC chip.

EuiccChipInfo

JSON representation
{
  "eid": string
}
Fields
eid

string

Output only. The Embedded Identity Document (EID) that identifies the eUICC chip for each eUICC chip on the device. This is available on company owned devices running Android 13 and above.

Display

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.

ApplicationReport

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

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

enum (ApplicationEventType)

App event type.

createTime

string (Timestamp format)

The creation time of the event.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

KeyedAppState

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.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

lastUpdateTime

string (Timestamp format)

The time the app state was most recently updated.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

NetworkInfo

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

JSON representation
{
  "phoneNumber": string,
  "carrierName": string,
  "iccId": string,
  "activationState": enum (ActivationState),
  "configMode": enum (ConfigMode)
}
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.

activationState

enum (ActivationState)

Output only. Activation state of the SIM card on the device. This is applicable for eSIMs only. This is supported on all devices for API level 35 and above. This is always ACTIVATION_STATE_UNSPECIFIED for physical SIMs and for devices below API level 35.

configMode

enum (ConfigMode)

Output only. The configuration mode of the SIM card on the device. This is applicable for eSIMs only. This is supported on all devices for API level 35 and above. This is always CONFIG_MODE_UNSPECIFIED for physical SIMs and for devices below API level 35.

MemoryInfo

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

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.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

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.

PowerManagementEvent

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.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

batteryLevel

number

For BATTERY_LEVEL_COLLECTED events, the battery level as a percentage.

HardwareStatus

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.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

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

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.

User

JSON representation
{
  "accountIdentifier": string
}
Fields
accountIdentifier

string

A unique identifier you create for this user, such as user342 or asset#44418. This field must be set when the user is created and can't be updated. This field must not contain personally identifiable information (PII). This identifier must be 1024 characters or less; otherwise, the update policy request will fail.

SystemPropertiesEntry

JSON representation
{
  "key": string,
  "value": string
}
Fields
key

string

value

string

SecurityPosture

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.

PostureDetail

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.

CommonCriteriaModeInfo

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.

PasswordRequirements

JSON representation
{
  "passwordMinimumLength": integer,
  "passwordMinimumLetters": integer,
  "passwordMinimumLowerCase": integer,
  "passwordMinimumNonLetter": integer,
  "passwordMinimumNumeric": integer,
  "passwordMinimumSymbols": integer,
  "passwordMinimumUpperCase": integer,
  "passwordQuality": enum (PasswordQuality),
  "passwordHistoryLength": integer,
  "maximumFailedPasswordsForWipe": integer,
  "passwordExpirationTimeout": string,
  "passwordScope": enum (PasswordPolicyScope),
  "requirePasswordUnlock": enum (RequirePasswordUnlock),
  "unifiedLockSettings": enum (UnifiedLockSettings)
}
Fields
passwordMinimumLength

integer

The minimum allowed password length. A value of 0 means there is no restriction. Only enforced when password_quality is NUMERIC, NUMERIC_COMPLEX, ALPHABETIC, ALPHANUMERIC, or COMPLEX.

passwordMinimumLetters

integer

Minimum number of letters required in the password. Only enforced when password_quality is COMPLEX.

passwordMinimumLowerCase

integer

Minimum number of lower case letters required in the password. Only enforced when password_quality is COMPLEX.

passwordMinimumNonLetter

integer

Minimum number of non-letter characters (numerical digits or symbols) required in the password. Only enforced when password_quality is COMPLEX.

passwordMinimumNumeric

integer

Minimum number of numerical digits required in the password. Only enforced when password_quality is COMPLEX.

passwordMinimumSymbols

integer

Minimum number of symbols required in the password. Only enforced when password_quality is COMPLEX.

passwordMinimumUpperCase

integer

Minimum number of upper case letters required in the password. Only enforced when password_quality is COMPLEX.

passwordQuality

enum (PasswordQuality)

The required password quality.

passwordHistoryLength

integer

The length of the password history. After setting this field, the user won't be able to enter a new password that is the same as any password in the history. A value of 0 means there is no restriction.

maximumFailedPasswordsForWipe

integer

Number of incorrect device-unlock passwords that can be entered before a device is wiped. A value of 0 means there is no restriction.

passwordExpirationTimeout

string (Duration format)

Password expiration timeout.

A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

passwordScope

enum (PasswordPolicyScope)

The scope that the password requirement applies to.

requirePasswordUnlock

enum (RequirePasswordUnlock)

The length of time after a device or work profile is unlocked using a strong form of authentication (password, PIN, pattern) that it can be unlocked using any other authentication method (e.g. fingerprint, trust agents, face). After the specified time period elapses, only strong forms of authentication can be used to unlock the device or work profile.

unifiedLockSettings

enum (UnifiedLockSettings)

Controls whether a unified lock is allowed for the device and the work profile, on devices running Android 9 and above with a work profile. This can be set only if password_scope is set to SCOPE_PROFILE, the policy will be rejected otherwise. If user has not set a separate work lock and this field is set to REQUIRE_SEPARATE_WORK_LOCK, a NonComplianceDetail is reported with nonComplianceReason set to USER_ACTION.

Duration

JSON representation
{
  "seconds": string,
  "nanos": integer
}
Fields
seconds

string (int64 format)

Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years

nanos

integer

Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 seconds field and a positive or negative nanos field. For durations of one second or more, a non-zero value for the nanos field must be of the same sign as the seconds field. Must be from -999,999,999 to +999,999,999 inclusive.

DpcMigrationInfo

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.

DefaultApplicationInfo

JSON representation
{
  "defaultApplicationType": enum (DefaultApplicationType),
  "packageName": string,
  "defaultApplicationSettingAttempts": [
    {
      object (DefaultApplicationSettingAttempt)
    }
  ]
}
Fields
defaultApplicationType

enum (DefaultApplicationType)

Output only. The default application type.

packageName

string

Output only. The package name of the current default application.

defaultApplicationSettingAttempts[]

object (DefaultApplicationSettingAttempt)

Output only. Details on the default application setting attempts, in the same order as listed in defaultApplications.

DefaultApplicationSettingAttempt

JSON representation
{
  "packageName": string,
  "attemptOutcome": enum (AttemptOutcome)
}
Fields
packageName

string

Output only. The package name of the attempted application.

attemptOutcome

enum (AttemptOutcome)

Output only. The outcome of setting the app as the default.

Tool Annotations

Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌