/*
 * This file is auto-generated, do not modify!
 *
 * SPDX-License-Identifier: LGPL-2.1-or-later
 */

#pragma once
#include <libfwupd/fwupd-build.h>
/**
 * FwupdStatus:
 *
 * The flags to show daemon status.
 */
typedef enum {
    /**
     * FWUPD_STATUS_UNKNOWN:
     *
     * Unknown state.
     */
    FWUPD_STATUS_UNKNOWN,
    /**
     * FWUPD_STATUS_IDLE:
     *
     * Idle.
     */
    FWUPD_STATUS_IDLE,
    /**
     * FWUPD_STATUS_LOADING:
     *
     * Loading a resource.
     */
    FWUPD_STATUS_LOADING,
    /**
     * FWUPD_STATUS_DECOMPRESSING:
     *
     * Decompressing firmware.
     */
    FWUPD_STATUS_DECOMPRESSING,
    /**
     * FWUPD_STATUS_DEVICE_RESTART:
     *
     * Restarting the device.
     */
    FWUPD_STATUS_DEVICE_RESTART,
    /**
     * FWUPD_STATUS_DEVICE_WRITE:
     *
     * Writing to a device.
     */
    FWUPD_STATUS_DEVICE_WRITE,
    /**
     * FWUPD_STATUS_DEVICE_VERIFY:
     *
     * Verifying (reading) a device.
     */
    FWUPD_STATUS_DEVICE_VERIFY,
    /**
     * FWUPD_STATUS_SCHEDULING:
     *
     * Scheduling an update for installation on reboot.
     */
    FWUPD_STATUS_SCHEDULING,
    /**
     * FWUPD_STATUS_DOWNLOADING:
     *
     * A file is downloading.
     */
    FWUPD_STATUS_DOWNLOADING,
    /**
     * FWUPD_STATUS_DEVICE_READ:
     *
     * Reading from a device.
     */
    FWUPD_STATUS_DEVICE_READ,
    /**
     * FWUPD_STATUS_DEVICE_ERASE:
     *
     * Erasing a device.
     */
    FWUPD_STATUS_DEVICE_ERASE,
    /**
     * FWUPD_STATUS_WAITING_FOR_AUTH:
     *
     * Waiting for authentication.
     */
    FWUPD_STATUS_WAITING_FOR_AUTH,
    /**
     * FWUPD_STATUS_DEVICE_BUSY:
     *
     * The device is busy.
     */
    FWUPD_STATUS_DEVICE_BUSY,
    /**
     * FWUPD_STATUS_SHUTDOWN:
     *
     * The daemon is shutting down.
     */
    FWUPD_STATUS_SHUTDOWN,
    /**
     * FWUPD_STATUS_WAITING_FOR_USER:
     *
     * Waiting for an interactive user action.
     */
    FWUPD_STATUS_WAITING_FOR_USER,
}  FwupdStatus;
#define FWUPD_STATUS_LAST 15
const gchar *fwupd_status_to_string(FwupdStatus val) G_GNUC_CONST;
FwupdStatus fwupd_status_from_string(const gchar *val) G_GNUC_CONST G_GNUC_NON_NULL(1);
/**
 * FwupdFeatureFlags:
 *
 * The flags to the feature capabilities of the front-end client.
 */
