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

#ifndef PROTOBUF_C_cast_5fchannel_2eproto__INCLUDED
#define PROTOBUF_C_cast_5fchannel_2eproto__INCLUDED

#include <protobuf-c/protobuf-c.h>

PROTOBUF_C__BEGIN_DECLS

#if PROTOBUF_C_VERSION_NUMBER < 1000000
# 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 1000002 < 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


typedef struct _Extensions__CoreApi__CastChannel__CastMessage Extensions__CoreApi__CastChannel__CastMessage;
typedef struct _Extensions__CoreApi__CastChannel__AuthChallenge Extensions__CoreApi__CastChannel__AuthChallenge;
typedef struct _Extensions__CoreApi__CastChannel__AuthResponse Extensions__CoreApi__CastChannel__AuthResponse;
typedef struct _Extensions__CoreApi__CastChannel__AuthError Extensions__CoreApi__CastChannel__AuthError;
typedef struct _Extensions__CoreApi__CastChannel__DeviceAuthMessage Extensions__CoreApi__CastChannel__DeviceAuthMessage;


/* --- enums --- */

typedef enum _Extensions__CoreApi__CastChannel__CastMessage__ProtocolVersion {
  EXTENSIONS__CORE_API__CAST_CHANNEL__CAST_MESSAGE__PROTOCOL_VERSION__CASTV2_1_0 = 0
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(EXTENSIONS__CORE_API__CAST_CHANNEL__CAST_MESSAGE__PROTOCOL_VERSION)
} Extensions__CoreApi__CastChannel__CastMessage__ProtocolVersion;
typedef enum _Extensions__CoreApi__CastChannel__CastMessage__PayloadType {
  EXTENSIONS__CORE_API__CAST_CHANNEL__CAST_MESSAGE__PAYLOAD_TYPE__STRING = 0,
  EXTENSIONS__CORE_API__CAST_CHANNEL__CAST_MESSAGE__PAYLOAD_TYPE__BINARY = 1
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(EXTENSIONS__CORE_API__CAST_CHANNEL__CAST_MESSAGE__PAYLOAD_TYPE)
} Extensions__CoreApi__CastChannel__CastMessage__PayloadType;
typedef enum _Extensions__CoreApi__CastChannel__AuthError__ErrorType {
  EXTENSIONS__CORE_API__CAST_CHANNEL__AUTH_ERROR__ERROR_TYPE__INTERNAL_ERROR = 0,
  EXTENSIONS__CORE_API__CAST_CHANNEL__AUTH_ERROR__ERROR_TYPE__NO_TLS = 1,
  EXTENSIONS__CORE_API__CAST_CHANNEL__AUTH_ERROR__ERROR_TYPE__SIGNATURE_ALGORITHM_UNAVAILABLE = 2
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(EXTENSIONS__CORE_API__CAST_CHANNEL__AUTH_ERROR__ERROR_TYPE)
} Extensions__CoreApi__CastChannel__AuthError__ErrorType;
typedef enum _Extensions__CoreApi__CastChannel__SignatureAlgorithm {
  EXTENSIONS__CORE_API__CAST_CHANNEL__SIGNATURE_ALGORITHM__UNSPECIFIED = 0,
  EXTENSIONS__CORE_API__CAST_CHANNEL__SIGNATURE_ALGORITHM__RSASSA_PKCS1V15 = 1,
  EXTENSIONS__CORE_API__CAST_CHANNEL__SIGNATURE_ALGORITHM__RSASSA_PSS = 2
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(EXTENSIONS__CORE_API__CAST_CHANNEL__SIGNATURE_ALGORITHM)
} Extensions__CoreApi__CastChannel__SignatureAlgorithm;

/* --- messages --- */

struct  _Extensions__CoreApi__CastChannel__CastMessage
{
  ProtobufCMessage base;
  Extensions__CoreApi__CastChannel__CastMessage__ProtocolVersion protocol_version;
  char *source_id;
  char *destination_id;
  char *namespace_;
  Extensions__CoreApi__CastChannel__CastMessage__PayloadType payload_type;
  char *payload_utf8;
  protobuf_c_boolean has_payload_binary;
  ProtobufCBinaryData payload_binary;
};
#define EXTENSIONS__CORE_API__CAST_CHANNEL__CAST_MESSAGE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&extensions__core_api__cast_channel__cast_message__descriptor) \
    , 0, NULL, NULL, NULL, 0, NULL, 0,{0,NULL} }


