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

#ifndef PB_EXTENSIONS_API_CAST_CHANNEL_CAST_CHANNEL_PB_H_INCLUDED
#define PB_EXTENSIONS_API_CAST_CHANNEL_CAST_CHANNEL_PB_H_INCLUDED
#include <pb.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* Enum definitions */
typedef enum _extensions_api_cast_channel_CastMessage_ProtocolVersion {
    extensions_api_cast_channel_CastMessage_ProtocolVersion_CASTV2_1_0 = 0
} extensions_api_cast_channel_CastMessage_ProtocolVersion;

typedef enum _extensions_api_cast_channel_CastMessage_PayloadType {
    extensions_api_cast_channel_CastMessage_PayloadType_STRING = 0,
    extensions_api_cast_channel_CastMessage_PayloadType_BINARY = 1
} extensions_api_cast_channel_CastMessage_PayloadType;

typedef enum _extensions_api_cast_channel_AuthError_ErrorType {
    extensions_api_cast_channel_AuthError_ErrorType_INTERNAL_ERROR = 0,
    extensions_api_cast_channel_AuthError_ErrorType_NO_TLS = 1
} extensions_api_cast_channel_AuthError_ErrorType;

/* Struct definitions */
typedef struct _extensions_api_cast_channel_AuthChallenge {
    char dummy_field;
} extensions_api_cast_channel_AuthChallenge;

typedef struct _extensions_api_cast_channel_AuthResponse {
    pb_callback_t signature;
    pb_callback_t client_auth_certificate;
    pb_callback_t client_ca;
} extensions_api_cast_channel_AuthResponse;

typedef struct _extensions_api_cast_channel_AuthError {
    extensions_api_cast_channel_AuthError_ErrorType error_type;
} extensions_api_cast_channel_AuthError;

typedef struct _extensions_api_cast_channel_CastMessage {
    extensions_api_cast_channel_CastMessage_ProtocolVersion protocol_version;
    pb_callback_t source_id;
    pb_callback_t destination_id;
    pb_callback_t nameSpace;
    extensions_api_cast_channel_CastMessage_PayloadType payload_type;
    pb_callback_t payload_utf8;
    pb_callback_t payload_binary;
} extensions_api_cast_channel_CastMessage;

typedef struct _extensions_api_cast_channel_DeviceAuthMessage {
    bool has_challenge;
    extensions_api_cast_channel_AuthChallenge challenge;
    bool has_response;
    extensions_api_cast_channel_AuthResponse response;
    bool has_error;
    extensions_api_cast_channel_AuthError error;
} extensions_api_cast_channel_DeviceAuthMessage;


/* Helper constants for enums */
#define _extensions_api_cast_channel_CastMessage_ProtocolVersion_MIN extensions_api_cast_channel_CastMessage_ProtocolVersion_CASTV2_1_0
#define _extensions_api_cast_channel_CastMessage_ProtocolVersion_MAX extensions_api_cast_channel_CastMessage_ProtocolVersion_CASTV2_1_0
#define _extensions_api_cast_channel_CastMessage_ProtocolVersion_ARRAYSIZE ((extensions_api_cast_channel_CastMessage_ProtocolVersion)(extensions_api_cast_channel_CastMessage_ProtocolVersion_CASTV2_1_0+1))

#define _extensions_api_cast_channel_CastMessage_PayloadType_MIN extensions_api_cast_channel_CastMessage_PayloadType_STRING
#define _extensions_api_cast_channel_CastMessage_PayloadType_MAX extensions_api_cast_channel_CastMessage_PayloadType_BINARY
#define _extensions_api_cast_channel_CastMessage_PayloadType_ARRAYSIZE ((extensions_api_cast_channel_CastMessage_PayloadType)(extensions_api_cast_channel_CastMessage_PayloadType_BINARY+1))

#define _extensions_api_cast_channel_AuthError_ErrorType_MIN extensions_api_cast_channel_AuthError_ErrorType_INTERNAL_ERROR
#define _extensions_api_cast_channel_AuthError_ErrorType_MAX extensions_api_cast_channel_AuthError_ErrorType_NO_TLS
#define _extensions_api_cast_channel_AuthError_ErrorType_ARRAYSIZE ((extensions_api_cast_channel_AuthError_ErrorType)(extensions_api_cast_channel_AuthError_ErrorType_NO_TLS+1))


/* Initializer values for message structs */
#define extensions_api_cast_channel_CastMessage_init_default {_extensions_api_cast_channel_CastMessage_ProtocolVersion_MIN, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, _extensions_api_cast_channel_CastMessage_PayloadType_MIN, {{NULL}, NULL}, {{NULL}, NULL}}
#define extensions_api_cast_channel_AuthChallenge_init_default {0}
#define extensions_api_cast_channel_AuthResponse_init_default {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}}
#define extensions_api_cast_channel_AuthError_init_default {_extensions_api_cast_channel_AuthError_ErrorType_MIN}
#define extensions_api_cast_channel_DeviceAuthMessage_init_default {false, extensions_api_cast_channel_AuthChallenge_init_default, false, extensions_api_cast_channel_AuthResponse_init_default, false, extensions_api_cast_channel_AuthError_init_default}
#define extensions_api_cast_channel_CastMessage_init_zero {_extensions_api_cast_channel_CastMessage_ProtocolVersion_MIN, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, _extensions_api_cast_channel_CastMessage_PayloadType_MIN, {{NULL}, NULL}, {{NULL}, NULL}}
#define extensions_api_cast_channel_AuthChallenge_init_zero {0}
#define extensions_api_cast_channel_AuthResponse_init_zero {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}}
#define extensions_api_cast_channel_AuthError_init_zero {_extensions_api_cast_channel_AuthError_ErrorType_MIN}
#define extensions_api_cast_channel_DeviceAuthMessage_init_zero {false, extensions_api_cast_channel_AuthChallenge_init_zero, false, extensions_api_cast_channel_AuthResponse_init_zero, false, extensions_api_cast_channel_AuthError_init_zero}

