<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="Soup" version="2.4"/>
  <package name="fwupd"/>
  <c:include name="fwupd.h"/>
  <namespace name="Fwupd"
             version="2.0"
             shared-library="libfwupd.so.2"
             c:identifier-prefixes="Fwupd"
             c:symbol-prefixes="fwupd">
    <alias name="DeviceFlags" c:type="FwupdDeviceFlags">
      <doc xml:space="preserve">The device flags.</doc>
      <type name="guint64" c:type="guint64"/>
    </alias>
    <class name="Client"
           c:symbol-prefix="client"
           c:type="FwupdClient"
           parent="GObject.Object"
           glib:type-name="FwupdClient"
           glib:get-type="fwupd_client_get_type"
           glib:type-struct="ClientClass">
      <constructor name="new" c:identifier="fwupd_client_new" version="0.7.0">
        <doc xml:space="preserve">Creates a new client.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #FwupdClient</doc>
          <type name="Client" c:type="FwupdClient*"/>
        </return-value>
      </constructor>
      <virtual-method name="changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="device_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Device" c:type="FwupdDevice*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="device_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Device" c:type="FwupdDevice*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="device_removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Device" c:type="FwupdDevice*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="status_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="status" transfer-ownership="none">
            <type name="Status" c:type="FwupdStatus"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="clear_results"
              c:identifier="fwupd_client_clear_results"
              version="0.7.0"
              throws="1">
        <doc xml:space="preserve">Clears the results for a specific device.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="device_id" transfer-ownership="none">
            <doc xml:space="preserve">the device ID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect"
              c:identifier="fwupd_client_connect"
              version="0.7.1"
              throws="1">
        <doc xml:space="preserve">Sets up the client ready for use. Most other methods call this
for you, and do you only need to call this if you are just watching
the client.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_daemon_version"
              c:identifier="fwupd_client_get_daemon_version"
              version="0.9.6">
        <doc xml:space="preserve">Gets the daemon version number.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string, or %NULL for unknown.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_details"
              c:identifier="fwupd_client_get_details"
              version="1.0.0"
              throws="1">
        <doc xml:space="preserve">Gets details about a specific firmware file.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">an array of results</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Device"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">the firmware filename, e.g. `firmware.cab`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_device_by_id"
              c:identifier="fwupd_client_get_device_by_id"
              version="0.9.3"
              throws="1">
        <doc xml:space="preserve">Gets a device by it's device ID.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #FwupdDevice or %NULL</doc>
          <type name="Device" c:type="FwupdDevice*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="device_id" transfer-ownership="none">
            <doc xml:space="preserve">the device ID, e.g. `usb:00:01:03:03`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_devices"
              c:identifier="fwupd_client_get_devices"
              version="0.9.2"
              throws="1">
        <doc xml:space="preserve">Gets all the devices registered with the daemon.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">results</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Device"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_downgrades"
              c:identifier="fwupd_client_get_downgrades"
              version="0.9.8"
              throws="1">
        <doc xml:space="preserve">Gets all the downgrades for a specific device.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">results</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Release"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="device_id" transfer-ownership="none">
            <doc xml:space="preserve">the device ID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_history"
              c:identifier="fwupd_client_get_history"
              version="1.0.4"
              throws="1">
        <doc xml:space="preserve">Gets all the history.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">results</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Device"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_percentage"
              c:identifier="fwupd_client_get_percentage"
              version="0.7.3">
        <doc xml:space="preserve">Gets the last returned percentage value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a percentage, or 0 for unknown.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_releases"
              c:identifier="fwupd_client_get_releases"
              version="0.9.3"
              throws="1">
        <doc xml:space="preserve">Gets all the releases for a specific device</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">results</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Release"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="device_id" transfer-ownership="none">
            <doc xml:space="preserve">the device ID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_remote_by_id"
              c:identifier="fwupd_client_get_remote_by_id"
              version="0.9.3"
              throws="1">
        <doc xml:space="preserve">Gets a specific remote that has been configured for the system.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #FwupdRemote, or %NULL if not found</doc>
          <type name="Remote" c:type="FwupdRemote*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="remote_id" transfer-ownership="none">
            <doc xml:space="preserve">the remote ID, e.g. `lvfs-testing`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_remotes"
              c:identifier="fwupd_client_get_remotes"
              version="0.9.3"
              throws="1">
        <doc xml:space="preserve">Gets the list of remotes that have been configured for the system.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">list of remotes, or %NULL</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Remote"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_results"
              c:identifier="fwupd_client_get_results"
              version="0.7.0"
              throws="1">
        <doc xml:space="preserve">Gets the results of a previous firmware update for a specific device.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #FwupdDevice, or %NULL for failure</doc>
          <type name="Device" c:type="FwupdDevice*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="device_id" transfer-ownership="none">
            <doc xml:space="preserve">the device ID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_status"
              c:identifier="fwupd_client_get_status"
              version="0.7.3">
        <doc xml:space="preserve">Gets the last returned status value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #FwupdStatus, or %FWUPD_STATUS_UNKNOWN for unknown.</doc>
          <type name="Status" c:type="FwupdStatus"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_upgrades"
              c:identifier="fwupd_client_get_upgrades"
              version="0.9.8"
              throws="1">
        <doc xml:space="preserve">Gets all the upgrades for a specific device.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">results</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Release"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="device_id" transfer-ownership="none">
            <doc xml:space="preserve">the device ID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="install"
              c:identifier="fwupd_client_install"
              version="0.7.0"
              throws="1">
        <doc xml:space="preserve">Install a file onto a specific device.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="device_id" transfer-ownership="none">
            <doc xml:space="preserve">the device ID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">the filename to install</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="install_flags" transfer-ownership="none">
            <doc xml:space="preserve">the #FwupdInstallFlags, e.g. %FWUPD_INSTALL_FLAG_ALLOW_REINSTALL</doc>
            <type name="InstallFlags" c:type="FwupdInstallFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_device"
              c:identifier="fwupd_client_modify_device"
              version="1.0.4"
              throws="1">
        <doc xml:space="preserve">Modifies a device in a specific way. Not all properties on the #FwupdDevice
are settable by the client, and some may have other restrictions on @value.

NOTE: User authentication may be required to complete this action.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="device_id" transfer-ownership="none">
            <doc xml:space="preserve">the device ID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the key, e.g. `Flags`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the key, e.g. `reported`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_remote"
              c:identifier="fwupd_client_modify_remote"
              version="0.9.8"
              throws="1">
        <doc xml:space="preserve">Modifies a system remote in a specific way.

NOTE: User authentication may be required to complete this action.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="remote_id" transfer-ownership="none">
            <doc xml:space="preserve">the remote ID, e.g. `lvfs-testing`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the key, e.g. `Enabled`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the key, e.g. `true`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unlock"
              c:identifier="fwupd_client_unlock"
              version="0.7.0"
              throws="1">
        <doc xml:space="preserve">Unlocks a specific device so firmware can be read or wrote.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="device_id" transfer-ownership="none">
            <doc xml:space="preserve">the device ID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_metadata"
              c:identifier="fwupd_client_update_metadata"
              version="1.0.0"
              throws="1">
        <doc xml:space="preserve">Updates the metadata. This allows a session process to download the metadata
and metadata signing file to be passed into the daemon to be checked and
parsed.

The @remote_id allows the firmware to be tagged so that the remote can be
matched when the firmware is downloaded.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="remote_id" transfer-ownership="none">
            <doc xml:space="preserve">the remote ID, e.g. `lvfs-testing`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="metadata_fn" transfer-ownership="none">
            <doc xml:space="preserve">the XML metadata filename</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="signature_fn" transfer-ownership="none">
            <doc xml:space="preserve">the GPG signature file</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="verify"
              c:identifier="fwupd_client_verify"
              version="0.7.0"
              throws="1">
        <doc xml:space="preserve">Verify a specific device.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for verification success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="device_id" transfer-ownership="none">
            <doc xml:space="preserve">the device ID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="verify_update"
              c:identifier="fwupd_client_verify_update"
              version="0.8.0"
              throws="1">
        <doc xml:space="preserve">Update the verification record for a specific device.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for verification success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdClient</doc>
            <type name="Client" c:type="FwupdClient*"/>
          </instance-parameter>
          <parameter name="device_id" transfer-ownership="none">
            <doc xml:space="preserve">the device ID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <property name="daemon-version"
                version="0.9.6"
                transfer-ownership="none">
        <doc xml:space="preserve">The daemon version number.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="percentage"
                version="0.7.3"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The last-reported percentage of the daemon.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="status"
                version="0.7.0"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The last-reported status of the daemon.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="changed" when="last" version="0.7.0">
        <doc xml:space="preserve">The ::changed signal is emitted when the daemon internal has
