diff --git a/custom-words.txt b/custom-words.txt index 932e722bef37..154af72714a1 100644 --- a/custom-words.txt +++ b/custom-words.txt @@ -586,6 +586,7 @@ deserializing destaging destinationshares deterministically +deviceclass deviceclasses devicecredentials devicegroups diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/deviceupdate.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/deviceupdate.json new file mode 100644 index 000000000000..d88189e2457f --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/deviceupdate.json @@ -0,0 +1,4480 @@ +{ + "swagger": "2.0", + "info": { + "title": "DeviceUpdateClient", + "description": "Device Update for IoT Hub is an Azure service that enables customers to publish update for their IoT devices to the cloud, and then deploy that update to their devices (approve updates to groups of devices managed and provisioned in IoT Hub). It leverages the proven security and reliability of the Windows Update platform, optimized for IoT devices. It works globally and knows when and how to update devices, enabling customers to focus on their business goals and let Device Update for IoT Hub handle the updates.", + "version": "2022-07-01-preview" + }, + "x-ms-parameterized-host": { + "hostTemplate": "{endpoint}", + "useSchemePrefix": true, + "parameters": [ + { + "$ref": "#/parameters/EndpointParameter" + } + ] + }, + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "https://api.adu.microsoft.com/.default" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "https://api.adu.microsoft.com/.default": "Default authorization scope." + } + } + }, + "paths": { + "/deviceUpdate/{instanceId}/updates": { + "get": { + "tags": [ + "Update management" + ], + "description": "Get a list of all updates that have been imported to Device Update for IoT Hub.", + "operationId": "DeviceUpdate_ListUpdates", + "x-ms-examples": { + "DeviceUpdate_ListUpdates": { + "$ref": "./examples/DeviceUpdate_ListUpdates.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "search", + "in": "query", + "required": false, + "type": "string", + "description": "Request updates matching a free-text search expression." + }, + { + "name": "filter", + "in": "query", + "required": false, + "type": "string", + "description": "Filter updates by its properties." + } + ], + "responses": { + "200": { + "description": "All imported updates, or empty list if there is none.", + "schema": { + "$ref": "#/definitions/UpdateList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-odata": "#/definitions/UpdateFilter", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deviceUpdate/{instanceId}/updates:import": { + "post": { + "tags": [ + "Update management" + ], + "operationId": "DeviceUpdate_ImportUpdate", + "x-ms-long-running-operation": true, + "x-ms-examples": { + "DeviceUpdate_ImportUpdate": { + "$ref": "./examples/DeviceUpdate_ImportUpdate.json" + } + }, + "description": "Import new update version. This is a long-running-operation; use Operation-Location response header value to check for operation status.", + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "updateToImport", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ImportUpdateInput" + }, + "description": "The update to be imported." + } + ], + "responses": { + "202": { + "description": "Accepted update import request; background operation location to track status is specified in Operation-Location response header.", + "headers": { + "Operation-Location": { + "type": "string", + "description": "Url to retrieve the import operation status." + } + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/updates/providers/{provider}/names/{name}/versions/{version}": { + "get": { + "tags": [ + "Update management" + ], + "description": "Get a specific update version.", + "operationId": "DeviceUpdate_GetUpdate", + "x-ms-examples": { + "DeviceUpdate_GetUpdate": { + "$ref": "./examples/DeviceUpdate_GetUpdate.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/UpdateProviderParameter" + }, + { + "$ref": "#/parameters/UpdateNameParameter" + }, + { + "$ref": "#/parameters/UpdateVersionParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + } + ], + "responses": { + "200": { + "description": "The requested update version.", + "schema": { + "$ref": "#/definitions/Update" + } + }, + "304": { + "description": "Not modified." + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "Update management" + ], + "description": "Delete a specific update version. This is a long-running-operation; use Operation-Location response header value to check for operation status.", + "operationId": "DeviceUpdate_DeleteUpdate", + "x-ms-long-running-operation": true, + "x-ms-examples": { + "DeviceUpdate_DeleteUpdate": { + "$ref": "./examples/DeviceUpdate_DeleteUpdate.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/UpdateProviderParameter" + }, + { + "$ref": "#/parameters/UpdateNameParameter" + }, + { + "$ref": "#/parameters/UpdateVersionParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "202": { + "description": "Accepted update deletion request; background operation location to track status is specified in Operation-Location response header.", + "headers": { + "Operation-Location": { + "type": "string", + "description": "Url to retrieve the operation status" + } + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/updates/providers": { + "get": { + "tags": [ + "Update management" + ], + "description": "Get a list of all update providers that have been imported to Device Update for IoT Hub.", + "operationId": "DeviceUpdate_ListProviders", + "x-ms-examples": { + "DeviceUpdate_ListProviders": { + "$ref": "./examples/DeviceUpdate_ListProviders.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "All imported update providers, or empty list if there is none.", + "schema": { + "$ref": "#/definitions/StringsList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deviceUpdate/{instanceId}/updates/providers/{provider}/names": { + "get": { + "tags": [ + "Update management" + ], + "description": "Get a list of all update names that match the specified provider.", + "operationId": "DeviceUpdate_ListNames", + "x-ms-examples": { + "DeviceUpdate_ListNames": { + "$ref": "./examples/DeviceUpdate_ListNames.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/UpdateProviderParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "All update names that match the specified provider, or empty list if there is none.", + "schema": { + "$ref": "#/definitions/StringsList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deviceUpdate/{instanceId}/updates/providers/{provider}/names/{name}/versions": { + "get": { + "tags": [ + "Update management" + ], + "description": "Get a list of all update versions that match the specified provider and name.", + "operationId": "DeviceUpdate_ListVersions", + "x-ms-examples": { + "DeviceUpdate_ListVersions": { + "$ref": "./examples/DeviceUpdate_ListVersions.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/UpdateProviderParameter" + }, + { + "$ref": "#/parameters/UpdateNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "filter", + "in": "query", + "required": false, + "type": "string", + "description": "Filter updates by its properties." + } + ], + "responses": { + "200": { + "description": "All update versions that match the specified provider and name, or empty list if there is none.", + "schema": { + "$ref": "#/definitions/StringsList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-odata": "#/definitions/UpdateFilter", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deviceUpdate/{instanceId}/updates/providers/{provider}/names/{name}/versions/{version}/files": { + "get": { + "tags": [ + "Update management" + ], + "description": "Get a list of all update file identifiers for the specified version.", + "operationId": "DeviceUpdate_ListFiles", + "x-ms-examples": { + "DeviceUpdate_ListFiles": { + "$ref": "./examples/DeviceUpdate_ListFiles.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/UpdateProviderParameter" + }, + { + "$ref": "#/parameters/UpdateNameParameter" + }, + { + "$ref": "#/parameters/UpdateVersionParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "All update file identifiers for the specified version.", + "schema": { + "$ref": "#/definitions/StringsList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deviceUpdate/{instanceId}/updates/providers/{provider}/names/{name}/versions/{version}/files/{fileId}": { + "get": { + "tags": [ + "Update management" + ], + "description": "Get a specific update file from the version.", + "operationId": "DeviceUpdate_GetFile", + "x-ms-examples": { + "DeviceUpdate_GetFile": { + "$ref": "./examples/DeviceUpdate_GetFile.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/UpdateProviderParameter" + }, + { + "$ref": "#/parameters/UpdateNameParameter" + }, + { + "$ref": "#/parameters/UpdateVersionParameter" + }, + { + "$ref": "#/parameters/FileIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + } + ], + "responses": { + "200": { + "description": "The requested file entity.", + "schema": { + "$ref": "#/definitions/UpdateFile" + } + }, + "304": { + "description": "Not modified." + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/updates/operations": { + "get": { + "tags": [ + "Update management" + ], + "operationId": "DeviceUpdate_ListOperations", + "description": "Get a list of all import update operations. Completed operations are kept for 7 days before auto-deleted. Delete operations are not returned by this API version.", + "x-ms-examples": { + "DeviceUpdate_ListOperations": { + "$ref": "./examples/DeviceUpdate_ListOperations.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "name": "filter", + "in": "query", + "required": false, + "type": "string", + "description": "Restricts the set of operations returned. Only one specific filter is supported: \"status eq 'NotStarted' or status eq 'Running'\"" + }, + { + "name": "top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "Specifies a non-negative integer n that limits the number of items returned from a collection. The service returns the number of available items up to but not greater than the specified value n." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Operation details.", + "schema": { + "$ref": "#/definitions/UpdateOperationsList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-odata": "#/definitions/OperationFilter", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deviceUpdate/{instanceId}/updates/operations/{operationId}": { + "get": { + "tags": [ + "Update management" + ], + "operationId": "DeviceUpdate_GetOperation", + "description": "Retrieve operation status.", + "x-ms-examples": { + "DeviceUpdate_GetOperation": { + "$ref": "./examples/DeviceUpdate_GetOperation.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/OperationIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + } + ], + "responses": { + "200": { + "description": "Operation status.", + "headers": { + "Retry-After": { + "type": "string", + "description": "Number of seconds to wait before checking the operation status again." + } + }, + "schema": { + "$ref": "#/definitions/UpdateOperation" + } + }, + "304": { + "description": "Not modified." + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/deviceClasses": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets a list of all device classes (unique combinations of device manufacturer and model) for all devices connected to Device Update for IoT Hub.", + "operationId": "DeviceManagement_ListDeviceClasses", + "x-ms-examples": { + "DeviceManagement_ListDeviceClasses": { + "$ref": "./examples/DeviceManagement_ListDeviceClasses.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "All device classes.", + "schema": { + "$ref": "#/definitions/DeviceClassesList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deviceUpdate/{instanceId}/management/deviceClasses/{deviceClassId}": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets the properties of a device class.", + "operationId": "DeviceManagement_GetDeviceClass", + "x-ms-examples": { + "DeviceManagement_GetDeviceClass": { + "$ref": "./examples/DeviceManagement_GetDeviceClass.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/DeviceClassIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The device class properties.", + "schema": { + "$ref": "#/definitions/DeviceClass" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "patch": { + "tags": [ + "Device and deployment management" + ], + "description": "Update device class details.", + "operationId": "DeviceManagement_UpdateDeviceClass", + "consumes": [ + "application/merge-patch+json" + ], + "x-ms-examples": { + "DeviceManagement_UpdateDeviceClass": { + "$ref": "./examples/DeviceManagement_UpdateDeviceClass.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/DeviceClassIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "deviceClassPatch", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PatchBody" + }, + "description": "The device class json merge patch body. Currently only supports patching friendlyName" + } + ], + "responses": { + "200": { + "description": "The updated device class subgroup details.", + "schema": { + "$ref": "#/definitions/DeviceClass" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "Device and deployment management" + ], + "description": "Deletes a device class.", + "operationId": "DeviceManagement_DeleteDeviceClass", + "x-ms-examples": { + "DeviceManagement_DeleteDeviceClass": { + "$ref": "./examples/DeviceManagement_DeleteDeviceClass.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/DeviceClassIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "204": { + "description": "No content." + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/deviceClasses/{deviceClassId}/installableUpdates": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets a list of installable updates for a device class.", + "operationId": "DeviceManagement_ListInstallableUpdatesForDeviceClass", + "x-ms-examples": { + "DeviceManagement_ListInstallableUpdatesForDeviceClass": { + "$ref": "./examples/DeviceManagement_ListInstallableUpdatesForDeviceClass.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/DeviceClassIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The installable update information for the device class. Returns empty list in case of no installable updates", + "schema": { + "$ref": "#/definitions/UpdateInfoList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deviceUpdate/{instanceId}/management/devices": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets a list of devices connected to Device Update for IoT Hub.", + "operationId": "DeviceManagement_ListDevices", + "x-ms-examples": { + "DeviceManagement_ListDevices": { + "$ref": "./examples/DeviceManagement_ListDevices.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "name": "filter", + "in": "query", + "required": false, + "type": "string", + "description": "Restricts the set of devices returned. You can filter on GroupId, DeviceClassId, or GroupId and DeploymentStatus." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "All devices connected to Device Update for IoT Hub.", + "schema": { + "$ref": "#/definitions/DevicesList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-odata": "#/definitions/DeviceFilter", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deviceUpdate/{instanceId}/management/devices:import": { + "post": { + "tags": [ + "Device and deployment management" + ], + "operationId": "DeviceManagement_ImportDevices", + "x-ms-long-running-operation": true, + "x-ms-examples": { + "DeviceManagement_ImportDevices": { + "$ref": "./examples/DeviceManagement_ImportDevices.json" + } + }, + "description": "Import existing devices from IoT Hub. This is a long-running-operation; use Operation-Location response header value to check for operation status.", + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "importType", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ImportType" + }, + "description": "The types of devices to import." + } + ], + "responses": { + "202": { + "description": "Accepted device import request; background operation location to track status is specified in Operation-Location response header.", + "headers": { + "Operation-Location": { + "type": "string", + "description": "Url to retrieve the device import operation status." + } + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/devices/{deviceId}": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets the device properties and latest deployment status for a device connected to Device Update for IoT Hub.", + "operationId": "DeviceManagement_GetDevice", + "x-ms-examples": { + "DeviceManagement_GetDevice": { + "$ref": "./examples/DeviceManagement_GetDevice.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/DeviceIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The device properties and latest deployment status.", + "schema": { + "$ref": "#/definitions/Device" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/devices/{deviceId}/modules/{moduleId}": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets the device module properties and latest deployment status for a device module connected to Device Update for IoT Hub.", + "operationId": "DeviceManagement_GetDeviceModule", + "x-ms-examples": { + "DeviceManagement_GetDevice": { + "$ref": "./examples/DeviceManagement_GetDeviceModule.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/DeviceIdParameter" + }, + { + "$ref": "#/parameters/ModuleIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The device properties and latest deployment status.", + "schema": { + "$ref": "#/definitions/Device" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/updateCompliance": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets the breakdown of how many devices are on their latest update, have new updates available, or are in progress receiving new updates.", + "operationId": "DeviceManagement_GetUpdateCompliance", + "x-ms-examples": { + "DeviceManagement_GetUpdateCompliance": { + "$ref": "./examples/DeviceManagement_GetUpdateCompliance.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The count of devices that have the latest update, have updates available, or are in progress receiving new updates.", + "schema": { + "$ref": "#/definitions/UpdateCompliance" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/groups": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets a list of all device groups. The $default group will always be returned first.", + "operationId": "DeviceManagement_ListGroups", + "x-ms-examples": { + "DeviceManagement_ListGroups": { + "$ref": "./examples/DeviceManagement_ListGroups.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "name": "orderby", + "in": "query", + "required": false, + "type": "string", + "description": "Orders the set of groups returned. You can order by any combination of groupId, device count, created date, subgroupsWithNewUpdatesAvailableCount, subgroupsWithUpdatesInProgressCount, or subgroupsOnLatestUpdateCount." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The device groups.", + "schema": { + "$ref": "#/definitions/GroupsList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-odata": "#/definitions/GroupOrderBy", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deviceUpdate/{instanceId}/management/groups/{groupId}": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets the device group properties.", + "operationId": "DeviceManagement_GetGroup", + "x-ms-examples": { + "DeviceManagement_GetGroup": { + "$ref": "./examples/DeviceManagement_GetGroup.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The device group properties.", + "schema": { + "$ref": "#/definitions/Group" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "Device and deployment management" + ], + "description": "Deletes a device group.", + "operationId": "DeviceManagement_DeleteGroup", + "x-ms-examples": { + "DeviceManagement_DeleteGroup": { + "$ref": "./examples/DeviceManagement_DeleteGroup.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "204": { + "description": "No content." + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/groups/{groupId}/updateCompliance": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Get device group update compliance information such as how many devices are on their latest update, how many need new updates, and how many are in progress on receiving a new update.", + "operationId": "DeviceManagement_GetGroupUpdateCompliance", + "x-ms-examples": { + "DeviceManagement_GetGroupUpdateCompliance": { + "$ref": "./examples/DeviceManagement_GetGroupUpdateCompliance.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The device group update compliance information.", + "schema": { + "$ref": "#/definitions/UpdateCompliance" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/groups/{groupId}/bestUpdates": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Get the best available updates for a device group and a count of how many devices need each update.", + "operationId": "DeviceManagement_ListBestUpdatesForGroup", + "x-ms-examples": { + "DeviceManagement_ListBestUpdatesForGroup": { + "$ref": "./examples/DeviceManagement_ListBestUpdatesForGroup.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "name": "filter", + "in": "query", + "required": false, + "type": "string", + "description": "Restricts the set of bestUpdates returned. You can filter on update Provider, Name and Version property." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The best available updates for a device group, the device class subgroup, and a count of how many devices need each update.", + "schema": { + "$ref": "#/definitions/DeviceClassSubgroupUpdatableDevicesList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-odata": "#/definitions/GroupBestUpdatesFilter", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deviceUpdate/{instanceId}/management/groups/{groupId}/deployments": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets a list of deployments for a device group.", + "operationId": "DeviceManagement_ListDeploymentsForGroup", + "x-ms-examples": { + "DeviceManagement_ListDeploymentsForGroup": { + "$ref": "./examples/DeviceManagement_ListDeploymentsForGroup.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "orderby", + "in": "query", + "required": false, + "type": "string", + "description": "Orders the set of deployments returned. You can order by start date." + } + ], + "responses": { + "200": { + "description": "All deployments for the group.", + "schema": { + "$ref": "#/definitions/DeploymentsList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-odata": "#/definitions/DeploymentOrderBy", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deviceUpdate/{instanceId}/management/groups/{groupId}/deployments/{deploymentId}": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets the deployment properties.", + "operationId": "DeviceManagement_GetDeployment", + "x-ms-examples": { + "DeviceManagement_GetDeployment": { + "$ref": "./examples/DeviceManagement_GetDeployment.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/DeploymentIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The deployment properties.", + "schema": { + "$ref": "#/definitions/Deployment" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "tags": [ + "Device and deployment management" + ], + "description": "Creates or updates a deployment.", + "operationId": "DeviceManagement_CreateOrUpdateDeployment", + "x-ms-examples": { + "DeviceManagement_CreateOrUpdateDeployment": { + "$ref": "./examples/DeviceManagement_CreateOrUpdateDeployment.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/DeploymentIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "deployment", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Deployment" + }, + "description": "The deployment properties." + } + ], + "responses": { + "200": { + "description": "The deployment properties.", + "schema": { + "$ref": "#/definitions/Deployment" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "Deployment management" + ], + "description": "Deletes a deployment.", + "operationId": "DeviceManagement_DeleteDeployment", + "x-ms-examples": { + "DeviceManagement_DeleteDeployment": { + "$ref": "./examples/DeviceManagement_DeleteDeployment.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/DeploymentIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "204": { + "description": "No content." + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/groups/{groupId}/deployments/{deploymentId}/status": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets the status of a deployment including a breakdown of how many devices in the deployment are in progress, completed, or failed.", + "operationId": "DeviceManagement_GetDeploymentStatus", + "x-ms-examples": { + "DeviceManagement_GetDeploymentStatus": { + "$ref": "./examples/DeviceManagement_GetDeploymentStatus.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/DeploymentIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The status of the deployment.", + "schema": { + "$ref": "#/definitions/DeploymentStatus" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Get the device class subgroups for the group.", + "operationId": "DeviceManagement_ListDeviceClassSubgroupsForGroup", + "x-ms-examples": { + "DeviceManagement_ListDeviceClassSubgroupsForGroup": { + "$ref": "./examples/DeviceManagement_ListDeviceClassSubgroupsForGroup.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "name": "filter", + "in": "query", + "required": false, + "type": "string", + "description": "Restricts the set of device class subgroups returned. You can filter on compat properties by name and value." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The device class subgroup details.", + "schema": { + "$ref": "#/definitions/DeviceClassSubgroupsList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-odata": "#/definitions/DeviceClassSubgroupFilter" + } + }, + "/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets device class subgroup details.", + "operationId": "DeviceManagement_GetDeviceClassSubgroupDetails", + "x-ms-examples": { + "DeviceManagement_GetGroupUpdateCompliance": { + "$ref": "./examples/DeviceManagement_GetDeviceClassSubgroupDetails.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/DeviceClassIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The device class subgroup details.", + "schema": { + "$ref": "#/definitions/DeviceClassSubgroup" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "Device and deployment management" + ], + "description": "Deletes a device class subgroup.", + "operationId": "DeviceManagement_DeleteDeviceClassSubgroup", + "x-ms-examples": { + "DeviceManagement_DeleteDeviceClassSubgroup": { + "$ref": "./examples/DeviceManagement_DeleteDeviceclassSubgroup.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/DeviceClassIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "204": { + "description": "No content." + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}/updateCompliance": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Get device class subgroup update compliance information such as how many devices are on their latest update, how many need new updates, and how many are in progress on receiving a new update.", + "operationId": "DeviceManagement_GetDeviceClassSubgroupUpdateCompliance", + "x-ms-examples": { + "DeviceManagement_GetDeviceClassSubgroupUpdateCompliance": { + "$ref": "./examples/DeviceManagement_GetDeviceClassSubgroupUpdateCompliance.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/DeviceClassIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The device class subgroup update compliance information.", + "schema": { + "$ref": "#/definitions/UpdateCompliance" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}/bestUpdates": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Get the best available update for a device class subgroup and a count of how many devices need this update.", + "operationId": "DeviceManagement_ListBestUpdatesForDeviceClassSubgroup", + "x-ms-examples": { + "DeviceManagement_ListBestUpdatesForDeviceClassSubgroup": { + "$ref": "./examples/DeviceManagement_ListBestUpdatesForDeviceClassSubgroup.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/DeviceClassIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The best available update for a device class subgroup and a count of how many devices need this update.", + "schema": { + "$ref": "#/definitions/DeviceClassSubgroupUpdatableDevices" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}/deployments": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets a list of deployments for a device class subgroup.", + "operationId": "DeviceManagement_ListDeploymentsForDeviceClassSubgroup", + "x-ms-examples": { + "DeviceManagement_ListDeploymentsForDeviceClassSubgroup": { + "$ref": "./examples/DeviceManagement_ListDeploymentsForDeviceClassSubgroup.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/DeviceClassIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "orderby", + "in": "query", + "required": false, + "type": "string", + "description": "Orders the set of deployments returned. You can order by start date." + } + ], + "responses": { + "200": { + "description": "All deployments for the device class subgroup.", + "schema": { + "$ref": "#/definitions/DeploymentsList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-odata": "#/definitions/DeploymentOrderBy", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}/deployments/{deploymentId}": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets the deployment properties.", + "operationId": "DeviceManagement_GetDeploymentForDeviceClassSubgroup", + "x-ms-examples": { + "DeviceManagement_GetDeploymentForDeviceClassSubgroup": { + "$ref": "./examples/DeviceManagement_GetDeploymentForDeviceclassSubgroup.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/DeviceClassIdParameter" + }, + { + "$ref": "#/parameters/DeploymentIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The deployment properties.", + "schema": { + "$ref": "#/definitions/Deployment" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "Deployment management" + ], + "description": "Deletes a device class subgroup deployment.", + "operationId": "DeviceManagement_DeleteDeviceClassSubgroupDeployment", + "x-ms-examples": { + "DeviceManagement_DeleteDeviceClassSubgroupDeployment": { + "$ref": "./examples/DeviceManagement_DeleteDeviceclassSubgroupDeployment.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/DeviceClassIdParameter" + }, + { + "$ref": "#/parameters/DeploymentIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "204": { + "description": "No content." + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}/deployments/{deploymentId}:cancel": { + "post": { + "tags": [ + "Device and deployment management" + ], + "description": "Stops a deployment.", + "operationId": "DeviceManagement_StopDeployment", + "x-ms-examples": { + "DeviceManagement_CancelOrRetryDeployment": { + "$ref": "./examples/DeviceManagement_StopDeployment.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/DeviceClassIdParameter" + }, + { + "$ref": "#/parameters/DeploymentIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The deployment properties.", + "schema": { + "$ref": "#/definitions/Deployment" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}/deployments/{deploymentId}:retry": { + "post": { + "tags": [ + "Device and deployment management" + ], + "description": "Retries a deployment with failed devices.", + "operationId": "DeviceManagement_RetryDeployment", + "x-ms-examples": { + "DeviceManagement_CancelOrRetryDeployment": { + "$ref": "./examples/DeviceManagement_RetryDeployment.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/DeviceClassIdParameter" + }, + { + "$ref": "#/parameters/DeploymentIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The deployment properties.", + "schema": { + "$ref": "#/definitions/Deployment" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}/deployments/{deploymentId}/status": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets the status of a deployment including a breakdown of how many devices in the deployment are in progress, completed, or failed.", + "operationId": "DeviceManagement_GetDeviceClassSubgroupDeploymentStatus", + "x-ms-examples": { + "DeviceManagement_GetDeviceClassSubgroupDeploymentStatus": { + "$ref": "./examples/DeviceManagement_GetDeviceClassSubgroupDeploymentStatus.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/DeviceClassIdParameter" + }, + { + "$ref": "#/parameters/DeploymentIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The status of the device class subgroup deployment.", + "schema": { + "$ref": "#/definitions/DeviceClassSubgroupDeploymentStatus" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}/deployments/{deploymentId}/devicestates": { + "get": { + "tags": [ + "Device and deployment management" + ], + "description": "Gets a list of devices in a deployment along with their state. Useful for getting a list of failed devices.", + "operationId": "DeviceManagement_ListDevicesForDeviceClassSubgroupDeployment", + "x-ms-examples": { + "DeviceManagement_ListDevicesForDeviceClassSubgroupDeployment": { + "$ref": "./examples/DeviceManagement_ListDevicesForDeviceClassSubgroupDeployment.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/GroupIdParameter" + }, + { + "$ref": "#/parameters/DeviceClassIdParameter" + }, + { + "$ref": "#/parameters/DeploymentIdParameter" + }, + { + "name": "filter", + "in": "query", + "required": false, + "type": "string", + "description": "Restricts the set of deployment device states returned. You can filter on deviceId and moduleId and/or deviceState." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The devices in the deployment along with their states.", + "schema": { + "$ref": "#/definitions/DeploymentDeviceStatesList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-odata": "#/definitions/DeploymentDeviceStatesFilter", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deviceUpdate/{instanceId}/management/operations/{operationId}": { + "get": { + "tags": [ + "Device and deployment management" + ], + "operationId": "DeviceManagement_GetOperation", + "description": "Retrieve operation status.", + "x-ms-examples": { + "DeviceManagement_GetOperation": { + "$ref": "./examples/DeviceManagement_GetOperation.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/OperationIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + } + ], + "responses": { + "200": { + "description": "Operation status.", + "headers": { + "Retry-After": { + "type": "string", + "description": "Number of seconds to wait before checking the operation status again." + } + }, + "schema": { + "$ref": "#/definitions/DeviceOperation" + } + }, + "304": { + "description": "Not modified." + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/operations": { + "get": { + "tags": [ + "Device and deployment management" + ], + "operationId": "DeviceManagement_ListOperations", + "description": "Get a list of all device import operations. Completed operations are kept for 7 days before auto-deleted.", + "x-ms-examples": { + "DeviceManagement_ListOperations": { + "$ref": "./examples/DeviceManagement_ListOperations.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "name": "filter", + "in": "query", + "required": false, + "type": "string", + "description": "Restricts the set of operations returned. Only one specific filter is supported: \"status eq 'NotStarted' or status eq 'Running'\"" + }, + { + "name": "top", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "Specifies a non-negative integer n that limits the number of items returned from a collection. The service returns the number of available items up to but not greater than the specified value n." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Operation details.", + "schema": { + "$ref": "#/definitions/DeviceOperationsList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-odata": "#/definitions/OperationFilter", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deviceUpdate/{instanceId}/management/deviceDiagnostics/logCollections/{operationId}": { + "put": { + "tags": [ + "Device and deployment management" + ], + "operationId": "DeviceManagement_CollectLogs", + "description": "Start the device diagnostics log collection operation on specified devices.", + "x-ms-examples": { + "DeviceManagement_CollectLogs": { + "$ref": "./examples/DeviceManagement_CollectLogs.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/OperationIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "logCollectionRequest", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/LogCollectionOperation" + }, + "description": "The deployment properties." + } + ], + "responses": { + "201": { + "description": "Operation created.", + "schema": { + "$ref": "#/definitions/LogCollectionOperation" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "get": { + "tags": [ + "Device and deployment management" + ], + "operationId": "DeviceManagement_GetLogCollectionOperation", + "description": "Get the device diagnostics log collection operation", + "x-ms-examples": { + "DeviceManagement_GetLogCollectionOperation": { + "$ref": "./examples/DeviceManagement_GetLogCollectionOperation.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/OperationIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Operation resource", + "schema": { + "$ref": "#/definitions/LogCollectionOperation" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/deviceDiagnostics/logCollections": { + "get": { + "tags": [ + "Device and deployment management" + ], + "operationId": "DeviceManagement_ListLogCollectionOperations", + "description": "Get all device diagnostics log collection operations", + "x-ms-examples": { + "DeviceManagement_ListLogCollectionOperations": { + "$ref": "./examples/DeviceManagement_ListLogCollectionOperations.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "List of all device diagnostics operations", + "schema": { + "$ref": "#/definitions/LogCollectionOperationList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deviceUpdate/{instanceId}/management/deviceDiagnostics/logCollections/{operationId}/detailedStatus": { + "get": { + "tags": [ + "Device and deployment management" + ], + "operationId": "DeviceManagement_GetLogCollectionOperationDetailedStatus", + "description": "Get device diagnostics log collection operation with detailed status", + "x-ms-examples": { + "DeviceManagement_GetLogCollectionOperationDetailedStatus": { + "$ref": "./examples/DeviceManagement_GetLogCollectionOperationDetailedStatus.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/OperationIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Device diagnostics operation with detailed status", + "schema": { + "$ref": "#/definitions/LogCollectionOperationDetailedStatus" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/deviceUpdate/{instanceId}/management/deviceDiagnostics/deviceHealth": { + "get": { + "tags": [ + "Device and deployment management" + ], + "operationId": "DeviceManagement_ListDeviceHealth", + "description": "Get list of device health", + "x-ms-examples": { + "DeviceManagement_ListDeviceHealth": { + "$ref": "./examples/DeviceManagement_ListDeviceHealth.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/InstanceIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "filter", + "in": "query", + "required": true, + "type": "string", + "description": "Filter list by specified properties." + } + ], + "responses": { + "200": { + "description": "Agent check response list", + "schema": { + "$ref": "#/definitions/DeviceHealthList" + } + }, + "default": { + "description": "Default response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-odata": "#/definitions/DeviceHealthFilter" + } + } + }, + "definitions": { + "ArrayOfStrings": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of strings." + }, + "StringsList": { + "description": "The list of strings with server paging support.", + "type": "object", + "properties": { + "value": { + "description": "The collection of pageable items.", + "type": "array", + "items": { + "type": "string" + } + }, + "nextLink": { + "description": "The link to the next page of items.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "ImportUpdateInput": { + "type": "array", + "items": { + "$ref": "#/definitions/ImportUpdateInputItem" + }, + "minItems": 1, + "maxItems": 11, + "description": "Import update input metadata." + }, + "ImportUpdateInputItem": { + "type": "object", + "properties": { + "importManifest": { + "$ref": "#/definitions/ImportManifestMetadata", + "description": "Import manifest metadata like source URL, file size/hashes, etc." + }, + "friendlyName": { + "type": "string", + "minLength": 1, + "maxLength": 512, + "description": "Friendly update name." + }, + "files": { + "type": "array", + "items": { + "$ref": "#/definitions/FileImportMetadata" + }, + "minItems": 1, + "maxItems": 5, + "description": "One or more update file properties like filename and source URL." + } + }, + "required": [ + "importManifest" + ], + "description": "Import update input item metadata." + }, + "ImportManifestMetadata": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "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": { + "type": "integer", + "description": "File size in number of bytes.", + "format": "int64" + }, + "hashes": { + "type": "object", + "additionalProperties": { + "type": "string", + "minItems": 1 + }, + "description": "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": [ + "url", + "sizeInBytes", + "hashes" + ], + "description": "Metadata describing the import manifest, a document which describes the files and other metadata about an update version." + }, + "FileImportMetadata": { + "type": "object", + "properties": { + "filename": { + "type": "string", + "description": "Update file name as specified inside import manifest." + }, + "url": { + "type": "string", + "description": "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." + } + }, + "required": [ + "filename", + "url" + ], + "description": "Metadata describing an update file." + }, + "Update": { + "type": "object", + "properties": { + "updateId": { + "$ref": "#/definitions/UpdateId", + "description": "Update identity." + }, + "description": { + "type": "string", + "description": "Update description specified by creator.", + "minLength": 1, + "maxLength": 512 + }, + "friendlyName": { + "type": "string", + "description": "Friendly update name specified by importer.", + "minLength": 1, + "maxLength": 512 + }, + "isDeployable": { + "type": "boolean", + "description": "Whether the update can be deployed to a device on its own.", + "default": true + }, + "updateType": { + "type": "string", + "description": "Update type. Deprecated in latest import manifest schema." + }, + "installedCriteria": { + "type": "string", + "description": "String interpreted by Device Update client to determine if the update is installed on the device. Deprecated in latest import manifest schema." + }, + "compatibility": { + "type": "array", + "items": { + "$ref": "#/definitions/Compatibility" + }, + "minItems": 1, + "maxItems": 10, + "description": "List of update compatibility information." + }, + "instructions": { + "$ref": "#/definitions/Instructions", + "description": "Update install instructions." + }, + "referencedBy": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateId" + }, + "minItems": 1, + "description": "List of update identities that reference this update." + }, + "scanResult": { + "type": "string", + "description": "Update aggregate scan result (calculated from payload file scan results)." + }, + "manifestVersion": { + "type": "string", + "description": "Schema version of manifest used to import the update." + }, + "importedDateTime": { + "type": "string", + "description": "Date and time in UTC when the update was imported.", + "format": "date-time" + }, + "createdDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time in UTC when the update was created." + }, + "etag": { + "type": "string", + "description": "Update ETag." + } + }, + "required": [ + "updateId", + "compatibility", + "manifestVersion", + "importedDateTime", + "createdDateTime" + ], + "description": "Update metadata." + }, + "UpdateList": { + "description": "The list of updates.", + "type": "object", + "properties": { + "value": { + "description": "The collection of pageable items.", + "type": "array", + "items": { + "$ref": "#/definitions/Update" + } + }, + "nextLink": { + "description": "The link to the next page of items.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "UpdateId": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "description": "Update provider." + }, + "name": { + "type": "string", + "description": "Update name." + }, + "version": { + "type": "string", + "description": "Update version." + } + }, + "required": [ + "provider", + "name", + "version" + ], + "description": "Update identifier." + }, + "UpdateInfo": { + "type": "object", + "properties": { + "updateId": { + "$ref": "#/definitions/UpdateId", + "description": "Update identifier." + }, + "description": { + "type": "string", + "description": "Update description.", + "readOnly": true + }, + "friendlyName": { + "type": "string", + "description": "Friendly update name.", + "readOnly": true + } + }, + "required": [ + "updateId" + ], + "description": "Update information." + }, + "UpdateInfoList": { + "type": "object", + "properties": { + "value": { + "description": "The collection of pageable items.", + "type": "array", + "items": { + "$ref": "#/definitions/UpdateInfo" + } + }, + "nextLink": { + "description": "The link to the next page of items.", + "type": "string" + } + }, + "required": [ + "value" + ], + "description": "List of update information." + }, + "Compatibility": { + "type": "object", + "additionalProperties": { + "type": "string", + "minItems": 1, + "maxItems": 5 + }, + "description": "Key-value pairs representing update compatibility information." + }, + "Instructions": { + "type": "object", + "properties": { + "steps": { + "description": "Collection of installation steps.", + "type": "array", + "items": { + "$ref": "#/definitions/Step" + }, + "minItems": 1, + "maxItems": 10 + } + }, + "required": [ + "steps" + ] + }, + "Step": { + "description": "Update install instruction step.", + "type": "object", + "properties": { + "type": { + "description": "Step type.", + "type": "string", + "enum": [ + "inline", + "reference" + ], + "default": "inline", + "x-ms-enum": { + "name": "StepType", + "modelAsString": true, + "values": [ + { + "value": "Inline", + "name": "Inline", + "description": "Step type that performs code execution." + }, + { + "value": "Reference", + "name": "Reference", + "description": "Step type that installs another update." + } + ] + } + }, + "description": { + "description": "Step description.", + "type": "string", + "minLength": 1, + "maxLength": 64 + }, + "handler": { + "description": "Identity of handler that will execute this step. Required if step type is inline.", + "type": "string", + "minLength": 1, + "maxLength": 32 + }, + "handlerProperties": { + "description": "Parameters to be passed to handler during execution.", + "type": "object" + }, + "files": { + "description": "Collection of file names to be passed to handler during execution. Required if step type is inline.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "maxItems": 5 + }, + "updateId": { + "description": "Referenced child update identity. Required if step type is reference.", + "$ref": "#/definitions/UpdateId" + } + }, + "minProperties": 2 + }, + "UpdateFileBase": { + "type": "object", + "properties": { + "fileName": { + "type": "string", + "description": "File name." + }, + "sizeInBytes": { + "type": "integer", + "description": "File size in number of bytes.", + "format": "int64" + }, + "hashes": { + "type": "object", + "additionalProperties": { + "type": "string", + "minItems": 1 + }, + "description": "Mapping of hashing algorithm to base64 encoded hash values." + }, + "mimeType": { + "type": "string", + "description": "File MIME type." + }, + "scanResult": { + "type": "string", + "description": "Anti-malware scan result." + }, + "scanDetails": { + "type": "string", + "description": "Anti-malware scan details." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "minItems": 0 + }, + "description": "Optional file properties (not consumed by service but pass-through to device)." + } + }, + "required": [ + "fileName", + "sizeInBytes", + "hashes" + ], + "description": "Update file basic metadata." + }, + "UpdateFile": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/UpdateFileBase" + } + ], + "properties": { + "fileId": { + "type": "string", + "description": "File identity, generated by server at import time." + }, + "relatedFiles": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateFileBase" + }, + "description": "Optional related files metadata used together DownloadHandler metadata to download payload file." + }, + "downloadHandler": { + "$ref": "#/definitions/UpdateFileDownloadHandler", + "description": "Optional download handler for utilizing related files to download payload file." + }, + "etag": { + "type": "string", + "description": "File ETag." + } + }, + "required": [ + "fileId" + ], + "description": "Update file metadata." + }, + "UpdateFileDownloadHandler": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Download handler identifier." + } + }, + "required": [ + "id" + ], + "description": "Download handler for utilizing related files to download payload file." + }, + "UpdateOperation": { + "type": "object", + "properties": { + "operationId": { + "type": "string", + "description": "Operation Id." + }, + "status": { + "$ref": "#/definitions/OperationStatus", + "description": "Operation status." + }, + "update": { + "$ref": "#/definitions/UpdateInfo", + "description": "The update being imported or deleted. For import, this property will only be populated after import manifest is processed successfully." + }, + "resourceLocation": { + "type": "string", + "description": "Location of the imported update when operation is successful." + }, + "error": { + "$ref": "#/definitions/Error", + "description": "Operation error encountered, if any." + }, + "traceId": { + "type": "string", + "description": "Operation correlation identity that can used by Microsoft Support for troubleshooting." + }, + "lastActionDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time in UTC when the operation status was last updated." + }, + "createdDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time in UTC when the operation was created." + }, + "etag": { + "type": "string", + "description": "Operation ETag." + } + }, + "required": [ + "operationId", + "status", + "lastActionDateTime", + "createdDateTime" + ], + "description": "Operation metadata." + }, + "DeviceOperation": { + "type": "object", + "properties": { + "operationId": { + "type": "string", + "description": "Operation Id." + }, + "status": { + "$ref": "#/definitions/OperationStatus", + "description": "Operation status." + }, + "error": { + "$ref": "#/definitions/Error", + "description": "Operation error encountered, if any." + }, + "traceId": { + "type": "string", + "description": "Operation correlation identity that can used by Microsoft Support for troubleshooting." + }, + "lastActionDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time in UTC when the operation status was last updated." + }, + "createdDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time in UTC when the operation was created." + }, + "etag": { + "type": "string", + "description": "Operation ETag." + } + }, + "required": [ + "operationId", + "status", + "lastActionDateTime", + "createdDateTime" + ], + "description": "Operation metadata." + }, + "OperationStatus": { + "type": "string", + "enum": [ + "NotStarted", + "Running", + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "OperationStatus", + "modelAsString": true, + "values": [ + { + "value": "NotStarted", + "name": "NotStarted", + "description": "Background operation created but not started yet." + }, + { + "value": "Running", + "name": "Running", + "description": "Background operation is currently running." + }, + { + "value": "Succeeded", + "name": "Succeeded", + "description": "Background operation finished with success." + }, + { + "value": "Failed", + "name": "Failed", + "description": "Background operation finished with failure." + } + ] + }, + "description": "Operation status." + }, + "OperationStatusWithoutUndefinedOption": { + "type": "string", + "enum": [ + "NotStarted", + "Running", + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "OperationStatus", + "modelAsString": true, + "values": [ + { + "value": "NotStarted", + "name": "NotStarted", + "description": "Background operation created but not started yet." + }, + { + "value": "Running", + "name": "Running", + "description": "Background operation is currently running." + }, + { + "value": "Succeeded", + "name": "Succeeded", + "description": "Background operation finished with success." + }, + { + "value": "Failed", + "name": "Failed", + "description": "Background operation finished with failure." + } + ] + }, + "description": "Operation status." + }, + "ErrorResponse": { + "description": "Common error response.", + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error", + "description": "The error details." + } + }, + "required": [ + "error" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Server defined error code." + }, + "message": { + "type": "string", + "description": "A human-readable representation of the error." + }, + "target": { + "type": "string", + "description": "The target of the error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/Error" + }, + "description": "An array of errors that led to the reported error." + }, + "innererror": { + "$ref": "#/definitions/InnerError", + "description": "An object containing more specific information than the current object about the error." + }, + "occurredDateTime": { + "type": "string", + "description": "Date and time in UTC when the error occurred.", + "format": "date-time" + } + }, + "required": [ + "code", + "message" + ], + "description": "Error details." + }, + "InnerError": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "A more specific error code than what was provided by the containing error." + }, + "message": { + "type": "string", + "description": "A human-readable representation of the error." + }, + "errorDetail": { + "type": "string", + "description": "The internal error or exception message." + }, + "innerError": { + "$ref": "#/definitions/InnerError", + "description": "An object containing more specific information than the current object about the error." + } + }, + "required": [ + "code" + ], + "description": "An object containing more specific information than the current object about the error." + }, + "UpdateOperationsList": { + "description": "The list of operations with server paging support.", + "type": "object", + "properties": { + "value": { + "description": "The collection of pageable items.", + "type": "array", + "items": { + "$ref": "#/definitions/UpdateOperation" + } + }, + "nextLink": { + "description": "The link to the next page of items.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "DeviceOperationsList": { + "description": "The list of device operations with server paging support.", + "type": "object", + "properties": { + "value": { + "description": "The collection of pageable items.", + "type": "array", + "items": { + "$ref": "#/definitions/DeviceOperation" + } + }, + "nextLink": { + "description": "The link to the next page of items.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "DeviceClass": { + "type": "object", + "properties": { + "deviceClassId": { + "type": "string", + "description": "The device class identifier." + }, + "friendlyName": { + "type": "string", + "description": "The device class friendly name. This can be updated by callers after the device class has been automatically created." + }, + "deviceClassProperties": { + "$ref": "#/definitions/DeviceClassProperties", + "description": "The device class properties that are used to calculate the device class Id" + }, + "bestCompatibleUpdate": { + "$ref": "#/definitions/UpdateInfo", + "description": "Update that is best compatible with this device class." + } + }, + "required": [ + "deviceClassId", + "deviceClassProperties" + ], + "description": "Device class metadata." + }, + "DeviceClassProperties": { + "type": "object", + "description": "The device class properties that are used to calculate the device class Id", + "properties": { + "contractModel": { + "$ref": "#/definitions/ContractModel", + "description": "The Device Update agent contract model." + }, + "compatProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The compat properties of the device class. This object can be thought of as a set of key-value pairs where the key is the name of the compatibility property and the value is the value of the compatibility property. There will always be at least 1 compat property" + } + }, + "required": [ + "compatProperties" + ] + }, + "ContractModel": { + "type": "object", + "description": "The Device Update agent contract model.", + "properties": { + "id": { + "type": "string", + "description": "The Device Update agent contract model Id of the device class. This is also used to calculate the device class Id." + }, + "name": { + "type": "string", + "description": "The Device Update agent contract model name of the device class. Intended to be a more readable form of the contract model Id." + } + }, + "required": [ + "id", + "name" + ] + }, + "DeviceClassesList": { + "description": "The list of device classes.", + "type": "object", + "properties": { + "value": { + "description": "The collection of pageable items.", + "type": "array", + "items": { + "$ref": "#/definitions/DeviceClass" + } + }, + "nextLink": { + "description": "The link to the next page of items.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "PatchBody": { + "type": "object", + "properties": { + "friendlyName": { + "type": "string", + "description": "The device class friendly name." + } + }, + "required": [ + "friendlyName" + ], + "description": "Device Class JSON Merge Patch request body" + }, + "Device": { + "type": "object", + "properties": { + "deviceId": { + "type": "string", + "description": "Device identity." + }, + "moduleId": { + "type": "string", + "description": "Device module identity." + }, + "deviceClassId": { + "type": "string", + "description": "Device class identity." + }, + "groupId": { + "type": "string", + "description": "Device group identity." + }, + "lastAttemptedUpdate": { + "$ref": "#/definitions/UpdateInfo", + "description": "The update that device last attempted to install." + }, + "deploymentStatus": { + "$ref": "#/definitions/DeviceDeploymentState", + "description": "State of the device in its last deployment." + }, + "installedUpdate": { + "$ref": "#/definitions/UpdateInfo", + "description": "Currently installed update on device." + }, + "onLatestUpdate": { + "type": "boolean", + "description": "Boolean flag indicating whether the latest update is installed on the device" + }, + "lastDeploymentId": { + "type": "string", + "description": "The deployment identifier for the last deployment to the device" + }, + "lastInstallResult": { + "$ref": "#/definitions/InstallResult", + "description": "Last install result." + } + }, + "required": [ + "deviceId", + "deviceClassId", + "onLatestUpdate" + ], + "description": "Device metadata." + }, + "DeviceDeploymentState": { + "type": "string", + "enum": [ + "Succeeded", + "InProgress", + "Canceled", + "Failed" + ], + "x-ms-enum": { + "name": "DeviceDeploymentState", + "modelAsString": true, + "values": [ + { + "value": "Succeeded", + "name": "Succeeded", + "description": "Deployment has completed with success." + }, + { + "value": "InProgress", + "name": "InProgress", + "description": "Deployment is in progress." + }, + { + "value": "Canceled", + "name": "Canceled", + "description": "Deployment was canceled." + }, + { + "value": "Failed", + "name": "Failed", + "description": "Deployment has completed with failure." + } + ] + }, + "description": "Deployment state." + }, + "DeviceFilter": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "description": "Device group identity." + }, + "deviceClassId": { + "type": "string", + "description": "Device class identity." + }, + "deploymentStatus": { + "$ref": "#/definitions/DeviceDeploymentState", + "description": "State of the device in its last deployment." + } + }, + "description": "Device filter." + }, + "DevicesList": { + "description": "The list of devices.", + "type": "object", + "properties": { + "value": { + "description": "The collection of pageable items.", + "type": "array", + "items": { + "$ref": "#/definitions/Device" + } + }, + "nextLink": { + "description": "The link to the next page of items.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "UpdateCompliance": { + "type": "object", + "properties": { + "totalDeviceCount": { + "type": "integer", + "description": "Total number of devices." + }, + "onLatestUpdateDeviceCount": { + "type": "integer", + "description": "Number of devices on the latest update." + }, + "newUpdatesAvailableDeviceCount": { + "type": "integer", + "description": "Number of devices with a newer update available." + }, + "updatesInProgressDeviceCount": { + "type": "integer", + "description": "Number of devices with update in-progress." + } + }, + "required": [ + "totalDeviceCount", + "onLatestUpdateDeviceCount", + "newUpdatesAvailableDeviceCount", + "updatesInProgressDeviceCount" + ], + "description": "Update compliance information." + }, + "DeviceClassSubgroupUpdatableDevices": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "description": "The group Id" + }, + "deviceClassId": { + "type": "string", + "description": "The device class subgroup's device class Id" + }, + "update": { + "$ref": "#/definitions/UpdateInfo", + "description": "Update information." + }, + "deviceCount": { + "type": "integer", + "description": "Total number of devices for which the update is applicable." + } + }, + "required": [ + "groupId", + "deviceClassId", + "update", + "deviceCount" + ], + "description": "Device class subgroup, update information, and the number of devices for which the update is applicable." + }, + "DeviceClassSubgroupUpdatableDevicesList": { + "description": "The list of updatable devices for a device class subgroup.", + "type": "object", + "properties": { + "value": { + "description": "The collection of pageable items.", + "type": "array", + "items": { + "$ref": "#/definitions/DeviceClassSubgroupUpdatableDevices" + } + }, + "nextLink": { + "description": "The link to the next page of items.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "Group": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "description": "Group identity." + }, + "groupType": { + "$ref": "#/definitions/GroupType", + "description": "Group type." + }, + "createdDateTime": { + "type": "string", + "description": "Date and time when the update was created." + }, + "deviceCount": { + "type": "integer", + "description": "The number of devices in the group." + }, + "subgroupsWithNewUpdatesAvailableCount": { + "type": "integer", + "description": "The count of subgroups with new updates available." + }, + "subgroupsWithUpdatesInProgressCount": { + "type": "integer", + "description": "The count of subgroups with updates in progress." + }, + "subgroupsWithOnLatestUpdateCount": { + "type": "integer", + "description": "The count of subgroups with devices on the latest update." + }, + "deployments": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The active deployment Ids for the group" + } + }, + "required": [ + "groupId", + "groupType", + "createdDateTime" + ], + "description": "Group details." + }, + "GroupType": { + "type": "string", + "enum": [ + "IoTHubTag", + "DefaultNoTag" + ], + "x-ms-enum": { + "name": "GroupType", + "modelAsString": true, + "values": [ + { + "value": "IoTHubTag", + "name": "IoTHubTag", + "description": "IoT Hub tag based group, all devices in the group share an ADUGroup tag value." + }, + { + "value": "DefaultNoTag", + "name": "DefaultNoTag", + "description": "Default group for untagged devices." + } + ] + }, + "description": "Supported group types." + }, + "GroupsList": { + "description": "The list of groups.", + "type": "object", + "properties": { + "value": { + "description": "The collection of pageable items.", + "type": "array", + "items": { + "$ref": "#/definitions/Group" + } + }, + "nextLink": { + "description": "The link to the next page of items.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "DeviceClassSubgroup": { + "type": "object", + "properties": { + "deviceClassId": { + "type": "string", + "description": "Device class subgroup identity." + }, + "groupId": { + "type": "string", + "description": "Group identity." + }, + "createdDateTime": { + "type": "string", + "description": "Date and time when the deviceclass subgroup was created." + }, + "deviceCount": { + "type": "integer", + "description": "The number of devices in the deviceclass subgroup." + }, + "deploymentId": { + "type": "string", + "description": "The active deployment Id for the deviceclass subgroup." + } + }, + "required": [ + "deviceClassId", + "groupId", + "createdDateTime" + ], + "description": "Device class subgroup details." + }, + "DeviceClassSubgroupsList": { + "description": "The list of device class subgroups within a group.", + "type": "object", + "properties": { + "value": { + "description": "The collection of pageable items.", + "type": "array", + "items": { + "$ref": "#/definitions/DeviceClassSubgroup" + } + }, + "nextLink": { + "description": "The link to the next page of items.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "Deployment": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "The deployment identifier." + }, + "startDateTime": { + "type": "string", + "description": "The deployment start datetime.", + "format": "date-time" + }, + "update": { + "$ref": "#/definitions/UpdateInfo", + "description": "Update information." + }, + "groupId": { + "type": "string", + "description": "The group identity" + }, + "deviceClassSubgroups": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The device class subgroups for the deployment." + }, + "isCanceled": { + "type": "boolean", + "description": "Boolean flag indicating whether the deployment was canceled." + }, + "isRetried": { + "type": "boolean", + "description": "Boolean flag indicating whether the deployment has been retried." + }, + "rollbackPolicy": { + "$ref": "#/definitions/CloudInitiatedRollbackPolicy", + "description": "The rollback policy for the deployment." + }, + "isCloudInitiatedRollback": { + "type": "boolean", + "description": "Boolean flag indicating whether the deployment is a rollback deployment." + } + }, + "required": [ + "deploymentId", + "startDateTime", + "update", + "groupId" + ], + "description": "Deployment metadata." + }, + "DeploymentsList": { + "description": "The list of deployments.", + "type": "object", + "properties": { + "value": { + "description": "The collection of pageable items.", + "type": "array", + "items": { + "$ref": "#/definitions/Deployment" + } + }, + "nextLink": { + "description": "The link to the next page of items.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "DeploymentStatus": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "description": "The group identity" + }, + "deploymentState": { + "$ref": "#/definitions/DeploymentState", + "description": "The state of the deployment." + }, + "error": { + "$ref": "#/definitions/Error", + "description": "The error details of the Failed state. This is not present if the deployment state is not Failed." + }, + "subgroupStatus": { + "type": "array", + "description": "The collection of device class subgroup status objects", + "items": { + "$ref": "#/definitions/DeviceClassSubgroupDeploymentStatus" + } + } + }, + "required": [ + "groupId", + "deploymentState", + "subgroupStatus" + ], + "description": "Deployment status metadata." + }, + "DeploymentState": { + "type": "string", + "enum": [ + "Active", + "ActiveWithSubgroupFailures", + "Failed", + "Inactive", + "Canceled" + ], + "x-ms-enum": { + "name": "DeploymentState", + "modelAsString": true, + "values": [ + { + "value": "Active", + "name": "Active", + "description": "The deployment can be sent to devices targeted in the deployment." + }, + { + "value": "ActiveWithSubgroupFailures", + "name": "ActiveWithSubgroupFailures", + "description": "The deployment can be sent to some devices targeted in the deployment but at least 1 subgroup is in a failed state." + }, + { + "value": "Failed", + "name": "Failed", + "description": "The deployment will not be sent to any devices. Consult error for more details about what failed." + }, + { + "value": "Inactive", + "name": "Inactive", + "description": "A newer deployment for this group has been created and no devices in the group will receive this deployment." + }, + { + "value": "Canceled", + "name": "Canceled", + "description": "The deployment has been canceled and no devices will receive it." + } + ] + }, + "description": "Deployment state." + }, + "DeviceClassSubgroupDeploymentStatus": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "description": "The group identity" + }, + "deviceClassId": { + "type": "string", + "description": "The device class subgroup identity" + }, + "deploymentState": { + "$ref": "#/definitions/DeviceClassSubgroupDeploymentState", + "description": "The state of the subgroup deployment." + }, + "error": { + "$ref": "#/definitions/Error", + "description": "The error details of the Failed state. This is not present if the deployment state is not Failed." + }, + "totalDevices": { + "type": "integer", + "description": "The total number of devices in the deployment.", + "format": "int32" + }, + "devicesInProgressCount": { + "type": "integer", + "description": "The number of devices that are currently in deployment.", + "format": "int32" + }, + "devicesCompletedFailedCount": { + "type": "integer", + "description": "The number of devices that have completed deployment with a failure.", + "format": "int32" + }, + "devicesCompletedSucceededCount": { + "type": "integer", + "description": "The number of devices which have successfully completed deployment.", + "format": "int32" + }, + "devicesCanceledCount": { + "type": "integer", + "description": "The number of devices which have had their deployment canceled.", + "format": "int32" + } + }, + "required": [ + "groupId", + "deviceClassId", + "deploymentState" + ], + "description": "Device class subgroup deployment status metadata." + }, + "DeviceClassSubgroupDeploymentState": { + "type": "string", + "enum": [ + "Active", + "Failed", + "Inactive", + "Canceled" + ], + "x-ms-enum": { + "name": "DeviceClassSubgroupDeploymentState", + "modelAsString": true, + "values": [ + { + "value": "Active", + "name": "Active", + "description": "The subgroup deployment can be sent to devices targeted in the deployment." + }, + { + "value": "Failed", + "name": "Failed", + "description": "The subgroup deployment failed and will not be sent to any devices." + }, + { + "value": "Inactive", + "name": "Inactive", + "description": "A newer deployment for this subgroup has been created and no devices in the subgroup will receive this deployment." + }, + { + "value": "Canceled", + "name": "Canceled", + "description": "The subgroup deployment has been canceled and no devices will receive it." + } + ] + }, + "description": "Device class subgroup deployment state." + }, + "DeploymentDeviceState": { + "type": "object", + "properties": { + "deviceId": { + "type": "string", + "description": "Device identity." + }, + "moduleId": { + "type": "string", + "description": "Device module identity." + }, + "retryCount": { + "type": "integer", + "description": "The number of times this deployment has been retried on this device.", + "format": "int32" + }, + "movedOnToNewDeployment": { + "type": "boolean", + "description": "Boolean flag indicating whether this device is in a newer deployment and can no longer retry this deployment." + }, + "deviceState": { + "$ref": "#/definitions/DeviceDeploymentState", + "description": "Deployment device state." + } + }, + "required": [ + "deviceId", + "retryCount", + "movedOnToNewDeployment", + "deviceState" + ], + "description": "Deployment device status." + }, + "DeploymentDeviceStatesList": { + "description": "The list of deployment device states.", + "type": "object", + "properties": { + "value": { + "description": "The collection of pageable items.", + "type": "array", + "items": { + "$ref": "#/definitions/DeploymentDeviceState" + } + }, + "nextLink": { + "description": "The link to the next page of items.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "CloudInitiatedRollbackPolicyFailure": { + "type": "object", + "properties": { + "devicesFailedPercentage": { + "type": "integer", + "description": "Percentage of devices that failed." + }, + "devicesFailedCount": { + "type": "integer", + "description": "Number of devices that failed." + } + }, + "required": [ + "devicesFailedPercentage", + "devicesFailedCount" + ], + "description": "Failure conditions to initiate rollback policy" + }, + "CloudInitiatedRollbackPolicy": { + "type": "object", + "properties": { + "update": { + "$ref": "#/definitions/UpdateInfo", + "description": "Update to rollback to." + }, + "failure": { + "$ref": "#/definitions/CloudInitiatedRollbackPolicyFailure", + "description": "Failure conditions to initiate rollback policy." + } + }, + "required": [ + "update", + "failure" + ], + "description": "Rollback policy for deployment" + }, + "UpdateFilter": { + "type": "object", + "properties": { + "isDeployable": { + "type": "boolean", + "description": "Update isDeployable property." + } + }, + "description": "Update filter." + }, + "OperationFilterStatus": { + "type": "string", + "enum": [ + "Running", + "NotStarted" + ], + "x-ms-enum": { + "name": "OperationFilterStatus", + "modelAsString": true + }, + "description": "Operation status filter." + }, + "OperationFilter": { + "type": "object", + "properties": { + "status": { + "$ref": "#/definitions/OperationFilterStatus", + "description": "Operation status filter." + } + }, + "description": "Operation status filter." + }, + "GroupOrderBy": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "description": "The group Id." + }, + "deviceCount": { + "type": "string", + "description": "The group device count." + }, + "createdDate": { + "type": "string", + "description": "The group created date." + }, + "subgroupsWithNewUpdatesAvailableCount": { + "type": "string", + "description": "The number of subgroups with new updates available" + }, + "subgroupsWithUpdatesInProgressCount": { + "type": "string", + "description": "The number of subgroups with updates in progress" + }, + "subgroupsOnLatestUpdateCount": { + "type": "string", + "description": "The number of subgroups with devices on the latest update" + } + }, + "description": "Groups order by." + }, + "DeploymentOrderBy": { + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "description": "The deployment start datetime.", + "format": "date-time" + } + }, + "description": "Deployment order by." + }, + "DeploymentDeviceStatesFilter": { + "type": "object", + "properties": { + "deviceId": { + "type": "string", + "description": "Device Identifier." + }, + "moduleId": { + "type": "string", + "description": "Device module Identifier." + }, + "deviceState": { + "$ref": "#/definitions/DeviceState", + "description": "The deployment device state." + } + }, + "description": "Deployment device state filter." + }, + "DeviceState": { + "type": "string", + "description": "The deployment device state.", + "enum": [ + "NotStarted", + "Incompatible", + "AlreadyInDeployment", + "Canceled", + "InProgress", + "Failed", + "Succeeded" + ], + "x-ms-enum": { + "name": "DeviceState", + "modelAsString": true, + "values": [ + { + "value": "NotStarted", + "name": "NotStarted", + "description": "Not started (or uninitialized)" + }, + { + "value": "Incompatible", + "name": "Incompatible", + "description": "Deployment incompatible for this device." + }, + { + "value": "AlreadyInDeployment", + "name": "AlreadyInDeployment", + "description": "Another Deployment is underway for this device." + }, + { + "value": "Canceled", + "name": "Canceled", + "description": "Deployment has been canceled for this device." + }, + { + "value": "InProgress", + "name": "InProgress", + "description": "Deployment underway." + }, + { + "value": "Failed", + "name": "Failed", + "description": "Deployment failed." + }, + { + "value": "Succeeded", + "name": "Succeeded", + "description": "Deployment completed successfully." + } + ] + } + }, + "ImportType": { + "type": "string", + "description": "The device import type.", + "enum": [ + "Devices", + "Modules", + "All" + ], + "x-ms-enum": { + "name": "ImportType", + "modelAsString": true, + "values": [ + { + "value": "Devices", + "name": "Devices", + "description": "Import only devices but not modules." + }, + { + "value": "Modules", + "name": "Modules", + "description": "Import only modules but not devices." + }, + { + "value": "All", + "name": "All", + "description": "Import both devices and modules." + } + ] + } + }, + "StepResult": { + "type": "object", + "properties": { + "update": { + "$ref": "#/definitions/UpdateInfo", + "description": "The update that this step installs if it is of reference type." + }, + "description": { + "type": "string", + "description": "Step description." + }, + "resultCode": { + "type": "integer", + "description": "Install result code." + }, + "extendedResultCode": { + "type": "integer", + "description": "Install extended result code" + }, + "resultDetails": { + "type": "string", + "description": "A string containing further details about the install result" + } + }, + "required": [ + "resultCode", + "extendedResultCode" + ], + "description": "The step result under an update." + }, + "InstallResult": { + "type": "object", + "properties": { + "resultCode": { + "type": "integer", + "description": "Install result code." + }, + "extendedResultCode": { + "type": "integer", + "description": "Install extended result code" + }, + "resultDetails": { + "type": "string", + "description": "A string containing further details about the install result" + }, + "stepResults": { + "type": "array", + "items": { + "$ref": "#/definitions/StepResult", + "description": "Step results" + }, + "description": "Array of step results" + } + }, + "required": [ + "resultCode", + "extendedResultCode" + ], + "description": "The install result of an update and any step results under it." + }, + "DeviceUpdateAgentId": { + "type": "object", + "properties": { + "deviceId": { + "type": "string", + "description": "Device Id" + }, + "moduleId": { + "type": "string", + "description": "Module Id" + } + }, + "required": [ + "deviceId" + ], + "description": "Device Update agent id" + }, + "LogCollectionOperation": { + "type": "object", + "properties": { + "operationId": { + "type": "string", + "description": "The diagnostics operation id." + }, + "deviceList": { + "type": "array", + "description": "Array of Device Update agent ids", + "items": { + "$ref": "#/definitions/DeviceUpdateAgentId" + } + }, + "description": { + "type": "string", + "maxLength": 512, + "description": "Description of the diagnostics operation." + }, + "createdDateTime": { + "type": "string", + "description": "The timestamp when the operation was created.", + "readOnly": true + }, + "lastActionDateTime": { + "type": "string", + "description": "A timestamp for when the current state was entered.", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/OperationStatusWithoutUndefinedOption", + "description": "Operation status.", + "readOnly": true + } + }, + "required": [ + "deviceList" + ], + "description": "Diagnostics request body" + }, + "LogCollectionOperationDetailedStatus": { + "type": "object", + "properties": { + "operationId": { + "type": "string", + "description": "The device diagnostics operation id." + }, + "createdDateTime": { + "type": "string", + "description": "The timestamp when the operation was created." + }, + "lastActionDateTime": { + "type": "string", + "description": "A timestamp for when the current state was entered." + }, + "status": { + "$ref": "#/definitions/OperationStatusWithoutUndefinedOption", + "description": "Operation status." + }, + "deviceStatus": { + "type": "array", + "items": { + "$ref": "#/definitions/LogCollectionOperationDeviceStatus" + }, + "description": "Status of the devices in the operation" + }, + "description": { + "type": "string", + "description": "Device diagnostics operation description." + } + }, + "description": "Device diagnostics operation detailed status" + }, + "LogCollectionOperationList": { + "description": "The list of diagnostics operations with server paging support.", + "type": "object", + "properties": { + "value": { + "description": "The collection of pageable items.", + "type": "array", + "items": { + "$ref": "#/definitions/LogCollectionOperation" + } + }, + "nextLink": { + "description": "The link to the next page of items.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "LogCollectionOperationDetailedStatusList": { + "description": "The list of diagnostics operations with detailed status, with server paging support.", + "type": "object", + "properties": { + "value": { + "description": "The collection of pageable items.", + "type": "array", + "items": { + "$ref": "#/definitions/LogCollectionOperationDetailedStatus" + } + }, + "nextLink": { + "description": "The link to the next page of items.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "LogCollectionOperationDeviceStatus": { + "type": "object", + "properties": { + "deviceId": { + "type": "string", + "description": "Device id" + }, + "moduleId": { + "type": "string", + "description": "Module id." + }, + "status": { + "$ref": "#/definitions/OperationStatusWithoutUndefinedOption", + "description": "Log upload status" + }, + "resultCode": { + "type": "string", + "description": "Log upload result code" + }, + "extendedResultCode": { + "type": "string", + "description": "Log upload extended result code" + }, + "logLocation": { + "type": "string", + "description": "Log upload location" + } + }, + "required": [ + "deviceId", + "status" + ], + "description": "Diagnostics operation device status" + }, + "HealthCheckResult": { + "type": "string", + "enum": [ + "success", + "userError" + ], + "x-ms-enum": { + "name": "HealthCheckResult", + "modelAsString": true, + "values": [ + { + "value": "success", + "name": "success", + "description": "Health check succeeded" + }, + { + "value": "userError", + "name": "userError", + "description": "Health check failed due to user error" + } + ] + }, + "description": "Health check result" + }, + "DeviceHealth": { + "description": "Device Health", + "type": "object", + "properties": { + "deviceId": { + "type": "string", + "description": "Device id" + }, + "moduleId": { + "type": "string", + "description": "Module id" + }, + "state": { + "$ref": "#/definitions/DeviceHealthState", + "description": "Aggregate device health state" + }, + "digitalTwinModelId": { + "type": "string", + "description": "Digital twin model Id" + }, + "healthChecks": { + "type": "array", + "description": "Array of health checks and their results", + "items": { + "$ref": "#/definitions/HealthCheck" + } + } + }, + "required": [ + "deviceId", + "state", + "healthChecks" + ] + }, + "DeviceHealthState": { + "description": "Device health states", + "type": "string", + "enum": [ + "healthy", + "unhealthy" + ], + "x-ms-enum": { + "name": "DeviceHealthState", + "modelAsString": true, + "values": [ + { + "value": "healthy", + "name": "healthy", + "description": "Agent is healthy" + }, + { + "value": "unhealthy", + "name": "unhealthy", + "description": "Agent is in an unhealthy state" + } + ] + } + }, + "DeviceHealthList": { + "description": "Array of Device Health, with server paging support.", + "type": "object", + "properties": { + "value": { + "description": "The collection of pageable items.", + "type": "array", + "items": { + "$ref": "#/definitions/DeviceHealth" + } + }, + "nextLink": { + "description": "The link to the next page of items.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "HealthCheck": { + "description": "Health check", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Health check name" + }, + "result": { + "$ref": "#/definitions/HealthCheckResult", + "description": "Health check result" + } + } + }, + "DeviceHealthFilter": { + "type": "object", + "properties": { + "state": { + "$ref": "#/definitions/DeviceHealthState", + "description": "Device health state" + }, + "deviceId": { + "type": "string", + "description": "Device Id" + }, + "moduleId": { + "type": "string", + "description": "Module Id" + } + }, + "description": "Device health filter." + } + }, + "parameters": { + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Version of the API to be used with the client request." + }, + "EndpointParameter": { + "name": "endpoint", + "in": "path", + "required": true, + "format": "uri", + "type": "string", + "x-ms-skip-url-encoding": true, + "description": "Account endpoint.", + "x-ms-parameter-location": "client", + "x-ms-parameter-grouping": { + "name": "account-options" + } + }, + "InstanceIdParameter": { + "name": "instanceId", + "in": "path", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true, + "description": "Account instance identifier.", + "x-ms-parameter-location": "client", + "x-ms-parameter-grouping": { + "name": "account-options" + } + }, + "UpdateProviderParameter": { + "name": "provider", + "in": "path", + "required": true, + "type": "string", + "description": "Update provider.", + "x-ms-parameter-location": "method" + }, + "UpdateNameParameter": { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Update name.", + "x-ms-parameter-location": "method" + }, + "UpdateVersionParameter": { + "name": "version", + "in": "path", + "required": true, + "type": "string", + "description": "Update version.", + "x-ms-parameter-location": "method" + }, + "FileIdParameter": { + "name": "fileId", + "in": "path", + "required": true, + "type": "string", + "description": "File identifier.", + "x-ms-parameter-location": "method" + }, + "IfNoneMatchParameter": { + "name": "If-None-Match", + "in": "header", + "required": false, + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "type": "string", + "x-ms-parameter-grouping": { + "name": "access-condition" + }, + "x-ms-parameter-location": "method" + }, + "OperationIdParameter": { + "name": "operationId", + "in": "path", + "description": "Operation identifier.", + "minLength": 1, + "maxLength": 256, + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "DeviceIdParameter": { + "name": "deviceId", + "in": "path", + "description": "Device identifier in Azure IoT Hub.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "ModuleIdParameter": { + "name": "moduleId", + "in": "path", + "description": "Device module identifier in Azure IoT Hub.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "DeviceClassIdParameter": { + "name": "deviceClassId", + "in": "path", + "description": "Device class identifier.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "TagNameParameter": { + "name": "tagName", + "in": "path", + "description": "Tag name.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "GroupIdParameter": { + "name": "groupId", + "in": "path", + "description": "Group identity.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "DeploymentIdParameter": { + "name": "deploymentId", + "in": "path", + "description": "Deployment identifier.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "DevicesImportActionParameter": { + "name": "action", + "in": "query", + "required": true, + "description": "Devices action.", + "type": "string", + "enum": [ + "import" + ], + "x-ms-enum": { + "name": "ImportAction", + "modelAsString": true, + "values": [ + { + "value": "import", + "name": "import", + "description": "Import action." + } + ] + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_CollectLogs.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_CollectLogs.json new file mode 100644 index 000000000000..7389293127c6 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_CollectLogs.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "operationId": "SampleOperationId", + "api-version": "2022-07-01-preview", + "logCollectionRequest": { + "deviceList": [ + { + "deviceId": "DeviceA" + }, + { + "deviceId": "DeviceB", + "moduleId": "ModuleB" + } + ], + "description": "Example diagnostics operation" + } + }, + "responses": { + "201": { + "body": { + "operationId": "SampleOperationId", + "deviceList": [ + { + "deviceId": "DeviceA" + }, + { + "deviceId": "DeviceB", + "moduleId": "ModuleB" + } + ], + "description": "Example diagnostics operation", + "createdDateTime": "2021-09-30T02:23:41.59Z", + "lastActionDateTime": "2021-09-30T02:23:41.59Z", + "status": "NotStarted" + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_CreateOrUpdateDeployment.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_CreateOrUpdateDeployment.json new file mode 100644 index 000000000000..54fe446ab962 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_CreateOrUpdateDeployment.json @@ -0,0 +1,67 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "TestGroup", + "deploymentId": "deploymentId", + "api-version": "2022-07-01-preview", + "deployment": { + "deploymentId": "deploymentId", + "groupId": "TestGroup", + "startDateTime": "2020-04-22T12:12:12.0000000+00:00", + "update": { + "updateId": { + "provider": "provider", + "name": "name", + "version": "1.2.3.4" + } + }, + "rollbackPolicy": { + "update": { + "updateId": { + "provider": "provider", + "name": "name", + "version": "1.2.3.3" + } + }, + "failure": { + "devicesFailedPercentage": 50, + "devicesFailedCount": 100 + } + } + } + }, + "responses": { + "200": { + "body": { + "deploymentId": "deploymentId", + "groupId": "TestGroup", + "deviceClassSubgroups": [ + "deviceClassId1", + "deviceClassId2" + ], + "startDateTime": "2020-04-22T12:12:12.0000000+00:00", + "update": { + "updateId": { + "provider": "provider", + "name": "name", + "version": "1.2.3.4" + } + }, + "rollbackPolicy": { + "update": { + "updateId": { + "provider": "provider", + "name": "name", + "version": "1.2.3.3" + } + }, + "failure": { + "devicesFailedPercentage": 50, + "devicesFailedCount": 100 + } + } + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_DeleteDeployment.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_DeleteDeployment.json new file mode 100644 index 000000000000..b241e3732c44 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_DeleteDeployment.json @@ -0,0 +1,12 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "TestGroup", + "deploymentId": "deploymentId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "204": {} + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_DeleteDeviceClass.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_DeleteDeviceClass.json new file mode 100644 index 000000000000..2fdc24f9061f --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_DeleteDeviceClass.json @@ -0,0 +1,11 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "deviceClassId": "deviceClass1", + "api-version": "2022-07-01-preview" + }, + "responses": { + "204": {} + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_DeleteDeviceclassSubgroup.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_DeleteDeviceclassSubgroup.json new file mode 100644 index 000000000000..7fa86d1552fa --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_DeleteDeviceclassSubgroup.json @@ -0,0 +1,12 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "group1", + "deviceClassId": "deviceClassId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "204": {} + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_DeleteDeviceclassSubgroupDeployment.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_DeleteDeviceclassSubgroupDeployment.json new file mode 100644 index 000000000000..0fb41f89b4f8 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_DeleteDeviceclassSubgroupDeployment.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "TestGroup", + "deviceClassId": "deviceClassId", + "deploymentId": "deploymentId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "204": {} + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_DeleteGroup.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_DeleteGroup.json new file mode 100644 index 000000000000..b8353ddf369a --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_DeleteGroup.json @@ -0,0 +1,11 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "group1", + "api-version": "2022-07-01-preview" + }, + "responses": { + "204": {} + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeployment.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeployment.json new file mode 100644 index 000000000000..95b4d1547674 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeployment.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "TestGroup", + "deploymentId": "deploymentId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "deploymentId": "deploymentId", + "startDateTime": "2020-04-22T12:12:12.0000000+00:00", + "groupId": "TestGroup", + "deviceClassSubgroups": [ + "deviceClassId1", + "deviceClassId2" + ], + "update": { + "updateId": { + "provider": "provider", + "name": "name", + "version": "1.2.3.4" + }, + "description": "This update fixes a security issue.", + "friendlyName": "Contoso Toaster v1.2.3.4" + }, + "rollbackPolicy": { + "update": { + "updateId": { + "provider": "provider", + "name": "name", + "version": "1.2.3.3" + }, + "description": "This update fixes a security issue.", + "friendlyName": "Contoso Toaster v1.2.3.3" + }, + "failure": { + "devicesFailedPercentage": 50, + "devicesFailedCount": 100 + } + }, + "isCanceled": false, + "isRetried": false, + "isCloudInitiatedRollback": false + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeploymentForDeviceclassSubgroup.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeploymentForDeviceclassSubgroup.json new file mode 100644 index 000000000000..7f015a12bb6e --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeploymentForDeviceclassSubgroup.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "TestGroup", + "deviceClassId": "deviceClassId", + "deploymentId": "deploymentId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "deploymentId": "deploymentId", + "startDateTime": "2020-04-22T12:12:12.0000000+00:00", + "groupId": "TestGroup", + "update": { + "updateId": { + "provider": "provider", + "name": "name", + "version": "1.2.3.4" + } + }, + "rollbackPolicy": { + "update": { + "updateId": { + "provider": "provider", + "name": "name", + "version": "1.2.3.3" + } + }, + "failure": { + "devicesFailedPercentage": 50, + "devicesFailedCount": 100 + } + }, + "isCanceled": false, + "isRetried": false, + "isCloudInitiatedRollback": false + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeploymentStatus.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeploymentStatus.json new file mode 100644 index 000000000000..a586df1d1b2b --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeploymentStatus.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "TestGroup", + "deploymentId": "deploymentId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "groupId": "TestGroup", + "deploymentState": "ActiveWithSubgroupFailures", + "subgroupStatus": [ + { + "groupId": "TestGroup", + "deviceClassId": "deviceClassId1", + "deploymentState": "Active", + "totalDevices": 1, + "devicesInProgressCount": 0, + "devicesCompletedFailedCount": 0, + "devicesCompletedSucceededCount": 1, + "devicesCanceledCount": 0 + }, + { + "groupId": "TestGroup", + "deviceClassId": "deviceClassId2", + "deploymentState": "Failed", + "error": { + "code": "ADMConfigurationLimitExceeded", + "message": "The subgroup deployment failed to be created due to hitting the ADM configuration limit" + }, + "totalDevices": 2, + "devicesInProgressCount": 0, + "devicesCompletedFailedCount": 1, + "devicesCompletedSucceededCount": 1, + "devicesCanceledCount": 0 + } + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDevice.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDevice.json new file mode 100644 index 000000000000..92a5d91b8642 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDevice.json @@ -0,0 +1,67 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "deviceId": "deviceId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "deviceId": "device1", + "deviceClassId": "deviceClass1", + "lastAttemptedUpdate": { + "updateId": { + "provider": "provider1", + "name": "name1", + "version": "2.0.0.0" + }, + "description": "Fixes performance issue." + }, + "deploymentStatus": "Failed", + "installedUpdate": { + "updateId": { + "provider": "provider1", + "name": "name1", + "version": "1.0.0.0" + }, + "description": "Fixes security issue." + }, + "onLatestUpdate": false, + "lastInstallResult": { + "resultCode": 200, + "extendedResultCode": 0, + "resultDetails": "", + "stepResults": [ + { + "update": { + "updateId": { + "provider": "microsoft", + "name": "peripheralcamera", + "version": "1.0" + }, + "friendlyName": "Microsoft Peripheral Camera 1.0" + }, + "resultCode": 200, + "extendedResultCode": 0, + "resultDetails": "" + }, + { + "update": { + "updateId": { + "provider": "microsoft", + "name": "peripheralspeaker", + "version": "1.0" + }, + "friendlyName": "Microsoft Peripheral Speaker 1.0" + }, + "resultCode": 200, + "extendedResultCode": 0, + "resultDetails": "" + } + ] + } + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeviceClass.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeviceClass.json new file mode 100644 index 000000000000..3bb93c5cbabb --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeviceClass.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "deviceClassId": "deviceClassId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "deviceClassId": "deviceClassId", + "friendlyName": "DeviceClass2020-04-22T12:12:12.0000000+00:00", + "deviceClassProperties": { + "contractModel": { + "id": "dtmi:azure:iot:deviceUpdateContractModel;2", + "name": "Device Update Model V2" + }, + "compatProperties": { + "manufacturer": "manufacturer1", + "model": "model1" + } + }, + "bestCompatibleUpdate": { + "updateId": { + "provider": "provider", + "name": "name", + "version": "1.0.0.0" + }, + "friendlyName": "July 2022 Update" + } + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeviceClassSubgroupDeploymentStatus.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeviceClassSubgroupDeploymentStatus.json new file mode 100644 index 000000000000..d75a65959007 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeviceClassSubgroupDeploymentStatus.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "TestGroup", + "deviceClassId": "deviceClassId", + "deploymentId": "deploymentId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "groupId": "TestGroup", + "deviceClassId": "deviceClassId", + "deploymentState": "Active", + "totalDevices": 1, + "devicesInProgressCount": 0, + "devicesCompletedFailedCount": 0, + "devicesCompletedSucceededCount": 1, + "devicesCanceledCount": 0 + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeviceClassSubgroupDetails.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeviceClassSubgroupDetails.json new file mode 100644 index 000000000000..6c62beeea2a1 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeviceClassSubgroupDetails.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "group1", + "deviceClassId": "deviceClassId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "deviceClassId": "DeviceClassId", + "groupId": "group1", + "createdDateTime": "2020-07-01T12:13:14.0000000Z", + "deviceCount": 149, + "deploymentId": "MyDeployment" + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeviceClassSubgroupUpdateCompliance.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeviceClassSubgroupUpdateCompliance.json new file mode 100644 index 000000000000..efb72c0a5d5a --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeviceClassSubgroupUpdateCompliance.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "group1", + "deviceClassId": "deviceClassId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "totalDeviceCount": 302204, + "onLatestUpdateDeviceCount": 256873, + "newUpdatesAvailableDeviceCount": 36265, + "updatesInProgressDeviceCount": 9066 + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeviceModule.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeviceModule.json new file mode 100644 index 000000000000..2e3df7a74cd0 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetDeviceModule.json @@ -0,0 +1,65 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "deviceId": "deviceId", + "moduleId": "moduleId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "deviceId": "device1", + "moduleId": "module1", + "deviceClassId": "deviceClassId1", + "lastAttemptedUpdate": { + "updateId": { + "provider": "provider1", + "name": "name1", + "version": "2.0.0.0" + } + }, + "deploymentStatus": "Failed", + "installedUpdate": { + "updateId": { + "provider": "provider1", + "name": "name1", + "version": "1.0.0.0" + } + }, + "onLatestUpdate": false, + "lastInstallResult": { + "resultCode": 200, + "extendedResultCode": 0, + "resultDetails": "", + "stepResults": [ + { + "update": { + "updateId": { + "provider": "microsoft", + "name": "peripheralcamera", + "version": "1.0" + } + }, + "resultCode": 200, + "extendedResultCode": 0, + "resultDetails": "" + }, + { + "update": { + "updateId": { + "provider": "microsoft", + "name": "peripheralspeaker", + "version": "1.0" + } + }, + "resultCode": 200, + "extendedResultCode": 0, + "resultDetails": "" + } + ] + } + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetGroup.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetGroup.json new file mode 100644 index 000000000000..f548cb056d6f --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetGroup.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "group1", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "groupId": "MyGroup", + "groupType": "IoTHubTag", + "createdDateTime": "2020-07-01T12:13:14.0000000Z", + "deviceCount": 149, + "subgroupsWithNewUpdatesAvailableCount": 3, + "subgroupsWithUpdatesInProgressCount": 0, + "subgroupsWithOnLatestUpdateCount": 1 + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetGroupUpdateCompliance.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetGroupUpdateCompliance.json new file mode 100644 index 000000000000..2b917d48c7c8 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetGroupUpdateCompliance.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "group1", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "totalDeviceCount": 302204, + "onLatestUpdateDeviceCount": 256873, + "newUpdatesAvailableDeviceCount": 36265, + "updatesInProgressDeviceCount": 9066 + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetLogCollectionOperation.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetLogCollectionOperation.json new file mode 100644 index 000000000000..5c5a7c2c5916 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetLogCollectionOperation.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "operationId": "SampleOperationId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "operationId": "SampleOperationId", + "deviceList": [ + { + "deviceId": "DeviceA" + }, + { + "deviceId": "DeviceB", + "moduleId": "ModuleB" + } + ], + "description": "Example diagnostics operation", + "createdDateTime": "2021-09-30T02:23:41.59Z", + "lastActionDateTime": "2021-09-30T02:23:41.59Z", + "status": "NotStarted" + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetLogCollectionOperationDetailedStatus.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetLogCollectionOperationDetailedStatus.json new file mode 100644 index 000000000000..0dade7596e89 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetLogCollectionOperationDetailedStatus.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "operationId": "SampleOperationId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "operationId": "SampleOperationId", + "createdDateTime": "2021-09-30T02:23:41.59Z", + "lastActionDateTime": "2021-09-30T02:23:41.59Z", + "status": "NotStarted", + "deviceStatus": [ + { + "deviceId": "DeviceA", + "status": "NotStarted", + "resultCode": "200", + "extendedResultCode": "0", + "logLocation": "/storageAccount/deviceUpdateInstanceName/DeviceA/SampleOperationId" + }, + { + "deviceId": "DeviceB", + "moduleId": "ModuleB", + "status": "NotStarted", + "resultCode": "200", + "extendedResultCode": "0", + "logLocation": "/storageAccount/deviceUpdateInstanceName/DeviceB/ModuleB/SampleOperationId" + } + ], + "description": "operation description" + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetOperation.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetOperation.json new file mode 100644 index 000000000000..8534f3827c74 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetOperation.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "operationId": "e4491c54-916f-443d-9094-bcca546ace2f", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "operationId": "e4491c54-916f-443d-9094-bcca546ace2f", + "status": "Succeeded", + "traceId": "2b881ef9deaf5d45b0a716ca5b4145ec", + "createdDateTime": "2020-04-22T21:00:53.2548897+00:00", + "lastActionDateTime": "2020-04-22T21:01:43.9401420+00:00", + "etag": "\"a0f7b6f2-3f6c-4eb6-8a59-2f5411c23888\"" + } + }, + "304": {} + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetUpdateCompliance.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetUpdateCompliance.json new file mode 100644 index 000000000000..462c322dcd74 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_GetUpdateCompliance.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "totalDeviceCount": 302204, + "onLatestUpdateDeviceCount": 256873, + "newUpdatesAvailableDeviceCount": 36265, + "updatesInProgressDeviceCount": 9066 + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ImportDevices.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ImportDevices.json new file mode 100644 index 000000000000..7bd52e18b312 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ImportDevices.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "api-version": "2022-07-01-preview", + "importType": "All" + }, + "responses": { + "202": { + "headers": { + "Operation-Location": "/deviceUpdate/instanceId/devices/operations/e4491c54-916f-443d-9094-bcca546ace2f?api-version=2022-07-01-preview" + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListBestUpdatesForDeviceClassSubgroup.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListBestUpdatesForDeviceClassSubgroup.json new file mode 100644 index 000000000000..11aaa19e58e7 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListBestUpdatesForDeviceClassSubgroup.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "group1", + "deviceClassId": "deviceClassId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "groupId": "group1", + "deviceClassId": "deviceClassId", + "update": { + "updateId": { + "provider": "provider", + "name": "name", + "version": "1.0.0.0" + }, + "friendlyName": "July 2022 Update" + }, + "deviceCount": 100 + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListBestUpdatesForGroup.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListBestUpdatesForGroup.json new file mode 100644 index 000000000000..0f8e8c4b6ed1 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListBestUpdatesForGroup.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "group1", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "groupId": "group1", + "deviceClassId": "deviceClassId1", + "update": { + "updateId": { + "provider": "provider1", + "name": "name1", + "version": "1.0.0.0" + } + }, + "deviceCount": 100 + }, + { + "groupId": "group1", + "deviceClassId": "deviceClassId2", + "update": { + "updateId": { + "provider": "provider2", + "name": "name2", + "version": "2.0.0.0" + } + }, + "deviceCount": 200 + } + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDeploymentsForDeviceClassSubgroup.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDeploymentsForDeviceClassSubgroup.json new file mode 100644 index 000000000000..f4ec479fc9fb --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDeploymentsForDeviceClassSubgroup.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "TestGroup", + "deviceClassId": "deviceClassId1", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "deploymentId": "deploymentId1", + "groupId": "TestGroup", + "startDateTime": "2020-07-01T12:13:14Z", + "update": { + "updateId": { + "provider": "provider1", + "name": "name1", + "version": "1.0.0.0" + } + }, + "rollbackPolicy": { + "update": { + "updateId": { + "provider": "provider1", + "name": "name1", + "version": "0.9.0" + } + }, + "failure": { + "devicesFailedPercentage": 50, + "devicesFailedCount": 100 + } + }, + "isCanceled": false, + "isRetried": false, + "isCloudInitiatedRollback": false + }, + { + "deploymentId": "deploymentId2", + "groupId": "TestGroup", + "startDateTime": "2020-08-01T12:13:14Z", + "update": { + "updateId": { + "provider": "provider2", + "name": "name2", + "version": "2.0.0.0" + } + }, + "rollbackPolicy": { + "update": { + "updateId": { + "provider": "provider2", + "name": "name2", + "version": "1.0.0.0" + } + }, + "failure": { + "devicesFailedPercentage": 20, + "devicesFailedCount": 150 + } + }, + "isCanceled": false, + "isRetried": false, + "isCloudInitiatedRollback": false + } + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDeploymentsForGroup.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDeploymentsForGroup.json new file mode 100644 index 000000000000..9ee8a450b875 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDeploymentsForGroup.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "TestGroup", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "deploymentId": "deploymentId1", + "groupId": "TestGroup", + "deviceClassSubgroups": [ + "deviceClassId1", + "deviceClassId2" + ], + "startDateTime": "2020-07-01T12:13:14Z", + "update": { + "updateId": { + "provider": "provider1", + "name": "name1", + "version": "1.0.0.0" + }, + "friendlyName": "Provider1 Name1 2022 Update" + }, + "rollbackPolicy": { + "update": { + "updateId": { + "provider": "provider1", + "name": "name1", + "version": "0.9.0" + }, + "friendlyName": "Provider1 Name1 2022 Update" + }, + "failure": { + "devicesFailedPercentage": 50, + "devicesFailedCount": 100 + } + }, + "isCanceled": false, + "isRetried": false, + "isCloudInitiatedRollback": false + }, + { + "deploymentId": "deploymentId2", + "groupId": "TestGroup", + "deviceClassSubgroups": [ + "deviceClassId1", + "deviceClassId2" + ], + "startDateTime": "2020-08-01T12:13:14Z", + "update": { + "updateId": { + "provider": "provider2", + "name": "name2", + "version": "2.0.0.0" + }, + "friendlyName": "Provider2 Name2 2022 Update" + }, + "rollbackPolicy": { + "update": { + "updateId": { + "provider": "provider2", + "name": "name2", + "version": "1.0.0.0" + }, + "friendlyName": "Provider2 Name2 2022 Update" + }, + "failure": { + "devicesFailedPercentage": 20, + "devicesFailedCount": 150 + } + }, + "isCanceled": false, + "isRetried": false, + "isCloudInitiatedRollback": false + } + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDeviceClassSubgroupsForGroup.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDeviceClassSubgroupsForGroup.json new file mode 100644 index 000000000000..b6bb54da0fbf --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDeviceClassSubgroupsForGroup.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "group1", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "deviceClassId": "DeviceClassId", + "groupId": "group1", + "createdDateTime": "2020-07-01T12:13:14.0000000Z", + "deviceCount": 149, + "deploymentId": "MyDeployment" + }, + { + "deviceClassId": "DeviceClassId2", + "groupId": "group1", + "createdDateTime": "2020-07-01T12:13:14.0000000Z", + "deviceCount": 35, + "deploymentId": "MyDeployment2" + } + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDeviceClasses.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDeviceClasses.json new file mode 100644 index 000000000000..f5af554c4273 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDeviceClasses.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "deviceClassId": "deviceClassId", + "friendlyName": "DeviceClass2020-04-22T12:12:12.0000000+00:00", + "deviceClassProperties": { + "contractModel": { + "id": "dtmi:azure:iot:deviceUpdateContractModel;2", + "name": "Device Update Model V2" + }, + "compatProperties": { + "manufacturer": "manufacturer1", + "model": "model1" + } + }, + "bestCompatibleUpdate": { + "updateId": { + "provider": "provider", + "name": "name", + "version": "1.0.0.0" + }, + "friendlyName": "July 2022 Update" + } + }, + { + "deviceClassId": "deviceClassId2", + "friendlyName": "DeviceClass2020-04-23T12:12:12.0000000+00:00", + "deviceClassProperties": { + "contractModel": { + "id": "dtmi:azure:iot:deviceUpdateContractModel;2", + "name": "Device Update Model V2" + }, + "compatProperties": { + "osArch": "osArch2" + } + } + } + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDeviceHealth.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDeviceHealth.json new file mode 100644 index 000000000000..78748910f12a --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDeviceHealth.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "filter": "state eq 'unhealthy'", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "deviceId": "device1", + "moduleId": "module1", + "digitalTwinModelId": "dtmi:foo;1", + "state": "unhealthy", + "healthChecks": [ + { + "name": "check1", + "result": "success" + }, + { + "name": "check2", + "result": "userError" + } + ] + } + ], + "nextLink": "http://foo" + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDevices.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDevices.json new file mode 100644 index 000000000000..ef97ee02cd3a --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDevices.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "deviceId": "device1", + "deviceClassId": "deviceClassId1", + "lastAttemptedUpdate": { + "updateId": { + "provider": "provider1", + "name": "name1", + "version": "2.0.0.0" + } + }, + "deploymentStatus": "Failed", + "installedUpdate": { + "updateId": { + "provider": "provider1", + "name": "name1", + "version": "1.0.0.0" + } + }, + "onLatestUpdate": false, + "lastDeploymentId": "myDeployment123" + }, + { + "deviceId": "device2", + "deviceClassId": "deviceClassId2", + "lastAttemptedUpdate": { + "updateId": { + "provider": "provider2", + "name": "name2", + "version": "1.0.0.0" + } + }, + "deploymentStatus": "Succeeded", + "installedUpdate": { + "updateId": { + "provider": "provider2", + "name": "name2", + "version": "1.0.0.0" + } + }, + "onLatestUpdate": true, + "lastDeploymentId": "myDeployment234" + } + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDevicesForDeviceClassSubgroupDeployment.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDevicesForDeviceClassSubgroupDeployment.json new file mode 100644 index 000000000000..1036a526f984 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListDevicesForDeviceClassSubgroupDeployment.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "TestGroup", + "deviceClassId": "deviceClassId", + "deploymentId": "deploymentId", + "deviceState": "Succeeded", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "deviceId": "deviceId1", + "retryCount": 1, + "movedOnToNewDeployment": false, + "deviceState": "Succeeded" + }, + { + "deviceId": "deviceId2", + "retryCount": 1, + "movedOnToNewDeployment": false, + "deviceState": "Succeeded" + } + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListGroups.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListGroups.json new file mode 100644 index 000000000000..51297b434728 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListGroups.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "groupId": "MyGroup1", + "groupType": "IoTHubTag", + "createdDateTime": "2020-07-01T12:13:14.0000000Z", + "deviceCount": 100, + "subgroupsWithNewUpdatesAvailableCount": 2, + "subgroupsWithUpdatesInProgressCount": 0, + "subgroupsWithOnLatestUpdateCount": 1, + "deployments": [ + "deployment1", + "deployment2" + ] + }, + { + "groupId": "MyGroup2", + "groupType": "IoTHubTag", + "createdDateTime": "2020-08-01T12:13:14.0000000Z", + "deviceCount": 200, + "subgroupsWithNewUpdatesAvailableCount": 1, + "subgroupsWithUpdatesInProgressCount": 1, + "subgroupsWithOnLatestUpdateCount": 1, + "deployments": [ + "deployment3", + "deployment4" + ] + } + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListInstallableUpdatesForDeviceClass.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListInstallableUpdatesForDeviceClass.json new file mode 100644 index 000000000000..660c6fee6b3c --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListInstallableUpdatesForDeviceClass.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "deviceClassId": "deviceClassId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "updateId": { + "provider": "provider", + "name": "name", + "version": "1.2.3.4" + }, + "friendlyName": "July 2022 Update" + }, + { + "updateId": { + "provider": "provider2", + "name": "name2", + "version": "2.3.4.5" + } + } + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListLogCollectionOperations.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListLogCollectionOperations.json new file mode 100644 index 000000000000..7d9ef7f31e7d --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListLogCollectionOperations.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "operationId": "SampleOperationId", + "deviceList": [ + { + "deviceId": "DeviceA" + }, + { + "deviceId": "DeviceB", + "moduleId": "ModuleB" + } + ], + "description": "Example diagnostics operation", + "createdDateTime": "2021-09-30T02:23:41.59Z", + "lastActionDateTime": "2021-09-30T02:23:41.59Z", + "status": "NotStarted" + } + ], + "nextLink": "string" + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListOperations.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListOperations.json new file mode 100644 index 000000000000..a2011337596a --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_ListOperations.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "operationId": "e4491c54-916f-443d-9094-bcca546ace2f", + "status": "Succeeded", + "traceId": "2b881ef9deaf5d45b0a716ca5b4145ec", + "createdDateTime": "2020-04-22T21:00:53.2548897+00:00", + "lastActionDateTime": "2020-04-22T21:01:43.9401420+00:00", + "etag": "\"a0f7b6f2-3f6c-4eb6-8a59-2f5411c23888\"" + } + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_RetryDeployment.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_RetryDeployment.json new file mode 100644 index 000000000000..110884baf419 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_RetryDeployment.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "TestGroup", + "deviceClassId": "deviceClassId", + "deploymentId": "deploymentId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "deploymentId": "deploymentId", + "groupId": "TestGroup", + "startDateTime": "2020-04-22T12:12:12.0000000+00:00", + "update": { + "updateId": { + "provider": "provider", + "name": "name", + "version": "1.2.3.4" + } + }, + "isCanceled": false, + "isRetried": true + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_StopDeployment.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_StopDeployment.json new file mode 100644 index 000000000000..01506d5fe676 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_StopDeployment.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "groupId": "TestGroup", + "deviceClassId": "deviceClassId", + "deploymentId": "deploymentId", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "deploymentId": "deploymentId", + "groupId": "TestGroup", + "startDateTime": "2020-04-22T12:12:12.0000000+00:00", + "update": { + "updateId": { + "provider": "provider", + "name": "name", + "version": "1.2.3.4" + } + }, + "isCanceled": true, + "isRetried": false + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_UpdateDeviceClass.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_UpdateDeviceClass.json new file mode 100644 index 000000000000..5339766e2455 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceManagement_UpdateDeviceClass.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "deviceClassId": "deviceClassId", + "api-version": "2022-07-01-preview", + "deviceClassPatch": { + "friendlyName": "GA Webcams" + } + }, + "responses": { + "200": { + "body": { + "deviceClassId": "deviceClassId", + "friendlyName": "GA Webcams", + "deviceClassProperties": { + "contractModel": { + "id": "dtmi:azure:iot:deviceUpdateContractModel;2", + "name": "Device Update Model V2" + }, + "compatProperties": { + "manufacturer": "manufacturer1", + "model": "model1" + } + }, + "bestCompatibleUpdate": { + "updateId": { + "provider": "provider", + "name": "name", + "version": "1.0.0.0" + }, + "friendlyName": "July 2022 Update" + } + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_DeleteUpdate.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_DeleteUpdate.json new file mode 100644 index 000000000000..1c954a9756da --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_DeleteUpdate.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "provider": "microsoft", + "name": "adu", + "version": "1.0.0.0", + "api-version": "2022-07-01-preview" + }, + "responses": { + "202": { + "headers": { + "Operation-Location": "/deviceUpdate/blue/operations/e4491c54-916f-443d-9094-bcca546ace2f?api-version=2022-07-01-preview" + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_GetFile.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_GetFile.json new file mode 100644 index 000000000000..eebf3ffa81c9 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_GetFile.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "provider": "microsoft", + "name": "adu", + "version": "1.0.0.0", + "fileId": "abc123", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "fileId": "abc123", + "fileName": "1v5uww1q.my2", + "sizeInBytes": 1862311, + "hashes": { + "sha256": "OVokcktf61lQXs17MzJCsM98lk48H1Wu1hy7Sp6lLfI=" + }, + "mimeType": "application/BuildAsync-s4jwikgq.44h", + "etag": "\"26bd8eba-4bb2-4960-a357-ca4d60b5fb4b\"" + } + }, + "304": {} + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_GetOperation.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_GetOperation.json new file mode 100644 index 000000000000..ca1d979bb776 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_GetOperation.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "operationId": "e4491c54-916f-443d-9094-bcca546ace2f", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "operationId": "e4491c54-916f-443d-9094-bcca546ace2f", + "status": "Succeeded", + "update": { + "updateId": { + "provider": "microsoft", + "name": "adu", + "version": "1.0.0.0" + }, + "friendlyName": "Microsoft ADU v1" + }, + "resourceLocation": "/deviceUpdate/blue/updates/providers/microsoft/names/adu/versions/1.0.0.0?api-version=2022-07-01-preview", + "traceId": "2b881ef9deaf5d45b0a716ca5b4145ec", + "createdDateTime": "2020-04-22T21:00:53.2548897+00:00", + "lastActionDateTime": "2020-04-22T21:01:43.9401420+00:00", + "etag": "\"a0f7b6f2-3f6c-4eb6-8a59-2f5411c23888\"" + } + }, + "304": {} + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_GetUpdate.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_GetUpdate.json new file mode 100644 index 000000000000..51584e3e6672 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_GetUpdate.json @@ -0,0 +1,56 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "provider": "microsoft", + "name": "adu", + "version": "1.0.0.0", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "updateId": { + "provider": "microsoft", + "name": "adu", + "version": "1.0.0.0" + }, + "friendlyName": "Lab Sensor Update v1", + "description": "Fix for critical vulnerability", + "compatibility": [ + { + "deviceManufacturer": "Microsoft", + "deviceModel": "Toaster" + } + ], + "instructions": { + "steps": [ + { + "description": "pre-install script", + "handler": "microsoft/script:1", + "handlerProperties": { + "arguments": "--pre-install" + }, + "files": [ + "configure.sh" + ] + }, + { + "type": "reference", + "updateId": { + "provider": "microsoft", + "name": "sensor", + "version": "1.0" + } + } + ] + }, + "manifestVersion": "5.0", + "importedDateTime": "2020-04-22T21:01:43.8408797+00:00", + "createdDateTime": "2019-09-12T00:00:00.0000000+00:00", + "etag": "\"3fed3378-0c67-47d2-b796-296962c66cbb\"" + } + }, + "304": {} + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ImportUpdate.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ImportUpdate.json new file mode 100644 index 000000000000..07d3ab953c5b --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ImportUpdate.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "api-version": "2022-07-01-preview", + "updateToImport": [ + { + "importManifest": { + "url": "http://test.blob.core.windows.net/test/uploadimportMan.json", + "sizeInBytes": 816, + "hashes": { + "sha256": "O19LyyncPe1AGstOdkcmozLV8pSbBdqrE18HdYVohRc=" + } + }, + "files": [ + { + "filename": "file1.bin", + "url": "http://test.blob.core.windows.net/test/upload1v5uww1q" + }, + { + "filename": "file2.bin", + "url": "http://test.blob.core.windows.net/test/uploadkrmn5yw0" + }, + { + "filename": "file3.bin", + "url": "http://test.blob.core.windows.net/test/uploaddq52ky5m" + } + ] + } + ] + }, + "responses": { + "202": { + "headers": { + "Operation-Location": "/deviceUpdate/blue/updates/operations/e4491c54-916f-443d-9094-bcca546ace2f?api-version=2022-07-01-preview" + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListFiles.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListFiles.json new file mode 100644 index 000000000000..9a5c518dd2dd --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListFiles.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "provider": "microsoft", + "name": "adu", + "version": "1.0.0.0", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + "abc123", + "def456" + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListNames.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListNames.json new file mode 100644 index 000000000000..53431969fad7 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListNames.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "provider": "microsoft", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + "adu" + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListOperations.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListOperations.json new file mode 100644 index 000000000000..16e765d7cbf7 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListOperations.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "operationId": "e4491c54-916f-443d-9094-bcca546ace2f", + "status": "Succeeded", + "update": { + "updateId": { + "provider": "microsoft", + "name": "adu", + "version": "1.0.0.0" + }, + "friendlyName": "Microsoft ADU v1" + }, + "resourceLocation": "/deviceUpdate/blue/updates/providers/microsoft/names/adu/versions/1.0.0.0?api-version=2022-07-01-preview", + "traceId": "2b881ef9deaf5d45b0a716ca5b4145ec", + "createdDateTime": "2020-04-22T21:00:53.2548897+00:00", + "lastActionDateTime": "2020-04-22T21:01:43.9401420+00:00", + "etag": "\"a0f7b6f2-3f6c-4eb6-8a59-2f5411c23888\"" + } + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListProviders.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListProviders.json new file mode 100644 index 000000000000..5482101a0793 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListProviders.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + "microsoft" + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListUpdates.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListUpdates.json new file mode 100644 index 000000000000..d4cc101c6631 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListUpdates.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "updateId": { + "provider": "microsoft", + "name": "adu", + "version": "1.0.0.0" + }, + "description": "Example update.", + "compatibility": [ + { + "deviceManufacturer": "Microsoft", + "deviceModel": "Toaster" + } + ], + "instructions": { + "steps": [ + { + "description": "pre-install script", + "handler": "microsoft/script:1", + "handlerProperties": { + "arguments": "--pre-install" + }, + "files": [ + "configure.sh" + ] + }, + { + "type": "reference", + "updateId": { + "provider": "microsoft", + "name": "sensor", + "version": "1.0" + } + } + ] + }, + "manifestVersion": "5.0", + "importedDateTime": "2020-04-22T21:01:43.8408797+00:00", + "createdDateTime": "2019-09-12T00:00:00.0000000+00:00", + "etag": "\"3fed3378-0c67-47d2-b796-296962c66cbb\"" + } + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListVersions.json b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListVersions.json new file mode 100644 index 000000000000..4dad39387b84 --- /dev/null +++ b/specification/deviceupdate/data-plane/Microsoft.DeviceUpdate/preview/2022-07-01-preview/examples/DeviceUpdate_ListVersions.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "endpoint": "contoso.api.adu.microsoft.com", + "instanceId": "blue", + "provider": "microsoft", + "name": "adu", + "api-version": "2022-07-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + "1.0.0.0", + "1.0.0.1" + ] + } + } + } +} diff --git a/specification/deviceupdate/data-plane/readme.md b/specification/deviceupdate/data-plane/readme.md index 2c286fabde0b..277a33d0f295 100644 --- a/specification/deviceupdate/data-plane/readme.md +++ b/specification/deviceupdate/data-plane/readme.md @@ -26,7 +26,7 @@ These are the global settings for the deviceupdate. ```yaml openapi-type: data-plane -tag: package-2021-06-01-preview +tag: package-2022-07-01-preview ``` ### Tag: package-2020-09-01 @@ -47,12 +47,24 @@ input-file: - Microsoft.DeviceUpdate/preview/2021-06-01-preview/deviceupdate.json ``` +### Tag: package-2022-07-01-preview + +These settings apply only when `--tag=package-2022-07-01-preview` is specified on the command line. + +```yaml $(tag) == 'package-2022-07-01-preview' +input-file: + - Microsoft.DeviceUpdate/preview/2022-07-01-preview/deviceupdate.json +``` + ## Suppressions ``` yaml directive: - suppress: LongRunningResponseStatusCode reason: The validation tools do not properly recognize 202 as a supported response code. + - supress: R2010 + reason: Approved by SDK team. + from: Microsoft.DeviceUpdate/preview/2022-07-01-preview/deviceupdate.json - supress: R2010 reason: Approved by SDK team. from: Microsoft.DeviceUpdate/preview/2021-06-01-preview/deviceupdate.json @@ -69,7 +81,11 @@ This is not used by Autorest itself. ```yaml $(swagger-to-sdk) swagger-to-sdk: - - repo: azure-sdk-for-net-track2 + - repo: azure-sdk-for-python-track2 + - repo: azure-sdk-for-java + - repo: azure-sdk-for-js + after_scripts: + - bundle install && rake arm:regen_all_profiles['deviceupdate'] ``` ## Python @@ -92,7 +108,7 @@ require: $(this-folder)/../../../../profiles/readme.md # all the input files across all versions input-file: - - $(this-folder)/Microsoft.DeviceUpdate/preview/2021-06-01-preview/deviceupdate.json + - $(this-folder)/Microsoft.DeviceUpdate/preview/2022-07-01-preview/deviceupdate.json ```