/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.6-dev */

#ifndef PB_PB_STORAGE_STORAGE_PB_H_INCLUDED
#define PB_PB_STORAGE_STORAGE_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 _PB_Storage_File_FileType { 
    PB_Storage_File_FileType_FILE = 0, 
    PB_Storage_File_FileType_DIR = 1 
} PB_Storage_File_FileType;

/* Struct definitions */
typedef struct _PB_Storage_BackupCreateRequest { 
    char *archive_path; 
} PB_Storage_BackupCreateRequest;

typedef struct _PB_Storage_BackupRestoreRequest { 
    char *archive_path; 
} PB_Storage_BackupRestoreRequest;

typedef struct _PB_Storage_InfoRequest { 
    char *path; 
} PB_Storage_InfoRequest;

typedef struct _PB_Storage_ListRequest { 
    char *path; 
} PB_Storage_ListRequest;

typedef struct _PB_Storage_Md5sumRequest { 
    char *path; 
} PB_Storage_Md5sumRequest;

typedef struct _PB_Storage_MkdirRequest { 
    char *path; 
} PB_Storage_MkdirRequest;

typedef struct _PB_Storage_ReadRequest { 
    char *path; 
} PB_Storage_ReadRequest;

typedef struct _PB_Storage_RenameRequest { 
    char *old_path; 
    char *new_path; 
} PB_Storage_RenameRequest;

typedef struct _PB_Storage_StatRequest { 
    char *path; 
} PB_Storage_StatRequest;

typedef struct _PB_Storage_TimestampRequest { 
    char *path; 
} PB_Storage_TimestampRequest;

typedef struct _PB_Storage_DeleteRequest { 
    char *path; 
    bool recursive; 
} PB_Storage_DeleteRequest;

typedef struct _PB_Storage_File { 
    PB_Storage_File_FileType type; 
    char *name; 
    uint32_t size; 
    pb_bytes_array_t *data; 
} PB_Storage_File;

typedef struct _PB_Storage_InfoResponse { 
    uint64_t total_space; 
    uint64_t free_space; 
} PB_Storage_InfoResponse;

typedef struct _PB_Storage_Md5sumResponse { 
    char md5sum[33]; 
} PB_Storage_Md5sumResponse;

typedef struct _PB_Storage_TimestampResponse { 
    uint32_t timestamp; 
} PB_Storage_TimestampResponse;

typedef struct _PB_Storage_ListResponse { 
    pb_size_t file_count;
    PB_Storage_File file[8]; 
} PB_Storage_ListResponse;

typedef struct _PB_Storage_ReadResponse { 
    bool has_file;
    PB_Storage_File file; 
} PB_Storage_ReadResponse;

typedef struct _PB_Storage_StatResponse { 
    bool has_file;
    PB_Storage_File file; 
} PB_Storage_StatResponse;

typedef struct _PB_Storage_WriteRequest { 
    char *path; 
    bool has_file;
    PB_Storage_File file; 
} PB_Storage_WriteRequest;


/* Helper constants for enums */
#define _PB_Storage_File_FileType_MIN PB_Storage_File_FileType_FILE
#define _PB_Storage_File_FileType_MAX PB_Storage_File_FileType_DIR
#define _PB_Storage_File_FileType_ARRAYSIZE ((PB_Storage_File_FileType)(PB_Storage_File_FileType_DIR+1))


