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

#ifndef PROTOBUF_C_ctl_2eproto__INCLUDED
#define PROTOBUF_C_ctl_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 "ipc.pb-c.h"

typedef struct StatusRep StatusRep;
typedef struct BoolMsg BoolMsg;
typedef struct UserInfoRep UserInfoRep;
typedef struct UserListRep UserListRep;
typedef struct TopUpdateRep TopUpdateRep;
typedef struct UsernameReq UsernameReq;
typedef struct IdReq IdReq;
typedef struct BanInfoRep BanInfoRep;
typedef struct BanListRep BanListRep;
typedef struct UnbanReq UnbanReq;


/* --- enums --- */


/* --- messages --- */

/*
 * STATUS 
 */
struct  StatusRep
{
  ProtobufCMessage base;
  protobuf_c_boolean status;
  uint32_t pid;
  size_t n_sec_mod_pids;
  uint32_t *sec_mod_pids;
  uint32_t active_clients;
  uint32_t start_time;
  uint32_t stored_tls_sessions;
  uint32_t banned_ips;
  uint32_t secmod_client_entries;
  uint64_t session_timeouts;
  uint64_t session_idle_timeouts;
  uint64_t session_errors;
  uint64_t sessions_closed;
  uint64_t kbytes_in;
  uint64_t kbytes_out;
  uint32_t min_mtu;
  uint32_t max_mtu;
  uint32_t last_reset;
  uint32_t avg_auth_time;
  uint32_t avg_session_mins;
  uint32_t max_auth_time;
  uint32_t max_session_mins;
  uint64_t auth_failures;
  uint64_t total_sessions_closed;
  uint64_t total_auth_failures;
  protobuf_c_boolean has_latency_median_total;
  uint64_t latency_median_total;
  protobuf_c_boolean has_latency_rms_total;
  uint64_t latency_rms_total;
  protobuf_c_boolean has_latency_sample_count;
  uint64_t latency_sample_count;
};
#define STATUS_REP__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&status_rep__descriptor) \
    , 0, 0, 0,NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }


struct  BoolMsg
{
  ProtobufCMessage base;
  protobuf_c_boolean status;
};
#define BOOL_MSG__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&bool_msg__descriptor) \
    , 0 }


struct  UserInfoRep
{
  ProtobufCMessage base;
  int32_t id;
  char *username;
  char *groupname;
  char *ip;
  char *tun;
  char *remote_ip;
  char *local_ip;
  char *remote_ip6;
  char *local_ip6;
  uint64_t conn_time;
  char *hostname;
  char *user_agent;
  /*
   * PS_ 
   */
  uint32_t status;
  char *tls_ciphersuite;
  char *dtls_ciphersuite;
  protobuf_c_boolean has_rx_per_sec;
  uint32_t rx_per_sec;
  protobuf_c_boolean has_tx_per_sec;
  uint32_t tx_per_sec;
  size_t n_dns;
  char **dns;
  size_t n_nbns;
  char **nbns;
  size_t n_routes;
  char **routes;
  size_t n_iroutes;
  char **iroutes;
  protobuf_c_boolean has_mtu;
  uint32_t mtu;
  char *cstp_compr;
  char *dtls_compr;
  size_t n_no_routes;
  char **no_routes;
  char *local_dev_ip;
  /*
   * split-dns domains 
   */
  size_t n_domains;
  char **domains;
  uint32_t dpd;
  uint32_t keepalive;
  protobuf_c_boolean restrict_to_routes;
  size_t n_fw_ports;
  FwPortSt **fw_ports;
  /*
   * a value derived from the cookie 
   */
  ProtobufCBinaryData safe_id;
  char *vhost;
  uint64_t session_start_time;
};
#define USER_INFO_REP__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&user_info_rep__descriptor) \
    , 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, NULL, NULL, 0, 0, 0, 0, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0, 0, NULL, NULL, 0,NULL, NULL, 0,NULL, 0, 0, 0, 0,NULL, {0,NULL}, NULL, 0 }


struct  UserListRep
{
  ProtobufCMessage base;
  size_t n_user;
  UserInfoRep **user;
};
#define USER_LIST_REP__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&user_list_rep__descriptor) \
    , 0,NULL }


