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

#ifndef PROTOBUF_C_login5_2eproto__INCLUDED
#define PROTOBUF_C_login5_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 1004001 < 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

#include "login5_client_info.pb-c.h"
#include "login5_user_info.pb-c.h"
#include "login5_challenges_code.pb-c.h"
#include "login5_challenges_hashcash.pb-c.h"
#include "login5_credentials.pb-c.h"
#include "login5_identifiers.pb-c.h"

typedef struct Spotify__Login5__V3__Challenges Spotify__Login5__V3__Challenges;
typedef struct Spotify__Login5__V3__Challenge Spotify__Login5__V3__Challenge;
typedef struct Spotify__Login5__V3__ChallengeSolutions Spotify__Login5__V3__ChallengeSolutions;
typedef struct Spotify__Login5__V3__ChallengeSolution Spotify__Login5__V3__ChallengeSolution;
typedef struct Spotify__Login5__V3__LoginRequest Spotify__Login5__V3__LoginRequest;
typedef struct Spotify__Login5__V3__LoginOk Spotify__Login5__V3__LoginOk;
typedef struct Spotify__Login5__V3__LoginResponse Spotify__Login5__V3__LoginResponse;


/* --- enums --- */

typedef enum _Spotify__Login5__V3__LoginResponse__Warnings {
  SPOTIFY__LOGIN5__V3__LOGIN_RESPONSE__WARNINGS__UNKNOWN_WARNING = 0,
  SPOTIFY__LOGIN5__V3__LOGIN_RESPONSE__WARNINGS__DEPRECATED_PROTOCOL_VERSION = 1
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__LOGIN5__V3__LOGIN_RESPONSE__WARNINGS)
} Spotify__Login5__V3__LoginResponse__Warnings;
typedef enum _Spotify__Login5__V3__LoginError {
  SPOTIFY__LOGIN5__V3__LOGIN_ERROR__UNKNOWN_ERROR = 0,
  SPOTIFY__LOGIN5__V3__LOGIN_ERROR__INVALID_CREDENTIALS = 1,
  SPOTIFY__LOGIN5__V3__LOGIN_ERROR__BAD_REQUEST = 2,
  SPOTIFY__LOGIN5__V3__LOGIN_ERROR__UNSUPPORTED_LOGIN_PROTOCOL = 3,
  SPOTIFY__LOGIN5__V3__LOGIN_ERROR__TIMEOUT = 4,
  SPOTIFY__LOGIN5__V3__LOGIN_ERROR__UNKNOWN_IDENTIFIER = 5,
  SPOTIFY__LOGIN5__V3__LOGIN_ERROR__TOO_MANY_ATTEMPTS = 6,
  SPOTIFY__LOGIN5__V3__LOGIN_ERROR__INVALID_PHONENUMBER = 7,
  SPOTIFY__LOGIN5__V3__LOGIN_ERROR__TRY_AGAIN_LATER = 8
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__LOGIN5__V3__LOGIN_ERROR)
} Spotify__Login5__V3__LoginError;

/* --- messages --- */

struct  Spotify__Login5__V3__Challenges
{
  ProtobufCMessage base;
  size_t n_challenges;
  Spotify__Login5__V3__Challenge **challenges;
};
#define SPOTIFY__LOGIN5__V3__CHALLENGES__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&spotify__login5__v3__challenges__descriptor) \
    , 0,NULL }


typedef enum {
  SPOTIFY__LOGIN5__V3__CHALLENGE__CHALLENGE__NOT_SET = 0,
  SPOTIFY__LOGIN5__V3__CHALLENGE__CHALLENGE_HASHCASH = 1,
  SPOTIFY__LOGIN5__V3__CHALLENGE__CHALLENGE_CODE = 2
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__LOGIN5__V3__CHALLENGE__CHALLENGE__CASE)
} Spotify__Login5__V3__Challenge__ChallengeCase;

