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

#pragma once
#include <fu-input-stream.h>
/**
 * FuRedfishRequestPerformFlags:
 */
typedef enum {
    /**
     * FU_REDFISH_REQUEST_PERFORM_FLAG_NONE:
     */
    FU_REDFISH_REQUEST_PERFORM_FLAG_NONE = 0,
    /**
     * FU_REDFISH_REQUEST_PERFORM_FLAG_LOAD_JSON:
     */
    FU_REDFISH_REQUEST_PERFORM_FLAG_LOAD_JSON = 1 << 0,
    /**
     * FU_REDFISH_REQUEST_PERFORM_FLAG_USE_CACHE:
     */
    FU_REDFISH_REQUEST_PERFORM_FLAG_USE_CACHE = 1 << 1,
    /**
     * FU_REDFISH_REQUEST_PERFORM_FLAG_USE_ETAG:
     */
    FU_REDFISH_REQUEST_PERFORM_FLAG_USE_ETAG = 1 << 2,
} G_GNUC_FLAG_ENUM FuRedfishRequestPerformFlags;
/**
 * FuRedfishInterfaceType:
 */
typedef enum {
    /**
     * FU_REDFISH_INTERFACE_TYPE_USB_NETWORK:
     */
    FU_REDFISH_INTERFACE_TYPE_USB_NETWORK = 0x02,
    /**
     * FU_REDFISH_INTERFACE_TYPE_PCI_NETWORK:
     */
    FU_REDFISH_INTERFACE_TYPE_PCI_NETWORK = 0x03,
    /**
     * FU_REDFISH_INTERFACE_TYPE_USB_NETWORK_V2:
     */
    FU_REDFISH_INTERFACE_TYPE_USB_NETWORK_V2 = 0x04,
    /**
     * FU_REDFISH_INTERFACE_TYPE_PCI_NETWORK_V2:
     */
    FU_REDFISH_INTERFACE_TYPE_PCI_NETWORK_V2 = 0x05,
}  FuRedfishInterfaceType;
const gchar *fu_redfish_interface_type_to_string(FuRedfishInterfaceType val) G_GNUC_CONST;
/**
 * FuRedfishIpAssignmentType:
 */
typedef enum {
    /**
     * FU_REDFISH_IP_ASSIGNMENT_TYPE_STATIC:
     */
    FU_REDFISH_IP_ASSIGNMENT_TYPE_STATIC = 0x00,
    /**
     * FU_REDFISH_IP_ASSIGNMENT_TYPE_DHCP:
     */
    FU_REDFISH_IP_ASSIGNMENT_TYPE_DHCP = 0x02,
    /**
     * FU_REDFISH_IP_ASSIGNMENT_TYPE_AUTO_CONFIG:
     */
    FU_REDFISH_IP_ASSIGNMENT_TYPE_AUTO_CONFIG = 0x03,
    /**
     * FU_REDFISH_IP_ASSIGNMENT_TYPE_HOST_SELECT:
     */
    FU_REDFISH_IP_ASSIGNMENT_TYPE_HOST_SELECT = 0x04,
}  FuRedfishIpAssignmentType;
/**
 * FuRedfishIpAddressFormat:
 */
typedef enum {
    /**
     * FU_REDFISH_IP_ADDRESS_FORMAT_UNKNOWN:
     */
    FU_REDFISH_IP_ADDRESS_FORMAT_UNKNOWN = 0x00,
    /**
     * FU_REDFISH_IP_ADDRESS_FORMAT_V4:
     */
    FU_REDFISH_IP_ADDRESS_FORMAT_V4 = 0x01,
    /**
     * FU_REDFISH_IP_ADDRESS_FORMAT_V6:
     */
    FU_REDFISH_IP_ADDRESS_FORMAT_V6 = 0x02,
}  FuRedfishIpAddressFormat;
/**
 * FuRedfishSmbiosInterfaceType:
 */
