// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: alexa.proto

#include "alexa.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
extern PROTOBUF_INTERNAL_EXPORT_response_5fstatus_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ResponseStatus_response_5fstatus_2eproto;
namespace Anki {
namespace Vector {
namespace external_interface {
class AlexaAuthStateRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AlexaAuthStateRequest> _instance;
} _AlexaAuthStateRequest_default_instance_;
class AlexaAuthStateResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AlexaAuthStateResponse> _instance;
} _AlexaAuthStateResponse_default_instance_;
class AlexaOptInRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AlexaOptInRequest> _instance;
} _AlexaOptInRequest_default_instance_;
class AlexaOptInResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AlexaOptInResponse> _instance;
} _AlexaOptInResponse_default_instance_;
class AlexaAuthEventDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AlexaAuthEvent> _instance;
} _AlexaAuthEvent_default_instance_;
}  // namespace external_interface
}  // namespace Vector
}  // namespace Anki
static void InitDefaultsscc_info_AlexaAuthEvent_alexa_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_AlexaAuthEvent_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::AlexaAuthEvent();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::AlexaAuthEvent::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AlexaAuthEvent_alexa_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_AlexaAuthEvent_alexa_2eproto}, {}};

static void InitDefaultsscc_info_AlexaAuthStateRequest_alexa_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_AlexaAuthStateRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::AlexaAuthStateRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::AlexaAuthStateRequest::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AlexaAuthStateRequest_alexa_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_AlexaAuthStateRequest_alexa_2eproto}, {}};

static void InitDefaultsscc_info_AlexaAuthStateResponse_alexa_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_AlexaAuthStateResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::AlexaAuthStateResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::AlexaAuthStateResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_AlexaAuthStateResponse_alexa_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_AlexaAuthStateResponse_alexa_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_AlexaOptInRequest_alexa_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_AlexaOptInRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::AlexaOptInRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::AlexaOptInRequest::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AlexaOptInRequest_alexa_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_AlexaOptInRequest_alexa_2eproto}, {}};

static void InitDefaultsscc_info_AlexaOptInResponse_alexa_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_AlexaOptInResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::AlexaOptInResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::AlexaOptInResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_AlexaOptInResponse_alexa_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_AlexaOptInResponse_alexa_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_alexa_2eproto[5];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_alexa_2eproto[1];
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_alexa_2eproto = nullptr;

const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_alexa_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AlexaAuthStateRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AlexaAuthStateResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AlexaAuthStateResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AlexaAuthStateResponse, auth_state_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AlexaAuthStateResponse, extra_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AlexaOptInRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AlexaOptInRequest, opt_in_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AlexaOptInResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AlexaOptInResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AlexaAuthEvent, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AlexaAuthEvent, auth_state_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AlexaAuthEvent, extra_),
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::Anki::Vector::external_interface::AlexaAuthStateRequest)},
  { 5, -1, sizeof(::Anki::Vector::external_interface::AlexaAuthStateResponse)},
  { 13, -1, sizeof(::Anki::Vector::external_interface::AlexaOptInRequest)},
  { 19, -1, sizeof(::Anki::Vector::external_interface::AlexaOptInResponse)},
  { 25, -1, sizeof(::Anki::Vector::external_interface::AlexaAuthEvent)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AlexaAuthStateRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AlexaAuthStateResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AlexaOptInRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AlexaOptInResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AlexaAuthEvent_default_instance_),
};