changed, for instance when a device has been added or removed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="device-added" when="last" version="0.7.1">
        <doc xml:space="preserve">The ::device-added signal is emitted when a device has been
added.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the #FwupdDevice</doc>
            <type name="Device"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="device-changed" when="last" version="0.7.1">
        <doc xml:space="preserve">The ::device-changed signal is emitted when a device has been
changed in some way, e.g. the version number is updated.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the #FwupdDevice</doc>
            <type name="Device"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="device-removed" when="last" version="0.7.1">
        <doc xml:space="preserve">The ::device-removed signal is emitted when a device has been
removed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">the #FwupdDevice</doc>
            <type name="Device"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="status-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ClientClass"
            c:type="FwupdClientClass"
            glib:is-gtype-struct-for="Client">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="FwupdClient*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="status_changed">
        <callback name="status_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="FwupdClient*"/>
            </parameter>
            <parameter name="status" transfer-ownership="none">
              <type name="Status" c:type="FwupdStatus"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="device_added">
        <callback name="device_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="FwupdClient*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <type name="Device" c:type="FwupdDevice*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="device_removed">
        <callback name="device_removed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="FwupdClient*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <type name="Device" c:type="FwupdDevice*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="device_changed">
        <callback name="device_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="FwupdClient*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <type name="Device" c:type="FwupdDevice*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_fwupd_reserved1" introspectable="0">
        <callback name="_fwupd_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved2" introspectable="0">
        <callback name="_fwupd_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved3" introspectable="0">
        <callback name="_fwupd_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved4" introspectable="0">
        <callback name="_fwupd_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved5" introspectable="0">
        <callback name="_fwupd_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved6" introspectable="0">
        <callback name="_fwupd_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved7" introspectable="0">
        <callback name="_fwupd_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <constant name="DBUS_INTERFACE"
              value="org.freedesktop.fwupd"
              c:type="FWUPD_DBUS_INTERFACE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DBUS_PATH" value="/" c:type="FWUPD_DBUS_PATH">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DBUS_SERVICE"
              value="org.freedesktop.fwupd"
              c:type="FWUPD_DBUS_SERVICE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEVICE_FLAG_IGNORE_VALIDATION"
              value="32768"
              c:type="FWUPD_DEVICE_FLAG_IGNORE_VALIDATION">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_INSTALL_PARENT_FIRST"
              value="4096"
              c:type="FWUPD_DEVICE_FLAG_INSTALL_PARENT_FIRST">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_INTERNAL"
              value="1"
              c:type="FWUPD_DEVICE_FLAG_INTERNAL">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_IS_BOOTLOADER"
              value="8192"
              c:type="FWUPD_DEVICE_FLAG_IS_BOOTLOADER">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_LOCKED"
              value="16"
              c:type="FWUPD_DEVICE_FLAG_LOCKED">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_NEEDS_BOOTLOADER"
              value="64"
              c:type="FWUPD_DEVICE_FLAG_NEEDS_BOOTLOADER">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_NEEDS_REBOOT"
              value="256"
              c:type="FWUPD_DEVICE_FLAG_NEEDS_REBOOT">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_NONE"
              value="0"
              c:type="FWUPD_DEVICE_FLAG_NONE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_NOTIFIED"
              value="1024"
              c:type="FWUPD_DEVICE_FLAG_NOTIFIED">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_ONLY_OFFLINE"
              value="4"
              c:type="FWUPD_DEVICE_FLAG_ONLY_OFFLINE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_REGISTERED"
              value="128"
              c:type="FWUPD_DEVICE_FLAG_REGISTERED">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_REPORTED"
              value="512"
              c:type="FWUPD_DEVICE_FLAG_REPORTED">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_REQUIRE_AC"
              value="8"
              c:type="FWUPD_DEVICE_FLAG_REQUIRE_AC">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_SUPPORTED"
              value="32"
              c:type="FWUPD_DEVICE_FLAG_SUPPORTED">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_TRUSTED"
              value="65536"
              c:type="FWUPD_DEVICE_FLAG_TRUSTED">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_UPDATABLE"
              value="2"
              c:type="FWUPD_DEVICE_FLAG_UPDATABLE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_USE_RUNTIME_VERSION"
              value="2048"
              c:type="FWUPD_DEVICE_FLAG_USE_RUNTIME_VERSION">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_FLAG_WAIT_FOR_REPLUG"
              value="16384"
              c:type="FWUPD_DEVICE_FLAG_WAIT_FOR_REPLUG">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="DEVICE_ID_ANY" value="*" c:type="FWUPD_DEVICE_ID_ANY">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Device"
           c:symbol-prefix="device"
           c:type="FwupdDevice"
           parent="GObject.Object"
           glib:type-name="FwupdDevice"
           glib:get-type="fwupd_device_get_type"
           glib:type-struct="DeviceClass">
      <constructor name="new" c:identifier="fwupd_device_new" version="0.9.3">
        <doc xml:space="preserve">Creates a new device.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #FwupdDevice</doc>
          <type name="Device" c:type="FwupdDevice*"/>
        </return-value>
      </constructor>
      <function name="flag_from_string"
                c:identifier="fwupd_device_flag_from_string"
                version="0.7.0">
        <doc xml:space="preserve">Converts a string to a #FwupdDeviceFlags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">enumerated value</doc>
          <type name="DeviceFlags" c:type="FwupdDeviceFlags"/>
        </return-value>
        <parameters>
          <parameter name="device_flag" transfer-ownership="none">
            <doc xml:space="preserve">A string, e.g. `require-ac`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="flag_to_string"
                c:identifier="fwupd_device_flag_to_string"
                version="0.7.0">
        <doc xml:space="preserve">Converts a #FwupdDeviceFlags to a string.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">identifier string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="device_flag" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDeviceFlags, e.g. %FWUPD_DEVICE_FLAG_REQUIRE_AC</doc>
            <type name="DeviceFlags" c:type="FwupdDeviceFlags"/>
          </parameter>
        </parameters>
      </function>
      <function name="from_variant"
                c:identifier="fwupd_device_from_variant"
                version="1.0.0">
        <doc xml:space="preserve">Creates a new device using packed data.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #FwupdDevice, or %NULL if @data was invalid</doc>
          <type name="Device" c:type="FwupdDevice*"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">a #GVariant</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </function>
      <method name="add_checksum"
              c:identifier="fwupd_device_add_checksum"
              version="0.9.3">
        <doc xml:space="preserve">Sets the device checksum.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="checksum" transfer-ownership="none">
            <doc xml:space="preserve">the device checksum</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_flag"
              c:identifier="fwupd_device_add_flag"
              version="0.9.3">
        <doc xml:space="preserve">Adds a specific device flag to the device.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="flag" transfer-ownership="none">
            <doc xml:space="preserve">the #FwupdDeviceFlags</doc>
            <type name="DeviceFlags" c:type="FwupdDeviceFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_guid"
              c:identifier="fwupd_device_add_guid"
              version="0.9.3">
        <doc xml:space="preserve">Adds the GUID if it does not already exist.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="guid" transfer-ownership="none">
            <doc xml:space="preserve">the GUID, e.g. `2082b5e0-7a64-478a-b1b2-e3404fab6dad`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_icon"
              c:identifier="fwupd_device_add_icon"
              version="0.9.8">
        <doc xml:space="preserve">Adds the icon name if it does not already exist.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">the name, e.g. `input-mouse` or `/usr/share/icons/foo.png`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_release"
              c:identifier="fwupd_device_add_release"
              version="0.9.8">
        <doc xml:space="preserve">Adds a release for this device.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </parameter>
        </parameters>
      </method>
      <method name="compare"
              c:identifier="fwupd_device_compare"
              version="1.1.1">
        <doc xml:space="preserve">Comparison function for comparing two FwupdDevice objects.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">negative, 0 or positive</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="device1" transfer-ownership="none">
            <doc xml:space="preserve">a #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="device2" transfer-ownership="none">
            <doc xml:space="preserve">a #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_checksums"
              c:identifier="fwupd_device_get_checksums"
              version="0.9.3">
        <doc xml:space="preserve">Gets the device checksums.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the checksums, which may be empty</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_created"
              c:identifier="fwupd_device_get_created"
              version="0.9.3">
        <doc xml:space="preserve">Gets when the device was created.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the UNIX time, or 0 if unset</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="fwupd_device_get_description"
              version="0.9.3">
        <doc xml:space="preserve">Gets the device description in AppStream markup format.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the device description, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags"
              c:identifier="fwupd_device_get_flags"
              version="0.9.3">
        <doc xml:space="preserve">Gets the device flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the device flags, or 0 if unset</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flashes_left"
              c:identifier="fwupd_device_get_flashes_left"
              version="0.9.3">
        <doc xml:space="preserve">Gets the number of flash cycles left on the device</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the flash cycles left, or %NULL if unset</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_guid_default"
              c:identifier="fwupd_device_get_guid_default"
              version="0.9.3">
        <doc xml:space="preserve">Gets the default GUID.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the GUID, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_guids"
              c:identifier="fwupd_device_get_guids"
              version="0.9.3">
        <doc xml:space="preserve">Gets the GUIDs.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the GUIDs</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icons"
              c:identifier="fwupd_device_get_icons"
              version="0.9.8">
        <doc xml:space="preserve">Gets the icon names to use for the device.

