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

#pragma once
#include <libfwupd/fwupd-build.h>
/**
 * FwupdSecurityAttrFlags:
 *
 * The flags available for HSI attributes.
 */
typedef enum {
    /**
     * FWUPD_SECURITY_ATTR_FLAG_NONE:
     *
     * No flags set.
     */
    FWUPD_SECURITY_ATTR_FLAG_NONE = 0,
    /**
     * FWUPD_SECURITY_ATTR_FLAG_SUCCESS:
     *
     * Success.
     */
    FWUPD_SECURITY_ATTR_FLAG_SUCCESS = 1 << 0,
    /**
     * FWUPD_SECURITY_ATTR_FLAG_OBSOLETED:
     *
     * Obsoleted by another attribute.
     */
    FWUPD_SECURITY_ATTR_FLAG_OBSOLETED = 1 << 1,
    /**
     * FWUPD_SECURITY_ATTR_FLAG_MISSING_DATA:
     *
     * Missing data.
     */
    FWUPD_SECURITY_ATTR_FLAG_MISSING_DATA = 1 << 2,
    /**
     * FWUPD_SECURITY_ATTR_FLAG_RUNTIME_UPDATES:
     *
     * Suffix `U`.
     */
    FWUPD_SECURITY_ATTR_FLAG_RUNTIME_UPDATES = 1 << 8,
    /**
     * FWUPD_SECURITY_ATTR_FLAG_RUNTIME_ATTESTATION:
     *
     * Suffix `A`.
     */
    FWUPD_SECURITY_ATTR_FLAG_RUNTIME_ATTESTATION = 1 << 9,
    /**
     * FWUPD_SECURITY_ATTR_FLAG_RUNTIME_ISSUE:
     *
     * Suffix `!`.
     */
    FWUPD_SECURITY_ATTR_FLAG_RUNTIME_ISSUE = 1 << 10,
    /**
     * FWUPD_SECURITY_ATTR_FLAG_ACTION_CONTACT_OEM:
     *
     * Contact the firmware vendor for an update.
     */
    FWUPD_SECURITY_ATTR_FLAG_ACTION_CONTACT_OEM = 1 << 11,
    /**
     * FWUPD_SECURITY_ATTR_FLAG_ACTION_CONFIG_FW:
     *
     * Failure may be fixed by changing FW config.
     */
    FWUPD_SECURITY_ATTR_FLAG_ACTION_CONFIG_FW = 1 << 12,
    /**
     * FWUPD_SECURITY_ATTR_FLAG_ACTION_CONFIG_OS:
     *
     * Failure may be fixed by changing OS config.
     */
    FWUPD_SECURITY_ATTR_FLAG_ACTION_CONFIG_OS = 1 << 13,
    /**
     * FWUPD_SECURITY_ATTR_FLAG_CAN_FIX:
     *
     * The failure can be automatically fixed.
     */
    FWUPD_SECURITY_ATTR_FLAG_CAN_FIX = 1 << 14,
    /**
     * FWUPD_SECURITY_ATTR_FLAG_CAN_UNDO:
     *
     * The fix can be automatically reverted.
     */
    FWUPD_SECURITY_ATTR_FLAG_CAN_UNDO = 1 << 15,
}  FwupdSecurityAttrFlags;
const gchar *fwupd_security_attr_flag_to_string(FwupdSecurityAttrFlags val) G_GNUC_CONST;
/**
 * FwupdSecurityAttrLevel:
 *
 * The HSI level.
 */
