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

#pragma once
#include <fu-input-stream.h>
/**
 * FuAmtStatus:
 */
typedef enum {
    /**
     * FU_AMT_STATUS_SUCCESS:
     */
    FU_AMT_STATUS_SUCCESS,
    /**
     * FU_AMT_STATUS_INTERNAL_ERROR:
     */
    FU_AMT_STATUS_INTERNAL_ERROR,
    /**
     * FU_AMT_STATUS_NOT_READY:
     */
    FU_AMT_STATUS_NOT_READY,
    /**
     * FU_AMT_STATUS_INVALID_AMT_MODE:
     */
    FU_AMT_STATUS_INVALID_AMT_MODE,
    /**
     * FU_AMT_STATUS_INVALID_MESSAGE_LENGTH:
     */
    FU_AMT_STATUS_INVALID_MESSAGE_LENGTH,
}  FuAmtStatus;
#define FU_AMT_STATUS_LAST 5
/**
 * FuAmtProvisioningState:
 */
typedef enum {
    /**
     * FU_AMT_PROVISIONING_STATE_UNPROVISIONED:
     */
    FU_AMT_PROVISIONING_STATE_UNPROVISIONED,
    /**
     * FU_AMT_PROVISIONING_STATE_BEING_PROVISIONED:
     */
    FU_AMT_PROVISIONING_STATE_BEING_PROVISIONED,
    /**
     * FU_AMT_PROVISIONING_STATE_PROVISIONED:
     */
    FU_AMT_PROVISIONING_STATE_PROVISIONED,
}  FuAmtProvisioningState;
#define FU_AMT_PROVISIONING_STATE_LAST 3
const gchar *fu_amt_provisioning_state_to_string(FuAmtProvisioningState val) G_GNUC_CONST;
/**
 * FuAmtHostIfCommand:
 */
typedef enum {
    /**
     * FU_AMT_HOST_IF_COMMAND_PROVISIONING_MODE_REQUEST:
     */
    FU_AMT_HOST_IF_COMMAND_PROVISIONING_MODE_REQUEST = 0x04000008,
    /**
     * FU_AMT_HOST_IF_COMMAND_PROVISIONING_STATE_REQUEST:
     */
    FU_AMT_HOST_IF_COMMAND_PROVISIONING_STATE_REQUEST = 0x04000011,
    /**
     * FU_AMT_HOST_IF_COMMAND_CODE_VERSIONS_REQUEST:
     */
    FU_AMT_HOST_IF_COMMAND_CODE_VERSIONS_REQUEST = 0x0400001A,
    /**
     * FU_AMT_HOST_IF_COMMAND_PROVISIONING_MODE_RESPONSE:
     */
    FU_AMT_HOST_IF_COMMAND_PROVISIONING_MODE_RESPONSE = 0x04800008,
    /**
     * FU_AMT_HOST_IF_COMMAND_PROVISIONING_STATE_RESPONSE:
     */
    FU_AMT_HOST_IF_COMMAND_PROVISIONING_STATE_RESPONSE = 0x04800011,
    /**
     * FU_AMT_HOST_IF_COMMAND_CODE_VERSIONS_RESPONSE:
     */
    FU_AMT_HOST_IF_COMMAND_CODE_VERSIONS_RESPONSE = 0x0480001A,
}  FuAmtHostIfCommand;
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuAmtHostIfMsgCodeVersionRequest;

FuAmtHostIfMsgCodeVersionRequest *fu_amt_host_if_msg_code_version_request_ref(FuAmtHostIfMsgCodeVersionRequest *st) G_GNUC_NON_NULL(1);
void fu_amt_host_if_msg_code_version_request_unref(FuAmtHostIfMsgCodeVersionRequest *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuAmtHostIfMsgCodeVersionRequest, fu_amt_host_if_msg_code_version_request_unref)
FuAmtHostIfMsgCodeVersionRequest *fu_amt_host_if_msg_code_version_request_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_REQUEST_OFFSET_VERSION_MAJOR 0x0
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_REQUEST_OFFSET_VERSION_MINOR 0x1
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_REQUEST_OFFSET_COMMAND 0x4
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_REQUEST_OFFSET_LENGTH 0x8
#endif

#ifndef __GI_SCANNER__
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_REQUEST_SIZE 0xC
#endif

#ifndef __GI_SCANNER__
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_REQUEST_DEFAULT_VERSION_MAJOR 0x1
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_REQUEST_DEFAULT_VERSION_MINOR 0x1
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_REQUEST_DEFAULT_COMMAND FU_AMT_HOST_IF_COMMAND_CODE_VERSIONS_REQUEST
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_REQUEST_DEFAULT_LENGTH 0x0
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuAmtHostIfMsgCodeVersionResponse;