NOTE: Icons specified without a full path are stock icons and should
be loaded from the users icon theme.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array of icon names</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="fwupd_device_get_id" version="0.9.3">
        <doc xml:space="preserve">Gets the ID.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the ID, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_install_duration"
              c:identifier="fwupd_device_get_install_duration"
              version="1.1.3">
        <doc xml:space="preserve">Gets the time estimate for firmware installation (in seconds)</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the estimated time to flash this device (or 0 if unset)</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modified"
              c:identifier="fwupd_device_get_modified"
              version="0.9.3">
        <doc xml:space="preserve">Gets when the device was modified.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the UNIX time, or 0 if unset</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="fwupd_device_get_name"
              version="0.9.3">
        <doc xml:space="preserve">Gets the device name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the device name, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent"
              c:identifier="fwupd_device_get_parent"
              version="1.0.8">
        <doc xml:space="preserve">Gets the parent.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the parent device, or %NULL if unset</doc>
          <type name="Device" c:type="FwupdDevice*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent_id"
              c:identifier="fwupd_device_get_parent_id"
              version="1.0.8">
        <doc xml:space="preserve">Gets the ID.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the parent ID, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_plugin"
              c:identifier="fwupd_device_get_plugin"
              version="1.0.0">
        <doc xml:space="preserve">Gets the plugin that created the device.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the plugin name, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_release_default"
              c:identifier="fwupd_device_get_release_default"
              version="0.9.8">
        <doc xml:space="preserve">Gets the default release for this device.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #FwupdRelease, or %NULL if not set</doc>
          <type name="Release" c:type="FwupdRelease*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_releases"
              c:identifier="fwupd_device_get_releases"
              version="0.9.8">
        <doc xml:space="preserve">Gets all the releases for this device.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">array of releases</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Release"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_serial"
              c:identifier="fwupd_device_get_serial"
              version="1.1.2">
        <doc xml:space="preserve">Gets the serial number for the device.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string value, or %NULL if never set.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_summary"
              c:identifier="fwupd_device_get_summary"
              version="0.9.3">
        <doc xml:space="preserve">Gets the device summary.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the device summary, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_update_error"
              c:identifier="fwupd_device_get_update_error"
              version="0.9.8">
        <doc xml:space="preserve">Gets the update error.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the update error, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_update_state"
              c:identifier="fwupd_device_get_update_state"
              version="0.9.8">
        <doc xml:space="preserve">Gets the update state.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the update state, or %FWUPD_UPDATE_STATE_UNKNOWN if unset</doc>
          <type name="UpdateState" c:type="FwupdUpdateState"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vendor"
              c:identifier="fwupd_device_get_vendor"
              version="0.9.3">
        <doc xml:space="preserve">Gets the device vendor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the device vendor, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vendor_id"
              c:identifier="fwupd_device_get_vendor_id"
              version="0.9.4">
        <doc xml:space="preserve">Gets the device vendor ID.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the device vendor, e.g. 'USB:0x1234', or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_version"
              c:identifier="fwupd_device_get_version"
              version="0.9.3">
        <doc xml:space="preserve">Gets the device version.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the device version, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_version_bootloader"
              c:identifier="fwupd_device_get_version_bootloader"
              version="0.9.3">
        <doc xml:space="preserve">Gets the version of the bootloader.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the device version_bootloader, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_version_lowest"
              c:identifier="fwupd_device_get_version_lowest"
              version="0.9.3">
        <doc xml:space="preserve">Gets the lowest version of firmware the device will accept.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the device version_lowest, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_flag"
              c:identifier="fwupd_device_has_flag"
              version="0.9.3">
        <doc xml:space="preserve">Finds if the device has a specific device flag.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the flag is set</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="flag" transfer-ownership="none">
            <doc xml:space="preserve">the #FwupdDeviceFlags</doc>
            <type name="DeviceFlags" c:type="FwupdDeviceFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_guid"
              c:identifier="fwupd_device_has_guid"
              version="0.9.3">
        <doc xml:space="preserve">Finds out if the device has this specific GUID.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the GUID is found</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="guid" transfer-ownership="none">
            <doc xml:space="preserve">the GUID, e.g. `2082b5e0-7a64-478a-b1b2-e3404fab6dad`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="incorporate"
              c:identifier="fwupd_device_incorporate"
              version="1.1.0">
        <doc xml:space="preserve">Copy all properties from the donor object if they have not already been set.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="donor" transfer-ownership="none">
            <doc xml:space="preserve">Another #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_flag"
              c:identifier="fwupd_device_remove_flag"
              version="0.9.3">
        <doc xml:space="preserve">Removes a specific device flag from the device.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="flag" transfer-ownership="none">
            <doc xml:space="preserve">the #FwupdDeviceFlags</doc>
            <type name="DeviceFlags" c:type="FwupdDeviceFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_created"
              c:identifier="fwupd_device_set_created"
              version="0.9.3">
        <doc xml:space="preserve">Sets when the device was created.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="created" transfer-ownership="none">
            <doc xml:space="preserve">the UNIX time</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_description"
              c:identifier="fwupd_device_set_description"
              version="0.9.3">
        <doc xml:space="preserve">Sets the device description.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve">the description in AppStream markup format</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_flags"
              c:identifier="fwupd_device_set_flags"
              version="0.9.3">
        <doc xml:space="preserve">Sets the device flags.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the device flags, e.g. %FWUPD_DEVICE_FLAG_REQUIRE_AC</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_flashes_left"
              c:identifier="fwupd_device_set_flashes_left"
              version="0.9.3">
        <doc xml:space="preserve">Sets the number of flash cycles left on the device</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="flashes_left" transfer-ownership="none">
            <doc xml:space="preserve">the description</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_id" c:identifier="fwupd_device_set_id" version="0.9.3">
        <doc xml:space="preserve">Sets the ID.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the device ID, e.g. `USB:foo`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_install_duration"
              c:identifier="fwupd_device_set_install_duration"
              version="1.1.3">
        <doc xml:space="preserve">Sets the time estimate for firmware installation (in seconds)</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="duration" transfer-ownership="none">
            <doc xml:space="preserve">The amount of time</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_modified"
              c:identifier="fwupd_device_set_modified"
              version="0.9.3">
        <doc xml:space="preserve">Sets when the device was modified.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="modified" transfer-ownership="none">
            <doc xml:space="preserve">the UNIX time</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name"
              c:identifier="fwupd_device_set_name"
              version="0.9.3">
        <doc xml:space="preserve">Sets the device name.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the device name, e.g. `ColorHug2`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_parent"
              c:identifier="fwupd_device_set_parent"
              version="1.0.8">
        <doc xml:space="preserve">Sets the parent. Only used internally.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="parent" transfer-ownership="none">
            <doc xml:space="preserve">another #FwupdDevice, or %NULL</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_parent_id"
              c:identifier="fwupd_device_set_parent_id"
              version="1.0.8">
        <doc xml:space="preserve">Sets the parent ID.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="parent_id" transfer-ownership="none">
            <doc xml:space="preserve">the device ID, e.g. `USB:foo`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_plugin"
              c:identifier="fwupd_device_set_plugin"
              version="1.0.0">
        <doc xml:space="preserve">Sets the plugin that created the device.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve">the plugin name, e.g. `colorhug`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_serial"
              c:identifier="fwupd_device_set_serial"
              version="1.1.2">
        <doc xml:space="preserve">Sets the serial number for the device.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="serial" transfer-ownership="none">
            <doc xml:space="preserve">the device serial number</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_summary"
              c:identifier="fwupd_device_set_summary"
              version="0.9.3">
        <doc xml:space="preserve">Sets the device summary.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="summary" transfer-ownership="none">
            <doc xml:space="preserve">the device one line summary</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_update_error"
              c:identifier="fwupd_device_set_update_error"
              version="0.9.8">
        <doc xml:space="preserve">Sets the update error.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="update_error" transfer-ownership="none">
            <doc xml:space="preserve">the update error string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_update_state"
              c:identifier="fwupd_device_set_update_state"
              version="0.9.8">
        <doc xml:space="preserve">Sets the update state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="update_state" transfer-ownership="none">
            <doc xml:space="preserve">the state, e.g. %FWUPD_UPDATE_STATE_PENDING</doc>
            <type name="UpdateState" c:type="FwupdUpdateState"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_vendor"
              c:identifier="fwupd_device_set_vendor"
              version="0.9.3">
        <doc xml:space="preserve">Sets the device vendor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="vendor" transfer-ownership="none">
            <doc xml:space="preserve">the description</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_vendor_id"
              c:identifier="fwupd_device_set_vendor_id"
              version="0.9.4">
        <doc xml:space="preserve">Sets the device vendor ID.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="vendor_id" transfer-ownership="none">
            <doc xml:space="preserve">the ID, e.g. 'USB:0x1234'</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_version"
              c:identifier="fwupd_device_set_version"
              version="0.9.3">
        <doc xml:space="preserve">Sets the device version.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="version" transfer-ownership="none">
            <doc xml:space="preserve">the device version, e.g. `1.2.3`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_version_bootloader"
              c:identifier="fwupd_device_set_version_bootloader"
              version="0.9.3">
        <doc xml:space="preserve">Sets the bootloader version.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="version_bootloader" transfer-ownership="none">
            <doc xml:space="preserve">the description</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_version_lowest"
              c:identifier="fwupd_device_set_version_lowest"
              version="0.9.3">
        <doc xml:space="preserve">Sets the lowest version of firmware the device will accept.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="version_lowest" transfer-ownership="none">
            <doc xml:space="preserve">the description</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string"
              c:identifier="fwupd_device_to_string"
              version="0.9.3">
        <doc xml:space="preserve">Builds a text representation of the object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">text, or %NULL for invalid</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="to_variant"
              c:identifier="fwupd_device_to_variant"
              version="1.0.0">
        <doc xml:space="preserve">Creates a GVariant from the device data omitting sensitive fields</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the GVariant, or %NULL for error</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="to_variant_full"
              c:identifier="fwupd_device_to_variant_full"
              version="1.1.2">
        <doc xml:space="preserve">Creates a GVariant from the device data.
