/* auto-generated, do not modify */
#pragma once
#include <fwupd-common.h>
typedef enum {
    FU_REDFISH_INTERFACE_TYPE_USB_NETWORK = 0x02,
    FU_REDFISH_INTERFACE_TYPE_PCI_NETWORK = 0x03,
    FU_REDFISH_INTERFACE_TYPE_USB_NETWORK_V2 = 0x04,
    FU_REDFISH_INTERFACE_TYPE_PCI_NETWORK_V2 = 0x05,
} FuRedfishInterfaceType;
const gchar *fu_redfish_interface_type_to_string(FuRedfishInterfaceType val);
typedef enum {
    FU_REDFISH_IP_ASSIGNMENT_TYPE_STATIC = 0x00,
    FU_REDFISH_IP_ASSIGNMENT_TYPE_DHCP = 0x02,
    FU_REDFISH_IP_ASSIGNMENT_TYPE_AUTO_CONFIG = 0x03,
    FU_REDFISH_IP_ASSIGNMENT_TYPE_HOST_SELECT = 0x04,
} FuRedfishIpAssignmentType;
typedef enum {
    FU_REDFISH_IP_ADDRESS_FORMAT_UNKNOWN = 0x00,
    FU_REDFISH_IP_ADDRESS_FORMAT_V4 = 0x01,
    FU_REDFISH_IP_ADDRESS_FORMAT_V6 = 0x02,
} FuRedfishIpAddressFormat;
typedef enum {
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_UNKNOWN = 0x00,
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_KCS = 0x02,
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_8250_UART = 0x03,
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_16450_UART = 0x04,
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_16550_UART = 0x05,
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_16650_UART = 0x06,
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_16750_UART = 0x07,
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_16850_UART = 0x08,
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_MCTP = 0x3F,
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_NETWORK = 0x40,
    FU_REDFISH_SMBIOS_INTERFACE_TYPE_OEM = 0xF0,
} FuRedfishSmbiosInterfaceType;
const gchar *fu_redfish_smbios_interface_type_to_string(FuRedfishSmbiosInterfaceType val);
typedef enum {
    FU_REDFISH_NETWORK_DEVICE_STATE_UNKNOWN = 0,
    FU_REDFISH_NETWORK_DEVICE_STATE_UNMANAGED = 10,
    FU_REDFISH_NETWORK_DEVICE_STATE_UNAVAILABLE = 20,
    FU_REDFISH_NETWORK_DEVICE_STATE_DISCONNECTED = 30,
    FU_REDFISH_NETWORK_DEVICE_STATE_PREPARE = 40,
    FU_REDFISH_NETWORK_DEVICE_STATE_CONFIG = 50,
    FU_REDFISH_NETWORK_DEVICE_STATE_NEED_AUTH = 60,
    FU_REDFISH_NETWORK_DEVICE_STATE_IP_CONFIG = 70,
    FU_REDFISH_NETWORK_DEVICE_STATE_IP_CHECK = 80,
    FU_REDFISH_NETWORK_DEVICE_STATE_SECONDARIES = 90,
    FU_REDFISH_NETWORK_DEVICE_STATE_ACTIVATED = 100,
    FU_REDFISH_NETWORK_DEVICE_STATE_DEACTIVATING = 110,
    FU_REDFISH_NETWORK_DEVICE_STATE_FAILED = 120,
} FuRedfishNetworkDeviceState;
const gchar *fu_redfish_network_device_state_to_string(FuRedfishNetworkDeviceState val);