struct  Spotify__Login5__V3__Challenge
{
  ProtobufCMessage base;
  Spotify__Login5__V3__Challenge__ChallengeCase challenge_case;
  union {
    Spotify__Login5__V3__Challenges__HashcashChallenge *hashcash;
    Spotify__Login5__V3__Challenges__CodeChallenge *code;
  };
};
#define SPOTIFY__LOGIN5__V3__CHALLENGE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&spotify__login5__v3__challenge__descriptor) \
    , SPOTIFY__LOGIN5__V3__CHALLENGE__CHALLENGE__NOT_SET, {0} }


struct  Spotify__Login5__V3__ChallengeSolutions
{
  ProtobufCMessage base;
  size_t n_solutions;
  Spotify__Login5__V3__ChallengeSolution **solutions;
};
#define SPOTIFY__LOGIN5__V3__CHALLENGE_SOLUTIONS__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&spotify__login5__v3__challenge_solutions__descriptor) \
    , 0,NULL }


typedef enum {
  SPOTIFY__LOGIN5__V3__CHALLENGE_SOLUTION__SOLUTION__NOT_SET = 0,
  SPOTIFY__LOGIN5__V3__CHALLENGE_SOLUTION__SOLUTION_HASHCASH = 1,
  SPOTIFY__LOGIN5__V3__CHALLENGE_SOLUTION__SOLUTION_CODE = 2
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__LOGIN5__V3__CHALLENGE_SOLUTION__SOLUTION__CASE)
} Spotify__Login5__V3__ChallengeSolution__SolutionCase;

struct  Spotify__Login5__V3__ChallengeSolution
{
  ProtobufCMessage base;
  Spotify__Login5__V3__ChallengeSolution__SolutionCase solution_case;
  union {
    Spotify__Login5__V3__Challenges__HashcashSolution *hashcash;
    Spotify__Login5__V3__Challenges__CodeSolution *code;
  };
};
#define SPOTIFY__LOGIN5__V3__CHALLENGE_SOLUTION__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&spotify__login5__v3__challenge_solution__descriptor) \
    , SPOTIFY__LOGIN5__V3__CHALLENGE_SOLUTION__SOLUTION__NOT_SET, {0} }


typedef enum {
  SPOTIFY__LOGIN5__V3__LOGIN_REQUEST__LOGIN_METHOD__NOT_SET = 0,
  SPOTIFY__LOGIN5__V3__LOGIN_REQUEST__LOGIN_METHOD_STORED_CREDENTIAL = 100,
  SPOTIFY__LOGIN5__V3__LOGIN_REQUEST__LOGIN_METHOD_PASSWORD = 101,
  SPOTIFY__LOGIN5__V3__LOGIN_REQUEST__LOGIN_METHOD_FACEBOOK_ACCESS_TOKEN = 102,
  SPOTIFY__LOGIN5__V3__LOGIN_REQUEST__LOGIN_METHOD_PHONE_NUMBER = 103,
  SPOTIFY__LOGIN5__V3__LOGIN_REQUEST__LOGIN_METHOD_ONE_TIME_TOKEN = 104,
  SPOTIFY__LOGIN5__V3__LOGIN_REQUEST__LOGIN_METHOD_PARENT_CHILD_CREDENTIAL = 105,
  SPOTIFY__LOGIN5__V3__LOGIN_REQUEST__LOGIN_METHOD_APPLE_SIGN_IN_CREDENTIAL = 106,
  SPOTIFY__LOGIN5__V3__LOGIN_REQUEST__LOGIN_METHOD_SAMSUNG_SIGN_IN_CREDENTIAL = 107,
  SPOTIFY__LOGIN5__V3__LOGIN_REQUEST__LOGIN_METHOD_GOOGLE_SIGN_IN_CREDENTIAL = 108
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__LOGIN5__V3__LOGIN_REQUEST__LOGIN_METHOD__CASE)
} Spotify__Login5__V3__LoginRequest__LoginMethodCase;