Optionally provides additional data based upon flags</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the GVariant, or %NULL for error</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdDevice</doc>
            <type name="Device" c:type="FwupdDevice*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">#FwupdDeviceFlags for the call</doc>
            <type name="DeviceFlags" c:type="FwupdDeviceFlags"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="DeviceClass"
            c:type="FwupdDeviceClass"
            glib:is-gtype-struct-for="Device">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_fwupd_reserved1" introspectable="0">
        <callback name="_fwupd_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved2" introspectable="0">
        <callback name="_fwupd_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved3" introspectable="0">
        <callback name="_fwupd_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved4" introspectable="0">
        <callback name="_fwupd_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved5" introspectable="0">
        <callback name="_fwupd_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved6" introspectable="0">
        <callback name="_fwupd_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved7" introspectable="0">
        <callback name="_fwupd_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="Error"
                 c:type="FwupdError"
                 glib:error-domain="FwupdError">
      <doc xml:space="preserve">The error code.</doc>
      <member name="internal" value="0" c:identifier="FWUPD_ERROR_INTERNAL">
        <doc xml:space="preserve">Internal error</doc>
      </member>
      <member name="version_newer"
              value="1"
              c:identifier="FWUPD_ERROR_VERSION_NEWER">
        <doc xml:space="preserve">Installed newer firmware version</doc>
      </member>
      <member name="version_same"
              value="2"
              c:identifier="FWUPD_ERROR_VERSION_SAME">
        <doc xml:space="preserve">Installed same firmware version</doc>
      </member>
      <member name="already_pending"
              value="3"
              c:identifier="FWUPD_ERROR_ALREADY_PENDING">
        <doc xml:space="preserve">Already set be be installed offline</doc>
      </member>
      <member name="auth_failed"
              value="4"
              c:identifier="FWUPD_ERROR_AUTH_FAILED">
        <doc xml:space="preserve">Failed to get authentication</doc>
      </member>
      <member name="read" value="5" c:identifier="FWUPD_ERROR_READ">
        <doc xml:space="preserve">Failed to read from device</doc>
      </member>
      <member name="write" value="6" c:identifier="FWUPD_ERROR_WRITE">
        <doc xml:space="preserve">Failed to write to the device</doc>
      </member>
      <member name="invalid_file"
              value="7"
              c:identifier="FWUPD_ERROR_INVALID_FILE">
        <doc xml:space="preserve">Invalid file format</doc>
      </member>
      <member name="not_found" value="8" c:identifier="FWUPD_ERROR_NOT_FOUND">
        <doc xml:space="preserve">No matching device exists</doc>
      </member>
      <member name="nothing_to_do"
              value="9"
              c:identifier="FWUPD_ERROR_NOTHING_TO_DO">
        <doc xml:space="preserve">Nothing to do</doc>
      </member>
      <member name="not_supported"
              value="10"
              c:identifier="FWUPD_ERROR_NOT_SUPPORTED">
        <doc xml:space="preserve">Action was not possible</doc>
      </member>
      <member name="signature_invalid"
              value="11"
              c:identifier="FWUPD_ERROR_SIGNATURE_INVALID">
        <doc xml:space="preserve">Signature was invalid</doc>
      </member>
      <member name="ac_power_required"
              value="12"
              c:identifier="FWUPD_ERROR_AC_POWER_REQUIRED">
        <doc xml:space="preserve">AC power was required</doc>
      </member>
      <member name="permission_denied"
              value="13"
              c:identifier="FWUPD_ERROR_PERMISSION_DENIED">
        <doc xml:space="preserve">Permission was denied</doc>
      </member>
    </enumeration>
    <bitfield name="InstallFlags" c:type="FwupdInstallFlags">
      <doc xml:space="preserve">Flags to set when performing the firwmare update or install.</doc>
      <member name="none" value="0" c:identifier="FWUPD_INSTALL_FLAG_NONE">
        <doc xml:space="preserve">No flags set</doc>
      </member>
      <member name="offline"
              value="1"
              c:identifier="FWUPD_INSTALL_FLAG_OFFLINE">
        <doc xml:space="preserve">Schedule this for next boot</doc>
      </member>
      <member name="allow_reinstall"
              value="2"
              c:identifier="FWUPD_INSTALL_FLAG_ALLOW_REINSTALL">
        <doc xml:space="preserve">Allow reinstalling the same version</doc>
      </member>
      <member name="allow_older"
              value="4"
              c:identifier="FWUPD_INSTALL_FLAG_ALLOW_OLDER">
        <doc xml:space="preserve">Allow downgrading firmware</doc>
      </member>
      <member name="force" value="8" c:identifier="FWUPD_INSTALL_FLAG_FORCE">
        <doc xml:space="preserve">Force the update even if not a good idea</doc>
      </member>
      <member name="no_history"
              value="16"
              c:identifier="FWUPD_INSTALL_FLAG_NO_HISTORY">
        <doc xml:space="preserve">Do not write to the history database</doc>
      </member>
    </bitfield>
    <enumeration name="KeyringKind" c:type="FwupdKeyringKind">
      <doc xml:space="preserve">The update state.</doc>
      <member name="unknown"
              value="0"
              c:identifier="FWUPD_KEYRING_KIND_UNKNOWN">
        <doc xml:space="preserve">Unknown</doc>
      </member>
      <member name="none" value="1" c:identifier="FWUPD_KEYRING_KIND_NONE">
        <doc xml:space="preserve">No verification</doc>
      </member>
      <member name="gpg" value="2" c:identifier="FWUPD_KEYRING_KIND_GPG">
        <doc xml:space="preserve">Verification using GPG</doc>
      </member>
      <member name="pkcs7" value="3" c:identifier="FWUPD_KEYRING_KIND_PKCS7">
        <doc xml:space="preserve">Verification using PKCS7</doc>
      </member>
    </enumeration>
    <constant name="RESULT_KEY_APPSTREAM_ID"
              value="AppstreamId"
              c:type="FWUPD_RESULT_KEY_APPSTREAM_ID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_CHECKSUM"
              value="Checksum"
              c:type="FWUPD_RESULT_KEY_CHECKSUM">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_CREATED"
              value="Created"
              c:type="FWUPD_RESULT_KEY_CREATED">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_DESCRIPTION"
              value="Description"
              c:type="FWUPD_RESULT_KEY_DESCRIPTION">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_DEVICE_ID"
              value="DeviceId"
              c:type="FWUPD_RESULT_KEY_DEVICE_ID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_FILENAME"
              value="Filename"
              c:type="FWUPD_RESULT_KEY_FILENAME">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_FLAGS"
              value="Flags"
              c:type="FWUPD_RESULT_KEY_FLAGS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_FLASHES_LEFT"
              value="FlashesLeft"
              c:type="FWUPD_RESULT_KEY_FLASHES_LEFT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_GUID"
              value="Guid"
              c:type="FWUPD_RESULT_KEY_GUID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_HOMEPAGE"
              value="Homepage"
              c:type="FWUPD_RESULT_KEY_HOMEPAGE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_ICON"
              value="Icon"
              c:type="FWUPD_RESULT_KEY_ICON">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_INSTALL_DURATION"
              value="InstallDuration"
              c:type="FWUPD_RESULT_KEY_INSTALL_DURATION">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_LICENSE"
              value="License"
              c:type="FWUPD_RESULT_KEY_LICENSE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_METADATA"
              value="Metadata"
              c:type="FWUPD_RESULT_KEY_METADATA">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_MODIFIED"
              value="Modified"
              c:type="FWUPD_RESULT_KEY_MODIFIED">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_NAME"
              value="Name"
              c:type="FWUPD_RESULT_KEY_NAME">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_PARENT_DEVICE_ID"
              value="ParentDeviceId"
              c:type="FWUPD_RESULT_KEY_PARENT_DEVICE_ID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_PLUGIN"
              value="Plugin"
              c:type="FWUPD_RESULT_KEY_PLUGIN">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_RELEASE"
              value="Release"
              c:type="FWUPD_RESULT_KEY_RELEASE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_REMOTE_ID"
              value="RemoteId"
              c:type="FWUPD_RESULT_KEY_REMOTE_ID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_SERIAL"
              value="Serial"
              c:type="FWUPD_RESULT_KEY_SERIAL">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_SIZE"
              value="Size"
              c:type="FWUPD_RESULT_KEY_SIZE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_SUMMARY"
              value="Summary"
              c:type="FWUPD_RESULT_KEY_SUMMARY">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_TRUST_FLAGS"
              value="TrustFlags"
              c:type="FWUPD_RESULT_KEY_TRUST_FLAGS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_UPDATE_ERROR"
              value="UpdateError"
              c:type="FWUPD_RESULT_KEY_UPDATE_ERROR">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_UPDATE_STATE"
              value="UpdateState"
              c:type="FWUPD_RESULT_KEY_UPDATE_STATE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_URI" value="Uri" c:type="FWUPD_RESULT_KEY_URI">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_VENDOR"
              value="Vendor"
              c:type="FWUPD_RESULT_KEY_VENDOR">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_VENDOR_ID"
              value="VendorId"
              c:type="FWUPD_RESULT_KEY_VENDOR_ID">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_VERSION"
              value="Version"
              c:type="FWUPD_RESULT_KEY_VERSION">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_VERSION_BOOTLOADER"
              value="VersionBootloader"
              c:type="FWUPD_RESULT_KEY_VERSION_BOOTLOADER">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RESULT_KEY_VERSION_LOWEST"
              value="VersionLowest"
              c:type="FWUPD_RESULT_KEY_VERSION_LOWEST">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Release"
           c:symbol-prefix="release"
           c:type="FwupdRelease"
           parent="GObject.Object"
           glib:type-name="FwupdRelease"
           glib:get-type="fwupd_release_get_type"
           glib:type-struct="ReleaseClass">
      <constructor name="new" c:identifier="fwupd_release_new" version="0.9.3">
        <doc xml:space="preserve">Creates a new release.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #FwupdRelease</doc>
          <type name="Release" c:type="FwupdRelease*"/>
        </return-value>
      </constructor>
      <function name="from_variant"
                c:identifier="fwupd_release_from_variant"
                version="1.0.0">
        <doc xml:space="preserve">Creates a new release using packed data.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #FwupdRelease, or %NULL if @data was invalid</doc>
          <type name="Release" c:type="FwupdRelease*"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">a #GVariant</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </function>
      <method name="add_checksum"
              c:identifier="fwupd_release_add_checksum"
              version="0.9.3">
        <doc xml:space="preserve">Sets the update checksum.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="checksum" transfer-ownership="none">
            <doc xml:space="preserve">the update checksum</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_metadata"
              c:identifier="fwupd_release_add_metadata"
              version="1.0.4">
        <doc xml:space="preserve">Sets multiple release metadata items.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="hash" transfer-ownership="none">
            <doc xml:space="preserve">the key-values</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="add_metadata_item"
              c:identifier="fwupd_release_add_metadata_item"
              version="1.0.4">
        <doc xml:space="preserve">Sets a release metadata item.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_appstream_id"
              c:identifier="fwupd_release_get_appstream_id"
              version="0.9.3">
        <doc xml:space="preserve">Gets the AppStream ID.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the AppStream ID, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_checksums"
              c:identifier="fwupd_release_get_checksums"
              version="0.9.3">
        <doc xml:space="preserve">Gets the release checksums.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the checksums, which may be empty</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="fwupd_release_get_description"
              version="0.9.3">
        <doc xml:space="preserve">Gets the update description in AppStream markup format.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the update description, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_filename"
              c:identifier="fwupd_release_get_filename"
              version="0.9.3">
        <doc xml:space="preserve">Gets the update filename.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the update filename, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_homepage"
              c:identifier="fwupd_release_get_homepage"
              version="0.9.3">
        <doc xml:space="preserve">Gets the update homepage.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the update homepage, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_install_duration"
              c:identifier="fwupd_release_get_install_duration"
              version="1.2.1">
        <doc xml:space="preserve">Gets the time estimate for firmware installation (in seconds)</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the estimated time to flash this release (or 0 if unset)</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_license"
              c:identifier="fwupd_release_get_license"
              version="0.9.3">
        <doc xml:space="preserve">Gets the update license.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the update license, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_metadata"
              c:identifier="fwupd_release_get_metadata"
              version="1.0.4">
        <doc xml:space="preserve">Gets the release metadata.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the metadata, which may be empty</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_metadata_item"
              c:identifier="fwupd_release_get_metadata_item"
              version="1.0.4">
        <doc xml:space="preserve">Gets a release metadata item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the value, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="fwupd_release_get_name"
              version="0.9.3">
        <doc xml:space="preserve">Gets the update name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the update name, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_remote_id"
              c:identifier="fwupd_release_get_remote_id"
              version="0.9.3">
        <doc xml:space="preserve">Gets the remote ID that can be used for downloading.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the ID, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size"
              c:identifier="fwupd_release_get_size"
              version="0.9.3">
        <doc xml:space="preserve">Gets the update size.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the update size in bytes, or 0 if unset</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_summary"
              c:identifier="fwupd_release_get_summary"
              version="0.9.3">
        <doc xml:space="preserve">Gets the update summary.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the update summary, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_trust_flags"
              c:identifier="fwupd_release_get_trust_flags"
              version="0.9.8">
        <doc xml:space="preserve">Gets the trust level of the release.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the trust bitfield, e.g. #FWUPD_TRUST_FLAG_PAYLOAD</doc>
          <type name="TrustFlags" c:type="FwupdTrustFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri"
              c:identifier="fwupd_release_get_uri"
              version="0.9.3">
        <doc xml:space="preserve">Gets the update uri.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the update uri, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vendor"
              c:identifier="fwupd_release_get_vendor"
              version="0.9.3">
        <doc xml:space="preserve">Gets the update vendor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the update vendor, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_version"
              c:identifier="fwupd_release_get_version"
              version="0.9.3">
        <doc xml:space="preserve">Gets the update version.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the update version, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_appstream_id"
              c:identifier="fwupd_release_set_appstream_id"
              version="0.9.3">
        <doc xml:space="preserve">Sets the AppStream ID.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="appstream_id" transfer-ownership="none">
            <doc xml:space="preserve">the AppStream component ID, e.g. `org.hughski.ColorHug2.firmware`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_description"
              c:identifier="fwupd_release_set_description"
              version="0.9.3">
        <doc xml:space="preserve">Sets the update description.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve">the update description in AppStream markup format</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_filename"
              c:identifier="fwupd_release_set_filename"
              version="0.9.3">
        <doc xml:space="preserve">Sets the update filename.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">the update filename on disk</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_homepage"
              c:identifier="fwupd_release_set_homepage"
              version="0.9.3">
        <doc xml:space="preserve">Sets the update homepage.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="homepage" transfer-ownership="none">
            <doc xml:space="preserve">the description</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_install_duration"
              c:identifier="fwupd_release_set_install_duration"
              version="1.2.1">
        <doc xml:space="preserve">Sets the time estimate for firmware installation (in seconds)</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="duration" transfer-ownership="none">
            <doc xml:space="preserve">The amount of time</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_license"
              c:identifier="fwupd_release_set_license"
              version="0.9.3">
        <doc xml:space="preserve">Sets the update license.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve">the description</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name"
              c:identifier="fwupd_release_set_name"
              version="0.9.3">
        <doc xml:space="preserve">Sets the update name.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the description</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_remote_id"
              c:identifier="fwupd_release_set_remote_id"
              version="0.9.3">
        <doc xml:space="preserve">Sets the remote ID that can be used for downloading.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="remote_id" transfer-ownership="none">
            <doc xml:space="preserve">the release ID, e.g. `USB:foo`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size"
              c:identifier="fwupd_release_set_size"
              version="0.9.3">
        <doc xml:space="preserve">Sets the update size.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the update size in bytes</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_summary"
              c:identifier="fwupd_release_set_summary"
              version="0.9.3">
        <doc xml:space="preserve">Sets the update summary.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="summary" transfer-ownership="none">
            <doc xml:space="preserve">the update one line summary</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_trust_flags"
              c:identifier="fwupd_release_set_trust_flags"
              version="0.9.8">
        <doc xml:space="preserve">Sets the trust level of the release.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="trust_flags" transfer-ownership="none">
            <doc xml:space="preserve">the bitfield, e.g. #FWUPD_TRUST_FLAG_PAYLOAD</doc>
            <type name="TrustFlags" c:type="FwupdTrustFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uri"
              c:identifier="fwupd_release_set_uri"
              version="0.9.3">
        <doc xml:space="preserve">Sets the update uri, i.e. where you can download the firmware from.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the update URI</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_vendor"
              c:identifier="fwupd_release_set_vendor"
              version="0.9.3">
        <doc xml:space="preserve">Sets the update vendor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="vendor" transfer-ownership="none">
            <doc xml:space="preserve">the vendor name, e.g. `Hughski Limited`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_version"
              c:identifier="fwupd_release_set_version"
              version="0.9.3">
        <doc xml:space="preserve">Sets the update version.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
          <parameter name="version" transfer-ownership="none">
            <doc xml:space="preserve">the update version, e.g. `1.2.4`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string"
              c:identifier="fwupd_release_to_string"
              version="0.9.3">
        <doc xml:space="preserve">Builds a text representation of the object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">text, or %NULL for invalid</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="to_variant"
              c:identifier="fwupd_release_to_variant"
              version="1.0.0">
        <doc xml:space="preserve">Creates a GVariant from the release data.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the GVariant, or %NULL for error</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRelease</doc>
            <type name="Release" c:type="FwupdRelease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ReleaseClass"
            c:type="FwupdReleaseClass"
            glib:is-gtype-struct-for="Release">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_fwupd_reserved1" introspectable="0">
        <callback name="_fwupd_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved2" introspectable="0">
        <callback name="_fwupd_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved3" introspectable="0">
        <callback name="_fwupd_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved4" introspectable="0">
        <callback name="_fwupd_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved5" introspectable="0">
        <callback name="_fwupd_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved6" introspectable="0">
        <callback name="_fwupd_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved7" introspectable="0">
        <callback name="_fwupd_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="Remote"
           c:symbol-prefix="remote"
           c:type="FwupdRemote"
           parent="GObject.Object"
           glib:type-name="FwupdRemote"
           glib:get-type="fwupd_remote_get_type"
           glib:type-struct="RemoteClass">
      <constructor name="new" c:identifier="fwupd_remote_new" version="0.9.3">
        <doc xml:space="preserve">Creates a new fwupd remote.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #FwupdRemote</doc>
          <type name="Remote" c:type="FwupdRemote*"/>
        </return-value>
      </constructor>
      <function name="from_variant"
                c:identifier="fwupd_remote_from_variant"
                version="1.0.0">
        <doc xml:space="preserve">Creates a new remote using packed data.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #FwupdRemote, or %NULL if @data was invalid</doc>
          <type name="Remote" c:type="FwupdRemote*"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">a #GVariant</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_from_string"
                c:identifier="fwupd_remote_kind_from_string"
                version="0.9.6">
        <doc xml:space="preserve">Converts an printable string to an enumerated type.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #FwupdRemoteKind, e.g. %FWUPD_REMOTE_KIND_DOWNLOAD</doc>
          <type name="RemoteKind" c:type="FwupdRemoteKind"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">a string, e.g. `download`</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="kind_to_string"
                c:identifier="fwupd_remote_kind_to_string"
                version="0.9.6">
        <doc xml:space="preserve">Converts an enumerated type to a printable string.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string, e.g. `download`</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">a #FwupdRemoteKind, e.g. %FWUPD_REMOTE_KIND_DOWNLOAD</doc>
            <type name="RemoteKind" c:type="FwupdRemoteKind"/>
          </parameter>
        </parameters>
      </function>
      <method name="build_firmware_uri"
              c:identifier="fwupd_remote_build_firmware_uri"
              version="0.9.7"
              throws="1">
        <doc xml:space="preserve">Builds a URI for the URL using the username and password set for the remote,
