DeviceUpdateClient.StartImportUpdateAsync Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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.
}