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

#ifndef PROTOBUF_C_network_5fconfig_2eproto__INCLUDED
#define PROTOBUF_C_network_5fconfig_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 protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
#elif 1004000 < PROTOBUF_C_MIN_COMPILER_VERSION
# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
#endif

#include "constants.pb-c.h"
#include "network_constants.pb-c.h"

typedef struct CmdGetWifiStatus CmdGetWifiStatus;
typedef struct RespGetWifiStatus RespGetWifiStatus;
typedef struct CmdGetThreadStatus CmdGetThreadStatus;
typedef struct RespGetThreadStatus RespGetThreadStatus;
typedef struct CmdSetWifiConfig CmdSetWifiConfig;
typedef struct CmdSetThreadConfig CmdSetThreadConfig;
typedef struct RespSetWifiConfig RespSetWifiConfig;
typedef struct RespSetThreadConfig RespSetThreadConfig;
typedef struct CmdApplyWifiConfig CmdApplyWifiConfig;
typedef struct CmdApplyThreadConfig CmdApplyThreadConfig;
typedef struct RespApplyWifiConfig RespApplyWifiConfig;
typedef struct RespApplyThreadConfig RespApplyThreadConfig;
typedef struct NetworkConfigPayload NetworkConfigPayload;


/* --- enums --- */

typedef enum _NetworkConfigMsgType {
  NETWORK_CONFIG_MSG_TYPE__TypeCmdGetWifiStatus = 0,
  NETWORK_CONFIG_MSG_TYPE__TypeRespGetWifiStatus = 1,
  NETWORK_CONFIG_MSG_TYPE__TypeCmdSetWifiConfig = 2,
  NETWORK_CONFIG_MSG_TYPE__TypeRespSetWifiConfig = 3,
  NETWORK_CONFIG_MSG_TYPE__TypeCmdApplyWifiConfig = 4,
  NETWORK_CONFIG_MSG_TYPE__TypeRespApplyWifiConfig = 5,
  NETWORK_CONFIG_MSG_TYPE__TypeCmdGetThreadStatus = 6,
  NETWORK_CONFIG_MSG_TYPE__TypeRespGetThreadStatus = 7,
  NETWORK_CONFIG_MSG_TYPE__TypeCmdSetThreadConfig = 8,
  NETWORK_CONFIG_MSG_TYPE__TypeRespSetThreadConfig = 9,
  NETWORK_CONFIG_MSG_TYPE__TypeCmdApplyThreadConfig = 10,
  NETWORK_CONFIG_MSG_TYPE__TypeRespApplyThreadConfig = 11
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(NETWORK_CONFIG_MSG_TYPE)
} NetworkConfigMsgType;

/* --- messages --- */

struct  CmdGetWifiStatus
{
  ProtobufCMessage base;
};
#define CMD_GET_WIFI_STATUS__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&cmd_get_wifi_status__descriptor) \
     }


typedef enum {
  RESP_GET_WIFI_STATUS__STATE__NOT_SET = 0,
  RESP_GET_WIFI_STATUS__STATE_WIFI_FAIL_REASON = 10,
  RESP_GET_WIFI_STATUS__STATE_WIFI_CONNECTED = 11
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RESP_GET_WIFI_STATUS__STATE__CASE)
} RespGetWifiStatus__StateCase;

struct  RespGetWifiStatus
{
  ProtobufCMessage base;
  Status status;
  WifiStationState wifi_sta_state;
  RespGetWifiStatus__StateCase state_case;
  union {
    WifiConnectFailedReason wifi_fail_reason;
    WifiConnectedState *wifi_connected;
  };
};
#define RESP_GET_WIFI_STATUS__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&resp_get_wifi_status__descriptor) \
    , STATUS__Success, WIFI_STATION_STATE__Connected, RESP_GET_WIFI_STATUS__STATE__NOT_SET, {0} }


struct  CmdGetThreadStatus
{
  ProtobufCMessage base;
};
#define CMD_GET_THREAD_STATUS__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&cmd_get_thread_status__descriptor) \
     }


typedef enum {
  RESP_GET_THREAD_STATUS__STATE__NOT_SET = 0,
  RESP_GET_THREAD_STATUS__STATE_THREAD_FAIL_REASON = 10,
  RESP_GET_THREAD_STATUS__STATE_THREAD_ATTACHED = 11
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RESP_GET_THREAD_STATUS__STATE__CASE)
} RespGetThreadStatus__StateCase;