including any basename URI substitution.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a URI, or %NULL for error</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">the URL to use</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_age"
              c:identifier="fwupd_remote_get_age"
              version="0.9.5">
        <doc xml:space="preserve">Gets the age of the remote in seconds.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a age, or %G_MAXUINT64 for unavailable</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_agreement"
              c:identifier="fwupd_remote_get_agreement"
              version="1.0.7">
        <doc xml:space="preserve">Gets the remote agreement in AppStream markup format</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_checksum"
              c:identifier="fwupd_remote_get_checksum"
              version="1.0.0">
        <doc xml:space="preserve">Gets the remote checksum.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_enabled"
              c:identifier="fwupd_remote_get_enabled"
              version="0.9.3">
        <doc xml:space="preserve">Gets if the remote is enabled and should be used.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #TRUE if the remote is enabled</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_filename_cache"
              c:identifier="fwupd_remote_get_filename_cache"
              version="0.9.6">
        <doc xml:space="preserve">Gets the path and filename that the remote is using for a cache.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string, or %NULL for unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_filename_cache_sig"
              c:identifier="fwupd_remote_get_filename_cache_sig"
              version="0.9.7">
        <doc xml:space="preserve">Gets the path and filename that the remote is using for a signature cache.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string, or %NULL for unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_filename_source"
              c:identifier="fwupd_remote_get_filename_source"
              version="0.9.8">
        <doc xml:space="preserve">Gets the path and filename of the remote itself, typically a `.conf` file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string, or %NULL for unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_firmware_base_uri"
              c:identifier="fwupd_remote_get_firmware_base_uri"
              version="0.9.7">
        <doc xml:space="preserve">Gets the base URI for firmware.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a URI, or %NULL for unset.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="fwupd_remote_get_id" version="0.9.3">
        <doc xml:space="preserve">Gets the remote ID, e.g. `lvfs-testing`.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_keyring_kind"
              c:identifier="fwupd_remote_get_keyring_kind"
              version="0.9.7">
        <doc xml:space="preserve">Gets the keyring kind of the remote.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #FwupdKeyringKind, e.g. #FWUPD_KEYRING_KIND_GPG</doc>
          <type name="KeyringKind" c:type="FwupdKeyringKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kind"
              c:identifier="fwupd_remote_get_kind"
              version="0.9.6">
        <doc xml:space="preserve">Gets the kind of the remote.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #FwupdRemoteKind, e.g. #FWUPD_REMOTE_KIND_LOCAL</doc>
          <type name="RemoteKind" c:type="FwupdRemoteKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_metadata_uri"
              c:identifier="fwupd_remote_get_metadata_uri"
              version="0.9.7">
        <doc xml:space="preserve">Gets the URI for the remote metadata.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a URI, or %NULL for invalid.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_metadata_uri_sig"
              c:identifier="fwupd_remote_get_metadata_uri_sig"
              version="0.9.7">
        <doc xml:space="preserve">Gets the URI for the remote metadata signature.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a URI, or %NULL for invalid.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_order_after"
              c:identifier="fwupd_remote_get_order_after"
              version="0.9.5">
        <doc xml:space="preserve">Gets the list of remotes this plugin should be ordered after.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_order_before"
              c:identifier="fwupd_remote_get_order_before"
              version="0.9.5">
        <doc xml:space="preserve">Gets the list of remotes this plugin should be ordered before.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an array</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_password"
              c:identifier="fwupd_remote_get_password"
              version="0.9.5">
        <doc xml:space="preserve">Gets the password configured for the remote.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string, or %NULL for unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_priority"
              c:identifier="fwupd_remote_get_priority"
              version="0.9.5">
        <doc xml:space="preserve">Gets the priority of the remote, where bigger numbers are better.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a priority, or 0 for the default value</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_report_uri"
              c:identifier="fwupd_remote_get_report_uri"
              version="1.0.4">
        <doc xml:space="preserve">Gets the URI for the remote reporting.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a URI, or %NULL for invalid.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title"
              c:identifier="fwupd_remote_get_title"
              version="0.9.8">
        <doc xml:space="preserve">Gets the remote title, e.g. `Linux Vendor Firmware Service`.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string, or %NULL if unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_username"
              c:identifier="fwupd_remote_get_username"
              version="0.9.5">
        <doc xml:space="preserve">Gets the username configured for the remote.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string, or %NULL for unset</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_from_filename"
              c:identifier="fwupd_remote_load_from_filename"
              version="0.9.3"
              throws="1">
        <doc xml:space="preserve">Sets up the remote ready for use. Most other methods call this