const char descriptor_table_protodef_alexa_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\013alexa.proto\022\036Anki.Vector.external_inte"
  "rface\032\025response_status.proto\"\027\n\025AlexaAut"
  "hStateRequest\"\253\001\n\026AlexaAuthStateResponse"
  "\022>\n\006status\030\001 \001(\0132..Anki.Vector.external_"
  "interface.ResponseStatus\022B\n\nauth_state\030\002"
  " \001(\0162..Anki.Vector.external_interface.Al"
  "exaAuthState\022\r\n\005extra\030\003 \001(\t\"#\n\021AlexaOptI"
  "nRequest\022\016\n\006opt_in\030\001 \001(\010\"T\n\022AlexaOptInRe"
  "sponse\022>\n\006status\030\001 \001(\0132..Anki.Vector.ext"
  "ernal_interface.ResponseStatus\"c\n\016AlexaA"
  "uthEvent\022B\n\nauth_state\030\001 \001(\0162..Anki.Vect"
  "or.external_interface.AlexaAuthState\022\r\n\005"
  "extra\030\002 \001(\t*\242\001\n\016AlexaAuthState\022\026\n\022ALEXA_"
  "AUTH_INVALID\020\000\022\034\n\030ALEXA_AUTH_UNINITIALIZ"
  "ED\020\001\022\036\n\032ALEXA_AUTH_REQUESTING_AUTH\020\002\022\037\n\033"
  "ALEXA_AUTH_WAITING_FOR_CODE\020\003\022\031\n\025ALEXA_A"
  "UTH_AUTHORIZED\020\004B Z\036Anki.Vector.external"
  "_interfaceb\006proto3"
  ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_alexa_2eproto_deps[1] = {
  &::descriptor_table_response_5fstatus_2eproto,
};
static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_alexa_2eproto_sccs[5] = {
  &scc_info_AlexaAuthEvent_alexa_2eproto.base,
  &scc_info_AlexaAuthStateRequest_alexa_2eproto.base,
  &scc_info_AlexaAuthStateResponse_alexa_2eproto.base,
  &scc_info_AlexaOptInRequest_alexa_2eproto.base,
  &scc_info_AlexaOptInResponse_alexa_2eproto.base,
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_alexa_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_alexa_2eproto = {
  false, false, descriptor_table_protodef_alexa_2eproto, "alexa.proto", 698,
  &descriptor_table_alexa_2eproto_once, descriptor_table_alexa_2eproto_sccs, descriptor_table_alexa_2eproto_deps, 5, 1,
  schemas, file_default_instances, TableStruct_alexa_2eproto::offsets,
  file_level_metadata_alexa_2eproto, 5, file_level_enum_descriptors_alexa_2eproto, file_level_service_descriptors_alexa_2eproto,
};

// Force running AddDescriptors() at dynamic initialization time.
static bool dynamic_init_dummy_alexa_2eproto = (static_cast<void>(::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_alexa_2eproto)), true);
namespace Anki {
namespace Vector {
namespace external_interface {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AlexaAuthState_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_alexa_2eproto);
  return file_level_enum_descriptors_alexa_2eproto[0];
}
bool AlexaAuthState_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}


// ===================================================================

void AlexaAuthStateRequest::InitAsDefaultInstance() {
}
class AlexaAuthStateRequest::_Internal {
 public:
};

AlexaAuthStateRequest::AlexaAuthStateRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.AlexaAuthStateRequest)
}
AlexaAuthStateRequest::AlexaAuthStateRequest(const AlexaAuthStateRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.AlexaAuthStateRequest)
}

void AlexaAuthStateRequest::SharedCtor() {
}

AlexaAuthStateRequest::~AlexaAuthStateRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.AlexaAuthStateRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void AlexaAuthStateRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void AlexaAuthStateRequest::ArenaDtor(void* object) {
  AlexaAuthStateRequest* _this = reinterpret_cast< AlexaAuthStateRequest* >(object);
  (void)_this;
}
void AlexaAuthStateRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void AlexaAuthStateRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AlexaAuthStateRequest& AlexaAuthStateRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AlexaAuthStateRequest_alexa_2eproto.base);
  return *internal_default_instance();
}


void AlexaAuthStateRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.AlexaAuthStateRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AlexaAuthStateRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* AlexaAuthStateRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.AlexaAuthStateRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.AlexaAuthStateRequest)
  return target;
}

size_t AlexaAuthStateRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AlexaAuthStateRequest)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void AlexaAuthStateRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.AlexaAuthStateRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const AlexaAuthStateRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AlexaAuthStateRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.AlexaAuthStateRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.AlexaAuthStateRequest)
    MergeFrom(*source);
  }
}

void AlexaAuthStateRequest::MergeFrom(const AlexaAuthStateRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.AlexaAuthStateRequest)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

}

void AlexaAuthStateRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.AlexaAuthStateRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AlexaAuthStateRequest::CopyFrom(const AlexaAuthStateRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.AlexaAuthStateRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AlexaAuthStateRequest::IsInitialized() const {
  return true;
}

void AlexaAuthStateRequest::InternalSwap(AlexaAuthStateRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata AlexaAuthStateRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void AlexaAuthStateResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_AlexaAuthStateResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class AlexaAuthStateResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const AlexaAuthStateResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
AlexaAuthStateResponse::_Internal::status(const AlexaAuthStateResponse* msg) {
  return *msg->status_;
}
void AlexaAuthStateResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
AlexaAuthStateResponse::AlexaAuthStateResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.AlexaAuthStateResponse)
}
AlexaAuthStateResponse::AlexaAuthStateResponse(const AlexaAuthStateResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  extra_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_extra().empty()) {
    extra_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_extra(),
      GetArena());
  }
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  auth_state_ = from.auth_state_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.AlexaAuthStateResponse)
}

void AlexaAuthStateResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_AlexaAuthStateResponse_alexa_2eproto.base);
  extra_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&auth_state_) -
      reinterpret_cast<char*>(&status_)) + sizeof(auth_state_));
}

AlexaAuthStateResponse::~AlexaAuthStateResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.AlexaAuthStateResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void AlexaAuthStateResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  extra_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete status_;
}

void AlexaAuthStateResponse::ArenaDtor(void* object) {
  AlexaAuthStateResponse* _this = reinterpret_cast< AlexaAuthStateResponse* >(object);
  (void)_this;
}
void AlexaAuthStateResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void AlexaAuthStateResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AlexaAuthStateResponse& AlexaAuthStateResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AlexaAuthStateResponse_alexa_2eproto.base);
  return *internal_default_instance();
}


void AlexaAuthStateResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.AlexaAuthStateResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  extra_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  auth_state_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AlexaAuthStateResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.AlexaAuthState auth_state = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_auth_state(static_cast<::Anki::Vector::external_interface::AlexaAuthState>(val));
        } else goto handle_unusual;
        continue;
      // string extra = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          auto str = _internal_mutable_extra();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.AlexaAuthStateResponse.extra"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* AlexaAuthStateResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.AlexaAuthStateResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.AlexaAuthState auth_state = 2;
  if (this->auth_state() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_auth_state(), target);
  }

  // string extra = 3;
  if (this->extra().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_extra().data(), static_cast<int>(this->_internal_extra().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.AlexaAuthStateResponse.extra");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_extra(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.AlexaAuthStateResponse)
  return target;
}

size_t AlexaAuthStateResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AlexaAuthStateResponse)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string extra = 3;
  if (this->extra().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_extra());
  }

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.AlexaAuthState auth_state = 2;
  if (this->auth_state() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_auth_state());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void AlexaAuthStateResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.AlexaAuthStateResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const AlexaAuthStateResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AlexaAuthStateResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.AlexaAuthStateResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.AlexaAuthStateResponse)
    MergeFrom(*source);
  }
}

void AlexaAuthStateResponse::MergeFrom(const AlexaAuthStateResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.AlexaAuthStateResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.extra().size() > 0) {
    _internal_set_extra(from._internal_extra());
  }
  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.auth_state() != 0) {
    _internal_set_auth_state(from._internal_auth_state());
  }
}

void AlexaAuthStateResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.AlexaAuthStateResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AlexaAuthStateResponse::CopyFrom(const AlexaAuthStateResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.AlexaAuthStateResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AlexaAuthStateResponse::IsInitialized() const {
  return true;
}

void AlexaAuthStateResponse::InternalSwap(AlexaAuthStateResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  extra_.Swap(&other->extra_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AlexaAuthStateResponse, auth_state_)
      + sizeof(AlexaAuthStateResponse::auth_state_)
      - PROTOBUF_FIELD_OFFSET(AlexaAuthStateResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata AlexaAuthStateResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void AlexaOptInRequest::InitAsDefaultInstance() {
}
class AlexaOptInRequest::_Internal {
 public:
};

AlexaOptInRequest::AlexaOptInRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.AlexaOptInRequest)
}
AlexaOptInRequest::AlexaOptInRequest(const AlexaOptInRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  opt_in_ = from.opt_in_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.AlexaOptInRequest)
}

void AlexaOptInRequest::SharedCtor() {
  opt_in_ = false;
}

