<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;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;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;networkOperatorName&quot;: &quot;A String&quot;, # Alphabetic name of current registered operator. For example, Vodafone.
      &quot;meid&quot;: &quot;A String&quot;, # MEID number of the CDMA device. For example, A00000292788E1.
      &quot;wifiMacAddress&quot;: &quot;A String&quot;, # Wi-Fi MAC address of the device. For example, 7c:11:11:11:11:11.
    },
    &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;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;totalRam&quot;: &quot;A String&quot;, # Total RAM on device in bytes.
      &quot;totalInternalStorage&quot;: &quot;A String&quot;, # Total internal storage on device in bytes.
    },
    &quot;appliedState&quot;: &quot;A String&quot;, # The state currently applied to the device.
    &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;appliedPolicyVersion&quot;: &quot;A String&quot;, # The version of the policy currently applied to the device.
    &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;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;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;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;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;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;eventType&quot;: &quot;A String&quot;, # Event type.
        &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;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;state&quot;: &quot;A String&quot;, # State of the display.
        &quot;displayId&quot;: 42, # Unique display id.
        &quot;density&quot;: 42, # Display density expressed as dots-per-inch.
        &quot;height&quot;: 42, # Display height in pixels.
        &quot;refreshRate&quot;: 42, # Refresh rate of the display in frames per second.
        &quot;name&quot;: &quot;A String&quot;, # Name of the display.
        &quot;width&quot;: 42, # Display width in pixels.
      },
    ],
    &quot;lastPolicySyncTime&quot;: &quot;A String&quot;, # The last time the device fetched its policy.
    &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;gpuThrottlingTemperatures&quot;: [ # GPU throttling temperature thresholds in Celsius for each GPU on the device.
        3.14,
      ],
      &quot;serialNumber&quot;: &quot;A String&quot;, # The device serial number.
      &quot;batteryShutdownTemperatures&quot;: [ # Battery shutdown temperature thresholds in Celsius for each battery on the device.
        3.14,
      ],
      &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;brand&quot;: &quot;A String&quot;, # Brand of the device. For example, Google.
      &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;hardware&quot;: &quot;A String&quot;, # Name of the hardware. For example, Angler.
      &quot;batteryThrottlingTemperatures&quot;: [ # Battery throttling temperature thresholds in Celsius for each battery on the device.
        3.14,
      ],
      &quot;model&quot;: &quot;A String&quot;, # The model of the device. For example, Asus Nexus 7.
      &quot;cpuShutdownTemperatures&quot;: [ # CPU shutdown temperature thresholds in Celsius for each CPU on the device.
        3.14,
      ],
      &quot;gpuShutdownTemperatures&quot;: [ # GPU shutdown temperature thresholds in Celsius for each GPU on the device.
        3.14,
      ],
      &quot;manufacturer&quot;: &quot;A String&quot;, # Manufacturer. For example, Motorola.
    },
    &quot;lastPolicyComplianceReportTime&quot;: &quot;A String&quot;, # Deprecated.
    &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;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;versionName&quot;: &quot;A String&quot;, # The app version as displayed to the user.
        &quot;displayName&quot;: &quot;A String&quot;, # The display name of the app.
        &quot;packageName&quot;: &quot;A String&quot;, # Package name of the app.
        &quot;versionCode&quot;: 42, # The app version code, which can be used to determine whether one version is more recent than another.
        &quot;events&quot;: [ # List of app events. The most recent 20 events are stored in the list.
          { # An app-related event.
            &quot;eventType&quot;: &quot;A String&quot;, # App event type.
            &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
          },
        ],
        &quot;state&quot;: &quot;A String&quot;, # Application state.
        &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;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;lastUpdateTime&quot;: &quot;A String&quot;, # The time the app state was most recently updated.
            &quot;severity&quot;: &quot;A String&quot;, # The severity of the app state.
            &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;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;applicationSource&quot;: &quot;A String&quot;, # The source of the package.
      },
    ],
    &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;appliedPolicyName&quot;: &quot;A String&quot;, # The name of the policy currently applied to the device.
    &quot;enrollmentTime&quot;: &quot;A String&quot;, # The time of device enrollment.
    &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;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;developmentSettingsEnabled&quot;: True or False, # Whether developer mode is enabled on the device.
      &quot;unknownSourcesEnabled&quot;: True or False, # Whether installing apps from unknown sources is enabled.
      &quot;verifyAppsEnabled&quot;: True or False, # Whether Verify Apps (Google Play Protect (https://support.google.com/googleplay/answer/2812853)) is enabled on the device.
    },
    &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;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;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;primaryLanguageCode&quot;: &quot;A String&quot;, # An IETF BCP 47 language code for the primary locale on the device.
      &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;androidBuildTime&quot;: &quot;A String&quot;, # Build time.
      &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;securityPatchLevel&quot;: &quot;A String&quot;, # Security patch level, e.g. 2016-05-01.
      &quot;androidDevicePolicyVersionCode&quot;: 42, # The Android Device Policy app version code.
      &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;androidDevicePolicyVersionName&quot;: &quot;A String&quot;, # The Android Device Policy app version as displayed to the user.
    },
    &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;name&quot;: &quot;A String&quot;, # The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}.
    &quot;nonComplianceDetails&quot;: [ # Details about policy settings that the device is not compliant with.
      { # Provides detail about non-compliance with a policy setting.
        &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;currentValue&quot;: &quot;&quot;, # If the policy setting could not be applied, the current value of the setting on the device.
        &quot;packageName&quot;: &quot;A String&quot;, # The package name indicating which app is out of compliance, if applicable.
        &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;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;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;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;securityRisk&quot;: &quot;A String&quot;, # A specific security risk that negatively affects the security posture of the device.
        },
      ],
    },
    &quot;ownership&quot;: &quot;A String&quot;, # Ownership of the managed device.
    &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;policyCompliant&quot;: True or False, # Whether the device is compliant with its policy.
    &quot;apiLevel&quot;: 42, # The API level of the Android platform version running on the device.
    &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;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;skinTemperatures&quot;: [ # Current device skin temperatures in Celsius.
          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;batteryTemperatures&quot;: [ # Current battery temperatures in Celsius for each battery on the device.
          3.14,
        ],
        &quot;gpuTemperatures&quot;: [ # Current GPU temperatures in Celsius for each GPU on the device.
          3.14,
        ],
        &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;lastStatusReportTime&quot;: &quot;A String&quot;, # The last time the device sent a status report.
  }</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;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;resetPasswordFlags&quot;: [ # For commands of type RESET_PASSWORD, optionally specifies flags.
      &quot;A String&quot;,
    ],
    &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;type&quot;: &quot;A String&quot;, # The type of the 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;newPassword&quot;: &quot;A String&quot;, # For commands of type RESET_PASSWORD, optionally specifies the new password.
    &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;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;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;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;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.
    },
    &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;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;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}.
  }</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;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;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;networkOperatorName&quot;: &quot;A String&quot;, # Alphabetic name of current registered operator. For example, Vodafone.
          &quot;meid&quot;: &quot;A String&quot;, # MEID number of the CDMA device. For example, A00000292788E1.
          &quot;wifiMacAddress&quot;: &quot;A String&quot;, # Wi-Fi MAC address of the device. For example, 7c:11:11:11:11:11.
        },
        &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;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;totalRam&quot;: &quot;A String&quot;, # Total RAM on device in bytes.
          &quot;totalInternalStorage&quot;: &quot;A String&quot;, # Total internal storage on device in bytes.
        },
        &quot;appliedState&quot;: &quot;A String&quot;, # The state currently applied to the device.
        &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;appliedPolicyVersion&quot;: &quot;A String&quot;, # The version of the policy currently applied to the device.
        &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;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;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;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;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;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;eventType&quot;: &quot;A String&quot;, # Event type.
            &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;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;state&quot;: &quot;A String&quot;, # State of the display.
            &quot;displayId&quot;: 42, # Unique display id.
            &quot;density&quot;: 42, # Display density expressed as dots-per-inch.
            &quot;height&quot;: 42, # Display height in pixels.
            &quot;refreshRate&quot;: 42, # Refresh rate of the display in frames per second.
            &quot;name&quot;: &quot;A String&quot;, # Name of the display.
            &quot;width&quot;: 42, # Display width in pixels.
          },
        ],
        &quot;lastPolicySyncTime&quot;: &quot;A String&quot;, # The last time the device fetched its policy.
        &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;gpuThrottlingTemperatures&quot;: [ # GPU throttling temperature thresholds in Celsius for each GPU on the device.
            3.14,
          ],
          &quot;serialNumber&quot;: &quot;A String&quot;, # The device serial number.
          &quot;batteryShutdownTemperatures&quot;: [ # Battery shutdown temperature thresholds in Celsius for each battery on the device.
            3.14,
          ],
          &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;brand&quot;: &quot;A String&quot;, # Brand of the device. For example, Google.
          &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;hardware&quot;: &quot;A String&quot;, # Name of the hardware. For example, Angler.
          &quot;batteryThrottlingTemperatures&quot;: [ # Battery throttling temperature thresholds in Celsius for each battery on the device.
            3.14,
          ],
          &quot;model&quot;: &quot;A String&quot;, # The model of the device. For example, Asus Nexus 7.
          &quot;cpuShutdownTemperatures&quot;: [ # CPU shutdown temperature thresholds in Celsius for each CPU on the device.
            3.14,
          ],
          &quot;gpuShutdownTemperatures&quot;: [ # GPU shutdown temperature thresholds in Celsius for each GPU on the device.
            3.14,
          ],
          &quot;manufacturer&quot;: &quot;A String&quot;, # Manufacturer. For example, Motorola.
        },
        &quot;lastPolicyComplianceReportTime&quot;: &quot;A String&quot;, # Deprecated.
        &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;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;versionName&quot;: &quot;A String&quot;, # The app version as displayed to the user.
            &quot;displayName&quot;: &quot;A String&quot;, # The display name of the app.
            &quot;packageName&quot;: &quot;A String&quot;, # Package name of the app.
            &quot;versionCode&quot;: 42, # The app version code, which can be used to determine whether one version is more recent than another.
            &quot;events&quot;: [ # List of app events. The most recent 20 events are stored in the list.
              { # An app-related event.
                &quot;eventType&quot;: &quot;A String&quot;, # App event type.
                &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
              },
            ],
            &quot;state&quot;: &quot;A String&quot;, # Application state.
            &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;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;lastUpdateTime&quot;: &quot;A String&quot;, # The time the app state was most recently updated.
                &quot;severity&quot;: &quot;A String&quot;, # The severity of the app state.
                &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;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;applicationSource&quot;: &quot;A String&quot;, # The source of the package.
          },
        ],
        &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;appliedPolicyName&quot;: &quot;A String&quot;, # The name of the policy currently applied to the device.
        &quot;enrollmentTime&quot;: &quot;A String&quot;, # The time of device enrollment.
        &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;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;developmentSettingsEnabled&quot;: True or False, # Whether developer mode is enabled on the device.
          &quot;unknownSourcesEnabled&quot;: True or False, # Whether installing apps from unknown sources is enabled.
          &quot;verifyAppsEnabled&quot;: True or False, # Whether Verify Apps (Google Play Protect (https://support.google.com/googleplay/answer/2812853)) is enabled on the device.
        },
        &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;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;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;primaryLanguageCode&quot;: &quot;A String&quot;, # An IETF BCP 47 language code for the primary locale on the device.
          &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;androidBuildTime&quot;: &quot;A String&quot;, # Build time.
          &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;securityPatchLevel&quot;: &quot;A String&quot;, # Security patch level, e.g. 2016-05-01.
          &quot;androidDevicePolicyVersionCode&quot;: 42, # The Android Device Policy app version code.
          &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;androidDevicePolicyVersionName&quot;: &quot;A String&quot;, # The Android Device Policy app version as displayed to the user.
        },
        &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;name&quot;: &quot;A String&quot;, # The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}.
        &quot;nonComplianceDetails&quot;: [ # Details about policy settings that the device is not compliant with.
          { # Provides detail about non-compliance with a policy setting.
            &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;currentValue&quot;: &quot;&quot;, # If the policy setting could not be applied, the current value of the setting on the device.
            &quot;packageName&quot;: &quot;A String&quot;, # The package name indicating which app is out of compliance, if applicable.
            &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;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;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;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;securityRisk&quot;: &quot;A String&quot;, # A specific security risk that negatively affects the security posture of the device.
            },
          ],
        },
        &quot;ownership&quot;: &quot;A String&quot;, # Ownership of the managed device.
        &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;policyCompliant&quot;: True or False, # Whether the device is compliant with its policy.
        &quot;apiLevel&quot;: 42, # The API level of the Android platform version running on the device.
        &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;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;skinTemperatures&quot;: [ # Current device skin temperatures in Celsius.
              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;batteryTemperatures&quot;: [ # Current battery temperatures in Celsius for each battery on the device.
              3.14,
            ],
            &quot;gpuTemperatures&quot;: [ # Current GPU temperatures in Celsius for each GPU on the device.
              3.14,
            ],
            &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;lastStatusReportTime&quot;: &quot;A String&quot;, # The last time the device sent a status report.
      },
    ],
    &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;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;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;networkOperatorName&quot;: &quot;A String&quot;, # Alphabetic name of current registered operator. For example, Vodafone.
    &quot;meid&quot;: &quot;A String&quot;, # MEID number of the CDMA device. For example, A00000292788E1.
    &quot;wifiMacAddress&quot;: &quot;A String&quot;, # Wi-Fi MAC address of the device. For example, 7c:11:11:11:11:11.
  },
  &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;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;totalRam&quot;: &quot;A String&quot;, # Total RAM on device in bytes.
    &quot;totalInternalStorage&quot;: &quot;A String&quot;, # Total internal storage on device in bytes.
  },
  &quot;appliedState&quot;: &quot;A String&quot;, # The state currently applied to the device.
  &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;appliedPolicyVersion&quot;: &quot;A String&quot;, # The version of the policy currently applied to the device.
  &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;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;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;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;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;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;eventType&quot;: &quot;A String&quot;, # Event type.
      &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;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;state&quot;: &quot;A String&quot;, # State of the display.
      &quot;displayId&quot;: 42, # Unique display id.
      &quot;density&quot;: 42, # Display density expressed as dots-per-inch.
      &quot;height&quot;: 42, # Display height in pixels.
      &quot;refreshRate&quot;: 42, # Refresh rate of the display in frames per second.
      &quot;name&quot;: &quot;A String&quot;, # Name of the display.
      &quot;width&quot;: 42, # Display width in pixels.
    },
  ],
  &quot;lastPolicySyncTime&quot;: &quot;A String&quot;, # The last time the device fetched its policy.
  &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;gpuThrottlingTemperatures&quot;: [ # GPU throttling temperature thresholds in Celsius for each GPU on the device.
      3.14,
    ],
    &quot;serialNumber&quot;: &quot;A String&quot;, # The device serial number.
    &quot;batteryShutdownTemperatures&quot;: [ # Battery shutdown temperature thresholds in Celsius for each battery on the device.
      3.14,
    ],
    &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;brand&quot;: &quot;A String&quot;, # Brand of the device. For example, Google.
    &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;hardware&quot;: &quot;A String&quot;, # Name of the hardware. For example, Angler.
    &quot;batteryThrottlingTemperatures&quot;: [ # Battery throttling temperature thresholds in Celsius for each battery on the device.
      3.14,
    ],
    &quot;model&quot;: &quot;A String&quot;, # The model of the device. For example, Asus Nexus 7.
    &quot;cpuShutdownTemperatures&quot;: [ # CPU shutdown temperature thresholds in Celsius for each CPU on the device.
      3.14,
    ],
    &quot;gpuShutdownTemperatures&quot;: [ # GPU shutdown temperature thresholds in Celsius for each GPU on the device.
      3.14,
    ],
    &quot;manufacturer&quot;: &quot;A String&quot;, # Manufacturer. For example, Motorola.
  },
  &quot;lastPolicyComplianceReportTime&quot;: &quot;A String&quot;, # Deprecated.
  &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;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;versionName&quot;: &quot;A String&quot;, # The app version as displayed to the user.
      &quot;displayName&quot;: &quot;A String&quot;, # The display name of the app.
      &quot;packageName&quot;: &quot;A String&quot;, # Package name of the app.
      &quot;versionCode&quot;: 42, # The app version code, which can be used to determine whether one version is more recent than another.
      &quot;events&quot;: [ # List of app events. The most recent 20 events are stored in the list.
        { # An app-related event.
          &quot;eventType&quot;: &quot;A String&quot;, # App event type.
          &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
        },
      ],
      &quot;state&quot;: &quot;A String&quot;, # Application state.
      &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;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;lastUpdateTime&quot;: &quot;A String&quot;, # The time the app state was most recently updated.
          &quot;severity&quot;: &quot;A String&quot;, # The severity of the app state.
          &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;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;applicationSource&quot;: &quot;A String&quot;, # The source of the package.
    },
  ],
  &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;appliedPolicyName&quot;: &quot;A String&quot;, # The name of the policy currently applied to the device.
  &quot;enrollmentTime&quot;: &quot;A String&quot;, # The time of device enrollment.
  &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;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;developmentSettingsEnabled&quot;: True or False, # Whether developer mode is enabled on the device.
    &quot;unknownSourcesEnabled&quot;: True or False, # Whether installing apps from unknown sources is enabled.
    &quot;verifyAppsEnabled&quot;: True or False, # Whether Verify Apps (Google Play Protect (https://support.google.com/googleplay/answer/2812853)) is enabled on the device.
  },
  &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;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;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;primaryLanguageCode&quot;: &quot;A String&quot;, # An IETF BCP 47 language code for the primary locale on the device.
    &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;androidBuildTime&quot;: &quot;A String&quot;, # Build time.
    &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;securityPatchLevel&quot;: &quot;A String&quot;, # Security patch level, e.g. 2016-05-01.
    &quot;androidDevicePolicyVersionCode&quot;: 42, # The Android Device Policy app version code.
    &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;androidDevicePolicyVersionName&quot;: &quot;A String&quot;, # The Android Device Policy app version as displayed to the user.
  },
  &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;name&quot;: &quot;A String&quot;, # The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}.
  &quot;nonComplianceDetails&quot;: [ # Details about policy settings that the device is not compliant with.
    { # Provides detail about non-compliance with a policy setting.
      &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;currentValue&quot;: &quot;&quot;, # If the policy setting could not be applied, the current value of the setting on the device.
      &quot;packageName&quot;: &quot;A String&quot;, # The package name indicating which app is out of compliance, if applicable.
      &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;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;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;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;securityRisk&quot;: &quot;A String&quot;, # A specific security risk that negatively affects the security posture of the device.
      },
    ],
  },
  &quot;ownership&quot;: &quot;A String&quot;, # Ownership of the managed device.
  &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;policyCompliant&quot;: True or False, # Whether the device is compliant with its policy.
  &quot;apiLevel&quot;: 42, # The API level of the Android platform version running on the device.
  &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;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;skinTemperatures&quot;: [ # Current device skin temperatures in Celsius.
        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;batteryTemperatures&quot;: [ # Current battery temperatures in Celsius for each battery on the device.
        3.14,
      ],
      &quot;gpuTemperatures&quot;: [ # Current GPU temperatures in Celsius for each GPU on the device.
        3.14,
      ],
      &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;lastStatusReportTime&quot;: &quot;A String&quot;, # The last time the device sent a status report.
}

  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;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;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;networkOperatorName&quot;: &quot;A String&quot;, # Alphabetic name of current registered operator. For example, Vodafone.
      &quot;meid&quot;: &quot;A String&quot;, # MEID number of the CDMA device. For example, A00000292788E1.
      &quot;wifiMacAddress&quot;: &quot;A String&quot;, # Wi-Fi MAC address of the device. For example, 7c:11:11:11:11:11.
    },
    &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;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;totalRam&quot;: &quot;A String&quot;, # Total RAM on device in bytes.
      &quot;totalInternalStorage&quot;: &quot;A String&quot;, # Total internal storage on device in bytes.
    },
    &quot;appliedState&quot;: &quot;A String&quot;, # The state currently applied to the device.
    &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;appliedPolicyVersion&quot;: &quot;A String&quot;, # The version of the policy currently applied to the device.
    &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;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;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;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;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;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;eventType&quot;: &quot;A String&quot;, # Event type.
        &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;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;state&quot;: &quot;A String&quot;, # State of the display.
        &quot;displayId&quot;: 42, # Unique display id.
        &quot;density&quot;: 42, # Display density expressed as dots-per-inch.
        &quot;height&quot;: 42, # Display height in pixels.
        &quot;refreshRate&quot;: 42, # Refresh rate of the display in frames per second.
        &quot;name&quot;: &quot;A String&quot;, # Name of the display.
        &quot;width&quot;: 42, # Display width in pixels.
      },
    ],
    &quot;lastPolicySyncTime&quot;: &quot;A String&quot;, # The last time the device fetched its policy.
    &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;gpuThrottlingTemperatures&quot;: [ # GPU throttling temperature thresholds in Celsius for each GPU on the device.
        3.14,
      ],
      &quot;serialNumber&quot;: &quot;A String&quot;, # The device serial number.
      &quot;batteryShutdownTemperatures&quot;: [ # Battery shutdown temperature thresholds in Celsius for each battery on the device.
        3.14,
      ],
      &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;brand&quot;: &quot;A String&quot;, # Brand of the device. For example, Google.
      &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;hardware&quot;: &quot;A String&quot;, # Name of the hardware. For example, Angler.
      &quot;batteryThrottlingTemperatures&quot;: [ # Battery throttling temperature thresholds in Celsius for each battery on the device.
        3.14,
      ],
      &quot;model&quot;: &quot;A String&quot;, # The model of the device. For example, Asus Nexus 7.
      &quot;cpuShutdownTemperatures&quot;: [ # CPU shutdown temperature thresholds in Celsius for each CPU on the device.
        3.14,
      ],
      &quot;gpuShutdownTemperatures&quot;: [ # GPU shutdown temperature thresholds in Celsius for each GPU on the device.
        3.14,
      ],
      &quot;manufacturer&quot;: &quot;A String&quot;, # Manufacturer. For example, Motorola.
    },
    &quot;lastPolicyComplianceReportTime&quot;: &quot;A String&quot;, # Deprecated.
    &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;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;versionName&quot;: &quot;A String&quot;, # The app version as displayed to the user.
        &quot;displayName&quot;: &quot;A String&quot;, # The display name of the app.
        &quot;packageName&quot;: &quot;A String&quot;, # Package name of the app.
        &quot;versionCode&quot;: 42, # The app version code, which can be used to determine whether one version is more recent than another.
        &quot;events&quot;: [ # List of app events. The most recent 20 events are stored in the list.
          { # An app-related event.
            &quot;eventType&quot;: &quot;A String&quot;, # App event type.
            &quot;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
          },
        ],
        &quot;state&quot;: &quot;A String&quot;, # Application state.
        &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;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;lastUpdateTime&quot;: &quot;A String&quot;, # The time the app state was most recently updated.
            &quot;severity&quot;: &quot;A String&quot;, # The severity of the app state.
            &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;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;applicationSource&quot;: &quot;A String&quot;, # The source of the package.
      },
    ],
    &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;appliedPolicyName&quot;: &quot;A String&quot;, # The name of the policy currently applied to the device.
    &quot;enrollmentTime&quot;: &quot;A String&quot;, # The time of device enrollment.
    &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;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;developmentSettingsEnabled&quot;: True or False, # Whether developer mode is enabled on the device.
      &quot;unknownSourcesEnabled&quot;: True or False, # Whether installing apps from unknown sources is enabled.
      &quot;verifyAppsEnabled&quot;: True or False, # Whether Verify Apps (Google Play Protect (https://support.google.com/googleplay/answer/2812853)) is enabled on the device.
    },
    &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;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;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;primaryLanguageCode&quot;: &quot;A String&quot;, # An IETF BCP 47 language code for the primary locale on the device.
      &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;androidBuildTime&quot;: &quot;A String&quot;, # Build time.
      &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;securityPatchLevel&quot;: &quot;A String&quot;, # Security patch level, e.g. 2016-05-01.
      &quot;androidDevicePolicyVersionCode&quot;: 42, # The Android Device Policy app version code.
      &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;androidDevicePolicyVersionName&quot;: &quot;A String&quot;, # The Android Device Policy app version as displayed to the user.
    },
    &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;name&quot;: &quot;A String&quot;, # The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}.
    &quot;nonComplianceDetails&quot;: [ # Details about policy settings that the device is not compliant with.
      { # Provides detail about non-compliance with a policy setting.
        &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;currentValue&quot;: &quot;&quot;, # If the policy setting could not be applied, the current value of the setting on the device.
        &quot;packageName&quot;: &quot;A String&quot;, # The package name indicating which app is out of compliance, if applicable.
        &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;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;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;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;securityRisk&quot;: &quot;A String&quot;, # A specific security risk that negatively affects the security posture of the device.
        },
      ],
    },
    &quot;ownership&quot;: &quot;A String&quot;, # Ownership of the managed device.
    &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;policyCompliant&quot;: True or False, # Whether the device is compliant with its policy.
    &quot;apiLevel&quot;: 42, # The API level of the Android platform version running on the device.
    &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;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;skinTemperatures&quot;: [ # Current device skin temperatures in Celsius.
          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;batteryTemperatures&quot;: [ # Current battery temperatures in Celsius for each battery on the device.
          3.14,
        ],
        &quot;gpuTemperatures&quot;: [ # Current GPU temperatures in Celsius for each GPU on the device.
          3.14,
        ],
        &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;lastStatusReportTime&quot;: &quot;A String&quot;, # The last time the device sent a status report.
  }</pre>
</div>

</body></html>