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

#pragma once
#include <fu-input-stream.h>
/**
 * FuLenovoDockDsaType:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_DSA_TYPE_NONE:
     */
    FU_LENOVO_DOCK_DSA_TYPE_NONE = 0x00,
    /**
     * FU_LENOVO_DOCK_DSA_TYPE_RSA2048:
     */
    FU_LENOVO_DOCK_DSA_TYPE_RSA2048 = 0x01,
    /**
     * FU_LENOVO_DOCK_DSA_TYPE_RSA3072:
     */
    FU_LENOVO_DOCK_DSA_TYPE_RSA3072 = 0x02,
    /**
     * FU_LENOVO_DOCK_DSA_TYPE_ECC256:
     */
    FU_LENOVO_DOCK_DSA_TYPE_ECC256 = 0x10,
    /**
     * FU_LENOVO_DOCK_DSA_TYPE_ECC384:
     */
    FU_LENOVO_DOCK_DSA_TYPE_ECC384 = 0x11,
}  FuLenovoDockDsaType;
/**
 * FuLenovoDockComponentId:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_COMPONENT_ID_NONE:
     */
    FU_LENOVO_DOCK_COMPONENT_ID_NONE = 0x00,
    /**
     * FU_LENOVO_DOCK_COMPONENT_ID_DMC:
     */
    FU_LENOVO_DOCK_COMPONENT_ID_DMC = 0x01,
    /**
     * FU_LENOVO_DOCK_COMPONENT_ID_DP:
     */
    FU_LENOVO_DOCK_COMPONENT_ID_DP = 0x02,
    /**
     * FU_LENOVO_DOCK_COMPONENT_ID_PD:
     */
    FU_LENOVO_DOCK_COMPONENT_ID_PD = 0x03,
    /**
     * FU_LENOVO_DOCK_COMPONENT_ID_USB3:
     */
    FU_LENOVO_DOCK_COMPONENT_ID_USB3 = 0x04,
    /**
     * FU_LENOVO_DOCK_COMPONENT_ID_USB4:
     */
    FU_LENOVO_DOCK_COMPONENT_ID_USB4 = 0x05,
    /**
     * FU_LENOVO_DOCK_COMPONENT_ID_OSD:
     */
    FU_LENOVO_DOCK_COMPONENT_ID_OSD = 0x06,
    /**
     * FU_LENOVO_DOCK_COMPONENT_ID_DBG:
     */
    FU_LENOVO_DOCK_COMPONENT_ID_DBG = 0x07,
    /**
     * FU_LENOVO_DOCK_COMPONENT_ID_USAGE:
     */
    FU_LENOVO_DOCK_COMPONENT_ID_USAGE = 0xFF,
}  FuLenovoDockComponentId;
const gchar *fu_lenovo_dock_component_id_to_string(FuLenovoDockComponentId val) G_GNUC_CONST;
/**
 * FuLenovoDockIotFlag:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_IOT_FLAG_NATIVE:
     */
    FU_LENOVO_DOCK_IOT_FLAG_NATIVE = 0x00,
    /**
     * FU_LENOVO_DOCK_IOT_FLAG_MANAGED:
     */
    FU_LENOVO_DOCK_IOT_FLAG_MANAGED = 0x01,
}  FuLenovoDockIotFlag;
/**
 * FuLenovoDockUsageItemFlag:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_USAGE_ITEM_FLAG_NONE:
     */
    FU_LENOVO_DOCK_USAGE_ITEM_FLAG_NONE,
    /**
     * FU_LENOVO_DOCK_USAGE_ITEM_FLAG_DO_UPDATE:
     */
    FU_LENOVO_DOCK_USAGE_ITEM_FLAG_DO_UPDATE,
}  FuLenovoDockUsageItemFlag;
#define FU_LENOVO_DOCK_USAGE_ITEM_FLAG_LAST 2
/**
 * FuLenovoDockStatus:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_STATUS_DEFAULT:
     */
    FU_LENOVO_DOCK_STATUS_DEFAULT = 0x00,
    /**
     * FU_LENOVO_DOCK_STATUS_BUSY:
     */
    FU_LENOVO_DOCK_STATUS_BUSY = 0x01,
    /**
     * FU_LENOVO_DOCK_STATUS_SUCCESS:
     */
    FU_LENOVO_DOCK_STATUS_SUCCESS = 0x02,
    /**
     * FU_LENOVO_DOCK_STATUS_FAILURE:
     */
    FU_LENOVO_DOCK_STATUS_FAILURE = 0x03,
    /**
     * FU_LENOVO_DOCK_STATUS_TIMEOUT:
     */
    FU_LENOVO_DOCK_STATUS_TIMEOUT = 0x04,
    /**
     * FU_LENOVO_DOCK_STATUS_NOT_SUPPORT:
     */
    FU_LENOVO_DOCK_STATUS_NOT_SUPPORT = 0x05,
}  FuLenovoDockStatus;
const gchar *fu_lenovo_dock_status_to_string(FuLenovoDockStatus val) G_GNUC_CONST;
/**
 * FuLenovoDockCmdClass:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_CMD_CLASS_DEVICE_INFORMATION:
     */
    FU_LENOVO_DOCK_CMD_CLASS_DEVICE_INFORMATION = 0x00,
    /**
     * FU_LENOVO_DOCK_CMD_CLASS_DFU:
     */
    FU_LENOVO_DOCK_CMD_CLASS_DFU = 0x09,
    /**
     * FU_LENOVO_DOCK_CMD_CLASS_TEST:
     */
    FU_LENOVO_DOCK_CMD_CLASS_TEST = 0x0A,
    /**
     * FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH:
     */
    FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH = 0x0C,
    /**
     * FU_LENOVO_DOCK_CMD_CLASS_DOCK:
     */
    FU_LENOVO_DOCK_CMD_CLASS_DOCK = 0x0E,
}  FuLenovoDockCmdClass;
/**
 * FuLenovoDockCmdId:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_CMD_ID_SET_HARDWARE_VERSION:
     */
    FU_LENOVO_DOCK_CMD_ID_SET_HARDWARE_VERSION = 0x02,
    /**
     * FU_LENOVO_DOCK_CMD_ID_SET_SERIAL_NUMBER:
     */
    FU_LENOVO_DOCK_CMD_ID_SET_SERIAL_NUMBER = 0x03,
    /**
     * FU_LENOVO_DOCK_CMD_ID_SET_DEVICE_MODE:
     */
    FU_LENOVO_DOCK_CMD_ID_SET_DEVICE_MODE = 0x04,
    /**
     * FU_LENOVO_DOCK_CMD_ID_SET_DEVICE_EDITION:
     */
    FU_LENOVO_DOCK_CMD_ID_SET_DEVICE_EDITION = 0x06,
    /**
     * FU_LENOVO_DOCK_CMD_ID_SET_DEVICE_NAME:
     */
    FU_LENOVO_DOCK_CMD_ID_SET_DEVICE_NAME = 0x08,
    /**
     * FU_LENOVO_DOCK_CMD_ID_SET_DEVICE_RESET:
     */
    FU_LENOVO_DOCK_CMD_ID_SET_DEVICE_RESET = 0x09,
    /**
     * FU_LENOVO_DOCK_CMD_ID_SET_DEVICE_UUID:
     */
    FU_LENOVO_DOCK_CMD_ID_SET_DEVICE_UUID = 0x14,
    /**
     * FU_LENOVO_DOCK_CMD_ID_GET_COMMAND_SUPPORT_LIST:
     */
    FU_LENOVO_DOCK_CMD_ID_GET_COMMAND_SUPPORT_LIST = 0x80,
    /**
     * FU_LENOVO_DOCK_CMD_ID_GET_FIRMWARE_VERSION:
     */
    FU_LENOVO_DOCK_CMD_ID_GET_FIRMWARE_VERSION = 0x81,
    /**
     * FU_LENOVO_DOCK_CMD_ID_GET_HARDWARE_VERSION:
     */
    FU_LENOVO_DOCK_CMD_ID_GET_HARDWARE_VERSION = 0x82,
    /**
     * FU_LENOVO_DOCK_CMD_ID_GET_SERIAL_NUMBER:
     */
    FU_LENOVO_DOCK_CMD_ID_GET_SERIAL_NUMBER = 0x83,
    /**
     * FU_LENOVO_DOCK_CMD_ID_GET_DEVICE_MODE:
     */
    FU_LENOVO_DOCK_CMD_ID_GET_DEVICE_MODE = 0x84,
    /**
     * FU_LENOVO_DOCK_CMD_ID_GET_DEVICE_EDITION:
     */
    FU_LENOVO_DOCK_CMD_ID_GET_DEVICE_EDITION = 0x86,
    /**
     * FU_LENOVO_DOCK_CMD_ID_GET_DEVICE_NAME:
     */
    FU_LENOVO_DOCK_CMD_ID_GET_DEVICE_NAME = 0x88,
    /**
     * FU_LENOVO_DOCK_CMD_ID_GET_DEVICE_UUID:
     */
    FU_LENOVO_DOCK_CMD_ID_GET_DEVICE_UUID = 0x94,
}  FuLenovoDockCmdId;
/**
 * FuLenovoDockNotificationEvent:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_NOTIFICATION_EVENT_DEBUG_LOG_PRINT:
     */
    FU_LENOVO_DOCK_NOTIFICATION_EVENT_DEBUG_LOG_PRINT = 0xE0,
    /**
     * FU_LENOVO_DOCK_NOTIFICATION_EVENT_PORT_STATE_CHANGE:
     */
    FU_LENOVO_DOCK_NOTIFICATION_EVENT_PORT_STATE_CHANGE = 0xE1,
    /**
     * FU_LENOVO_DOCK_NOTIFICATION_EVENT_PROVISION_STATE_UPDATE:
     */
    FU_LENOVO_DOCK_NOTIFICATION_EVENT_PROVISION_STATE_UPDATE = 0xE2,
}  FuLenovoDockNotificationEvent;
const gchar *fu_lenovo_dock_notification_event_to_string(FuLenovoDockNotificationEvent val) G_GNUC_CONST;
/**
 * FuLenovoDockCfgType:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_PROVISION_STATE:
     */
    FU_LENOVO_DOCK_CFG_TYPE_PROVISION_STATE,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_CONNECTION:
     */
    FU_LENOVO_DOCK_CFG_TYPE_CONNECTION,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_WIFI_SSID:
     */
    FU_LENOVO_DOCK_CFG_TYPE_WIFI_SSID,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_WIFI_PASSWORD:
     */
    FU_LENOVO_DOCK_CFG_TYPE_WIFI_PASSWORD,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_WIFI_ROOT_CA:
     */
    FU_LENOVO_DOCK_CFG_TYPE_WIFI_ROOT_CA,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_WIFI_CLIENT_CA:
     */
    FU_LENOVO_DOCK_CFG_TYPE_WIFI_CLIENT_CA,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_WIFI_CLIENT_KEY:
     */
    FU_LENOVO_DOCK_CFG_TYPE_WIFI_CLIENT_KEY,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_WIFI_CLIENT_KEY_PASSWORD:
     */
    FU_LENOVO_DOCK_CFG_TYPE_WIFI_CLIENT_KEY_PASSWORD,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_PROVISION_TOKEN:
     */
    FU_LENOVO_DOCK_CFG_TYPE_PROVISION_TOKEN,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_PROVISION_FLOW_CTRL:
     */
    FU_LENOVO_DOCK_CFG_TYPE_PROVISION_FLOW_CTRL,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_PROVISION_URL:
     */
    FU_LENOVO_DOCK_CFG_TYPE_PROVISION_URL,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_EAP_IDENTITY:
     */
    FU_LENOVO_DOCK_CFG_TYPE_EAP_IDENTITY,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_PROVISION_PUBLIC_KEY:
     */
    FU_LENOVO_DOCK_CFG_TYPE_PROVISION_PUBLIC_KEY,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_GET_IOT_MODULE_FW_VERSION:
     */
    FU_LENOVO_DOCK_CFG_TYPE_GET_IOT_MODULE_FW_VERSION,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_GET_IOT_MODULE_SN:
     */
    FU_LENOVO_DOCK_CFG_TYPE_GET_IOT_MODULE_SN,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_GET_WIFI_MAC_ADDR:
     */
    FU_LENOVO_DOCK_CFG_TYPE_GET_WIFI_MAC_ADDR,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_SET_IOT_EVT_BYPASS:
     */
    FU_LENOVO_DOCK_CFG_TYPE_SET_IOT_EVT_BYPASS,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_EAP_USER_PASSWORD:
     */
    FU_LENOVO_DOCK_CFG_TYPE_EAP_USER_PASSWORD,
    /**
     * FU_LENOVO_DOCK_CFG_TYPE_MQTT_CA:
     */
    FU_LENOVO_DOCK_CFG_TYPE_MQTT_CA,
}  FuLenovoDockCfgType;
#define FU_LENOVO_DOCK_CFG_TYPE_LAST 19
/**
 * FuLenovoDockProvisionStatus:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_PROVISION_STATUS_NONE:
     */
    FU_LENOVO_DOCK_PROVISION_STATUS_NONE,
    /**
     * FU_LENOVO_DOCK_PROVISION_STATUS_PROVISIONED:
     */
    FU_LENOVO_DOCK_PROVISION_STATUS_PROVISIONED,
}  FuLenovoDockProvisionStatus;
#define FU_LENOVO_DOCK_PROVISION_STATUS_LAST 2
/**
 * FuLenovoDockInternetStatus:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_INTERNET_STATUS_NO_CONNECTION:
     */
    FU_LENOVO_DOCK_INTERNET_STATUS_NO_CONNECTION,
    /**
     * FU_LENOVO_DOCK_INTERNET_STATUS_CONNECTED:
     */
    FU_LENOVO_DOCK_INTERNET_STATUS_CONNECTED,
}  FuLenovoDockInternetStatus;
#define FU_LENOVO_DOCK_INTERNET_STATUS_LAST 2
/**
 * FuLenovoDockCloudRegisterState:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_CLOUD_REGISTER_STATE_NONE:
     */
    FU_LENOVO_DOCK_CLOUD_REGISTER_STATE_NONE,
    /**
     * FU_LENOVO_DOCK_CLOUD_REGISTER_STATE_REGISTERED:
     */
    FU_LENOVO_DOCK_CLOUD_REGISTER_STATE_REGISTERED,
}  FuLenovoDockCloudRegisterState;
#define FU_LENOVO_DOCK_CLOUD_REGISTER_STATE_LAST 2
/**
 * FuLenovoDockFlashCmd:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_FLASH_CMD_SET_FLASH_ID_USAGE_INFORMATION:
     */
    FU_LENOVO_DOCK_FLASH_CMD_SET_FLASH_ID_USAGE_INFORMATION = 0x03,
    /**
     * FU_LENOVO_DOCK_FLASH_CMD_SET_FLASH_MEMORY_ACCESS:
     */
    FU_LENOVO_DOCK_FLASH_CMD_SET_FLASH_MEMORY_ACCESS = 0x04,
    /**
     * FU_LENOVO_DOCK_FLASH_CMD_GET_SUPPORT_LIST:
     */
    FU_LENOVO_DOCK_FLASH_CMD_GET_SUPPORT_LIST = 0x80,
    /**
     * FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_ID_LIST:
     */
    FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_ID_LIST = 0x81,
    /**
     * FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_ATTRIBUTE:
     */
    FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_ATTRIBUTE = 0x82,
    /**
     * FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_ID_USAGE_INFORMATION:
     */
    FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_ID_USAGE_INFORMATION = 0x83,
    /**
     * FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_MEMORY_ACCESS:
     */
    FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_MEMORY_ACCESS = 0x84,
    /**
     * FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_MEMORY_SELF_VERIFY:
     */
    FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_MEMORY_SELF_VERIFY = 0x85,
}  FuLenovoDockFlashCmd;
/**
 * FuLenovoDockExternalDockCmd:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_SET_DOCK_PORT_CTRL:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_SET_DOCK_PORT_CTRL = 0x03,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_SET_DOCK_FAN_CTRL:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_SET_DOCK_FAN_CTRL = 0x05,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_SET_DOCK_IO_T_CONFIGURE:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_SET_DOCK_IO_T_CONFIGURE = 0x06,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_SET_DOCK_USB_CONTAINER_ID:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_SET_DOCK_USB_CONTAINER_ID = 0x07,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_SET_DOCK_LAN_MAC_ADDRESS:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_SET_DOCK_LAN_MAC_ADDRESS = 0x08,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_SET_DOCK_AUX_LOG:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_SET_DOCK_AUX_LOG = 0x09,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_SET_DOCK_FIRMWARE_UPGRADE_CTRL:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_SET_DOCK_FIRMWARE_UPGRADE_CTRL = 0x0A,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_CMD_SUPPORT_LIST:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_CMD_SUPPORT_LIST = 0x80,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_ATTRIBUTE:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_ATTRIBUTE = 0x81,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_PORT_STATUS:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_PORT_STATUS = 0x82,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_PORT_CTRL:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_PORT_CTRL = 0x83,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_PORT_CONNECTED_DEVICE_INFORMATION:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_PORT_CONNECTED_DEVICE_INFORMATION = 0x84,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_FAN_CTRL:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_FAN_CTRL = 0x85,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_IO_T_CONFIGURE:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_IO_T_CONFIGURE = 0x86,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_USB_CONTAINER_ID:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_USB_CONTAINER_ID = 0x87,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_LAN_MAC_ADDRESS:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_LAN_MAC_ADDRESS = 0x88,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_AUX_LOG:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_AUX_LOG = 0x89,
    /**
     * FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_FIRMWARE_UPGRADE_CTRL:
     */
    FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_GET_DOCK_FIRMWARE_UPGRADE_CTRL = 0x8A,
}  FuLenovoDockExternalDockCmd;
/**
 * FuLenovoDockComponentPurpose:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_COMPONENT_PURPOSE_COMMON:
     */
    FU_LENOVO_DOCK_COMPONENT_PURPOSE_COMMON,
    /**
     * FU_LENOVO_DOCK_COMPONENT_PURPOSE_APPLICATION_DATA:
     */
    FU_LENOVO_DOCK_COMPONENT_PURPOSE_APPLICATION_DATA,
    /**
     * FU_LENOVO_DOCK_COMPONENT_PURPOSE_IMAGE_DATA:
     */
    FU_LENOVO_DOCK_COMPONENT_PURPOSE_IMAGE_DATA,
    /**
     * FU_LENOVO_DOCK_COMPONENT_PURPOSE_FIRMWARE:
     */
    FU_LENOVO_DOCK_COMPONENT_PURPOSE_FIRMWARE,
}  FuLenovoDockComponentPurpose;
#define FU_LENOVO_DOCK_COMPONENT_PURPOSE_LAST 4
/**
 * FuLenovoDockFlashMemoryAccessCmd:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_ACCESS_CTRL:
     */
    FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_ACCESS_CTRL,
    /**
     * FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_ERASE:
     */
    FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_ERASE,
    /**
     * FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_PROGRAM:
     */
    FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_PROGRAM,
    /**
     * FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_READ:
     */
    FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_READ,
    /**
     * FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_ERASE:
     */
    FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_ERASE,
    /**
     * FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_PROGRAM:
     */
    FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_PROGRAM,
    /**
     * FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_READ:
     */
    FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_READ,
    /**
     * FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_ERASE_WITH_ADDRESS:
     */
    FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_ERASE_WITH_ADDRESS,
    /**
     * FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_PROGRAM_WITH_ADDRESS:
     */
    FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_PROGRAM_WITH_ADDRESS,
    /**
     * FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_READ_WITH_ADDRESS:
     */
    FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_READ_WITH_ADDRESS,
}  FuLenovoDockFlashMemoryAccessCmd;
#define FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_LAST 10
/**
 * FuLenovoDockFlashMemoryAccessCtrl:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CTRL_RELEASE:
     */
    FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CTRL_RELEASE,
    /**
     * FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CTRL_REQUEST:
     */
    FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CTRL_REQUEST,
}  FuLenovoDockFlashMemoryAccessCtrl;
#define FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CTRL_LAST 2
/**
 * FuLenovoDockFlashMemorySelfVerifyType:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_FLASH_MEMORY_SELF_VERIFY_TYPE_SIGNATURE:
     */
    FU_LENOVO_DOCK_FLASH_MEMORY_SELF_VERIFY_TYPE_SIGNATURE,
    /**
     * FU_LENOVO_DOCK_FLASH_MEMORY_SELF_VERIFY_TYPE_CRC:
     */
    FU_LENOVO_DOCK_FLASH_MEMORY_SELF_VERIFY_TYPE_CRC,
}  FuLenovoDockFlashMemorySelfVerifyType;
#define FU_LENOVO_DOCK_FLASH_MEMORY_SELF_VERIFY_TYPE_LAST 2
/**
 * FuLenovoDockFlashVerifySignatureResult:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RESULT_FAIL:
     */
    FU_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RESULT_FAIL,
    /**
     * FU_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RESULT_PASS:
     */
    FU_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RESULT_PASS,
}  FuLenovoDockFlashVerifySignatureResult;
#define FU_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RESULT_LAST 2
/**
 * FuLenovoDockFwCtrlUpgradeStatus:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_FW_CTRL_UPGRADE_STATUS_NON_LOCK:
     */
    FU_LENOVO_DOCK_FW_CTRL_UPGRADE_STATUS_NON_LOCK,
    /**
     * FU_LENOVO_DOCK_FW_CTRL_UPGRADE_STATUS_LOCKED:
     */
    FU_LENOVO_DOCK_FW_CTRL_UPGRADE_STATUS_LOCKED,
}  FuLenovoDockFwCtrlUpgradeStatus;
#define FU_LENOVO_DOCK_FW_CTRL_UPGRADE_STATUS_LAST 2
/**
 * FuLenovoDockFwCtrlUpgradePhaseCtrl:
 */