struct  Spotify__Login5__V3__LoginRequest
{
  ProtobufCMessage base;
  Spotify__Login5__V3__ClientInfo *client_info;
  ProtobufCBinaryData login_context;
  Spotify__Login5__V3__ChallengeSolutions *challenge_solutions;
  Spotify__Login5__V3__LoginRequest__LoginMethodCase login_method_case;
  union {
    Spotify__Login5__V3__Credentials__StoredCredential *stored_credential;
    Spotify__Login5__V3__Credentials__Password *password;
    Spotify__Login5__V3__Credentials__FacebookAccessToken *facebook_access_token;
    Spotify__Login5__V3__Identifiers__PhoneNumber *phone_number;
    Spotify__Login5__V3__Credentials__OneTimeToken *one_time_token;
    Spotify__Login5__V3__Credentials__ParentChildCredential *parent_child_credential;
    Spotify__Login5__V3__Credentials__AppleSignInCredential *apple_sign_in_credential;
    Spotify__Login5__V3__Credentials__SamsungSignInCredential *samsung_sign_in_credential;
    Spotify__Login5__V3__Credentials__GoogleSignInCredential *google_sign_in_credential;
  };
};
#define SPOTIFY__LOGIN5__V3__LOGIN_REQUEST__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&spotify__login5__v3__login_request__descriptor) \
    , NULL, {0,NULL}, NULL, SPOTIFY__LOGIN5__V3__LOGIN_REQUEST__LOGIN_METHOD__NOT_SET, {0} }


struct  Spotify__Login5__V3__LoginOk
{
  ProtobufCMessage base;
  char *username;
  char *access_token;
  ProtobufCBinaryData stored_credential;
  int32_t access_token_expires_in;
};
#define SPOTIFY__LOGIN5__V3__LOGIN_OK__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&spotify__login5__v3__login_ok__descriptor) \
    , (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, {0,NULL}, 0 }


typedef enum {
  SPOTIFY__LOGIN5__V3__LOGIN_RESPONSE__RESPONSE__NOT_SET = 0,
  SPOTIFY__LOGIN5__V3__LOGIN_RESPONSE__RESPONSE_OK = 1,
  SPOTIFY__LOGIN5__V3__LOGIN_RESPONSE__RESPONSE_ERROR = 2,
  SPOTIFY__LOGIN5__V3__LOGIN_RESPONSE__RESPONSE_CHALLENGES = 3
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(SPOTIFY__LOGIN5__V3__LOGIN_RESPONSE__RESPONSE__CASE)
} Spotify__Login5__V3__LoginResponse__ResponseCase;

struct  Spotify__Login5__V3__LoginResponse
{
  ProtobufCMessage base;
  size_t n_warnings;
  Spotify__Login5__V3__LoginResponse__Warnings *warnings;
  ProtobufCBinaryData login_context;
  char *identifier_token;
  Spotify__Login5__V3__UserInfo *user_info;
  Spotify__Login5__V3__LoginResponse__ResponseCase response_case;
  union {
    Spotify__Login5__V3__LoginOk *ok;
    Spotify__Login5__V3__LoginError error;
    Spotify__Login5__V3__Challenges *challenges;
  };
};
#define SPOTIFY__LOGIN5__V3__LOGIN_RESPONSE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&spotify__login5__v3__login_response__descriptor) \
    , 0,NULL, {0,NULL}, (char *)protobuf_c_empty_string, NULL, SPOTIFY__LOGIN5__V3__LOGIN_RESPONSE__RESPONSE__NOT_SET, {0} }


/* Spotify__Login5__V3__Challenges methods */
void   spotify__login5__v3__challenges__init
                     (Spotify__Login5__V3__Challenges         *message);
size_t spotify__login5__v3__challenges__get_packed_size
                     (const Spotify__Login5__V3__Challenges   *message);
size_t spotify__login5__v3__challenges__pack
                     (const Spotify__Login5__V3__Challenges   *message,
                      uint8_t             *out);