#ifdef __cplusplus
extern "C" {
#endif

/* Initializer values for message structs */
#define PB_Storage_File_init_default             {_PB_Storage_File_FileType_MIN, NULL, 0, NULL}
#define PB_Storage_InfoRequest_init_default      {NULL}
#define PB_Storage_InfoResponse_init_default     {0, 0}
#define PB_Storage_TimestampRequest_init_default {NULL}
#define PB_Storage_TimestampResponse_init_default {0}
#define PB_Storage_StatRequest_init_default      {NULL}
#define PB_Storage_StatResponse_init_default     {false, PB_Storage_File_init_default}
#define PB_Storage_ListRequest_init_default      {NULL}
#define PB_Storage_ListResponse_init_default     {0, {PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default}}
#define PB_Storage_ReadRequest_init_default      {NULL}
#define PB_Storage_ReadResponse_init_default     {false, PB_Storage_File_init_default}
#define PB_Storage_WriteRequest_init_default     {NULL, false, PB_Storage_File_init_default}
#define PB_Storage_DeleteRequest_init_default    {NULL, 0}
#define PB_Storage_MkdirRequest_init_default     {NULL}
#define PB_Storage_Md5sumRequest_init_default    {NULL}
#define PB_Storage_Md5sumResponse_init_default   {""}
#define PB_Storage_RenameRequest_init_default    {NULL, NULL}
#define PB_Storage_BackupCreateRequest_init_default {NULL}
#define PB_Storage_BackupRestoreRequest_init_default {NULL}
#define PB_Storage_File_init_zero                {_PB_Storage_File_FileType_MIN, NULL, 0, NULL}
#define PB_Storage_InfoRequest_init_zero         {NULL}
#define PB_Storage_InfoResponse_init_zero        {0, 0}
#define PB_Storage_TimestampRequest_init_zero    {NULL}
#define PB_Storage_TimestampResponse_init_zero   {0}
#define PB_Storage_StatRequest_init_zero         {NULL}
#define PB_Storage_StatResponse_init_zero        {false, PB_Storage_File_init_zero}
#define PB_Storage_ListRequest_init_zero         {NULL}
#define PB_Storage_ListResponse_init_zero        {0, {PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero}}
#define PB_Storage_ReadRequest_init_zero         {NULL}
#define PB_Storage_ReadResponse_init_zero        {false, PB_Storage_File_init_zero}
#define PB_Storage_WriteRequest_init_zero        {NULL, false, PB_Storage_File_init_zero}
#define PB_Storage_DeleteRequest_init_zero       {NULL, 0}
#define PB_Storage_MkdirRequest_init_zero        {NULL}
#define PB_Storage_Md5sumRequest_init_zero       {NULL}
#define PB_Storage_Md5sumResponse_init_zero      {""}
#define PB_Storage_RenameRequest_init_zero       {NULL, NULL}
#define PB_Storage_BackupCreateRequest_init_zero {NULL}
#define PB_Storage_BackupRestoreRequest_init_zero {NULL}

/* Field tags (for use in manual encoding/decoding) */
#define PB_Storage_BackupCreateRequest_archive_path_tag 1
#define PB_Storage_BackupRestoreRequest_archive_path_tag 1
#define PB_Storage_InfoRequest_path_tag          1
#define PB_Storage_ListRequest_path_tag          1
#define PB_Storage_Md5sumRequest_path_tag        1
#define PB_Storage_MkdirRequest_path_tag         1
#define PB_Storage_ReadRequest_path_tag          1
#define PB_Storage_RenameRequest_old_path_tag    1
#define PB_Storage_RenameRequest_new_path_tag    2
#define PB_Storage_StatRequest_path_tag          1
#define PB_Storage_TimestampRequest_path_tag     1
#define PB_Storage_DeleteRequest_path_tag        1
#define PB_Storage_DeleteRequest_recursive_tag   2
#define PB_Storage_File_type_tag                 1
#define PB_Storage_File_name_tag                 2
#define PB_Storage_File_size_tag                 3
#define PB_Storage_File_data_tag                 4
#define PB_Storage_InfoResponse_total_space_tag  1
#define PB_Storage_InfoResponse_free_space_tag   2
#define PB_Storage_Md5sumResponse_md5sum_tag     1
#define PB_Storage_TimestampResponse_timestamp_tag 1
#define PB_Storage_ListResponse_file_tag         1
#define PB_Storage_ReadResponse_file_tag         1
#define PB_Storage_StatResponse_file_tag         1
#define PB_Storage_WriteRequest_path_tag         1
#define PB_Storage_WriteRequest_file_tag         2

/* Struct field encoding specification for nanopb */
#define PB_Storage_File_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UENUM,    type,              1) \
X(a, POINTER,  SINGULAR, STRING,   name,              2) \
X(a, STATIC,   SINGULAR, UINT32,   size,              3) \
X(a, POINTER,  SINGULAR, BYTES,    data,              4)
#define PB_Storage_File_CALLBACK NULL
#define PB_Storage_File_DEFAULT NULL

#define PB_Storage_InfoRequest_FIELDLIST(X, a) \
X(a, POINTER,  SINGULAR, STRING,   path,              1)
#define PB_Storage_InfoRequest_CALLBACK NULL
#define PB_Storage_InfoRequest_DEFAULT NULL

#define PB_Storage_InfoResponse_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT64,   total_space,       1) \
X(a, STATIC,   SINGULAR, UINT64,   free_space,        2)
#define PB_Storage_InfoResponse_CALLBACK NULL
#define PB_Storage_InfoResponse_DEFAULT NULL

#define PB_Storage_TimestampRequest_FIELDLIST(X, a) \
X(a, POINTER,  SINGULAR, STRING,   path,              1)
#define PB_Storage_TimestampRequest_CALLBACK NULL
#define PB_Storage_TimestampRequest_DEFAULT NULL

#define PB_Storage_TimestampResponse_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   timestamp,         1)
#define PB_Storage_TimestampResponse_CALLBACK NULL
#define PB_Storage_TimestampResponse_DEFAULT NULL

#define PB_Storage_StatRequest_FIELDLIST(X, a) \
X(a, POINTER,  SINGULAR, STRING,   path,              1)
#define PB_Storage_StatRequest_CALLBACK NULL
#define PB_Storage_StatRequest_DEFAULT NULL

#define PB_Storage_StatResponse_FIELDLIST(X, a) \
X(a, STATIC,   OPTIONAL, MESSAGE,  file,              1)
#define PB_Storage_StatResponse_CALLBACK NULL
#define PB_Storage_StatResponse_DEFAULT NULL
#define PB_Storage_StatResponse_file_MSGTYPE PB_Storage_File

#define PB_Storage_ListRequest_FIELDLIST(X, a) \
X(a, POINTER,  SINGULAR, STRING,   path,              1)
#define PB_Storage_ListRequest_CALLBACK NULL
#define PB_Storage_ListRequest_DEFAULT NULL

#define PB_Storage_ListResponse_FIELDLIST(X, a) \
X(a, STATIC,   REPEATED, MESSAGE,  file,              1)
#define PB_Storage_ListResponse_CALLBACK NULL
#define PB_Storage_ListResponse_DEFAULT NULL
#define PB_Storage_ListResponse_file_MSGTYPE PB_Storage_File

#define PB_Storage_ReadRequest_FIELDLIST(X, a) \
X(a, POINTER,  SINGULAR, STRING,   path,              1)
#define PB_Storage_ReadRequest_CALLBACK NULL
#define PB_Storage_ReadRequest_DEFAULT NULL

#define PB_Storage_ReadResponse_FIELDLIST(X, a) \
X(a, STATIC,   OPTIONAL, MESSAGE,  file,              1)
#define PB_Storage_ReadResponse_CALLBACK NULL
#define PB_Storage_ReadResponse_DEFAULT NULL
#define PB_Storage_ReadResponse_file_MSGTYPE PB_Storage_File

#define PB_Storage_WriteRequest_FIELDLIST(X, a) \
X(a, POINTER,  SINGULAR, STRING,   path,              1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  file,              2)
#define PB_Storage_WriteRequest_CALLBACK NULL
#define PB_Storage_WriteRequest_DEFAULT NULL
#define PB_Storage_WriteRequest_file_MSGTYPE PB_Storage_File

#define PB_Storage_DeleteRequest_FIELDLIST(X, a) \
X(a, POINTER,  SINGULAR, STRING,   path,              1) \
X(a, STATIC,   SINGULAR, BOOL,     recursive,         2)
#define PB_Storage_DeleteRequest_CALLBACK NULL
#define PB_Storage_DeleteRequest_DEFAULT NULL

#define PB_Storage_MkdirRequest_FIELDLIST(X, a) \
X(a, POINTER,  SINGULAR, STRING,   path,              1)
#define PB_Storage_MkdirRequest_CALLBACK NULL
#define PB_Storage_MkdirRequest_DEFAULT NULL

#define PB_Storage_Md5sumRequest_FIELDLIST(X, a) \
X(a, POINTER,  SINGULAR, STRING,   path,              1)
#define PB_Storage_Md5sumRequest_CALLBACK NULL
#define PB_Storage_Md5sumRequest_DEFAULT NULL

#define PB_Storage_Md5sumResponse_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, STRING,   md5sum,            1)
#define PB_Storage_Md5sumResponse_CALLBACK NULL
#define PB_Storage_Md5sumResponse_DEFAULT NULL

#define PB_Storage_RenameRequest_FIELDLIST(X, a) \
X(a, POINTER,  SINGULAR, STRING,   old_path,          1) \
X(a, POINTER,  SINGULAR, STRING,   new_path,          2)
#define PB_Storage_RenameRequest_CALLBACK NULL
#define PB_Storage_RenameRequest_DEFAULT NULL

#define PB_Storage_BackupCreateRequest_FIELDLIST(X, a) \
X(a, POINTER,  SINGULAR, STRING,   archive_path,      1)
#define PB_Storage_BackupCreateRequest_CALLBACK NULL
#define PB_Storage_BackupCreateRequest_DEFAULT NULL

#define PB_Storage_BackupRestoreRequest_FIELDLIST(X, a) \
X(a, POINTER,  SINGULAR, STRING,   archive_path,      1)
#define PB_Storage_BackupRestoreRequest_CALLBACK NULL
#define PB_Storage_BackupRestoreRequest_DEFAULT NULL

extern const pb_msgdesc_t PB_Storage_File_msg;
extern const pb_msgdesc_t PB_Storage_InfoRequest_msg;
extern const pb_msgdesc_t PB_Storage_InfoResponse_msg;
extern const pb_msgdesc_t PB_Storage_TimestampRequest_msg;
extern const pb_msgdesc_t PB_Storage_TimestampResponse_msg;
extern const pb_msgdesc_t PB_Storage_StatRequest_msg;
extern const pb_msgdesc_t PB_Storage_StatResponse_msg;
extern const pb_msgdesc_t PB_Storage_ListRequest_msg;
extern const pb_msgdesc_t PB_Storage_ListResponse_msg;
extern const pb_msgdesc_t PB_Storage_ReadRequest_msg;
extern const pb_msgdesc_t PB_Storage_ReadResponse_msg;
extern const pb_msgdesc_t PB_Storage_WriteRequest_msg;
extern const pb_msgdesc_t PB_Storage_DeleteRequest_msg;
extern const pb_msgdesc_t PB_Storage_MkdirRequest_msg;
extern const pb_msgdesc_t PB_Storage_Md5sumRequest_msg;
extern const pb_msgdesc_t PB_Storage_Md5sumResponse_msg;
extern const pb_msgdesc_t PB_Storage_RenameRequest_msg;
extern const pb_msgdesc_t PB_Storage_BackupCreateRequest_msg;
extern const pb_msgdesc_t PB_Storage_BackupRestoreRequest_msg;

/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define PB_Storage_File_fields &PB_Storage_File_msg
#define PB_Storage_InfoRequest_fields &PB_Storage_InfoRequest_msg
#define PB_Storage_InfoResponse_fields &PB_Storage_InfoResponse_msg
#define PB_Storage_TimestampRequest_fields &PB_Storage_TimestampRequest_msg
#define PB_Storage_TimestampResponse_fields &PB_Storage_TimestampResponse_msg
#define PB_Storage_StatRequest_fields &PB_Storage_StatRequest_msg
#define PB_Storage_StatResponse_fields &PB_Storage_StatResponse_msg
#define PB_Storage_ListRequest_fields &PB_Storage_ListRequest_msg
#define PB_Storage_ListResponse_fields &PB_Storage_ListResponse_msg
#define PB_Storage_ReadRequest_fields &PB_Storage_ReadRequest_msg
#define PB_Storage_ReadResponse_fields &PB_Storage_ReadResponse_msg
#define PB_Storage_WriteRequest_fields &PB_Storage_WriteRequest_msg
#define PB_Storage_DeleteRequest_fields &PB_Storage_DeleteRequest_msg
#define PB_Storage_MkdirRequest_fields &PB_Storage_MkdirRequest_msg
#define PB_Storage_Md5sumRequest_fields &PB_Storage_Md5sumRequest_msg
#define PB_Storage_Md5sumResponse_fields &PB_Storage_Md5sumResponse_msg
#define PB_Storage_RenameRequest_fields &PB_Storage_RenameRequest_msg
#define PB_Storage_BackupCreateRequest_fields &PB_Storage_BackupCreateRequest_msg
#define PB_Storage_BackupRestoreRequest_fields &PB_Storage_BackupRestoreRequest_msg

/* Maximum encoded size of messages (where known) */
/* PB_Storage_File_size depends on runtime parameters */
/* PB_Storage_InfoRequest_size depends on runtime parameters */
/* PB_Storage_TimestampRequest_size depends on runtime parameters */
/* PB_Storage_StatRequest_size depends on runtime parameters */
/* PB_Storage_StatResponse_size depends on runtime parameters */
/* PB_Storage_ListRequest_size depends on runtime parameters */
/* PB_Storage_ListResponse_size depends on runtime parameters */
/* PB_Storage_ReadRequest_size depends on runtime parameters */
/* PB_Storage_ReadResponse_size depends on runtime parameters */
/* PB_Storage_WriteRequest_size depends on runtime parameters */
/* PB_Storage_DeleteRequest_size depends on runtime parameters */
/* PB_Storage_MkdirRequest_size depends on runtime parameters */
/* PB_Storage_Md5sumRequest_size depends on runtime parameters */
/* PB_Storage_RenameRequest_size depends on runtime parameters */
/* PB_Storage_BackupCreateRequest_size depends on runtime parameters */
/* PB_Storage_BackupRestoreRequest_size depends on runtime parameters */
#define PB_Storage_InfoResponse_size             22
#define PB_Storage_Md5sumResponse_size           34
#define PB_Storage_TimestampResponse_size        6

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

#endif
