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

#ifndef PB_READGROUP_V1_READGROUP_V1_GET_PB_H_INCLUDED
#define PB_READGROUP_V1_READGROUP_V1_GET_PB_H_INCLUDED
#include <pb.h>
#include "google/protobuf/duration.pb.h"
#include "google/protobuf/timestamp.pb.h"
#include "readgroup/v1/readgroup.pb.h"

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

/* Enum definitions */
typedef enum _readgroup_v1_SortOrder {
    readgroup_v1_SortOrder_SORT_ORDER_UNSPECIFIED = 0,
    readgroup_v1_SortOrder_SORT_ORDER_LAST_SEEN_ASCENDING = 1,
    readgroup_v1_SortOrder_SORT_ORDER_LAST_SEEN_DESCENDING = 2,
    readgroup_v1_SortOrder_SORT_ORDER_FIRST_SEEN_ASCENDING = 3,
    readgroup_v1_SortOrder_SORT_ORDER_FIRST_SEEN_DESCENDING = 4
} readgroup_v1_SortOrder;

typedef enum _readgroup_v1_Group {
    readgroup_v1_Group_GROUP_UNSPECIFIED = 0,
    readgroup_v1_Group_GROUP_READER = 1,
    readgroup_v1_Group_GROUP_ANTENNA = 2
} readgroup_v1_Group;

/* Struct definitions */
typedef struct _readgroup_v1_GetReadGroupsRequest {
    pb_callback_t reader_ids;
    pb_callback_t location_ids;
    pb_callback_t antennas;
    pb_callback_t epc;
    pb_callback_t epc_filter;
    /* aggregates */
    bool has_start;
    google_protobuf_Timestamp start;
    bool has_end;
    google_protobuf_Timestamp end;
    pb_callback_t signals;
    bool has_minimum_avg_rssi;
    int32_t minimum_avg_rssi;
    bool has_sort;
    readgroup_v1_SortOrder sort;
    bool has_minimum_count;
    int32_t minimum_count;
    bool has_minimum_peak_rssi;
    int32_t minimum_peak_rssi;
    bool has_duration;
    google_protobuf_Duration duration;
    int64_t limit;
    int64_t offset;
    bool has_all;
    bool all;
    bool has_inbound;
    bool inbound;
    bool has_outbound;
    bool outbound;
    bool has_group_by;
    readgroup_v1_Group group_by;
    pb_callback_t group_id;
} readgroup_v1_GetReadGroupsRequest;

typedef struct _readgroup_v1_GetReadGroupsResponse {
    pb_callback_t reads;
    uint64_t count;
} readgroup_v1_GetReadGroupsResponse;


