/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: inventory.proto */

#ifndef PROTOBUF_C_inventory_2eproto__INCLUDED
#define PROTOBUF_C_inventory_2eproto__INCLUDED

#include <protobuf-c/protobuf-c.h>

PROTOBUF_C__BEGIN_DECLS

#if PROTOBUF_C_VERSION_NUMBER < 1003000
# error This file was generated by a newer version of protobuf-c which is incompatible with your libprotobuf-c headers. Please update your headers.
#elif 1005002 < PROTOBUF_C_MIN_COMPILER_VERSION
# error This file was generated by an older version of protobuf-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protobuf-c.
#endif

#include "core.pb-c.h"

typedef struct PluginsEntry PluginsEntry;
typedef struct InventoryEntry InventoryEntry;


/* --- enums --- */

typedef enum _Lsmtype {
  LSMTYPE__NO_LSM = 0,
  LSMTYPE__SELINUX = 1,
  LSMTYPE__APPARMOR = 2
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(LSMTYPE)
} Lsmtype;

/* --- messages --- */

/*
 * It is not possible to distinguish between an empty repeated field
 * and unset repeated field. To solve this problem and provide backwards
 * compabibility, we use the 'plugins_entry' message.
 */
struct  PluginsEntry
{
  ProtobufCMessage base;
  size_t n_plugins;
  char **plugins;
};
#define PLUGINS_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&plugins_entry__descriptor) \
, 0,NULL }


struct  InventoryEntry
{
  ProtobufCMessage base;
  uint32_t img_version;
  protobuf_c_boolean has_fdinfo_per_id;
  protobuf_c_boolean fdinfo_per_id;
  TaskKobjIdsEntry *root_ids;
  protobuf_c_boolean has_ns_per_id;
  protobuf_c_boolean ns_per_id;
  protobuf_c_boolean has_root_cg_set;
  uint32_t root_cg_set;
  protobuf_c_boolean has_lsmtype;
  Lsmtype lsmtype;
  protobuf_c_boolean has_dump_uptime;
  uint64_t dump_uptime;
  protobuf_c_boolean has_pre_dump_mode;
  uint32_t pre_dump_mode;
  protobuf_c_boolean has_tcp_close;
  protobuf_c_boolean tcp_close;
  protobuf_c_boolean has_network_lock_method;
  uint32_t network_lock_method;
  PluginsEntry *plugins_entry;
  /*
   * Remember the criu_run_id when CRIU dumped the process.
   * This is currently used to delete the correct nftables
   * network locking rule.
   */
  char *dump_criu_run_id;
  protobuf_c_boolean has_allow_uprobes;
  protobuf_c_boolean allow_uprobes;
};
#define INVENTORY_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&inventory_entry__descriptor) \
, 0, 0, 0, NULL, 0, 0, 0, 0, 0, LSMTYPE__NO_LSM, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0 }


/* PluginsEntry methods */
void   plugins_entry__init
                     (PluginsEntry         *message);
size_t plugins_entry__get_packed_size
                     (const PluginsEntry   *message);
size_t plugins_entry__pack
                     (const PluginsEntry   *message,
                      uint8_t             *out);
size_t plugins_entry__pack_to_buffer
                     (const PluginsEntry   *message,
                      ProtobufCBuffer     *buffer);
PluginsEntry *
       plugins_entry__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   plugins_entry__free_unpacked
                     (PluginsEntry *message,
                      ProtobufCAllocator *allocator);
/* InventoryEntry methods */
void   inventory_entry__init
                     (InventoryEntry         *message);
size_t inventory_entry__get_packed_size
                     (const InventoryEntry   *message);
size_t inventory_entry__pack
                     (const InventoryEntry   *message,
                      uint8_t             *out);
size_t inventory_entry__pack_to_buffer
                     (const InventoryEntry   *message,
                      ProtobufCBuffer     *buffer);
InventoryEntry *
       inventory_entry__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   inventory_entry__free_unpacked
                     (InventoryEntry *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*PluginsEntry_Closure)
                 (const PluginsEntry *message,
                  void *closure_data);
typedef void (*InventoryEntry_Closure)
                 (const InventoryEntry *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCEnumDescriptor    lsmtype__descriptor;
extern const ProtobufCMessageDescriptor plugins_entry__descriptor;
extern const ProtobufCMessageDescriptor inventory_entry__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_inventory_2eproto__INCLUDED */
