<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="androidmanagement_v1.html">Android Management API</a> . <a href="androidmanagement_v1.enterprises.html">enterprises</a> . <a href="androidmanagement_v1.enterprises.devices.html">devices</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="androidmanagement_v1.enterprises.devices.operations.html">operations()</a></code>
</p>
<p class="firstline">Returns the operations Resource.</p>

<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, wipeDataFlags=None, wipeReasonMessage=None, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes a device. This operation wipes the device.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets a device.</p>
<p class="toc_element">
  <code><a href="#issueCommand">issueCommand(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Issues a command to a device. The Operation resource returned contains a Command in its metadata field. Use the get operation method to get the status of the command.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists devices for a given enterprise.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates a device.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(name, wipeDataFlags=None, wipeReasonMessage=None, x__xgafv=None)</code>
  <pre>Deletes a device. This operation wipes the device.

Args:
  name: string, The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}. (required)
  wipeDataFlags: string, Optional flags that control the device wiping behavior. (repeated)
    Allowed values
      WIPE_DATA_FLAG_UNSPECIFIED - This value is ignored.
      PRESERVE_RESET_PROTECTION_DATA - Preserve the factory reset protection data on the device.
      WIPE_EXTERNAL_STORAGE - Additionally wipe the device&#x27;s external storage (such as SD cards).
  wipeReasonMessage: string, Optional. A short message displayed to the user before wiping the work profile on personal devices. This has no effect on company owned devices. The maximum message length is 200 characters.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for Empty is empty JSON object {}.
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Gets a device.