struct  _Extensions__CoreApi__CastChannel__AuthChallenge
{
  ProtobufCMessage base;
  protobuf_c_boolean has_signature_algorithm;
  Extensions__CoreApi__CastChannel__SignatureAlgorithm signature_algorithm;
};
#define EXTENSIONS__CORE_API__CAST_CHANNEL__AUTH_CHALLENGE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&extensions__core_api__cast_channel__auth_challenge__descriptor) \
    , 0,EXTENSIONS__CORE_API__CAST_CHANNEL__SIGNATURE_ALGORITHM__RSASSA_PKCS1V15 }


struct  _Extensions__CoreApi__CastChannel__AuthResponse
{
  ProtobufCMessage base;
  ProtobufCBinaryData signature;
  ProtobufCBinaryData client_auth_certificate;
  size_t n_intermediate_certificate;
  ProtobufCBinaryData *intermediate_certificate;
  protobuf_c_boolean has_signature_algorithm;
  Extensions__CoreApi__CastChannel__SignatureAlgorithm signature_algorithm;
};
#define EXTENSIONS__CORE_API__CAST_CHANNEL__AUTH_RESPONSE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&extensions__core_api__cast_channel__auth_response__descriptor) \
    , {0,NULL}, {0,NULL}, 0,NULL, 0,EXTENSIONS__CORE_API__CAST_CHANNEL__SIGNATURE_ALGORITHM__RSASSA_PKCS1V15 }


struct  _Extensions__CoreApi__CastChannel__AuthError
{
  ProtobufCMessage base;
  Extensions__CoreApi__CastChannel__AuthError__ErrorType error_type;
};
#define EXTENSIONS__CORE_API__CAST_CHANNEL__AUTH_ERROR__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&extensions__core_api__cast_channel__auth_error__descriptor) \
    , 0 }


struct  _Extensions__CoreApi__CastChannel__DeviceAuthMessage
{
  ProtobufCMessage base;
  Extensions__CoreApi__CastChannel__AuthChallenge *challenge;
  Extensions__CoreApi__CastChannel__AuthResponse *response;
  Extensions__CoreApi__CastChannel__AuthError *error;
};
#define EXTENSIONS__CORE_API__CAST_CHANNEL__DEVICE_AUTH_MESSAGE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&extensions__core_api__cast_channel__device_auth_message__descriptor) \
    , NULL, NULL, NULL }


/* Extensions__CoreApi__CastChannel__CastMessage methods */
void   extensions__core_api__cast_channel__cast_message__init
                     (Extensions__CoreApi__CastChannel__CastMessage         *message);
size_t extensions__core_api__cast_channel__cast_message__get_packed_size
                     (const Extensions__CoreApi__CastChannel__CastMessage   *message);
size_t extensions__core_api__cast_channel__cast_message__pack
                     (const Extensions__CoreApi__CastChannel__CastMessage   *message,
                      uint8_t             *out);
size_t extensions__core_api__cast_channel__cast_message__pack_to_buffer
                     (const Extensions__CoreApi__CastChannel__CastMessage   *message,
                      ProtobufCBuffer     *buffer);
Extensions__CoreApi__CastChannel__CastMessage *
       extensions__core_api__cast_channel__cast_message__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   extensions__core_api__cast_channel__cast_message__free_unpacked
                     (Extensions__CoreApi__CastChannel__CastMessage *message,
                      ProtobufCAllocator *allocator);
/* Extensions__CoreApi__CastChannel__AuthChallenge methods */
void   extensions__core_api__cast_channel__auth_challenge__init
                     (Extensions__CoreApi__CastChannel__AuthChallenge         *message);
size_t extensions__core_api__cast_channel__auth_challenge__get_packed_size
                     (const Extensions__CoreApi__CastChannel__AuthChallenge   *message);
size_t extensions__core_api__cast_channel__auth_challenge__pack
                     (const Extensions__CoreApi__CastChannel__AuthChallenge   *message,
                      uint8_t             *out);
size_t extensions__core_api__cast_channel__auth_challenge__pack_to_buffer
                     (const Extensions__CoreApi__CastChannel__AuthChallenge   *message,
                      ProtobufCBuffer     *buffer);
Extensions__CoreApi__CastChannel__AuthChallenge *
       extensions__core_api__cast_channel__auth_challenge__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   extensions__core_api__cast_channel__auth_challenge__free_unpacked
                     (Extensions__CoreApi__CastChannel__AuthChallenge *message,
                      ProtobufCAllocator *allocator);
/* Extensions__CoreApi__CastChannel__AuthResponse methods */
void   extensions__core_api__cast_channel__auth_response__init
                     (Extensions__CoreApi__CastChannel__AuthResponse         *message);
size_t extensions__core_api__cast_channel__auth_response__get_packed_size
                     (const Extensions__CoreApi__CastChannel__AuthResponse   *message);