struct  TopUpdateRep
{
  ProtobufCMessage base;
  uint32_t connected;
  protobuf_c_boolean has_discon_reason;
  uint32_t discon_reason;
  char *discon_reason_txt;
  UserListRep *user;
};
#define TOP_UPDATE_REP__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&top_update_rep__descriptor) \
    , 0, 0, 0, NULL, NULL }


struct  UsernameReq
{
  ProtobufCMessage base;
  char *username;
};
#define USERNAME_REQ__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&username_req__descriptor) \
    , NULL }


struct  IdReq
{
  ProtobufCMessage base;
  int32_t id;
};
#define ID_REQ__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&id_req__descriptor) \
    , 0 }


struct  BanInfoRep
{
  ProtobufCMessage base;
  ProtobufCBinaryData ip;
  uint32_t score;
  protobuf_c_boolean has_expires;
  uint32_t expires;
};
#define BAN_INFO_REP__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&ban_info_rep__descriptor) \
    , {0,NULL}, 0, 0, 0 }


struct  BanListRep
{
  ProtobufCMessage base;
  size_t n_info;
  BanInfoRep **info;
};
#define BAN_LIST_REP__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&ban_list_rep__descriptor) \
    , 0,NULL }


struct  UnbanReq
{
  ProtobufCMessage base;
  ProtobufCBinaryData ip;
};
#define UNBAN_REQ__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&unban_req__descriptor) \
    , {0,NULL} }


/* StatusRep methods */
void   status_rep__init
                     (StatusRep         *message);
size_t status_rep__get_packed_size
                     (const StatusRep   *message);
size_t status_rep__pack
                     (const StatusRep   *message,
                      uint8_t             *out);
size_t status_rep__pack_to_buffer
                     (const StatusRep   *message,
                      ProtobufCBuffer     *buffer);
StatusRep *
       status_rep__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   status_rep__free_unpacked
                     (StatusRep *message,
                      ProtobufCAllocator *allocator);
/* BoolMsg methods */
void   bool_msg__init
                     (BoolMsg         *message);
size_t bool_msg__get_packed_size
                     (const BoolMsg   *message);
size_t bool_msg__pack
                     (const BoolMsg   *message,
                      uint8_t             *out);
size_t bool_msg__pack_to_buffer
                     (const BoolMsg   *message,
                      ProtobufCBuffer     *buffer);
BoolMsg *
       bool_msg__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   bool_msg__free_unpacked
                     (BoolMsg *message,
                      ProtobufCAllocator *allocator);
/* UserInfoRep methods */
void   user_info_rep__init
                     (UserInfoRep         *message);
size_t user_info_rep__get_packed_size
                     (const UserInfoRep   *message);
size_t user_info_rep__pack
                     (const UserInfoRep   *message,
                      uint8_t             *out);
size_t user_info_rep__pack_to_buffer
                     (const UserInfoRep   *message,
                      ProtobufCBuffer     *buffer);
UserInfoRep *
       user_info_rep__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   user_info_rep__free_unpacked
                     (UserInfoRep *message,
                      ProtobufCAllocator *allocator);
/* UserListRep methods */
void   user_list_rep__init
                     (UserListRep         *message);
size_t user_list_rep__get_packed_size
                     (const UserListRep   *message);
size_t user_list_rep__pack
                     (const UserListRep   *message,
                      uint8_t             *out);
size_t user_list_rep__pack_to_buffer
                     (const UserListRep   *message,
                      ProtobufCBuffer     *buffer);
UserListRep *
       user_list_rep__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   user_list_rep__free_unpacked
                     (UserListRep *message,
                      ProtobufCAllocator *allocator);
/* TopUpdateRep methods */
void   top_update_rep__init
                     (TopUpdateRep         *message);
size_t top_update_rep__get_packed_size
                     (const TopUpdateRep   *message);
size_t top_update_rep__pack
                     (const TopUpdateRep   *message,
                      uint8_t             *out);
size_t top_update_rep__pack_to_buffer
                     (const TopUpdateRep   *message,
                      ProtobufCBuffer     *buffer);
TopUpdateRep *
       top_update_rep__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   top_update_rep__free_unpacked
                     (TopUpdateRep *message,
                      ProtobufCAllocator *allocator);
/* UsernameReq methods */
void   username_req__init
                     (UsernameReq         *message);
size_t username_req__get_packed_size
                     (const UsernameReq   *message);
