#ifndef ZABBIX_AUDIT_HOST_H
#define ZABBIX_AUDIT_HOST_H
#define PREPARE_AUDIT_SNMP_INTERFACE_H(funcname) \
void zbx_audit_##funcname##_update_json_add_snmp_interface(zbx_uint64_t hostid, zbx_uint64_t version, \
zbx_uint64_t bulk, const char *community, const char *securityname, zbx_uint64_t securitylevel, \
const char *authpassphrase, const char *privpassphrase, zbx_uint64_t authprotocol, \
zbx_uint64_t privprotocol, const char *contextname, zbx_uint64_t interfaceid); \
void zbx_audit_##funcname##_update_json_update_snmp_interface(zbx_uint64_t hostid, zbx_uint64_t version_old, \
zbx_uint64_t version_new, zbx_uint64_t bulk_old, zbx_uint64_t bulk_new, \
const char *community_old, const char *community_new, const char *securityname_old, \
const char *securityname_new, zbx_uint64_t securitylevel_old, zbx_uint64_t securitylevel_new, \
const char *authpassphrase_old, const char *authpassphrase_new, const char *privpassphrase_old, \
const char *privpassphrase_new, zbx_uint64_t authprotocol_old, zbx_uint64_t authprotocol_new, \
zbx_uint64_t privprotocol_old, zbx_uint64_t privprotocol_new, const char *contextname_old, \
const char *contextname_new, zbx_uint64_t interfaceid); \
PREPARE_AUDIT_SNMP_INTERFACE_H(host)
PREPARE_AUDIT_SNMP_INTERFACE_H(host_prototype)
void zbx_audit_host_update_json_add_proxy_hostid_and_hostname_and_inventory_mode(zbx_uint64_t hostid,
zbx_uint64_t proxy_hostid, const char *hostname, int inventory_mode);
void zbx_audit_host_update_json_add_tls_and_psk(zbx_uint64_t hostid, int tls_connect, int tls_accept,
const char *tls_psk_identity, const char *tls_psk);
void zbx_audit_host_update_json_add_inventory_mode(zbx_uint64_t hostid, int inventory_mode);
void zbx_audit_host_update_json_update_inventory_mode(zbx_uint64_t hostid, int inventory_mode_old,
void zbx_audit_host_update_json_update_host_status(zbx_uint64_t hostid, int host_status_old,
#define PREPARE_AUDIT_HOST_INTERFACE_H(funcname, interface_resource, type1) \
void zbx_audit_##funcname##_update_json_update_interface_##interface_resource(zbx_uint64_t hostid, \
zbx_uint64_t interfaceid, type1 interface_resource##_old, type1 interface_resource##_new); \
#define PREPARE_AUDIT_HOST_H(funcname, audit_resource_flag) \
void zbx_audit_##funcname##_create_entry(int audit_action, zbx_uint64_t hostid, const char *name); \
void zbx_audit_##funcname##_update_json_add_interfaces(zbx_uint64_t hostid, zbx_uint64_t interfaceid, \
zbx_uint64_t main_, zbx_uint64_t type, zbx_uint64_t useip, const char *ip, const char *dns, \
PREPARE_AUDIT_HOST_INTERFACE_H(funcname, useip, zbx_uint64_t) \
PREPARE_AUDIT_HOST_INTERFACE_H(funcname, main, zbx_uint64_t) \