struct  RespGetThreadStatus
{
  ProtobufCMessage base;
  Status status;
  ThreadNetworkState thread_state;
  RespGetThreadStatus__StateCase state_case;
  union {
    ThreadAttachFailedReason thread_fail_reason;
    ThreadAttachState *thread_attached;
  };
};
#define RESP_GET_THREAD_STATUS__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&resp_get_thread_status__descriptor) \
    , STATUS__Success, THREAD_NETWORK_STATE__Attached, RESP_GET_THREAD_STATUS__STATE__NOT_SET, {0} }


struct  CmdSetWifiConfig
{
  ProtobufCMessage base;
  ProtobufCBinaryData ssid;
  ProtobufCBinaryData passphrase;
  ProtobufCBinaryData bssid;
  int32_t channel;
};
#define CMD_SET_WIFI_CONFIG__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&cmd_set_wifi_config__descriptor) \
    , {0,NULL}, {0,NULL}, {0,NULL}, 0 }


struct  CmdSetThreadConfig
{
  ProtobufCMessage base;
  ProtobufCBinaryData dataset;
};
#define CMD_SET_THREAD_CONFIG__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&cmd_set_thread_config__descriptor) \
    , {0,NULL} }


struct  RespSetWifiConfig
{
  ProtobufCMessage base;
  Status status;
};
#define RESP_SET_WIFI_CONFIG__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&resp_set_wifi_config__descriptor) \
    , STATUS__Success }


struct  RespSetThreadConfig
{
  ProtobufCMessage base;
  Status status;
};
#define RESP_SET_THREAD_CONFIG__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&resp_set_thread_config__descriptor) \
    , STATUS__Success }


struct  CmdApplyWifiConfig
{
  ProtobufCMessage base;
};
#define CMD_APPLY_WIFI_CONFIG__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&cmd_apply_wifi_config__descriptor) \
     }


struct  CmdApplyThreadConfig
{
  ProtobufCMessage base;
};
#define CMD_APPLY_THREAD_CONFIG__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&cmd_apply_thread_config__descriptor) \
     }


struct  RespApplyWifiConfig
{
  ProtobufCMessage base;
  Status status;
};
#define RESP_APPLY_WIFI_CONFIG__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&resp_apply_wifi_config__descriptor) \
    , STATUS__Success }


struct  RespApplyThreadConfig
{
  ProtobufCMessage base;
  Status status;
};
#define RESP_APPLY_THREAD_CONFIG__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&resp_apply_thread_config__descriptor) \
    , STATUS__Success }


typedef enum {
  NETWORK_CONFIG_PAYLOAD__PAYLOAD__NOT_SET = 0,
  NETWORK_CONFIG_PAYLOAD__PAYLOAD_CMD_GET_WIFI_STATUS = 10,
  NETWORK_CONFIG_PAYLOAD__PAYLOAD_RESP_GET_WIFI_STATUS = 11,
  NETWORK_CONFIG_PAYLOAD__PAYLOAD_CMD_SET_WIFI_CONFIG = 12,
  NETWORK_CONFIG_PAYLOAD__PAYLOAD_RESP_SET_WIFI_CONFIG = 13,
  NETWORK_CONFIG_PAYLOAD__PAYLOAD_CMD_APPLY_WIFI_CONFIG = 14,
  NETWORK_CONFIG_PAYLOAD__PAYLOAD_RESP_APPLY_WIFI_CONFIG = 15,
  NETWORK_CONFIG_PAYLOAD__PAYLOAD_CMD_GET_THREAD_STATUS = 16,
  NETWORK_CONFIG_PAYLOAD__PAYLOAD_RESP_GET_THREAD_STATUS = 17,
  NETWORK_CONFIG_PAYLOAD__PAYLOAD_CMD_SET_THREAD_CONFIG = 18,
  NETWORK_CONFIG_PAYLOAD__PAYLOAD_RESP_SET_THREAD_CONFIG = 19,
  NETWORK_CONFIG_PAYLOAD__PAYLOAD_CMD_APPLY_THREAD_CONFIG = 20,
  NETWORK_CONFIG_PAYLOAD__PAYLOAD_RESP_APPLY_THREAD_CONFIG = 21
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(NETWORK_CONFIG_PAYLOAD__PAYLOAD__CASE)
} NetworkConfigPayload__PayloadCase;

