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

#ifndef PB_TAG_V1_TAG_V1_GET_PB_H_INCLUDED
#define PB_TAG_V1_TAG_V1_GET_PB_H_INCLUDED
#include <pb.h>
#include "google/protobuf/timestamp.pb.h"
#include "tag/v1/tag.pb.h"
#include "util/between.pb.h"

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

/* Struct definitions */
typedef struct _tag_v1_GetTagRequest {
    pb_callback_t epc;
} tag_v1_GetTagRequest;

typedef struct _tag_v1_GetTagResponse {
    bool has_tag;
    tag_v1_Tag tag;
} tag_v1_GetTagResponse;

typedef struct _tag_v1_GetTagsRequest {
    pb_callback_t filter;
    bool has_first_seen;
    util_TimestampBetween first_seen;
    bool has_last_seen;
    util_TimestampBetween last_seen;
    /* pagination */
    bool has_limit;
    uint64_t limit;
    bool has_cursor;
    google_protobuf_Timestamp cursor;
} tag_v1_GetTagsRequest;

typedef struct _tag_v1_GetTagsResponse {
    pb_callback_t tags;
    bool has_next_cursor;
    google_protobuf_Timestamp next_cursor;
} tag_v1_GetTagsResponse;


#ifdef __cplusplus
extern "C" {
#endif

/* Initializer values for message structs */
#define tag_v1_GetTagRequest_init_default        {{{NULL}, NULL}}
#define tag_v1_GetTagResponse_init_default       {false, tag_v1_Tag_init_default}
#define tag_v1_GetTagsRequest_init_default       {{{NULL}, NULL}, false, util_TimestampBetween_init_default, false, util_TimestampBetween_init_default, false, 0, false, google_protobuf_Timestamp_init_default}
#define tag_v1_GetTagsResponse_init_default      {{{NULL}, NULL}, false, google_protobuf_Timestamp_init_default}
#define tag_v1_GetTagRequest_init_zero           {{{NULL}, NULL}}
#define tag_v1_GetTagResponse_init_zero          {false, tag_v1_Tag_init_zero}
#define tag_v1_GetTagsRequest_init_zero          {{{NULL}, NULL}, false, util_TimestampBetween_init_zero, false, util_TimestampBetween_init_zero, false, 0, false, google_protobuf_Timestamp_init_zero}
#define tag_v1_GetTagsResponse_init_zero         {{{NULL}, NULL}, false, google_protobuf_Timestamp_init_zero}

/* Field tags (for use in manual encoding/decoding) */
#define tag_v1_GetTagRequest_epc_tag             1
#define tag_v1_GetTagResponse_tag_tag            1
#define tag_v1_GetTagsRequest_filter_tag         1
#define tag_v1_GetTagsRequest_first_seen_tag     2
#define tag_v1_GetTagsRequest_last_seen_tag      3
#define tag_v1_GetTagsRequest_limit_tag          4
#define tag_v1_GetTagsRequest_cursor_tag         5
#define tag_v1_GetTagsResponse_tags_tag          1
#define tag_v1_GetTagsResponse_next_cursor_tag   2

/* Struct field encoding specification for nanopb */
#define tag_v1_GetTagRequest_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING,   epc,               1)
#define tag_v1_GetTagRequest_CALLBACK pb_default_field_callback
#define tag_v1_GetTagRequest_DEFAULT NULL

#define tag_v1_GetTagResponse_FIELDLIST(X, a) \
X(a, STATIC,   OPTIONAL, MESSAGE,  tag,               1)
#define tag_v1_GetTagResponse_CALLBACK NULL
#define tag_v1_GetTagResponse_DEFAULT NULL
#define tag_v1_GetTagResponse_tag_MSGTYPE tag_v1_Tag

#define tag_v1_GetTagsRequest_FIELDLIST(X, a) \
X(a, CALLBACK, OPTIONAL, STRING,   filter,            1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  first_seen,        2) \
X(a, STATIC,   OPTIONAL, MESSAGE,  last_seen,         3) \
X(a, STATIC,   OPTIONAL, UINT64,   limit,             4) \
X(a, STATIC,   OPTIONAL, MESSAGE,  cursor,            5)
#define tag_v1_GetTagsRequest_CALLBACK pb_default_field_callback
#define tag_v1_GetTagsRequest_DEFAULT NULL
#define tag_v1_GetTagsRequest_first_seen_MSGTYPE util_TimestampBetween
#define tag_v1_GetTagsRequest_last_seen_MSGTYPE util_TimestampBetween
#define tag_v1_GetTagsRequest_cursor_MSGTYPE google_protobuf_Timestamp

#define tag_v1_GetTagsResponse_FIELDLIST(X, a) \
X(a, CALLBACK, REPEATED, MESSAGE,  tags,              1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  next_cursor,       2)
#define tag_v1_GetTagsResponse_CALLBACK pb_default_field_callback
#define tag_v1_GetTagsResponse_DEFAULT NULL
#define tag_v1_GetTagsResponse_tags_MSGTYPE tag_v1_Tag
#define tag_v1_GetTagsResponse_next_cursor_MSGTYPE google_protobuf_Timestamp

extern const pb_msgdesc_t tag_v1_GetTagRequest_msg;
extern const pb_msgdesc_t tag_v1_GetTagResponse_msg;
extern const pb_msgdesc_t tag_v1_GetTagsRequest_msg;
extern const pb_msgdesc_t tag_v1_GetTagsResponse_msg;

/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define tag_v1_GetTagRequest_fields &tag_v1_GetTagRequest_msg
#define tag_v1_GetTagResponse_fields &tag_v1_GetTagResponse_msg
#define tag_v1_GetTagsRequest_fields &tag_v1_GetTagsRequest_msg
#define tag_v1_GetTagsResponse_fields &tag_v1_GetTagsResponse_msg

/* Maximum encoded size of messages (where known) */
/* tag_v1_GetTagRequest_size depends on runtime parameters */
/* tag_v1_GetTagsRequest_size depends on runtime parameters */
/* tag_v1_GetTagsResponse_size depends on runtime parameters */
#if defined(tag_v1_Tag_size)
#define TAG_V1_TAG_V1_GET_PB_H_MAX_SIZE          tag_v1_GetTagResponse_size
#define tag_v1_GetTagResponse_size               (6 + tag_v1_Tag_size)
#endif

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

#endif
