/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: data/google-migration.proto */

#ifndef PROTOBUF_C_data_2fgoogle_2dmigration_2eproto__INCLUDED
#define PROTOBUF_C_data_2fgoogle_2dmigration_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 1004000 < 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 MigrationPayload MigrationPayload;
typedef struct MigrationPayload__OtpParameters MigrationPayload__OtpParameters;


/* --- enums --- */

typedef enum _MigrationPayload__Algorithm {
  MIGRATION_PAYLOAD__ALGORITHM__ALGORITHM_UNSPECIFIED = 0,
  MIGRATION_PAYLOAD__ALGORITHM__ALGORITHM_SHA1 = 1,
  MIGRATION_PAYLOAD__ALGORITHM__ALGORITHM_SHA256 = 2,
  MIGRATION_PAYLOAD__ALGORITHM__ALGORITHM_SHA512 = 3,
  MIGRATION_PAYLOAD__ALGORITHM__ALGORITHM_MD5 = 4
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(MIGRATION_PAYLOAD__ALGORITHM)
} MigrationPayload__Algorithm;
typedef enum _MigrationPayload__DigitCount {
  MIGRATION_PAYLOAD__DIGIT_COUNT__DIGIT_COUNT_UNSPECIFIED = 0,
  MIGRATION_PAYLOAD__DIGIT_COUNT__DIGIT_COUNT_SIX = 1,
  MIGRATION_PAYLOAD__DIGIT_COUNT__DIGIT_COUNT_EIGHT = 2
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(MIGRATION_PAYLOAD__DIGIT_COUNT)
} MigrationPayload__DigitCount;
typedef enum _MigrationPayload__OtpType {
  MIGRATION_PAYLOAD__OTP_TYPE__OTP_TYPE_UNSPECIFIED = 0,
  MIGRATION_PAYLOAD__OTP_TYPE__OTP_TYPE_HOTP = 1,
  MIGRATION_PAYLOAD__OTP_TYPE__OTP_TYPE_TOTP = 2
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(MIGRATION_PAYLOAD__OTP_TYPE)
} MigrationPayload__OtpType;

/* --- messages --- */

struct  MigrationPayload__OtpParameters
{
  ProtobufCMessage base;
  ProtobufCBinaryData secret;
  char *name;
  char *issuer;
  MigrationPayload__Algorithm algorithm;
  MigrationPayload__DigitCount digits;
  MigrationPayload__OtpType type;
  int64_t counter;
};
#define MIGRATION_PAYLOAD__OTP_PARAMETERS__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&migration_payload__otp_parameters__descriptor) \
    , {0,NULL}, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, MIGRATION_PAYLOAD__ALGORITHM__ALGORITHM_UNSPECIFIED, MIGRATION_PAYLOAD__DIGIT_COUNT__DIGIT_COUNT_UNSPECIFIED, MIGRATION_PAYLOAD__OTP_TYPE__OTP_TYPE_UNSPECIFIED, 0 }


struct  MigrationPayload
{
  ProtobufCMessage base;
  size_t n_otp_parameters;
  MigrationPayload__OtpParameters **otp_parameters;
  int32_t version;
  int32_t batch_size;
  int32_t batch_index;
  int32_t batch_id;
};
#define MIGRATION_PAYLOAD__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&migration_payload__descriptor) \
    , 0,NULL, 0, 0, 0, 0 }


/* MigrationPayload__OtpParameters methods */
void   migration_payload__otp_parameters__init
                     (MigrationPayload__OtpParameters         *message);
/* MigrationPayload methods */
void   migration_payload__init
                     (MigrationPayload         *message);
size_t migration_payload__get_packed_size
                     (const MigrationPayload   *message);
size_t migration_payload__pack
                     (const MigrationPayload   *message,
                      uint8_t             *out);
size_t migration_payload__pack_to_buffer
                     (const MigrationPayload   *message,
                      ProtobufCBuffer     *buffer);
MigrationPayload *
       migration_payload__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   migration_payload__free_unpacked
                     (MigrationPayload *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*MigrationPayload__OtpParameters_Closure)
                 (const MigrationPayload__OtpParameters *message,
                  void *closure_data);
typedef void (*MigrationPayload_Closure)
                 (const MigrationPayload *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCMessageDescriptor migration_payload__descriptor;
extern const ProtobufCMessageDescriptor migration_payload__otp_parameters__descriptor;
extern const ProtobufCEnumDescriptor    migration_payload__algorithm__descriptor;
extern const ProtobufCEnumDescriptor    migration_payload__digit_count__descriptor;
extern const ProtobufCEnumDescriptor    migration_payload__otp_type__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_data_2fgoogle_2dmigration_2eproto__INCLUDED */