struct  NetworkConfigPayload
{
  ProtobufCMessage base;
  NetworkConfigMsgType msg;
  NetworkConfigPayload__PayloadCase payload_case;
  union {
    CmdGetWifiStatus *cmd_get_wifi_status;
    RespGetWifiStatus *resp_get_wifi_status;
    CmdSetWifiConfig *cmd_set_wifi_config;
    RespSetWifiConfig *resp_set_wifi_config;
    CmdApplyWifiConfig *cmd_apply_wifi_config;
    RespApplyWifiConfig *resp_apply_wifi_config;
    CmdGetThreadStatus *cmd_get_thread_status;
    RespGetThreadStatus *resp_get_thread_status;
    CmdSetThreadConfig *cmd_set_thread_config;
    RespSetThreadConfig *resp_set_thread_config;
    CmdApplyThreadConfig *cmd_apply_thread_config;
    RespApplyThreadConfig *resp_apply_thread_config;
  };
};
#define NETWORK_CONFIG_PAYLOAD__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&network_config_payload__descriptor) \
    , NETWORK_CONFIG_MSG_TYPE__TypeCmdGetWifiStatus, NETWORK_CONFIG_PAYLOAD__PAYLOAD__NOT_SET, {0} }


/* CmdGetWifiStatus methods */
void   cmd_get_wifi_status__init
                     (CmdGetWifiStatus         *message);
size_t cmd_get_wifi_status__get_packed_size
                     (const CmdGetWifiStatus   *message);
size_t cmd_get_wifi_status__pack
                     (const CmdGetWifiStatus   *message,
                      uint8_t             *out);
size_t cmd_get_wifi_status__pack_to_buffer
                     (const CmdGetWifiStatus   *message,
                      ProtobufCBuffer     *buffer);
CmdGetWifiStatus *
       cmd_get_wifi_status__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   cmd_get_wifi_status__free_unpacked
                     (CmdGetWifiStatus *message,
                      ProtobufCAllocator *allocator);
/* RespGetWifiStatus methods */
void   resp_get_wifi_status__init
                     (RespGetWifiStatus         *message);
size_t resp_get_wifi_status__get_packed_size
                     (const RespGetWifiStatus   *message);
size_t resp_get_wifi_status__pack
                     (const RespGetWifiStatus   *message,
                      uint8_t             *out);
size_t resp_get_wifi_status__pack_to_buffer
                     (const RespGetWifiStatus   *message,
                      ProtobufCBuffer     *buffer);
RespGetWifiStatus *
       resp_get_wifi_status__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   resp_get_wifi_status__free_unpacked
                     (RespGetWifiStatus *message,
                      ProtobufCAllocator *allocator);
/* CmdGetThreadStatus methods */
void   cmd_get_thread_status__init
                     (CmdGetThreadStatus         *message);
size_t cmd_get_thread_status__get_packed_size
                     (const CmdGetThreadStatus   *message);
size_t cmd_get_thread_status__pack
                     (const CmdGetThreadStatus   *message,
                      uint8_t             *out);
size_t cmd_get_thread_status__pack_to_buffer
                     (const CmdGetThreadStatus   *message,
                      ProtobufCBuffer     *buffer);
CmdGetThreadStatus *
       cmd_get_thread_status__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   cmd_get_thread_status__free_unpacked
                     (CmdGetThreadStatus *message,
                      ProtobufCAllocator *allocator);
/* RespGetThreadStatus methods */
void   resp_get_thread_status__init
                     (RespGetThreadStatus         *message);
size_t resp_get_thread_status__get_packed_size
                     (const RespGetThreadStatus   *message);
size_t resp_get_thread_status__pack
                     (const RespGetThreadStatus   *message,
                      uint8_t             *out);
size_t resp_get_thread_status__pack_to_buffer
                     (const RespGetThreadStatus   *message,
                      ProtobufCBuffer     *buffer);
RespGetThreadStatus *
       resp_get_thread_status__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   resp_get_thread_status__free_unpacked
                     (RespGetThreadStatus *message,
                      ProtobufCAllocator *allocator);
/* CmdSetWifiConfig methods */
void   cmd_set_wifi_config__init
                     (CmdSetWifiConfig         *message);
size_t cmd_set_wifi_config__get_packed_size
                     (const CmdSetWifiConfig   *message);
size_t cmd_set_wifi_config__pack
                     (const CmdSetWifiConfig   *message,
                      uint8_t             *out);
