You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/iot-hub-device-update/import-concepts.md
+6-5Lines changed: 6 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,9 +13,10 @@ ms.subservice: device-update
13
13
14
14
To deploy an update to devices using Azure Device Update for IoT Hub, you first import the update into the Device Update service, which stores the imported update and deploys it to devices. Along with the update payload, you submit a JSON import manifest file that defines important information about the update. This article describes the important concepts and sections in the import manifest JSON file.
15
15
16
-
## The import manifest file
16
+
<aname="import-manifest"></a>
17
+
## Import manifest file
17
18
18
-
You submit a import manifest JSON file along with the associated update files, such as a firmware update package, as part of the import process. The metadata defined in the import manifest is used both to ingest the update and at deployment time for functions like validating whether the update installed correctly.
19
+
You submit an import manifest JSON file along with the associated update files, such as a firmware update package, as part of the import process. The metadata defined in the import manifest is used both to ingest the update and at deployment time for functions like validating whether the update installed correctly.
19
20
20
21
The following JSON code shows an example import manifest file:
21
22
@@ -83,11 +84,11 @@ For example:
83
84
```
84
85
85
86
> [!NOTE]
86
-
> The `updateId` is used only by the Device Update service, and might be different from the software component identities on the devices.
87
+
> The `updateId` is used only by the Device Update service, and is different from the software component identities on the devices.
87
88
88
89
### Compatibility
89
90
90
-
The `compatibility` section defines the devices that can install an update by using one or more arbitrary key-value pairs. Only devices that report properties matching the `compatibility` values are eligible to deploy the update. You can make an update compatible with multiple device classes by including more than one set of device compatibility properties.
91
+
The `compatibility` section uses one or more arbitrary key-value pairs to define the devices that can install an update. Only devices that report properties matching the `compatibility` values are eligible to deploy the update. You can make an update compatible with multiple device classes by including more than one set of device compatibility properties.
91
92
92
93
The following example shows an update that can only be deployed to devices that report *Contoso* and *Toaster* as their device manufacturer and model.
93
94
@@ -152,7 +153,7 @@ An update and an import manifest `steps` section can contain more than one step,
152
153
}
153
154
```
154
155
155
-
An update and `steps` section can also contain `reference` steps that instruct the device agent to install a different update along with its own import manifest, establishing a parent and child update relationship. The following example update for a toaster contains two child update steps. An update can contain any combination of inline and reference steps.
156
+
A `steps` section can also contain `reference` steps that instruct the device agent to install a different update and corresponding import manifest, establishing a parent and child update relationship. The following example update for a toaster contains two child update steps. An update can contain any combination of inline and reference steps.
Copy file name to clipboardExpand all lines: articles/iot-hub-device-update/import-schema.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,15 +31,15 @@ The import manifest JSON schema is hosted at [SchemaStore.org](https://json.sche
31
31
|**manifestVersion**|`string`|Import manifest schema version. Must be 5.0.|Yes|
32
32
|**createdDateTime**|`string`|Date and time import manifest was created in ISO 8601 format, for example `"2020-10-02T22:18:04.9446744Z"`.|Yes|
33
33
34
-
### The updateId object
34
+
### Update object
35
35
36
36
The `updateID` object is a unique identifier for each update.
37
37
38
38
|Property|Type|Description|Required|
39
39
|---|---|---|---|
40
40
|**provider**|`string`|Entity who is creating or directly responsible for the update. It can be a company name.<br><br>Pattern: `^[a-zA-Z0-9.-]+$`<br>Maximum length: 64 characters|Yes|
41
41
|**name**|`string`|Identifier for a class of update. It can be a device class or model name.<br><br>Pattern: `^[a-zA-Z0-9.-]+$`<br>Maximum length: 64 characters|Yes|
42
-
|**version**|`string`|Two- to four-part dot-separated numerical version numbers. Each part must be a number between 0 and 2147483647 and leading zeroes will be dropped.<br><br>Pattern: `^\d+(?:\.\d+)+$`<br>Examples: `"1.0"`, `"2021.11.8"`|Yes|
42
+
|**version**|`string`|Two- to four-part dot-separated numerical version numbers. Each part must be a number between 0 and 2147483647, and leading zeroes are dropped.<br><br>Pattern: `^\d+(?:\.\d+)+$`<br>Examples: `"1.0"`, `"2021.11.8"`|Yes|
43
43
44
44
No other properties are allowed.
45
45
@@ -55,7 +55,7 @@ For example:
55
55
}
56
56
```
57
57
58
-
### The compatibility object
58
+
### Compatibility object
59
59
60
60
The `compatibility` object describes 1-5 properties of a device that this update is compatible with. Each property is a name-value pair of type string. The name must be 1-32 characters long and the value must be 1-64 characters long. You can't use the same exact set of compatibility properties with more than one update provider and name combination.
61
61
@@ -72,7 +72,7 @@ For example:
72
72
}
73
73
```
74
74
75
-
### The instructions object
75
+
### Instructions object
76
76
77
77
The `instructions` object provides the update installation instructions. The instructions object contains a list of `steps` to be performed. No other properties are allowed.
78
78
@@ -109,7 +109,7 @@ An `inline` step object is an installation instruction step that performs code e
109
109
|---|---|---|---|
110
110
|**type**|`string`|Instruction step type that performs code execution. Must be `inline`.|No|
111
111
|**description**|`string`|Optional instruction step description. Maximum length: 64 characters|No|
112
-
|**handler**|`string`|Identity of the handler on the device that can execute this step.<br>Pattern: `^\S+/\S+:\d{1,5}$`<br>Minimum length: 5 characters<br>Maximum length: 32 characters<br>Examples: `microsoft/script:1`, `microsoft/swupdate:1`, `microsoft/apt:1`|Yes|
112
+
|**handler**|`string`|Identity of the handler on the device that can execute this step.<br>Pattern: `^\S+/\S+:\d{1,5}$`<br>Minimum length: Five characters<br>Maximum length: 32 characters<br>Examples: `microsoft/script:1`, `microsoft/swupdate:1`, `microsoft/apt:1`|Yes|
113
113
|**files**|`string``[1-10]`| Names of update files defined as [file objects](#file-object) that the agent passes to the handler. Each element length must be 1-255 characters. |Yes|
114
114
|**handlerProperties**|`inlineStepHandlerProperties`|JSON objects that the agent passes to the handler as arguments.|No|
115
115
@@ -163,7 +163,7 @@ For example:
163
163
}
164
164
```
165
165
166
-
### The files object
166
+
### Files object
167
167
168
168
Each *file* object is an update payload file, such as a binary, firmware, or script file, that must be unique within an update.
169
169
@@ -263,6 +263,6 @@ For example:
263
263
264
264
## Related content
265
265
266
-
-[Import concepts and manifest](./import-concepts.md).
267
-
-[Prepare an update to import](create-update.md).
266
+
-[Import concepts and manifest](./import-concepts.md)
Copy file name to clipboardExpand all lines: articles/iot-hub-device-update/import-update.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,13 +20,13 @@ To deploy an update to devices using Azure Device Update for IoT Hub, you first
20
20
- Update files for your device, and an associated import manifest file created by following the instructions in [Prepare an update to import into Device Update](create-update.md).
21
21
## Import an update
22
22
23
-
This section shows how to import an update using either the Azure portal or the Azure CLI. You can also [import an update by using the Device Update APIs](#if-youre-importing-using-apis-instead) instead.
23
+
This section shows how to import an update using either the Azure portal or the Azure CLI. You can also [import an update by using the Device Update APIs](#import-using-the-device-update-apis) instead.
24
24
25
-
To import an update, you first upload the update files and import manifest into an Azure Storage container. Then, you import the update from Azure Storage into Device Update for IoT Hub, where it's stored to be deployed to devices.
25
+
To import an update, you first upload the update files and import manifest into an Azure Storage container. Then, you import the update from Azure Storage into Device Update for IoT Hub, which stores for deployment to devices.
26
26
27
27
# [Azure portal](#tab/portal)
28
28
29
-
1. On the [Azure portal](https://portal.azure.com) IoT hub page for your Device Update instance, select **Device Management** > **Updates** from the left navigation.
29
+
1. On the [Azure portal](https://portal.azure.com) IoT hub page for your Device Update instance, select **Device management** > **Updates** from the left navigation.
30
30
31
31
:::image type="content" source="media/import-update/import-updates-3-ppr.png" alt-text="Screenshot that shows Import updates." lightbox="media/import-update/import-updates-3-ppr.png":::
32
32
@@ -52,7 +52,7 @@ To import an update, you first upload the update files and import manifest into
52
52
53
53
:::image type="content" source="media/import-update/container-ppr.png" alt-text="Screenshot that shows select Upload." lightbox="media/import-update/container-ppr.png":::
54
54
55
-
1.Select the folder icon on the right side of the **Files** section under the **Upload blob** header. Use the file picker to navigate to the location of your update files and import manifest, select the files, and then select **Open**. You can use the Shift key to multiselect files.
55
+
1.On the **Upload blob** screen, select the folder icon next to the **Files**. Use the file picker to navigate to the location of your update files and import manifest, select the files, and then select **Open**. You can use the Shift key to multiselect files.
56
56
57
57
:::image type="content" source="media/import-update/container-picker-ppr.png" alt-text="Screenshot that shows selecting files to upload." lightbox="media/import-update/container-picker-ppr.png":::
58
58
@@ -148,13 +148,13 @@ az iot du update list \
148
148
149
149
---
150
150
151
-
## Use the Device Update APIs
151
+
## Import using the Device Update APIs
152
152
153
153
You can also import an update programmatically by using any of the following methods:
154
154
155
-
- The Device Update APIs in the Azure SDKs for [.NET](/dotnet/api/azure.iot.deviceupdate), [Java](/java/api/com.azure.iot.deviceupdate), [JavaScript](/javascript/api/@azure/iot-device-update) or [Python](/python/api/azure-mgmt-deviceupdate/azure.mgmt.deviceupdate)
156
-
- The Device Update [Import Update](/rest/api/deviceupdate/dataplane/updates/import-update) REST API
157
-
- Sample [PowerShell modules](https://github.com/Azure/iot-hub-device-update/tree/main/tools/AduCmdlets) (requires [PowerShell 5] or later for Linux, macOS, or Windows).
155
+
- The Device Update APIs in the Azure SDKs for [.NET](/dotnet/api/azure.iot.deviceupdate), [Java](/java/api/com.azure.iot.deviceupdate), [JavaScript](/javascript/api/@azure/iot-device-update), or [Python](/python/api/azure-mgmt-deviceupdate/azure.mgmt.deviceupdate).
156
+
- The Device Update [Import Update](/rest/api/deviceupdate/dataplane/updates/import-update) REST API.
157
+
- Sample [PowerShell modules](https://github.com/Azure/iot-hub-device-update/tree/main/tools/AduCmdlets) (requires [PowerShell 5](/powershell/scripting/install/installing-powershell) or later for Linux, macOS, or Windows).
158
158
159
159
> [!NOTE]
160
160
> See [Device Update user roles and access](device-update-control-access.md) for required API permission.
Copy file name to clipboardExpand all lines: articles/iot-hub-device-update/update-manifest.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,14 +12,14 @@ ms.subservice: device-update
12
12
13
13
# Azure Device Update for IoT Hub update manifest
14
14
15
-
This article describes how Azure Device Update for IoT Hub uses [IoT Plug and Play](./device-update-plug-and-play.md)to send *update manifest* data to devices during update deployment. The update manifest is a serialized JSON object string containing metadata about the update to install. The updatemanifest is cryptographically signed so the Device Update agent can verify its authenticity. For more information about how the update manifest is used to securely install content, see [Device Update security](./device-update-security.md).
15
+
This article describes the *update manifest* data that Azure Device Update for IoT Hub sends to devices during update deployment. The update manifest is a serialized JSON object string containing metadata about the update to install. Device Update uses [IoT Plug and Play](device-update-plug-and-play.md) to send the update manifest, and cryptographically signs it so that the Device Update agent can verify its authenticity. For more information about how the update manifest is used to securely install content, see [Device Update security](./device-update-security.md).
16
16
17
17
## Import manifest vs update manifest
18
18
19
-
The update manifest is different from the Device Update *import manifest*.
19
+
The update manifest is different from the Device Update *import manifest* file.
20
20
21
-
-Whoever creates the update for Device Update also creates the corresponding [import manifest](./import-concepts.md), which describes the contents of the update to import into Device Update.
22
-
- The Device Update service automatically generates the update manifest, using some of the same properties defined in the import manifest, to communicate information to the Device Update agent during the update process.
21
+
-The [import manifest](import-concepts.md), which describes the contents of the update to import into Device Update, is created and imported by whoever creates the corresponding update for Device Update.
22
+
- The update manifest is automatically generated by the Device Update service, using some of the same properties defined in the import manifest, to communicate information to the Device Update agent during the update process.
23
23
24
24
Each manifest type has its own schema and schema version. For more information about the import manifest schema, see [Device Update import manifest schema](import-schema.md).
25
25
@@ -71,7 +71,7 @@ The update manifest JSON schema version 4 is hosted at [SchemaStore.org](https:/
71
71
72
72
### Full vs mini update manifest
73
73
74
-
If an update manifest is too large to be communicated efficiently, Device Update sends it to the device in *detached* format, also known as a *mini update manifest*. A mini manifest contains metadata about the update manifest that Device Update agent needs to download the full update manifest and verify its authenticity.
74
+
If an update manifest is too large to be communicated efficiently, Device Update sends it to the device in *detached* format, also called a *mini update manifest*. A mini manifest contains metadata about the update manifest that the Device Update agent can use to download the full update manifest and verify its authenticity.
75
75
76
76
The following example shows a mini update manifest:
77
77
@@ -96,7 +96,7 @@ The following example shows a mini update manifest:
0 commit comments