size_t spotify__login5__v3__challenges__pack_to_buffer
                     (const Spotify__Login5__V3__Challenges   *message,
                      ProtobufCBuffer     *buffer);
Spotify__Login5__V3__Challenges *
       spotify__login5__v3__challenges__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   spotify__login5__v3__challenges__free_unpacked
                     (Spotify__Login5__V3__Challenges *message,
                      ProtobufCAllocator *allocator);
/* Spotify__Login5__V3__Challenge methods */
void   spotify__login5__v3__challenge__init
                     (Spotify__Login5__V3__Challenge         *message);
size_t spotify__login5__v3__challenge__get_packed_size
                     (const Spotify__Login5__V3__Challenge   *message);
size_t spotify__login5__v3__challenge__pack
                     (const Spotify__Login5__V3__Challenge   *message,
                      uint8_t             *out);
size_t spotify__login5__v3__challenge__pack_to_buffer
                     (const Spotify__Login5__V3__Challenge   *message,
                      ProtobufCBuffer     *buffer);
Spotify__Login5__V3__Challenge *
       spotify__login5__v3__challenge__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   spotify__login5__v3__challenge__free_unpacked
                     (Spotify__Login5__V3__Challenge *message,
                      ProtobufCAllocator *allocator);
/* Spotify__Login5__V3__ChallengeSolutions methods */
void   spotify__login5__v3__challenge_solutions__init
                     (Spotify__Login5__V3__ChallengeSolutions         *message);
size_t spotify__login5__v3__challenge_solutions__get_packed_size
                     (const Spotify__Login5__V3__ChallengeSolutions   *message);
size_t spotify__login5__v3__challenge_solutions__pack
                     (const Spotify__Login5__V3__ChallengeSolutions   *message,
                      uint8_t             *out);
size_t spotify__login5__v3__challenge_solutions__pack_to_buffer
                     (const Spotify__Login5__V3__ChallengeSolutions   *message,
                      ProtobufCBuffer     *buffer);
Spotify__Login5__V3__ChallengeSolutions *
       spotify__login5__v3__challenge_solutions__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   spotify__login5__v3__challenge_solutions__free_unpacked
                     (Spotify__Login5__V3__ChallengeSolutions *message,
                      ProtobufCAllocator *allocator);
/* Spotify__Login5__V3__ChallengeSolution methods */
void   spotify__login5__v3__challenge_solution__init
                     (Spotify__Login5__V3__ChallengeSolution         *message);
size_t spotify__login5__v3__challenge_solution__get_packed_size
                     (const Spotify__Login5__V3__ChallengeSolution   *message);
size_t spotify__login5__v3__challenge_solution__pack
                     (const Spotify__Login5__V3__ChallengeSolution   *message,
                      uint8_t             *out);
size_t spotify__login5__v3__challenge_solution__pack_to_buffer
                     (const Spotify__Login5__V3__ChallengeSolution   *message,
                      ProtobufCBuffer     *buffer);
Spotify__Login5__V3__ChallengeSolution *
       spotify__login5__v3__challenge_solution__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   spotify__login5__v3__challenge_solution__free_unpacked
                     (Spotify__Login5__V3__ChallengeSolution *message,
                      ProtobufCAllocator *allocator);
/* Spotify__Login5__V3__LoginRequest methods */
void   spotify__login5__v3__login_request__init
                     (Spotify__Login5__V3__LoginRequest         *message);
size_t spotify__login5__v3__login_request__get_packed_size
                     (const Spotify__Login5__V3__LoginRequest   *message);
size_t spotify__login5__v3__login_request__pack
                     (const Spotify__Login5__V3__LoginRequest   *message,
                      uint8_t             *out);
size_t spotify__login5__v3__login_request__pack_to_buffer
                     (const Spotify__Login5__V3__LoginRequest   *message,
                      ProtobufCBuffer     *buffer);