size_t cmd_set_wifi_config__pack_to_buffer
                     (const CmdSetWifiConfig   *message,
                      ProtobufCBuffer     *buffer);
CmdSetWifiConfig *
       cmd_set_wifi_config__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   cmd_set_wifi_config__free_unpacked
                     (CmdSetWifiConfig *message,
                      ProtobufCAllocator *allocator);
/* CmdSetThreadConfig methods */
void   cmd_set_thread_config__init
                     (CmdSetThreadConfig         *message);
size_t cmd_set_thread_config__get_packed_size
                     (const CmdSetThreadConfig   *message);
size_t cmd_set_thread_config__pack
                     (const CmdSetThreadConfig   *message,
                      uint8_t             *out);
size_t cmd_set_thread_config__pack_to_buffer
                     (const CmdSetThreadConfig   *message,
                      ProtobufCBuffer     *buffer);
CmdSetThreadConfig *
       cmd_set_thread_config__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   cmd_set_thread_config__free_unpacked
                     (CmdSetThreadConfig *message,
                      ProtobufCAllocator *allocator);
/* RespSetWifiConfig methods */
void   resp_set_wifi_config__init
                     (RespSetWifiConfig         *message);
size_t resp_set_wifi_config__get_packed_size
                     (const RespSetWifiConfig   *message);
size_t resp_set_wifi_config__pack
                     (const RespSetWifiConfig   *message,
                      uint8_t             *out);
size_t resp_set_wifi_config__pack_to_buffer
                     (const RespSetWifiConfig   *message,
                      ProtobufCBuffer     *buffer);
RespSetWifiConfig *
       resp_set_wifi_config__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   resp_set_wifi_config__free_unpacked
                     (RespSetWifiConfig *message,
                      ProtobufCAllocator *allocator);
/* RespSetThreadConfig methods */
void   resp_set_thread_config__init
                     (RespSetThreadConfig         *message);
size_t resp_set_thread_config__get_packed_size
                     (const RespSetThreadConfig   *message);
size_t resp_set_thread_config__pack
                     (const RespSetThreadConfig   *message,
                      uint8_t             *out);
size_t resp_set_thread_config__pack_to_buffer
                     (const RespSetThreadConfig   *message,
                      ProtobufCBuffer     *buffer);
RespSetThreadConfig *
       resp_set_thread_config__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   resp_set_thread_config__free_unpacked
                     (RespSetThreadConfig *message,
                      ProtobufCAllocator *allocator);
/* CmdApplyWifiConfig methods */
void   cmd_apply_wifi_config__init
                     (CmdApplyWifiConfig         *message);
size_t cmd_apply_wifi_config__get_packed_size
                     (const CmdApplyWifiConfig   *message);
size_t cmd_apply_wifi_config__pack
                     (const CmdApplyWifiConfig   *message,
                      uint8_t             *out);
size_t cmd_apply_wifi_config__pack_to_buffer
                     (const CmdApplyWifiConfig   *message,
                      ProtobufCBuffer     *buffer);
CmdApplyWifiConfig *
       cmd_apply_wifi_config__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   cmd_apply_wifi_config__free_unpacked
                     (CmdApplyWifiConfig *message,
                      ProtobufCAllocator *allocator);
/* CmdApplyThreadConfig methods */
void   cmd_apply_thread_config__init
                     (CmdApplyThreadConfig         *message);
size_t cmd_apply_thread_config__get_packed_size
                     (const CmdApplyThreadConfig   *message);
size_t cmd_apply_thread_config__pack
                     (const CmdApplyThreadConfig   *message,
                      uint8_t             *out);
size_t cmd_apply_thread_config__pack_to_buffer
                     (const CmdApplyThreadConfig   *message,
                      ProtobufCBuffer     *buffer);
CmdApplyThreadConfig *
       cmd_apply_thread_config__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   cmd_apply_thread_config__free_unpacked
                     (CmdApplyThreadConfig *message,
                      ProtobufCAllocator *allocator);
/* RespApplyWifiConfig methods */
void   resp_apply_wifi_config__init
                     (RespApplyWifiConfig         *message);
size_t resp_apply_wifi_config__get_packed_size
                     (const RespApplyWifiConfig   *message);
size_t resp_apply_wifi_config__pack
                     (const RespApplyWifiConfig   *message,
                      uint8_t             *out);
size_t resp_apply_wifi_config__pack_to_buffer
                     (const RespApplyWifiConfig   *message,
                      ProtobufCBuffer     *buffer);