typedef enum {
    /**
     * FWUPD_FEATURE_FLAG_NONE:
     *
     * No trust.
     */
    FWUPD_FEATURE_FLAG_NONE = 0,
    /**
     * FWUPD_FEATURE_FLAG_CAN_REPORT:
     *
     * Can upload a report of the update back to the server.
     */
    FWUPD_FEATURE_FLAG_CAN_REPORT = 1 << 0,
    /**
     * FWUPD_FEATURE_FLAG_DETACH_ACTION:
     *
     * Can perform detach action, typically showing text.
     */
    FWUPD_FEATURE_FLAG_DETACH_ACTION = 1 << 1,
    /**
     * FWUPD_FEATURE_FLAG_UPDATE_ACTION:
     *
     * Can perform update action, typically showing text.
     */
    FWUPD_FEATURE_FLAG_UPDATE_ACTION = 1 << 2,
    /**
     * FWUPD_FEATURE_FLAG_SWITCH_BRANCH:
     *
     * Can switch the firmware branch.
     */
    FWUPD_FEATURE_FLAG_SWITCH_BRANCH = 1 << 3,
    /**
     * FWUPD_FEATURE_FLAG_REQUESTS:
     *
     * Can show interactive requests.
     */
    FWUPD_FEATURE_FLAG_REQUESTS = 1 << 4,
    /**
     * FWUPD_FEATURE_FLAG_FDE_WARNING:
     *
     * Can warn about full disk encryption.
     */
    FWUPD_FEATURE_FLAG_FDE_WARNING = 1 << 5,
    /**
     * FWUPD_FEATURE_FLAG_COMMUNITY_TEXT:
     *
     * Can show information about community supported.
     */
    FWUPD_FEATURE_FLAG_COMMUNITY_TEXT = 1 << 6,
    /**
     * FWUPD_FEATURE_FLAG_SHOW_PROBLEMS:
     *
     * Can show problems when getting the update list.
     */
    FWUPD_FEATURE_FLAG_SHOW_PROBLEMS = 1 << 7,
    /**
     * FWUPD_FEATURE_FLAG_ALLOW_AUTHENTICATION:
     *
     * Can authenticate with PolicyKit for requests.
     */
    FWUPD_FEATURE_FLAG_ALLOW_AUTHENTICATION = 1 << 8,
    /**
     * FWUPD_FEATURE_FLAG_REQUESTS_NON_GENERIC:
     *
     * Can handle showing non-generic request message text.
     */
    FWUPD_FEATURE_FLAG_REQUESTS_NON_GENERIC = 1 << 9,
    /**
     * FWUPD_FEATURE_FLAG_UNKNOWN:
     *
     * Unknown flag.
     */
    FWUPD_FEATURE_FLAG_UNKNOWN = G_MAXUINT64,
}  FwupdFeatureFlags;
const gchar *fwupd_feature_flag_to_string(FwupdFeatureFlags val) G_GNUC_CONST;
FwupdFeatureFlags fwupd_feature_flag_from_string(const gchar *val) G_GNUC_CONST G_GNUC_NON_NULL(1);
/**
 * FwupdInstallFlags:
 *
 * Flags to set when performing the firmware update or install.
 */
typedef enum {
    /**
     * FWUPD_INSTALL_FLAG_NONE:
     *
     * No flags set.
     */
    FWUPD_INSTALL_FLAG_NONE = 0,
    /**
     * FWUPD_INSTALL_FLAG_ALLOW_REINSTALL:
     *
     * Allow reinstalling the same version.
     */
    FWUPD_INSTALL_FLAG_ALLOW_REINSTALL = 1 << 1,
    /**
     * FWUPD_INSTALL_FLAG_ALLOW_OLDER:
     *
     * Allow downgrading firmware.
     */
    FWUPD_INSTALL_FLAG_ALLOW_OLDER = 1 << 2,
    /**
     * FWUPD_INSTALL_FLAG_FORCE:
     *
     * Force the update even if not a good idea.
     */
    FWUPD_INSTALL_FLAG_FORCE = 1 << 3,
    /**
     * FWUPD_INSTALL_FLAG_NO_HISTORY:
     *
     * Do not write to the history database.
     */
    FWUPD_INSTALL_FLAG_NO_HISTORY = 1 << 4,
    /**
     * FWUPD_INSTALL_FLAG_ALLOW_BRANCH_SWITCH:
     *
     * Allow firmware branch switching.
     */
    FWUPD_INSTALL_FLAG_ALLOW_BRANCH_SWITCH = 1 << 5,
    /**
     * FWUPD_INSTALL_FLAG_IGNORE_CHECKSUM:
     *
     * This is now unused; see #FuFirmwareParseFlags.
     */
    FWUPD_INSTALL_FLAG_IGNORE_CHECKSUM = 1 << 6,
    /**
     * FWUPD_INSTALL_FLAG_IGNORE_VID_PID:
     *
     * This is now unused; see #FuFirmwareParseFlags.
     */
    FWUPD_INSTALL_FLAG_IGNORE_VID_PID = 1 << 7,
    /**
     * FWUPD_INSTALL_FLAG_NO_SEARCH:
     *
     * This is now only for internal use.
     */
    FWUPD_INSTALL_FLAG_NO_SEARCH = 1 << 8,
    /**
     * FWUPD_INSTALL_FLAG_IGNORE_REQUIREMENTS:
     *
     * Ignore version requirement checks.
     */
    FWUPD_INSTALL_FLAG_IGNORE_REQUIREMENTS = 1 << 9,
    /**
     * FWUPD_INSTALL_FLAG_ONLY_EMULATED:
     *
     * Only install to emulated devices.
     */
    FWUPD_INSTALL_FLAG_ONLY_EMULATED = 1 << 10,
    /**
     * FWUPD_INSTALL_FLAG_UNKNOWN:
     *
     * Unknown flag
     */
    FWUPD_INSTALL_FLAG_UNKNOWN = G_MAXUINT64,
}  FwupdInstallFlags;
const gchar *fwupd_install_flags_to_string(FwupdInstallFlags val) G_GNUC_CONST;
FwupdInstallFlags fwupd_install_flags_from_string(const gchar *val) G_GNUC_CONST G_GNUC_NON_NULL(1);
/**
 * FwupdSelfSignFlags:
 *
 * FwupdSelfSignFlags:
 * Flags to set when performing the firmware update or install.
 */