typedef enum {
    /**
     * FWUPD_SECURITY_ATTR_LEVEL_NONE:
     *
     * Very few detected firmware protections.
     */
    FWUPD_SECURITY_ATTR_LEVEL_NONE,
    /**
     * FWUPD_SECURITY_ATTR_LEVEL_CRITICAL:
     *
     * The most basic of security protections.
     */
    FWUPD_SECURITY_ATTR_LEVEL_CRITICAL,
    /**
     * FWUPD_SECURITY_ATTR_LEVEL_IMPORTANT:
     *
     * Firmware security issues considered important.
     */
    FWUPD_SECURITY_ATTR_LEVEL_IMPORTANT,
    /**
     * FWUPD_SECURITY_ATTR_LEVEL_THEORETICAL:
     *
     * Firmware security issues that pose a theoretical concern.
     */
    FWUPD_SECURITY_ATTR_LEVEL_THEORETICAL,
    /**
     * FWUPD_SECURITY_ATTR_LEVEL_SYSTEM_PROTECTION:
     *
     * Out-of-band protection of the system firmware.
     */
    FWUPD_SECURITY_ATTR_LEVEL_SYSTEM_PROTECTION,
    /**
     * FWUPD_SECURITY_ATTR_LEVEL_SYSTEM_ATTESTATION:
     *
     * Out-of-band attestation of the system firmware.
     */
    FWUPD_SECURITY_ATTR_LEVEL_SYSTEM_ATTESTATION,
}  FwupdSecurityAttrLevel;
#define FWUPD_SECURITY_ATTR_LEVEL_LAST 6
/**
 * FwupdSecurityAttrResult:
 *
 * The HSI result.
 */
typedef enum {
    /**
     * FWUPD_SECURITY_ATTR_RESULT_UNKNOWN:
     *
     * Not known.
     */
    FWUPD_SECURITY_ATTR_RESULT_UNKNOWN,
    /**
     * FWUPD_SECURITY_ATTR_RESULT_ENABLED:
     *
     * Enabled.
     */
    FWUPD_SECURITY_ATTR_RESULT_ENABLED,
    /**
     * FWUPD_SECURITY_ATTR_RESULT_NOT_ENABLED:
     *
     * Not enabled.
     */
    FWUPD_SECURITY_ATTR_RESULT_NOT_ENABLED,
    /**
     * FWUPD_SECURITY_ATTR_RESULT_VALID:
     *
     * Valid.
     */
    FWUPD_SECURITY_ATTR_RESULT_VALID,
    /**
     * FWUPD_SECURITY_ATTR_RESULT_NOT_VALID:
     *
     * Not valid.
     */
    FWUPD_SECURITY_ATTR_RESULT_NOT_VALID,
    /**
     * FWUPD_SECURITY_ATTR_RESULT_LOCKED:
     *
     * Locked.
     */
    FWUPD_SECURITY_ATTR_RESULT_LOCKED,
    /**
     * FWUPD_SECURITY_ATTR_RESULT_NOT_LOCKED:
     *
     * Not locked.
     */
    FWUPD_SECURITY_ATTR_RESULT_NOT_LOCKED,
    /**
     * FWUPD_SECURITY_ATTR_RESULT_ENCRYPTED:
     *
     * Encrypted.
     */
    FWUPD_SECURITY_ATTR_RESULT_ENCRYPTED,
    /**
     * FWUPD_SECURITY_ATTR_RESULT_NOT_ENCRYPTED:
     *
     * Not encrypted.
     */
    FWUPD_SECURITY_ATTR_RESULT_NOT_ENCRYPTED,
    /**
     * FWUPD_SECURITY_ATTR_RESULT_TAINTED:
     *
     * Tainted.
     */
    FWUPD_SECURITY_ATTR_RESULT_TAINTED,
    /**
     * FWUPD_SECURITY_ATTR_RESULT_NOT_TAINTED:
     *
     * Not tainted.
     */
    FWUPD_SECURITY_ATTR_RESULT_NOT_TAINTED,
    /**
     * FWUPD_SECURITY_ATTR_RESULT_FOUND:
     *
     * Found.
     */
    FWUPD_SECURITY_ATTR_RESULT_FOUND,
    /**
     * FWUPD_SECURITY_ATTR_RESULT_NOT_FOUND:
     *
     * Not found.
     */
    FWUPD_SECURITY_ATTR_RESULT_NOT_FOUND,
    /**
     * FWUPD_SECURITY_ATTR_RESULT_SUPPORTED:
     *
     * Supported.
     */
    FWUPD_SECURITY_ATTR_RESULT_SUPPORTED,
    /**
     * FWUPD_SECURITY_ATTR_RESULT_NOT_SUPPORTED:
     *
     * Not supported.
     */
    FWUPD_SECURITY_ATTR_RESULT_NOT_SUPPORTED,
}  FwupdSecurityAttrResult;
#define FWUPD_SECURITY_ATTR_RESULT_LAST 15
const gchar *fwupd_security_attr_result_to_string(FwupdSecurityAttrResult val) G_GNUC_CONST;
