/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: opentelemetry/proto/collector/profiles/v1development/profiles_service.proto */

#ifndef PROTOBUF_C_opentelemetry_2fproto_2fcollector_2fprofiles_2fv1development_2fprofiles_5fservice_2eproto__INCLUDED
#define PROTOBUF_C_opentelemetry_2fproto_2fcollector_2fprofiles_2fv1development_2fprofiles_5fservice_2eproto__INCLUDED

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

PROTOBUF_C__BEGIN_DECLS

#if PROTOBUF_C_VERSION_NUMBER < 1003000
# error This file was generated by a newer version of protobuf-c which is incompatible with your libprotobuf-c headers. Please update your headers.
#elif 1005002 < PROTOBUF_C_MIN_COMPILER_VERSION
# error This file was generated by an older version of protobuf-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protobuf-c.
#endif

#include "opentelemetry/proto/profiles/v1development/profiles.pb-c.h"

typedef struct Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceRequest Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceRequest;
typedef struct Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceResponse Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceResponse;
typedef struct Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesPartialSuccess Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesPartialSuccess;


/* --- enums --- */


/* --- messages --- */

struct  Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceRequest
{
  ProtobufCMessage base;
  /*
   * An array of ResourceProfiles.
   * For data coming from a single resource this array will typically contain one
   * element. Intermediary nodes (such as OpenTelemetry Collector) that receive
   * data from multiple origins typically batch the data before forwarding further and
   * in that case this array will contain multiple elements.
   */
  size_t n_resource_profiles;
  Opentelemetry__Proto__Profiles__V1development__ResourceProfiles **resource_profiles;
  /*
   * The reference table containing all data shared by profiles across the message being sent.
   */
  Opentelemetry__Proto__Profiles__V1development__ProfilesDictionary *dictionary;
};
#define OPENTELEMETRY__PROTO__COLLECTOR__PROFILES__V1DEVELOPMENT__EXPORT_PROFILES_SERVICE_REQUEST__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&opentelemetry__proto__collector__profiles__v1development__export_profiles_service_request__descriptor) \
, 0,NULL, NULL }


struct  Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceResponse
{
  ProtobufCMessage base;
  /*
   * The details of a partially successful export request.
   * If the request is only partially accepted
   * (i.e. when the server accepts only parts of the data and rejects the rest)
   * the server MUST initialize the `partial_success` field and MUST
   * set the `rejected_<signal>` with the number of items it rejected.
   * Servers MAY also make use of the `partial_success` field to convey
   * warnings/suggestions to senders even when the request was fully accepted.
   * In such cases, the `rejected_<signal>` MUST have a value of `0` and
   * the `error_message` MUST be non-empty.
   * A `partial_success` message with an empty value (rejected_<signal> = 0 and
   * `error_message` = "") is equivalent to it not being set/present. Senders
   * SHOULD interpret it the same way as in the full success case.
   */
  Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesPartialSuccess *partial_success;
};
#define OPENTELEMETRY__PROTO__COLLECTOR__PROFILES__V1DEVELOPMENT__EXPORT_PROFILES_SERVICE_RESPONSE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&opentelemetry__proto__collector__profiles__v1development__export_profiles_service_response__descriptor) \
, NULL }


struct  Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesPartialSuccess
{
  ProtobufCMessage base;
  /*
   * The number of rejected profiles.
   * A `rejected_<signal>` field holding a `0` value indicates that the
   * request was fully accepted.
   */
  int64_t rejected_profiles;
  /*
   * A developer-facing human-readable message in English. It should be used
   * either to explain why the server rejected parts of the data during a partial
   * success or to convey warnings/suggestions during a full success. The message
   * should offer guidance on how users can address such issues.
   * error_message is an optional field. An error_message with an empty value
   * is equivalent to it not being set.
   */
  char *error_message;
};
#define OPENTELEMETRY__PROTO__COLLECTOR__PROFILES__V1DEVELOPMENT__EXPORT_PROFILES_PARTIAL_SUCCESS__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&opentelemetry__proto__collector__profiles__v1development__export_profiles_partial_success__descriptor) \
, 0, (char *)protobuf_c_empty_string }


/* Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceRequest methods */
void   opentelemetry__proto__collector__profiles__v1development__export_profiles_service_request__init
                     (Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceRequest         *message);
size_t opentelemetry__proto__collector__profiles__v1development__export_profiles_service_request__get_packed_size
                     (const Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceRequest   *message);
size_t opentelemetry__proto__collector__profiles__v1development__export_profiles_service_request__pack
                     (const Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceRequest   *message,
                      uint8_t             *out);
size_t opentelemetry__proto__collector__profiles__v1development__export_profiles_service_request__pack_to_buffer
                     (const Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceRequest   *message,
                      ProtobufCBuffer     *buffer);
Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceRequest *
       opentelemetry__proto__collector__profiles__v1development__export_profiles_service_request__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   opentelemetry__proto__collector__profiles__v1development__export_profiles_service_request__free_unpacked
                     (Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceRequest *message,
                      ProtobufCAllocator *allocator);
/* Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceResponse methods */
void   opentelemetry__proto__collector__profiles__v1development__export_profiles_service_response__init
                     (Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceResponse         *message);
size_t opentelemetry__proto__collector__profiles__v1development__export_profiles_service_response__get_packed_size
                     (const Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceResponse   *message);
size_t opentelemetry__proto__collector__profiles__v1development__export_profiles_service_response__pack
                     (const Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceResponse   *message,
                      uint8_t             *out);
size_t opentelemetry__proto__collector__profiles__v1development__export_profiles_service_response__pack_to_buffer
                     (const Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceResponse   *message,
                      ProtobufCBuffer     *buffer);
Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceResponse *
       opentelemetry__proto__collector__profiles__v1development__export_profiles_service_response__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   opentelemetry__proto__collector__profiles__v1development__export_profiles_service_response__free_unpacked
                     (Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceResponse *message,
                      ProtobufCAllocator *allocator);
/* Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesPartialSuccess methods */
void   opentelemetry__proto__collector__profiles__v1development__export_profiles_partial_success__init
                     (Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesPartialSuccess         *message);
size_t opentelemetry__proto__collector__profiles__v1development__export_profiles_partial_success__get_packed_size
                     (const Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesPartialSuccess   *message);
size_t opentelemetry__proto__collector__profiles__v1development__export_profiles_partial_success__pack
                     (const Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesPartialSuccess   *message,
                      uint8_t             *out);
size_t opentelemetry__proto__collector__profiles__v1development__export_profiles_partial_success__pack_to_buffer
                     (const Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesPartialSuccess   *message,
                      ProtobufCBuffer     *buffer);
Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesPartialSuccess *
       opentelemetry__proto__collector__profiles__v1development__export_profiles_partial_success__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   opentelemetry__proto__collector__profiles__v1development__export_profiles_partial_success__free_unpacked
                     (Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesPartialSuccess *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceRequest_Closure)
                 (const Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceRequest *message,
                  void *closure_data);
typedef void (*Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceResponse_Closure)
                 (const Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceResponse *message,
                  void *closure_data);
typedef void (*Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesPartialSuccess_Closure)
                 (const Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesPartialSuccess *message,
                  void *closure_data);

/* --- services --- */

typedef struct Opentelemetry__Proto__Collector__Profiles__V1development__ProfilesService_Service Opentelemetry__Proto__Collector__Profiles__V1development__ProfilesService_Service;
struct Opentelemetry__Proto__Collector__Profiles__V1development__ProfilesService_Service
{
  ProtobufCService base;
  void (*export)(Opentelemetry__Proto__Collector__Profiles__V1development__ProfilesService_Service *service,
                 const Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceRequest *input,
                 Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceResponse_Closure closure,
                 void *closure_data);
};
typedef void (*Opentelemetry__Proto__Collector__Profiles__V1development__ProfilesService_ServiceDestroy)(Opentelemetry__Proto__Collector__Profiles__V1development__ProfilesService_Service *);
void opentelemetry__proto__collector__profiles__v1development__profiles_service__init (Opentelemetry__Proto__Collector__Profiles__V1development__ProfilesService_Service *service,
                                                                                       Opentelemetry__Proto__Collector__Profiles__V1development__ProfilesService_ServiceDestroy destroy);
#define OPENTELEMETRY__PROTO__COLLECTOR__PROFILES__V1DEVELOPMENT__PROFILES_SERVICE__BASE_INIT \
    { &opentelemetry__proto__collector__profiles__v1development__profiles_service__descriptor, protobuf_c_service_invoke_internal, NULL }
#define OPENTELEMETRY__PROTO__COLLECTOR__PROFILES__V1DEVELOPMENT__PROFILES_SERVICE__INIT(function_prefix__) \
    { OPENTELEMETRY__PROTO__COLLECTOR__PROFILES__V1DEVELOPMENT__PROFILES_SERVICE__BASE_INIT,\
      function_prefix__ ## export  }
void opentelemetry__proto__collector__profiles__v1development__profiles_service__export(ProtobufCService *service,
                                                                                        const Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceRequest *input,
                                                                                        Opentelemetry__Proto__Collector__Profiles__V1development__ExportProfilesServiceResponse_Closure closure,
                                                                                        void *closure_data);

/* --- descriptors --- */

extern const ProtobufCMessageDescriptor opentelemetry__proto__collector__profiles__v1development__export_profiles_service_request__descriptor;
extern const ProtobufCMessageDescriptor opentelemetry__proto__collector__profiles__v1development__export_profiles_service_response__descriptor;
extern const ProtobufCMessageDescriptor opentelemetry__proto__collector__profiles__v1development__export_profiles_partial_success__descriptor;
extern const ProtobufCServiceDescriptor opentelemetry__proto__collector__profiles__v1development__profiles_service__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_opentelemetry_2fproto_2fcollector_2fprofiles_2fv1development_2fprofiles_5fservice_2eproto__INCLUDED */
