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

#ifndef PROTOBUF_C_peer_2fconfiguration_2eproto__INCLUDED
#define PROTOBUF_C_peer_2fconfiguration_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 1002001 < 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 _Protos__AnchorPeers Protos__AnchorPeers;
typedef struct _Protos__AnchorPeer Protos__AnchorPeer;
typedef struct _Protos__APIResource Protos__APIResource;
typedef struct _Protos__ACLs Protos__ACLs;
typedef struct _Protos__ACLs__AclsEntry Protos__ACLs__AclsEntry;


/* --- enums --- */


/* --- messages --- */

/*
 * AnchorPeers simply represents list of anchor peers which is used in ConfigurationItem
 */
struct  _Protos__AnchorPeers
{
  ProtobufCMessage base;
  size_t n_anchor_peers;
  Protos__AnchorPeer **anchor_peers;
};
#define PROTOS__ANCHOR_PEERS__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&protos__anchor_peers__descriptor) \
    , 0,NULL }


/*
 * AnchorPeer message structure which provides information about anchor peer, it includes host name,
 * port number and peer certificate.
 */
struct  _Protos__AnchorPeer
{
  ProtobufCMessage base;
  /*
   * DNS host name of the anchor peer
   */
  char *host;
  /*
   * The port number
   */
  protobuf_c_boolean has_port;
  int32_t port;
};
#define PROTOS__ANCHOR_PEER__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&protos__anchor_peer__descriptor) \
    , NULL, 0,0 }


/*
 * APIResource represents an API resource in the peer whose ACL
 * is determined by the policy_ref field
 */
struct  _Protos__APIResource
{
  ProtobufCMessage base;
  /*
   * The policy name to use for this API
   */
  char *policy_ref;
};
#define PROTOS__APIRESOURCE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&protos__apiresource__descriptor) \
    , NULL }


struct  _Protos__ACLs__AclsEntry
{
  ProtobufCMessage base;
  char *key;
  Protos__APIResource *value;
};
#define PROTOS__ACLS__ACLS_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&protos__acls__acls_entry__descriptor) \
    , NULL, NULL }


/*
 * ACLs provides mappings for resources in a channel. APIResource encapsulates
 * reference to a policy used to determine ACL for the resource
 */
struct  _Protos__ACLs
{
  ProtobufCMessage base;
  size_t n_acls;
  Protos__ACLs__AclsEntry **acls;
};
#define PROTOS__ACLS__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&protos__acls__descriptor) \
    , 0,NULL }


/* Protos__AnchorPeers methods */
void   protos__anchor_peers__init
                     (Protos__AnchorPeers         *message);
size_t protos__anchor_peers__get_packed_size
                     (const Protos__AnchorPeers   *message);
size_t protos__anchor_peers__pack
                     (const Protos__AnchorPeers   *message,
                      uint8_t             *out);
size_t protos__anchor_peers__pack_to_buffer
                     (const Protos__AnchorPeers   *message,
                      ProtobufCBuffer     *buffer);
Protos__AnchorPeers *
       protos__anchor_peers__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   protos__anchor_peers__free_unpacked
                     (Protos__AnchorPeers *message,
                      ProtobufCAllocator *allocator);
/* Protos__AnchorPeer methods */
void   protos__anchor_peer__init
                     (Protos__AnchorPeer         *message);
size_t protos__anchor_peer__get_packed_size
                     (const Protos__AnchorPeer   *message);
size_t protos__anchor_peer__pack
                     (const Protos__AnchorPeer   *message,
                      uint8_t             *out);
size_t protos__anchor_peer__pack_to_buffer
                     (const Protos__AnchorPeer   *message,
                      ProtobufCBuffer     *buffer);
Protos__AnchorPeer *
       protos__anchor_peer__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   protos__anchor_peer__free_unpacked
                     (Protos__AnchorPeer *message,
                      ProtobufCAllocator *allocator);
/* Protos__APIResource methods */
void   protos__apiresource__init
                     (Protos__APIResource         *message);
size_t protos__apiresource__get_packed_size
                     (const Protos__APIResource   *message);
size_t protos__apiresource__pack
                     (const Protos__APIResource   *message,
                      uint8_t             *out);
size_t protos__apiresource__pack_to_buffer
                     (const Protos__APIResource   *message,
                      ProtobufCBuffer     *buffer);
Protos__APIResource *
       protos__apiresource__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   protos__apiresource__free_unpacked
                     (Protos__APIResource *message,
                      ProtobufCAllocator *allocator);
/* Protos__ACLs__AclsEntry methods */
void   protos__acls__acls_entry__init
                     (Protos__ACLs__AclsEntry         *message);
/* Protos__ACLs methods */
void   protos__acls__init
                     (Protos__ACLs         *message);
size_t protos__acls__get_packed_size
                     (const Protos__ACLs   *message);
size_t protos__acls__pack
                     (const Protos__ACLs   *message,
                      uint8_t             *out);
size_t protos__acls__pack_to_buffer
                     (const Protos__ACLs   *message,
                      ProtobufCBuffer     *buffer);
Protos__ACLs *
       protos__acls__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   protos__acls__free_unpacked
                     (Protos__ACLs *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Protos__AnchorPeers_Closure)
                 (const Protos__AnchorPeers *message,
                  void *closure_data);
typedef void (*Protos__AnchorPeer_Closure)
                 (const Protos__AnchorPeer *message,
                  void *closure_data);
typedef void (*Protos__APIResource_Closure)
                 (const Protos__APIResource *message,
                  void *closure_data);
typedef void (*Protos__ACLs__AclsEntry_Closure)
                 (const Protos__ACLs__AclsEntry *message,
                  void *closure_data);
typedef void (*Protos__ACLs_Closure)
                 (const Protos__ACLs *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCMessageDescriptor protos__anchor_peers__descriptor;
extern const ProtobufCMessageDescriptor protos__anchor_peer__descriptor;
extern const ProtobufCMessageDescriptor protos__apiresource__descriptor;
extern const ProtobufCMessageDescriptor protos__acls__descriptor;
extern const ProtobufCMessageDescriptor protos__acls__acls_entry__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_peer_2fconfiguration_2eproto__INCLUDED */
