/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.5 */

#ifndef PB_SCHEMA_EVENT_PB_H_INCLUDED
#define PB_SCHEMA_EVENT_PB_H_INCLUDED
#include <pb.h>

#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif

/* Enum definitions */
typedef enum _schema_MemoryExecEvent_Action { 
    schema_MemoryExecEvent_Action_UNDEFINED = 0, 
    schema_MemoryExecEvent_Action_MPROTECT = 1, 
    schema_MemoryExecEvent_Action_MMAP_FILE = 2 
} schema_MemoryExecEvent_Action;

/* Struct definitions */
/* The process with the indicated pid has exited. */
typedef struct _schema_ExitEvent { 
    pb_callback_t process_uuid; 
} schema_ExitEvent;

typedef struct _schema_Container { 
    uint64_t creation_timestamp; /* container create time in ns */
    pb_callback_t pod_namespace; 
    pb_callback_t pod_name; 
    uint64_t container_id; /* unique across lifetime of Node */
    pb_callback_t container_name; 
    pb_callback_t container_image_uri; 
    pb_callback_t labels; 
    pb_callback_t init_uuid; 
    pb_callback_t container_image_id; 
} schema_Container;

typedef struct _schema_Overlay { 
    bool lower_layer; 
    bool upper_layer; 
    pb_callback_t modified_uuid; /* The process who first modified the file. */
} schema_Overlay;

typedef struct _schema_ProcessArguments { 
    pb_callback_t argv; /* process arguments */
    uint32_t argv_truncated; /* number of characters truncated from argv */
    pb_callback_t envp; /* process environment variables */
    uint32_t envp_truncated; /* number of characters truncated from envp */
} schema_ProcessArguments;

typedef struct _schema_SocketIp { 
    uint32_t family; /* AF_* for socket type. */
    pb_callback_t ip; /* ip4 or ip6 address. */
    uint32_t port; /* port bind or connected. */
} schema_SocketIp;

/* Associate the following container information with all processes
 that have the indicated container_id. */
typedef struct _schema_ContainerInfoEvent { 
    bool has_container;
    schema_Container container; 
} schema_ContainerInfoEvent;

/* Message sent by the daemonset to the LSM for container enlightenment. */
typedef struct _schema_ContainerReport { 
    uint32_t pid; /* Top pid of the running container. */
    bool has_container;
    schema_Container container; /* Information collected about the container. */
} schema_ContainerReport;

typedef struct _schema_Socket { 
    bool has_local;
    schema_SocketIp local; 
    bool has_remote;
    schema_SocketIp remote; /* unset if not connected. */
} schema_Socket;

typedef struct _schema_File { 
    pb_callback_t fullpath; 
    pb_size_t which_filesystem;
    union {
        schema_Overlay overlayfs;
        schema_Socket socket;
    } filesystem; /* inode number. */
    uint32_t ino; 
    uint64_t ctime; 
} schema_File;

typedef struct _schema_Descriptor { 
    uint32_t mode; /* file mode (stat st_mode) */
    bool has_file;
    schema_File file; 
} schema_Descriptor;

typedef struct _schema_Streams { 
    bool has_stdin;
    schema_Descriptor stdin; 
    bool has_stdout;
    schema_Descriptor stdout; 
    bool has_stderr;
    schema_Descriptor stderr; 
} schema_Streams;

typedef struct _schema_Process { 
    uint64_t creation_timestamp; /* Only populated in ExecuteEvent, in ns. */
    pb_callback_t uuid; 
    uint32_t pid; 
    bool has_binary;
    schema_File binary; /* Only populated in ExecuteEvent. */
    uint32_t parent_pid; 
    pb_callback_t parent_uuid; 
    uint64_t container_id; /* unique id of process's container */
    uint32_t container_pid; /* pid inside the container namespace pid */
    uint32_t container_parent_pid; /* optional */
    bool has_args;
    schema_ProcessArguments args; /* Only populated in ExecuteEvent. */
    bool has_streams;
    schema_Streams streams; /* Only populated in ExecuteEvent. */
    uint64_t exec_session_id; /* identifier set for kubectl exec sessions. */
} schema_Process;