RespApplyWifiConfig *
       resp_apply_wifi_config__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   resp_apply_wifi_config__free_unpacked
                     (RespApplyWifiConfig *message,
                      ProtobufCAllocator *allocator);
/* RespApplyThreadConfig methods */
void   resp_apply_thread_config__init
                     (RespApplyThreadConfig         *message);
size_t resp_apply_thread_config__get_packed_size
                     (const RespApplyThreadConfig   *message);
size_t resp_apply_thread_config__pack
                     (const RespApplyThreadConfig   *message,
                      uint8_t             *out);
size_t resp_apply_thread_config__pack_to_buffer
                     (const RespApplyThreadConfig   *message,
                      ProtobufCBuffer     *buffer);
RespApplyThreadConfig *
       resp_apply_thread_config__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   resp_apply_thread_config__free_unpacked
                     (RespApplyThreadConfig *message,
                      ProtobufCAllocator *allocator);
/* NetworkConfigPayload methods */
void   network_config_payload__init
                     (NetworkConfigPayload         *message);
size_t network_config_payload__get_packed_size
                     (const NetworkConfigPayload   *message);
size_t network_config_payload__pack
                     (const NetworkConfigPayload   *message,
                      uint8_t             *out);
size_t network_config_payload__pack_to_buffer
                     (const NetworkConfigPayload   *message,
                      ProtobufCBuffer     *buffer);
NetworkConfigPayload *
       network_config_payload__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   network_config_payload__free_unpacked
                     (NetworkConfigPayload *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*CmdGetWifiStatus_Closure)
                 (const CmdGetWifiStatus *message,
                  void *closure_data);
typedef void (*RespGetWifiStatus_Closure)
                 (const RespGetWifiStatus *message,
                  void *closure_data);
typedef void (*CmdGetThreadStatus_Closure)
                 (const CmdGetThreadStatus *message,
                  void *closure_data);
typedef void (*RespGetThreadStatus_Closure)
                 (const RespGetThreadStatus *message,
                  void *closure_data);
typedef void (*CmdSetWifiConfig_Closure)
                 (const CmdSetWifiConfig *message,
                  void *closure_data);
typedef void (*CmdSetThreadConfig_Closure)
                 (const CmdSetThreadConfig *message,
                  void *closure_data);
typedef void (*RespSetWifiConfig_Closure)
                 (const RespSetWifiConfig *message,
                  void *closure_data);
typedef void (*RespSetThreadConfig_Closure)
                 (const RespSetThreadConfig *message,
                  void *closure_data);
typedef void (*CmdApplyWifiConfig_Closure)
                 (const CmdApplyWifiConfig *message,
                  void *closure_data);
typedef void (*CmdApplyThreadConfig_Closure)
                 (const CmdApplyThreadConfig *message,
                  void *closure_data);
typedef void (*RespApplyWifiConfig_Closure)
                 (const RespApplyWifiConfig *message,
                  void *closure_data);
typedef void (*RespApplyThreadConfig_Closure)
                 (const RespApplyThreadConfig *message,
                  void *closure_data);
typedef void (*NetworkConfigPayload_Closure)
                 (const NetworkConfigPayload *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCEnumDescriptor    network_config_msg_type__descriptor;
extern const ProtobufCMessageDescriptor cmd_get_wifi_status__descriptor;
extern const ProtobufCMessageDescriptor resp_get_wifi_status__descriptor;
extern const ProtobufCMessageDescriptor cmd_get_thread_status__descriptor;
extern const ProtobufCMessageDescriptor resp_get_thread_status__descriptor;
extern const ProtobufCMessageDescriptor cmd_set_wifi_config__descriptor;
extern const ProtobufCMessageDescriptor cmd_set_thread_config__descriptor;
extern const ProtobufCMessageDescriptor resp_set_wifi_config__descriptor;
extern const ProtobufCMessageDescriptor resp_set_thread_config__descriptor;
extern const ProtobufCMessageDescriptor cmd_apply_wifi_config__descriptor;
extern const ProtobufCMessageDescriptor cmd_apply_thread_config__descriptor;
extern const ProtobufCMessageDescriptor resp_apply_wifi_config__descriptor;
extern const ProtobufCMessageDescriptor resp_apply_thread_config__descriptor;
extern const ProtobufCMessageDescriptor network_config_payload__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_network_5fconfig_2eproto__INCLUDED */