typedef enum {
    /**
     * FWUPD_SELF_SIGN_FLAG_NONE:
     *
     * No flags set.
     */
    FWUPD_SELF_SIGN_FLAG_NONE = 0,
    /**
     * FWUPD_SELF_SIGN_FLAG_ADD_TIMESTAMP:
     *
     * Add the timestamp to the detached signature.
     */
    FWUPD_SELF_SIGN_FLAG_ADD_TIMESTAMP = 1 << 0,
    /**
     * FWUPD_SELF_SIGN_FLAG_ADD_CERT:
     *
     * Add the certificate to the detached signature.
     */
    FWUPD_SELF_SIGN_FLAG_ADD_CERT = 1 << 1,
    /**
     * FWUPD_SELF_SIGN_FLAG_UNKNOWN:
     *
     * Unknown flag
     */
    FWUPD_SELF_SIGN_FLAG_UNKNOWN = G_MAXUINT64,
} G_GNUC_FLAG_ENUM FwupdSelfSignFlags;
/**
 * FwupdUpdateState:
 *
 * The update state.
 */
typedef enum {
    /**
     * FWUPD_UPDATE_STATE_UNKNOWN:
     *
     * Unknown.
     */
    FWUPD_UPDATE_STATE_UNKNOWN,
    /**
     * FWUPD_UPDATE_STATE_PENDING:
     *
     * Update is pending.
     */
    FWUPD_UPDATE_STATE_PENDING,
    /**
     * FWUPD_UPDATE_STATE_SUCCESS:
     *
     * Update was successful.
     */
    FWUPD_UPDATE_STATE_SUCCESS,
    /**
     * FWUPD_UPDATE_STATE_FAILED:
     *
     * Update failed.
     */
    FWUPD_UPDATE_STATE_FAILED,
    /**
     * FWUPD_UPDATE_STATE_NEEDS_REBOOT:
     *
     * Waiting for a reboot to apply.
     */
    FWUPD_UPDATE_STATE_NEEDS_REBOOT,
    /**
     * FWUPD_UPDATE_STATE_FAILED_TRANSIENT:
     *
     * Update failed due to transient issue, e.g. AC power required.
     */
    FWUPD_UPDATE_STATE_FAILED_TRANSIENT,
}  FwupdUpdateState;
#define FWUPD_UPDATE_STATE_LAST 6
const gchar *fwupd_update_state_to_string(FwupdUpdateState val) G_GNUC_CONST;
FwupdUpdateState fwupd_update_state_from_string(const gchar *val) G_GNUC_CONST G_GNUC_NON_NULL(1);
/**
 * FwupdVersionFormat:
 *
 * The flags used when parsing version numbers.
 * If no verification is required then %PLAIN should be used to signify an unparsable text string.
 */