#ifdef __cplusplus
extern "C" {
#endif

/* Helper constants for enums */
#define _readgroup_v1_SortOrder_MIN readgroup_v1_SortOrder_SORT_ORDER_UNSPECIFIED
#define _readgroup_v1_SortOrder_MAX readgroup_v1_SortOrder_SORT_ORDER_FIRST_SEEN_DESCENDING
#define _readgroup_v1_SortOrder_ARRAYSIZE ((readgroup_v1_SortOrder)(readgroup_v1_SortOrder_SORT_ORDER_FIRST_SEEN_DESCENDING+1))

#define _readgroup_v1_Group_MIN readgroup_v1_Group_GROUP_UNSPECIFIED
#define _readgroup_v1_Group_MAX readgroup_v1_Group_GROUP_ANTENNA
#define _readgroup_v1_Group_ARRAYSIZE ((readgroup_v1_Group)(readgroup_v1_Group_GROUP_ANTENNA+1))

#define readgroup_v1_GetReadGroupsRequest_sort_ENUMTYPE readgroup_v1_SortOrder
#define readgroup_v1_GetReadGroupsRequest_group_by_ENUMTYPE readgroup_v1_Group



/* Initializer values for message structs */
#define readgroup_v1_GetReadGroupsRequest_init_default {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_default, false, google_protobuf_Timestamp_init_default, {{NULL}, NULL}, false, 0, false, _readgroup_v1_SortOrder_MIN, false, 0, false, 0, false, google_protobuf_Duration_init_default, 0, 0, false, 0, false, 0, false, 0, false, _readgroup_v1_Group_MIN, {{NULL}, NULL}}
#define readgroup_v1_GetReadGroupsResponse_init_default {{{NULL}, NULL}, 0}
#define readgroup_v1_GetReadGroupsRequest_init_zero {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_zero, false, google_protobuf_Timestamp_init_zero, {{NULL}, NULL}, false, 0, false, _readgroup_v1_SortOrder_MIN, false, 0, false, 0, false, google_protobuf_Duration_init_zero, 0, 0, false, 0, false, 0, false, 0, false, _readgroup_v1_Group_MIN, {{NULL}, NULL}}
#define readgroup_v1_GetReadGroupsResponse_init_zero {{{NULL}, NULL}, 0}

/* Field tags (for use in manual encoding/decoding) */
#define readgroup_v1_GetReadGroupsRequest_reader_ids_tag 1
#define readgroup_v1_GetReadGroupsRequest_location_ids_tag 2
#define readgroup_v1_GetReadGroupsRequest_antennas_tag 3
#define readgroup_v1_GetReadGroupsRequest_epc_tag 4
#define readgroup_v1_GetReadGroupsRequest_epc_filter_tag 5
#define readgroup_v1_GetReadGroupsRequest_start_tag 6
#define readgroup_v1_GetReadGroupsRequest_end_tag 7
#define readgroup_v1_GetReadGroupsRequest_signals_tag 8
#define readgroup_v1_GetReadGroupsRequest_minimum_avg_rssi_tag 9
#define readgroup_v1_GetReadGroupsRequest_sort_tag 10
#define readgroup_v1_GetReadGroupsRequest_minimum_count_tag 11
#define readgroup_v1_GetReadGroupsRequest_minimum_peak_rssi_tag 12
#define readgroup_v1_GetReadGroupsRequest_duration_tag 13
#define readgroup_v1_GetReadGroupsRequest_limit_tag 14
#define readgroup_v1_GetReadGroupsRequest_offset_tag 15
#define readgroup_v1_GetReadGroupsRequest_all_tag 16
#define readgroup_v1_GetReadGroupsRequest_inbound_tag 17
#define readgroup_v1_GetReadGroupsRequest_outbound_tag 18
#define readgroup_v1_GetReadGroupsRequest_group_by_tag 19
#define readgroup_v1_GetReadGroupsRequest_group_id_tag 20
#define readgroup_v1_GetReadGroupsResponse_reads_tag 1
#define readgroup_v1_GetReadGroupsResponse_count_tag 2

/* Struct field encoding specification for nanopb */
#define readgroup_v1_GetReadGroupsRequest_FIELDLIST(X, a) \
X(a, CALLBACK, REPEATED, INT32,    reader_ids,        1) \
X(a, CALLBACK, REPEATED, INT32,    location_ids,      2) \
X(a, CALLBACK, REPEATED, INT32,    antennas,          3) \
X(a, CALLBACK, OPTIONAL, STRING,   epc,               4) \
X(a, CALLBACK, OPTIONAL, STRING,   epc_filter,        5) \
X(a, STATIC,   OPTIONAL, MESSAGE,  start,             6) \
X(a, STATIC,   OPTIONAL, MESSAGE,  end,               7) \
X(a, CALLBACK, REPEATED, INT32,    signals,           8) \
X(a, STATIC,   OPTIONAL, SINT32,   minimum_avg_rssi,   9) \
X(a, STATIC,   OPTIONAL, UENUM,    sort,             10) \
X(a, STATIC,   OPTIONAL, INT32,    minimum_count,    11) \
X(a, STATIC,   OPTIONAL, SINT32,   minimum_peak_rssi,  12) \
X(a, STATIC,   OPTIONAL, MESSAGE,  duration,         13) \
X(a, STATIC,   SINGULAR, INT64,    limit,            14) \
X(a, STATIC,   SINGULAR, INT64,    offset,           15) \
X(a, STATIC,   OPTIONAL, BOOL,     all,              16) \
X(a, STATIC,   OPTIONAL, BOOL,     inbound,          17) \
X(a, STATIC,   OPTIONAL, BOOL,     outbound,         18) \
X(a, STATIC,   OPTIONAL, UENUM,    group_by,         19) \
X(a, CALLBACK, OPTIONAL, STRING,   group_id,         20)
#define readgroup_v1_GetReadGroupsRequest_CALLBACK pb_default_field_callback
#define readgroup_v1_GetReadGroupsRequest_DEFAULT NULL
#define readgroup_v1_GetReadGroupsRequest_start_MSGTYPE google_protobuf_Timestamp
#define readgroup_v1_GetReadGroupsRequest_end_MSGTYPE google_protobuf_Timestamp
#define readgroup_v1_GetReadGroupsRequest_duration_MSGTYPE google_protobuf_Duration

#define readgroup_v1_GetReadGroupsResponse_FIELDLIST(X, a) \
X(a, CALLBACK, REPEATED, MESSAGE,  reads,             1) \
X(a, STATIC,   SINGULAR, UINT64,   count,             2)
#define readgroup_v1_GetReadGroupsResponse_CALLBACK pb_default_field_callback
#define readgroup_v1_GetReadGroupsResponse_DEFAULT NULL
#define readgroup_v1_GetReadGroupsResponse_reads_MSGTYPE readgroup_v1_ReadGroup

extern const pb_msgdesc_t readgroup_v1_GetReadGroupsRequest_msg;
extern const pb_msgdesc_t readgroup_v1_GetReadGroupsResponse_msg;

/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define readgroup_v1_GetReadGroupsRequest_fields &readgroup_v1_GetReadGroupsRequest_msg
#define readgroup_v1_GetReadGroupsResponse_fields &readgroup_v1_GetReadGroupsResponse_msg

/* Maximum encoded size of messages (where known) */
/* readgroup_v1_GetReadGroupsRequest_size depends on runtime parameters */
/* readgroup_v1_GetReadGroupsResponse_size depends on runtime parameters */

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

#endif
