Język

DeviceManagementClient.GetDeviceAsync(String, RequestContext) Method

Definition

[Protocol Method] Gets the device properties and latest deployment status for a device connected to Device Update for IoT Hub.

  • This protocol method allows explicit creation of the request and processing of the response for advanced scenarios.
public virtual System.Threading.Tasks.Task<Azure.Response> GetDeviceAsync(string deviceId, Azure.RequestContext context = default);
abstract member GetDeviceAsync : string * Azure.RequestContext -> System.Threading.Tasks.Task<Azure.Response>
override this.GetDeviceAsync : string * Azure.RequestContext -> System.Threading.Tasks.Task<Azure.Response>
Public Overridable Function GetDeviceAsync (deviceId As String, Optional context As RequestContext = Nothing) As Task(Of Response)

Parameters

deviceId
String

Device identifier in Azure IoT Hub.

context
RequestContext

The request options, which can override default behaviors of the client pipeline on a per-call basis.

Returns

The response returned from the service.

Exceptions

deviceId is null.

deviceId is an empty string, and was expected to be non-empty.

Service returned a non-success status code.

Examples

This sample shows how to call GetDeviceAsync with required parameters and parse the result.

var credential = new DefaultAzureCredential();
var endpoint = new Uri("<https://my-service.azure.com>");
var client = new DeviceManagementClient(endpoint, "<instanceId>", credential);

Response response = await client.GetDeviceAsync("<deviceId>");

JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement;
Console.WriteLine(result.GetProperty("deviceId").ToString());
Console.WriteLine(result.GetProperty("moduleId").ToString());
Console.WriteLine(result.GetProperty("deviceClassId").ToString());
Console.WriteLine(result.GetProperty("groupId").ToString());
Console.WriteLine(result.GetProperty("lastAttemptedUpdate").GetProperty("updateId").GetProperty("provider").ToString());
Console.WriteLine(result.GetProperty("lastAttemptedUpdate").GetProperty("updateId").GetProperty("name").ToString());
Console.WriteLine(result.GetProperty("lastAttemptedUpdate").GetProperty("updateId").GetProperty("version").ToString());
Console.WriteLine(result.GetProperty("lastAttemptedUpdate").GetProperty("description").ToString());
Console.WriteLine(result.GetProperty("lastAttemptedUpdate").GetProperty("friendlyName").ToString());
Console.WriteLine(result.GetProperty("deploymentStatus").ToString());
Console.WriteLine(result.GetProperty("installedUpdate").GetProperty("updateId").GetProperty("provider").ToString());
Console.WriteLine(result.GetProperty("installedUpdate").GetProperty("updateId").GetProperty("name").ToString());
Console.WriteLine(result.GetProperty("installedUpdate").GetProperty("updateId").GetProperty("version").ToString());
Console.WriteLine(result.GetProperty("installedUpdate").GetProperty("description").ToString());
Console.WriteLine(result.GetProperty("installedUpdate").GetProperty("friendlyName").ToString());
Console.WriteLine(result.GetProperty("onLatestUpdate").ToString());
Console.WriteLine(result.GetProperty("lastDeploymentId").ToString());
Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("resultCode").ToString());
Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("extendedResultCode").ToString());
Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("resultDetails").ToString());
Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("update").GetProperty("updateId").GetProperty("provider").ToString());
Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("update").GetProperty("updateId").GetProperty("name").ToString());
Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("update").GetProperty("updateId").GetProperty("version").ToString());
Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("update").GetProperty("description").ToString());
Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("update").GetProperty("friendlyName").ToString());
Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("description").ToString());
Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("resultCode").ToString());
Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("extendedResultCode").ToString());
Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("resultDetails").ToString());

Remarks

Below is the JSON schema for the response payload.

Response Body:

Schema for Device:

{
              deviceId: string, # Required. Device identity.
              moduleId: string, # Optional. Device module identity.
              deviceClassId: string, # Required. Device class identity.
              groupId: string, # Optional. Device group identity.
              lastAttemptedUpdate: {
                updateId: {
                  provider: string, # Required. Update provider.
                  name: string, # Required. Update name.
                  version: string, # Required. Update version.
                }, # Required. Update identifier.
                description: string, # Optional. Update description.
                friendlyName: string, # Optional. Friendly update name.
              }, # Optional. The update that device last attempted to install.
              deploymentStatus: "Succeeded" | "InProgress" | "Canceled" | "Failed", # Optional. State of the device in its last deployment.
              installedUpdate: UpdateInfo, # Optional. Currently installed update on device.
              onLatestUpdate: boolean, # Required. Boolean flag indicating whether the latest update (the best compatible update for the device's device class and group) is installed on the device
              lastDeploymentId: string, # Optional. The deployment identifier for the last deployment to the device
              lastInstallResult: {
                resultCode: number, # Required. Install result code.
                extendedResultCode: number, # Required. Install extended result code
                resultDetails: string, # Optional. A string containing further details about the install result
                stepResults: [
                  {
                    update: UpdateInfo, # Optional. The update that this step installs if it is of reference type.
                    description: string, # Optional. Step description.
                    resultCode: number, # Required. Install result code.
                    extendedResultCode: number, # Required. Install extended result code
                    resultDetails: string, # Optional. A string containing further details about the install result
                  }
                ], # Optional. Array of step results
              }, # Optional. Last install result.
            }

Applies to