typedef enum {
    /**
     * FWUPD_VERSION_FORMAT_UNKNOWN:
     *
     * Unknown version format.
     */
    FWUPD_VERSION_FORMAT_UNKNOWN,
    /**
     * FWUPD_VERSION_FORMAT_PLAIN:
     *
     * An unidentified format text string.
     */
    FWUPD_VERSION_FORMAT_PLAIN,
    /**
     * FWUPD_VERSION_FORMAT_NUMBER:
     *
     * A single integer version number.
     */
    FWUPD_VERSION_FORMAT_NUMBER,
    /**
     * FWUPD_VERSION_FORMAT_PAIR:
     *
     * Two AABB.CCDD version numbers.
     */
    FWUPD_VERSION_FORMAT_PAIR,
    /**
     * FWUPD_VERSION_FORMAT_TRIPLET:
     *
     * Microsoft-style AA.BB.CCDD version numbers.
     */
    FWUPD_VERSION_FORMAT_TRIPLET,
    /**
     * FWUPD_VERSION_FORMAT_QUAD:
     *
     * UEFI-style AA.BB.CC.DD version numbers.
     */
    FWUPD_VERSION_FORMAT_QUAD,
    /**
     * FWUPD_VERSION_FORMAT_BCD:
     *
     * Binary coded decimal notation.
     */
    FWUPD_VERSION_FORMAT_BCD,
    /**
     * FWUPD_VERSION_FORMAT_INTEL_ME:
     *
     * Intel ME-style bitshifted notation.
     */
    FWUPD_VERSION_FORMAT_INTEL_ME,
    /**
     * FWUPD_VERSION_FORMAT_INTEL_ME2:
     *
     * Intel ME-style A.B.CC.DDDD notation, with offset 11.
     */
    FWUPD_VERSION_FORMAT_INTEL_ME2,
    /**
     * FWUPD_VERSION_FORMAT_SURFACE_LEGACY:
     *
     * Legacy Microsoft Surface 10b.12b.10b.
     */
    FWUPD_VERSION_FORMAT_SURFACE_LEGACY,
    /**
     * FWUPD_VERSION_FORMAT_SURFACE:
     *
     * Microsoft Surface 8b.16b.8b.
     */
    FWUPD_VERSION_FORMAT_SURFACE,
    /**
     * FWUPD_VERSION_FORMAT_DELL_BIOS:
     *
     * Dell BIOS BB.CC.DD style.
     */
    FWUPD_VERSION_FORMAT_DELL_BIOS,
    /**
     * FWUPD_VERSION_FORMAT_HEX:
     *
     * Hexadecimal 0xAABCCDD style.
     */
    FWUPD_VERSION_FORMAT_HEX,
    /**
     * FWUPD_VERSION_FORMAT_DELL_BIOS_MSB:
     *
     * Dell BIOS AA.BB.CC style.
     */
    FWUPD_VERSION_FORMAT_DELL_BIOS_MSB,
    /**
     * FWUPD_VERSION_FORMAT_INTEL_CSME19:
     *
     * Intel ME-style bitshifted notation, with offset 19.
     */
    FWUPD_VERSION_FORMAT_INTEL_CSME19,
    /**
     * FWUPD_VERSION_FORMAT_COMPAL_BIOS:
     *
     * Compal BIOS-style version number, as two hex bytes.
     */
    FWUPD_VERSION_FORMAT_COMPAL_BIOS,
}  FwupdVersionFormat;
#define FWUPD_VERSION_FORMAT_LAST 16
const gchar *fwupd_version_format_to_string(FwupdVersionFormat val) G_GNUC_CONST;
FwupdVersionFormat fwupd_version_format_from_string(const gchar *val) G_GNUC_CONST G_GNUC_NON_NULL(1);
