<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="#delete">delete(name, wipeReasonMessage=None, wipeDataFlags=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, pageToken=None, pageSize=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="delete">delete(name, wipeReasonMessage=None, wipeDataFlags=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)
  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.
  wipeDataFlags: string, Optional flags that control the device wiping behavior. (repeated)
  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;appliedState&quot;: &quot;A String&quot;, # The state currently applied to the device.
    &quot;enrollmentTime&quot;: &quot;A String&quot;, # The time of device enrollment.
    &quot;lastPolicySyncTime&quot;: &quot;A String&quot;, # The last time the device fetched its policy.
    &quot;nonComplianceDetails&quot;: [ # Details about policy settings that the device is not compliant with.
      { # Provides detail about non-compliance with a policy setting.
        &quot;currentValue&quot;: &quot;&quot;, # If the policy setting could not be applied, the current value of the setting on the device.
        &quot;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;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;packageName&quot;: &quot;A String&quot;, # The package name indicating which app is out of compliance, if applicable.
        &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;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;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;width&quot;: 42, # Display width in pixels.
        &quot;displayId&quot;: 42, # Unique display id.
        &quot;name&quot;: &quot;A String&quot;, # Name of the display.
        &quot;height&quot;: 42, # Display height in pixels.
        &quot;density&quot;: 42, # Display density expressed as dots-per-inch.
        &quot;refreshRate&quot;: 42, # Refresh rate of the display in frames per second.
        &quot;state&quot;: &quot;A String&quot;, # State of the display.
      },
    ],
    &quot;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;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;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;policyCompliant&quot;: True or False, # Whether the device is compliant with its policy.
    &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;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;skinThrottlingTemperatures&quot;: [ # Device skin throttling temperature thresholds in Celsius.
        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;hardware&quot;: &quot;A String&quot;, # Name of the hardware. For example, Angler.
      &quot;gpuShutdownTemperatures&quot;: [ # GPU shutdown temperature thresholds in Celsius for each GPU on the device.
        3.14,
      ],
      &quot;brand&quot;: &quot;A String&quot;, # Brand of the device. For example, Google.
      &quot;gpuThrottlingTemperatures&quot;: [ # GPU throttling temperature thresholds in Celsius for each GPU on the device.
        3.14,
      ],
      &quot;batteryThrottlingTemperatures&quot;: [ # Battery throttling temperature thresholds in Celsius for each battery on the device.
        3.14,
      ],
      &quot;cpuShutdownTemperatures&quot;: [ # CPU shutdown temperature thresholds in Celsius for each CPU on the device.
        3.14,
      ],
      &quot;cpuThrottlingTemperatures&quot;: [ # CPU throttling temperature thresholds in Celsius for each CPU on the device.
        3.14,
      ],
      &quot;model&quot;: &quot;A String&quot;, # The model of the device. For example, Asus Nexus 7.
      &quot;manufacturer&quot;: &quot;A String&quot;, # Manufacturer. For example, Motorola.
      &quot;skinShutdownTemperatures&quot;: [ # Device skin shutdown temperature thresholds in Celsius.
        3.14,
      ],
      &quot;deviceBasebandVersion&quot;: &quot;A String&quot;, # Baseband version. For example, MDM9625_104662.22.05.34p.
    },
    &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;bootloaderVersion&quot;: &quot;A String&quot;, # The system bootloader version number, e.g. 0.6.7.
      &quot;androidDevicePolicyVersionName&quot;: &quot;A String&quot;, # The Android Device Policy app version as displayed to the user.
      &quot;primaryLanguageCode&quot;: &quot;A String&quot;, # An IETF BCP 47 language code for the primary locale on the device.
      &quot;androidBuildTime&quot;: &quot;A String&quot;, # Build time.
      &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;androidVersion&quot;: &quot;A String&quot;, # The user-visible Android version string. For example, 6.0.1.
      &quot;securityPatchLevel&quot;: &quot;A String&quot;, # Security patch level, e.g. 2016-05-01.
      &quot;deviceKernelVersion&quot;: &quot;A String&quot;, # Kernel version, for example, 2.6.32.9-g103d848.
      &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;androidDevicePolicyVersionCode&quot;: 42, # The Android Device Policy app version code.
    },
    &quot;lastPolicyComplianceReportTime&quot;: &quot;A String&quot;, # Deprecated.
    &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;postureDetails&quot;: [ # Additional details regarding the security posture of the device.
        { # Additional details regarding the security posture of the device.
          &quot;securityRisk&quot;: &quot;A String&quot;, # A specific security risk that negatively affects 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 &lt;locale, message&gt; 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;devicePosture&quot;: &quot;A String&quot;, # Device&#x27;s security posture value.
    },
    &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 &lt;locale, message&gt; 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;ownership&quot;: &quot;A String&quot;, # Ownership of the managed device.
    &quot;hardwareStatusSamples&quot;: [ # Hardware status samples in chronological order. This information is only available if hardwareStatusEnabled is true in the device&#x27;s policy.
      { # Hardware status. Temperatures may be compared to the temperature thresholds available in hardwareInfo to determine hardware health.
        &quot;batteryTemperatures&quot;: [ # Current battery temperatures in Celsius for each battery on the device.
          3.14,
        ],
        &quot;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;skinTemperatures&quot;: [ # Current device skin temperatures in Celsius.
          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;cpuTemperatures&quot;: [ # Current CPU temperatures in Celsius for each CPU on the device.
          3.14,
        ],
        &quot;gpuTemperatures&quot;: [ # Current GPU temperatures in Celsius for each GPU on the device.
          3.14,
        ],
      },
    ],
    &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;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;networkInfo&quot;: { # Device network info. # Device network information. This information is only available if networkInfoEnabled is true in the device&#x27;s policy.
      &quot;networkOperatorName&quot;: &quot;A String&quot;, # Alphabetic name of current registered operator. For example, Vodafone.
      &quot;wifiMacAddress&quot;: &quot;A String&quot;, # Wi-Fi MAC address of the device. For example, 7c:11:11:11:11:11.
      &quot;meid&quot;: &quot;A String&quot;, # MEID number of the CDMA device. For example, A00000292788E1.
      &quot;imei&quot;: &quot;A String&quot;, # IMEI number of the GSM device. For example, A1000031212.
    },
    &quot;appliedPolicyVersion&quot;: &quot;A String&quot;, # The version of the policy currently applied to the device.
    &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;unknownSourcesEnabled&quot;: True or False, # Whether installing apps from unknown sources is enabled.
      &quot;isDeviceSecure&quot;: True or False, # Whether the device is secured with PIN/password.
      &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;developmentSettingsEnabled&quot;: True or False, # Whether developer mode is enabled on the device.
      &quot;isEncrypted&quot;: True or False, # Whether the storage encryption is enabled.
      &quot;encryptionStatus&quot;: &quot;A String&quot;, # Encryption status from DevicePolicyManager.
    },
    &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;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;severity&quot;: &quot;A String&quot;, # The severity of the app state.
            &quot;lastUpdateTime&quot;: &quot;A String&quot;, # The time the app state was most recently updated.
            &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;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;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;versionName&quot;: &quot;A String&quot;, # The app version as displayed to the user.
        &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;packageName&quot;: &quot;A String&quot;, # Package name of the app.
        &quot;state&quot;: &quot;A String&quot;, # Application state.
        &quot;displayName&quot;: &quot;A String&quot;, # The display name of the app.
        &quot;applicationSource&quot;: &quot;A String&quot;, # The source of the package.
        &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;versionCode&quot;: 42, # The app version code, which can be used to determine whether one version is more recent than another.
      },
    ],
    &quot;appliedPolicyName&quot;: &quot;A String&quot;, # The name of the policy currently applied to the device.
    &quot;lastStatusReportTime&quot;: &quot;A String&quot;, # The last time the device sent a status report.
    &quot;apiLevel&quot;: 42, # The API level of the Android platform version running on the device.
    &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;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;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
        &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;eventType&quot;: &quot;A String&quot;, # Event type.
      },
    ],
    &quot;previousDeviceNames&quot;: [ # If the same physical device has been enrolled multiple times, this field contains its previous device names. The serial number is used as the unique identifier to determine if the same physical device has enrolled previously. The names are in chronological order.
      &quot;A String&quot;,
    ],
    &quot;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;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;createTime&quot;: &quot;A String&quot;, # The creation time of the 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.
      },
    ],
  }</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;newPassword&quot;: &quot;A String&quot;, # For commands of type RESET_PASSWORD, optionally specifies the new password.
    &quot;createTime&quot;: &quot;A String&quot;, # The timestamp at which the command was created. The timestamp is automatically generated by the server.
    &quot;resetPasswordFlags&quot;: [ # For commands of type RESET_PASSWORD, optionally specifies flags.
      &quot;A String&quot;,
    ],
    &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.
    &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;type&quot;: &quot;A String&quot;, # The type of the command.
    &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.
  }

  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;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;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;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
        {
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
        },
      ],
      &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    },
    &quot;name&quot;: &quot;A String&quot;, # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should be a resource name ending with operations/{unique_id}.
    &quot;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.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, pageToken=None, pageSize=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)
  pageToken: string, A token identifying a page of results returned by the server.
  pageSize: integer, The requested page size. The actual page size may be fixed to a min or max value.
  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;nextPageToken&quot;: &quot;A String&quot;, # If there are more results, a token to retrieve next page of results.
    &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;appliedState&quot;: &quot;A String&quot;, # The state currently applied to the device.
        &quot;enrollmentTime&quot;: &quot;A String&quot;, # The time of device enrollment.
        &quot;lastPolicySyncTime&quot;: &quot;A String&quot;, # The last time the device fetched its policy.
        &quot;nonComplianceDetails&quot;: [ # Details about policy settings that the device is not compliant with.
          { # Provides detail about non-compliance with a policy setting.
            &quot;currentValue&quot;: &quot;&quot;, # If the policy setting could not be applied, the current value of the setting on the device.
            &quot;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;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;packageName&quot;: &quot;A String&quot;, # The package name indicating which app is out of compliance, if applicable.
            &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;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;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;width&quot;: 42, # Display width in pixels.
            &quot;displayId&quot;: 42, # Unique display id.
            &quot;name&quot;: &quot;A String&quot;, # Name of the display.
            &quot;height&quot;: 42, # Display height in pixels.
            &quot;density&quot;: 42, # Display density expressed as dots-per-inch.
            &quot;refreshRate&quot;: 42, # Refresh rate of the display in frames per second.
            &quot;state&quot;: &quot;A String&quot;, # State of the display.
          },
        ],
        &quot;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;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;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;policyCompliant&quot;: True or False, # Whether the device is compliant with its policy.
        &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;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;skinThrottlingTemperatures&quot;: [ # Device skin throttling temperature thresholds in Celsius.
            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;hardware&quot;: &quot;A String&quot;, # Name of the hardware. For example, Angler.
          &quot;gpuShutdownTemperatures&quot;: [ # GPU shutdown temperature thresholds in Celsius for each GPU on the device.
            3.14,
          ],
          &quot;brand&quot;: &quot;A String&quot;, # Brand of the device. For example, Google.
          &quot;gpuThrottlingTemperatures&quot;: [ # GPU throttling temperature thresholds in Celsius for each GPU on the device.
            3.14,
          ],
          &quot;batteryThrottlingTemperatures&quot;: [ # Battery throttling temperature thresholds in Celsius for each battery on the device.
            3.14,
          ],
          &quot;cpuShutdownTemperatures&quot;: [ # CPU shutdown temperature thresholds in Celsius for each CPU on the device.
            3.14,
          ],
          &quot;cpuThrottlingTemperatures&quot;: [ # CPU throttling temperature thresholds in Celsius for each CPU on the device.
            3.14,
          ],
          &quot;model&quot;: &quot;A String&quot;, # The model of the device. For example, Asus Nexus 7.
          &quot;manufacturer&quot;: &quot;A String&quot;, # Manufacturer. For example, Motorola.
          &quot;skinShutdownTemperatures&quot;: [ # Device skin shutdown temperature thresholds in Celsius.
            3.14,
          ],
          &quot;deviceBasebandVersion&quot;: &quot;A String&quot;, # Baseband version. For example, MDM9625_104662.22.05.34p.
        },
        &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;bootloaderVersion&quot;: &quot;A String&quot;, # The system bootloader version number, e.g. 0.6.7.
          &quot;androidDevicePolicyVersionName&quot;: &quot;A String&quot;, # The Android Device Policy app version as displayed to the user.
          &quot;primaryLanguageCode&quot;: &quot;A String&quot;, # An IETF BCP 47 language code for the primary locale on the device.
          &quot;androidBuildTime&quot;: &quot;A String&quot;, # Build time.
          &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;androidVersion&quot;: &quot;A String&quot;, # The user-visible Android version string. For example, 6.0.1.
          &quot;securityPatchLevel&quot;: &quot;A String&quot;, # Security patch level, e.g. 2016-05-01.
          &quot;deviceKernelVersion&quot;: &quot;A String&quot;, # Kernel version, for example, 2.6.32.9-g103d848.
          &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;androidDevicePolicyVersionCode&quot;: 42, # The Android Device Policy app version code.
        },
        &quot;lastPolicyComplianceReportTime&quot;: &quot;A String&quot;, # Deprecated.
        &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;postureDetails&quot;: [ # Additional details regarding the security posture of the device.
            { # Additional details regarding the security posture of the device.
              &quot;securityRisk&quot;: &quot;A String&quot;, # A specific security risk that negatively affects 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 &lt;locale, message&gt; 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;devicePosture&quot;: &quot;A String&quot;, # Device&#x27;s security posture value.
        },
        &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 &lt;locale, message&gt; 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;ownership&quot;: &quot;A String&quot;, # Ownership of the managed device.
        &quot;hardwareStatusSamples&quot;: [ # Hardware status samples in chronological order. This information is only available if hardwareStatusEnabled is true in the device&#x27;s policy.
          { # Hardware status. Temperatures may be compared to the temperature thresholds available in hardwareInfo to determine hardware health.
            &quot;batteryTemperatures&quot;: [ # Current battery temperatures in Celsius for each battery on the device.
              3.14,
            ],
            &quot;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;skinTemperatures&quot;: [ # Current device skin temperatures in Celsius.
              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;cpuTemperatures&quot;: [ # Current CPU temperatures in Celsius for each CPU on the device.
              3.14,
            ],
            &quot;gpuTemperatures&quot;: [ # Current GPU temperatures in Celsius for each GPU on the device.
              3.14,
            ],
          },
        ],
        &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;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;networkInfo&quot;: { # Device network info. # Device network information. This information is only available if networkInfoEnabled is true in the device&#x27;s policy.
          &quot;networkOperatorName&quot;: &quot;A String&quot;, # Alphabetic name of current registered operator. For example, Vodafone.
          &quot;wifiMacAddress&quot;: &quot;A String&quot;, # Wi-Fi MAC address of the device. For example, 7c:11:11:11:11:11.
          &quot;meid&quot;: &quot;A String&quot;, # MEID number of the CDMA device. For example, A00000292788E1.
          &quot;imei&quot;: &quot;A String&quot;, # IMEI number of the GSM device. For example, A1000031212.
        },
        &quot;appliedPolicyVersion&quot;: &quot;A String&quot;, # The version of the policy currently applied to the device.
        &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;unknownSourcesEnabled&quot;: True or False, # Whether installing apps from unknown sources is enabled.
          &quot;isDeviceSecure&quot;: True or False, # Whether the device is secured with PIN/password.
          &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;developmentSettingsEnabled&quot;: True or False, # Whether developer mode is enabled on the device.
          &quot;isEncrypted&quot;: True or False, # Whether the storage encryption is enabled.
          &quot;encryptionStatus&quot;: &quot;A String&quot;, # Encryption status from DevicePolicyManager.
        },
        &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;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;severity&quot;: &quot;A String&quot;, # The severity of the app state.
                &quot;lastUpdateTime&quot;: &quot;A String&quot;, # The time the app state was most recently updated.
                &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;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;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;versionName&quot;: &quot;A String&quot;, # The app version as displayed to the user.
            &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;packageName&quot;: &quot;A String&quot;, # Package name of the app.
            &quot;state&quot;: &quot;A String&quot;, # Application state.
            &quot;displayName&quot;: &quot;A String&quot;, # The display name of the app.
            &quot;applicationSource&quot;: &quot;A String&quot;, # The source of the package.
            &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;versionCode&quot;: 42, # The app version code, which can be used to determine whether one version is more recent than another.
          },
        ],
        &quot;appliedPolicyName&quot;: &quot;A String&quot;, # The name of the policy currently applied to the device.
        &quot;lastStatusReportTime&quot;: &quot;A String&quot;, # The last time the device sent a status report.
        &quot;apiLevel&quot;: 42, # The API level of the Android platform version running on the device.
        &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;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;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
            &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;eventType&quot;: &quot;A String&quot;, # Event type.
          },
        ],
        &quot;previousDeviceNames&quot;: [ # If the same physical device has been enrolled multiple times, this field contains its previous device names. The serial number is used as the unique identifier to determine if the same physical device has enrolled previously. The names are in chronological order.
          &quot;A String&quot;,
        ],
        &quot;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;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;createTime&quot;: &quot;A String&quot;, # The creation time of the 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.
          },
        ],
      },
    ],
  }</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;appliedState&quot;: &quot;A String&quot;, # The state currently applied to the device.
  &quot;enrollmentTime&quot;: &quot;A String&quot;, # The time of device enrollment.
  &quot;lastPolicySyncTime&quot;: &quot;A String&quot;, # The last time the device fetched its policy.
  &quot;nonComplianceDetails&quot;: [ # Details about policy settings that the device is not compliant with.
    { # Provides detail about non-compliance with a policy setting.
      &quot;currentValue&quot;: &quot;&quot;, # If the policy setting could not be applied, the current value of the setting on the device.
      &quot;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;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;packageName&quot;: &quot;A String&quot;, # The package name indicating which app is out of compliance, if applicable.
      &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;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;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;width&quot;: 42, # Display width in pixels.
      &quot;displayId&quot;: 42, # Unique display id.
      &quot;name&quot;: &quot;A String&quot;, # Name of the display.
      &quot;height&quot;: 42, # Display height in pixels.
      &quot;density&quot;: 42, # Display density expressed as dots-per-inch.
      &quot;refreshRate&quot;: 42, # Refresh rate of the display in frames per second.
      &quot;state&quot;: &quot;A String&quot;, # State of the display.
    },
  ],
  &quot;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;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;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;policyCompliant&quot;: True or False, # Whether the device is compliant with its policy.
  &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;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;skinThrottlingTemperatures&quot;: [ # Device skin throttling temperature thresholds in Celsius.
      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;hardware&quot;: &quot;A String&quot;, # Name of the hardware. For example, Angler.
    &quot;gpuShutdownTemperatures&quot;: [ # GPU shutdown temperature thresholds in Celsius for each GPU on the device.
      3.14,
    ],
    &quot;brand&quot;: &quot;A String&quot;, # Brand of the device. For example, Google.
    &quot;gpuThrottlingTemperatures&quot;: [ # GPU throttling temperature thresholds in Celsius for each GPU on the device.
      3.14,
    ],
    &quot;batteryThrottlingTemperatures&quot;: [ # Battery throttling temperature thresholds in Celsius for each battery on the device.
      3.14,
    ],
    &quot;cpuShutdownTemperatures&quot;: [ # CPU shutdown temperature thresholds in Celsius for each CPU on the device.
      3.14,
    ],
    &quot;cpuThrottlingTemperatures&quot;: [ # CPU throttling temperature thresholds in Celsius for each CPU on the device.
      3.14,
    ],
    &quot;model&quot;: &quot;A String&quot;, # The model of the device. For example, Asus Nexus 7.
    &quot;manufacturer&quot;: &quot;A String&quot;, # Manufacturer. For example, Motorola.
    &quot;skinShutdownTemperatures&quot;: [ # Device skin shutdown temperature thresholds in Celsius.
      3.14,
    ],
    &quot;deviceBasebandVersion&quot;: &quot;A String&quot;, # Baseband version. For example, MDM9625_104662.22.05.34p.
  },
  &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;bootloaderVersion&quot;: &quot;A String&quot;, # The system bootloader version number, e.g. 0.6.7.
    &quot;androidDevicePolicyVersionName&quot;: &quot;A String&quot;, # The Android Device Policy app version as displayed to the user.
    &quot;primaryLanguageCode&quot;: &quot;A String&quot;, # An IETF BCP 47 language code for the primary locale on the device.
    &quot;androidBuildTime&quot;: &quot;A String&quot;, # Build time.
    &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;androidVersion&quot;: &quot;A String&quot;, # The user-visible Android version string. For example, 6.0.1.
    &quot;securityPatchLevel&quot;: &quot;A String&quot;, # Security patch level, e.g. 2016-05-01.
    &quot;deviceKernelVersion&quot;: &quot;A String&quot;, # Kernel version, for example, 2.6.32.9-g103d848.
    &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;androidDevicePolicyVersionCode&quot;: 42, # The Android Device Policy app version code.
  },
  &quot;lastPolicyComplianceReportTime&quot;: &quot;A String&quot;, # Deprecated.
  &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;postureDetails&quot;: [ # Additional details regarding the security posture of the device.
      { # Additional details regarding the security posture of the device.
        &quot;securityRisk&quot;: &quot;A String&quot;, # A specific security risk that negatively affects 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 &lt;locale, message&gt; 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;devicePosture&quot;: &quot;A String&quot;, # Device&#x27;s security posture value.
  },
  &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 &lt;locale, message&gt; 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;ownership&quot;: &quot;A String&quot;, # Ownership of the managed device.
  &quot;hardwareStatusSamples&quot;: [ # Hardware status samples in chronological order. This information is only available if hardwareStatusEnabled is true in the device&#x27;s policy.
    { # Hardware status. Temperatures may be compared to the temperature thresholds available in hardwareInfo to determine hardware health.
      &quot;batteryTemperatures&quot;: [ # Current battery temperatures in Celsius for each battery on the device.
        3.14,
      ],
      &quot;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;skinTemperatures&quot;: [ # Current device skin temperatures in Celsius.
        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;cpuTemperatures&quot;: [ # Current CPU temperatures in Celsius for each CPU on the device.
        3.14,
      ],
      &quot;gpuTemperatures&quot;: [ # Current GPU temperatures in Celsius for each GPU on the device.
        3.14,
      ],
    },
  ],
  &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;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;networkInfo&quot;: { # Device network info. # Device network information. This information is only available if networkInfoEnabled is true in the device&#x27;s policy.
    &quot;networkOperatorName&quot;: &quot;A String&quot;, # Alphabetic name of current registered operator. For example, Vodafone.
    &quot;wifiMacAddress&quot;: &quot;A String&quot;, # Wi-Fi MAC address of the device. For example, 7c:11:11:11:11:11.
    &quot;meid&quot;: &quot;A String&quot;, # MEID number of the CDMA device. For example, A00000292788E1.
    &quot;imei&quot;: &quot;A String&quot;, # IMEI number of the GSM device. For example, A1000031212.
  },
  &quot;appliedPolicyVersion&quot;: &quot;A String&quot;, # The version of the policy currently applied to the device.
  &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;unknownSourcesEnabled&quot;: True or False, # Whether installing apps from unknown sources is enabled.
    &quot;isDeviceSecure&quot;: True or False, # Whether the device is secured with PIN/password.
    &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;developmentSettingsEnabled&quot;: True or False, # Whether developer mode is enabled on the device.
    &quot;isEncrypted&quot;: True or False, # Whether the storage encryption is enabled.
    &quot;encryptionStatus&quot;: &quot;A String&quot;, # Encryption status from DevicePolicyManager.
  },
  &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;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;severity&quot;: &quot;A String&quot;, # The severity of the app state.
          &quot;lastUpdateTime&quot;: &quot;A String&quot;, # The time the app state was most recently updated.
          &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;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;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;versionName&quot;: &quot;A String&quot;, # The app version as displayed to the user.
      &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;packageName&quot;: &quot;A String&quot;, # Package name of the app.
      &quot;state&quot;: &quot;A String&quot;, # Application state.
      &quot;displayName&quot;: &quot;A String&quot;, # The display name of the app.
      &quot;applicationSource&quot;: &quot;A String&quot;, # The source of the package.
      &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;versionCode&quot;: 42, # The app version code, which can be used to determine whether one version is more recent than another.
    },
  ],
  &quot;appliedPolicyName&quot;: &quot;A String&quot;, # The name of the policy currently applied to the device.
  &quot;lastStatusReportTime&quot;: &quot;A String&quot;, # The last time the device sent a status report.
  &quot;apiLevel&quot;: 42, # The API level of the Android platform version running on the device.
  &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;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;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
      &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;eventType&quot;: &quot;A String&quot;, # Event type.
    },
  ],
  &quot;previousDeviceNames&quot;: [ # If the same physical device has been enrolled multiple times, this field contains its previous device names. The serial number is used as the unique identifier to determine if the same physical device has enrolled previously. The names are in chronological order.
    &quot;A String&quot;,
  ],
  &quot;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;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;createTime&quot;: &quot;A String&quot;, # The creation time of the 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.
    },
  ],
}

  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;appliedState&quot;: &quot;A String&quot;, # The state currently applied to the device.
    &quot;enrollmentTime&quot;: &quot;A String&quot;, # The time of device enrollment.
    &quot;lastPolicySyncTime&quot;: &quot;A String&quot;, # The last time the device fetched its policy.
    &quot;nonComplianceDetails&quot;: [ # Details about policy settings that the device is not compliant with.
      { # Provides detail about non-compliance with a policy setting.
        &quot;currentValue&quot;: &quot;&quot;, # If the policy setting could not be applied, the current value of the setting on the device.
        &quot;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;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;packageName&quot;: &quot;A String&quot;, # The package name indicating which app is out of compliance, if applicable.
        &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;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;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;width&quot;: 42, # Display width in pixels.
        &quot;displayId&quot;: 42, # Unique display id.
        &quot;name&quot;: &quot;A String&quot;, # Name of the display.
        &quot;height&quot;: 42, # Display height in pixels.
        &quot;density&quot;: 42, # Display density expressed as dots-per-inch.
        &quot;refreshRate&quot;: 42, # Refresh rate of the display in frames per second.
        &quot;state&quot;: &quot;A String&quot;, # State of the display.
      },
    ],
    &quot;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;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;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;policyCompliant&quot;: True or False, # Whether the device is compliant with its policy.
    &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;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;skinThrottlingTemperatures&quot;: [ # Device skin throttling temperature thresholds in Celsius.
        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;hardware&quot;: &quot;A String&quot;, # Name of the hardware. For example, Angler.
      &quot;gpuShutdownTemperatures&quot;: [ # GPU shutdown temperature thresholds in Celsius for each GPU on the device.
        3.14,
      ],
      &quot;brand&quot;: &quot;A String&quot;, # Brand of the device. For example, Google.
      &quot;gpuThrottlingTemperatures&quot;: [ # GPU throttling temperature thresholds in Celsius for each GPU on the device.
        3.14,
      ],
      &quot;batteryThrottlingTemperatures&quot;: [ # Battery throttling temperature thresholds in Celsius for each battery on the device.
        3.14,
      ],
      &quot;cpuShutdownTemperatures&quot;: [ # CPU shutdown temperature thresholds in Celsius for each CPU on the device.
        3.14,
      ],
      &quot;cpuThrottlingTemperatures&quot;: [ # CPU throttling temperature thresholds in Celsius for each CPU on the device.
        3.14,
      ],
      &quot;model&quot;: &quot;A String&quot;, # The model of the device. For example, Asus Nexus 7.
      &quot;manufacturer&quot;: &quot;A String&quot;, # Manufacturer. For example, Motorola.
      &quot;skinShutdownTemperatures&quot;: [ # Device skin shutdown temperature thresholds in Celsius.
        3.14,
      ],
      &quot;deviceBasebandVersion&quot;: &quot;A String&quot;, # Baseband version. For example, MDM9625_104662.22.05.34p.
    },
    &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;bootloaderVersion&quot;: &quot;A String&quot;, # The system bootloader version number, e.g. 0.6.7.
      &quot;androidDevicePolicyVersionName&quot;: &quot;A String&quot;, # The Android Device Policy app version as displayed to the user.
      &quot;primaryLanguageCode&quot;: &quot;A String&quot;, # An IETF BCP 47 language code for the primary locale on the device.
      &quot;androidBuildTime&quot;: &quot;A String&quot;, # Build time.
      &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;androidVersion&quot;: &quot;A String&quot;, # The user-visible Android version string. For example, 6.0.1.
      &quot;securityPatchLevel&quot;: &quot;A String&quot;, # Security patch level, e.g. 2016-05-01.
      &quot;deviceKernelVersion&quot;: &quot;A String&quot;, # Kernel version, for example, 2.6.32.9-g103d848.
      &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;androidDevicePolicyVersionCode&quot;: 42, # The Android Device Policy app version code.
    },
    &quot;lastPolicyComplianceReportTime&quot;: &quot;A String&quot;, # Deprecated.
    &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;postureDetails&quot;: [ # Additional details regarding the security posture of the device.
        { # Additional details regarding the security posture of the device.
          &quot;securityRisk&quot;: &quot;A String&quot;, # A specific security risk that negatively affects 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 &lt;locale, message&gt; 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;devicePosture&quot;: &quot;A String&quot;, # Device&#x27;s security posture value.
    },
    &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 &lt;locale, message&gt; 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;ownership&quot;: &quot;A String&quot;, # Ownership of the managed device.
    &quot;hardwareStatusSamples&quot;: [ # Hardware status samples in chronological order. This information is only available if hardwareStatusEnabled is true in the device&#x27;s policy.
      { # Hardware status. Temperatures may be compared to the temperature thresholds available in hardwareInfo to determine hardware health.
        &quot;batteryTemperatures&quot;: [ # Current battery temperatures in Celsius for each battery on the device.
          3.14,
        ],
        &quot;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;skinTemperatures&quot;: [ # Current device skin temperatures in Celsius.
          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;cpuTemperatures&quot;: [ # Current CPU temperatures in Celsius for each CPU on the device.
          3.14,
        ],
        &quot;gpuTemperatures&quot;: [ # Current GPU temperatures in Celsius for each GPU on the device.
          3.14,
        ],
      },
    ],
    &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;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;networkInfo&quot;: { # Device network info. # Device network information. This information is only available if networkInfoEnabled is true in the device&#x27;s policy.
      &quot;networkOperatorName&quot;: &quot;A String&quot;, # Alphabetic name of current registered operator. For example, Vodafone.
      &quot;wifiMacAddress&quot;: &quot;A String&quot;, # Wi-Fi MAC address of the device. For example, 7c:11:11:11:11:11.
      &quot;meid&quot;: &quot;A String&quot;, # MEID number of the CDMA device. For example, A00000292788E1.
      &quot;imei&quot;: &quot;A String&quot;, # IMEI number of the GSM device. For example, A1000031212.
    },
    &quot;appliedPolicyVersion&quot;: &quot;A String&quot;, # The version of the policy currently applied to the device.
    &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;unknownSourcesEnabled&quot;: True or False, # Whether installing apps from unknown sources is enabled.
      &quot;isDeviceSecure&quot;: True or False, # Whether the device is secured with PIN/password.
      &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;developmentSettingsEnabled&quot;: True or False, # Whether developer mode is enabled on the device.
      &quot;isEncrypted&quot;: True or False, # Whether the storage encryption is enabled.
      &quot;encryptionStatus&quot;: &quot;A String&quot;, # Encryption status from DevicePolicyManager.
    },
    &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;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;severity&quot;: &quot;A String&quot;, # The severity of the app state.
            &quot;lastUpdateTime&quot;: &quot;A String&quot;, # The time the app state was most recently updated.
            &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;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;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;versionName&quot;: &quot;A String&quot;, # The app version as displayed to the user.
        &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;packageName&quot;: &quot;A String&quot;, # Package name of the app.
        &quot;state&quot;: &quot;A String&quot;, # Application state.
        &quot;displayName&quot;: &quot;A String&quot;, # The display name of the app.
        &quot;applicationSource&quot;: &quot;A String&quot;, # The source of the package.
        &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;versionCode&quot;: 42, # The app version code, which can be used to determine whether one version is more recent than another.
      },
    ],
    &quot;appliedPolicyName&quot;: &quot;A String&quot;, # The name of the policy currently applied to the device.
    &quot;lastStatusReportTime&quot;: &quot;A String&quot;, # The last time the device sent a status report.
    &quot;apiLevel&quot;: 42, # The API level of the Android platform version running on the device.
    &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;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;createTime&quot;: &quot;A String&quot;, # The creation time of the event.
        &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;eventType&quot;: &quot;A String&quot;, # Event type.
      },
    ],
    &quot;previousDeviceNames&quot;: [ # If the same physical device has been enrolled multiple times, this field contains its previous device names. The serial number is used as the unique identifier to determine if the same physical device has enrolled previously. The names are in chronological order.
      &quot;A String&quot;,
    ],
    &quot;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;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;createTime&quot;: &quot;A String&quot;, # The creation time of the 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.
      },
    ],
  }</pre>
</div>

</body></html>