azure-iot-deviceupdate 1.0.0
Microsoft Azure Device Update Client Library for Python
License: MIT License
Requires Python: >=3.6

# Azure Device Update for IoT Hub client library for Python

The library provides access to the Device Update for IoT Hub service that enables customers to publish updates for their IoT devices to the cloud, and then deploy these updates to their devices (approve updates to groups of devices managed and provisioned in IoT Hub).

[Source code](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/deviceupdate/azure-iot-deviceupdate) | [Package (PyPI)](https://aka.ms/azsdk/python/deviceupdate-pypi) | [Product documentation](https://docs.microsoft.com/azure/iot-hub-device-update/understand-device-update)

## _Disclaimer_

_Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_

## Getting started

### Prerequisites

- Microsoft Azure Subscription: To call Microsoft Azure services, you need to create an [Azure subscription](https://azure.microsoft.com/free/)
- Device Update for IoT Hub instance
- Azure IoT Hub instance
- Python 3.6 or later is required to use this package.

### Install the package

Install the Device Update for IoT Hub client library for Python with [pip](https://pypi.org/project/pip/):

```bash
pip install azure-iot-deviceupdate
```

## Key concepts

Device Update for IoT Hub is a managed service that enables you to deploy over-the-air updates for your IoT devices. The client library has one main component named **DeviceUpdateClient**. The component allows you to access all three main client services:

- **UpdatesOperations**: update management (import, enumerate, delete, etc.)
- **ManagementOperations**: deployment management (manage devices and deployments)

You can learn more about Device Update for IoT Hub by visiting [Device Update for IoT Hub](https://github.com/azure/iot-hub-device-update).

## Examples

You can familiarize yourself with different APIs using [Samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/deviceupdate/azure-iot-deviceupdate/samples).

## Troubleshooting

The Device Update for IoT Hub client will raise exceptions defined in [Azure Core](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md).

## Next steps

Get started with our [Samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/deviceupdate/azure-iot-deviceupdate/samples).

## Contributing

If you encounter any bugs or have suggestions, please file an issue in the [Issues](https://github.com/Azure/azure-sdk-for-python/issues) section of the project.

<!-- LINKS -->
[azure_core]: https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/core/azure-core/README.md


# Release History

## 1.0.0 (2022-09-09)

### Features Added
- Added filter to DeviceManagementOperations.list_device_classes method
- Updated description for some methods to be more descriptive and less ambiguous

### Breaking Changes
- Removed filter from DeviceManagementOperations.list_best_updates_for_group method

## 1.0.0b3 (2022-07-07)

### Features Added

- Added `relatedFiles` and `downloadHandler` to `Update`
- Updated various model that reference update to include not only `updateId` but also update `description` and `friendlyName`
- Removed device tag concept
- Allow to filter by deployment status in the `list_devices` method
- Added ability to update device class friendly name
- Added ability to delete device class
- Added device class subgroups to groups
- Added new method to retrieve devices health information

## 1.0.0b2 (2022-01-25)

### Features Added
    
  - Added DeviceManagementOperations
  - Added DeviceUpdateOperations
  - Added operation `send_request` to send customized http request conveniently
  - Added `client.device_management`

### Breaking Changes

  - Removed all models
  - Removed DeploymentsOperations
  - Removed UpdateOperations
  - Dropped support for Python2.7(https://github.com/Azure/azure-sdk-for-python#disclaimer)
  - Parameter `account_endpoint` of DeviceUpdateClient is renamed to `endpoint`
  - Renamed `client.updates` to `client.device_update`
  - Removed `client.devices`
  - Removed `client.deployments`
  - Renamed UpdatesOperations.get_update to DeviceUpdateOperations.get_update
  - Renamed UpdatesOperations.delete_update to DeviceUpdateOperations.begin_delete_update
  - Renamed UpdatesOperations.get_providers to DeviceUpdateOperations.list_providers
  - Renamed UpdatesOperations.get_names to DeviceUpdateOperations.list_names
  - Renamed UpdatesOperations.get_versions to DeviceUpdateOperations.list_versions
  - Renamed UpdatesOperations.get_file to DeviceUpdateOperations.get_file
  - Renamed UpdatesOperations.get_files to DeviceUpdateOperations.list_files
  - Renamed UpdatesOperations.get_operation to DeviceUpdateOperations.get_operation
  - Renamed UpdatesOperations.get_operations to DeviceUpdateOperations.list_operations
  - Renamed DevicesOperations.get_all_device_classes to DeviceManagementOperations.list_device_classes
  - Renamed DevicesOperations.get_device_class to DeviceManagementOperations.get_device_class
  - Renamed DevicesOperations.get_device_class_device_ids to DeviceManagementOperations.
  - Renamed DevicesOperations.list_devices to DeviceManagementOperations.list_devices
  - Renamed DevicesOperations.list_devices to DeviceManagementOperations.
  - Renamed DevicesOperations.get_all_device_tags to DeviceManagementOperations.list_device_tags
  - Renamed DevicesOperations.get_all_groups to DeviceManagementOperations.list_groups
  - Renamed DevicesOperations.get_group to DeviceManagementOperations.get_group
  - Renamed DevicesOperations.create_or_update_group to DeviceManagementOperations.create_or_update_group
  - Renamed DevicesOperations.delete_group to DeviceManagementOperations.delete_group
  - Renamed DevicesOperations.get_group_update_compliance to DeviceManagementOperations.get_group_update_compliance
  - Renamed DevicesOperations.get_group_best_updates to DeviceManagementOperations.list_best_updates_for_group
  - Renamed DeploymentsOperations.get_deployment_status to DeviceManagementOperations.get_deployment_status
  - Renamed DeploymentsOperations.create_or_update_deployment to DeviceManagementOperations.create_or_update_deployment
  - Renamed DeploymentsOperations.delete_deployment to DeviceManagementOperations.delete_deployment
  - Renamed DeploymentsOperations.get_deployment_devices to DeviceManagementOperations.list_deployment_devices

  
## 1.0.0b1 (2021-03-03)
* This is the initial release of Azure Device Update for IoT Hub library.