typedef enum {
    /**
     * FU_LENOVO_DOCK_FW_CTRL_UPGRADE_PHASE_CTRL_NA:
     */
    FU_LENOVO_DOCK_FW_CTRL_UPGRADE_PHASE_CTRL_NA,
    /**
     * FU_LENOVO_DOCK_FW_CTRL_UPGRADE_PHASE_CTRL_IN_PHASE1:
     */
    FU_LENOVO_DOCK_FW_CTRL_UPGRADE_PHASE_CTRL_IN_PHASE1,
    /**
     * FU_LENOVO_DOCK_FW_CTRL_UPGRADE_PHASE_CTRL_UNPLUG:
     */
    FU_LENOVO_DOCK_FW_CTRL_UPGRADE_PHASE_CTRL_UNPLUG,
    /**
     * FU_LENOVO_DOCK_FW_CTRL_UPGRADE_PHASE_CTRL_NON_UNPLUG:
     */
    FU_LENOVO_DOCK_FW_CTRL_UPGRADE_PHASE_CTRL_NON_UNPLUG,
    /**
     * FU_LENOVO_DOCK_FW_CTRL_UPGRADE_PHASE_CTRL_WAIT_FOR_TIMER:
     */
    FU_LENOVO_DOCK_FW_CTRL_UPGRADE_PHASE_CTRL_WAIT_FOR_TIMER,
}  FuLenovoDockFwCtrlUpgradePhaseCtrl;
#define FU_LENOVO_DOCK_FW_CTRL_UPGRADE_PHASE_CTRL_LAST 5
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockUsage;