GByteArray *fu_struct_redfish_protocol_over_ip_new(void);
GByteArray *fu_struct_redfish_protocol_over_ip_parse_bytes(GBytes *blob, gsize offset, GError **error);
const fwupd_guid_t *fu_struct_redfish_protocol_over_ip_get_service_uuid(const GByteArray *st);
guint8 fu_struct_redfish_protocol_over_ip_get_host_ip_assignment_type(const GByteArray *st);
guint8 fu_struct_redfish_protocol_over_ip_get_host_ip_address_format(const GByteArray *st);
const guint8 *fu_struct_redfish_protocol_over_ip_get_host_ip_address(const GByteArray *st, gsize *bufsz);
const guint8 *fu_struct_redfish_protocol_over_ip_get_host_ip_mask(const GByteArray *st, gsize *bufsz);
guint8 fu_struct_redfish_protocol_over_ip_get_service_ip_assignment_type(const GByteArray *st);
guint8 fu_struct_redfish_protocol_over_ip_get_service_ip_address_format(const GByteArray *st);
const guint8 *fu_struct_redfish_protocol_over_ip_get_service_ip_address(const GByteArray *st, gsize *bufsz);
const guint8 *fu_struct_redfish_protocol_over_ip_get_service_ip_mask(const GByteArray *st, gsize *bufsz);
guint16 fu_struct_redfish_protocol_over_ip_get_service_ip_port(const GByteArray *st);
guint32 fu_struct_redfish_protocol_over_ip_get_service_ip_vlan_id(const GByteArray *st);
guint8 fu_struct_redfish_protocol_over_ip_get_service_hostname_len(const GByteArray *st);
void fu_struct_redfish_protocol_over_ip_set_service_uuid(GByteArray *st, const fwupd_guid_t *value);
void fu_struct_redfish_protocol_over_ip_set_host_ip_assignment_type(GByteArray *st, guint8 value);
void fu_struct_redfish_protocol_over_ip_set_host_ip_address_format(GByteArray *st, guint8 value);
gboolean fu_struct_redfish_protocol_over_ip_set_host_ip_address(GByteArray *st, const guint8 *buf, gsize bufsz, GError **error);
gboolean fu_struct_redfish_protocol_over_ip_set_host_ip_mask(GByteArray *st, const guint8 *buf, gsize bufsz, GError **error);
void fu_struct_redfish_protocol_over_ip_set_service_ip_assignment_type(GByteArray *st, guint8 value);
void fu_struct_redfish_protocol_over_ip_set_service_ip_address_format(GByteArray *st, guint8 value);
gboolean fu_struct_redfish_protocol_over_ip_set_service_ip_address(GByteArray *st, const guint8 *buf, gsize bufsz, GError **error);
gboolean fu_struct_redfish_protocol_over_ip_set_service_ip_mask(GByteArray *st, const guint8 *buf, gsize bufsz, GError **error);
void fu_struct_redfish_protocol_over_ip_set_service_ip_port(GByteArray *st, guint16 value);
void fu_struct_redfish_protocol_over_ip_set_service_ip_vlan_id(GByteArray *st, guint32 value);
void fu_struct_redfish_protocol_over_ip_set_service_hostname_len(GByteArray *st, guint8 value);
#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
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_SIZE_SERVICE_UUID 0x10
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_SIZE_HOST_IP_ADDRESS 0x10
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_SIZE_HOST_IP_MASK 0x10
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_SIZE_SERVICE_IP_ADDRESS 0x10
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_SIZE_SERVICE_IP_MASK 0x10
#define FU_STRUCT_REDFISH_PROTOCOL_OVER_IP_SIZE 0x5B

GByteArray *fu_struct_redfish_smbios_type42_parse_bytes(GBytes *blob, gsize offset, GError **error);
guint8 fu_struct_redfish_smbios_type42_get_length(const GByteArray *st);
guint16 fu_struct_redfish_smbios_type42_get_handle(const GByteArray *st);
FuRedfishSmbiosInterfaceType fu_struct_redfish_smbios_type42_get_interface_type(const GByteArray *st);
guint8 fu_struct_redfish_smbios_type42_get_data_length(const GByteArray *st);
#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
#define FU_STRUCT_REDFISH_SMBIOS_TYPE42_SIZE 0x6
#define FU_STRUCT_REDFISH_SMBIOS_TYPE42_DEFAULT_TYPE 42
#define FU_STRUCT_REDFISH_SMBIOS_TYPE42_DEFAULT_INTERFACE_TYPE FU_REDFISH_SMBIOS_INTERFACE_TYPE_NETWORK