for you, and do you only need to call this if you are just watching
the self.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">A filename</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_agreement"
              c:identifier="fwupd_remote_set_agreement"
              version="1.0.7">
        <doc xml:space="preserve">Sets the remote agreement in AppStream markup format</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
          <parameter name="agreement" transfer-ownership="none">
            <doc xml:space="preserve">Agreement markup</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mtime"
              c:identifier="fwupd_remote_set_mtime"
              version="0.9.5">
        <doc xml:space="preserve">Sets the plugin modification time.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
          <parameter name="mtime" transfer-ownership="none">
            <doc xml:space="preserve">a UNIX itmestamp</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_priority"
              c:identifier="fwupd_remote_set_priority"
              version="0.9.5">
        <doc xml:space="preserve">Sets the plugin priority.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:space="preserve">an integer, where 1 is better</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_variant"
              c:identifier="fwupd_remote_to_variant"
              version="1.0.0">
        <doc xml:space="preserve">Creates a GVariant from the remote data.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the GVariant, or %NULL for error</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #FwupdRemote</doc>
            <type name="Remote" c:type="FwupdRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="enabled"
                version="0.9.3"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">If the remote is enabled and should be used.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="id"
                version="0.9.3"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The remote ID.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="RemoteClass"
            c:type="FwupdRemoteClass"
            glib:is-gtype-struct-for="Remote">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_fwupd_reserved1" introspectable="0">
        <callback name="_fwupd_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved2" introspectable="0">
        <callback name="_fwupd_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved3" introspectable="0">
        <callback name="_fwupd_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved4" introspectable="0">
        <callback name="_fwupd_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved5" introspectable="0">
        <callback name="_fwupd_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved6" introspectable="0">
        <callback name="_fwupd_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_fwupd_reserved7" introspectable="0">
        <callback name="_fwupd_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="RemoteKind" c:type="FwupdRemoteKind">
      <doc xml:space="preserve">The kind of remote.</doc>
      <member name="unknown"
              value="0"
              c:identifier="FWUPD_REMOTE_KIND_UNKNOWN">
        <doc xml:space="preserve">Unknown kind</doc>
      </member>
      <member name="download"
              value="1"
              c:identifier="FWUPD_REMOTE_KIND_DOWNLOAD">
        <doc xml:space="preserve">Requires files to be downloaded</doc>
      </member>
      <member name="local" value="2" c:identifier="FWUPD_REMOTE_KIND_LOCAL">
        <doc xml:space="preserve">Reads files from the local machine</doc>
      </member>
    </enumeration>
    <enumeration name="Status" c:type="FwupdStatus">
      <doc xml:space="preserve">The flags to show daemon status.</doc>
      <member name="unknown" value="0" c:identifier="FWUPD_STATUS_UNKNOWN">
        <doc xml:space="preserve">Unknown state</doc>
      </member>
      <member name="idle" value="1" c:identifier="FWUPD_STATUS_IDLE">
        <doc xml:space="preserve">Idle</doc>
      </member>
      <member name="loading" value="2" c:identifier="FWUPD_STATUS_LOADING">
        <doc xml:space="preserve">Loading a resource</doc>
      </member>
      <member name="decompressing"
              value="3"
              c:identifier="FWUPD_STATUS_DECOMPRESSING">
        <doc xml:space="preserve">Decompressing firmware</doc>
      </member>
      <member name="device_restart"
              value="4"
              c:identifier="FWUPD_STATUS_DEVICE_RESTART">
        <doc xml:space="preserve">Restarting the device</doc>
      </member>
      <member name="device_write"
              value="5"
              c:identifier="FWUPD_STATUS_DEVICE_WRITE">
        <doc xml:space="preserve">Writing to a device</doc>
      </member>
      <member name="device_verify"
              value="6"
              c:identifier="FWUPD_STATUS_DEVICE_VERIFY">
        <doc xml:space="preserve">Verifying (reading) a device</doc>
      </member>
      <member name="scheduling"
              value="7"
              c:identifier="FWUPD_STATUS_SCHEDULING">
        <doc xml:space="preserve">Scheduling an offline update</doc>
      </member>
      <member name="downloading"
              value="8"
              c:identifier="FWUPD_STATUS_DOWNLOADING">
        <doc xml:space="preserve">A file is downloading</doc>
      </member>
      <member name="device_read"
              value="9"
              c:identifier="FWUPD_STATUS_DEVICE_READ">
        <doc xml:space="preserve">Reading from a device</doc>
      </member>
      <member name="device_erase"
              value="10"
              c:identifier="FWUPD_STATUS_DEVICE_ERASE">
        <doc xml:space="preserve">Erasing a device</doc>
      </member>
      <member name="waiting_for_auth"
              value="11"
              c:identifier="FWUPD_STATUS_WAITING_FOR_AUTH">
        <doc xml:space="preserve">Waiting for authentication</doc>
      </member>
      <member name="device_busy"
              value="12"
              c:identifier="FWUPD_STATUS_DEVICE_BUSY">
        <doc xml:space="preserve">The device is busy</doc>
      </member>
      <member name="shutdown" value="13" c:identifier="FWUPD_STATUS_SHUTDOWN">
        <doc xml:space="preserve">The daemon is shutting down</doc>
      </member>
    </enumeration>
    <bitfield name="TrustFlags" c:type="FwupdTrustFlags">
      <doc xml:space="preserve">The flags to show the level of trust.</doc>
      <member name="none" value="0" c:identifier="FWUPD_TRUST_FLAG_NONE">
        <doc xml:space="preserve">No trust</doc>
      </member>
      <member name="payload" value="1" c:identifier="FWUPD_TRUST_FLAG_PAYLOAD">
        <doc xml:space="preserve">The firmware is trusted</doc>
      </member>
      <member name="metadata"
              value="2"
              c:identifier="FWUPD_TRUST_FLAG_METADATA">
        <doc xml:space="preserve">The metadata is trusted</doc>
      </member>
    </bitfield>
    <enumeration name="UpdateState" c:type="FwupdUpdateState">
      <doc xml:space="preserve">The update state.</doc>
      <member name="unknown"
              value="0"
              c:identifier="FWUPD_UPDATE_STATE_UNKNOWN">
        <doc xml:space="preserve">Unknown</doc>
      </member>
      <member name="pending"
              value="1"
              c:identifier="FWUPD_UPDATE_STATE_PENDING">
        <doc xml:space="preserve">Update is pending</doc>
      </member>
      <member name="success"
              value="2"
              c:identifier="FWUPD_UPDATE_STATE_SUCCESS">
        <doc xml:space="preserve">Update was successfull</doc>
      </member>
      <member name="failed" value="3" c:identifier="FWUPD_UPDATE_STATE_FAILED">
        <doc xml:space="preserve">Update failed</doc>
      </member>
      <member name="needs_reboot"
              value="4"
              c:identifier="FWUPD_UPDATE_STATE_NEEDS_REBOOT">
        <doc xml:space="preserve">Waiting for a reboot to apply</doc>
      </member>
    </enumeration>
    <function name="build_history_report_json"
              c:identifier="fwupd_build_history_report_json"
              version="1.0.4"
              throws="1">
      <doc xml:space="preserve">Builds a JSON report for the list of devices. No filtering is done on the
