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

#ifndef PROTOBUF_C_ota_5fmanifest_2eproto__INCLUDED
#define PROTOBUF_C_ota_5fmanifest_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 protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
#elif 1005000 < 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 Logi__Device__Proto__GetManifestBodyRequest Logi__Device__Proto__GetManifestBodyRequest;
typedef struct Logi__Device__Proto__GetManifestBodyResponse Logi__Device__Proto__GetManifestBodyResponse;


/* --- enums --- */


/* --- messages --- */

/*
 **
 * Request device to create a GetManifestv2 body.  See
 * https://docs.google.com/document/d/1l31A1TWhtJC0xR8GwuNtiGN4vPLURRsj5ZcC1uEIwVQ/edit#heading=h.ctbthi1iyxw1
 * This is to be included in UsbMsg
 * EXPECTED RESPONSE
 * GetManifestBodyResponse
 */
struct  Logi__Device__Proto__GetManifestBodyRequest
{
  ProtobufCMessage base;
  /*
   **
   * The attestation challenge.
   * (REQUIRED)
   */
  char *challenge;
  /*
   **
   * The manifest version.
   * (REQUIRED)
   */
  char *version;
  /*
   **
   * The channel.  Dont use if empty or null
   * (OPTIONAL)
   */
  char *channel;
  /*
   **
   * The meta info in json format.  This
   * field usually comes from PC.
   * (OPTIONAL)
   */
  char *meta_info;
  /*
   **
   * Time to live
   * (REQUIRED)
   */
  int32_t ttl;
  /*
   **
   * Serial number of attached device
   * (OPTIONAL)
   */
  char *serial_number;
  /*
   **
   * target version
   * (OPTIONAL)
   */
  char *target_version;
};
#define LOGI__DEVICE__PROTO__GET_MANIFEST_BODY_REQUEST__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&logi__device__proto__get_manifest_body_request__descriptor) \
, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string }


/*
 **
 * GetManifestv2 body response
 */
struct  Logi__Device__Proto__GetManifestBodyResponse
{
  ProtobufCMessage base;
  /*
   **
   * The get manifest body.  This is a json string
   */
  char *body;
  /*
   **
   * The get manifest body signature.
   */
  char *signature;
  /*
   **
   * Serial number of attached device
   * (OPTIONAL)
   */
  char *serial_number;
};
#define LOGI__DEVICE__PROTO__GET_MANIFEST_BODY_RESPONSE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&logi__device__proto__get_manifest_body_response__descriptor) \
, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string }


/* Logi__Device__Proto__GetManifestBodyRequest methods */
void   logi__device__proto__get_manifest_body_request__init
                     (Logi__Device__Proto__GetManifestBodyRequest         *message);
size_t logi__device__proto__get_manifest_body_request__get_packed_size
                     (const Logi__Device__Proto__GetManifestBodyRequest   *message);
size_t logi__device__proto__get_manifest_body_request__pack
                     (const Logi__Device__Proto__GetManifestBodyRequest   *message,
                      uint8_t             *out);
size_t logi__device__proto__get_manifest_body_request__pack_to_buffer
                     (const Logi__Device__Proto__GetManifestBodyRequest   *message,
                      ProtobufCBuffer     *buffer);
Logi__Device__Proto__GetManifestBodyRequest *
       logi__device__proto__get_manifest_body_request__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   logi__device__proto__get_manifest_body_request__free_unpacked
                     (Logi__Device__Proto__GetManifestBodyRequest *message,
                      ProtobufCAllocator *allocator);
/* Logi__Device__Proto__GetManifestBodyResponse methods */
void   logi__device__proto__get_manifest_body_response__init
                     (Logi__Device__Proto__GetManifestBodyResponse         *message);
size_t logi__device__proto__get_manifest_body_response__get_packed_size
                     (const Logi__Device__Proto__GetManifestBodyResponse   *message);
size_t logi__device__proto__get_manifest_body_response__pack
                     (const Logi__Device__Proto__GetManifestBodyResponse   *message,
                      uint8_t             *out);
size_t logi__device__proto__get_manifest_body_response__pack_to_buffer
                     (const Logi__Device__Proto__GetManifestBodyResponse   *message,
                      ProtobufCBuffer     *buffer);
Logi__Device__Proto__GetManifestBodyResponse *
       logi__device__proto__get_manifest_body_response__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   logi__device__proto__get_manifest_body_response__free_unpacked
                     (Logi__Device__Proto__GetManifestBodyResponse *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Logi__Device__Proto__GetManifestBodyRequest_Closure)
                 (const Logi__Device__Proto__GetManifestBodyRequest *message,
                  void *closure_data);
typedef void (*Logi__Device__Proto__GetManifestBodyResponse_Closure)
                 (const Logi__Device__Proto__GetManifestBodyResponse *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCMessageDescriptor logi__device__proto__get_manifest_body_request__descriptor;
extern const ProtobufCMessageDescriptor logi__device__proto__get_manifest_body_response__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_ota_5fmanifest_2eproto__INCLUDED */
