### Method

# Fwupd Client install_release_async

#### Declaration [src]

    void
    fwupd_client_install_release_async (
      FwupdClient* self,
      FwupdDevice* device,
      FwupdRelease* release,
      FwupdInstallFlags install_flags,
      FwupdClientDownloadFlags download_flags,
      GCancellable* cancellable,
      GAsyncReadyCallback callback,
      gpointer callback_data
    )

#### Description [src]

Installs a new release on a device, downloading the firmware if required.

NOTE: This method is thread-safe, but progress signals will be emitted in the global default main context, if not explicitly set with `fwupd_client_set_main_context()`.

Available since: | 2.0.0

#### Parameters

`device` | `FwupdDevice`
| A device.
| The data is owned by the caller of the function.
`release` | `FwupdRelease`
| A release.
| The data is owned by the caller of the function.
`install_flags` | `FwupdInstallFlags`
| Install flags, e.g. `FWUPD_INSTALL_FLAG_ALLOW_REINSTALL`.
`download_flags` | `FwupdClientDownloadFlags`
| Download flags, e.g. `FWUPD_CLIENT_DOWNLOAD_FLAG_ONLY_P2P`.
`cancellable` | `GCancellable`
| Optional `GCancellable`.
| The argument can be `NULL`.
| The data is owned by the caller of the function.
`callback` | `GAsyncReadyCallback`
| The function to run on completion.
| The argument can be `NULL`.
`callback_data` | `gpointer`
| The data to pass to `callback`.
| The argument can be `NULL`.
| The data is owned by the caller of the function.