size_t username_req__pack
                     (const UsernameReq   *message,
                      uint8_t             *out);
size_t username_req__pack_to_buffer
                     (const UsernameReq   *message,
                      ProtobufCBuffer     *buffer);
UsernameReq *
       username_req__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   username_req__free_unpacked
                     (UsernameReq *message,
                      ProtobufCAllocator *allocator);
/* IdReq methods */
void   id_req__init
                     (IdReq         *message);
size_t id_req__get_packed_size
                     (const IdReq   *message);
size_t id_req__pack
                     (const IdReq   *message,
                      uint8_t             *out);
size_t id_req__pack_to_buffer
                     (const IdReq   *message,
                      ProtobufCBuffer     *buffer);
IdReq *
       id_req__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   id_req__free_unpacked
                     (IdReq *message,
                      ProtobufCAllocator *allocator);
/* BanInfoRep methods */
void   ban_info_rep__init
                     (BanInfoRep         *message);
size_t ban_info_rep__get_packed_size
                     (const BanInfoRep   *message);
size_t ban_info_rep__pack
                     (const BanInfoRep   *message,
                      uint8_t             *out);
size_t ban_info_rep__pack_to_buffer
                     (const BanInfoRep   *message,
                      ProtobufCBuffer     *buffer);
BanInfoRep *
       ban_info_rep__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   ban_info_rep__free_unpacked
                     (BanInfoRep *message,
                      ProtobufCAllocator *allocator);
/* BanListRep methods */
void   ban_list_rep__init
                     (BanListRep         *message);
size_t ban_list_rep__get_packed_size
                     (const BanListRep   *message);
size_t ban_list_rep__pack
                     (const BanListRep   *message,
                      uint8_t             *out);
size_t ban_list_rep__pack_to_buffer
                     (const BanListRep   *message,
                      ProtobufCBuffer     *buffer);
BanListRep *
       ban_list_rep__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   ban_list_rep__free_unpacked
                     (BanListRep *message,
                      ProtobufCAllocator *allocator);
/* UnbanReq methods */
void   unban_req__init
                     (UnbanReq         *message);
size_t unban_req__get_packed_size
                     (const UnbanReq   *message);
size_t unban_req__pack
                     (const UnbanReq   *message,
                      uint8_t             *out);
size_t unban_req__pack_to_buffer
                     (const UnbanReq   *message,
                      ProtobufCBuffer     *buffer);
UnbanReq *
       unban_req__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   unban_req__free_unpacked
                     (UnbanReq *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*StatusRep_Closure)
                 (const StatusRep *message,
                  void *closure_data);
typedef void (*BoolMsg_Closure)
                 (const BoolMsg *message,
                  void *closure_data);
typedef void (*UserInfoRep_Closure)
                 (const UserInfoRep *message,
                  void *closure_data);
typedef void (*UserListRep_Closure)
                 (const UserListRep *message,
                  void *closure_data);
typedef void (*TopUpdateRep_Closure)
                 (const TopUpdateRep *message,
                  void *closure_data);
typedef void (*UsernameReq_Closure)
                 (const UsernameReq *message,
                  void *closure_data);
typedef void (*IdReq_Closure)
                 (const IdReq *message,
                  void *closure_data);
typedef void (*BanInfoRep_Closure)
                 (const BanInfoRep *message,
                  void *closure_data);
typedef void (*BanListRep_Closure)
                 (const BanListRep *message,
                  void *closure_data);
typedef void (*UnbanReq_Closure)
                 (const UnbanReq *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCMessageDescriptor status_rep__descriptor;
extern const ProtobufCMessageDescriptor bool_msg__descriptor;
extern const ProtobufCMessageDescriptor user_info_rep__descriptor;
extern const ProtobufCMessageDescriptor user_list_rep__descriptor;
extern const ProtobufCMessageDescriptor top_update_rep__descriptor;
extern const ProtobufCMessageDescriptor username_req__descriptor;
extern const ProtobufCMessageDescriptor id_req__descriptor;
extern const ProtobufCMessageDescriptor ban_info_rep__descriptor;
extern const ProtobufCMessageDescriptor ban_list_rep__descriptor;
extern const ProtobufCMessageDescriptor unban_req__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_ctl_2eproto__INCLUDED */
