Udostępnij za pośrednictwem


DeviceUpdateClient.StartImportUpdateAsync Method

Definition

Import new update version. This is a long-running-operation; use Operation-Location response header value to check for operation status.

public virtual System.Threading.Tasks.Task<Azure.Operation> StartImportUpdateAsync (Azure.WaitUntil waitUntil, Azure.Core.RequestContent content, Azure.RequestContext context = default);
abstract member StartImportUpdateAsync : Azure.WaitUntil * Azure.Core.RequestContent * Azure.RequestContext -> System.Threading.Tasks.Task<Azure.Operation>
override this.StartImportUpdateAsync : Azure.WaitUntil * Azure.Core.RequestContent * Azure.RequestContext -> System.Threading.Tasks.Task<Azure.Operation>
Public Overridable Function StartImportUpdateAsync (waitUntil As WaitUntil, content As RequestContent, Optional context As RequestContext = Nothing) As Task(Of Operation)

Parameters

waitUntil
WaitUntil

Completed if the method should wait to return until the long-running operation has completed on the service; Started if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples.

content
RequestContent

The content to send as the body of the request. Details of the request body schema are in the Remarks section below.

context
RequestContext

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

Returns

The Operation representing an asynchronous operation on the service.

Exceptions

content is null.

Service returned a non-success status code.

Examples

This sample shows how to call StartImportUpdateAsync with required parameters and request content.

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

var data = new[] {
    new {
        importManifest = new {
            url = "<url>",
            sizeInBytes = 1234L,
            hashes = new {
                key = "<String>",
            },
        },
        friendlyName = "<friendlyName>",
        files = new[] {
            new {
                filename = "<filename>",
                url = "<url>",
            }
        },
    }
};

var operation = await client.StartImportUpdateAsync(WaitUntil.Completed, RequestContent.Create(data));

var response = await operation.WaitForCompletionResponseAsync();
Console.WriteLine(response.Status)

Remarks

Below is the JSON schema for the request payload.

Request Body:

Schema for ImportUpdateInputItem:

{
              importManifest: {
                url: string, # Required. Azure Blob location from which the import manifest can be downloaded by Device Update for IoT Hub. This is typically a read-only SAS-protected blob URL with an expiration set to at least 4 hours.
                sizeInBytes: number, # Required. File size in number of bytes.
                hashes: Dictionary<string, string>, # Required. A JSON object containing the hash(es) of the file. At least SHA256 hash is required. This object can be thought of as a set of key-value pairs where the key is the hash algorithm, and the value is the hash of the file calculated using that algorithm.
              }, # Required. Import manifest metadata like source URL, file size/hashes, etc.
              friendlyName: string, # Optional. Friendly update name.
              files: [
                {
                  filename: string, # Required. Update file name as specified inside import manifest.
                  url: string, # Required. Azure Blob location from which the update file can be downloaded by Device Update for IoT Hub. This is typically a read-only SAS-protected blob URL with an expiration set to at least 4 hours.
                }
              ], # Optional. One or more update file properties like filename and source URL.
            }

Applies to