FuStructLenovoDockUsage *fu_struct_lenovo_dock_usage_ref(FuStructLenovoDockUsage *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_usage_unref(FuStructLenovoDockUsage *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockUsage, fu_struct_lenovo_dock_usage_unref)
FuStructLenovoDockUsage *fu_struct_lenovo_dock_usage_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuStructLenovoDockUsage *fu_struct_lenovo_dock_usage_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_lenovo_dock_usage_to_string(const FuStructLenovoDockUsage *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_lenovo_dock_usage_get_total_number(const FuStructLenovoDockUsage *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_lenovo_dock_usage_get_major_version(const FuStructLenovoDockUsage *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_lenovo_dock_usage_get_minor_version(const FuStructLenovoDockUsage *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockDsaType fu_struct_lenovo_dock_usage_get_dsa(const FuStructLenovoDockUsage *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockIotFlag fu_struct_lenovo_dock_usage_get_iot_flag(const FuStructLenovoDockUsage *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_lenovo_dock_usage_get_composite_version(const FuStructLenovoDockUsage *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_lenovo_dock_usage_get_pid(const FuStructLenovoDockUsage *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_lenovo_dock_usage_get_crc32(const FuStructLenovoDockUsage *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_lenovo_dock_usage_set_total_number(FuStructLenovoDockUsage *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_usage_set_major_version(FuStructLenovoDockUsage *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_usage_set_minor_version(FuStructLenovoDockUsage *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_usage_set_dsa(FuStructLenovoDockUsage *st, FuLenovoDockDsaType value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_usage_set_iot_flag(FuStructLenovoDockUsage *st, FuLenovoDockIotFlag value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_usage_set_composite_version(FuStructLenovoDockUsage *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_usage_set_pid(FuStructLenovoDockUsage *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_usage_set_crc32(FuStructLenovoDockUsage *st, guint32 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_USAGE_OFFSET_TOTAL_NUMBER 0x0
#define FU_STRUCT_LENOVO_DOCK_USAGE_OFFSET_MAJOR_VERSION 0x1
#define FU_STRUCT_LENOVO_DOCK_USAGE_OFFSET_MINOR_VERSION 0x2
#define FU_STRUCT_LENOVO_DOCK_USAGE_OFFSET_DSA 0x3
#define FU_STRUCT_LENOVO_DOCK_USAGE_OFFSET_IOT_FLAG 0x4
#define FU_STRUCT_LENOVO_DOCK_USAGE_OFFSET_COMPOSITE_VERSION 0x5
#define FU_STRUCT_LENOVO_DOCK_USAGE_OFFSET_PID 0x8
#define FU_STRUCT_LENOVO_DOCK_USAGE_OFFSET_CRC32 0xA
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_USAGE_SIZE 0x20
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_USAGE_DEFAULT_MAJOR_VERSION 0x00
#define FU_STRUCT_LENOVO_DOCK_USAGE_DEFAULT_MINOR_VERSION 0x01
#define FU_STRUCT_LENOVO_DOCK_USAGE_DEFAULT_DSA FU_LENOVO_DOCK_DSA_TYPE_NONE
#define FU_STRUCT_LENOVO_DOCK_USAGE_DEFAULT_IOT_FLAG FU_LENOVO_DOCK_IOT_FLAG_NATIVE
#define FU_STRUCT_LENOVO_DOCK_USAGE_DEFAULT_PID 0x111E
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockUsageItem;

FuStructLenovoDockUsageItem *fu_struct_lenovo_dock_usage_item_ref(FuStructLenovoDockUsageItem *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_usage_item_unref(FuStructLenovoDockUsageItem *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockUsageItem, fu_struct_lenovo_dock_usage_item_unref)
FuStructLenovoDockUsageItem *fu_struct_lenovo_dock_usage_item_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuStructLenovoDockUsageItem *fu_struct_lenovo_dock_usage_item_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_lenovo_dock_usage_item_to_string(const FuStructLenovoDockUsageItem *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_lenovo_dock_usage_item_get_address(const FuStructLenovoDockUsageItem *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_lenovo_dock_usage_item_get_max_size(const FuStructLenovoDockUsageItem *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_lenovo_dock_usage_item_get_current_version(const FuStructLenovoDockUsageItem *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_lenovo_dock_usage_item_get_target_version(const FuStructLenovoDockUsageItem *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_lenovo_dock_usage_item_get_target_size(const FuStructLenovoDockUsageItem *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_lenovo_dock_usage_item_get_target_crc32(const FuStructLenovoDockUsageItem *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockComponentId fu_struct_lenovo_dock_usage_item_get_component_id(const FuStructLenovoDockUsageItem *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockUsageItemFlag fu_struct_lenovo_dock_usage_item_get_flag(const FuStructLenovoDockUsageItem *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_lenovo_dock_usage_item_set_address(FuStructLenovoDockUsageItem *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_usage_item_set_max_size(FuStructLenovoDockUsageItem *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_usage_item_set_current_version(FuStructLenovoDockUsageItem *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_usage_item_set_target_version(FuStructLenovoDockUsageItem *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_usage_item_set_target_size(FuStructLenovoDockUsageItem *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_usage_item_set_target_crc32(FuStructLenovoDockUsageItem *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_usage_item_set_component_id(FuStructLenovoDockUsageItem *st, FuLenovoDockComponentId value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_usage_item_set_flag(FuStructLenovoDockUsageItem *st, FuLenovoDockUsageItemFlag value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_USAGE_ITEM_OFFSET_ADDRESS 0x0
#define FU_STRUCT_LENOVO_DOCK_USAGE_ITEM_OFFSET_MAX_SIZE 0x4
#define FU_STRUCT_LENOVO_DOCK_USAGE_ITEM_OFFSET_CURRENT_VERSION 0x8
#define FU_STRUCT_LENOVO_DOCK_USAGE_ITEM_OFFSET_TARGET_VERSION 0xC
#define FU_STRUCT_LENOVO_DOCK_USAGE_ITEM_OFFSET_TARGET_SIZE 0x10
#define FU_STRUCT_LENOVO_DOCK_USAGE_ITEM_OFFSET_TARGET_CRC32 0x14
#define FU_STRUCT_LENOVO_DOCK_USAGE_ITEM_OFFSET_COMPONENT_ID 0x18
#define FU_STRUCT_LENOVO_DOCK_USAGE_ITEM_OFFSET_FLAG 0x19
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_USAGE_ITEM_SIZE 0x20
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockGenericRes;

FuStructLenovoDockGenericRes *fu_struct_lenovo_dock_generic_res_ref(FuStructLenovoDockGenericRes *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_generic_res_unref(FuStructLenovoDockGenericRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockGenericRes, fu_struct_lenovo_dock_generic_res_unref)
FuStructLenovoDockGenericRes *fu_struct_lenovo_dock_generic_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockStatus fu_struct_lenovo_dock_generic_res_get_status(const FuStructLenovoDockGenericRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GENERIC_RES_OFFSET_STATUS 0x0
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GENERIC_RES_SIZE 0x1
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockNotificationRes;

FuStructLenovoDockNotificationRes *fu_struct_lenovo_dock_notification_res_ref(FuStructLenovoDockNotificationRes *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_notification_res_unref(FuStructLenovoDockNotificationRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockNotificationRes, fu_struct_lenovo_dock_notification_res_unref)
FuStructLenovoDockNotificationRes *fu_struct_lenovo_dock_notification_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockNotificationEvent fu_struct_lenovo_dock_notification_res_get_event(const FuStructLenovoDockNotificationRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_NOTIFICATION_RES_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_LENOVO_DOCK_NOTIFICATION_RES_OFFSET_TYPE 0x1
#define FU_STRUCT_LENOVO_DOCK_NOTIFICATION_RES_OFFSET_EVENT 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_NOTIFICATION_RES_SIZE 0x3
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_NOTIFICATION_RES_DEFAULT_REPORT_ID 0x04
#define FU_STRUCT_LENOVO_DOCK_NOTIFICATION_RES_DEFAULT_TYPE 0x02
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockGetVersionReq;

FuStructLenovoDockGetVersionReq *fu_struct_lenovo_dock_get_version_req_ref(FuStructLenovoDockGetVersionReq *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_get_version_req_unref(FuStructLenovoDockGetVersionReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockGetVersionReq, fu_struct_lenovo_dock_get_version_req_unref)
FuStructLenovoDockGetVersionReq *fu_struct_lenovo_dock_get_version_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_REQ_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_REQ_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_REQ_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_REQ_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_REQ_OFFSET_COMPONENT_ID 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_REQ_SIZE 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_REQ_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_DEFAULT
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_REQ_DEFAULT_DATASZ 0x02
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_REQ_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_DEVICE_INFORMATION
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_REQ_DEFAULT_CMD_ID FU_LENOVO_DOCK_CMD_ID_GET_FIRMWARE_VERSION
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_REQ_DEFAULT_COMPONENT_ID FU_LENOVO_DOCK_COMPONENT_ID_NONE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockGetVersionRes;

FuStructLenovoDockGetVersionRes *fu_struct_lenovo_dock_get_version_res_ref(FuStructLenovoDockGetVersionRes *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_get_version_res_unref(FuStructLenovoDockGetVersionRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockGetVersionRes, fu_struct_lenovo_dock_get_version_res_unref)
FuStructLenovoDockGetVersionRes *fu_struct_lenovo_dock_get_version_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_lenovo_dock_get_version_res_get_version_major(const FuStructLenovoDockGetVersionRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_lenovo_dock_get_version_res_get_version_minor(const FuStructLenovoDockGetVersionRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_lenovo_dock_get_version_res_get_version_micro(const FuStructLenovoDockGetVersionRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_RES_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_RES_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_RES_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_RES_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_RES_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_RES_OFFSET_VERSION_MAJOR 0x6
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_RES_OFFSET_VERSION_MINOR 0x7
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_RES_OFFSET_VERSION_MICRO 0x8
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_RES_SIZE 0x9
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_RES_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_SUCCESS
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_RES_DEFAULT_DATASZ 0x03
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_RES_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_DEVICE_INFORMATION
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_RES_DEFAULT_CMD_ID FU_LENOVO_DOCK_CMD_ID_GET_FIRMWARE_VERSION
#define FU_STRUCT_LENOVO_DOCK_GET_VERSION_RES_DEFAULT_COMPONENT_ID FU_LENOVO_DOCK_COMPONENT_ID_NONE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockGetEditionReq;

FuStructLenovoDockGetEditionReq *fu_struct_lenovo_dock_get_edition_req_ref(FuStructLenovoDockGetEditionReq *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_get_edition_req_unref(FuStructLenovoDockGetEditionReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockGetEditionReq, fu_struct_lenovo_dock_get_edition_req_unref)
FuStructLenovoDockGetEditionReq *fu_struct_lenovo_dock_get_edition_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_lenovo_dock_get_edition_req_to_string(const FuStructLenovoDockGetEditionReq *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_REQ_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_REQ_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_REQ_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_REQ_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_REQ_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_REQ_OFFSET_CFG_TYPE 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_REQ_SIZE 0x7
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_REQ_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_DEFAULT
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_REQ_DEFAULT_DATASZ 0x01
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_REQ_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_DOCK
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_REQ_DEFAULT_CMD_ID FU_LENOVO_DOCK_CMD_ID_GET_DEVICE_EDITION
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_REQ_DEFAULT_COMPONENT_ID FU_LENOVO_DOCK_COMPONENT_ID_NONE
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_REQ_DEFAULT_CFG_TYPE FU_LENOVO_DOCK_CFG_TYPE_PROVISION_STATE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockGetEditionRes;

FuStructLenovoDockGetEditionRes *fu_struct_lenovo_dock_get_edition_res_ref(FuStructLenovoDockGetEditionRes *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_get_edition_res_unref(FuStructLenovoDockGetEditionRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockGetEditionRes, fu_struct_lenovo_dock_get_edition_res_unref)
FuStructLenovoDockGetEditionRes *fu_struct_lenovo_dock_get_edition_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockProvisionStatus fu_struct_lenovo_dock_get_edition_res_get_provision_status(const FuStructLenovoDockGetEditionRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockInternetStatus fu_struct_lenovo_dock_get_edition_res_get_internet_status(const FuStructLenovoDockGetEditionRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockCloudRegisterState fu_struct_lenovo_dock_get_edition_res_get_cloud_register_state(const FuStructLenovoDockGetEditionRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_lenovo_dock_get_edition_res_get_internet_connection_type(const FuStructLenovoDockGetEditionRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_OFFSET_CFG_TYPE 0x6
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_OFFSET_PROVISION_STATUS 0x7
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_OFFSET_INTERNET_STATUS 0x8
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_OFFSET_CLOUD_REGISTER_STATE 0x9
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_OFFSET_INTERNET_CONNECTION_TYPE 0xA
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_SIZE 0xB
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_SUCCESS
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_DEFAULT_DATASZ 0x05
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_DOCK
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_DEFAULT_CMD_ID FU_LENOVO_DOCK_CMD_ID_GET_DEVICE_EDITION
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_DEFAULT_COMPONENT_ID FU_LENOVO_DOCK_COMPONENT_ID_NONE
#define FU_STRUCT_LENOVO_DOCK_GET_EDITION_RES_DEFAULT_CFG_TYPE FU_LENOVO_DOCK_CFG_TYPE_PROVISION_STATE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockFlashSetAccessReq;

FuStructLenovoDockFlashSetAccessReq *fu_struct_lenovo_dock_flash_set_access_req_ref(FuStructLenovoDockFlashSetAccessReq *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_set_access_req_unref(FuStructLenovoDockFlashSetAccessReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockFlashSetAccessReq, fu_struct_lenovo_dock_flash_set_access_req_unref)
FuStructLenovoDockFlashSetAccessReq *fu_struct_lenovo_dock_flash_set_access_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_lenovo_dock_flash_set_access_req_set_ctrl(FuStructLenovoDockFlashSetAccessReq *st, FuLenovoDockFlashMemoryAccessCtrl value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_REQ_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_REQ_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_REQ_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_REQ_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_REQ_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_REQ_OFFSET_CMD 0x6
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_REQ_OFFSET_CTRL 0x7
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_REQ_SIZE 0x8
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_REQ_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_DEFAULT
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_REQ_DEFAULT_DATASZ 0x02
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_REQ_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_REQ_DEFAULT_CMD_ID FU_LENOVO_DOCK_FLASH_CMD_SET_FLASH_MEMORY_ACCESS
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_REQ_DEFAULT_COMPONENT_ID FU_LENOVO_DOCK_COMPONENT_ID_NONE
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_REQ_DEFAULT_CMD FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_ACCESS_CTRL
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockFlashSetAccessRes;

FuStructLenovoDockFlashSetAccessRes *fu_struct_lenovo_dock_flash_set_access_res_ref(FuStructLenovoDockFlashSetAccessRes *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_set_access_res_unref(FuStructLenovoDockFlashSetAccessRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockFlashSetAccessRes, fu_struct_lenovo_dock_flash_set_access_res_unref)
FuStructLenovoDockFlashSetAccessRes *fu_struct_lenovo_dock_flash_set_access_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockStatus fu_struct_lenovo_dock_flash_set_access_res_get_status(const FuStructLenovoDockFlashSetAccessRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockFlashMemoryAccessCtrl fu_struct_lenovo_dock_flash_set_access_res_get_ctrl(const FuStructLenovoDockFlashSetAccessRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_RES_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_RES_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_RES_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_RES_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_RES_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_RES_OFFSET_CMD 0x6
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_RES_OFFSET_CTRL 0x7
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_RES_SIZE 0x8
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_RES_DEFAULT_DATASZ 0x02
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_RES_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_RES_DEFAULT_CMD_ID FU_LENOVO_DOCK_FLASH_CMD_SET_FLASH_MEMORY_ACCESS
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_RES_DEFAULT_COMPONENT_ID FU_LENOVO_DOCK_COMPONENT_ID_NONE
#define FU_STRUCT_LENOVO_DOCK_FLASH_SET_ACCESS_RES_DEFAULT_CMD FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_ACCESS_CTRL
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockFlashGetAttrsReq;

FuStructLenovoDockFlashGetAttrsReq *fu_struct_lenovo_dock_flash_get_attrs_req_ref(FuStructLenovoDockFlashGetAttrsReq *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_get_attrs_req_unref(FuStructLenovoDockFlashGetAttrsReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockFlashGetAttrsReq, fu_struct_lenovo_dock_flash_get_attrs_req_unref)
FuStructLenovoDockFlashGetAttrsReq *fu_struct_lenovo_dock_flash_get_attrs_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_lenovo_dock_flash_get_attrs_req_set_component_id(FuStructLenovoDockFlashGetAttrsReq *st, FuLenovoDockComponentId value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_REQ_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_REQ_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_REQ_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_REQ_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_REQ_OFFSET_COMPONENT_ID 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_REQ_SIZE 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_REQ_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_DEFAULT
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_REQ_DEFAULT_DATASZ 0x00
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_REQ_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_REQ_DEFAULT_CMD_ID FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_ATTRIBUTE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockFlashGetAttrsRes;

FuStructLenovoDockFlashGetAttrsRes *fu_struct_lenovo_dock_flash_get_attrs_res_ref(FuStructLenovoDockFlashGetAttrsRes *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_get_attrs_res_unref(FuStructLenovoDockFlashGetAttrsRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockFlashGetAttrsRes, fu_struct_lenovo_dock_flash_get_attrs_res_unref)
FuStructLenovoDockFlashGetAttrsRes *fu_struct_lenovo_dock_flash_get_attrs_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockComponentId fu_struct_lenovo_dock_flash_get_attrs_res_get_component_id(const FuStructLenovoDockFlashGetAttrsRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_lenovo_dock_flash_get_attrs_res_get_component_id_again(const FuStructLenovoDockFlashGetAttrsRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockComponentPurpose fu_struct_lenovo_dock_flash_get_attrs_res_get_purpose(const FuStructLenovoDockFlashGetAttrsRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_lenovo_dock_flash_get_attrs_res_get_storage_size(const FuStructLenovoDockFlashGetAttrsRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_lenovo_dock_flash_get_attrs_res_get_erase_size(const FuStructLenovoDockFlashGetAttrsRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_lenovo_dock_flash_get_attrs_res_get_program_size(const FuStructLenovoDockFlashGetAttrsRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_RES_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_RES_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_RES_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_RES_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_RES_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_RES_OFFSET_COMPONENT_ID_AGAIN 0x6
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_RES_OFFSET_PURPOSE 0x7
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_RES_OFFSET_STORAGE_SIZE 0x8
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_RES_OFFSET_ERASE_SIZE 0xC
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_RES_OFFSET_PROGRAM_SIZE 0xE
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_RES_SIZE 0x10
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_RES_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_SUCCESS
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_RES_DEFAULT_DATASZ 0x0A
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_RES_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH
#define FU_STRUCT_LENOVO_DOCK_FLASH_GET_ATTRS_RES_DEFAULT_CMD_ID FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_ATTRIBUTE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockDfuControlReq;

FuStructLenovoDockDfuControlReq *fu_struct_lenovo_dock_dfu_control_req_ref(FuStructLenovoDockDfuControlReq *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_dfu_control_req_unref(FuStructLenovoDockDfuControlReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockDfuControlReq, fu_struct_lenovo_dock_dfu_control_req_unref)
FuStructLenovoDockDfuControlReq *fu_struct_lenovo_dock_dfu_control_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_lenovo_dock_dfu_control_req_set_upgrade_status(FuStructLenovoDockDfuControlReq *st, FuLenovoDockFwCtrlUpgradeStatus value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_dfu_control_req_set_ctrl(FuStructLenovoDockDfuControlReq *st, FuLenovoDockFwCtrlUpgradePhaseCtrl value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_REQ_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_REQ_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_REQ_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_REQ_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_REQ_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_REQ_OFFSET_UPGRADE_STATUS 0x6
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_REQ_OFFSET_CTRL 0x7
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_REQ_SIZE 0x8
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_REQ_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_DEFAULT
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_REQ_DEFAULT_DATASZ 0x02
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_REQ_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_DOCK
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_REQ_DEFAULT_CMD_ID FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_SET_DOCK_FIRMWARE_UPGRADE_CTRL
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_REQ_DEFAULT_COMPONENT_ID FU_LENOVO_DOCK_COMPONENT_ID_NONE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockDfuControlRes;

FuStructLenovoDockDfuControlRes *fu_struct_lenovo_dock_dfu_control_res_ref(FuStructLenovoDockDfuControlRes *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_dfu_control_res_unref(FuStructLenovoDockDfuControlRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockDfuControlRes, fu_struct_lenovo_dock_dfu_control_res_unref)
FuStructLenovoDockDfuControlRes *fu_struct_lenovo_dock_dfu_control_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockFwCtrlUpgradeStatus fu_struct_lenovo_dock_dfu_control_res_get_upgrade_status(const FuStructLenovoDockDfuControlRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockFwCtrlUpgradePhaseCtrl fu_struct_lenovo_dock_dfu_control_res_get_ctrl(const FuStructLenovoDockDfuControlRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_RES_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_RES_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_RES_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_RES_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_RES_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_RES_OFFSET_UPGRADE_STATUS 0x6
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_RES_OFFSET_CTRL 0x7
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_RES_SIZE 0x8
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_RES_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_SUCCESS
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_RES_DEFAULT_DATASZ 0x02
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_RES_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_DOCK
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_RES_DEFAULT_CMD_ID FU_LENOVO_DOCK_EXTERNAL_DOCK_CMD_SET_DOCK_FIRMWARE_UPGRADE_CTRL
#define FU_STRUCT_LENOVO_DOCK_DFU_CONTROL_RES_DEFAULT_COMPONENT_ID FU_LENOVO_DOCK_COMPONENT_ID_NONE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockGetComponentIdListReq;

FuStructLenovoDockGetComponentIdListReq *fu_struct_lenovo_dock_get_component_id_list_req_ref(FuStructLenovoDockGetComponentIdListReq *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_get_component_id_list_req_unref(FuStructLenovoDockGetComponentIdListReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockGetComponentIdListReq, fu_struct_lenovo_dock_get_component_id_list_req_unref)
FuStructLenovoDockGetComponentIdListReq *fu_struct_lenovo_dock_get_component_id_list_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_lenovo_dock_get_component_id_list_req_to_string(const FuStructLenovoDockGetComponentIdListReq *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_REQ_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_REQ_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_REQ_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_REQ_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_REQ_OFFSET_COMPONENT_ID 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_REQ_SIZE 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_REQ_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_DEFAULT
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_REQ_DEFAULT_DATASZ 0x00
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_REQ_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_REQ_DEFAULT_CMD_ID FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_ID_LIST
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_REQ_DEFAULT_COMPONENT_ID FU_LENOVO_DOCK_COMPONENT_ID_NONE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockGetComponentIdListRes;

FuStructLenovoDockGetComponentIdListRes *fu_struct_lenovo_dock_get_component_id_list_res_ref(FuStructLenovoDockGetComponentIdListRes *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_get_component_id_list_res_unref(FuStructLenovoDockGetComponentIdListRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockGetComponentIdListRes, fu_struct_lenovo_dock_get_component_id_list_res_unref)
FuStructLenovoDockGetComponentIdListRes *fu_struct_lenovo_dock_get_component_id_list_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_lenovo_dock_get_component_id_list_res_get_datasz(const FuStructLenovoDockGetComponentIdListRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_lenovo_dock_get_component_id_list_res_get_total(const FuStructLenovoDockGetComponentIdListRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_RES_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_RES_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_RES_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_RES_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_RES_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_RES_OFFSET_TOTAL 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_RES_SIZE 0x7
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_RES_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_SUCCESS
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_RES_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_RES_DEFAULT_CMD_ID FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_ID_LIST
#define FU_STRUCT_LENOVO_DOCK_GET_COMPONENT_ID_LIST_RES_DEFAULT_COMPONENT_ID FU_LENOVO_DOCK_COMPONENT_ID_NONE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockFlashReadReq;

FuStructLenovoDockFlashReadReq *fu_struct_lenovo_dock_flash_read_req_ref(FuStructLenovoDockFlashReadReq *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_read_req_unref(FuStructLenovoDockFlashReadReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockFlashReadReq, fu_struct_lenovo_dock_flash_read_req_unref)
FuStructLenovoDockFlashReadReq *fu_struct_lenovo_dock_flash_read_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_lenovo_dock_flash_read_req_to_string(const FuStructLenovoDockFlashReadReq *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_lenovo_dock_flash_read_req_set_component_id(FuStructLenovoDockFlashReadReq *st, FuLenovoDockComponentId value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_read_req_set_size(FuStructLenovoDockFlashReadReq *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_read_req_set_addr(FuStructLenovoDockFlashReadReq *st, guint32 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_REQ_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_REQ_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_REQ_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_REQ_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_REQ_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_REQ_OFFSET_MEMORY_ACCESS_CMD 0x6
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_REQ_OFFSET_SIZE 0x8
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_REQ_OFFSET_ADDR 0xA
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_REQ_SIZE 0xE
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_REQ_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_DEFAULT
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_REQ_DEFAULT_DATASZ 0x08
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_REQ_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_REQ_DEFAULT_CMD_ID FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_MEMORY_ACCESS
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_REQ_DEFAULT_MEMORY_ACCESS_CMD FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_READ_WITH_ADDRESS
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockFlashReadRes;

FuStructLenovoDockFlashReadRes *fu_struct_lenovo_dock_flash_read_res_ref(FuStructLenovoDockFlashReadRes *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_read_res_unref(FuStructLenovoDockFlashReadRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockFlashReadRes, fu_struct_lenovo_dock_flash_read_res_unref)
FuStructLenovoDockFlashReadRes *fu_struct_lenovo_dock_flash_read_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockComponentId fu_struct_lenovo_dock_flash_read_res_get_component_id(const FuStructLenovoDockFlashReadRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_lenovo_dock_flash_read_res_get_size(const FuStructLenovoDockFlashReadRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_lenovo_dock_flash_read_res_get_addr(const FuStructLenovoDockFlashReadRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
const guint8 *fu_struct_lenovo_dock_flash_read_res_get_data(const FuStructLenovoDockFlashReadRes *st, gsize *bufsz) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_OFFSET_MEMORY_ACCESS_CMD 0x6
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_OFFSET_SIZE 0x8
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_OFFSET_ADDR 0xA
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_OFFSET_DATA 0xE
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_SIZE_DATA 0x100
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_N_ELEMENTS_DATA 256
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_SIZE 0x10E
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_SUCCESS
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_DEFAULT_DATASZ 0x00
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_DEFAULT_CMD_ID FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_MEMORY_ACCESS
#define FU_STRUCT_LENOVO_DOCK_FLASH_READ_RES_DEFAULT_MEMORY_ACCESS_CMD FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_READ_WITH_ADDRESS
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockFlashEraseReq;

FuStructLenovoDockFlashEraseReq *fu_struct_lenovo_dock_flash_erase_req_ref(FuStructLenovoDockFlashEraseReq *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_erase_req_unref(FuStructLenovoDockFlashEraseReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockFlashEraseReq, fu_struct_lenovo_dock_flash_erase_req_unref)
FuStructLenovoDockFlashEraseReq *fu_struct_lenovo_dock_flash_erase_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_lenovo_dock_flash_erase_req_to_string(const FuStructLenovoDockFlashEraseReq *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_lenovo_dock_flash_erase_req_set_component_id(FuStructLenovoDockFlashEraseReq *st, FuLenovoDockComponentId value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_erase_req_set_size(FuStructLenovoDockFlashEraseReq *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_erase_req_set_addr(FuStructLenovoDockFlashEraseReq *st, guint32 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_REQ_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_REQ_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_REQ_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_REQ_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_REQ_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_REQ_OFFSET_MEMORY_ACCESS_CMD 0x6
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_REQ_OFFSET_SIZE 0x8
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_REQ_OFFSET_ADDR 0xA
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_REQ_SIZE 0xE
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_REQ_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_DEFAULT
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_REQ_DEFAULT_DATASZ 0x08
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_REQ_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_REQ_DEFAULT_CMD_ID FU_LENOVO_DOCK_FLASH_CMD_SET_FLASH_MEMORY_ACCESS
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_REQ_DEFAULT_MEMORY_ACCESS_CMD FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_ERASE_WITH_ADDRESS
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockFlashEraseRes;

FuStructLenovoDockFlashEraseRes *fu_struct_lenovo_dock_flash_erase_res_ref(FuStructLenovoDockFlashEraseRes *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_erase_res_unref(FuStructLenovoDockFlashEraseRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockFlashEraseRes, fu_struct_lenovo_dock_flash_erase_res_unref)
FuStructLenovoDockFlashEraseRes *fu_struct_lenovo_dock_flash_erase_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockComponentId fu_struct_lenovo_dock_flash_erase_res_get_component_id(const FuStructLenovoDockFlashEraseRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_lenovo_dock_flash_erase_res_get_size(const FuStructLenovoDockFlashEraseRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_lenovo_dock_flash_erase_res_get_addr(const FuStructLenovoDockFlashEraseRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_RES_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_RES_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_RES_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_RES_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_RES_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_RES_OFFSET_MEMORY_ACCESS_CMD 0x6
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_RES_OFFSET_SIZE 0x8
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_RES_OFFSET_ADDR 0xA
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_RES_SIZE 0xE
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_RES_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_SUCCESS
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_RES_DEFAULT_DATASZ 0x08
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_RES_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_RES_DEFAULT_CMD_ID FU_LENOVO_DOCK_FLASH_CMD_SET_FLASH_MEMORY_ACCESS
#define FU_STRUCT_LENOVO_DOCK_FLASH_ERASE_RES_DEFAULT_MEMORY_ACCESS_CMD FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_ERASE_WITH_ADDRESS
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockFlashProgramReq;

FuStructLenovoDockFlashProgramReq *fu_struct_lenovo_dock_flash_program_req_ref(FuStructLenovoDockFlashProgramReq *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_program_req_unref(FuStructLenovoDockFlashProgramReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockFlashProgramReq, fu_struct_lenovo_dock_flash_program_req_unref)
FuStructLenovoDockFlashProgramReq *fu_struct_lenovo_dock_flash_program_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_lenovo_dock_flash_program_req_to_string(const FuStructLenovoDockFlashProgramReq *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_lenovo_dock_flash_program_req_set_datasz(FuStructLenovoDockFlashProgramReq *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_program_req_set_component_id(FuStructLenovoDockFlashProgramReq *st, FuLenovoDockComponentId value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_program_req_set_size(FuStructLenovoDockFlashProgramReq *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_program_req_set_addr(FuStructLenovoDockFlashProgramReq *st, guint32 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_REQ_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_REQ_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_REQ_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_REQ_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_REQ_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_REQ_OFFSET_MEMORY_ACCESS_CMD 0x6
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_REQ_OFFSET_SIZE 0x8
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_REQ_OFFSET_ADDR 0xA
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_REQ_SIZE 0xE
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_REQ_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_DEFAULT
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_REQ_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_REQ_DEFAULT_CMD_ID FU_LENOVO_DOCK_FLASH_CMD_SET_FLASH_MEMORY_ACCESS
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_REQ_DEFAULT_MEMORY_ACCESS_CMD FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_PROGRAM_WITH_ADDRESS
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockFlashProgramRes;

FuStructLenovoDockFlashProgramRes *fu_struct_lenovo_dock_flash_program_res_ref(FuStructLenovoDockFlashProgramRes *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_program_res_unref(FuStructLenovoDockFlashProgramRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockFlashProgramRes, fu_struct_lenovo_dock_flash_program_res_unref)
FuStructLenovoDockFlashProgramRes *fu_struct_lenovo_dock_flash_program_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_lenovo_dock_flash_program_res_get_datasz(const FuStructLenovoDockFlashProgramRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockComponentId fu_struct_lenovo_dock_flash_program_res_get_component_id(const FuStructLenovoDockFlashProgramRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_lenovo_dock_flash_program_res_get_size(const FuStructLenovoDockFlashProgramRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_lenovo_dock_flash_program_res_get_addr(const FuStructLenovoDockFlashProgramRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_RES_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_RES_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_RES_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_RES_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_RES_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_RES_OFFSET_MEMORY_ACCESS_CMD 0x6
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_RES_OFFSET_SIZE 0x8
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_RES_OFFSET_ADDR 0xA
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_RES_SIZE 0xE
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_RES_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_SUCCESS
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_RES_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_RES_DEFAULT_CMD_ID FU_LENOVO_DOCK_FLASH_CMD_SET_FLASH_MEMORY_ACCESS
#define FU_STRUCT_LENOVO_DOCK_FLASH_PROGRAM_RES_DEFAULT_MEMORY_ACCESS_CMD FU_LENOVO_DOCK_FLASH_MEMORY_ACCESS_CMD_DOCK_PROGRAM_WITH_ADDRESS
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockFlashVerifyCrcReq;

FuStructLenovoDockFlashVerifyCrcReq *fu_struct_lenovo_dock_flash_verify_crc_req_ref(FuStructLenovoDockFlashVerifyCrcReq *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_verify_crc_req_unref(FuStructLenovoDockFlashVerifyCrcReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockFlashVerifyCrcReq, fu_struct_lenovo_dock_flash_verify_crc_req_unref)
FuStructLenovoDockFlashVerifyCrcReq *fu_struct_lenovo_dock_flash_verify_crc_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_lenovo_dock_flash_verify_crc_req_set_component_id(FuStructLenovoDockFlashVerifyCrcReq *st, FuLenovoDockComponentId value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_REQ_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_REQ_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_REQ_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_REQ_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_REQ_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_REQ_OFFSET_TYPE 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_REQ_SIZE 0x7
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_REQ_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_DEFAULT
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_REQ_DEFAULT_DATASZ 0x01
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_REQ_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_REQ_DEFAULT_CMD_ID FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_MEMORY_SELF_VERIFY
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_REQ_DEFAULT_TYPE FU_LENOVO_DOCK_FLASH_MEMORY_SELF_VERIFY_TYPE_CRC
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockFlashVerifyCrcRes;

FuStructLenovoDockFlashVerifyCrcRes *fu_struct_lenovo_dock_flash_verify_crc_res_ref(FuStructLenovoDockFlashVerifyCrcRes *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_verify_crc_res_unref(FuStructLenovoDockFlashVerifyCrcRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockFlashVerifyCrcRes, fu_struct_lenovo_dock_flash_verify_crc_res_unref)
FuStructLenovoDockFlashVerifyCrcRes *fu_struct_lenovo_dock_flash_verify_crc_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockComponentId fu_struct_lenovo_dock_flash_verify_crc_res_get_component_id(const FuStructLenovoDockFlashVerifyCrcRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_lenovo_dock_flash_verify_crc_res_get_crc(const FuStructLenovoDockFlashVerifyCrcRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_RES_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_RES_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_RES_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_RES_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_RES_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_RES_OFFSET_TYPE 0x6
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_RES_OFFSET_CRC 0x7
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_RES_SIZE 0xB
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_RES_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_SUCCESS
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_RES_DEFAULT_DATASZ 0x5
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_RES_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_RES_DEFAULT_CMD_ID FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_MEMORY_SELF_VERIFY
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_CRC_RES_DEFAULT_TYPE FU_LENOVO_DOCK_FLASH_MEMORY_SELF_VERIFY_TYPE_CRC
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockFlashVerifySignatureReq;

FuStructLenovoDockFlashVerifySignatureReq *fu_struct_lenovo_dock_flash_verify_signature_req_ref(FuStructLenovoDockFlashVerifySignatureReq *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_verify_signature_req_unref(FuStructLenovoDockFlashVerifySignatureReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockFlashVerifySignatureReq, fu_struct_lenovo_dock_flash_verify_signature_req_unref)
FuStructLenovoDockFlashVerifySignatureReq *fu_struct_lenovo_dock_flash_verify_signature_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_lenovo_dock_flash_verify_signature_req_set_component_id(FuStructLenovoDockFlashVerifySignatureReq *st, FuLenovoDockComponentId value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_REQ_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_REQ_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_REQ_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_REQ_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_REQ_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_REQ_OFFSET_TYPE 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_REQ_SIZE 0x7
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_REQ_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_DEFAULT
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_REQ_DEFAULT_DATASZ 0x01
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_REQ_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_REQ_DEFAULT_CMD_ID FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_MEMORY_SELF_VERIFY
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_REQ_DEFAULT_TYPE FU_LENOVO_DOCK_FLASH_MEMORY_SELF_VERIFY_TYPE_SIGNATURE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructLenovoDockFlashVerifySignatureRes;

FuStructLenovoDockFlashVerifySignatureRes *fu_struct_lenovo_dock_flash_verify_signature_res_ref(FuStructLenovoDockFlashVerifySignatureRes *st) G_GNUC_NON_NULL(1);
void fu_struct_lenovo_dock_flash_verify_signature_res_unref(FuStructLenovoDockFlashVerifySignatureRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructLenovoDockFlashVerifySignatureRes, fu_struct_lenovo_dock_flash_verify_signature_res_unref)
FuStructLenovoDockFlashVerifySignatureRes *fu_struct_lenovo_dock_flash_verify_signature_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockComponentId fu_struct_lenovo_dock_flash_verify_signature_res_get_component_id(const FuStructLenovoDockFlashVerifySignatureRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuLenovoDockFlashVerifySignatureResult fu_struct_lenovo_dock_flash_verify_signature_res_get_result(const FuStructLenovoDockFlashVerifySignatureRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RES_OFFSET_STATUS 0x0
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RES_OFFSET_DATASZ 0x1
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RES_OFFSET_CMD_CLASS 0x2
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RES_OFFSET_CMD_ID 0x3
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RES_OFFSET_COMPONENT_ID 0x4
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RES_OFFSET_TYPE 0x6
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RES_OFFSET_RESULT 0x7
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RES_SIZE 0x8
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RES_DEFAULT_STATUS FU_LENOVO_DOCK_STATUS_SUCCESS
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RES_DEFAULT_DATASZ 0x02
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RES_DEFAULT_CMD_CLASS FU_LENOVO_DOCK_CMD_CLASS_EXTERNAL_FLASH
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RES_DEFAULT_CMD_ID FU_LENOVO_DOCK_FLASH_CMD_GET_FLASH_MEMORY_SELF_VERIFY
#define FU_STRUCT_LENOVO_DOCK_FLASH_VERIFY_SIGNATURE_RES_DEFAULT_TYPE FU_LENOVO_DOCK_FLASH_MEMORY_SELF_VERIFY_TYPE_SIGNATURE
#endif