Args:
  name: string, The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A device owned by an enterprise. Unless otherwise noted, all fields are read-only and can&#x27;t be modified by enterprises.devices.patch.
  &quot;apiLevel&quot;: 42, # The API level of the Android platform version running on the device.
  &quot;applicationReports&quot;: [ # Reports for apps installed on the device. This information is only available when application_reports_enabled is true in the device&#x27;s policy.
    { # Information reported about an installed app.
      &quot;applicationSource&quot;: &quot;A String&quot;, # The source of the package.
      &quot;displayName&quot;: &quot;A String&quot;, # The display name of the app.
      &quot;events&quot;: [ # List of app events. The most recent 20 events are stored in the list.
        { # An app-related event.
          &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
          &quot;eventType&quot;: &quot;A String&quot;, # App event type.
        },
      ],
      &quot;installerPackageName&quot;: &quot;A String&quot;, # The package name of the app that installed this app.
      &quot;keyedAppStates&quot;: [ # List of keyed app states reported by the app.
        { # Keyed app state reported by the app.
          &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the app state on the device.
          &quot;data&quot;: &quot;A String&quot;, # 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 &lt; 10”).
          &quot;key&quot;: &quot;A String&quot;, # 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.
          &quot;lastUpdateTime&quot;: &quot;A String&quot;, # The time the app state was most recently updated.
          &quot;message&quot;: &quot;A String&quot;, # 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.
          &quot;severity&quot;: &quot;A String&quot;, # The severity of the app state.
        },
      ],
      &quot;packageName&quot;: &quot;A String&quot;, # Package name of the app.
      &quot;packageSha256Hash&quot;: &quot;A String&quot;, # The SHA-256 hash of the app&#x27;s APK file, which can be used to verify the app hasn&#x27;t been modified. Each byte of the hash value is represented as a two-digit hexadecimal number.
      &quot;signingKeyCertFingerprints&quot;: [ # The SHA-1 hash of each android.content.pm.Signature (https://developer.android.com/reference/android/content/pm/Signature.html) associated with the app package. Each byte of each hash value is represented as a two-digit hexadecimal number.
        &quot;A String&quot;,
      ],
      &quot;state&quot;: &quot;A String&quot;, # Application state.
      &quot;versionCode&quot;: 42, # The app version code, which can be used to determine whether one version is more recent than another.
      &quot;versionName&quot;: &quot;A String&quot;, # The app version as displayed to the user.
    },
  ],
  &quot;appliedPolicyName&quot;: &quot;A String&quot;, # The name of the policy currently applied to the device.
  &quot;appliedPolicyVersion&quot;: &quot;A String&quot;, # The version of the policy currently applied to the device.
  &quot;appliedState&quot;: &quot;A String&quot;, # The state currently applied to the device.
  &quot;commonCriteriaModeInfo&quot;: { # Information about Common Criteria Mode—security standards defined in the Common Criteria for Information Technology Security Evaluation (https://www.commoncriteriaportal.org/) (CC).This information is only available if statusReportingSettings.commonCriteriaModeEnabled is true in the device&#x27;s policy. # Information about Common Criteria Mode—security standards defined in the Common Criteria for Information Technology Security Evaluation (https://www.commoncriteriaportal.org/) (CC).This information is only available if statusReportingSettings.commonCriteriaModeEnabled is true in the device&#x27;s policy.
    &quot;commonCriteriaModeStatus&quot;: &quot;A String&quot;, # Whether Common Criteria Mode is enabled.
  },
  &quot;deviceSettings&quot;: { # Information about security related device settings on device. # Device settings information. This information is only available if deviceSettingsEnabled is true in the device&#x27;s policy.
    &quot;adbEnabled&quot;: True or False, # Whether ADB (https://developer.android.com/studio/command-line/adb.html) is enabled on the device.
    &quot;developmentSettingsEnabled&quot;: True or False, # Whether developer mode is enabled on the device.
    &quot;encryptionStatus&quot;: &quot;A String&quot;, # Encryption status from DevicePolicyManager.
    &quot;isDeviceSecure&quot;: True or False, # Whether the device is secured with PIN/password.
    &quot;isEncrypted&quot;: True or False, # Whether the storage encryption is enabled.
    &quot;unknownSourcesEnabled&quot;: True or False, # Whether installing apps from unknown sources is enabled.
    &quot;verifyAppsEnabled&quot;: True or False, # Whether Google Play Protect verification (https://support.google.com/accounts/answer/2812853) is enforced on the device.
  },
  &quot;disabledReason&quot;: { # Provides a user-facing message with locale info. The maximum message length is 4096 characters. # 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.
    &quot;defaultMessage&quot;: &quot;A String&quot;, # The default message displayed if no localized message is specified or the user&#x27;s locale doesn&#x27;t match with any of the localized messages. A default message must be provided if any localized messages are provided.
    &quot;localizedMessages&quot;: { # A map containing pairs, where locale is a well-formed BCP 47 language (https://www.w3.org/International/articles/language-tags/) code, such as en-US, es-ES, or fr.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
  },
  &quot;displays&quot;: [ # Detailed information about displays on the device. This information is only available if displayInfoEnabled is true in the device&#x27;s policy.
    { # Device display information.
      &quot;density&quot;: 42, # Display density expressed as dots-per-inch.
      &quot;displayId&quot;: 42, # Unique display id.
      &quot;height&quot;: 42, # Display height in pixels.
      &quot;name&quot;: &quot;A String&quot;, # Name of the display.
      &quot;refreshRate&quot;: 42, # Refresh rate of the display in frames per second.
      &quot;state&quot;: &quot;A String&quot;, # State of the display.
      &quot;width&quot;: 42, # Display width in pixels.
    },
  ],
  &quot;enrollmentTime&quot;: &quot;A String&quot;, # The time of device enrollment.
  &quot;enrollmentTokenData&quot;: &quot;A String&quot;, # If the device was enrolled with an enrollment token with additional data provided, this field contains that data.
  &quot;enrollmentTokenName&quot;: &quot;A String&quot;, # If the device was enrolled with an enrollment token, this field contains the name of the token.
  &quot;hardwareInfo&quot;: { # Information about device hardware. The fields related to temperature thresholds are only available if hardwareStatusEnabled is true in the device&#x27;s policy. # Detailed information about the device hardware.
    &quot;batteryShutdownTemperatures&quot;: [ # Battery shutdown temperature thresholds in Celsius for each battery on the device.
      3.14,
    ],
    &quot;batteryThrottlingTemperatures&quot;: [ # Battery throttling temperature thresholds in Celsius for each battery on the device.
      3.14,
    ],
    &quot;brand&quot;: &quot;A String&quot;, # Brand of the device. For example, Google.
    &quot;cpuShutdownTemperatures&quot;: [ # CPU shutdown temperature thresholds in Celsius for each CPU on the device.
      3.14,
    ],
    &quot;cpuThrottlingTemperatures&quot;: [ # CPU throttling temperature thresholds in Celsius for each CPU on the device.
      3.14,
    ],
    &quot;deviceBasebandVersion&quot;: &quot;A String&quot;, # Baseband version. For example, MDM9625_104662.22.05.34p.
    &quot;gpuShutdownTemperatures&quot;: [ # GPU shutdown temperature thresholds in Celsius for each GPU on the device.
      3.14,
    ],
    &quot;gpuThrottlingTemperatures&quot;: [ # GPU throttling temperature thresholds in Celsius for each GPU on the device.
      3.14,
    ],
    &quot;hardware&quot;: &quot;A String&quot;, # Name of the hardware. For example, Angler.
    &quot;manufacturer&quot;: &quot;A String&quot;, # Manufacturer. For example, Motorola.
    &quot;model&quot;: &quot;A String&quot;, # The model of the device. For example, Asus Nexus 7.
    &quot;serialNumber&quot;: &quot;A String&quot;, # The device serial number.
    &quot;skinShutdownTemperatures&quot;: [ # Device skin shutdown temperature thresholds in Celsius.
      3.14,
    ],
    &quot;skinThrottlingTemperatures&quot;: [ # Device skin throttling temperature thresholds in Celsius.
      3.14,
    ],
  },
  &quot;hardwareStatusSamples&quot;: [ # Hardware status samples in chronological order. This information is only available if hardwareStatusEnabled is true in the device&#x27;s policy.
    { # Hardware status. Temperatures may be compared to the temperature thresholds available in hardwareInfo to determine hardware health.
      &quot;batteryTemperatures&quot;: [ # Current battery temperatures in Celsius for each battery on the device.
        3.14,
      ],
      &quot;cpuTemperatures&quot;: [ # Current CPU temperatures in Celsius for each CPU on the device.
        3.14,
      ],
      &quot;cpuUsages&quot;: [ # 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.
        3.14,
      ],
      &quot;createTime&quot;: &quot;A String&quot;, # The time the measurements were taken.
      &quot;fanSpeeds&quot;: [ # 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.
        3.14,
      ],
      &quot;gpuTemperatures&quot;: [ # Current GPU temperatures in Celsius for each GPU on the device.
        3.14,
      ],
      &quot;skinTemperatures&quot;: [ # Current device skin temperatures in Celsius.
        3.14,
      ],
    },
  ],
  &quot;lastPolicyComplianceReportTime&quot;: &quot;A String&quot;, # Deprecated.
  &quot;lastPolicySyncTime&quot;: &quot;A String&quot;, # The last time the device fetched its policy.
  &quot;lastStatusReportTime&quot;: &quot;A String&quot;, # The last time the device sent a status report.
  &quot;managementMode&quot;: &quot;A String&quot;, # The type of management mode Android Device Policy takes on the device. This influences which policy settings are supported.
  &quot;memoryEvents&quot;: [ # Events related to memory and storage measurements in chronological order. This information is only available if memoryInfoEnabled is true in the device&#x27;s policy.
    { # An event related to memory and storage measurements.
      &quot;byteCount&quot;: &quot;A String&quot;, # The number of free bytes in the medium, or for EXTERNAL_STORAGE_DETECTED, the total capacity in bytes of the storage medium.
      &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
      &quot;eventType&quot;: &quot;A String&quot;, # Event type.
    },
  ],
  &quot;memoryInfo&quot;: { # Information about device memory and storage. # Memory information. This information is only available if memoryInfoEnabled is true in the device&#x27;s policy.
    &quot;totalInternalStorage&quot;: &quot;A String&quot;, # Total internal storage on device in bytes.
    &quot;totalRam&quot;: &quot;A String&quot;, # Total RAM on device in bytes.
  },
  &quot;name&quot;: &quot;A String&quot;, # The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}.
  &quot;networkInfo&quot;: { # Device network info. # Device network information. This information is only available if networkInfoEnabled is true in the device&#x27;s policy.
    &quot;imei&quot;: &quot;A String&quot;, # IMEI number of the GSM device. For example, A1000031212.
    &quot;meid&quot;: &quot;A String&quot;, # MEID number of the CDMA device. For example, A00000292788E1.
    &quot;networkOperatorName&quot;: &quot;A String&quot;, # Alphabetic name of current registered operator. For example, Vodafone.
    &quot;telephonyInfos&quot;: [ # Provides telephony information associated with each SIM card on the device. Only supported on fully managed devices starting from Android API level 23.
      { # Telephony information associated with a given SIM card on the device. Only supported on fully managed devices starting from Android API level 23.
        &quot;carrierName&quot;: &quot;A String&quot;, # The carrier name associated with this SIM card.
        &quot;phoneNumber&quot;: &quot;A String&quot;, # The phone number associated with this SIM card.
      },
    ],
    &quot;wifiMacAddress&quot;: &quot;A String&quot;, # Wi-Fi MAC address of the device. For example, 7c:11:11:11:11:11.
  },
  &quot;nonComplianceDetails&quot;: [ # Details about policy settings that the device is not compliant with.
    { # Provides detail about non-compliance with a policy setting.
      &quot;currentValue&quot;: &quot;&quot;, # If the policy setting could not be applied, the current value of the setting on the device.
      &quot;fieldPath&quot;: &quot;A String&quot;, # 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
      &quot;installationFailureReason&quot;: &quot;A String&quot;, # If package_name is set and the non-compliance reason is APP_NOT_INSTALLED or APP_NOT_UPDATED, the detailed reason the app can&#x27;t be installed or updated.
      &quot;nonComplianceReason&quot;: &quot;A String&quot;, # The reason the device is not in compliance with the setting.
      &quot;packageName&quot;: &quot;A String&quot;, # The package name indicating which app is out of compliance, if applicable.
      &quot;settingName&quot;: &quot;A String&quot;, # The name of the policy setting. This is the JSON field name of a top-level Policy field.
    },
  ],
  &quot;ownership&quot;: &quot;A String&quot;, # Ownership of the managed device.
  &quot;policyCompliant&quot;: True or False, # Whether the device is compliant with its policy.
  &quot;policyName&quot;: &quot;A String&quot;, # 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&#x27;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.
  &quot;powerManagementEvents&quot;: [ # Power management events on the device in chronological order. This information is only available if powerManagementEventsEnabled is true in the device&#x27;s policy.
    { # A power management event.
      &quot;batteryLevel&quot;: 3.14, # For BATTERY_LEVEL_COLLECTED events, the battery level as a percentage.
      &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
      &quot;eventType&quot;: &quot;A String&quot;, # Event type.
    },
  ],
  &quot;previousDeviceNames&quot;: [ # 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.
    &quot;A String&quot;,
  ],
  &quot;securityPosture&quot;: { # The security posture of the device, as determined by the current device state and the policies applied. # Device&#x27;s security posture value that reflects how secure the device is.
    &quot;devicePosture&quot;: &quot;A String&quot;, # Device&#x27;s security posture value.
    &quot;postureDetails&quot;: [ # Additional details regarding the security posture of the device.
      { # Additional details regarding the security posture of the device.
        &quot;advice&quot;: [ # Corresponding admin-facing advice to mitigate this security risk and improve the security posture of the device.
          { # Provides a user-facing message with locale info. The maximum message length is 4096 characters.
            &quot;defaultMessage&quot;: &quot;A String&quot;, # The default message displayed if no localized message is specified or the user&#x27;s locale doesn&#x27;t match with any of the localized messages. A default message must be provided if any localized messages are provided.
            &quot;localizedMessages&quot;: { # A map containing pairs, where locale is a well-formed BCP 47 language (https://www.w3.org/International/articles/language-tags/) code, such as en-US, es-ES, or fr.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
        ],
        &quot;securityRisk&quot;: &quot;A String&quot;, # A specific security risk that negatively affects the security posture of the device.
      },
    ],
  },
  &quot;softwareInfo&quot;: { # Information about device software. # Detailed information about the device software. This information is only available if softwareInfoEnabled is true in the device&#x27;s policy.
    &quot;androidBuildNumber&quot;: &quot;A String&quot;, # Android build ID string meant for displaying to the user. For example, shamu-userdebug 6.0.1 MOB30I 2756745 dev-keys.
    &quot;androidBuildTime&quot;: &quot;A String&quot;, # Build time.
    &quot;androidDevicePolicyVersionCode&quot;: 42, # The Android Device Policy app version code.
    &quot;androidDevicePolicyVersionName&quot;: &quot;A String&quot;, # The Android Device Policy app version as displayed to the user.
    &quot;androidVersion&quot;: &quot;A String&quot;, # The user-visible Android version string. For example, 6.0.1.
    &quot;bootloaderVersion&quot;: &quot;A String&quot;, # The system bootloader version number, e.g. 0.6.7.
    &quot;deviceBuildSignature&quot;: &quot;A String&quot;, # SHA-256 hash of android.content.pm.Signature (https://developer.android.com/reference/android/content/pm/Signature.html) associated with the system package, which can be used to verify that the system build hasn&#x27;t been modified.
    &quot;deviceKernelVersion&quot;: &quot;A String&quot;, # Kernel version, for example, 2.6.32.9-g103d848.
    &quot;primaryLanguageCode&quot;: &quot;A String&quot;, # An IETF BCP 47 language code for the primary locale on the device.
    &quot;securityPatchLevel&quot;: &quot;A String&quot;, # Security patch level, e.g. 2016-05-01.
    &quot;systemUpdateInfo&quot;: { # Information about a potential pending system update. # Information about a potential pending system update.
      &quot;updateReceivedTime&quot;: &quot;A String&quot;, # 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).
      &quot;updateStatus&quot;: &quot;A String&quot;, # The status of an update: whether an update exists and what type it is.
    },
  },
  &quot;state&quot;: &quot;A String&quot;, # 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.
  &quot;systemProperties&quot;: { # Map of selected system properties name and value related to the device. This information is only available if systemPropertiesEnabled is true in the device&#x27;s policy.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;user&quot;: { # A user belonging to an enterprise. # The user who owns the device.
    &quot;accountIdentifier&quot;: &quot;A String&quot;, # 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&#x27;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.
  },
  &quot;userName&quot;: &quot;A String&quot;, # The resource name of the user that owns this device in the form enterprises/{enterpriseId}/users/{userId}.
}</pre>
</div>

<div class="method">
    <code class="details" id="issueCommand">issueCommand(name, body=None, x__xgafv=None)</code>
  <pre>Issues a command to a device. The Operation resource returned contains a Command in its metadata field. Use the get operation method to get the status of the command.

Args:
  name: string, The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}. (required)
  body: object, The request body.
    The object takes the form of:

{ # A command.
  &quot;createTime&quot;: &quot;A String&quot;, # The timestamp at which the command was created. The timestamp is automatically generated by the server.
  &quot;duration&quot;: &quot;A String&quot;, # The duration for which the command is valid. The command will expire if not executed by the device during this time. The default duration if unspecified is ten minutes. There is no maximum duration.
  &quot;errorCode&quot;: &quot;A String&quot;, # If the command failed, an error code explaining the failure. This is not set when the command is cancelled by the caller.
  &quot;newPassword&quot;: &quot;A String&quot;, # For commands of type RESET_PASSWORD, optionally specifies the new password.
  &quot;resetPasswordFlags&quot;: [ # For commands of type RESET_PASSWORD, optionally specifies flags.
    &quot;A String&quot;,
  ],
  &quot;type&quot;: &quot;A String&quot;, # The type of the command.
  &quot;userName&quot;: &quot;A String&quot;, # The resource name of the user that owns the device in the form enterprises/{enterpriseId}/users/{userId}. This is automatically generated by the server based on the device the command is sent to.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  &quot;done&quot;: True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;metadata&quot;: { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
  &quot;name&quot;: &quot;A String&quot;, # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should be a resource name ending with operations/{unique_id}.
  &quot;response&quot;: { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists devices for a given enterprise.

Args:
  parent: string, The name of the enterprise in the form enterprises/{enterpriseId}. (required)
  pageSize: integer, The requested page size. The actual page size may be fixed to a min or max value.
  pageToken: string, A token identifying a page of results returned by the server.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response to a request to list devices for a given enterprise.
  &quot;devices&quot;: [ # The list of devices.
    { # A device owned by an enterprise. Unless otherwise noted, all fields are read-only and can&#x27;t be modified by enterprises.devices.patch.
      &quot;apiLevel&quot;: 42, # The API level of the Android platform version running on the device.
      &quot;applicationReports&quot;: [ # Reports for apps installed on the device. This information is only available when application_reports_enabled is true in the device&#x27;s policy.
        { # Information reported about an installed app.
          &quot;applicationSource&quot;: &quot;A String&quot;, # The source of the package.
          &quot;displayName&quot;: &quot;A String&quot;, # The display name of the app.
          &quot;events&quot;: [ # List of app events. The most recent 20 events are stored in the list.
            { # An app-related event.
              &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
              &quot;eventType&quot;: &quot;A String&quot;, # App event type.
            },
          ],
          &quot;installerPackageName&quot;: &quot;A String&quot;, # The package name of the app that installed this app.
          &quot;keyedAppStates&quot;: [ # List of keyed app states reported by the app.
            { # Keyed app state reported by the app.
              &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the app state on the device.
              &quot;data&quot;: &quot;A String&quot;, # 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 &lt; 10”).
              &quot;key&quot;: &quot;A String&quot;, # 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.
              &quot;lastUpdateTime&quot;: &quot;A String&quot;, # The time the app state was most recently updated.
              &quot;message&quot;: &quot;A String&quot;, # 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.
              &quot;severity&quot;: &quot;A String&quot;, # The severity of the app state.
            },
          ],
          &quot;packageName&quot;: &quot;A String&quot;, # Package name of the app.
          &quot;packageSha256Hash&quot;: &quot;A String&quot;, # The SHA-256 hash of the app&#x27;s APK file, which can be used to verify the app hasn&#x27;t been modified. Each byte of the hash value is represented as a two-digit hexadecimal number.
          &quot;signingKeyCertFingerprints&quot;: [ # The SHA-1 hash of each android.content.pm.Signature (https://developer.android.com/reference/android/content/pm/Signature.html) associated with the app package. Each byte of each hash value is represented as a two-digit hexadecimal number.
            &quot;A String&quot;,
          ],
          &quot;state&quot;: &quot;A String&quot;, # Application state.
          &quot;versionCode&quot;: 42, # The app version code, which can be used to determine whether one version is more recent than another.
          &quot;versionName&quot;: &quot;A String&quot;, # The app version as displayed to the user.
        },
      ],
      &quot;appliedPolicyName&quot;: &quot;A String&quot;, # The name of the policy currently applied to the device.
      &quot;appliedPolicyVersion&quot;: &quot;A String&quot;, # The version of the policy currently applied to the device.
      &quot;appliedState&quot;: &quot;A String&quot;, # The state currently applied to the device.
      &quot;commonCriteriaModeInfo&quot;: { # Information about Common Criteria Mode—security standards defined in the Common Criteria for Information Technology Security Evaluation (https://www.commoncriteriaportal.org/) (CC).This information is only available if statusReportingSettings.commonCriteriaModeEnabled is true in the device&#x27;s policy. # Information about Common Criteria Mode—security standards defined in the Common Criteria for Information Technology Security Evaluation (https://www.commoncriteriaportal.org/) (CC).This information is only available if statusReportingSettings.commonCriteriaModeEnabled is true in the device&#x27;s policy.
        &quot;commonCriteriaModeStatus&quot;: &quot;A String&quot;, # Whether Common Criteria Mode is enabled.
      },
      &quot;deviceSettings&quot;: { # Information about security related device settings on device. # Device settings information. This information is only available if deviceSettingsEnabled is true in the device&#x27;s policy.
        &quot;adbEnabled&quot;: True or False, # Whether ADB (https://developer.android.com/studio/command-line/adb.html) is enabled on the device.
        &quot;developmentSettingsEnabled&quot;: True or False, # Whether developer mode is enabled on the device.
        &quot;encryptionStatus&quot;: &quot;A String&quot;, # Encryption status from DevicePolicyManager.
        &quot;isDeviceSecure&quot;: True or False, # Whether the device is secured with PIN/password.
        &quot;isEncrypted&quot;: True or False, # Whether the storage encryption is enabled.
        &quot;unknownSourcesEnabled&quot;: True or False, # Whether installing apps from unknown sources is enabled.
        &quot;verifyAppsEnabled&quot;: True or False, # Whether Google Play Protect verification (https://support.google.com/accounts/answer/2812853) is enforced on the device.
      },
      &quot;disabledReason&quot;: { # Provides a user-facing message with locale info. The maximum message length is 4096 characters. # 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.
        &quot;defaultMessage&quot;: &quot;A String&quot;, # The default message displayed if no localized message is specified or the user&#x27;s locale doesn&#x27;t match with any of the localized messages. A default message must be provided if any localized messages are provided.
        &quot;localizedMessages&quot;: { # A map containing pairs, where locale is a well-formed BCP 47 language (https://www.w3.org/International/articles/language-tags/) code, such as en-US, es-ES, or fr.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
      },
      &quot;displays&quot;: [ # Detailed information about displays on the device. This information is only available if displayInfoEnabled is true in the device&#x27;s policy.
        { # Device display information.
          &quot;density&quot;: 42, # Display density expressed as dots-per-inch.
          &quot;displayId&quot;: 42, # Unique display id.
          &quot;height&quot;: 42, # Display height in pixels.
          &quot;name&quot;: &quot;A String&quot;, # Name of the display.
          &quot;refreshRate&quot;: 42, # Refresh rate of the display in frames per second.
          &quot;state&quot;: &quot;A String&quot;, # State of the display.
          &quot;width&quot;: 42, # Display width in pixels.
        },
      ],
      &quot;enrollmentTime&quot;: &quot;A String&quot;, # The time of device enrollment.
      &quot;enrollmentTokenData&quot;: &quot;A String&quot;, # If the device was enrolled with an enrollment token with additional data provided, this field contains that data.
      &quot;enrollmentTokenName&quot;: &quot;A String&quot;, # If the device was enrolled with an enrollment token, this field contains the name of the token.
      &quot;hardwareInfo&quot;: { # Information about device hardware. The fields related to temperature thresholds are only available if hardwareStatusEnabled is true in the device&#x27;s policy. # Detailed information about the device hardware.
        &quot;batteryShutdownTemperatures&quot;: [ # Battery shutdown temperature thresholds in Celsius for each battery on the device.
          3.14,
        ],
        &quot;batteryThrottlingTemperatures&quot;: [ # Battery throttling temperature thresholds in Celsius for each battery on the device.
          3.14,
        ],
        &quot;brand&quot;: &quot;A String&quot;, # Brand of the device. For example, Google.
        &quot;cpuShutdownTemperatures&quot;: [ # CPU shutdown temperature thresholds in Celsius for each CPU on the device.
          3.14,
        ],
        &quot;cpuThrottlingTemperatures&quot;: [ # CPU throttling temperature thresholds in Celsius for each CPU on the device.
          3.14,
        ],
        &quot;deviceBasebandVersion&quot;: &quot;A String&quot;, # Baseband version. For example, MDM9625_104662.22.05.34p.
        &quot;gpuShutdownTemperatures&quot;: [ # GPU shutdown temperature thresholds in Celsius for each GPU on the device.
          3.14,
        ],
        &quot;gpuThrottlingTemperatures&quot;: [ # GPU throttling temperature thresholds in Celsius for each GPU on the device.
          3.14,
        ],
        &quot;hardware&quot;: &quot;A String&quot;, # Name of the hardware. For example, Angler.
        &quot;manufacturer&quot;: &quot;A String&quot;, # Manufacturer. For example, Motorola.
        &quot;model&quot;: &quot;A String&quot;, # The model of the device. For example, Asus Nexus 7.
        &quot;serialNumber&quot;: &quot;A String&quot;, # The device serial number.
        &quot;skinShutdownTemperatures&quot;: [ # Device skin shutdown temperature thresholds in Celsius.
          3.14,
        ],
        &quot;skinThrottlingTemperatures&quot;: [ # Device skin throttling temperature thresholds in Celsius.
          3.14,
        ],
      },
      &quot;hardwareStatusSamples&quot;: [ # Hardware status samples in chronological order. This information is only available if hardwareStatusEnabled is true in the device&#x27;s policy.
        { # Hardware status. Temperatures may be compared to the temperature thresholds available in hardwareInfo to determine hardware health.
          &quot;batteryTemperatures&quot;: [ # Current battery temperatures in Celsius for each battery on the device.
            3.14,
          ],
          &quot;cpuTemperatures&quot;: [ # Current CPU temperatures in Celsius for each CPU on the device.
            3.14,
          ],
          &quot;cpuUsages&quot;: [ # 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.
            3.14,
          ],
          &quot;createTime&quot;: &quot;A String&quot;, # The time the measurements were taken.
          &quot;fanSpeeds&quot;: [ # 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.
            3.14,
          ],
          &quot;gpuTemperatures&quot;: [ # Current GPU temperatures in Celsius for each GPU on the device.
            3.14,
          ],
          &quot;skinTemperatures&quot;: [ # Current device skin temperatures in Celsius.
            3.14,
          ],
        },
      ],
      &quot;lastPolicyComplianceReportTime&quot;: &quot;A String&quot;, # Deprecated.
      &quot;lastPolicySyncTime&quot;: &quot;A String&quot;, # The last time the device fetched its policy.
      &quot;lastStatusReportTime&quot;: &quot;A String&quot;, # The last time the device sent a status report.
      &quot;managementMode&quot;: &quot;A String&quot;, # The type of management mode Android Device Policy takes on the device. This influences which policy settings are supported.
      &quot;memoryEvents&quot;: [ # Events related to memory and storage measurements in chronological order. This information is only available if memoryInfoEnabled is true in the device&#x27;s policy.
        { # An event related to memory and storage measurements.
          &quot;byteCount&quot;: &quot;A String&quot;, # The number of free bytes in the medium, or for EXTERNAL_STORAGE_DETECTED, the total capacity in bytes of the storage medium.
          &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
          &quot;eventType&quot;: &quot;A String&quot;, # Event type.
        },
      ],
      &quot;memoryInfo&quot;: { # Information about device memory and storage. # Memory information. This information is only available if memoryInfoEnabled is true in the device&#x27;s policy.
        &quot;totalInternalStorage&quot;: &quot;A String&quot;, # Total internal storage on device in bytes.
        &quot;totalRam&quot;: &quot;A String&quot;, # Total RAM on device in bytes.
      },
      &quot;name&quot;: &quot;A String&quot;, # The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}.
      &quot;networkInfo&quot;: { # Device network info. # Device network information. This information is only available if networkInfoEnabled is true in the device&#x27;s policy.
        &quot;imei&quot;: &quot;A String&quot;, # IMEI number of the GSM device. For example, A1000031212.
        &quot;meid&quot;: &quot;A String&quot;, # MEID number of the CDMA device. For example, A00000292788E1.
        &quot;networkOperatorName&quot;: &quot;A String&quot;, # Alphabetic name of current registered operator. For example, Vodafone.
        &quot;telephonyInfos&quot;: [ # Provides telephony information associated with each SIM card on the device. Only supported on fully managed devices starting from Android API level 23.
          { # Telephony information associated with a given SIM card on the device. Only supported on fully managed devices starting from Android API level 23.
            &quot;carrierName&quot;: &quot;A String&quot;, # The carrier name associated with this SIM card.
            &quot;phoneNumber&quot;: &quot;A String&quot;, # The phone number associated with this SIM card.
          },
        ],
        &quot;wifiMacAddress&quot;: &quot;A String&quot;, # Wi-Fi MAC address of the device. For example, 7c:11:11:11:11:11.
      },
      &quot;nonComplianceDetails&quot;: [ # Details about policy settings that the device is not compliant with.
        { # Provides detail about non-compliance with a policy setting.
          &quot;currentValue&quot;: &quot;&quot;, # If the policy setting could not be applied, the current value of the setting on the device.
          &quot;fieldPath&quot;: &quot;A String&quot;, # 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
          &quot;installationFailureReason&quot;: &quot;A String&quot;, # If package_name is set and the non-compliance reason is APP_NOT_INSTALLED or APP_NOT_UPDATED, the detailed reason the app can&#x27;t be installed or updated.
          &quot;nonComplianceReason&quot;: &quot;A String&quot;, # The reason the device is not in compliance with the setting.
          &quot;packageName&quot;: &quot;A String&quot;, # The package name indicating which app is out of compliance, if applicable.
          &quot;settingName&quot;: &quot;A String&quot;, # The name of the policy setting. This is the JSON field name of a top-level Policy field.
        },
      ],
      &quot;ownership&quot;: &quot;A String&quot;, # Ownership of the managed device.
      &quot;policyCompliant&quot;: True or False, # Whether the device is compliant with its policy.
      &quot;policyName&quot;: &quot;A String&quot;, # 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&#x27;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.
      &quot;powerManagementEvents&quot;: [ # Power management events on the device in chronological order. This information is only available if powerManagementEventsEnabled is true in the device&#x27;s policy.
        { # A power management event.
          &quot;batteryLevel&quot;: 3.14, # For BATTERY_LEVEL_COLLECTED events, the battery level as a percentage.
          &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
          &quot;eventType&quot;: &quot;A String&quot;, # Event type.
        },
      ],
      &quot;previousDeviceNames&quot;: [ # 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.
        &quot;A String&quot;,
      ],
      &quot;securityPosture&quot;: { # The security posture of the device, as determined by the current device state and the policies applied. # Device&#x27;s security posture value that reflects how secure the device is.
        &quot;devicePosture&quot;: &quot;A String&quot;, # Device&#x27;s security posture value.
        &quot;postureDetails&quot;: [ # Additional details regarding the security posture of the device.
          { # Additional details regarding the security posture of the device.
            &quot;advice&quot;: [ # Corresponding admin-facing advice to mitigate this security risk and improve the security posture of the device.
              { # Provides a user-facing message with locale info. The maximum message length is 4096 characters.
                &quot;defaultMessage&quot;: &quot;A String&quot;, # The default message displayed if no localized message is specified or the user&#x27;s locale doesn&#x27;t match with any of the localized messages. A default message must be provided if any localized messages are provided.
                &quot;localizedMessages&quot;: { # A map containing pairs, where locale is a well-formed BCP 47 language (https://www.w3.org/International/articles/language-tags/) code, such as en-US, es-ES, or fr.
                  &quot;a_key&quot;: &quot;A String&quot;,
                },
              },
            ],
            &quot;securityRisk&quot;: &quot;A String&quot;, # A specific security risk that negatively affects the security posture of the device.
          },
        ],
      },
      &quot;softwareInfo&quot;: { # Information about device software. # Detailed information about the device software. This information is only available if softwareInfoEnabled is true in the device&#x27;s policy.
        &quot;androidBuildNumber&quot;: &quot;A String&quot;, # Android build ID string meant for displaying to the user. For example, shamu-userdebug 6.0.1 MOB30I 2756745 dev-keys.
        &quot;androidBuildTime&quot;: &quot;A String&quot;, # Build time.
        &quot;androidDevicePolicyVersionCode&quot;: 42, # The Android Device Policy app version code.
        &quot;androidDevicePolicyVersionName&quot;: &quot;A String&quot;, # The Android Device Policy app version as displayed to the user.
        &quot;androidVersion&quot;: &quot;A String&quot;, # The user-visible Android version string. For example, 6.0.1.
        &quot;bootloaderVersion&quot;: &quot;A String&quot;, # The system bootloader version number, e.g. 0.6.7.
        &quot;deviceBuildSignature&quot;: &quot;A String&quot;, # SHA-256 hash of android.content.pm.Signature (https://developer.android.com/reference/android/content/pm/Signature.html) associated with the system package, which can be used to verify that the system build hasn&#x27;t been modified.
        &quot;deviceKernelVersion&quot;: &quot;A String&quot;, # Kernel version, for example, 2.6.32.9-g103d848.
        &quot;primaryLanguageCode&quot;: &quot;A String&quot;, # An IETF BCP 47 language code for the primary locale on the device.
        &quot;securityPatchLevel&quot;: &quot;A String&quot;, # Security patch level, e.g. 2016-05-01.
        &quot;systemUpdateInfo&quot;: { # Information about a potential pending system update. # Information about a potential pending system update.
          &quot;updateReceivedTime&quot;: &quot;A String&quot;, # 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).
          &quot;updateStatus&quot;: &quot;A String&quot;, # The status of an update: whether an update exists and what type it is.
        },
      },
      &quot;state&quot;: &quot;A String&quot;, # 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.
      &quot;systemProperties&quot;: { # Map of selected system properties name and value related to the device. This information is only available if systemPropertiesEnabled is true in the device&#x27;s policy.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;user&quot;: { # A user belonging to an enterprise. # The user who owns the device.
        &quot;accountIdentifier&quot;: &quot;A String&quot;, # 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&#x27;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.
      },
      &quot;userName&quot;: &quot;A String&quot;, # The resource name of the user that owns this device in the form enterprises/{enterpriseId}/users/{userId}.
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # If there are more results, a token to retrieve next page of results.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
  <pre>Updates a device.

Args:
  name: string, The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}. (required)
  body: object, The request body.
    The object takes the form of:

{ # A device owned by an enterprise. Unless otherwise noted, all fields are read-only and can&#x27;t be modified by enterprises.devices.patch.
  &quot;apiLevel&quot;: 42, # The API level of the Android platform version running on the device.
  &quot;applicationReports&quot;: [ # Reports for apps installed on the device. This information is only available when application_reports_enabled is true in the device&#x27;s policy.
    { # Information reported about an installed app.
      &quot;applicationSource&quot;: &quot;A String&quot;, # The source of the package.
      &quot;displayName&quot;: &quot;A String&quot;, # The display name of the app.
      &quot;events&quot;: [ # List of app events. The most recent 20 events are stored in the list.
        { # An app-related event.
          &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
          &quot;eventType&quot;: &quot;A String&quot;, # App event type.
        },
      ],
      &quot;installerPackageName&quot;: &quot;A String&quot;, # The package name of the app that installed this app.
      &quot;keyedAppStates&quot;: [ # List of keyed app states reported by the app.
        { # Keyed app state reported by the app.
          &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the app state on the device.
          &quot;data&quot;: &quot;A String&quot;, # 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 &lt; 10”).
          &quot;key&quot;: &quot;A String&quot;, # 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.
          &quot;lastUpdateTime&quot;: &quot;A String&quot;, # The time the app state was most recently updated.
          &quot;message&quot;: &quot;A String&quot;, # 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.
          &quot;severity&quot;: &quot;A String&quot;, # The severity of the app state.
        },
      ],
      &quot;packageName&quot;: &quot;A String&quot;, # Package name of the app.
      &quot;packageSha256Hash&quot;: &quot;A String&quot;, # The SHA-256 hash of the app&#x27;s APK file, which can be used to verify the app hasn&#x27;t been modified. Each byte of the hash value is represented as a two-digit hexadecimal number.
      &quot;signingKeyCertFingerprints&quot;: [ # The SHA-1 hash of each android.content.pm.Signature (https://developer.android.com/reference/android/content/pm/Signature.html) associated with the app package. Each byte of each hash value is represented as a two-digit hexadecimal number.
        &quot;A String&quot;,
      ],
      &quot;state&quot;: &quot;A String&quot;, # Application state.
      &quot;versionCode&quot;: 42, # The app version code, which can be used to determine whether one version is more recent than another.
      &quot;versionName&quot;: &quot;A String&quot;, # The app version as displayed to the user.
    },
  ],
  &quot;appliedPolicyName&quot;: &quot;A String&quot;, # The name of the policy currently applied to the device.
  &quot;appliedPolicyVersion&quot;: &quot;A String&quot;, # The version of the policy currently applied to the device.
  &quot;appliedState&quot;: &quot;A String&quot;, # The state currently applied to the device.
  &quot;commonCriteriaModeInfo&quot;: { # Information about Common Criteria Mode—security standards defined in the Common Criteria for Information Technology Security Evaluation (https://www.commoncriteriaportal.org/) (CC).This information is only available if statusReportingSettings.commonCriteriaModeEnabled is true in the device&#x27;s policy. # Information about Common Criteria Mode—security standards defined in the Common Criteria for Information Technology Security Evaluation (https://www.commoncriteriaportal.org/) (CC).This information is only available if statusReportingSettings.commonCriteriaModeEnabled is true in the device&#x27;s policy.
    &quot;commonCriteriaModeStatus&quot;: &quot;A String&quot;, # Whether Common Criteria Mode is enabled.
  },
  &quot;deviceSettings&quot;: { # Information about security related device settings on device. # Device settings information. This information is only available if deviceSettingsEnabled is true in the device&#x27;s policy.
    &quot;adbEnabled&quot;: True or False, # Whether ADB (https://developer.android.com/studio/command-line/adb.html) is enabled on the device.
    &quot;developmentSettingsEnabled&quot;: True or False, # Whether developer mode is enabled on the device.
    &quot;encryptionStatus&quot;: &quot;A String&quot;, # Encryption status from DevicePolicyManager.
    &quot;isDeviceSecure&quot;: True or False, # Whether the device is secured with PIN/password.
    &quot;isEncrypted&quot;: True or False, # Whether the storage encryption is enabled.
    &quot;unknownSourcesEnabled&quot;: True or False, # Whether installing apps from unknown sources is enabled.
    &quot;verifyAppsEnabled&quot;: True or False, # Whether Google Play Protect verification (https://support.google.com/accounts/answer/2812853) is enforced on the device.
  },
  &quot;disabledReason&quot;: { # Provides a user-facing message with locale info. The maximum message length is 4096 characters. # 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.
    &quot;defaultMessage&quot;: &quot;A String&quot;, # The default message displayed if no localized message is specified or the user&#x27;s locale doesn&#x27;t match with any of the localized messages. A default message must be provided if any localized messages are provided.
    &quot;localizedMessages&quot;: { # A map containing pairs, where locale is a well-formed BCP 47 language (https://www.w3.org/International/articles/language-tags/) code, such as en-US, es-ES, or fr.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
  },
  &quot;displays&quot;: [ # Detailed information about displays on the device. This information is only available if displayInfoEnabled is true in the device&#x27;s policy.
    { # Device display information.
      &quot;density&quot;: 42, # Display density expressed as dots-per-inch.
      &quot;displayId&quot;: 42, # Unique display id.
      &quot;height&quot;: 42, # Display height in pixels.
      &quot;name&quot;: &quot;A String&quot;, # Name of the display.
      &quot;refreshRate&quot;: 42, # Refresh rate of the display in frames per second.
      &quot;state&quot;: &quot;A String&quot;, # State of the display.
      &quot;width&quot;: 42, # Display width in pixels.
    },
  ],
  &quot;enrollmentTime&quot;: &quot;A String&quot;, # The time of device enrollment.
  &quot;enrollmentTokenData&quot;: &quot;A String&quot;, # If the device was enrolled with an enrollment token with additional data provided, this field contains that data.
  &quot;enrollmentTokenName&quot;: &quot;A String&quot;, # If the device was enrolled with an enrollment token, this field contains the name of the token.
  &quot;hardwareInfo&quot;: { # Information about device hardware. The fields related to temperature thresholds are only available if hardwareStatusEnabled is true in the device&#x27;s policy. # Detailed information about the device hardware.
    &quot;batteryShutdownTemperatures&quot;: [ # Battery shutdown temperature thresholds in Celsius for each battery on the device.
      3.14,
    ],
    &quot;batteryThrottlingTemperatures&quot;: [ # Battery throttling temperature thresholds in Celsius for each battery on the device.
      3.14,
    ],
    &quot;brand&quot;: &quot;A String&quot;, # Brand of the device. For example, Google.
    &quot;cpuShutdownTemperatures&quot;: [ # CPU shutdown temperature thresholds in Celsius for each CPU on the device.
      3.14,
    ],
    &quot;cpuThrottlingTemperatures&quot;: [ # CPU throttling temperature thresholds in Celsius for each CPU on the device.
      3.14,
    ],
    &quot;deviceBasebandVersion&quot;: &quot;A String&quot;, # Baseband version. For example, MDM9625_104662.22.05.34p.
    &quot;gpuShutdownTemperatures&quot;: [ # GPU shutdown temperature thresholds in Celsius for each GPU on the device.
      3.14,
    ],
    &quot;gpuThrottlingTemperatures&quot;: [ # GPU throttling temperature thresholds in Celsius for each GPU on the device.
      3.14,
    ],
    &quot;hardware&quot;: &quot;A String&quot;, # Name of the hardware. For example, Angler.
    &quot;manufacturer&quot;: &quot;A String&quot;, # Manufacturer. For example, Motorola.
    &quot;model&quot;: &quot;A String&quot;, # The model of the device. For example, Asus Nexus 7.
    &quot;serialNumber&quot;: &quot;A String&quot;, # The device serial number.
    &quot;skinShutdownTemperatures&quot;: [ # Device skin shutdown temperature thresholds in Celsius.
      3.14,
    ],
    &quot;skinThrottlingTemperatures&quot;: [ # Device skin throttling temperature thresholds in Celsius.
      3.14,
    ],
  },
  &quot;hardwareStatusSamples&quot;: [ # Hardware status samples in chronological order. This information is only available if hardwareStatusEnabled is true in the device&#x27;s policy.
    { # Hardware status. Temperatures may be compared to the temperature thresholds available in hardwareInfo to determine hardware health.
      &quot;batteryTemperatures&quot;: [ # Current battery temperatures in Celsius for each battery on the device.
        3.14,
      ],
      &quot;cpuTemperatures&quot;: [ # Current CPU temperatures in Celsius for each CPU on the device.
        3.14,
      ],
      &quot;cpuUsages&quot;: [ # 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.
        3.14,
      ],
      &quot;createTime&quot;: &quot;A String&quot;, # The time the measurements were taken.
      &quot;fanSpeeds&quot;: [ # 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.
        3.14,
      ],
      &quot;gpuTemperatures&quot;: [ # Current GPU temperatures in Celsius for each GPU on the device.
        3.14,
      ],
      &quot;skinTemperatures&quot;: [ # Current device skin temperatures in Celsius.
        3.14,
      ],
    },
  ],
  &quot;lastPolicyComplianceReportTime&quot;: &quot;A String&quot;, # Deprecated.
  &quot;lastPolicySyncTime&quot;: &quot;A String&quot;, # The last time the device fetched its policy.
  &quot;lastStatusReportTime&quot;: &quot;A String&quot;, # The last time the device sent a status report.
  &quot;managementMode&quot;: &quot;A String&quot;, # The type of management mode Android Device Policy takes on the device. This influences which policy settings are supported.
  &quot;memoryEvents&quot;: [ # Events related to memory and storage measurements in chronological order. This information is only available if memoryInfoEnabled is true in the device&#x27;s policy.
    { # An event related to memory and storage measurements.
      &quot;byteCount&quot;: &quot;A String&quot;, # The number of free bytes in the medium, or for EXTERNAL_STORAGE_DETECTED, the total capacity in bytes of the storage medium.
      &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
      &quot;eventType&quot;: &quot;A String&quot;, # Event type.
    },
  ],
  &quot;memoryInfo&quot;: { # Information about device memory and storage. # Memory information. This information is only available if memoryInfoEnabled is true in the device&#x27;s policy.
    &quot;totalInternalStorage&quot;: &quot;A String&quot;, # Total internal storage on device in bytes.
    &quot;totalRam&quot;: &quot;A String&quot;, # Total RAM on device in bytes.
  },
  &quot;name&quot;: &quot;A String&quot;, # The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}.
  &quot;networkInfo&quot;: { # Device network info. # Device network information. This information is only available if networkInfoEnabled is true in the device&#x27;s policy.
    &quot;imei&quot;: &quot;A String&quot;, # IMEI number of the GSM device. For example, A1000031212.
    &quot;meid&quot;: &quot;A String&quot;, # MEID number of the CDMA device. For example, A00000292788E1.
    &quot;networkOperatorName&quot;: &quot;A String&quot;, # Alphabetic name of current registered operator. For example, Vodafone.
    &quot;telephonyInfos&quot;: [ # Provides telephony information associated with each SIM card on the device. Only supported on fully managed devices starting from Android API level 23.
      { # Telephony information associated with a given SIM card on the device. Only supported on fully managed devices starting from Android API level 23.
        &quot;carrierName&quot;: &quot;A String&quot;, # The carrier name associated with this SIM card.
        &quot;phoneNumber&quot;: &quot;A String&quot;, # The phone number associated with this SIM card.
      },
    ],
    &quot;wifiMacAddress&quot;: &quot;A String&quot;, # Wi-Fi MAC address of the device. For example, 7c:11:11:11:11:11.
  },
  &quot;nonComplianceDetails&quot;: [ # Details about policy settings that the device is not compliant with.
    { # Provides detail about non-compliance with a policy setting.
      &quot;currentValue&quot;: &quot;&quot;, # If the policy setting could not be applied, the current value of the setting on the device.
      &quot;fieldPath&quot;: &quot;A String&quot;, # 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
      &quot;installationFailureReason&quot;: &quot;A String&quot;, # If package_name is set and the non-compliance reason is APP_NOT_INSTALLED or APP_NOT_UPDATED, the detailed reason the app can&#x27;t be installed or updated.
      &quot;nonComplianceReason&quot;: &quot;A String&quot;, # The reason the device is not in compliance with the setting.
      &quot;packageName&quot;: &quot;A String&quot;, # The package name indicating which app is out of compliance, if applicable.
      &quot;settingName&quot;: &quot;A String&quot;, # The name of the policy setting. This is the JSON field name of a top-level Policy field.
    },
  ],
  &quot;ownership&quot;: &quot;A String&quot;, # Ownership of the managed device.
  &quot;policyCompliant&quot;: True or False, # Whether the device is compliant with its policy.
  &quot;policyName&quot;: &quot;A String&quot;, # 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&#x27;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.
  &quot;powerManagementEvents&quot;: [ # Power management events on the device in chronological order. This information is only available if powerManagementEventsEnabled is true in the device&#x27;s policy.
    { # A power management event.
      &quot;batteryLevel&quot;: 3.14, # For BATTERY_LEVEL_COLLECTED events, the battery level as a percentage.
      &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
      &quot;eventType&quot;: &quot;A String&quot;, # Event type.
    },
  ],
  &quot;previousDeviceNames&quot;: [ # 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.
    &quot;A String&quot;,
  ],
  &quot;securityPosture&quot;: { # The security posture of the device, as determined by the current device state and the policies applied. # Device&#x27;s security posture value that reflects how secure the device is.
    &quot;devicePosture&quot;: &quot;A String&quot;, # Device&#x27;s security posture value.
    &quot;postureDetails&quot;: [ # Additional details regarding the security posture of the device.
      { # Additional details regarding the security posture of the device.
        &quot;advice&quot;: [ # Corresponding admin-facing advice to mitigate this security risk and improve the security posture of the device.
          { # Provides a user-facing message with locale info. The maximum message length is 4096 characters.
            &quot;defaultMessage&quot;: &quot;A String&quot;, # The default message displayed if no localized message is specified or the user&#x27;s locale doesn&#x27;t match with any of the localized messages. A default message must be provided if any localized messages are provided.
            &quot;localizedMessages&quot;: { # A map containing pairs, where locale is a well-formed BCP 47 language (https://www.w3.org/International/articles/language-tags/) code, such as en-US, es-ES, or fr.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
        ],
        &quot;securityRisk&quot;: &quot;A String&quot;, # A specific security risk that negatively affects the security posture of the device.
      },
    ],
  },
  &quot;softwareInfo&quot;: { # Information about device software. # Detailed information about the device software. This information is only available if softwareInfoEnabled is true in the device&#x27;s policy.
    &quot;androidBuildNumber&quot;: &quot;A String&quot;, # Android build ID string meant for displaying to the user. For example, shamu-userdebug 6.0.1 MOB30I 2756745 dev-keys.
    &quot;androidBuildTime&quot;: &quot;A String&quot;, # Build time.
    &quot;androidDevicePolicyVersionCode&quot;: 42, # The Android Device Policy app version code.
    &quot;androidDevicePolicyVersionName&quot;: &quot;A String&quot;, # The Android Device Policy app version as displayed to the user.
    &quot;androidVersion&quot;: &quot;A String&quot;, # The user-visible Android version string. For example, 6.0.1.
    &quot;bootloaderVersion&quot;: &quot;A String&quot;, # The system bootloader version number, e.g. 0.6.7.
    &quot;deviceBuildSignature&quot;: &quot;A String&quot;, # SHA-256 hash of android.content.pm.Signature (https://developer.android.com/reference/android/content/pm/Signature.html) associated with the system package, which can be used to verify that the system build hasn&#x27;t been modified.
    &quot;deviceKernelVersion&quot;: &quot;A String&quot;, # Kernel version, for example, 2.6.32.9-g103d848.
    &quot;primaryLanguageCode&quot;: &quot;A String&quot;, # An IETF BCP 47 language code for the primary locale on the device.
    &quot;securityPatchLevel&quot;: &quot;A String&quot;, # Security patch level, e.g. 2016-05-01.
    &quot;systemUpdateInfo&quot;: { # Information about a potential pending system update. # Information about a potential pending system update.
      &quot;updateReceivedTime&quot;: &quot;A String&quot;, # 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).
      &quot;updateStatus&quot;: &quot;A String&quot;, # The status of an update: whether an update exists and what type it is.
    },
  },
  &quot;state&quot;: &quot;A String&quot;, # 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.
  &quot;systemProperties&quot;: { # Map of selected system properties name and value related to the device. This information is only available if systemPropertiesEnabled is true in the device&#x27;s policy.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;user&quot;: { # A user belonging to an enterprise. # The user who owns the device.
    &quot;accountIdentifier&quot;: &quot;A String&quot;, # 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&#x27;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.
  },
  &quot;userName&quot;: &quot;A String&quot;, # The resource name of the user that owns this device in the form enterprises/{enterpriseId}/users/{userId}.
}

  updateMask: string, The field mask indicating the fields to update. If not set, all modifiable fields will be modified.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A device owned by an enterprise. Unless otherwise noted, all fields are read-only and can&#x27;t be modified by enterprises.devices.patch.
  &quot;apiLevel&quot;: 42, # The API level of the Android platform version running on the device.
  &quot;applicationReports&quot;: [ # Reports for apps installed on the device. This information is only available when application_reports_enabled is true in the device&#x27;s policy.
    { # Information reported about an installed app.
      &quot;applicationSource&quot;: &quot;A String&quot;, # The source of the package.
      &quot;displayName&quot;: &quot;A String&quot;, # The display name of the app.
      &quot;events&quot;: [ # List of app events. The most recent 20 events are stored in the list.
        { # An app-related event.
          &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
          &quot;eventType&quot;: &quot;A String&quot;, # App event type.
        },
      ],
      &quot;installerPackageName&quot;: &quot;A String&quot;, # The package name of the app that installed this app.
      &quot;keyedAppStates&quot;: [ # List of keyed app states reported by the app.
        { # Keyed app state reported by the app.
          &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the app state on the device.
          &quot;data&quot;: &quot;A String&quot;, # 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 &lt; 10”).
          &quot;key&quot;: &quot;A String&quot;, # 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.
          &quot;lastUpdateTime&quot;: &quot;A String&quot;, # The time the app state was most recently updated.
          &quot;message&quot;: &quot;A String&quot;, # 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.
          &quot;severity&quot;: &quot;A String&quot;, # The severity of the app state.
        },
      ],
      &quot;packageName&quot;: &quot;A String&quot;, # Package name of the app.
      &quot;packageSha256Hash&quot;: &quot;A String&quot;, # The SHA-256 hash of the app&#x27;s APK file, which can be used to verify the app hasn&#x27;t been modified. Each byte of the hash value is represented as a two-digit hexadecimal number.
      &quot;signingKeyCertFingerprints&quot;: [ # The SHA-1 hash of each android.content.pm.Signature (https://developer.android.com/reference/android/content/pm/Signature.html) associated with the app package. Each byte of each hash value is represented as a two-digit hexadecimal number.
        &quot;A String&quot;,
      ],
      &quot;state&quot;: &quot;A String&quot;, # Application state.
      &quot;versionCode&quot;: 42, # The app version code, which can be used to determine whether one version is more recent than another.
      &quot;versionName&quot;: &quot;A String&quot;, # The app version as displayed to the user.
    },
  ],
  &quot;appliedPolicyName&quot;: &quot;A String&quot;, # The name of the policy currently applied to the device.
  &quot;appliedPolicyVersion&quot;: &quot;A String&quot;, # The version of the policy currently applied to the device.
  &quot;appliedState&quot;: &quot;A String&quot;, # The state currently applied to the device.
  &quot;commonCriteriaModeInfo&quot;: { # Information about Common Criteria Mode—security standards defined in the Common Criteria for Information Technology Security Evaluation (https://www.commoncriteriaportal.org/) (CC).This information is only available if statusReportingSettings.commonCriteriaModeEnabled is true in the device&#x27;s policy. # Information about Common Criteria Mode—security standards defined in the Common Criteria for Information Technology Security Evaluation (https://www.commoncriteriaportal.org/) (CC).This information is only available if statusReportingSettings.commonCriteriaModeEnabled is true in the device&#x27;s policy.
    &quot;commonCriteriaModeStatus&quot;: &quot;A String&quot;, # Whether Common Criteria Mode is enabled.
  },
  &quot;deviceSettings&quot;: { # Information about security related device settings on device. # Device settings information. This information is only available if deviceSettingsEnabled is true in the device&#x27;s policy.
    &quot;adbEnabled&quot;: True or False, # Whether ADB (https://developer.android.com/studio/command-line/adb.html) is enabled on the device.
    &quot;developmentSettingsEnabled&quot;: True or False, # Whether developer mode is enabled on the device.
    &quot;encryptionStatus&quot;: &quot;A String&quot;, # Encryption status from DevicePolicyManager.
    &quot;isDeviceSecure&quot;: True or False, # Whether the device is secured with PIN/password.
    &quot;isEncrypted&quot;: True or False, # Whether the storage encryption is enabled.
    &quot;unknownSourcesEnabled&quot;: True or False, # Whether installing apps from unknown sources is enabled.
    &quot;verifyAppsEnabled&quot;: True or False, # Whether Google Play Protect verification (https://support.google.com/accounts/answer/2812853) is enforced on the device.
  },
  &quot;disabledReason&quot;: { # Provides a user-facing message with locale info. The maximum message length is 4096 characters. # 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.
    &quot;defaultMessage&quot;: &quot;A String&quot;, # The default message displayed if no localized message is specified or the user&#x27;s locale doesn&#x27;t match with any of the localized messages. A default message must be provided if any localized messages are provided.
    &quot;localizedMessages&quot;: { # A map containing pairs, where locale is a well-formed BCP 47 language (https://www.w3.org/International/articles/language-tags/) code, such as en-US, es-ES, or fr.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
  },
  &quot;displays&quot;: [ # Detailed information about displays on the device. This information is only available if displayInfoEnabled is true in the device&#x27;s policy.
    { # Device display information.
      &quot;density&quot;: 42, # Display density expressed as dots-per-inch.
      &quot;displayId&quot;: 42, # Unique display id.
      &quot;height&quot;: 42, # Display height in pixels.
      &quot;name&quot;: &quot;A String&quot;, # Name of the display.
      &quot;refreshRate&quot;: 42, # Refresh rate of the display in frames per second.
      &quot;state&quot;: &quot;A String&quot;, # State of the display.
      &quot;width&quot;: 42, # Display width in pixels.
    },
  ],
  &quot;enrollmentTime&quot;: &quot;A String&quot;, # The time of device enrollment.
  &quot;enrollmentTokenData&quot;: &quot;A String&quot;, # If the device was enrolled with an enrollment token with additional data provided, this field contains that data.
  &quot;enrollmentTokenName&quot;: &quot;A String&quot;, # If the device was enrolled with an enrollment token, this field contains the name of the token.
  &quot;hardwareInfo&quot;: { # Information about device hardware. The fields related to temperature thresholds are only available if hardwareStatusEnabled is true in the device&#x27;s policy. # Detailed information about the device hardware.
    &quot;batteryShutdownTemperatures&quot;: [ # Battery shutdown temperature thresholds in Celsius for each battery on the device.
      3.14,
    ],
    &quot;batteryThrottlingTemperatures&quot;: [ # Battery throttling temperature thresholds in Celsius for each battery on the device.
      3.14,
    ],
    &quot;brand&quot;: &quot;A String&quot;, # Brand of the device. For example, Google.
    &quot;cpuShutdownTemperatures&quot;: [ # CPU shutdown temperature thresholds in Celsius for each CPU on the device.
      3.14,
    ],
    &quot;cpuThrottlingTemperatures&quot;: [ # CPU throttling temperature thresholds in Celsius for each CPU on the device.
      3.14,
    ],
    &quot;deviceBasebandVersion&quot;: &quot;A String&quot;, # Baseband version. For example, MDM9625_104662.22.05.34p.
    &quot;gpuShutdownTemperatures&quot;: [ # GPU shutdown temperature thresholds in Celsius for each GPU on the device.
      3.14,
    ],
    &quot;gpuThrottlingTemperatures&quot;: [ # GPU throttling temperature thresholds in Celsius for each GPU on the device.
      3.14,
    ],
    &quot;hardware&quot;: &quot;A String&quot;, # Name of the hardware. For example, Angler.
    &quot;manufacturer&quot;: &quot;A String&quot;, # Manufacturer. For example, Motorola.
    &quot;model&quot;: &quot;A String&quot;, # The model of the device. For example, Asus Nexus 7.
    &quot;serialNumber&quot;: &quot;A String&quot;, # The device serial number.
    &quot;skinShutdownTemperatures&quot;: [ # Device skin shutdown temperature thresholds in Celsius.
      3.14,
    ],
    &quot;skinThrottlingTemperatures&quot;: [ # Device skin throttling temperature thresholds in Celsius.
      3.14,
    ],
  },
  &quot;hardwareStatusSamples&quot;: [ # Hardware status samples in chronological order. This information is only available if hardwareStatusEnabled is true in the device&#x27;s policy.
    { # Hardware status. Temperatures may be compared to the temperature thresholds available in hardwareInfo to determine hardware health.
      &quot;batteryTemperatures&quot;: [ # Current battery temperatures in Celsius for each battery on the device.
        3.14,
      ],
      &quot;cpuTemperatures&quot;: [ # Current CPU temperatures in Celsius for each CPU on the device.
        3.14,
      ],
      &quot;cpuUsages&quot;: [ # 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.
        3.14,
      ],
      &quot;createTime&quot;: &quot;A String&quot;, # The time the measurements were taken.
      &quot;fanSpeeds&quot;: [ # 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.
        3.14,
      ],
      &quot;gpuTemperatures&quot;: [ # Current GPU temperatures in Celsius for each GPU on the device.
        3.14,
      ],
      &quot;skinTemperatures&quot;: [ # Current device skin temperatures in Celsius.
        3.14,
      ],
    },
  ],
  &quot;lastPolicyComplianceReportTime&quot;: &quot;A String&quot;, # Deprecated.
  &quot;lastPolicySyncTime&quot;: &quot;A String&quot;, # The last time the device fetched its policy.
  &quot;lastStatusReportTime&quot;: &quot;A String&quot;, # The last time the device sent a status report.
  &quot;managementMode&quot;: &quot;A String&quot;, # The type of management mode Android Device Policy takes on the device. This influences which policy settings are supported.
  &quot;memoryEvents&quot;: [ # Events related to memory and storage measurements in chronological order. This information is only available if memoryInfoEnabled is true in the device&#x27;s policy.
    { # An event related to memory and storage measurements.
      &quot;byteCount&quot;: &quot;A String&quot;, # The number of free bytes in the medium, or for EXTERNAL_STORAGE_DETECTED, the total capacity in bytes of the storage medium.
      &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
      &quot;eventType&quot;: &quot;A String&quot;, # Event type.
    },
  ],
  &quot;memoryInfo&quot;: { # Information about device memory and storage. # Memory information. This information is only available if memoryInfoEnabled is true in the device&#x27;s policy.
    &quot;totalInternalStorage&quot;: &quot;A String&quot;, # Total internal storage on device in bytes.
    &quot;totalRam&quot;: &quot;A String&quot;, # Total RAM on device in bytes.
  },
  &quot;name&quot;: &quot;A String&quot;, # The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}.
  &quot;networkInfo&quot;: { # Device network info. # Device network information. This information is only available if networkInfoEnabled is true in the device&#x27;s policy.
    &quot;imei&quot;: &quot;A String&quot;, # IMEI number of the GSM device. For example, A1000031212.
    &quot;meid&quot;: &quot;A String&quot;, # MEID number of the CDMA device. For example, A00000292788E1.
    &quot;networkOperatorName&quot;: &quot;A String&quot;, # Alphabetic name of current registered operator. For example, Vodafone.
    &quot;telephonyInfos&quot;: [ # Provides telephony information associated with each SIM card on the device. Only supported on fully managed devices starting from Android API level 23.
      { # Telephony information associated with a given SIM card on the device. Only supported on fully managed devices starting from Android API level 23.
        &quot;carrierName&quot;: &quot;A String&quot;, # The carrier name associated with this SIM card.
        &quot;phoneNumber&quot;: &quot;A String&quot;, # The phone number associated with this SIM card.
      },
    ],
    &quot;wifiMacAddress&quot;: &quot;A String&quot;, # Wi-Fi MAC address of the device. For example, 7c:11:11:11:11:11.
  },
  &quot;nonComplianceDetails&quot;: [ # Details about policy settings that the device is not compliant with.
    { # Provides detail about non-compliance with a policy setting.
      &quot;currentValue&quot;: &quot;&quot;, # If the policy setting could not be applied, the current value of the setting on the device.
      &quot;fieldPath&quot;: &quot;A String&quot;, # 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
      &quot;installationFailureReason&quot;: &quot;A String&quot;, # If package_name is set and the non-compliance reason is APP_NOT_INSTALLED or APP_NOT_UPDATED, the detailed reason the app can&#x27;t be installed or updated.
      &quot;nonComplianceReason&quot;: &quot;A String&quot;, # The reason the device is not in compliance with the setting.
      &quot;packageName&quot;: &quot;A String&quot;, # The package name indicating which app is out of compliance, if applicable.
      &quot;settingName&quot;: &quot;A String&quot;, # The name of the policy setting. This is the JSON field name of a top-level Policy field.
    },
  ],
  &quot;ownership&quot;: &quot;A String&quot;, # Ownership of the managed device.
  &quot;policyCompliant&quot;: True or False, # Whether the device is compliant with its policy.
  &quot;policyName&quot;: &quot;A String&quot;, # 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&#x27;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.
  &quot;powerManagementEvents&quot;: [ # Power management events on the device in chronological order. This information is only available if powerManagementEventsEnabled is true in the device&#x27;s policy.
    { # A power management event.
      &quot;batteryLevel&quot;: 3.14, # For BATTERY_LEVEL_COLLECTED events, the battery level as a percentage.
      &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
      &quot;eventType&quot;: &quot;A String&quot;, # Event type.
    },
  ],
  &quot;previousDeviceNames&quot;: [ # 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.
    &quot;A String&quot;,
  ],
  &quot;securityPosture&quot;: { # The security posture of the device, as determined by the current device state and the policies applied. # Device&#x27;s security posture value that reflects how secure the device is.
    &quot;devicePosture&quot;: &quot;A String&quot;, # Device&#x27;s security posture value.
    &quot;postureDetails&quot;: [ # Additional details regarding the security posture of the device.
      { # Additional details regarding the security posture of the device.
        &quot;advice&quot;: [ # Corresponding admin-facing advice to mitigate this security risk and improve the security posture of the device.
          { # Provides a user-facing message with locale info. The maximum message length is 4096 characters.
            &quot;defaultMessage&quot;: &quot;A String&quot;, # The default message displayed if no localized message is specified or the user&#x27;s locale doesn&#x27;t match with any of the localized messages. A default message must be provided if any localized messages are provided.
            &quot;localizedMessages&quot;: { # A map containing pairs, where locale is a well-formed BCP 47 language (https://www.w3.org/International/articles/language-tags/) code, such as en-US, es-ES, or fr.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
        ],
        &quot;securityRisk&quot;: &quot;A String&quot;, # A specific security risk that negatively affects the security posture of the device.
      },
    ],
  },
  &quot;softwareInfo&quot;: { # Information about device software. # Detailed information about the device software. This information is only available if softwareInfoEnabled is true in the device&#x27;s policy.
    &quot;androidBuildNumber&quot;: &quot;A String&quot;, # Android build ID string meant for displaying to the user. For example, shamu-userdebug 6.0.1 MOB30I 2756745 dev-keys.
    &quot;androidBuildTime&quot;: &quot;A String&quot;, # Build time.
    &quot;androidDevicePolicyVersionCode&quot;: 42, # The Android Device Policy app version code.
    &quot;androidDevicePolicyVersionName&quot;: &quot;A String&quot;, # The Android Device Policy app version as displayed to the user.
    &quot;androidVersion&quot;: &quot;A String&quot;, # The user-visible Android version string. For example, 6.0.1.
    &quot;bootloaderVersion&quot;: &quot;A String&quot;, # The system bootloader version number, e.g. 0.6.7.
    &quot;deviceBuildSignature&quot;: &quot;A String&quot;, # SHA-256 hash of android.content.pm.Signature (https://developer.android.com/reference/android/content/pm/Signature.html) associated with the system package, which can be used to verify that the system build hasn&#x27;t been modified.
    &quot;deviceKernelVersion&quot;: &quot;A String&quot;, # Kernel version, for example, 2.6.32.9-g103d848.
    &quot;primaryLanguageCode&quot;: &quot;A String&quot;, # An IETF BCP 47 language code for the primary locale on the device.
    &quot;securityPatchLevel&quot;: &quot;A String&quot;, # Security patch level, e.g. 2016-05-01.
    &quot;systemUpdateInfo&quot;: { # Information about a potential pending system update. # Information about a potential pending system update.
      &quot;updateReceivedTime&quot;: &quot;A String&quot;, # 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).
      &quot;updateStatus&quot;: &quot;A String&quot;, # The status of an update: whether an update exists and what type it is.
    },
  },
  &quot;state&quot;: &quot;A String&quot;, # 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.
  &quot;systemProperties&quot;: { # Map of selected system properties name and value related to the device. This information is only available if systemPropertiesEnabled is true in the device&#x27;s policy.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;user&quot;: { # A user belonging to an enterprise. # The user who owns the device.
    &quot;accountIdentifier&quot;: &quot;A String&quot;, # 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&#x27;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.
  },
  &quot;userName&quot;: &quot;A String&quot;, # The resource name of the user that owns this device in the form enterprises/{enterpriseId}/users/{userId}.
}</pre>
</div>

</body></html>