size_t extensions__core_api__cast_channel__auth_response__pack
                     (const Extensions__CoreApi__CastChannel__AuthResponse   *message,
                      uint8_t             *out);
size_t extensions__core_api__cast_channel__auth_response__pack_to_buffer
                     (const Extensions__CoreApi__CastChannel__AuthResponse   *message,
                      ProtobufCBuffer     *buffer);
Extensions__CoreApi__CastChannel__AuthResponse *
       extensions__core_api__cast_channel__auth_response__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   extensions__core_api__cast_channel__auth_response__free_unpacked
                     (Extensions__CoreApi__CastChannel__AuthResponse *message,
                      ProtobufCAllocator *allocator);
/* Extensions__CoreApi__CastChannel__AuthError methods */
void   extensions__core_api__cast_channel__auth_error__init
                     (Extensions__CoreApi__CastChannel__AuthError         *message);
size_t extensions__core_api__cast_channel__auth_error__get_packed_size
                     (const Extensions__CoreApi__CastChannel__AuthError   *message);
size_t extensions__core_api__cast_channel__auth_error__pack
                     (const Extensions__CoreApi__CastChannel__AuthError   *message,
                      uint8_t             *out);
size_t extensions__core_api__cast_channel__auth_error__pack_to_buffer
                     (const Extensions__CoreApi__CastChannel__AuthError   *message,
                      ProtobufCBuffer     *buffer);
Extensions__CoreApi__CastChannel__AuthError *
       extensions__core_api__cast_channel__auth_error__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   extensions__core_api__cast_channel__auth_error__free_unpacked
                     (Extensions__CoreApi__CastChannel__AuthError *message,
                      ProtobufCAllocator *allocator);
/* Extensions__CoreApi__CastChannel__DeviceAuthMessage methods */
void   extensions__core_api__cast_channel__device_auth_message__init
                     (Extensions__CoreApi__CastChannel__DeviceAuthMessage         *message);
size_t extensions__core_api__cast_channel__device_auth_message__get_packed_size
                     (const Extensions__CoreApi__CastChannel__DeviceAuthMessage   *message);
size_t extensions__core_api__cast_channel__device_auth_message__pack
                     (const Extensions__CoreApi__CastChannel__DeviceAuthMessage   *message,
                      uint8_t             *out);
size_t extensions__core_api__cast_channel__device_auth_message__pack_to_buffer
                     (const Extensions__CoreApi__CastChannel__DeviceAuthMessage   *message,
                      ProtobufCBuffer     *buffer);
Extensions__CoreApi__CastChannel__DeviceAuthMessage *
       extensions__core_api__cast_channel__device_auth_message__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   extensions__core_api__cast_channel__device_auth_message__free_unpacked
                     (Extensions__CoreApi__CastChannel__DeviceAuthMessage *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Extensions__CoreApi__CastChannel__CastMessage_Closure)
                 (const Extensions__CoreApi__CastChannel__CastMessage *message,
                  void *closure_data);
typedef void (*Extensions__CoreApi__CastChannel__AuthChallenge_Closure)
                 (const Extensions__CoreApi__CastChannel__AuthChallenge *message,
                  void *closure_data);
typedef void (*Extensions__CoreApi__CastChannel__AuthResponse_Closure)
                 (const Extensions__CoreApi__CastChannel__AuthResponse *message,
                  void *closure_data);
typedef void (*Extensions__CoreApi__CastChannel__AuthError_Closure)
                 (const Extensions__CoreApi__CastChannel__AuthError *message,
                  void *closure_data);
typedef void (*Extensions__CoreApi__CastChannel__DeviceAuthMessage_Closure)
                 (const Extensions__CoreApi__CastChannel__DeviceAuthMessage *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCEnumDescriptor    extensions__core_api__cast_channel__signature_algorithm__descriptor;
extern const ProtobufCMessageDescriptor extensions__core_api__cast_channel__cast_message__descriptor;
extern const ProtobufCEnumDescriptor    extensions__core_api__cast_channel__cast_message__protocol_version__descriptor;
extern const ProtobufCEnumDescriptor    extensions__core_api__cast_channel__cast_message__payload_type__descriptor;
extern const ProtobufCMessageDescriptor extensions__core_api__cast_channel__auth_challenge__descriptor;
extern const ProtobufCMessageDescriptor extensions__core_api__cast_channel__auth_response__descriptor;
extern const ProtobufCMessageDescriptor extensions__core_api__cast_channel__auth_error__descriptor;
extern const ProtobufCEnumDescriptor    extensions__core_api__cast_channel__auth_error__error_type__descriptor;
extern const ProtobufCMessageDescriptor extensions__core_api__cast_channel__device_auth_message__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_cast_5fchannel_2eproto__INCLUDED */