AlexaOptInRequest::~AlexaOptInRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.AlexaOptInRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void AlexaOptInRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void AlexaOptInRequest::ArenaDtor(void* object) {
  AlexaOptInRequest* _this = reinterpret_cast< AlexaOptInRequest* >(object);
  (void)_this;
}
void AlexaOptInRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void AlexaOptInRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AlexaOptInRequest& AlexaOptInRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AlexaOptInRequest_alexa_2eproto.base);
  return *internal_default_instance();
}


void AlexaOptInRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.AlexaOptInRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  opt_in_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AlexaOptInRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool opt_in = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          opt_in_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* AlexaOptInRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.AlexaOptInRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool opt_in = 1;
  if (this->opt_in() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_opt_in(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.AlexaOptInRequest)
  return target;
}

size_t AlexaOptInRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AlexaOptInRequest)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // bool opt_in = 1;
  if (this->opt_in() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void AlexaOptInRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.AlexaOptInRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const AlexaOptInRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AlexaOptInRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.AlexaOptInRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.AlexaOptInRequest)
    MergeFrom(*source);
  }
}

void AlexaOptInRequest::MergeFrom(const AlexaOptInRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.AlexaOptInRequest)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.opt_in() != 0) {
    _internal_set_opt_in(from._internal_opt_in());
  }
}

void AlexaOptInRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.AlexaOptInRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AlexaOptInRequest::CopyFrom(const AlexaOptInRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.AlexaOptInRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AlexaOptInRequest::IsInitialized() const {
  return true;
}

void AlexaOptInRequest::InternalSwap(AlexaOptInRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(opt_in_, other->opt_in_);
}

::PROTOBUF_NAMESPACE_ID::Metadata AlexaOptInRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void AlexaOptInResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_AlexaOptInResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class AlexaOptInResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const AlexaOptInResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
AlexaOptInResponse::_Internal::status(const AlexaOptInResponse* msg) {
  return *msg->status_;
}
void AlexaOptInResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
AlexaOptInResponse::AlexaOptInResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.AlexaOptInResponse)
}
AlexaOptInResponse::AlexaOptInResponse(const AlexaOptInResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.AlexaOptInResponse)
}

void AlexaOptInResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_AlexaOptInResponse_alexa_2eproto.base);
  status_ = nullptr;
}

AlexaOptInResponse::~AlexaOptInResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.AlexaOptInResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void AlexaOptInResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void AlexaOptInResponse::ArenaDtor(void* object) {
  AlexaOptInResponse* _this = reinterpret_cast< AlexaOptInResponse* >(object);
  (void)_this;
}
void AlexaOptInResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void AlexaOptInResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AlexaOptInResponse& AlexaOptInResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AlexaOptInResponse_alexa_2eproto.base);
  return *internal_default_instance();
}


void AlexaOptInResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.AlexaOptInResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AlexaOptInResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* AlexaOptInResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.AlexaOptInResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.AlexaOptInResponse)
  return target;
}

size_t AlexaOptInResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AlexaOptInResponse)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void AlexaOptInResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.AlexaOptInResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const AlexaOptInResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AlexaOptInResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.AlexaOptInResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.AlexaOptInResponse)
    MergeFrom(*source);
  }
}

void AlexaOptInResponse::MergeFrom(const AlexaOptInResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.AlexaOptInResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void AlexaOptInResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.AlexaOptInResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AlexaOptInResponse::CopyFrom(const AlexaOptInResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.AlexaOptInResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AlexaOptInResponse::IsInitialized() const {
  return true;
}

void AlexaOptInResponse::InternalSwap(AlexaOptInResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata AlexaOptInResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void AlexaAuthEvent::InitAsDefaultInstance() {
}
class AlexaAuthEvent::_Internal {
 public:
};

AlexaAuthEvent::AlexaAuthEvent(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.AlexaAuthEvent)
}
AlexaAuthEvent::AlexaAuthEvent(const AlexaAuthEvent& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  extra_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_extra().empty()) {
    extra_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_extra(),
      GetArena());
  }
  auth_state_ = from.auth_state_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.AlexaAuthEvent)
}