typedef enum {
    /**
     * FU_REDFISH_SMBIOS_INTERFACE_TYPE_UNKNOWN:
     */
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_UNKNOWN = 0x00,
    /**
     * FU_REDFISH_SMBIOS_INTERFACE_TYPE_KCS:
     */
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_KCS = 0x02,
    /**
     * FU_REDFISH_SMBIOS_INTERFACE_TYPE_8250_UART:
     */
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_8250_UART = 0x03,
    /**
     * FU_REDFISH_SMBIOS_INTERFACE_TYPE_16450_UART:
     */
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_16450_UART = 0x04,
    /**
     * FU_REDFISH_SMBIOS_INTERFACE_TYPE_16550_UART:
     */
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_16550_UART = 0x05,
    /**
     * FU_REDFISH_SMBIOS_INTERFACE_TYPE_16650_UART:
     */
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_16650_UART = 0x06,
    /**
     * FU_REDFISH_SMBIOS_INTERFACE_TYPE_16750_UART:
     */
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_16750_UART = 0x07,
    /**
     * FU_REDFISH_SMBIOS_INTERFACE_TYPE_16850_UART:
     */
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_16850_UART = 0x08,
    /**
     * FU_REDFISH_SMBIOS_INTERFACE_TYPE_MCTP:
     */
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_MCTP = 0x3F,
    /**
     * FU_REDFISH_SMBIOS_INTERFACE_TYPE_NETWORK:
     */
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_NETWORK = 0x40,
    /**
     * FU_REDFISH_SMBIOS_INTERFACE_TYPE_OEM:
     */
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_OEM = 0xF0,
}  FuRedfishSmbiosInterfaceType;
const gchar *fu_redfish_smbios_interface_type_to_string(FuRedfishSmbiosInterfaceType val) G_GNUC_CONST;
/**
 * FuRedfishNetworkDeviceState:
 */
typedef enum {
    /**
     * FU_REDFISH_NETWORK_DEVICE_STATE_UNKNOWN:
     */
    FU_REDFISH_NETWORK_DEVICE_STATE_UNKNOWN = 0,
    /**
     * FU_REDFISH_NETWORK_DEVICE_STATE_UNMANAGED:
     */
    FU_REDFISH_NETWORK_DEVICE_STATE_UNMANAGED = 10,
    /**
     * FU_REDFISH_NETWORK_DEVICE_STATE_UNAVAILABLE:
     */
    FU_REDFISH_NETWORK_DEVICE_STATE_UNAVAILABLE = 20,
    /**
     * FU_REDFISH_NETWORK_DEVICE_STATE_DISCONNECTED:
     */
    FU_REDFISH_NETWORK_DEVICE_STATE_DISCONNECTED = 30,
    /**
     * FU_REDFISH_NETWORK_DEVICE_STATE_PREPARE:
     */
    FU_REDFISH_NETWORK_DEVICE_STATE_PREPARE = 40,
    /**
     * FU_REDFISH_NETWORK_DEVICE_STATE_CONFIG:
     */
    FU_REDFISH_NETWORK_DEVICE_STATE_CONFIG = 50,
    /**
     * FU_REDFISH_NETWORK_DEVICE_STATE_NEED_AUTH:
     */
    FU_REDFISH_NETWORK_DEVICE_STATE_NEED_AUTH = 60,
    /**
     * FU_REDFISH_NETWORK_DEVICE_STATE_IP_CONFIG:
     */
    FU_REDFISH_NETWORK_DEVICE_STATE_IP_CONFIG = 70,
    /**
     * FU_REDFISH_NETWORK_DEVICE_STATE_IP_CHECK:
     */
    FU_REDFISH_NETWORK_DEVICE_STATE_IP_CHECK = 80,
    /**
     * FU_REDFISH_NETWORK_DEVICE_STATE_SECONDARIES:
     */
    FU_REDFISH_NETWORK_DEVICE_STATE_SECONDARIES = 90,
    /**
     * FU_REDFISH_NETWORK_DEVICE_STATE_ACTIVATED:
     */
    FU_REDFISH_NETWORK_DEVICE_STATE_ACTIVATED = 100,
    /**
     * FU_REDFISH_NETWORK_DEVICE_STATE_DEACTIVATING:
     */
    FU_REDFISH_NETWORK_DEVICE_STATE_DEACTIVATING = 110,
    /**
     * FU_REDFISH_NETWORK_DEVICE_STATE_FAILED:
     */
    FU_REDFISH_NETWORK_DEVICE_STATE_FAILED = 120,
}  FuRedfishNetworkDeviceState;
const gchar *fu_redfish_network_device_state_to_string(FuRedfishNetworkDeviceState val) G_GNUC_CONST;
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructRedfishProtocolOverIp;

FuStructRedfishProtocolOverIp *fu_struct_redfish_protocol_over_ip_ref(FuStructRedfishProtocolOverIp *st) G_GNUC_NON_NULL(1);
void fu_struct_redfish_protocol_over_ip_unref(FuStructRedfishProtocolOverIp *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructRedfishProtocolOverIp, fu_struct_redfish_protocol_over_ip_unref)
FuStructRedfishProtocolOverIp *fu_struct_redfish_protocol_over_ip_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuStructRedfishProtocolOverIp *fu_struct_redfish_protocol_over_ip_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
const fwupd_guid_t *fu_struct_redfish_protocol_over_ip_get_service_uuid(const FuStructRedfishProtocolOverIp *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_redfish_protocol_over_ip_get_host_ip_assignment_type(const FuStructRedfishProtocolOverIp *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_redfish_protocol_over_ip_get_host_ip_address_format(const FuStructRedfishProtocolOverIp *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
const guint8 *fu_struct_redfish_protocol_over_ip_get_host_ip_address(const FuStructRedfishProtocolOverIp *st, gsize *bufsz) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
const guint8 *fu_struct_redfish_protocol_over_ip_get_host_ip_mask(const FuStructRedfishProtocolOverIp *st, gsize *bufsz) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_redfish_protocol_over_ip_get_service_ip_assignment_type(const FuStructRedfishProtocolOverIp *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_redfish_protocol_over_ip_get_service_ip_address_format(const FuStructRedfishProtocolOverIp *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
const guint8 *fu_struct_redfish_protocol_over_ip_get_service_ip_address(const FuStructRedfishProtocolOverIp *st, gsize *bufsz) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
const guint8 *fu_struct_redfish_protocol_over_ip_get_service_ip_mask(const FuStructRedfishProtocolOverIp *st, gsize *bufsz) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_redfish_protocol_over_ip_get_service_ip_port(const FuStructRedfishProtocolOverIp *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_redfish_protocol_over_ip_get_service_ip_vlan_id(const FuStructRedfishProtocolOverIp *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_redfish_protocol_over_ip_get_service_hostname_len(const FuStructRedfishProtocolOverIp *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_redfish_protocol_over_ip_set_service_uuid(FuStructRedfishProtocolOverIp *st, const fwupd_guid_t *value) G_GNUC_NON_NULL(1, 2);
void fu_struct_redfish_protocol_over_ip_set_host_ip_assignment_type(FuStructRedfishProtocolOverIp *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_redfish_protocol_over_ip_set_host_ip_address_format(FuStructRedfishProtocolOverIp *st, guint8 value) G_GNUC_NON_NULL(1);
gboolean fu_struct_redfish_protocol_over_ip_set_host_ip_address(FuStructRedfishProtocolOverIp *st, const guint8 *buf, gsize bufsz, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;
gboolean fu_struct_redfish_protocol_over_ip_set_host_ip_mask(FuStructRedfishProtocolOverIp *st, const guint8 *buf, gsize bufsz, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_redfish_protocol_over_ip_set_service_ip_assignment_type(FuStructRedfishProtocolOverIp *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_redfish_protocol_over_ip_set_service_ip_address_format(FuStructRedfishProtocolOverIp *st, guint8 value) G_GNUC_NON_NULL(1);
gboolean fu_struct_redfish_protocol_over_ip_set_service_ip_address(FuStructRedfishProtocolOverIp *st, const guint8 *buf, gsize bufsz, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;
gboolean fu_struct_redfish_protocol_over_ip_set_service_ip_mask(FuStructRedfishProtocolOverIp *st, const guint8 *buf, gsize bufsz, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_redfish_protocol_over_ip_set_service_ip_port(FuStructRedfishProtocolOverIp *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_redfish_protocol_over_ip_set_service_ip_vlan_id(FuStructRedfishProtocolOverIp *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_redfish_protocol_over_ip_set_service_hostname_len(FuStructRedfishProtocolOverIp *st, guint8 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_OFFSET_SERVICE_UUID 0x0
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_OFFSET_HOST_IP_ASSIGNMENT_TYPE 0x10
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_OFFSET_HOST_IP_ADDRESS_FORMAT 0x11
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_OFFSET_HOST_IP_ADDRESS 0x12
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_OFFSET_HOST_IP_MASK 0x22
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_OFFSET_SERVICE_IP_ASSIGNMENT_TYPE 0x32
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_OFFSET_SERVICE_IP_ADDRESS_FORMAT 0x33
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_OFFSET_SERVICE_IP_ADDRESS 0x34
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_OFFSET_SERVICE_IP_MASK 0x44
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_OFFSET_SERVICE_IP_PORT 0x54
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_OFFSET_SERVICE_IP_VLAN_ID 0x56
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_OFFSET_SERVICE_HOSTNAME_LEN 0x5A
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_SIZE_HOST_IP_ADDRESS 0x10
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_N_ELEMENTS_HOST_IP_ADDRESS 16
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_SIZE_HOST_IP_MASK 0x10
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_N_ELEMENTS_HOST_IP_MASK 16
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_SIZE_SERVICE_IP_ADDRESS 0x10
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_N_ELEMENTS_SERVICE_IP_ADDRESS 16
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_SIZE_SERVICE_IP_MASK 0x10
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_N_ELEMENTS_SERVICE_IP_MASK 16
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_SIZE 0x5B
#endif

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

FuStructRedfishSmbiosType42 *fu_struct_redfish_smbios_type42_ref(FuStructRedfishSmbiosType42 *st) G_GNUC_NON_NULL(1);
void fu_struct_redfish_smbios_type42_unref(FuStructRedfishSmbiosType42 *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructRedfishSmbiosType42, fu_struct_redfish_smbios_type42_unref)
FuStructRedfishSmbiosType42 *fu_struct_redfish_smbios_type42_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_redfish_smbios_type42_get_length(const FuStructRedfishSmbiosType42 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_redfish_smbios_type42_get_handle(const FuStructRedfishSmbiosType42 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuRedfishSmbiosInterfaceType fu_struct_redfish_smbios_type42_get_interface_type(const FuStructRedfishSmbiosType42 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_redfish_smbios_type42_get_data_length(const FuStructRedfishSmbiosType42 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_REDFISH_SMBIOS_TYPE42_OFFSET_TYPE 0x0
#define FU_STRUCT_REDFISH_SMBIOS_TYPE42_OFFSET_LENGTH 0x1
#define FU_STRUCT_REDFISH_SMBIOS_TYPE42_OFFSET_HANDLE 0x2
#define FU_STRUCT_REDFISH_SMBIOS_TYPE42_OFFSET_INTERFACE_TYPE 0x4
#define FU_STRUCT_REDFISH_SMBIOS_TYPE42_OFFSET_DATA_LENGTH 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_REDFISH_SMBIOS_TYPE42_SIZE 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_REDFISH_SMBIOS_TYPE42_DEFAULT_TYPE 42
#define FU_STRUCT_REDFISH_SMBIOS_TYPE42_DEFAULT_INTERFACE_TYPE FU_REDFISH_SMBIOS_INTERFACE_TYPE_NETWORK
#endif