/* Field tags (for use in manual encoding/decoding) */
#define extensions_api_cast_channel_AuthResponse_signature_tag 1
#define extensions_api_cast_channel_AuthResponse_client_auth_certificate_tag 2
#define extensions_api_cast_channel_AuthResponse_client_ca_tag 3
#define extensions_api_cast_channel_AuthError_error_type_tag 1
#define extensions_api_cast_channel_CastMessage_protocol_version_tag 1
#define extensions_api_cast_channel_CastMessage_source_id_tag 2
#define extensions_api_cast_channel_CastMessage_destination_id_tag 3
#define extensions_api_cast_channel_CastMessage_nameSpace_tag 4
#define extensions_api_cast_channel_CastMessage_payload_type_tag 5
#define extensions_api_cast_channel_CastMessage_payload_utf8_tag 6
#define extensions_api_cast_channel_CastMessage_payload_binary_tag 7
#define extensions_api_cast_channel_DeviceAuthMessage_challenge_tag 1
#define extensions_api_cast_channel_DeviceAuthMessage_response_tag 2
#define extensions_api_cast_channel_DeviceAuthMessage_error_tag 3

/* Struct field encoding specification for nanopb */
#define extensions_api_cast_channel_CastMessage_FIELDLIST(X, a) \
X(a, STATIC,   REQUIRED, UENUM,    protocol_version,   1) \
X(a, CALLBACK, REQUIRED, STRING,   source_id,         2) \
X(a, CALLBACK, REQUIRED, STRING,   destination_id,    3) \
X(a, CALLBACK, REQUIRED, STRING,   nameSpace,         4) \
X(a, STATIC,   REQUIRED, UENUM,    payload_type,      5) \
X(a, CALLBACK, OPTIONAL, STRING,   payload_utf8,      6) \
X(a, CALLBACK, OPTIONAL, BYTES,    payload_binary,    7)
#define extensions_api_cast_channel_CastMessage_CALLBACK pb_default_field_callback
#define extensions_api_cast_channel_CastMessage_DEFAULT NULL

#define extensions_api_cast_channel_AuthChallenge_FIELDLIST(X, a) \

#define extensions_api_cast_channel_AuthChallenge_CALLBACK NULL
#define extensions_api_cast_channel_AuthChallenge_DEFAULT NULL

#define extensions_api_cast_channel_AuthResponse_FIELDLIST(X, a) \
X(a, CALLBACK, REQUIRED, BYTES,    signature,         1) \
X(a, CALLBACK, REQUIRED, BYTES,    client_auth_certificate,   2) \
X(a, CALLBACK, REPEATED, BYTES,    client_ca,         3)
#define extensions_api_cast_channel_AuthResponse_CALLBACK pb_default_field_callback
#define extensions_api_cast_channel_AuthResponse_DEFAULT NULL

#define extensions_api_cast_channel_AuthError_FIELDLIST(X, a) \
X(a, STATIC,   REQUIRED, UENUM,    error_type,        1)
#define extensions_api_cast_channel_AuthError_CALLBACK NULL
#define extensions_api_cast_channel_AuthError_DEFAULT NULL

#define extensions_api_cast_channel_DeviceAuthMessage_FIELDLIST(X, a) \
X(a, STATIC,   OPTIONAL, MESSAGE,  challenge,         1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  response,          2) \
X(a, STATIC,   OPTIONAL, MESSAGE,  error,             3)
#define extensions_api_cast_channel_DeviceAuthMessage_CALLBACK NULL
#define extensions_api_cast_channel_DeviceAuthMessage_DEFAULT NULL
#define extensions_api_cast_channel_DeviceAuthMessage_challenge_MSGTYPE extensions_api_cast_channel_AuthChallenge
#define extensions_api_cast_channel_DeviceAuthMessage_response_MSGTYPE extensions_api_cast_channel_AuthResponse
#define extensions_api_cast_channel_DeviceAuthMessage_error_MSGTYPE extensions_api_cast_channel_AuthError

extern const pb_msgdesc_t extensions_api_cast_channel_CastMessage_msg;
extern const pb_msgdesc_t extensions_api_cast_channel_AuthChallenge_msg;
extern const pb_msgdesc_t extensions_api_cast_channel_AuthResponse_msg;
extern const pb_msgdesc_t extensions_api_cast_channel_AuthError_msg;
extern const pb_msgdesc_t extensions_api_cast_channel_DeviceAuthMessage_msg;

/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define extensions_api_cast_channel_CastMessage_fields &extensions_api_cast_channel_CastMessage_msg
#define extensions_api_cast_channel_AuthChallenge_fields &extensions_api_cast_channel_AuthChallenge_msg
#define extensions_api_cast_channel_AuthResponse_fields &extensions_api_cast_channel_AuthResponse_msg
#define extensions_api_cast_channel_AuthError_fields &extensions_api_cast_channel_AuthError_msg
#define extensions_api_cast_channel_DeviceAuthMessage_fields &extensions_api_cast_channel_DeviceAuthMessage_msg

/* Maximum encoded size of messages (where known) */
/* extensions_api_cast_channel_CastMessage_size depends on runtime parameters */
#define extensions_api_cast_channel_AuthChallenge_size 0
/* extensions_api_cast_channel_AuthResponse_size depends on runtime parameters */
#define extensions_api_cast_channel_AuthError_size 2
/* extensions_api_cast_channel_DeviceAuthMessage_size depends on runtime parameters */

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

#endif