@devices array, and it is expected that the caller will filter to something
sane, e.g. %FWUPD_DEVICE_FLAG_REPORTED at the bare minimum.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a string, or %NULL if the ID is not present</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="devices" transfer-ownership="none">
          <doc xml:space="preserve">devices</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Device"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="build_machine_id"
              c:identifier="fwupd_build_machine_id"
              version="1.0.4"
              throws="1">
      <doc xml:space="preserve">Gets a salted hash of the /etc/machine-id contents. This can be used to
identify a specific machine. It is not possible to recover the original
machine-id from the machine-hash.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">the SHA256 machine hash, or %NULL if the ID is not present</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="salt" transfer-ownership="none">
          <doc xml:space="preserve">The salt, or %NULL for none</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="build_user_agent"
              c:identifier="fwupd_build_user_agent"
              version="1.0.3">
      <doc xml:space="preserve">Builds a user-agent to use for the download.

Supplying harmless details to the server means it knows more about each
client. This allows the web service to respond in a different way, for
instance sending a different metadata file for old versions of fwupd, or
returning an error for Solaris machines.

Before freaking out about theoretical privacy implications, much more data
than this is sent to each and every website you visit.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a string, e.g. `foo/0.1 (Linux i386 4.14.5; en; Fedora 27) fwupd/1.0.3`</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="package_name" transfer-ownership="none">
          <doc xml:space="preserve">client program name, e.g. "gnome-software"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="package_version" transfer-ownership="none">
          <doc xml:space="preserve">client program version, e.g. "3.28.1"</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="checksum_format_for_display"
              c:identifier="fwupd_checksum_format_for_display"
              version="0.9.3">
      <doc xml:space="preserve">Formats a checksum for display.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">text, or %NULL for invalid</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="checksum" transfer-ownership="none">
          <doc xml:space="preserve">A checksum</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="checksum_get_best"
              c:identifier="fwupd_checksum_get_best"
              version="0.9.4">
      <doc xml:space="preserve">Gets a the best possible checksum kind.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a checksum from the array, or %NULL if nothing was suitable</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="checksums" transfer-ownership="none">
          <doc xml:space="preserve">checksums</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="checksum_get_by_kind"
              c:identifier="fwupd_checksum_get_by_kind"
              version="0.9.4">
      <doc xml:space="preserve">Gets a specific checksum kind.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a checksum from the array, or %NULL if not found</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="checksums" transfer-ownership="none">
          <doc xml:space="preserve">checksums</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </parameter>
        <parameter name="kind" transfer-ownership="none">
          <doc xml:space="preserve">a #GChecksumType, e.g. %G_CHECKSUM_SHA512</doc>
          <type name="GLib.ChecksumType" c:type="GChecksumType"/>
        </parameter>
      </parameters>
    </function>
    <function name="checksum_guess_kind"
              c:identifier="fwupd_checksum_guess_kind"
              version="0.9.3">
      <doc xml:space="preserve">Guesses the checksum kind based on the length of the hash.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GChecksumType, e.g. %G_CHECKSUM_SHA1</doc>
        <type name="GLib.ChecksumType" c:type="GChecksumType"/>
      </return-value>
      <parameters>
        <parameter name="checksum" transfer-ownership="none">
          <doc xml:space="preserve">A checksum</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="error_from_string"
              c:identifier="fwupd_error_from_string"
              version="0.7.0">
      <doc xml:space="preserve">Converts a string to a #FwupdError.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">enumerated value</doc>
        <type name="Error" c:type="FwupdError"/>
      </return-value>
      <parameters>
        <parameter name="error" transfer-ownership="none">
          <doc xml:space="preserve">A string, e.g. `org.freedesktop.fwupd.VersionNewer`</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="error_quark"
              c:identifier="fwupd_error_quark"
              version="0.1.1">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">An error quark.</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="error_to_string"
              c:identifier="fwupd_error_to_string"
              version="0.7.0">
      <doc xml:space="preserve">Converts a #FwupdError to a string.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">identifier string</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="error" transfer-ownership="none">
          <doc xml:space="preserve">A #FwupdError, e.g. %FWUPD_ERROR_VERSION_NEWER</doc>
          <type name="Error" c:type="FwupdError"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_os_release"
              c:identifier="fwupd_get_os_release"
              version="1.0.7"
              throws="1">
      <doc xml:space="preserve">Loads information from the system os-release file.</doc>
      <return-value transfer-ownership="container">
        <doc xml:space="preserve">keys from os-release</doc>
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="utf8"/>
          <type name="utf8"/>
        </type>
      </return-value>
    </function>
    <function name="keyring_kind_from_string"
              c:identifier="fwupd_keyring_kind_from_string"
              version="0.9.7">
      <doc xml:space="preserve">Converts an printable string to an enumerated type.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #FwupdKeyringKind, e.g. %FWUPD_KEYRING_KIND_GPG</doc>
        <type name="KeyringKind" c:type="FwupdKeyringKind"/>
      </return-value>
      <parameters>
        <parameter name="keyring_kind" transfer-ownership="none">
          <doc xml:space="preserve">a string, e.g. `gpg`</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="keyring_kind_to_string"
              c:identifier="fwupd_keyring_kind_to_string"
              version="0.9.7">
      <doc xml:space="preserve">Converts an enumerated type to a printable string.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a string, e.g. `gpg`</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="keyring_kind" transfer-ownership="none">
          <doc xml:space="preserve">a #FwupdKeyringKind, e.g. %FWUPD_KEYRING_KIND_GPG</doc>
          <type name="KeyringKind" c:type="FwupdKeyringKind"/>
        </parameter>
      </parameters>
    </function>
    <function name="status_from_string"
              c:identifier="fwupd_status_from_string"
              version="0.1.1">
      <doc xml:space="preserve">Converts a string to a #FwupdStatus.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">enumerated value</doc>
        <type name="Status" c:type="FwupdStatus"/>
      </return-value>
      <parameters>
        <parameter name="status" transfer-ownership="none">
          <doc xml:space="preserve">A string, e.g. `decompressing`</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="status_to_string"
              c:identifier="fwupd_status_to_string"
              version="0.1.1">
      <doc xml:space="preserve">Converts a #FwupdStatus to a string.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">identifier string</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="status" transfer-ownership="none">
          <doc xml:space="preserve">A #FwupdStatus, e.g. %FWUPD_STATUS_DECOMPRESSING</doc>
          <type name="Status" c:type="FwupdStatus"/>
        </parameter>
      </parameters>
    </function>
    <function name="trust_flag_from_string"
              c:identifier="fwupd_trust_flag_from_string"
              version="0.7.0">
      <doc xml:space="preserve">Converts a string to a #FwupdTrustFlags.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">enumerated value</doc>
        <type name="TrustFlags" c:type="FwupdTrustFlags"/>
      </return-value>
      <parameters>
        <parameter name="trust_flag" transfer-ownership="none">
          <doc xml:space="preserve">A string, e.g. `payload`</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="trust_flag_to_string"
              c:identifier="fwupd_trust_flag_to_string"
              version="0.7.0">
      <doc xml:space="preserve">Converts a #FwupdTrustFlags to a string.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">identifier string</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="trust_flag" transfer-ownership="none">
          <doc xml:space="preserve">A #FwupdTrustFlags, e.g. %FWUPD_TRUST_FLAG_PAYLOAD</doc>
          <type name="TrustFlags" c:type="FwupdTrustFlags"/>
        </parameter>
      </parameters>
    </function>
    <function name="update_state_from_string"
              c:identifier="fwupd_update_state_from_string"
              version="0.7.0">
      <doc xml:space="preserve">Converts a string to a #FwupdUpdateState.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">enumerated value</doc>
        <type name="UpdateState" c:type="FwupdUpdateState"/>
      </return-value>
      <parameters>
        <parameter name="update_state" transfer-ownership="none">
          <doc xml:space="preserve">A string, e.g. `pending`</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="update_state_to_string"
              c:identifier="fwupd_update_state_to_string"
              version="0.7.0">
      <doc xml:space="preserve">Converts a #FwupdUpdateState to a string.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">identifier string</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="update_state" transfer-ownership="none">
          <doc xml:space="preserve">A #FwupdUpdateState, e.g. %FWUPD_UPDATE_STATE_PENDING</doc>
          <type name="UpdateState" c:type="FwupdUpdateState"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