/* A process clone is being created. This message means that a cloning operation
 is being attempted. It may be sent even if fork fails. */
typedef struct _schema_CloneEvent { 
    bool has_proc;
    schema_Process proc; 
} schema_CloneEvent;

/* Processes that are enumerated at startup will be sent with this event. There
 is no distinction from events we would have seen from fork or exec. */
typedef struct _schema_EnumerateProcessEvent { 
    bool has_proc;
    schema_Process proc; 
} schema_EnumerateProcessEvent;

/* A binary being executed.
 e.g., execve() */
typedef struct _schema_ExecuteEvent { 
    bool has_proc;
    schema_Process proc; 
} schema_ExecuteEvent;

/* Collect information about mmap/mprotect calls with the PROT_EXEC flag set. */
typedef struct _schema_MemoryExecEvent { 
    bool has_proc;
    schema_Process proc; /* The origin process */
    /* The timestamp in ns when the memory was set executable */
    uint64_t prot_exec_timestamp; 
    /* The prot flags granted by the kernel for the operation */
    uint64_t new_flags; 
    /* The prot flags requested for the mprotect/mmap operation */
    uint64_t req_flags; 
    /* The vm_flags prior to the mprotect operation, if relevant */
    uint64_t old_vm_flags; 
    /* The operational flags for the mmap operation, if relevant */
    uint64_t mmap_flags; 
    /* Derived from the file struct describing the fd being mapped */
    bool has_mapped_file;
    schema_File mapped_file; 
    schema_MemoryExecEvent_Action action; 
    uint64_t start_addr; /* The executable memory region start addr */
    uint64_t end_addr; /* The executable memory region end addr */
    /* True if this event is a mmap of the process' binary */
    bool is_initial_mmap; 
} schema_MemoryExecEvent;

/* Next ID: 8 */
typedef struct _schema_Event { 
    pb_size_t which_event;
    union {
        schema_ExecuteEvent execute;
        schema_ContainerInfoEvent container;
        schema_ExitEvent exit;
        schema_MemoryExecEvent memexec;
        schema_CloneEvent clone;
        schema_EnumerateProcessEvent enumproc;
    } event; 
    uint64_t timestamp; 
} schema_Event;


/* Helper constants for enums */
#define _schema_MemoryExecEvent_Action_MIN schema_MemoryExecEvent_Action_UNDEFINED
#define _schema_MemoryExecEvent_Action_MAX schema_MemoryExecEvent_Action_MMAP_FILE
#define _schema_MemoryExecEvent_Action_ARRAYSIZE ((schema_MemoryExecEvent_Action)(schema_MemoryExecEvent_Action_MMAP_FILE+1))