void AlexaAuthEvent::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_AlexaAuthEvent_alexa_2eproto.base);
  extra_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  auth_state_ = 0;
}

AlexaAuthEvent::~AlexaAuthEvent() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.AlexaAuthEvent)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void AlexaAuthEvent::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  extra_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void AlexaAuthEvent::ArenaDtor(void* object) {
  AlexaAuthEvent* _this = reinterpret_cast< AlexaAuthEvent* >(object);
  (void)_this;
}
void AlexaAuthEvent::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void AlexaAuthEvent::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AlexaAuthEvent& AlexaAuthEvent::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AlexaAuthEvent_alexa_2eproto.base);
  return *internal_default_instance();
}


void AlexaAuthEvent::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.AlexaAuthEvent)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  extra_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  auth_state_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AlexaAuthEvent::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.AlexaAuthState auth_state = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_auth_state(static_cast<::Anki::Vector::external_interface::AlexaAuthState>(val));
        } else goto handle_unusual;
        continue;
      // string extra = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_extra();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.AlexaAuthEvent.extra"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* AlexaAuthEvent::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.AlexaAuthEvent)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.AlexaAuthState auth_state = 1;
  if (this->auth_state() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_auth_state(), target);
  }

  // string extra = 2;
  if (this->extra().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_extra().data(), static_cast<int>(this->_internal_extra().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.AlexaAuthEvent.extra");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_extra(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.AlexaAuthEvent)
  return target;
}

size_t AlexaAuthEvent::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AlexaAuthEvent)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string extra = 2;
  if (this->extra().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_extra());
  }

  // .Anki.Vector.external_interface.AlexaAuthState auth_state = 1;
  if (this->auth_state() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_auth_state());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void AlexaAuthEvent::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.AlexaAuthEvent)
  GOOGLE_DCHECK_NE(&from, this);
  const AlexaAuthEvent* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AlexaAuthEvent>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.AlexaAuthEvent)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.AlexaAuthEvent)
    MergeFrom(*source);
  }
}

void AlexaAuthEvent::MergeFrom(const AlexaAuthEvent& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.AlexaAuthEvent)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.extra().size() > 0) {
    _internal_set_extra(from._internal_extra());
  }
  if (from.auth_state() != 0) {
    _internal_set_auth_state(from._internal_auth_state());
  }
}

void AlexaAuthEvent::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.AlexaAuthEvent)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AlexaAuthEvent::CopyFrom(const AlexaAuthEvent& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.AlexaAuthEvent)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AlexaAuthEvent::IsInitialized() const {
  return true;
}

void AlexaAuthEvent::InternalSwap(AlexaAuthEvent* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  extra_.Swap(&other->extra_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  swap(auth_state_, other->auth_state_);
}

::PROTOBUF_NAMESPACE_ID::Metadata AlexaAuthEvent::GetMetadata() const {
  return GetMetadataStatic();
}



// Begin code inserted by Anki plugin.
AlexaAuthStateResponse::AlexaAuthStateResponse( ResponseStatus* status, ::Anki::Vector::external_interface::AlexaAuthState auth_state, const std::string& extra )
  : AlexaAuthStateResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_auth_state( auth_state );
  set_extra( extra );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
AlexaOptInRequest::AlexaOptInRequest( bool opt_in )
  : AlexaOptInRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_opt_in( opt_in );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
AlexaOptInResponse::AlexaOptInResponse( ResponseStatus* status )
  : AlexaOptInResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
AlexaAuthEvent::AlexaAuthEvent( ::Anki::Vector::external_interface::AlexaAuthState auth_state, const std::string& extra )
  : AlexaAuthEvent(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_auth_state( auth_state );
  set_extra( extra );
}
// End code inserted by Anki plugin.

// @@protoc_insertion_point(namespace_scope)
}  // namespace external_interface
}  // namespace Vector
}  // namespace Anki
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AlexaAuthStateRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AlexaAuthStateRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AlexaAuthStateRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AlexaAuthStateResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AlexaAuthStateResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AlexaAuthStateResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AlexaOptInRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AlexaOptInRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AlexaOptInRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AlexaOptInResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AlexaOptInResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AlexaOptInResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AlexaAuthEvent* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AlexaAuthEvent >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AlexaAuthEvent >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