Spotify__Login5__V3__LoginRequest *
       spotify__login5__v3__login_request__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   spotify__login5__v3__login_request__free_unpacked
                     (Spotify__Login5__V3__LoginRequest *message,
                      ProtobufCAllocator *allocator);
/* Spotify__Login5__V3__LoginOk methods */
void   spotify__login5__v3__login_ok__init
                     (Spotify__Login5__V3__LoginOk         *message);
size_t spotify__login5__v3__login_ok__get_packed_size
                     (const Spotify__Login5__V3__LoginOk   *message);
size_t spotify__login5__v3__login_ok__pack
                     (const Spotify__Login5__V3__LoginOk   *message,
                      uint8_t             *out);
size_t spotify__login5__v3__login_ok__pack_to_buffer
                     (const Spotify__Login5__V3__LoginOk   *message,
                      ProtobufCBuffer     *buffer);
Spotify__Login5__V3__LoginOk *
       spotify__login5__v3__login_ok__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   spotify__login5__v3__login_ok__free_unpacked
                     (Spotify__Login5__V3__LoginOk *message,
                      ProtobufCAllocator *allocator);
/* Spotify__Login5__V3__LoginResponse methods */
void   spotify__login5__v3__login_response__init
                     (Spotify__Login5__V3__LoginResponse         *message);
size_t spotify__login5__v3__login_response__get_packed_size
                     (const Spotify__Login5__V3__LoginResponse   *message);
size_t spotify__login5__v3__login_response__pack
                     (const Spotify__Login5__V3__LoginResponse   *message,
                      uint8_t             *out);
size_t spotify__login5__v3__login_response__pack_to_buffer
                     (const Spotify__Login5__V3__LoginResponse   *message,
                      ProtobufCBuffer     *buffer);
Spotify__Login5__V3__LoginResponse *
       spotify__login5__v3__login_response__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   spotify__login5__v3__login_response__free_unpacked
                     (Spotify__Login5__V3__LoginResponse *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Spotify__Login5__V3__Challenges_Closure)
                 (const Spotify__Login5__V3__Challenges *message,
                  void *closure_data);
typedef void (*Spotify__Login5__V3__Challenge_Closure)
                 (const Spotify__Login5__V3__Challenge *message,
                  void *closure_data);
typedef void (*Spotify__Login5__V3__ChallengeSolutions_Closure)
                 (const Spotify__Login5__V3__ChallengeSolutions *message,
                  void *closure_data);
typedef void (*Spotify__Login5__V3__ChallengeSolution_Closure)
                 (const Spotify__Login5__V3__ChallengeSolution *message,
                  void *closure_data);
typedef void (*Spotify__Login5__V3__LoginRequest_Closure)
                 (const Spotify__Login5__V3__LoginRequest *message,
                  void *closure_data);
typedef void (*Spotify__Login5__V3__LoginOk_Closure)
                 (const Spotify__Login5__V3__LoginOk *message,
                  void *closure_data);
typedef void (*Spotify__Login5__V3__LoginResponse_Closure)
                 (const Spotify__Login5__V3__LoginResponse *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCEnumDescriptor    spotify__login5__v3__login_error__descriptor;
extern const ProtobufCMessageDescriptor spotify__login5__v3__challenges__descriptor;
extern const ProtobufCMessageDescriptor spotify__login5__v3__challenge__descriptor;
extern const ProtobufCMessageDescriptor spotify__login5__v3__challenge_solutions__descriptor;
extern const ProtobufCMessageDescriptor spotify__login5__v3__challenge_solution__descriptor;
extern const ProtobufCMessageDescriptor spotify__login5__v3__login_request__descriptor;
extern const ProtobufCMessageDescriptor spotify__login5__v3__login_ok__descriptor;
extern const ProtobufCMessageDescriptor spotify__login5__v3__login_response__descriptor;
extern const ProtobufCEnumDescriptor    spotify__login5__v3__login_response__warnings__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_login5_2eproto__INCLUDED */