FuAmtHostIfMsgCodeVersionResponse *fu_amt_host_if_msg_code_version_response_ref(FuAmtHostIfMsgCodeVersionResponse *st) G_GNUC_NON_NULL(1);
void fu_amt_host_if_msg_code_version_response_unref(FuAmtHostIfMsgCodeVersionResponse *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuAmtHostIfMsgCodeVersionResponse, fu_amt_host_if_msg_code_version_response_unref)
FuAmtHostIfMsgCodeVersionResponse *fu_amt_host_if_msg_code_version_response_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_amt_host_if_msg_code_version_response_get_status(const FuAmtHostIfMsgCodeVersionResponse *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_amt_host_if_msg_code_version_response_get_version_count(const FuAmtHostIfMsgCodeVersionResponse *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_RESPONSE_OFFSET_VERSION_MAJOR 0x0
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_RESPONSE_OFFSET_VERSION_MINOR 0x1
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_RESPONSE_OFFSET_COMMAND 0x4
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_RESPONSE_OFFSET_STATUS 0xC
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_RESPONSE_OFFSET_VERSION_COUNT 0x51
#endif

#ifndef __GI_SCANNER__
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_RESPONSE_SIZE 0x55
#endif

#ifndef __GI_SCANNER__
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_RESPONSE_DEFAULT_VERSION_MAJOR 0x1
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_RESPONSE_DEFAULT_VERSION_MINOR 0x1
#define FU_AMT_HOST_IF_MSG_CODE_VERSION_RESPONSE_DEFAULT_COMMAND FU_AMT_HOST_IF_COMMAND_CODE_VERSIONS_RESPONSE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuAmtUnicodeString;

FuAmtUnicodeString *fu_amt_unicode_string_ref(FuAmtUnicodeString *st) G_GNUC_NON_NULL(1);
void fu_amt_unicode_string_unref(FuAmtUnicodeString *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuAmtUnicodeString, fu_amt_unicode_string_unref)
FuAmtUnicodeString *fu_amt_unicode_string_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_amt_unicode_string_get_description_length(const FuAmtUnicodeString *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_amt_unicode_string_get_description_string(const FuAmtUnicodeString *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_amt_unicode_string_get_version_length(const FuAmtUnicodeString *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_amt_unicode_string_get_version_string(const FuAmtUnicodeString *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_AMT_UNICODE_STRING_OFFSET_DESCRIPTION_LENGTH 0x0
#define FU_AMT_UNICODE_STRING_OFFSET_DESCRIPTION_STRING 0x2
#define FU_AMT_UNICODE_STRING_OFFSET_VERSION_LENGTH 0x16
#define FU_AMT_UNICODE_STRING_OFFSET_VERSION_STRING 0x18
#endif

#ifndef __GI_SCANNER__
#define FU_AMT_UNICODE_STRING_SIZE_DESCRIPTION_STRING 0x14
#define FU_AMT_UNICODE_STRING_N_ELEMENTS_DESCRIPTION_STRING 20
#define FU_AMT_UNICODE_STRING_SIZE_VERSION_STRING 0x14
#define FU_AMT_UNICODE_STRING_N_ELEMENTS_VERSION_STRING 20
#define FU_AMT_UNICODE_STRING_SIZE 0x2C
#endif

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

FuAmtHostIfMsgProvisioningStateRequest *fu_amt_host_if_msg_provisioning_state_request_ref(FuAmtHostIfMsgProvisioningStateRequest *st) G_GNUC_NON_NULL(1);
void fu_amt_host_if_msg_provisioning_state_request_unref(FuAmtHostIfMsgProvisioningStateRequest *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuAmtHostIfMsgProvisioningStateRequest, fu_amt_host_if_msg_provisioning_state_request_unref)
FuAmtHostIfMsgProvisioningStateRequest *fu_amt_host_if_msg_provisioning_state_request_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_REQUEST_OFFSET_VERSION_MAJOR 0x0
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_REQUEST_OFFSET_VERSION_MINOR 0x1
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_REQUEST_OFFSET_COMMAND 0x4
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_REQUEST_OFFSET_LENGTH 0x8
#endif

#ifndef __GI_SCANNER__
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_REQUEST_SIZE 0xC
#endif

#ifndef __GI_SCANNER__
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_REQUEST_DEFAULT_VERSION_MAJOR 0x1
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_REQUEST_DEFAULT_VERSION_MINOR 0x1
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_REQUEST_DEFAULT_COMMAND FU_AMT_HOST_IF_COMMAND_PROVISIONING_STATE_REQUEST
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_REQUEST_DEFAULT_LENGTH 0x0
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuAmtHostIfMsgProvisioningStateResponse;

FuAmtHostIfMsgProvisioningStateResponse *fu_amt_host_if_msg_provisioning_state_response_ref(FuAmtHostIfMsgProvisioningStateResponse *st) G_GNUC_NON_NULL(1);
void fu_amt_host_if_msg_provisioning_state_response_unref(FuAmtHostIfMsgProvisioningStateResponse *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuAmtHostIfMsgProvisioningStateResponse, fu_amt_host_if_msg_provisioning_state_response_unref)
FuAmtHostIfMsgProvisioningStateResponse *fu_amt_host_if_msg_provisioning_state_response_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_amt_host_if_msg_provisioning_state_response_get_status(const FuAmtHostIfMsgProvisioningStateResponse *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuAmtProvisioningState fu_amt_host_if_msg_provisioning_state_response_get_provisioning_state(const FuAmtHostIfMsgProvisioningStateResponse *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_RESPONSE_OFFSET_VERSION_MAJOR 0x0
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_RESPONSE_OFFSET_VERSION_MINOR 0x1
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_RESPONSE_OFFSET_COMMAND 0x4
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_RESPONSE_OFFSET_LENGTH 0x8
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_RESPONSE_OFFSET_STATUS 0xC
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_RESPONSE_OFFSET_PROVISIONING_STATE 0x10
#endif

#ifndef __GI_SCANNER__
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_RESPONSE_SIZE 0x11
#endif

#ifndef __GI_SCANNER__
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_RESPONSE_DEFAULT_VERSION_MAJOR 0x1
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_RESPONSE_DEFAULT_VERSION_MINOR 0x1
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_RESPONSE_DEFAULT_COMMAND FU_AMT_HOST_IF_COMMAND_PROVISIONING_STATE_RESPONSE
#define FU_AMT_HOST_IF_MSG_PROVISIONING_STATE_RESPONSE_DEFAULT_LENGTH 0x8
#endif