#ifdef __cplusplus
extern "C" {
#endif

/* Initializer values for message structs */
#define schema_SocketIp_init_default             {0, {{NULL}, NULL}, 0}
#define schema_Socket_init_default               {false, schema_SocketIp_init_default, false, schema_SocketIp_init_default}
#define schema_Overlay_init_default              {0, 0, {{NULL}, NULL}}
#define schema_File_init_default                 {{{NULL}, NULL}, 0, {schema_Overlay_init_default}, 0, 0}
#define schema_ProcessArguments_init_default     {{{NULL}, NULL}, 0, {{NULL}, NULL}, 0}
#define schema_Descriptor_init_default           {0, false, schema_File_init_default}
#define schema_Streams_init_default              {false, schema_Descriptor_init_default, false, schema_Descriptor_init_default, false, schema_Descriptor_init_default}
#define schema_Process_init_default              {0, {{NULL}, NULL}, 0, false, schema_File_init_default, 0, {{NULL}, NULL}, 0, 0, 0, false, schema_ProcessArguments_init_default, false, schema_Streams_init_default, 0}
#define schema_Container_init_default            {0, {{NULL}, NULL}, {{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}}
#define schema_ExecuteEvent_init_default         {false, schema_Process_init_default}
#define schema_CloneEvent_init_default           {false, schema_Process_init_default}
#define schema_EnumerateProcessEvent_init_default {false, schema_Process_init_default}
#define schema_MemoryExecEvent_init_default      {false, schema_Process_init_default, 0, 0, 0, 0, 0, false, schema_File_init_default, _schema_MemoryExecEvent_Action_MIN, 0, 0, 0}
#define schema_ContainerInfoEvent_init_default   {false, schema_Container_init_default}
#define schema_ExitEvent_init_default            {{{NULL}, NULL}}
#define schema_Event_init_default                {0, {schema_ExecuteEvent_init_default}, 0}
#define schema_ContainerReport_init_default      {0, false, schema_Container_init_default}
#define schema_SocketIp_init_zero                {0, {{NULL}, NULL}, 0}
#define schema_Socket_init_zero                  {false, schema_SocketIp_init_zero, false, schema_SocketIp_init_zero}
#define schema_Overlay_init_zero                 {0, 0, {{NULL}, NULL}}
#define schema_File_init_zero                    {{{NULL}, NULL}, 0, {schema_Overlay_init_zero}, 0, 0}
#define schema_ProcessArguments_init_zero        {{{NULL}, NULL}, 0, {{NULL}, NULL}, 0}
#define schema_Descriptor_init_zero              {0, false, schema_File_init_zero}
#define schema_Streams_init_zero                 {false, schema_Descriptor_init_zero, false, schema_Descriptor_init_zero, false, schema_Descriptor_init_zero}
#define schema_Process_init_zero                 {0, {{NULL}, NULL}, 0, false, schema_File_init_zero, 0, {{NULL}, NULL}, 0, 0, 0, false, schema_ProcessArguments_init_zero, false, schema_Streams_init_zero, 0}
#define schema_Container_init_zero               {0, {{NULL}, NULL}, {{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}}
#define schema_ExecuteEvent_init_zero            {false, schema_Process_init_zero}
#define schema_CloneEvent_init_zero              {false, schema_Process_init_zero}
#define schema_EnumerateProcessEvent_init_zero   {false, schema_Process_init_zero}
#define schema_MemoryExecEvent_init_zero         {false, schema_Process_init_zero, 0, 0, 0, 0, 0, false, schema_File_init_zero, _schema_MemoryExecEvent_Action_MIN, 0, 0, 0}
#define schema_ContainerInfoEvent_init_zero      {false, schema_Container_init_zero}
#define schema_ExitEvent_init_zero               {{{NULL}, NULL}}
#define schema_Event_init_zero                   {0, {schema_ExecuteEvent_init_zero}, 0}
#define schema_ContainerReport_init_zero         {0, false, schema_Container_init_zero}

/* Field tags (for use in manual encoding/decoding) */
#define schema_ExitEvent_process_uuid_tag        1
#define schema_Container_creation_timestamp_tag  1
#define schema_Container_pod_namespace_tag       2
#define schema_Container_pod_name_tag            3
#define schema_Container_container_id_tag        4
#define schema_Container_container_name_tag      5
#define schema_Container_container_image_uri_tag 6
#define schema_Container_labels_tag              7
#define schema_Container_init_uuid_tag           8
#define schema_Container_container_image_id_tag  9
#define schema_Overlay_lower_layer_tag           1
#define schema_Overlay_upper_layer_tag           2
#define schema_Overlay_modified_uuid_tag         3
#define schema_ProcessArguments_argv_tag         1
#define schema_ProcessArguments_argv_truncated_tag 2
#define schema_ProcessArguments_envp_tag         3
#define schema_ProcessArguments_envp_truncated_tag 4
#define schema_SocketIp_family_tag               1
#define schema_SocketIp_ip_tag                   2
#define schema_SocketIp_port_tag                 3
#define schema_ContainerInfoEvent_container_tag  1
#define schema_ContainerReport_pid_tag           1
#define schema_ContainerReport_container_tag     2
#define schema_Socket_local_tag                  1
#define schema_Socket_remote_tag                 2
#define schema_File_fullpath_tag                 1
#define schema_File_overlayfs_tag                2
#define schema_File_socket_tag                   4
#define schema_File_ino_tag                      3
#define schema_File_ctime_tag                    5
#define schema_Descriptor_mode_tag               1
#define schema_Descriptor_file_tag               2
#define schema_Streams_stdin_tag                 1
#define schema_Streams_stdout_tag                2
#define schema_Streams_stderr_tag                3
#define schema_Process_creation_timestamp_tag    1
#define schema_Process_uuid_tag                  2
#define schema_Process_pid_tag                   3
#define schema_Process_binary_tag                4
#define schema_Process_parent_pid_tag            5
#define schema_Process_parent_uuid_tag           6
#define schema_Process_container_id_tag          7
#define schema_Process_container_pid_tag         8
#define schema_Process_container_parent_pid_tag  9
#define schema_Process_args_tag                  10
#define schema_Process_streams_tag               11
#define schema_Process_exec_session_id_tag       12
#define schema_CloneEvent_proc_tag               1
#define schema_EnumerateProcessEvent_proc_tag    1
#define schema_ExecuteEvent_proc_tag             1
#define schema_MemoryExecEvent_proc_tag          1
#define schema_MemoryExecEvent_prot_exec_timestamp_tag 2
#define schema_MemoryExecEvent_new_flags_tag     3
#define schema_MemoryExecEvent_req_flags_tag     4
#define schema_MemoryExecEvent_old_vm_flags_tag  5
#define schema_MemoryExecEvent_mmap_flags_tag    6
#define schema_MemoryExecEvent_mapped_file_tag   7
#define schema_MemoryExecEvent_action_tag        8
#define schema_MemoryExecEvent_start_addr_tag    9
#define schema_MemoryExecEvent_end_addr_tag      10
#define schema_MemoryExecEvent_is_initial_mmap_tag 11
#define schema_Event_execute_tag                 1
#define schema_Event_container_tag               2
#define schema_Event_exit_tag                    3
#define schema_Event_memexec_tag                 4
#define schema_Event_clone_tag                   5
#define schema_Event_enumproc_tag                7
#define schema_Event_timestamp_tag               6

/* Struct field encoding specification for nanopb */
#define schema_SocketIp_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   family,            1) \
X(a, CALLBACK, SINGULAR, BYTES,    ip,                2) \
X(a, STATIC,   SINGULAR, UINT32,   port,              3)
#define schema_SocketIp_CALLBACK pb_default_field_callback
#define schema_SocketIp_DEFAULT NULL

#define schema_Socket_FIELDLIST(X, a) \
X(a, STATIC,   OPTIONAL, MESSAGE,  local,             1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  remote,            2)
#define schema_Socket_CALLBACK NULL
#define schema_Socket_DEFAULT NULL
#define schema_Socket_local_MSGTYPE schema_SocketIp
#define schema_Socket_remote_MSGTYPE schema_SocketIp

#define schema_Overlay_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, BOOL,     lower_layer,       1) \
X(a, STATIC,   SINGULAR, BOOL,     upper_layer,       2) \
X(a, CALLBACK, SINGULAR, BYTES,    modified_uuid,     3)
#define schema_Overlay_CALLBACK pb_default_field_callback
#define schema_Overlay_DEFAULT NULL

#define schema_File_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, BYTES,    fullpath,          1) \
X(a, STATIC,   ONEOF,    MESSAGE,  (filesystem,overlayfs,filesystem.overlayfs),   2) \
X(a, STATIC,   SINGULAR, UINT32,   ino,               3) \
X(a, STATIC,   ONEOF,    MESSAGE,  (filesystem,socket,filesystem.socket),   4) \
X(a, STATIC,   SINGULAR, UINT64,   ctime,             5)
#define schema_File_CALLBACK pb_default_field_callback
#define schema_File_DEFAULT NULL
#define schema_File_filesystem_overlayfs_MSGTYPE schema_Overlay
#define schema_File_filesystem_socket_MSGTYPE schema_Socket

#define schema_ProcessArguments_FIELDLIST(X, a) \
X(a, CALLBACK, REPEATED, BYTES,    argv,              1) \
X(a, STATIC,   SINGULAR, UINT32,   argv_truncated,    2) \
X(a, CALLBACK, REPEATED, BYTES,    envp,              3) \
X(a, STATIC,   SINGULAR, UINT32,   envp_truncated,    4)
#define schema_ProcessArguments_CALLBACK pb_default_field_callback
#define schema_ProcessArguments_DEFAULT NULL

#define schema_Descriptor_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   mode,              1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  file,              2)
#define schema_Descriptor_CALLBACK NULL
#define schema_Descriptor_DEFAULT NULL
#define schema_Descriptor_file_MSGTYPE schema_File

#define schema_Streams_FIELDLIST(X, a) \
X(a, STATIC,   OPTIONAL, MESSAGE,  stdin,             1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  stdout,            2) \
X(a, STATIC,   OPTIONAL, MESSAGE,  stderr,            3)
#define schema_Streams_CALLBACK NULL
#define schema_Streams_DEFAULT NULL
#define schema_Streams_stdin_MSGTYPE schema_Descriptor
#define schema_Streams_stdout_MSGTYPE schema_Descriptor
#define schema_Streams_stderr_MSGTYPE schema_Descriptor

#define schema_Process_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT64,   creation_timestamp,   1) \
X(a, CALLBACK, SINGULAR, BYTES,    uuid,              2) \
X(a, STATIC,   SINGULAR, UINT32,   pid,               3) \
X(a, STATIC,   OPTIONAL, MESSAGE,  binary,            4) \
X(a, STATIC,   SINGULAR, UINT32,   parent_pid,        5) \
X(a, CALLBACK, SINGULAR, BYTES,    parent_uuid,       6) \
X(a, STATIC,   SINGULAR, UINT64,   container_id,      7) \
X(a, STATIC,   SINGULAR, UINT32,   container_pid,     8) \
X(a, STATIC,   SINGULAR, UINT32,   container_parent_pid,   9) \
X(a, STATIC,   OPTIONAL, MESSAGE,  args,             10) \
X(a, STATIC,   OPTIONAL, MESSAGE,  streams,          11) \
X(a, STATIC,   SINGULAR, UINT64,   exec_session_id,  12)
#define schema_Process_CALLBACK pb_default_field_callback
#define schema_Process_DEFAULT NULL
#define schema_Process_binary_MSGTYPE schema_File
#define schema_Process_args_MSGTYPE schema_ProcessArguments
#define schema_Process_streams_MSGTYPE schema_Streams

#define schema_Container_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT64,   creation_timestamp,   1) \
X(a, CALLBACK, SINGULAR, BYTES,    pod_namespace,     2) \
X(a, CALLBACK, SINGULAR, BYTES,    pod_name,          3) \
X(a, STATIC,   SINGULAR, UINT64,   container_id,      4) \
X(a, CALLBACK, SINGULAR, BYTES,    container_name,    5) \
X(a, CALLBACK, SINGULAR, BYTES,    container_image_uri,   6) \
X(a, CALLBACK, REPEATED, BYTES,    labels,            7) \
X(a, CALLBACK, SINGULAR, BYTES,    init_uuid,         8) \
X(a, CALLBACK, SINGULAR, BYTES,    container_image_id,   9)
#define schema_Container_CALLBACK pb_default_field_callback
#define schema_Container_DEFAULT NULL

#define schema_ExecuteEvent_FIELDLIST(X, a) \
X(a, STATIC,   OPTIONAL, MESSAGE,  proc,              1)
#define schema_ExecuteEvent_CALLBACK NULL
#define schema_ExecuteEvent_DEFAULT NULL
#define schema_ExecuteEvent_proc_MSGTYPE schema_Process

#define schema_CloneEvent_FIELDLIST(X, a) \
X(a, STATIC,   OPTIONAL, MESSAGE,  proc,              1)
#define schema_CloneEvent_CALLBACK NULL
#define schema_CloneEvent_DEFAULT NULL
#define schema_CloneEvent_proc_MSGTYPE schema_Process

#define schema_EnumerateProcessEvent_FIELDLIST(X, a) \
X(a, STATIC,   OPTIONAL, MESSAGE,  proc,              1)
#define schema_EnumerateProcessEvent_CALLBACK NULL
#define schema_EnumerateProcessEvent_DEFAULT NULL
#define schema_EnumerateProcessEvent_proc_MSGTYPE schema_Process

#define schema_MemoryExecEvent_FIELDLIST(X, a) \
X(a, STATIC,   OPTIONAL, MESSAGE,  proc,              1) \
X(a, STATIC,   SINGULAR, UINT64,   prot_exec_timestamp,   2) \
X(a, STATIC,   SINGULAR, UINT64,   new_flags,         3) \
X(a, STATIC,   SINGULAR, UINT64,   req_flags,         4) \
X(a, STATIC,   SINGULAR, UINT64,   old_vm_flags,      5) \
X(a, STATIC,   SINGULAR, UINT64,   mmap_flags,        6) \
X(a, STATIC,   OPTIONAL, MESSAGE,  mapped_file,       7) \
X(a, STATIC,   SINGULAR, UENUM,    action,            8) \
X(a, STATIC,   SINGULAR, UINT64,   start_addr,        9) \
X(a, STATIC,   SINGULAR, UINT64,   end_addr,         10) \
X(a, STATIC,   SINGULAR, BOOL,     is_initial_mmap,  11)
#define schema_MemoryExecEvent_CALLBACK NULL
#define schema_MemoryExecEvent_DEFAULT NULL
#define schema_MemoryExecEvent_proc_MSGTYPE schema_Process
#define schema_MemoryExecEvent_mapped_file_MSGTYPE schema_File

#define schema_ContainerInfoEvent_FIELDLIST(X, a) \
X(a, STATIC,   OPTIONAL, MESSAGE,  container,         1)
#define schema_ContainerInfoEvent_CALLBACK NULL
#define schema_ContainerInfoEvent_DEFAULT NULL
#define schema_ContainerInfoEvent_container_MSGTYPE schema_Container

#define schema_ExitEvent_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, BYTES,    process_uuid,      1)
#define schema_ExitEvent_CALLBACK pb_default_field_callback
#define schema_ExitEvent_DEFAULT NULL

#define schema_Event_FIELDLIST(X, a) \
X(a, STATIC,   ONEOF,    MESSAGE,  (event,execute,event.execute),   1) \
X(a, STATIC,   ONEOF,    MESSAGE,  (event,container,event.container),   2) \
X(a, STATIC,   ONEOF,    MESSAGE,  (event,exit,event.exit),   3) \
X(a, STATIC,   ONEOF,    MESSAGE,  (event,memexec,event.memexec),   4) \
X(a, STATIC,   ONEOF,    MESSAGE,  (event,clone,event.clone),   5) \
X(a, STATIC,   SINGULAR, UINT64,   timestamp,         6) \
X(a, STATIC,   ONEOF,    MESSAGE,  (event,enumproc,event.enumproc),   7)
#define schema_Event_CALLBACK NULL
#define schema_Event_DEFAULT NULL
#define schema_Event_event_execute_MSGTYPE schema_ExecuteEvent
#define schema_Event_event_container_MSGTYPE schema_ContainerInfoEvent
#define schema_Event_event_exit_MSGTYPE schema_ExitEvent
#define schema_Event_event_memexec_MSGTYPE schema_MemoryExecEvent
#define schema_Event_event_clone_MSGTYPE schema_CloneEvent
#define schema_Event_event_enumproc_MSGTYPE schema_EnumerateProcessEvent

#define schema_ContainerReport_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   pid,               1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  container,         2)
#define schema_ContainerReport_CALLBACK NULL
#define schema_ContainerReport_DEFAULT NULL
#define schema_ContainerReport_container_MSGTYPE schema_Container

extern const pb_msgdesc_t schema_SocketIp_msg;
extern const pb_msgdesc_t schema_Socket_msg;
extern const pb_msgdesc_t schema_Overlay_msg;
extern const pb_msgdesc_t schema_File_msg;
extern const pb_msgdesc_t schema_ProcessArguments_msg;
extern const pb_msgdesc_t schema_Descriptor_msg;
extern const pb_msgdesc_t schema_Streams_msg;
extern const pb_msgdesc_t schema_Process_msg;
extern const pb_msgdesc_t schema_Container_msg;
extern const pb_msgdesc_t schema_ExecuteEvent_msg;
extern const pb_msgdesc_t schema_CloneEvent_msg;
extern const pb_msgdesc_t schema_EnumerateProcessEvent_msg;
extern const pb_msgdesc_t schema_MemoryExecEvent_msg;
extern const pb_msgdesc_t schema_ContainerInfoEvent_msg;
extern const pb_msgdesc_t schema_ExitEvent_msg;
extern const pb_msgdesc_t schema_Event_msg;
extern const pb_msgdesc_t schema_ContainerReport_msg;

/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define schema_SocketIp_fields &schema_SocketIp_msg
#define schema_Socket_fields &schema_Socket_msg
#define schema_Overlay_fields &schema_Overlay_msg
#define schema_File_fields &schema_File_msg
#define schema_ProcessArguments_fields &schema_ProcessArguments_msg
#define schema_Descriptor_fields &schema_Descriptor_msg
#define schema_Streams_fields &schema_Streams_msg
#define schema_Process_fields &schema_Process_msg
#define schema_Container_fields &schema_Container_msg
#define schema_ExecuteEvent_fields &schema_ExecuteEvent_msg
#define schema_CloneEvent_fields &schema_CloneEvent_msg
#define schema_EnumerateProcessEvent_fields &schema_EnumerateProcessEvent_msg
#define schema_MemoryExecEvent_fields &schema_MemoryExecEvent_msg
#define schema_ContainerInfoEvent_fields &schema_ContainerInfoEvent_msg
#define schema_ExitEvent_fields &schema_ExitEvent_msg
#define schema_Event_fields &schema_Event_msg
#define schema_ContainerReport_fields &schema_ContainerReport_msg

/* Maximum encoded size of messages (where known) */
/* schema_SocketIp_size depends on runtime parameters */
/* schema_Socket_size depends on runtime parameters */
/* schema_Overlay_size depends on runtime parameters */
/* schema_File_size depends on runtime parameters */
/* schema_ProcessArguments_size depends on runtime parameters */
/* schema_Descriptor_size depends on runtime parameters */
/* schema_Streams_size depends on runtime parameters */
/* schema_Process_size depends on runtime parameters */
/* schema_Container_size depends on runtime parameters */
/* schema_ExecuteEvent_size depends on runtime parameters */
/* schema_CloneEvent_size depends on runtime parameters */
/* schema_EnumerateProcessEvent_size depends on runtime parameters */
/* schema_MemoryExecEvent_size depends on runtime parameters */
/* schema_ContainerInfoEvent_size depends on runtime parameters */
/* schema_ExitEvent_size depends on runtime parameters */
/* schema_Event_size depends on runtime parameters */
/* schema_ContainerReport_size depends on runtime parameters */

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif
