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

#ifndef GOOGLE_PROTOBUF_INCLUDED_settings_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_settings_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3012000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3012004 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata_lite.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
#include "response_status.pb.h"

// Begin code inserted by Anki plugin.
#include "settingsTags.pb.h"
// End code inserted by Anki plugin.

// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_settings_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_settings_2eproto {
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[15]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_settings_2eproto;
namespace Anki {
namespace Vector {
namespace external_interface {
class AccountSettingsConfig;
class AccountSettingsConfigDefaultTypeInternal;
extern AccountSettingsConfigDefaultTypeInternal _AccountSettingsConfig_default_instance_;
class CustomEyeColor;
class CustomEyeColorDefaultTypeInternal;
extern CustomEyeColorDefaultTypeInternal _CustomEyeColor_default_instance_;
class Jdoc;
class JdocDefaultTypeInternal;
extern JdocDefaultTypeInternal _Jdoc_default_instance_;
class JdocsChanged;
class JdocsChangedDefaultTypeInternal;
extern JdocsChangedDefaultTypeInternal _JdocsChanged_default_instance_;
class NamedJdoc;
class NamedJdocDefaultTypeInternal;
extern NamedJdocDefaultTypeInternal _NamedJdoc_default_instance_;
class PullJdocsRequest;
class PullJdocsRequestDefaultTypeInternal;
extern PullJdocsRequestDefaultTypeInternal _PullJdocsRequest_default_instance_;
class PullJdocsResponse;
class PullJdocsResponseDefaultTypeInternal;
extern PullJdocsResponseDefaultTypeInternal _PullJdocsResponse_default_instance_;
class RobotSettingsConfig;
class RobotSettingsConfigDefaultTypeInternal;
extern RobotSettingsConfigDefaultTypeInternal _RobotSettingsConfig_default_instance_;
class UpdateAccountSettingsRequest;
class UpdateAccountSettingsRequestDefaultTypeInternal;
extern UpdateAccountSettingsRequestDefaultTypeInternal _UpdateAccountSettingsRequest_default_instance_;
class UpdateAccountSettingsResponse;
class UpdateAccountSettingsResponseDefaultTypeInternal;
extern UpdateAccountSettingsResponseDefaultTypeInternal _UpdateAccountSettingsResponse_default_instance_;
class UpdateSettingsRequest;
class UpdateSettingsRequestDefaultTypeInternal;
extern UpdateSettingsRequestDefaultTypeInternal _UpdateSettingsRequest_default_instance_;
class UpdateSettingsResponse;
class UpdateSettingsResponseDefaultTypeInternal;
extern UpdateSettingsResponseDefaultTypeInternal _UpdateSettingsResponse_default_instance_;
class UpdateUserEntitlementsRequest;
class UpdateUserEntitlementsRequestDefaultTypeInternal;
extern UpdateUserEntitlementsRequestDefaultTypeInternal _UpdateUserEntitlementsRequest_default_instance_;
class UpdateUserEntitlementsResponse;
class UpdateUserEntitlementsResponseDefaultTypeInternal;
extern UpdateUserEntitlementsResponseDefaultTypeInternal _UpdateUserEntitlementsResponse_default_instance_;
class UserEntitlementsConfig;
class UserEntitlementsConfigDefaultTypeInternal;
extern UserEntitlementsConfigDefaultTypeInternal _UserEntitlementsConfig_default_instance_;
}  // namespace external_interface
}  // namespace Vector
}  // namespace Anki
PROTOBUF_NAMESPACE_OPEN
template<> ::Anki::Vector::external_interface::AccountSettingsConfig* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::AccountSettingsConfig>(Arena*);
template<> ::Anki::Vector::external_interface::CustomEyeColor* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CustomEyeColor>(Arena*);
template<> ::Anki::Vector::external_interface::Jdoc* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::Jdoc>(Arena*);
template<> ::Anki::Vector::external_interface::JdocsChanged* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::JdocsChanged>(Arena*);
template<> ::Anki::Vector::external_interface::NamedJdoc* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::NamedJdoc>(Arena*);
template<> ::Anki::Vector::external_interface::PullJdocsRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PullJdocsRequest>(Arena*);
template<> ::Anki::Vector::external_interface::PullJdocsResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PullJdocsResponse>(Arena*);
template<> ::Anki::Vector::external_interface::RobotSettingsConfig* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::RobotSettingsConfig>(Arena*);
template<> ::Anki::Vector::external_interface::UpdateAccountSettingsRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UpdateAccountSettingsRequest>(Arena*);
template<> ::Anki::Vector::external_interface::UpdateAccountSettingsResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UpdateAccountSettingsResponse>(Arena*);
template<> ::Anki::Vector::external_interface::UpdateSettingsRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UpdateSettingsRequest>(Arena*);
template<> ::Anki::Vector::external_interface::UpdateSettingsResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UpdateSettingsResponse>(Arena*);
template<> ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UpdateUserEntitlementsRequest>(Arena*);
template<> ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UpdateUserEntitlementsResponse>(Arena*);
template<> ::Anki::Vector::external_interface::UserEntitlementsConfig* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UserEntitlementsConfig>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace Anki {
namespace Vector {
namespace external_interface {

enum ApiVersion : int {
  INVALID = 0,
  LATEST = 1,
  ApiVersion_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  ApiVersion_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool ApiVersion_IsValid(int value);
constexpr ApiVersion ApiVersion_MIN = INVALID;
constexpr ApiVersion ApiVersion_MAX = LATEST;
constexpr int ApiVersion_ARRAYSIZE = ApiVersion_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ApiVersion_descriptor();
template<typename T>
inline const std::string& ApiVersion_Name(T enum_t_value) {
  static_assert(::std::is_same<T, ApiVersion>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function ApiVersion_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    ApiVersion_descriptor(), enum_t_value);
}
inline bool ApiVersion_Parse(
    const std::string& name, ApiVersion* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ApiVersion>(
    ApiVersion_descriptor(), name, value);
}
enum Volume : int {
  MUTE = 0,
  LOW = 1,
  MEDIUM_LOW = 2,
  MEDIUM = 3,
  MEDIUM_HIGH = 4,
  HIGH = 5,
  Volume_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  Volume_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool Volume_IsValid(int value);
constexpr Volume Volume_MIN = MUTE;
constexpr Volume Volume_MAX = HIGH;
constexpr int Volume_ARRAYSIZE = Volume_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Volume_descriptor();
template<typename T>
inline const std::string& Volume_Name(T enum_t_value) {
  static_assert(::std::is_same<T, Volume>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function Volume_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    Volume_descriptor(), enum_t_value);
}
inline bool Volume_Parse(
    const std::string& name, Volume* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Volume>(
    Volume_descriptor(), name, value);
}
enum JdocType : int {
  ROBOT_SETTINGS = 0,
  ROBOT_LIFETIME_STATS = 1,
  ACCOUNT_SETTINGS = 2,
  USER_ENTITLEMENTS = 3,
  JdocType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  JdocType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool JdocType_IsValid(int value);
constexpr JdocType JdocType_MIN = ROBOT_SETTINGS;
constexpr JdocType JdocType_MAX = USER_ENTITLEMENTS;
constexpr int JdocType_ARRAYSIZE = JdocType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* JdocType_descriptor();
template<typename T>
inline const std::string& JdocType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, JdocType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function JdocType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    JdocType_descriptor(), enum_t_value);
}
inline bool JdocType_Parse(
    const std::string& name, JdocType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<JdocType>(
    JdocType_descriptor(), name, value);
}
enum JdocResolveMethod : int {
  PUSH_TO_CLOUD = 0,
  PULL_FROM_CLOUD = 1,
  JdocResolveMethod_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  JdocResolveMethod_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool JdocResolveMethod_IsValid(int value);
constexpr JdocResolveMethod JdocResolveMethod_MIN = PUSH_TO_CLOUD;
constexpr JdocResolveMethod JdocResolveMethod_MAX = PULL_FROM_CLOUD;
constexpr int JdocResolveMethod_ARRAYSIZE = JdocResolveMethod_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* JdocResolveMethod_descriptor();
template<typename T>
inline const std::string& JdocResolveMethod_Name(T enum_t_value) {
  static_assert(::std::is_same<T, JdocResolveMethod>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function JdocResolveMethod_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    JdocResolveMethod_descriptor(), enum_t_value);
}
inline bool JdocResolveMethod_Parse(
    const std::string& name, JdocResolveMethod* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<JdocResolveMethod>(
    JdocResolveMethod_descriptor(), name, value);
}
enum RobotSetting : int {
  clock_24_hour = 0,
  eye_color = 1,
  custom_eye_color = 2,
  default_location = 3,
  dist_is_metric = 4,
  locale = 5,
  master_volume = 6,
  temp_is_fahrenheit = 7,
  time_zone = 8,
  button_wakeword = 9,
  RobotSetting_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  RobotSetting_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool RobotSetting_IsValid(int value);
constexpr RobotSetting RobotSetting_MIN = clock_24_hour;
constexpr RobotSetting RobotSetting_MAX = button_wakeword;
constexpr int RobotSetting_ARRAYSIZE = RobotSetting_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RobotSetting_descriptor();
template<typename T>
inline const std::string& RobotSetting_Name(T enum_t_value) {
  static_assert(::std::is_same<T, RobotSetting>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function RobotSetting_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    RobotSetting_descriptor(), enum_t_value);
}
inline bool RobotSetting_Parse(
    const std::string& name, RobotSetting* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<RobotSetting>(
    RobotSetting_descriptor(), name, value);
}
enum EyeColor : int {
  TIP_OVER_TEAL = 0,
  OVERFIT_ORANGE = 1,
  UNCANNY_YELLOW = 2,
  NON_LINEAR_LIME = 3,
  SINGULARITY_SAPPHIRE = 4,
  FALSE_POSITIVE_PURPLE = 5,
  CONFUSION_MATRIX_GREEN = 6,
  RAINBOW_EYES = 7,
  ROBOT_RED = 8,
  EyeColor_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  EyeColor_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool EyeColor_IsValid(int value);
constexpr EyeColor EyeColor_MIN = TIP_OVER_TEAL;
constexpr EyeColor EyeColor_MAX = ROBOT_RED;
constexpr int EyeColor_ARRAYSIZE = EyeColor_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* EyeColor_descriptor();
template<typename T>
inline const std::string& EyeColor_Name(T enum_t_value) {
  static_assert(::std::is_same<T, EyeColor>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function EyeColor_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    EyeColor_descriptor(), enum_t_value);
}
inline bool EyeColor_Parse(
    const std::string& name, EyeColor* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<EyeColor>(
    EyeColor_descriptor(), name, value);
}
enum ButtonWakeWord : int {
  BUTTON_WAKEWORD_HEY_VECTOR = 0,
  BUTTON_WAKEWORD_ALEXA = 1,
  ButtonWakeWord_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  ButtonWakeWord_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool ButtonWakeWord_IsValid(int value);
constexpr ButtonWakeWord ButtonWakeWord_MIN = BUTTON_WAKEWORD_HEY_VECTOR;
constexpr ButtonWakeWord ButtonWakeWord_MAX = BUTTON_WAKEWORD_ALEXA;
constexpr int ButtonWakeWord_ARRAYSIZE = ButtonWakeWord_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ButtonWakeWord_descriptor();
template<typename T>
inline const std::string& ButtonWakeWord_Name(T enum_t_value) {
  static_assert(::std::is_same<T, ButtonWakeWord>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function ButtonWakeWord_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    ButtonWakeWord_descriptor(), enum_t_value);
}
inline bool ButtonWakeWord_Parse(
    const std::string& name, ButtonWakeWord* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ButtonWakeWord>(
    ButtonWakeWord_descriptor(), name, value);
}
enum AccountSetting : int {
  DATA_COLLECTION = 0,
  APP_LOCALE = 1,
  AccountSetting_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  AccountSetting_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool AccountSetting_IsValid(int value);
constexpr AccountSetting AccountSetting_MIN = DATA_COLLECTION;
constexpr AccountSetting AccountSetting_MAX = APP_LOCALE;
constexpr int AccountSetting_ARRAYSIZE = AccountSetting_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AccountSetting_descriptor();
template<typename T>
inline const std::string& AccountSetting_Name(T enum_t_value) {
  static_assert(::std::is_same<T, AccountSetting>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function AccountSetting_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    AccountSetting_descriptor(), enum_t_value);
}
inline bool AccountSetting_Parse(
    const std::string& name, AccountSetting* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<AccountSetting>(
    AccountSetting_descriptor(), name, value);
}
enum UserEntitlement : int {
  KICKSTARTER_EYES = 0,
  UserEntitlement_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  UserEntitlement_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool UserEntitlement_IsValid(int value);
constexpr UserEntitlement UserEntitlement_MIN = KICKSTARTER_EYES;
constexpr UserEntitlement UserEntitlement_MAX = KICKSTARTER_EYES;
constexpr int UserEntitlement_ARRAYSIZE = UserEntitlement_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* UserEntitlement_descriptor();
template<typename T>
inline const std::string& UserEntitlement_Name(T enum_t_value) {
  static_assert(::std::is_same<T, UserEntitlement>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function UserEntitlement_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    UserEntitlement_descriptor(), enum_t_value);
}
inline bool UserEntitlement_Parse(
    const std::string& name, UserEntitlement* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<UserEntitlement>(
    UserEntitlement_descriptor(), name, value);
}
enum ResultCode : int {
  SETTINGS_ACCEPTED = 0,
  ERROR_UPDATE_IN_PROGRESS = 1,
  ResultCode_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  ResultCode_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool ResultCode_IsValid(int value);
constexpr ResultCode ResultCode_MIN = SETTINGS_ACCEPTED;
constexpr ResultCode ResultCode_MAX = ERROR_UPDATE_IN_PROGRESS;
constexpr int ResultCode_ARRAYSIZE = ResultCode_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ResultCode_descriptor();
template<typename T>
inline const std::string& ResultCode_Name(T enum_t_value) {
  static_assert(::std::is_same<T, ResultCode>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function ResultCode_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    ResultCode_descriptor(), enum_t_value);
}
inline bool ResultCode_Parse(
    const std::string& name, ResultCode* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ResultCode>(
    ResultCode_descriptor(), name, value);
}
// ===================================================================

class CustomEyeColor PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CustomEyeColor) */ {
 public:
  inline CustomEyeColor() : CustomEyeColor(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CustomEyeColor();

  CustomEyeColor(const CustomEyeColor& from);
  CustomEyeColor(CustomEyeColor&& from) noexcept
    : CustomEyeColor() {
    *this = ::std::move(from);
  }

  inline CustomEyeColor& operator=(const CustomEyeColor& from) {
    CopyFrom(from);
    return *this;
  }
  inline CustomEyeColor& operator=(CustomEyeColor&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const CustomEyeColor& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CustomEyeColor* internal_default_instance() {
    return reinterpret_cast<const CustomEyeColor*>(
               &_CustomEyeColor_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(CustomEyeColor& a, CustomEyeColor& b) {
    a.Swap(&b);
  }
  inline void Swap(CustomEyeColor* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CustomEyeColor* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CustomEyeColor* New() const final {
    return CreateMaybeMessage<CustomEyeColor>(nullptr);
  }

  CustomEyeColor* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CustomEyeColor>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CustomEyeColor& from);
  void MergeFrom(const CustomEyeColor& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CustomEyeColor* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CustomEyeColor";
  }
  protected:
  explicit CustomEyeColor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_settings_2eproto);
    return ::descriptor_table_settings_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kHueFieldNumber = 1,
    kSaturationFieldNumber = 2,
    kEnabledFieldNumber = 3,
  };
  // float hue = 1;
  void clear_hue();
  float hue() const;
  void set_hue(float value);
  private:
  float _internal_hue() const;
  void _internal_set_hue(float value);
  public:

  // float saturation = 2;
  void clear_saturation();
  float saturation() const;
  void set_saturation(float value);
  private:
  float _internal_saturation() const;
  void _internal_set_saturation(float value);
  public:

  // bool enabled = 3;
  void clear_enabled();
  bool enabled() const;
  void set_enabled(bool value);
  private:
  bool _internal_enabled() const;
  void _internal_set_enabled(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  CustomEyeColor( float hue, float saturation, bool enabled );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CustomEyeColor)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float hue_;
  float saturation_;
  bool enabled_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_settings_2eproto;
};
// -------------------------------------------------------------------

class RobotSettingsConfig PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.RobotSettingsConfig) */ {
 public:
  inline RobotSettingsConfig() : RobotSettingsConfig(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~RobotSettingsConfig();

  RobotSettingsConfig(const RobotSettingsConfig& from);
  RobotSettingsConfig(RobotSettingsConfig&& from) noexcept
    : RobotSettingsConfig() {
    *this = ::std::move(from);
  }

  inline RobotSettingsConfig& operator=(const RobotSettingsConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline RobotSettingsConfig& operator=(RobotSettingsConfig&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RobotSettingsConfig& default_instance();

  enum OneofClock24HourCase {
    kClock24Hour = 1,
    ONEOF_CLOCK_24_HOUR_NOT_SET = 0,
  };

  enum OneofEyeColorCase {
    kEyeColor = 2,
    ONEOF_EYE_COLOR_NOT_SET = 0,
  };

  enum OneofCustomEyeColorCase {
    kCustomEyeColor = 3,
    ONEOF_CUSTOM_EYE_COLOR_NOT_SET = 0,
  };

  enum OneofDefaultLocationCase {
    kDefaultLocation = 4,
    ONEOF_DEFAULT_LOCATION_NOT_SET = 0,
  };

  enum OneofDistIsMetricCase {
    kDistIsMetric = 5,
    ONEOF_DIST_IS_METRIC_NOT_SET = 0,
  };

  enum OneofLocaleCase {
    kLocale = 6,
    ONEOF_LOCALE_NOT_SET = 0,
  };

  enum OneofMasterVolumeCase {
    kMasterVolume = 7,
    ONEOF_MASTER_VOLUME_NOT_SET = 0,
  };

  enum OneofTempIsFahrenheitCase {
    kTempIsFahrenheit = 8,
    ONEOF_TEMP_IS_FAHRENHEIT_NOT_SET = 0,
  };

  enum OneofTimeZoneCase {
    kTimeZone = 9,
    ONEOF_TIME_ZONE_NOT_SET = 0,
  };

  enum OneofButtonWakewordCase {
    kButtonWakeword = 10,
    ONEOF_BUTTON_WAKEWORD_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RobotSettingsConfig* internal_default_instance() {
    return reinterpret_cast<const RobotSettingsConfig*>(
               &_RobotSettingsConfig_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(RobotSettingsConfig& a, RobotSettingsConfig& b) {
    a.Swap(&b);
  }
  inline void Swap(RobotSettingsConfig* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RobotSettingsConfig* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RobotSettingsConfig* New() const final {
    return CreateMaybeMessage<RobotSettingsConfig>(nullptr);
  }

  RobotSettingsConfig* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RobotSettingsConfig>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RobotSettingsConfig& from);
  void MergeFrom(const RobotSettingsConfig& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RobotSettingsConfig* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.RobotSettingsConfig";
  }
  protected:
  explicit RobotSettingsConfig(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_settings_2eproto);
    return ::descriptor_table_settings_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kClock24HourFieldNumber = 1,
    kEyeColorFieldNumber = 2,
    kCustomEyeColorFieldNumber = 3,
    kDefaultLocationFieldNumber = 4,
    kDistIsMetricFieldNumber = 5,
    kLocaleFieldNumber = 6,
    kMasterVolumeFieldNumber = 7,
    kTempIsFahrenheitFieldNumber = 8,
    kTimeZoneFieldNumber = 9,
    kButtonWakewordFieldNumber = 10,
  };
  // bool clock_24_hour = 1;
  private:
  bool _internal_has_clock_24_hour() const;
  public:
  void clear_clock_24_hour();
  bool clock_24_hour() const;
  void set_clock_24_hour(bool value);
  private:
  bool _internal_clock_24_hour() const;
  void _internal_set_clock_24_hour(bool value);
  public:

  // .Anki.Vector.external_interface.EyeColor eye_color = 2;
  private:
  bool _internal_has_eye_color() const;
  public:
  void clear_eye_color();
  ::Anki::Vector::external_interface::EyeColor eye_color() const;
  void set_eye_color(::Anki::Vector::external_interface::EyeColor value);
  private:
  ::Anki::Vector::external_interface::EyeColor _internal_eye_color() const;
  void _internal_set_eye_color(::Anki::Vector::external_interface::EyeColor value);
  public:

  // .Anki.Vector.external_interface.CustomEyeColor custom_eye_color = 3;
  bool has_custom_eye_color() const;
  private:
  bool _internal_has_custom_eye_color() const;
  public:
  void clear_custom_eye_color();
  const ::Anki::Vector::external_interface::CustomEyeColor& custom_eye_color() const;
  ::Anki::Vector::external_interface::CustomEyeColor* release_custom_eye_color();
  ::Anki::Vector::external_interface::CustomEyeColor* mutable_custom_eye_color();
  void set_allocated_custom_eye_color(::Anki::Vector::external_interface::CustomEyeColor* custom_eye_color);
  private:
  const ::Anki::Vector::external_interface::CustomEyeColor& _internal_custom_eye_color() const;
  ::Anki::Vector::external_interface::CustomEyeColor* _internal_mutable_custom_eye_color();
  public:
  void unsafe_arena_set_allocated_custom_eye_color(
      ::Anki::Vector::external_interface::CustomEyeColor* custom_eye_color);
  ::Anki::Vector::external_interface::CustomEyeColor* unsafe_arena_release_custom_eye_color();

  // string default_location = 4;
  private:
  bool _internal_has_default_location() const;
  public:
  void clear_default_location();
  const std::string& default_location() const;
  void set_default_location(const std::string& value);
  void set_default_location(std::string&& value);
  void set_default_location(const char* value);
  void set_default_location(const char* value, size_t size);
  std::string* mutable_default_location();
  std::string* release_default_location();
  void set_allocated_default_location(std::string* default_location);
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  std::string* unsafe_arena_release_default_location();
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_default_location(
      std::string* default_location);
  private:
  const std::string& _internal_default_location() const;
  void _internal_set_default_location(const std::string& value);
  std::string* _internal_mutable_default_location();
  public:

  // bool dist_is_metric = 5;
  private:
  bool _internal_has_dist_is_metric() const;
  public:
  void clear_dist_is_metric();
  bool dist_is_metric() const;
  void set_dist_is_metric(bool value);
  private:
  bool _internal_dist_is_metric() const;
  void _internal_set_dist_is_metric(bool value);
  public:

  // string locale = 6;
  private:
  bool _internal_has_locale() const;
  public:
  void clear_locale();
  const std::string& locale() const;
  void set_locale(const std::string& value);
  void set_locale(std::string&& value);
  void set_locale(const char* value);
  void set_locale(const char* value, size_t size);
  std::string* mutable_locale();
  std::string* release_locale();
  void set_allocated_locale(std::string* locale);
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  std::string* unsafe_arena_release_locale();
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_locale(
      std::string* locale);
  private:
  const std::string& _internal_locale() const;
  void _internal_set_locale(const std::string& value);
  std::string* _internal_mutable_locale();
  public:

  // .Anki.Vector.external_interface.Volume master_volume = 7;
  private:
  bool _internal_has_master_volume() const;
  public:
  void clear_master_volume();
  ::Anki::Vector::external_interface::Volume master_volume() const;
  void set_master_volume(::Anki::Vector::external_interface::Volume value);
  private:
  ::Anki::Vector::external_interface::Volume _internal_master_volume() const;
  void _internal_set_master_volume(::Anki::Vector::external_interface::Volume value);
  public:

  // bool temp_is_fahrenheit = 8;
  private:
  bool _internal_has_temp_is_fahrenheit() const;
  public:
  void clear_temp_is_fahrenheit();
  bool temp_is_fahrenheit() const;
  void set_temp_is_fahrenheit(bool value);
  private:
  bool _internal_temp_is_fahrenheit() const;
  void _internal_set_temp_is_fahrenheit(bool value);
  public:

  // string time_zone = 9;
  private:
  bool _internal_has_time_zone() const;
  public:
  void clear_time_zone();
  const std::string& time_zone() const;
  void set_time_zone(const std::string& value);
  void set_time_zone(std::string&& value);
  void set_time_zone(const char* value);
  void set_time_zone(const char* value, size_t size);
  std::string* mutable_time_zone();
  std::string* release_time_zone();
  void set_allocated_time_zone(std::string* time_zone);
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  std::string* unsafe_arena_release_time_zone();
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_time_zone(
      std::string* time_zone);
  private:
  const std::string& _internal_time_zone() const;
  void _internal_set_time_zone(const std::string& value);
  std::string* _internal_mutable_time_zone();
  public:

  // .Anki.Vector.external_interface.ButtonWakeWord button_wakeword = 10;
  private:
  bool _internal_has_button_wakeword() const;
  public:
  void clear_button_wakeword();
  ::Anki::Vector::external_interface::ButtonWakeWord button_wakeword() const;
  void set_button_wakeword(::Anki::Vector::external_interface::ButtonWakeWord value);
  private:
  ::Anki::Vector::external_interface::ButtonWakeWord _internal_button_wakeword() const;
  void _internal_set_button_wakeword(::Anki::Vector::external_interface::ButtonWakeWord value);
  public:

  void clear_oneof_clock_24_hour();
  OneofClock24HourCase oneof_clock_24_hour_case() const;
  void clear_oneof_eye_color();
  OneofEyeColorCase oneof_eye_color_case() const;
  void clear_oneof_custom_eye_color();
  OneofCustomEyeColorCase oneof_custom_eye_color_case() const;
  void clear_oneof_default_location();
  OneofDefaultLocationCase oneof_default_location_case() const;
  void clear_oneof_dist_is_metric();
  OneofDistIsMetricCase oneof_dist_is_metric_case() const;
  void clear_oneof_locale();
  OneofLocaleCase oneof_locale_case() const;
  void clear_oneof_master_volume();
  OneofMasterVolumeCase oneof_master_volume_case() const;
  void clear_oneof_temp_is_fahrenheit();
  OneofTempIsFahrenheitCase oneof_temp_is_fahrenheit_case() const;
  void clear_oneof_time_zone();
  OneofTimeZoneCase oneof_time_zone_case() const;
  void clear_oneof_button_wakeword();
  OneofButtonWakewordCase oneof_button_wakeword_case() const;
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.RobotSettingsConfig)
 private:
  class _Internal;
  void set_has_clock_24_hour();
  void set_has_eye_color();
  void set_has_custom_eye_color();
  void set_has_default_location();
  void set_has_dist_is_metric();
  void set_has_locale();
  void set_has_master_volume();
  void set_has_temp_is_fahrenheit();
  void set_has_time_zone();
  void set_has_button_wakeword();

  inline bool has_oneof_clock_24_hour() const;
  inline void clear_has_oneof_clock_24_hour();

  inline bool has_oneof_eye_color() const;
  inline void clear_has_oneof_eye_color();

  inline bool has_oneof_custom_eye_color() const;
  inline void clear_has_oneof_custom_eye_color();

  inline bool has_oneof_default_location() const;
  inline void clear_has_oneof_default_location();

  inline bool has_oneof_dist_is_metric() const;
  inline void clear_has_oneof_dist_is_metric();

  inline bool has_oneof_locale() const;
  inline void clear_has_oneof_locale();

  inline bool has_oneof_master_volume() const;
  inline void clear_has_oneof_master_volume();

  inline bool has_oneof_temp_is_fahrenheit() const;
  inline void clear_has_oneof_temp_is_fahrenheit();

  inline bool has_oneof_time_zone() const;
  inline void clear_has_oneof_time_zone();

  inline bool has_oneof_button_wakeword() const;
  inline void clear_has_oneof_button_wakeword();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  union OneofClock24HourUnion {
    OneofClock24HourUnion() {}
    bool clock_24_hour_;
  } oneof_clock_24_hour_;
  union OneofEyeColorUnion {
    OneofEyeColorUnion() {}
    int eye_color_;
  } oneof_eye_color_;
  union OneofCustomEyeColorUnion {
    OneofCustomEyeColorUnion() {}
    ::Anki::Vector::external_interface::CustomEyeColor* custom_eye_color_;
  } oneof_custom_eye_color_;
  union OneofDefaultLocationUnion {
    OneofDefaultLocationUnion() {}
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr default_location_;
  } oneof_default_location_;
  union OneofDistIsMetricUnion {
    OneofDistIsMetricUnion() {}
    bool dist_is_metric_;
  } oneof_dist_is_metric_;
  union OneofLocaleUnion {
    OneofLocaleUnion() {}
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr locale_;
  } oneof_locale_;
  union OneofMasterVolumeUnion {
    OneofMasterVolumeUnion() {}
    int master_volume_;
  } oneof_master_volume_;
  union OneofTempIsFahrenheitUnion {
    OneofTempIsFahrenheitUnion() {}
    bool temp_is_fahrenheit_;
  } oneof_temp_is_fahrenheit_;
  union OneofTimeZoneUnion {
    OneofTimeZoneUnion() {}
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr time_zone_;
  } oneof_time_zone_;
  union OneofButtonWakewordUnion {
    OneofButtonWakewordUnion() {}
    int button_wakeword_;
  } oneof_button_wakeword_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[10];

  friend struct ::TableStruct_settings_2eproto;
};
// -------------------------------------------------------------------

class AccountSettingsConfig PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.AccountSettingsConfig) */ {
 public:
  inline AccountSettingsConfig() : AccountSettingsConfig(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~AccountSettingsConfig();

  AccountSettingsConfig(const AccountSettingsConfig& from);
  AccountSettingsConfig(AccountSettingsConfig&& from) noexcept
    : AccountSettingsConfig() {
    *this = ::std::move(from);
  }

  inline AccountSettingsConfig& operator=(const AccountSettingsConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline AccountSettingsConfig& operator=(AccountSettingsConfig&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const AccountSettingsConfig& default_instance();

  enum OneofDataCollectionCase {
    kDataCollection = 1,
    ONEOF_DATA_COLLECTION_NOT_SET = 0,
  };

  enum OneofAppLocaleCase {
    kAppLocale = 2,
    ONEOF_APP_LOCALE_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AccountSettingsConfig* internal_default_instance() {
    return reinterpret_cast<const AccountSettingsConfig*>(
               &_AccountSettingsConfig_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(AccountSettingsConfig& a, AccountSettingsConfig& b) {
    a.Swap(&b);
  }
  inline void Swap(AccountSettingsConfig* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AccountSettingsConfig* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline AccountSettingsConfig* New() const final {
    return CreateMaybeMessage<AccountSettingsConfig>(nullptr);
  }

  AccountSettingsConfig* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<AccountSettingsConfig>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const AccountSettingsConfig& from);
  void MergeFrom(const AccountSettingsConfig& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(AccountSettingsConfig* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.AccountSettingsConfig";
  }
  protected:
  explicit AccountSettingsConfig(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_settings_2eproto);
    return ::descriptor_table_settings_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kDataCollectionFieldNumber = 1,
    kAppLocaleFieldNumber = 2,
  };
  // bool data_collection = 1;
  private:
  bool _internal_has_data_collection() const;
  public:
  void clear_data_collection();
  bool data_collection() const;
  void set_data_collection(bool value);
  private:
  bool _internal_data_collection() const;
  void _internal_set_data_collection(bool value);
  public:

  // string app_locale = 2;
  private:
  bool _internal_has_app_locale() const;
  public:
  void clear_app_locale();
  const std::string& app_locale() const;
  void set_app_locale(const std::string& value);
  void set_app_locale(std::string&& value);
  void set_app_locale(const char* value);
  void set_app_locale(const char* value, size_t size);
  std::string* mutable_app_locale();
  std::string* release_app_locale();
  void set_allocated_app_locale(std::string* app_locale);
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  std::string* unsafe_arena_release_app_locale();
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_app_locale(
      std::string* app_locale);
  private:
  const std::string& _internal_app_locale() const;
  void _internal_set_app_locale(const std::string& value);
  std::string* _internal_mutable_app_locale();
  public:

  void clear_oneof_data_collection();
  OneofDataCollectionCase oneof_data_collection_case() const;
  void clear_oneof_app_locale();
  OneofAppLocaleCase oneof_app_locale_case() const;
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.AccountSettingsConfig)
 private:
  class _Internal;
  void set_has_data_collection();
  void set_has_app_locale();

  inline bool has_oneof_data_collection() const;
  inline void clear_has_oneof_data_collection();

  inline bool has_oneof_app_locale() const;
  inline void clear_has_oneof_app_locale();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  union OneofDataCollectionUnion {
    OneofDataCollectionUnion() {}
    bool data_collection_;
  } oneof_data_collection_;
  union OneofAppLocaleUnion {
    OneofAppLocaleUnion() {}
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr app_locale_;
  } oneof_app_locale_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[2];

  friend struct ::TableStruct_settings_2eproto;
};
// -------------------------------------------------------------------

class UserEntitlementsConfig PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.UserEntitlementsConfig) */ {
 public:
  inline UserEntitlementsConfig() : UserEntitlementsConfig(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~UserEntitlementsConfig();

  UserEntitlementsConfig(const UserEntitlementsConfig& from);
  UserEntitlementsConfig(UserEntitlementsConfig&& from) noexcept
    : UserEntitlementsConfig() {
    *this = ::std::move(from);
  }

  inline UserEntitlementsConfig& operator=(const UserEntitlementsConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline UserEntitlementsConfig& operator=(UserEntitlementsConfig&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const UserEntitlementsConfig& default_instance();

  enum OneofKickstarterEyesCase {
    kKickstarterEyes = 1,
    ONEOF_KICKSTARTER_EYES_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const UserEntitlementsConfig* internal_default_instance() {
    return reinterpret_cast<const UserEntitlementsConfig*>(
               &_UserEntitlementsConfig_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(UserEntitlementsConfig& a, UserEntitlementsConfig& b) {
    a.Swap(&b);
  }
  inline void Swap(UserEntitlementsConfig* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UserEntitlementsConfig* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline UserEntitlementsConfig* New() const final {
    return CreateMaybeMessage<UserEntitlementsConfig>(nullptr);
  }

  UserEntitlementsConfig* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<UserEntitlementsConfig>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const UserEntitlementsConfig& from);
  void MergeFrom(const UserEntitlementsConfig& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UserEntitlementsConfig* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.UserEntitlementsConfig";
  }
  protected:
  explicit UserEntitlementsConfig(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_settings_2eproto);
    return ::descriptor_table_settings_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kKickstarterEyesFieldNumber = 1,
  };
  // bool kickstarter_eyes = 1;
  private:
  bool _internal_has_kickstarter_eyes() const;
  public:
  void clear_kickstarter_eyes();
  bool kickstarter_eyes() const;
  void set_kickstarter_eyes(bool value);
  private:
  bool _internal_kickstarter_eyes() const;
  void _internal_set_kickstarter_eyes(bool value);
  public:

  void clear_oneof_kickstarter_eyes();
  OneofKickstarterEyesCase oneof_kickstarter_eyes_case() const;
  
  // Begin code inserted by Anki plugin.
  explicit UserEntitlementsConfig( bool kickstarter_eyes );
  // End code inserted by Anki plugin.
  
  
  // Begin code inserted by Anki plugin.
  inline ::Anki::Vector::external_interface::UserEntitlementsConfigTag GetTag() const {
    return static_cast<::Anki::Vector::external_interface::UserEntitlementsConfigTag>( _oneof_case_[0] );
  }
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.UserEntitlementsConfig)
 private:
  class _Internal;
  void set_has_kickstarter_eyes();

  inline bool has_oneof_kickstarter_eyes() const;
  inline void clear_has_oneof_kickstarter_eyes();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  union OneofKickstarterEyesUnion {
    OneofKickstarterEyesUnion() {}
    bool kickstarter_eyes_;
  } oneof_kickstarter_eyes_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_settings_2eproto;
};
// -------------------------------------------------------------------

class Jdoc PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.Jdoc) */ {
 public:
  inline Jdoc() : Jdoc(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~Jdoc();

  Jdoc(const Jdoc& from);
  Jdoc(Jdoc&& from) noexcept
    : Jdoc() {
    *this = ::std::move(from);
  }

  inline Jdoc& operator=(const Jdoc& from) {
    CopyFrom(from);
    return *this;
  }
  inline Jdoc& operator=(Jdoc&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const Jdoc& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Jdoc* internal_default_instance() {
    return reinterpret_cast<const Jdoc*>(
               &_Jdoc_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(Jdoc& a, Jdoc& b) {
    a.Swap(&b);
  }
  inline void Swap(Jdoc* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Jdoc* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline Jdoc* New() const final {
    return CreateMaybeMessage<Jdoc>(nullptr);
  }

  Jdoc* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<Jdoc>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const Jdoc& from);
  void MergeFrom(const Jdoc& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Jdoc* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.Jdoc";
  }
  protected:
  explicit Jdoc(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_settings_2eproto);
    return ::descriptor_table_settings_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kClientMetadataFieldNumber = 3,
    kJsonDocFieldNumber = 4,
    kDocVersionFieldNumber = 1,
    kFmtVersionFieldNumber = 2,
  };
  // string client_metadata = 3;
  void clear_client_metadata();
  const std::string& client_metadata() const;
  void set_client_metadata(const std::string& value);
  void set_client_metadata(std::string&& value);
  void set_client_metadata(const char* value);
  void set_client_metadata(const char* value, size_t size);
  std::string* mutable_client_metadata();
  std::string* release_client_metadata();
  void set_allocated_client_metadata(std::string* client_metadata);
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  std::string* unsafe_arena_release_client_metadata();
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_client_metadata(
      std::string* client_metadata);
  private:
  const std::string& _internal_client_metadata() const;
  void _internal_set_client_metadata(const std::string& value);
  std::string* _internal_mutable_client_metadata();
  public:

  // string json_doc = 4;
  void clear_json_doc();
  const std::string& json_doc() const;
  void set_json_doc(const std::string& value);
  void set_json_doc(std::string&& value);
  void set_json_doc(const char* value);
  void set_json_doc(const char* value, size_t size);
  std::string* mutable_json_doc();
  std::string* release_json_doc();
  void set_allocated_json_doc(std::string* json_doc);
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  std::string* unsafe_arena_release_json_doc();
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_json_doc(
      std::string* json_doc);
  private:
  const std::string& _internal_json_doc() const;
  void _internal_set_json_doc(const std::string& value);
  std::string* _internal_mutable_json_doc();
  public:

  // uint64 doc_version = 1;
  void clear_doc_version();
  ::PROTOBUF_NAMESPACE_ID::uint64 doc_version() const;
  void set_doc_version(::PROTOBUF_NAMESPACE_ID::uint64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint64 _internal_doc_version() const;
  void _internal_set_doc_version(::PROTOBUF_NAMESPACE_ID::uint64 value);
  public:

  // uint64 fmt_version = 2;
  void clear_fmt_version();
  ::PROTOBUF_NAMESPACE_ID::uint64 fmt_version() const;
  void set_fmt_version(::PROTOBUF_NAMESPACE_ID::uint64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint64 _internal_fmt_version() const;
  void _internal_set_fmt_version(::PROTOBUF_NAMESPACE_ID::uint64 value);
  public:

  
  // Begin code inserted by Anki plugin.
  Jdoc( ::google::protobuf::uint64 doc_version, ::google::protobuf::uint64 fmt_version, const std::string& client_metadata, const std::string& json_doc );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.Jdoc)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr client_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr json_doc_;
  ::PROTOBUF_NAMESPACE_ID::uint64 doc_version_;
  ::PROTOBUF_NAMESPACE_ID::uint64 fmt_version_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_settings_2eproto;
};
// -------------------------------------------------------------------

class NamedJdoc PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.NamedJdoc) */ {
 public:
  inline NamedJdoc() : NamedJdoc(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~NamedJdoc();

  NamedJdoc(const NamedJdoc& from);
  NamedJdoc(NamedJdoc&& from) noexcept
    : NamedJdoc() {
    *this = ::std::move(from);
  }

  inline NamedJdoc& operator=(const NamedJdoc& from) {
    CopyFrom(from);
    return *this;
  }
  inline NamedJdoc& operator=(NamedJdoc&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const NamedJdoc& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const NamedJdoc* internal_default_instance() {
    return reinterpret_cast<const NamedJdoc*>(
               &_NamedJdoc_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(NamedJdoc& a, NamedJdoc& b) {
    a.Swap(&b);
  }
  inline void Swap(NamedJdoc* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(NamedJdoc* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline NamedJdoc* New() const final {
    return CreateMaybeMessage<NamedJdoc>(nullptr);
  }

  NamedJdoc* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<NamedJdoc>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const NamedJdoc& from);
  void MergeFrom(const NamedJdoc& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(NamedJdoc* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.NamedJdoc";
  }
  protected:
  explicit NamedJdoc(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_settings_2eproto);
    return ::descriptor_table_settings_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kDocFieldNumber = 2,
    kJdocTypeFieldNumber = 1,
  };
  // .Anki.Vector.external_interface.Jdoc doc = 2;
  bool has_doc() const;
  private:
  bool _internal_has_doc() const;
  public:
  void clear_doc();
  const ::Anki::Vector::external_interface::Jdoc& doc() const;
  ::Anki::Vector::external_interface::Jdoc* release_doc();
  ::Anki::Vector::external_interface::Jdoc* mutable_doc();
  void set_allocated_doc(::Anki::Vector::external_interface::Jdoc* doc);
  private:
  const ::Anki::Vector::external_interface::Jdoc& _internal_doc() const;
  ::Anki::Vector::external_interface::Jdoc* _internal_mutable_doc();
  public:
  void unsafe_arena_set_allocated_doc(
      ::Anki::Vector::external_interface::Jdoc* doc);
  ::Anki::Vector::external_interface::Jdoc* unsafe_arena_release_doc();

  // .Anki.Vector.external_interface.JdocType jdoc_type = 1;
  void clear_jdoc_type();
  ::Anki::Vector::external_interface::JdocType jdoc_type() const;
  void set_jdoc_type(::Anki::Vector::external_interface::JdocType value);
  private:
  ::Anki::Vector::external_interface::JdocType _internal_jdoc_type() const;
  void _internal_set_jdoc_type(::Anki::Vector::external_interface::JdocType value);
  public:

  
  // Begin code inserted by Anki plugin.
  NamedJdoc( ::Anki::Vector::external_interface::JdocType jdoc_type, Jdoc* doc );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.NamedJdoc)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::Jdoc* doc_;
  int jdoc_type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_settings_2eproto;
};
// -------------------------------------------------------------------

class PullJdocsRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.PullJdocsRequest) */ {
 public:
  inline PullJdocsRequest() : PullJdocsRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~PullJdocsRequest();

  PullJdocsRequest(const PullJdocsRequest& from);
  PullJdocsRequest(PullJdocsRequest&& from) noexcept
    : PullJdocsRequest() {
    *this = ::std::move(from);
  }

  inline PullJdocsRequest& operator=(const PullJdocsRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline PullJdocsRequest& operator=(PullJdocsRequest&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const PullJdocsRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PullJdocsRequest* internal_default_instance() {
    return reinterpret_cast<const PullJdocsRequest*>(
               &_PullJdocsRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  friend void swap(PullJdocsRequest& a, PullJdocsRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(PullJdocsRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PullJdocsRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PullJdocsRequest* New() const final {
    return CreateMaybeMessage<PullJdocsRequest>(nullptr);
  }

  PullJdocsRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PullJdocsRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PullJdocsRequest& from);
  void MergeFrom(const PullJdocsRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PullJdocsRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.PullJdocsRequest";
  }
  protected:
  explicit PullJdocsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_settings_2eproto);
    return ::descriptor_table_settings_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kJdocTypesFieldNumber = 1,
  };
  // repeated .Anki.Vector.external_interface.JdocType jdoc_types = 1;
  int jdoc_types_size() const;
  private:
  int _internal_jdoc_types_size() const;
  public:
  void clear_jdoc_types();
  private:
  ::Anki::Vector::external_interface::JdocType _internal_jdoc_types(int index) const;
  void _internal_add_jdoc_types(::Anki::Vector::external_interface::JdocType value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* _internal_mutable_jdoc_types();
  public:
  ::Anki::Vector::external_interface::JdocType jdoc_types(int index) const;
  void set_jdoc_types(int index, ::Anki::Vector::external_interface::JdocType value);
  void add_jdoc_types(::Anki::Vector::external_interface::JdocType value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>& jdoc_types() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* mutable_jdoc_types();

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PullJdocsRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int> jdoc_types_;
  mutable std::atomic<int> _jdoc_types_cached_byte_size_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_settings_2eproto;
};
// -------------------------------------------------------------------

class PullJdocsResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.PullJdocsResponse) */ {
 public:
  inline PullJdocsResponse() : PullJdocsResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~PullJdocsResponse();

  PullJdocsResponse(const PullJdocsResponse& from);
  PullJdocsResponse(PullJdocsResponse&& from) noexcept
    : PullJdocsResponse() {
    *this = ::std::move(from);
  }

  inline PullJdocsResponse& operator=(const PullJdocsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline PullJdocsResponse& operator=(PullJdocsResponse&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const PullJdocsResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PullJdocsResponse* internal_default_instance() {
    return reinterpret_cast<const PullJdocsResponse*>(
               &_PullJdocsResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

  friend void swap(PullJdocsResponse& a, PullJdocsResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(PullJdocsResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PullJdocsResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PullJdocsResponse* New() const final {
    return CreateMaybeMessage<PullJdocsResponse>(nullptr);
  }

  PullJdocsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PullJdocsResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PullJdocsResponse& from);
  void MergeFrom(const PullJdocsResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PullJdocsResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.PullJdocsResponse";
  }
  protected:
  explicit PullJdocsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_settings_2eproto);
    return ::descriptor_table_settings_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kNamedJdocsFieldNumber = 2,
    kStatusFieldNumber = 1,
  };
  // repeated .Anki.Vector.external_interface.NamedJdoc named_jdocs = 2;
  int named_jdocs_size() const;
  private:
  int _internal_named_jdocs_size() const;
  public:
  void clear_named_jdocs();
  ::Anki::Vector::external_interface::NamedJdoc* mutable_named_jdocs(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::NamedJdoc >*
      mutable_named_jdocs();
  private:
  const ::Anki::Vector::external_interface::NamedJdoc& _internal_named_jdocs(int index) const;
  ::Anki::Vector::external_interface::NamedJdoc* _internal_add_named_jdocs();
  public:
  const ::Anki::Vector::external_interface::NamedJdoc& named_jdocs(int index) const;
  ::Anki::Vector::external_interface::NamedJdoc* add_named_jdocs();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::NamedJdoc >&
      named_jdocs() const;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  bool has_status() const;
  private:
  bool _internal_has_status() const;
  public:
  void clear_status();
  const ::Anki::Vector::external_interface::ResponseStatus& status() const;
  ::Anki::Vector::external_interface::ResponseStatus* release_status();
  ::Anki::Vector::external_interface::ResponseStatus* mutable_status();
  void set_allocated_status(::Anki::Vector::external_interface::ResponseStatus* status);
  private:
  const ::Anki::Vector::external_interface::ResponseStatus& _internal_status() const;
  ::Anki::Vector::external_interface::ResponseStatus* _internal_mutable_status();
  public:
  void unsafe_arena_set_allocated_status(
      ::Anki::Vector::external_interface::ResponseStatus* status);
  ::Anki::Vector::external_interface::ResponseStatus* unsafe_arena_release_status();

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PullJdocsResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::NamedJdoc > named_jdocs_;
  ::Anki::Vector::external_interface::ResponseStatus* status_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_settings_2eproto;
};
// -------------------------------------------------------------------

class UpdateSettingsRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.UpdateSettingsRequest) */ {
 public:
  inline UpdateSettingsRequest() : UpdateSettingsRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~UpdateSettingsRequest();

  UpdateSettingsRequest(const UpdateSettingsRequest& from);
  UpdateSettingsRequest(UpdateSettingsRequest&& from) noexcept
    : UpdateSettingsRequest() {
    *this = ::std::move(from);
  }

  inline UpdateSettingsRequest& operator=(const UpdateSettingsRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateSettingsRequest& operator=(UpdateSettingsRequest&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const UpdateSettingsRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const UpdateSettingsRequest* internal_default_instance() {
    return reinterpret_cast<const UpdateSettingsRequest*>(
               &_UpdateSettingsRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    8;

  friend void swap(UpdateSettingsRequest& a, UpdateSettingsRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(UpdateSettingsRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UpdateSettingsRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline UpdateSettingsRequest* New() const final {
    return CreateMaybeMessage<UpdateSettingsRequest>(nullptr);
  }

  UpdateSettingsRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<UpdateSettingsRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const UpdateSettingsRequest& from);
  void MergeFrom(const UpdateSettingsRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UpdateSettingsRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.UpdateSettingsRequest";
  }
  protected:
  explicit UpdateSettingsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_settings_2eproto);
    return ::descriptor_table_settings_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kSettingsFieldNumber = 1,
  };
  // .Anki.Vector.external_interface.RobotSettingsConfig settings = 1;
  bool has_settings() const;
  private:
  bool _internal_has_settings() const;
  public:
  void clear_settings();
  const ::Anki::Vector::external_interface::RobotSettingsConfig& settings() const;
  ::Anki::Vector::external_interface::RobotSettingsConfig* release_settings();
  ::Anki::Vector::external_interface::RobotSettingsConfig* mutable_settings();
  void set_allocated_settings(::Anki::Vector::external_interface::RobotSettingsConfig* settings);
  private:
  const ::Anki::Vector::external_interface::RobotSettingsConfig& _internal_settings() const;
  ::Anki::Vector::external_interface::RobotSettingsConfig* _internal_mutable_settings();
  public:
  void unsafe_arena_set_allocated_settings(
      ::Anki::Vector::external_interface::RobotSettingsConfig* settings);
  ::Anki::Vector::external_interface::RobotSettingsConfig* unsafe_arena_release_settings();

  
  // Begin code inserted by Anki plugin.
  explicit UpdateSettingsRequest( RobotSettingsConfig* settings );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.UpdateSettingsRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::RobotSettingsConfig* settings_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_settings_2eproto;
};
// -------------------------------------------------------------------

class UpdateSettingsResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.UpdateSettingsResponse) */ {
 public:
  inline UpdateSettingsResponse() : UpdateSettingsResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~UpdateSettingsResponse();

  UpdateSettingsResponse(const UpdateSettingsResponse& from);
  UpdateSettingsResponse(UpdateSettingsResponse&& from) noexcept
    : UpdateSettingsResponse() {
    *this = ::std::move(from);
  }

  inline UpdateSettingsResponse& operator=(const UpdateSettingsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateSettingsResponse& operator=(UpdateSettingsResponse&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const UpdateSettingsResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const UpdateSettingsResponse* internal_default_instance() {
    return reinterpret_cast<const UpdateSettingsResponse*>(
               &_UpdateSettingsResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    9;

  friend void swap(UpdateSettingsResponse& a, UpdateSettingsResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(UpdateSettingsResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UpdateSettingsResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline UpdateSettingsResponse* New() const final {
    return CreateMaybeMessage<UpdateSettingsResponse>(nullptr);
  }

  UpdateSettingsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<UpdateSettingsResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const UpdateSettingsResponse& from);
  void MergeFrom(const UpdateSettingsResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UpdateSettingsResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.UpdateSettingsResponse";
  }
  protected:
  explicit UpdateSettingsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_settings_2eproto);
    return ::descriptor_table_settings_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kDocFieldNumber = 3,
    kCodeFieldNumber = 2,
  };
  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  bool has_status() const;
  private:
  bool _internal_has_status() const;
  public:
  void clear_status();
  const ::Anki::Vector::external_interface::ResponseStatus& status() const;
  ::Anki::Vector::external_interface::ResponseStatus* release_status();
  ::Anki::Vector::external_interface::ResponseStatus* mutable_status();
  void set_allocated_status(::Anki::Vector::external_interface::ResponseStatus* status);
  private:
  const ::Anki::Vector::external_interface::ResponseStatus& _internal_status() const;
  ::Anki::Vector::external_interface::ResponseStatus* _internal_mutable_status();
  public:
  void unsafe_arena_set_allocated_status(
      ::Anki::Vector::external_interface::ResponseStatus* status);
  ::Anki::Vector::external_interface::ResponseStatus* unsafe_arena_release_status();

  // .Anki.Vector.external_interface.Jdoc doc = 3;
  bool has_doc() const;
  private:
  bool _internal_has_doc() const;
  public:
  void clear_doc();
  const ::Anki::Vector::external_interface::Jdoc& doc() const;
  ::Anki::Vector::external_interface::Jdoc* release_doc();
  ::Anki::Vector::external_interface::Jdoc* mutable_doc();
  void set_allocated_doc(::Anki::Vector::external_interface::Jdoc* doc);
  private:
  const ::Anki::Vector::external_interface::Jdoc& _internal_doc() const;
  ::Anki::Vector::external_interface::Jdoc* _internal_mutable_doc();
  public:
  void unsafe_arena_set_allocated_doc(
      ::Anki::Vector::external_interface::Jdoc* doc);
  ::Anki::Vector::external_interface::Jdoc* unsafe_arena_release_doc();

  // .Anki.Vector.external_interface.ResultCode code = 2;
  void clear_code();
  ::Anki::Vector::external_interface::ResultCode code() const;
  void set_code(::Anki::Vector::external_interface::ResultCode value);
  private:
  ::Anki::Vector::external_interface::ResultCode _internal_code() const;
  void _internal_set_code(::Anki::Vector::external_interface::ResultCode value);
  public:

  
  // Begin code inserted by Anki plugin.
  UpdateSettingsResponse( ResponseStatus* status, ::Anki::Vector::external_interface::ResultCode code, Jdoc* doc );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.UpdateSettingsResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::ResponseStatus* status_;
  ::Anki::Vector::external_interface::Jdoc* doc_;
  int code_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_settings_2eproto;
};
// -------------------------------------------------------------------

class UpdateAccountSettingsRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.UpdateAccountSettingsRequest) */ {
 public:
  inline UpdateAccountSettingsRequest() : UpdateAccountSettingsRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~UpdateAccountSettingsRequest();

  UpdateAccountSettingsRequest(const UpdateAccountSettingsRequest& from);
  UpdateAccountSettingsRequest(UpdateAccountSettingsRequest&& from) noexcept
    : UpdateAccountSettingsRequest() {
    *this = ::std::move(from);
  }

  inline UpdateAccountSettingsRequest& operator=(const UpdateAccountSettingsRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateAccountSettingsRequest& operator=(UpdateAccountSettingsRequest&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const UpdateAccountSettingsRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const UpdateAccountSettingsRequest* internal_default_instance() {
    return reinterpret_cast<const UpdateAccountSettingsRequest*>(
               &_UpdateAccountSettingsRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    10;

  friend void swap(UpdateAccountSettingsRequest& a, UpdateAccountSettingsRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(UpdateAccountSettingsRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UpdateAccountSettingsRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline UpdateAccountSettingsRequest* New() const final {
    return CreateMaybeMessage<UpdateAccountSettingsRequest>(nullptr);
  }

  UpdateAccountSettingsRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<UpdateAccountSettingsRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const UpdateAccountSettingsRequest& from);
  void MergeFrom(const UpdateAccountSettingsRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UpdateAccountSettingsRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.UpdateAccountSettingsRequest";
  }
  protected:
  explicit UpdateAccountSettingsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_settings_2eproto);
    return ::descriptor_table_settings_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kAccountSettingsFieldNumber = 1,
  };
  // .Anki.Vector.external_interface.AccountSettingsConfig account_settings = 1;
  bool has_account_settings() const;
  private:
  bool _internal_has_account_settings() const;
  public:
  void clear_account_settings();
  const ::Anki::Vector::external_interface::AccountSettingsConfig& account_settings() const;
  ::Anki::Vector::external_interface::AccountSettingsConfig* release_account_settings();
  ::Anki::Vector::external_interface::AccountSettingsConfig* mutable_account_settings();
  void set_allocated_account_settings(::Anki::Vector::external_interface::AccountSettingsConfig* account_settings);
  private:
  const ::Anki::Vector::external_interface::AccountSettingsConfig& _internal_account_settings() const;
  ::Anki::Vector::external_interface::AccountSettingsConfig* _internal_mutable_account_settings();
  public:
  void unsafe_arena_set_allocated_account_settings(
      ::Anki::Vector::external_interface::AccountSettingsConfig* account_settings);
  ::Anki::Vector::external_interface::AccountSettingsConfig* unsafe_arena_release_account_settings();

  
  // Begin code inserted by Anki plugin.
  explicit UpdateAccountSettingsRequest( AccountSettingsConfig* account_settings );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.UpdateAccountSettingsRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::AccountSettingsConfig* account_settings_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_settings_2eproto;
};
// -------------------------------------------------------------------

class UpdateAccountSettingsResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.UpdateAccountSettingsResponse) */ {
 public:
  inline UpdateAccountSettingsResponse() : UpdateAccountSettingsResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~UpdateAccountSettingsResponse();

  UpdateAccountSettingsResponse(const UpdateAccountSettingsResponse& from);
  UpdateAccountSettingsResponse(UpdateAccountSettingsResponse&& from) noexcept
    : UpdateAccountSettingsResponse() {
    *this = ::std::move(from);
  }

  inline UpdateAccountSettingsResponse& operator=(const UpdateAccountSettingsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateAccountSettingsResponse& operator=(UpdateAccountSettingsResponse&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const UpdateAccountSettingsResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const UpdateAccountSettingsResponse* internal_default_instance() {
    return reinterpret_cast<const UpdateAccountSettingsResponse*>(
               &_UpdateAccountSettingsResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    11;

  friend void swap(UpdateAccountSettingsResponse& a, UpdateAccountSettingsResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(UpdateAccountSettingsResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UpdateAccountSettingsResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline UpdateAccountSettingsResponse* New() const final {
    return CreateMaybeMessage<UpdateAccountSettingsResponse>(nullptr);
  }

  UpdateAccountSettingsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<UpdateAccountSettingsResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const UpdateAccountSettingsResponse& from);
  void MergeFrom(const UpdateAccountSettingsResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UpdateAccountSettingsResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.UpdateAccountSettingsResponse";
  }
  protected:
  explicit UpdateAccountSettingsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_settings_2eproto);
    return ::descriptor_table_settings_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kDocFieldNumber = 3,
    kCodeFieldNumber = 2,
  };
  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  bool has_status() const;
  private:
  bool _internal_has_status() const;
  public:
  void clear_status();
  const ::Anki::Vector::external_interface::ResponseStatus& status() const;
  ::Anki::Vector::external_interface::ResponseStatus* release_status();
  ::Anki::Vector::external_interface::ResponseStatus* mutable_status();
  void set_allocated_status(::Anki::Vector::external_interface::ResponseStatus* status);
  private:
  const ::Anki::Vector::external_interface::ResponseStatus& _internal_status() const;
  ::Anki::Vector::external_interface::ResponseStatus* _internal_mutable_status();
  public:
  void unsafe_arena_set_allocated_status(
      ::Anki::Vector::external_interface::ResponseStatus* status);
  ::Anki::Vector::external_interface::ResponseStatus* unsafe_arena_release_status();

  // .Anki.Vector.external_interface.Jdoc doc = 3;
  bool has_doc() const;
  private:
  bool _internal_has_doc() const;
  public:
  void clear_doc();
  const ::Anki::Vector::external_interface::Jdoc& doc() const;
  ::Anki::Vector::external_interface::Jdoc* release_doc();
  ::Anki::Vector::external_interface::Jdoc* mutable_doc();
  void set_allocated_doc(::Anki::Vector::external_interface::Jdoc* doc);
  private:
  const ::Anki::Vector::external_interface::Jdoc& _internal_doc() const;
  ::Anki::Vector::external_interface::Jdoc* _internal_mutable_doc();
  public:
  void unsafe_arena_set_allocated_doc(
      ::Anki::Vector::external_interface::Jdoc* doc);
  ::Anki::Vector::external_interface::Jdoc* unsafe_arena_release_doc();

  // .Anki.Vector.external_interface.ResultCode code = 2;
  void clear_code();
  ::Anki::Vector::external_interface::ResultCode code() const;
  void set_code(::Anki::Vector::external_interface::ResultCode value);
  private:
  ::Anki::Vector::external_interface::ResultCode _internal_code() const;
  void _internal_set_code(::Anki::Vector::external_interface::ResultCode value);
  public:

  
  // Begin code inserted by Anki plugin.
  UpdateAccountSettingsResponse( ResponseStatus* status, ::Anki::Vector::external_interface::ResultCode code, Jdoc* doc );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.UpdateAccountSettingsResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::ResponseStatus* status_;
  ::Anki::Vector::external_interface::Jdoc* doc_;
  int code_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_settings_2eproto;
};
// -------------------------------------------------------------------

class UpdateUserEntitlementsRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.UpdateUserEntitlementsRequest) */ {
 public:
  inline UpdateUserEntitlementsRequest() : UpdateUserEntitlementsRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~UpdateUserEntitlementsRequest();

  UpdateUserEntitlementsRequest(const UpdateUserEntitlementsRequest& from);
  UpdateUserEntitlementsRequest(UpdateUserEntitlementsRequest&& from) noexcept
    : UpdateUserEntitlementsRequest() {
    *this = ::std::move(from);
  }

  inline UpdateUserEntitlementsRequest& operator=(const UpdateUserEntitlementsRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateUserEntitlementsRequest& operator=(UpdateUserEntitlementsRequest&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const UpdateUserEntitlementsRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const UpdateUserEntitlementsRequest* internal_default_instance() {
    return reinterpret_cast<const UpdateUserEntitlementsRequest*>(
               &_UpdateUserEntitlementsRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    12;

  friend void swap(UpdateUserEntitlementsRequest& a, UpdateUserEntitlementsRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(UpdateUserEntitlementsRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UpdateUserEntitlementsRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline UpdateUserEntitlementsRequest* New() const final {
    return CreateMaybeMessage<UpdateUserEntitlementsRequest>(nullptr);
  }

  UpdateUserEntitlementsRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<UpdateUserEntitlementsRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const UpdateUserEntitlementsRequest& from);
  void MergeFrom(const UpdateUserEntitlementsRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UpdateUserEntitlementsRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.UpdateUserEntitlementsRequest";
  }
  protected:
  explicit UpdateUserEntitlementsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_settings_2eproto);
    return ::descriptor_table_settings_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kUserEntitlementsFieldNumber = 1,
  };
  // .Anki.Vector.external_interface.UserEntitlementsConfig user_entitlements = 1;
  bool has_user_entitlements() const;
  private:
  bool _internal_has_user_entitlements() const;
  public:
  void clear_user_entitlements();
  const ::Anki::Vector::external_interface::UserEntitlementsConfig& user_entitlements() const;
  ::Anki::Vector::external_interface::UserEntitlementsConfig* release_user_entitlements();
  ::Anki::Vector::external_interface::UserEntitlementsConfig* mutable_user_entitlements();
  void set_allocated_user_entitlements(::Anki::Vector::external_interface::UserEntitlementsConfig* user_entitlements);
  private:
  const ::Anki::Vector::external_interface::UserEntitlementsConfig& _internal_user_entitlements() const;
  ::Anki::Vector::external_interface::UserEntitlementsConfig* _internal_mutable_user_entitlements();
  public:
  void unsafe_arena_set_allocated_user_entitlements(
      ::Anki::Vector::external_interface::UserEntitlementsConfig* user_entitlements);
  ::Anki::Vector::external_interface::UserEntitlementsConfig* unsafe_arena_release_user_entitlements();

  
  // Begin code inserted by Anki plugin.
  explicit UpdateUserEntitlementsRequest( UserEntitlementsConfig* user_entitlements );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.UpdateUserEntitlementsRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::UserEntitlementsConfig* user_entitlements_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_settings_2eproto;
};
// -------------------------------------------------------------------

class UpdateUserEntitlementsResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.UpdateUserEntitlementsResponse) */ {
 public:
  inline UpdateUserEntitlementsResponse() : UpdateUserEntitlementsResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~UpdateUserEntitlementsResponse();

  UpdateUserEntitlementsResponse(const UpdateUserEntitlementsResponse& from);
  UpdateUserEntitlementsResponse(UpdateUserEntitlementsResponse&& from) noexcept
    : UpdateUserEntitlementsResponse() {
    *this = ::std::move(from);
  }

  inline UpdateUserEntitlementsResponse& operator=(const UpdateUserEntitlementsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateUserEntitlementsResponse& operator=(UpdateUserEntitlementsResponse&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const UpdateUserEntitlementsResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const UpdateUserEntitlementsResponse* internal_default_instance() {
    return reinterpret_cast<const UpdateUserEntitlementsResponse*>(
               &_UpdateUserEntitlementsResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    13;

  friend void swap(UpdateUserEntitlementsResponse& a, UpdateUserEntitlementsResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(UpdateUserEntitlementsResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UpdateUserEntitlementsResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline UpdateUserEntitlementsResponse* New() const final {
    return CreateMaybeMessage<UpdateUserEntitlementsResponse>(nullptr);
  }

  UpdateUserEntitlementsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<UpdateUserEntitlementsResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const UpdateUserEntitlementsResponse& from);
  void MergeFrom(const UpdateUserEntitlementsResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UpdateUserEntitlementsResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.UpdateUserEntitlementsResponse";
  }
  protected:
  explicit UpdateUserEntitlementsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_settings_2eproto);
    return ::descriptor_table_settings_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kDocFieldNumber = 3,
    kCodeFieldNumber = 2,
  };
  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  bool has_status() const;
  private:
  bool _internal_has_status() const;
  public:
  void clear_status();
  const ::Anki::Vector::external_interface::ResponseStatus& status() const;
  ::Anki::Vector::external_interface::ResponseStatus* release_status();
  ::Anki::Vector::external_interface::ResponseStatus* mutable_status();
  void set_allocated_status(::Anki::Vector::external_interface::ResponseStatus* status);
  private:
  const ::Anki::Vector::external_interface::ResponseStatus& _internal_status() const;
  ::Anki::Vector::external_interface::ResponseStatus* _internal_mutable_status();
  public:
  void unsafe_arena_set_allocated_status(
      ::Anki::Vector::external_interface::ResponseStatus* status);
  ::Anki::Vector::external_interface::ResponseStatus* unsafe_arena_release_status();

  // .Anki.Vector.external_interface.Jdoc doc = 3;
  bool has_doc() const;
  private:
  bool _internal_has_doc() const;
  public:
  void clear_doc();
  const ::Anki::Vector::external_interface::Jdoc& doc() const;
  ::Anki::Vector::external_interface::Jdoc* release_doc();
  ::Anki::Vector::external_interface::Jdoc* mutable_doc();
  void set_allocated_doc(::Anki::Vector::external_interface::Jdoc* doc);
  private:
  const ::Anki::Vector::external_interface::Jdoc& _internal_doc() const;
  ::Anki::Vector::external_interface::Jdoc* _internal_mutable_doc();
  public:
  void unsafe_arena_set_allocated_doc(
      ::Anki::Vector::external_interface::Jdoc* doc);
  ::Anki::Vector::external_interface::Jdoc* unsafe_arena_release_doc();

  // .Anki.Vector.external_interface.ResultCode code = 2;
  void clear_code();
  ::Anki::Vector::external_interface::ResultCode code() const;
  void set_code(::Anki::Vector::external_interface::ResultCode value);
  private:
  ::Anki::Vector::external_interface::ResultCode _internal_code() const;
  void _internal_set_code(::Anki::Vector::external_interface::ResultCode value);
  public:

  
  // Begin code inserted by Anki plugin.
  UpdateUserEntitlementsResponse( ResponseStatus* status, ::Anki::Vector::external_interface::ResultCode code, Jdoc* doc );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.UpdateUserEntitlementsResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::ResponseStatus* status_;
  ::Anki::Vector::external_interface::Jdoc* doc_;
  int code_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_settings_2eproto;
};
// -------------------------------------------------------------------

class JdocsChanged PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.JdocsChanged) */ {
 public:
  inline JdocsChanged() : JdocsChanged(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~JdocsChanged();

  JdocsChanged(const JdocsChanged& from);
  JdocsChanged(JdocsChanged&& from) noexcept
    : JdocsChanged() {
    *this = ::std::move(from);
  }

  inline JdocsChanged& operator=(const JdocsChanged& from) {
    CopyFrom(from);
    return *this;
  }
  inline JdocsChanged& operator=(JdocsChanged&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const JdocsChanged& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const JdocsChanged* internal_default_instance() {
    return reinterpret_cast<const JdocsChanged*>(
               &_JdocsChanged_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    14;

  friend void swap(JdocsChanged& a, JdocsChanged& b) {
    a.Swap(&b);
  }
  inline void Swap(JdocsChanged* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(JdocsChanged* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline JdocsChanged* New() const final {
    return CreateMaybeMessage<JdocsChanged>(nullptr);
  }

  JdocsChanged* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<JdocsChanged>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const JdocsChanged& from);
  void MergeFrom(const JdocsChanged& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(JdocsChanged* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.JdocsChanged";
  }
  protected:
  explicit JdocsChanged(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_settings_2eproto);
    return ::descriptor_table_settings_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kJdocTypesFieldNumber = 1,
  };
  // repeated .Anki.Vector.external_interface.JdocType jdoc_types = 1;
  int jdoc_types_size() const;
  private:
  int _internal_jdoc_types_size() const;
  public:
  void clear_jdoc_types();
  private:
  ::Anki::Vector::external_interface::JdocType _internal_jdoc_types(int index) const;
  void _internal_add_jdoc_types(::Anki::Vector::external_interface::JdocType value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* _internal_mutable_jdoc_types();
  public:
  ::Anki::Vector::external_interface::JdocType jdoc_types(int index) const;
  void set_jdoc_types(int index, ::Anki::Vector::external_interface::JdocType value);
  void add_jdoc_types(::Anki::Vector::external_interface::JdocType value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>& jdoc_types() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* mutable_jdoc_types();

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.JdocsChanged)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int> jdoc_types_;
  mutable std::atomic<int> _jdoc_types_cached_byte_size_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_settings_2eproto;
};
// ===================================================================


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

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// CustomEyeColor

// float hue = 1;
inline void CustomEyeColor::clear_hue() {
  hue_ = 0;
}
inline float CustomEyeColor::_internal_hue() const {
  return hue_;
}
inline float CustomEyeColor::hue() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CustomEyeColor.hue)
  return _internal_hue();
}
inline void CustomEyeColor::_internal_set_hue(float value) {
  
  hue_ = value;
}
inline void CustomEyeColor::set_hue(float value) {
  _internal_set_hue(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CustomEyeColor.hue)
}

// float saturation = 2;
inline void CustomEyeColor::clear_saturation() {
  saturation_ = 0;
}
inline float CustomEyeColor::_internal_saturation() const {
  return saturation_;
}
inline float CustomEyeColor::saturation() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CustomEyeColor.saturation)
  return _internal_saturation();
}
inline void CustomEyeColor::_internal_set_saturation(float value) {
  
  saturation_ = value;
}
inline void CustomEyeColor::set_saturation(float value) {
  _internal_set_saturation(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CustomEyeColor.saturation)
}

// bool enabled = 3;
inline void CustomEyeColor::clear_enabled() {
  enabled_ = false;
}
inline bool CustomEyeColor::_internal_enabled() const {
  return enabled_;
}
inline bool CustomEyeColor::enabled() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CustomEyeColor.enabled)
  return _internal_enabled();
}
inline void CustomEyeColor::_internal_set_enabled(bool value) {
  
  enabled_ = value;
}
inline void CustomEyeColor::set_enabled(bool value) {
  _internal_set_enabled(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CustomEyeColor.enabled)
}

// -------------------------------------------------------------------

// RobotSettingsConfig

// bool clock_24_hour = 1;
inline bool RobotSettingsConfig::_internal_has_clock_24_hour() const {
  return oneof_clock_24_hour_case() == kClock24Hour;
}
inline void RobotSettingsConfig::set_has_clock_24_hour() {
  _oneof_case_[0] = kClock24Hour;
}
inline void RobotSettingsConfig::clear_clock_24_hour() {
  if (_internal_has_clock_24_hour()) {
    oneof_clock_24_hour_.clock_24_hour_ = false;
    clear_has_oneof_clock_24_hour();
  }
}
inline bool RobotSettingsConfig::_internal_clock_24_hour() const {
  if (_internal_has_clock_24_hour()) {
    return oneof_clock_24_hour_.clock_24_hour_;
  }
  return false;
}
inline void RobotSettingsConfig::_internal_set_clock_24_hour(bool value) {
  if (!_internal_has_clock_24_hour()) {
    clear_oneof_clock_24_hour();
    set_has_clock_24_hour();
  }
  oneof_clock_24_hour_.clock_24_hour_ = value;
}
inline bool RobotSettingsConfig::clock_24_hour() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotSettingsConfig.clock_24_hour)
  return _internal_clock_24_hour();
}
inline void RobotSettingsConfig::set_clock_24_hour(bool value) {
  _internal_set_clock_24_hour(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotSettingsConfig.clock_24_hour)
}

// .Anki.Vector.external_interface.EyeColor eye_color = 2;
inline bool RobotSettingsConfig::_internal_has_eye_color() const {
  return oneof_eye_color_case() == kEyeColor;
}
inline void RobotSettingsConfig::set_has_eye_color() {
  _oneof_case_[1] = kEyeColor;
}
inline void RobotSettingsConfig::clear_eye_color() {
  if (_internal_has_eye_color()) {
    oneof_eye_color_.eye_color_ = 0;
    clear_has_oneof_eye_color();
  }
}
inline ::Anki::Vector::external_interface::EyeColor RobotSettingsConfig::_internal_eye_color() const {
  if (_internal_has_eye_color()) {
    return static_cast< ::Anki::Vector::external_interface::EyeColor >(oneof_eye_color_.eye_color_);
  }
  return static_cast< ::Anki::Vector::external_interface::EyeColor >(0);
}
inline ::Anki::Vector::external_interface::EyeColor RobotSettingsConfig::eye_color() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotSettingsConfig.eye_color)
  return _internal_eye_color();
}
inline void RobotSettingsConfig::_internal_set_eye_color(::Anki::Vector::external_interface::EyeColor value) {
  if (!_internal_has_eye_color()) {
    clear_oneof_eye_color();
    set_has_eye_color();
  }
  oneof_eye_color_.eye_color_ = value;
}
inline void RobotSettingsConfig::set_eye_color(::Anki::Vector::external_interface::EyeColor value) {
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotSettingsConfig.eye_color)
  _internal_set_eye_color(value);
}

// .Anki.Vector.external_interface.CustomEyeColor custom_eye_color = 3;
inline bool RobotSettingsConfig::_internal_has_custom_eye_color() const {
  return oneof_custom_eye_color_case() == kCustomEyeColor;
}
inline bool RobotSettingsConfig::has_custom_eye_color() const {
  return _internal_has_custom_eye_color();
}
inline void RobotSettingsConfig::set_has_custom_eye_color() {
  _oneof_case_[2] = kCustomEyeColor;
}
inline void RobotSettingsConfig::clear_custom_eye_color() {
  if (_internal_has_custom_eye_color()) {
    if (GetArena() == nullptr) {
      delete oneof_custom_eye_color_.custom_eye_color_;
    }
    clear_has_oneof_custom_eye_color();
  }
}
inline ::Anki::Vector::external_interface::CustomEyeColor* RobotSettingsConfig::release_custom_eye_color() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RobotSettingsConfig.custom_eye_color)
  if (_internal_has_custom_eye_color()) {
    clear_has_oneof_custom_eye_color();
      ::Anki::Vector::external_interface::CustomEyeColor* temp = oneof_custom_eye_color_.custom_eye_color_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_custom_eye_color_.custom_eye_color_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::CustomEyeColor& RobotSettingsConfig::_internal_custom_eye_color() const {
  return _internal_has_custom_eye_color()
      ? *oneof_custom_eye_color_.custom_eye_color_
      : *reinterpret_cast< ::Anki::Vector::external_interface::CustomEyeColor*>(&::Anki::Vector::external_interface::_CustomEyeColor_default_instance_);
}
inline const ::Anki::Vector::external_interface::CustomEyeColor& RobotSettingsConfig::custom_eye_color() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotSettingsConfig.custom_eye_color)
  return _internal_custom_eye_color();
}
inline ::Anki::Vector::external_interface::CustomEyeColor* RobotSettingsConfig::unsafe_arena_release_custom_eye_color() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.RobotSettingsConfig.custom_eye_color)
  if (_internal_has_custom_eye_color()) {
    clear_has_oneof_custom_eye_color();
    ::Anki::Vector::external_interface::CustomEyeColor* temp = oneof_custom_eye_color_.custom_eye_color_;
    oneof_custom_eye_color_.custom_eye_color_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void RobotSettingsConfig::unsafe_arena_set_allocated_custom_eye_color(::Anki::Vector::external_interface::CustomEyeColor* custom_eye_color) {
  clear_oneof_custom_eye_color();
  if (custom_eye_color) {
    set_has_custom_eye_color();
    oneof_custom_eye_color_.custom_eye_color_ = custom_eye_color;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.RobotSettingsConfig.custom_eye_color)
}
inline ::Anki::Vector::external_interface::CustomEyeColor* RobotSettingsConfig::_internal_mutable_custom_eye_color() {
  if (!_internal_has_custom_eye_color()) {
    clear_oneof_custom_eye_color();
    set_has_custom_eye_color();
    oneof_custom_eye_color_.custom_eye_color_ = CreateMaybeMessage< ::Anki::Vector::external_interface::CustomEyeColor >(GetArena());
  }
  return oneof_custom_eye_color_.custom_eye_color_;
}
inline ::Anki::Vector::external_interface::CustomEyeColor* RobotSettingsConfig::mutable_custom_eye_color() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotSettingsConfig.custom_eye_color)
  return _internal_mutable_custom_eye_color();
}

// string default_location = 4;
inline bool RobotSettingsConfig::_internal_has_default_location() const {
  return oneof_default_location_case() == kDefaultLocation;
}
inline void RobotSettingsConfig::set_has_default_location() {
  _oneof_case_[3] = kDefaultLocation;
}
inline void RobotSettingsConfig::clear_default_location() {
  if (_internal_has_default_location()) {
    oneof_default_location_.default_location_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
    clear_has_oneof_default_location();
  }
}
inline const std::string& RobotSettingsConfig::default_location() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotSettingsConfig.default_location)
  return _internal_default_location();
}
inline void RobotSettingsConfig::set_default_location(const std::string& value) {
  _internal_set_default_location(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotSettingsConfig.default_location)
}
inline std::string* RobotSettingsConfig::mutable_default_location() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotSettingsConfig.default_location)
  return _internal_mutable_default_location();
}
inline const std::string& RobotSettingsConfig::_internal_default_location() const {
  if (_internal_has_default_location()) {
    return oneof_default_location_.default_location_.Get();
  }
  return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited();
}
inline void RobotSettingsConfig::_internal_set_default_location(const std::string& value) {
  if (!_internal_has_default_location()) {
    clear_oneof_default_location();
    set_has_default_location();
    oneof_default_location_.default_location_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  oneof_default_location_.default_location_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void RobotSettingsConfig::set_default_location(std::string&& value) {
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotSettingsConfig.default_location)
  if (!_internal_has_default_location()) {
    clear_oneof_default_location();
    set_has_default_location();
    oneof_default_location_.default_location_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  oneof_default_location_.default_location_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.RobotSettingsConfig.default_location)
}
inline void RobotSettingsConfig::set_default_location(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  if (!_internal_has_default_location()) {
    clear_oneof_default_location();
    set_has_default_location();
    oneof_default_location_.default_location_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  oneof_default_location_.default_location_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value), GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.RobotSettingsConfig.default_location)
}
inline void RobotSettingsConfig::set_default_location(const char* value,
                             size_t size) {
  if (!_internal_has_default_location()) {
    clear_oneof_default_location();
    set_has_default_location();
    oneof_default_location_.default_location_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  oneof_default_location_.default_location_.Set(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size),
      GetArena());
  // @@protoc_insertion_point(field_set_pointer:Anki.Vector.external_interface.RobotSettingsConfig.default_location)
}
inline std::string* RobotSettingsConfig::_internal_mutable_default_location() {
  if (!_internal_has_default_location()) {
    clear_oneof_default_location();
    set_has_default_location();
    oneof_default_location_.default_location_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  return oneof_default_location_.default_location_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* RobotSettingsConfig::release_default_location() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RobotSettingsConfig.default_location)
  if (_internal_has_default_location()) {
    clear_has_oneof_default_location();
    return oneof_default_location_.default_location_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  } else {
    return nullptr;
  }
}
inline void RobotSettingsConfig::set_allocated_default_location(std::string* default_location) {
  if (has_oneof_default_location()) {
    clear_oneof_default_location();
  }
  if (default_location != nullptr) {
    set_has_default_location();
    oneof_default_location_.default_location_.UnsafeSetDefault(default_location);
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.RobotSettingsConfig.default_location)
}
inline std::string* RobotSettingsConfig::unsafe_arena_release_default_location() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.RobotSettingsConfig.default_location)
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (_internal_has_default_location()) {
    clear_has_oneof_default_location();
    return oneof_default_location_.default_location_.UnsafeArenaRelease(
        &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  } else {
    return nullptr;
  }
}
inline void RobotSettingsConfig::unsafe_arena_set_allocated_default_location(std::string* default_location) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (!_internal_has_default_location()) {
    oneof_default_location_.default_location_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  clear_oneof_default_location();
  if (default_location) {
    set_has_default_location();
    oneof_default_location_.default_location_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), default_location, GetArena());
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.RobotSettingsConfig.default_location)
}

// bool dist_is_metric = 5;
inline bool RobotSettingsConfig::_internal_has_dist_is_metric() const {
  return oneof_dist_is_metric_case() == kDistIsMetric;
}
inline void RobotSettingsConfig::set_has_dist_is_metric() {
  _oneof_case_[4] = kDistIsMetric;
}
inline void RobotSettingsConfig::clear_dist_is_metric() {
  if (_internal_has_dist_is_metric()) {
    oneof_dist_is_metric_.dist_is_metric_ = false;
    clear_has_oneof_dist_is_metric();
  }
}
inline bool RobotSettingsConfig::_internal_dist_is_metric() const {
  if (_internal_has_dist_is_metric()) {
    return oneof_dist_is_metric_.dist_is_metric_;
  }
  return false;
}
inline void RobotSettingsConfig::_internal_set_dist_is_metric(bool value) {
  if (!_internal_has_dist_is_metric()) {
    clear_oneof_dist_is_metric();
    set_has_dist_is_metric();
  }
  oneof_dist_is_metric_.dist_is_metric_ = value;
}
inline bool RobotSettingsConfig::dist_is_metric() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotSettingsConfig.dist_is_metric)
  return _internal_dist_is_metric();
}
inline void RobotSettingsConfig::set_dist_is_metric(bool value) {
  _internal_set_dist_is_metric(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotSettingsConfig.dist_is_metric)
}

// string locale = 6;
inline bool RobotSettingsConfig::_internal_has_locale() const {
  return oneof_locale_case() == kLocale;
}
inline void RobotSettingsConfig::set_has_locale() {
  _oneof_case_[5] = kLocale;
}
inline void RobotSettingsConfig::clear_locale() {
  if (_internal_has_locale()) {
    oneof_locale_.locale_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
    clear_has_oneof_locale();
  }
}
inline const std::string& RobotSettingsConfig::locale() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotSettingsConfig.locale)
  return _internal_locale();
}
inline void RobotSettingsConfig::set_locale(const std::string& value) {
  _internal_set_locale(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotSettingsConfig.locale)
}
inline std::string* RobotSettingsConfig::mutable_locale() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotSettingsConfig.locale)
  return _internal_mutable_locale();
}
inline const std::string& RobotSettingsConfig::_internal_locale() const {
  if (_internal_has_locale()) {
    return oneof_locale_.locale_.Get();
  }
  return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited();
}
inline void RobotSettingsConfig::_internal_set_locale(const std::string& value) {
  if (!_internal_has_locale()) {
    clear_oneof_locale();
    set_has_locale();
    oneof_locale_.locale_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  oneof_locale_.locale_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void RobotSettingsConfig::set_locale(std::string&& value) {
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotSettingsConfig.locale)
  if (!_internal_has_locale()) {
    clear_oneof_locale();
    set_has_locale();
    oneof_locale_.locale_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  oneof_locale_.locale_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.RobotSettingsConfig.locale)
}
inline void RobotSettingsConfig::set_locale(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  if (!_internal_has_locale()) {
    clear_oneof_locale();
    set_has_locale();
    oneof_locale_.locale_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  oneof_locale_.locale_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value), GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.RobotSettingsConfig.locale)
}
inline void RobotSettingsConfig::set_locale(const char* value,
                             size_t size) {
  if (!_internal_has_locale()) {
    clear_oneof_locale();
    set_has_locale();
    oneof_locale_.locale_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  oneof_locale_.locale_.Set(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size),
      GetArena());
  // @@protoc_insertion_point(field_set_pointer:Anki.Vector.external_interface.RobotSettingsConfig.locale)
}
inline std::string* RobotSettingsConfig::_internal_mutable_locale() {
  if (!_internal_has_locale()) {
    clear_oneof_locale();
    set_has_locale();
    oneof_locale_.locale_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  return oneof_locale_.locale_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* RobotSettingsConfig::release_locale() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RobotSettingsConfig.locale)
  if (_internal_has_locale()) {
    clear_has_oneof_locale();
    return oneof_locale_.locale_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  } else {
    return nullptr;
  }
}
inline void RobotSettingsConfig::set_allocated_locale(std::string* locale) {
  if (has_oneof_locale()) {
    clear_oneof_locale();
  }
  if (locale != nullptr) {
    set_has_locale();
    oneof_locale_.locale_.UnsafeSetDefault(locale);
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.RobotSettingsConfig.locale)
}
inline std::string* RobotSettingsConfig::unsafe_arena_release_locale() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.RobotSettingsConfig.locale)
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (_internal_has_locale()) {
    clear_has_oneof_locale();
    return oneof_locale_.locale_.UnsafeArenaRelease(
        &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  } else {
    return nullptr;
  }
}
inline void RobotSettingsConfig::unsafe_arena_set_allocated_locale(std::string* locale) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (!_internal_has_locale()) {
    oneof_locale_.locale_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  clear_oneof_locale();
  if (locale) {
    set_has_locale();
    oneof_locale_.locale_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), locale, GetArena());
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.RobotSettingsConfig.locale)
}

// .Anki.Vector.external_interface.Volume master_volume = 7;
inline bool RobotSettingsConfig::_internal_has_master_volume() const {
  return oneof_master_volume_case() == kMasterVolume;
}
inline void RobotSettingsConfig::set_has_master_volume() {
  _oneof_case_[6] = kMasterVolume;
}
inline void RobotSettingsConfig::clear_master_volume() {
  if (_internal_has_master_volume()) {
    oneof_master_volume_.master_volume_ = 0;
    clear_has_oneof_master_volume();
  }
}
inline ::Anki::Vector::external_interface::Volume RobotSettingsConfig::_internal_master_volume() const {
  if (_internal_has_master_volume()) {
    return static_cast< ::Anki::Vector::external_interface::Volume >(oneof_master_volume_.master_volume_);
  }
  return static_cast< ::Anki::Vector::external_interface::Volume >(0);
}
inline ::Anki::Vector::external_interface::Volume RobotSettingsConfig::master_volume() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotSettingsConfig.master_volume)
  return _internal_master_volume();
}
inline void RobotSettingsConfig::_internal_set_master_volume(::Anki::Vector::external_interface::Volume value) {
  if (!_internal_has_master_volume()) {
    clear_oneof_master_volume();
    set_has_master_volume();
  }
  oneof_master_volume_.master_volume_ = value;
}
inline void RobotSettingsConfig::set_master_volume(::Anki::Vector::external_interface::Volume value) {
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotSettingsConfig.master_volume)
  _internal_set_master_volume(value);
}

// bool temp_is_fahrenheit = 8;
inline bool RobotSettingsConfig::_internal_has_temp_is_fahrenheit() const {
  return oneof_temp_is_fahrenheit_case() == kTempIsFahrenheit;
}
inline void RobotSettingsConfig::set_has_temp_is_fahrenheit() {
  _oneof_case_[7] = kTempIsFahrenheit;
}
inline void RobotSettingsConfig::clear_temp_is_fahrenheit() {
  if (_internal_has_temp_is_fahrenheit()) {
    oneof_temp_is_fahrenheit_.temp_is_fahrenheit_ = false;
    clear_has_oneof_temp_is_fahrenheit();
  }
}
inline bool RobotSettingsConfig::_internal_temp_is_fahrenheit() const {
  if (_internal_has_temp_is_fahrenheit()) {
    return oneof_temp_is_fahrenheit_.temp_is_fahrenheit_;
  }
  return false;
}
inline void RobotSettingsConfig::_internal_set_temp_is_fahrenheit(bool value) {
  if (!_internal_has_temp_is_fahrenheit()) {
    clear_oneof_temp_is_fahrenheit();
    set_has_temp_is_fahrenheit();
  }
  oneof_temp_is_fahrenheit_.temp_is_fahrenheit_ = value;
}
inline bool RobotSettingsConfig::temp_is_fahrenheit() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotSettingsConfig.temp_is_fahrenheit)
  return _internal_temp_is_fahrenheit();
}
inline void RobotSettingsConfig::set_temp_is_fahrenheit(bool value) {
  _internal_set_temp_is_fahrenheit(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotSettingsConfig.temp_is_fahrenheit)
}

// string time_zone = 9;
inline bool RobotSettingsConfig::_internal_has_time_zone() const {
  return oneof_time_zone_case() == kTimeZone;
}
inline void RobotSettingsConfig::set_has_time_zone() {
  _oneof_case_[8] = kTimeZone;
}
inline void RobotSettingsConfig::clear_time_zone() {
  if (_internal_has_time_zone()) {
    oneof_time_zone_.time_zone_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
    clear_has_oneof_time_zone();
  }
}
inline const std::string& RobotSettingsConfig::time_zone() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotSettingsConfig.time_zone)
  return _internal_time_zone();
}
inline void RobotSettingsConfig::set_time_zone(const std::string& value) {
  _internal_set_time_zone(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotSettingsConfig.time_zone)
}
inline std::string* RobotSettingsConfig::mutable_time_zone() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotSettingsConfig.time_zone)
  return _internal_mutable_time_zone();
}
inline const std::string& RobotSettingsConfig::_internal_time_zone() const {
  if (_internal_has_time_zone()) {
    return oneof_time_zone_.time_zone_.Get();
  }
  return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited();
}
inline void RobotSettingsConfig::_internal_set_time_zone(const std::string& value) {
  if (!_internal_has_time_zone()) {
    clear_oneof_time_zone();
    set_has_time_zone();
    oneof_time_zone_.time_zone_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  oneof_time_zone_.time_zone_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void RobotSettingsConfig::set_time_zone(std::string&& value) {
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotSettingsConfig.time_zone)
  if (!_internal_has_time_zone()) {
    clear_oneof_time_zone();
    set_has_time_zone();
    oneof_time_zone_.time_zone_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  oneof_time_zone_.time_zone_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.RobotSettingsConfig.time_zone)
}
inline void RobotSettingsConfig::set_time_zone(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  if (!_internal_has_time_zone()) {
    clear_oneof_time_zone();
    set_has_time_zone();
    oneof_time_zone_.time_zone_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  oneof_time_zone_.time_zone_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value), GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.RobotSettingsConfig.time_zone)
}
inline void RobotSettingsConfig::set_time_zone(const char* value,
                             size_t size) {
  if (!_internal_has_time_zone()) {
    clear_oneof_time_zone();
    set_has_time_zone();
    oneof_time_zone_.time_zone_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  oneof_time_zone_.time_zone_.Set(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size),
      GetArena());
  // @@protoc_insertion_point(field_set_pointer:Anki.Vector.external_interface.RobotSettingsConfig.time_zone)
}
inline std::string* RobotSettingsConfig::_internal_mutable_time_zone() {
  if (!_internal_has_time_zone()) {
    clear_oneof_time_zone();
    set_has_time_zone();
    oneof_time_zone_.time_zone_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  return oneof_time_zone_.time_zone_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* RobotSettingsConfig::release_time_zone() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RobotSettingsConfig.time_zone)
  if (_internal_has_time_zone()) {
    clear_has_oneof_time_zone();
    return oneof_time_zone_.time_zone_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  } else {
    return nullptr;
  }
}
inline void RobotSettingsConfig::set_allocated_time_zone(std::string* time_zone) {
  if (has_oneof_time_zone()) {
    clear_oneof_time_zone();
  }
  if (time_zone != nullptr) {
    set_has_time_zone();
    oneof_time_zone_.time_zone_.UnsafeSetDefault(time_zone);
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.RobotSettingsConfig.time_zone)
}
inline std::string* RobotSettingsConfig::unsafe_arena_release_time_zone() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.RobotSettingsConfig.time_zone)
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (_internal_has_time_zone()) {
    clear_has_oneof_time_zone();
    return oneof_time_zone_.time_zone_.UnsafeArenaRelease(
        &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  } else {
    return nullptr;
  }
}
inline void RobotSettingsConfig::unsafe_arena_set_allocated_time_zone(std::string* time_zone) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (!_internal_has_time_zone()) {
    oneof_time_zone_.time_zone_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  clear_oneof_time_zone();
  if (time_zone) {
    set_has_time_zone();
    oneof_time_zone_.time_zone_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), time_zone, GetArena());
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.RobotSettingsConfig.time_zone)
}

// .Anki.Vector.external_interface.ButtonWakeWord button_wakeword = 10;
inline bool RobotSettingsConfig::_internal_has_button_wakeword() const {
  return oneof_button_wakeword_case() == kButtonWakeword;
}
inline void RobotSettingsConfig::set_has_button_wakeword() {
  _oneof_case_[9] = kButtonWakeword;
}
inline void RobotSettingsConfig::clear_button_wakeword() {
  if (_internal_has_button_wakeword()) {
    oneof_button_wakeword_.button_wakeword_ = 0;
    clear_has_oneof_button_wakeword();
  }
}
inline ::Anki::Vector::external_interface::ButtonWakeWord RobotSettingsConfig::_internal_button_wakeword() const {
  if (_internal_has_button_wakeword()) {
    return static_cast< ::Anki::Vector::external_interface::ButtonWakeWord >(oneof_button_wakeword_.button_wakeword_);
  }
  return static_cast< ::Anki::Vector::external_interface::ButtonWakeWord >(0);
}
inline ::Anki::Vector::external_interface::ButtonWakeWord RobotSettingsConfig::button_wakeword() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotSettingsConfig.button_wakeword)
  return _internal_button_wakeword();
}
inline void RobotSettingsConfig::_internal_set_button_wakeword(::Anki::Vector::external_interface::ButtonWakeWord value) {
  if (!_internal_has_button_wakeword()) {
    clear_oneof_button_wakeword();
    set_has_button_wakeword();
  }
  oneof_button_wakeword_.button_wakeword_ = value;
}
inline void RobotSettingsConfig::set_button_wakeword(::Anki::Vector::external_interface::ButtonWakeWord value) {
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotSettingsConfig.button_wakeword)
  _internal_set_button_wakeword(value);
}

inline bool RobotSettingsConfig::has_oneof_clock_24_hour() const {
  return oneof_clock_24_hour_case() != ONEOF_CLOCK_24_HOUR_NOT_SET;
}
inline void RobotSettingsConfig::clear_has_oneof_clock_24_hour() {
  _oneof_case_[0] = ONEOF_CLOCK_24_HOUR_NOT_SET;
}
inline bool RobotSettingsConfig::has_oneof_eye_color() const {
  return oneof_eye_color_case() != ONEOF_EYE_COLOR_NOT_SET;
}
inline void RobotSettingsConfig::clear_has_oneof_eye_color() {
  _oneof_case_[1] = ONEOF_EYE_COLOR_NOT_SET;
}
inline bool RobotSettingsConfig::has_oneof_custom_eye_color() const {
  return oneof_custom_eye_color_case() != ONEOF_CUSTOM_EYE_COLOR_NOT_SET;
}
inline void RobotSettingsConfig::clear_has_oneof_custom_eye_color() {
  _oneof_case_[2] = ONEOF_CUSTOM_EYE_COLOR_NOT_SET;
}
inline bool RobotSettingsConfig::has_oneof_default_location() const {
  return oneof_default_location_case() != ONEOF_DEFAULT_LOCATION_NOT_SET;
}
inline void RobotSettingsConfig::clear_has_oneof_default_location() {
  _oneof_case_[3] = ONEOF_DEFAULT_LOCATION_NOT_SET;
}
inline bool RobotSettingsConfig::has_oneof_dist_is_metric() const {
  return oneof_dist_is_metric_case() != ONEOF_DIST_IS_METRIC_NOT_SET;
}
inline void RobotSettingsConfig::clear_has_oneof_dist_is_metric() {
  _oneof_case_[4] = ONEOF_DIST_IS_METRIC_NOT_SET;
}
inline bool RobotSettingsConfig::has_oneof_locale() const {
  return oneof_locale_case() != ONEOF_LOCALE_NOT_SET;
}
inline void RobotSettingsConfig::clear_has_oneof_locale() {
  _oneof_case_[5] = ONEOF_LOCALE_NOT_SET;
}
inline bool RobotSettingsConfig::has_oneof_master_volume() const {
  return oneof_master_volume_case() != ONEOF_MASTER_VOLUME_NOT_SET;
}
inline void RobotSettingsConfig::clear_has_oneof_master_volume() {
  _oneof_case_[6] = ONEOF_MASTER_VOLUME_NOT_SET;
}
inline bool RobotSettingsConfig::has_oneof_temp_is_fahrenheit() const {
  return oneof_temp_is_fahrenheit_case() != ONEOF_TEMP_IS_FAHRENHEIT_NOT_SET;
}
inline void RobotSettingsConfig::clear_has_oneof_temp_is_fahrenheit() {
  _oneof_case_[7] = ONEOF_TEMP_IS_FAHRENHEIT_NOT_SET;
}
inline bool RobotSettingsConfig::has_oneof_time_zone() const {
  return oneof_time_zone_case() != ONEOF_TIME_ZONE_NOT_SET;
}
inline void RobotSettingsConfig::clear_has_oneof_time_zone() {
  _oneof_case_[8] = ONEOF_TIME_ZONE_NOT_SET;
}
inline bool RobotSettingsConfig::has_oneof_button_wakeword() const {
  return oneof_button_wakeword_case() != ONEOF_BUTTON_WAKEWORD_NOT_SET;
}
inline void RobotSettingsConfig::clear_has_oneof_button_wakeword() {
  _oneof_case_[9] = ONEOF_BUTTON_WAKEWORD_NOT_SET;
}
inline RobotSettingsConfig::OneofClock24HourCase RobotSettingsConfig::oneof_clock_24_hour_case() const {
  return RobotSettingsConfig::OneofClock24HourCase(_oneof_case_[0]);
}
inline RobotSettingsConfig::OneofEyeColorCase RobotSettingsConfig::oneof_eye_color_case() const {
  return RobotSettingsConfig::OneofEyeColorCase(_oneof_case_[1]);
}
inline RobotSettingsConfig::OneofCustomEyeColorCase RobotSettingsConfig::oneof_custom_eye_color_case() const {
  return RobotSettingsConfig::OneofCustomEyeColorCase(_oneof_case_[2]);
}
inline RobotSettingsConfig::OneofDefaultLocationCase RobotSettingsConfig::oneof_default_location_case() const {
  return RobotSettingsConfig::OneofDefaultLocationCase(_oneof_case_[3]);
}
inline RobotSettingsConfig::OneofDistIsMetricCase RobotSettingsConfig::oneof_dist_is_metric_case() const {
  return RobotSettingsConfig::OneofDistIsMetricCase(_oneof_case_[4]);
}
inline RobotSettingsConfig::OneofLocaleCase RobotSettingsConfig::oneof_locale_case() const {
  return RobotSettingsConfig::OneofLocaleCase(_oneof_case_[5]);
}
inline RobotSettingsConfig::OneofMasterVolumeCase RobotSettingsConfig::oneof_master_volume_case() const {
  return RobotSettingsConfig::OneofMasterVolumeCase(_oneof_case_[6]);
}
inline RobotSettingsConfig::OneofTempIsFahrenheitCase RobotSettingsConfig::oneof_temp_is_fahrenheit_case() const {
  return RobotSettingsConfig::OneofTempIsFahrenheitCase(_oneof_case_[7]);
}
inline RobotSettingsConfig::OneofTimeZoneCase RobotSettingsConfig::oneof_time_zone_case() const {
  return RobotSettingsConfig::OneofTimeZoneCase(_oneof_case_[8]);
}
inline RobotSettingsConfig::OneofButtonWakewordCase RobotSettingsConfig::oneof_button_wakeword_case() const {
  return RobotSettingsConfig::OneofButtonWakewordCase(_oneof_case_[9]);
}
// -------------------------------------------------------------------

// AccountSettingsConfig

// bool data_collection = 1;
inline bool AccountSettingsConfig::_internal_has_data_collection() const {
  return oneof_data_collection_case() == kDataCollection;
}
inline void AccountSettingsConfig::set_has_data_collection() {
  _oneof_case_[0] = kDataCollection;
}
inline void AccountSettingsConfig::clear_data_collection() {
  if (_internal_has_data_collection()) {
    oneof_data_collection_.data_collection_ = false;
    clear_has_oneof_data_collection();
  }
}
inline bool AccountSettingsConfig::_internal_data_collection() const {
  if (_internal_has_data_collection()) {
    return oneof_data_collection_.data_collection_;
  }
  return false;
}
inline void AccountSettingsConfig::_internal_set_data_collection(bool value) {
  if (!_internal_has_data_collection()) {
    clear_oneof_data_collection();
    set_has_data_collection();
  }
  oneof_data_collection_.data_collection_ = value;
}
inline bool AccountSettingsConfig::data_collection() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AccountSettingsConfig.data_collection)
  return _internal_data_collection();
}
inline void AccountSettingsConfig::set_data_collection(bool value) {
  _internal_set_data_collection(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AccountSettingsConfig.data_collection)
}

// string app_locale = 2;
inline bool AccountSettingsConfig::_internal_has_app_locale() const {
  return oneof_app_locale_case() == kAppLocale;
}
inline void AccountSettingsConfig::set_has_app_locale() {
  _oneof_case_[1] = kAppLocale;
}
inline void AccountSettingsConfig::clear_app_locale() {
  if (_internal_has_app_locale()) {
    oneof_app_locale_.app_locale_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
    clear_has_oneof_app_locale();
  }
}
inline const std::string& AccountSettingsConfig::app_locale() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AccountSettingsConfig.app_locale)
  return _internal_app_locale();
}
inline void AccountSettingsConfig::set_app_locale(const std::string& value) {
  _internal_set_app_locale(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AccountSettingsConfig.app_locale)
}
inline std::string* AccountSettingsConfig::mutable_app_locale() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.AccountSettingsConfig.app_locale)
  return _internal_mutable_app_locale();
}
inline const std::string& AccountSettingsConfig::_internal_app_locale() const {
  if (_internal_has_app_locale()) {
    return oneof_app_locale_.app_locale_.Get();
  }
  return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited();
}
inline void AccountSettingsConfig::_internal_set_app_locale(const std::string& value) {
  if (!_internal_has_app_locale()) {
    clear_oneof_app_locale();
    set_has_app_locale();
    oneof_app_locale_.app_locale_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  oneof_app_locale_.app_locale_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void AccountSettingsConfig::set_app_locale(std::string&& value) {
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AccountSettingsConfig.app_locale)
  if (!_internal_has_app_locale()) {
    clear_oneof_app_locale();
    set_has_app_locale();
    oneof_app_locale_.app_locale_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  oneof_app_locale_.app_locale_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.AccountSettingsConfig.app_locale)
}
inline void AccountSettingsConfig::set_app_locale(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  if (!_internal_has_app_locale()) {
    clear_oneof_app_locale();
    set_has_app_locale();
    oneof_app_locale_.app_locale_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  oneof_app_locale_.app_locale_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value), GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.AccountSettingsConfig.app_locale)
}
inline void AccountSettingsConfig::set_app_locale(const char* value,
                             size_t size) {
  if (!_internal_has_app_locale()) {
    clear_oneof_app_locale();
    set_has_app_locale();
    oneof_app_locale_.app_locale_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  oneof_app_locale_.app_locale_.Set(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size),
      GetArena());
  // @@protoc_insertion_point(field_set_pointer:Anki.Vector.external_interface.AccountSettingsConfig.app_locale)
}
inline std::string* AccountSettingsConfig::_internal_mutable_app_locale() {
  if (!_internal_has_app_locale()) {
    clear_oneof_app_locale();
    set_has_app_locale();
    oneof_app_locale_.app_locale_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  return oneof_app_locale_.app_locale_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* AccountSettingsConfig::release_app_locale() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.AccountSettingsConfig.app_locale)
  if (_internal_has_app_locale()) {
    clear_has_oneof_app_locale();
    return oneof_app_locale_.app_locale_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  } else {
    return nullptr;
  }
}
inline void AccountSettingsConfig::set_allocated_app_locale(std::string* app_locale) {
  if (has_oneof_app_locale()) {
    clear_oneof_app_locale();
  }
  if (app_locale != nullptr) {
    set_has_app_locale();
    oneof_app_locale_.app_locale_.UnsafeSetDefault(app_locale);
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.AccountSettingsConfig.app_locale)
}
inline std::string* AccountSettingsConfig::unsafe_arena_release_app_locale() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.AccountSettingsConfig.app_locale)
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (_internal_has_app_locale()) {
    clear_has_oneof_app_locale();
    return oneof_app_locale_.app_locale_.UnsafeArenaRelease(
        &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  } else {
    return nullptr;
  }
}
inline void AccountSettingsConfig::unsafe_arena_set_allocated_app_locale(std::string* app_locale) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (!_internal_has_app_locale()) {
    oneof_app_locale_.app_locale_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  clear_oneof_app_locale();
  if (app_locale) {
    set_has_app_locale();
    oneof_app_locale_.app_locale_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), app_locale, GetArena());
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.AccountSettingsConfig.app_locale)
}

inline bool AccountSettingsConfig::has_oneof_data_collection() const {
  return oneof_data_collection_case() != ONEOF_DATA_COLLECTION_NOT_SET;
}
inline void AccountSettingsConfig::clear_has_oneof_data_collection() {
  _oneof_case_[0] = ONEOF_DATA_COLLECTION_NOT_SET;
}
inline bool AccountSettingsConfig::has_oneof_app_locale() const {
  return oneof_app_locale_case() != ONEOF_APP_LOCALE_NOT_SET;
}
inline void AccountSettingsConfig::clear_has_oneof_app_locale() {
  _oneof_case_[1] = ONEOF_APP_LOCALE_NOT_SET;
}
inline AccountSettingsConfig::OneofDataCollectionCase AccountSettingsConfig::oneof_data_collection_case() const {
  return AccountSettingsConfig::OneofDataCollectionCase(_oneof_case_[0]);
}
inline AccountSettingsConfig::OneofAppLocaleCase AccountSettingsConfig::oneof_app_locale_case() const {
  return AccountSettingsConfig::OneofAppLocaleCase(_oneof_case_[1]);
}
// -------------------------------------------------------------------

// UserEntitlementsConfig

// bool kickstarter_eyes = 1;
inline bool UserEntitlementsConfig::_internal_has_kickstarter_eyes() const {
  return oneof_kickstarter_eyes_case() == kKickstarterEyes;
}
inline void UserEntitlementsConfig::set_has_kickstarter_eyes() {
  _oneof_case_[0] = kKickstarterEyes;
}
inline void UserEntitlementsConfig::clear_kickstarter_eyes() {
  if (_internal_has_kickstarter_eyes()) {
    oneof_kickstarter_eyes_.kickstarter_eyes_ = false;
    clear_has_oneof_kickstarter_eyes();
  }
}
inline bool UserEntitlementsConfig::_internal_kickstarter_eyes() const {
  if (_internal_has_kickstarter_eyes()) {
    return oneof_kickstarter_eyes_.kickstarter_eyes_;
  }
  return false;
}
inline void UserEntitlementsConfig::_internal_set_kickstarter_eyes(bool value) {
  if (!_internal_has_kickstarter_eyes()) {
    clear_oneof_kickstarter_eyes();
    set_has_kickstarter_eyes();
  }
  oneof_kickstarter_eyes_.kickstarter_eyes_ = value;
}
inline bool UserEntitlementsConfig::kickstarter_eyes() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UserEntitlementsConfig.kickstarter_eyes)
  return _internal_kickstarter_eyes();
}
inline void UserEntitlementsConfig::set_kickstarter_eyes(bool value) {
  _internal_set_kickstarter_eyes(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.UserEntitlementsConfig.kickstarter_eyes)
}

inline bool UserEntitlementsConfig::has_oneof_kickstarter_eyes() const {
  return oneof_kickstarter_eyes_case() != ONEOF_KICKSTARTER_EYES_NOT_SET;
}
inline void UserEntitlementsConfig::clear_has_oneof_kickstarter_eyes() {
  _oneof_case_[0] = ONEOF_KICKSTARTER_EYES_NOT_SET;
}
inline UserEntitlementsConfig::OneofKickstarterEyesCase UserEntitlementsConfig::oneof_kickstarter_eyes_case() const {
  return UserEntitlementsConfig::OneofKickstarterEyesCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// Jdoc

// uint64 doc_version = 1;
inline void Jdoc::clear_doc_version() {
  doc_version_ = PROTOBUF_ULONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::uint64 Jdoc::_internal_doc_version() const {
  return doc_version_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint64 Jdoc::doc_version() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Jdoc.doc_version)
  return _internal_doc_version();
}
inline void Jdoc::_internal_set_doc_version(::PROTOBUF_NAMESPACE_ID::uint64 value) {
  
  doc_version_ = value;
}
inline void Jdoc::set_doc_version(::PROTOBUF_NAMESPACE_ID::uint64 value) {
  _internal_set_doc_version(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.Jdoc.doc_version)
}

// uint64 fmt_version = 2;
inline void Jdoc::clear_fmt_version() {
  fmt_version_ = PROTOBUF_ULONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::uint64 Jdoc::_internal_fmt_version() const {
  return fmt_version_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint64 Jdoc::fmt_version() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Jdoc.fmt_version)
  return _internal_fmt_version();
}
inline void Jdoc::_internal_set_fmt_version(::PROTOBUF_NAMESPACE_ID::uint64 value) {
  
  fmt_version_ = value;
}
inline void Jdoc::set_fmt_version(::PROTOBUF_NAMESPACE_ID::uint64 value) {
  _internal_set_fmt_version(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.Jdoc.fmt_version)
}

// string client_metadata = 3;
inline void Jdoc::clear_client_metadata() {
  client_metadata_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& Jdoc::client_metadata() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Jdoc.client_metadata)
  return _internal_client_metadata();
}
inline void Jdoc::set_client_metadata(const std::string& value) {
  _internal_set_client_metadata(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.Jdoc.client_metadata)
}
inline std::string* Jdoc::mutable_client_metadata() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Jdoc.client_metadata)
  return _internal_mutable_client_metadata();
}
inline const std::string& Jdoc::_internal_client_metadata() const {
  return client_metadata_.Get();
}
inline void Jdoc::_internal_set_client_metadata(const std::string& value) {
  
  client_metadata_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void Jdoc::set_client_metadata(std::string&& value) {
  
  client_metadata_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.Jdoc.client_metadata)
}
inline void Jdoc::set_client_metadata(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  client_metadata_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.Jdoc.client_metadata)
}
inline void Jdoc::set_client_metadata(const char* value,
    size_t size) {
  
  client_metadata_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:Anki.Vector.external_interface.Jdoc.client_metadata)
}
inline std::string* Jdoc::_internal_mutable_client_metadata() {
  
  return client_metadata_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* Jdoc::release_client_metadata() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Jdoc.client_metadata)
  return client_metadata_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void Jdoc::set_allocated_client_metadata(std::string* client_metadata) {
  if (client_metadata != nullptr) {
    
  } else {
    
  }
  client_metadata_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), client_metadata,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Jdoc.client_metadata)
}
inline std::string* Jdoc::unsafe_arena_release_client_metadata() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Jdoc.client_metadata)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return client_metadata_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void Jdoc::unsafe_arena_set_allocated_client_metadata(
    std::string* client_metadata) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (client_metadata != nullptr) {
    
  } else {
    
  }
  client_metadata_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      client_metadata, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Jdoc.client_metadata)
}

// string json_doc = 4;
inline void Jdoc::clear_json_doc() {
  json_doc_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& Jdoc::json_doc() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Jdoc.json_doc)
  return _internal_json_doc();
}
inline void Jdoc::set_json_doc(const std::string& value) {
  _internal_set_json_doc(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.Jdoc.json_doc)
}
inline std::string* Jdoc::mutable_json_doc() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Jdoc.json_doc)
  return _internal_mutable_json_doc();
}
inline const std::string& Jdoc::_internal_json_doc() const {
  return json_doc_.Get();
}
inline void Jdoc::_internal_set_json_doc(const std::string& value) {
  
  json_doc_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void Jdoc::set_json_doc(std::string&& value) {
  
  json_doc_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.Jdoc.json_doc)
}
inline void Jdoc::set_json_doc(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  json_doc_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.Jdoc.json_doc)
}
inline void Jdoc::set_json_doc(const char* value,
    size_t size) {
  
  json_doc_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:Anki.Vector.external_interface.Jdoc.json_doc)
}
inline std::string* Jdoc::_internal_mutable_json_doc() {
  
  return json_doc_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* Jdoc::release_json_doc() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Jdoc.json_doc)
  return json_doc_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void Jdoc::set_allocated_json_doc(std::string* json_doc) {
  if (json_doc != nullptr) {
    
  } else {
    
  }
  json_doc_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), json_doc,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Jdoc.json_doc)
}
inline std::string* Jdoc::unsafe_arena_release_json_doc() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Jdoc.json_doc)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return json_doc_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void Jdoc::unsafe_arena_set_allocated_json_doc(
    std::string* json_doc) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (json_doc != nullptr) {
    
  } else {
    
  }
  json_doc_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      json_doc, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Jdoc.json_doc)
}

// -------------------------------------------------------------------

// NamedJdoc

// .Anki.Vector.external_interface.JdocType jdoc_type = 1;
inline void NamedJdoc::clear_jdoc_type() {
  jdoc_type_ = 0;
}
inline ::Anki::Vector::external_interface::JdocType NamedJdoc::_internal_jdoc_type() const {
  return static_cast< ::Anki::Vector::external_interface::JdocType >(jdoc_type_);
}
inline ::Anki::Vector::external_interface::JdocType NamedJdoc::jdoc_type() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.NamedJdoc.jdoc_type)
  return _internal_jdoc_type();
}
inline void NamedJdoc::_internal_set_jdoc_type(::Anki::Vector::external_interface::JdocType value) {
  
  jdoc_type_ = value;
}
inline void NamedJdoc::set_jdoc_type(::Anki::Vector::external_interface::JdocType value) {
  _internal_set_jdoc_type(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.NamedJdoc.jdoc_type)
}

// .Anki.Vector.external_interface.Jdoc doc = 2;
inline bool NamedJdoc::_internal_has_doc() const {
  return this != internal_default_instance() && doc_ != nullptr;
}
inline bool NamedJdoc::has_doc() const {
  return _internal_has_doc();
}
inline void NamedJdoc::clear_doc() {
  if (GetArena() == nullptr && doc_ != nullptr) {
    delete doc_;
  }
  doc_ = nullptr;
}
inline const ::Anki::Vector::external_interface::Jdoc& NamedJdoc::_internal_doc() const {
  const ::Anki::Vector::external_interface::Jdoc* p = doc_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::Jdoc*>(
      &::Anki::Vector::external_interface::_Jdoc_default_instance_);
}
inline const ::Anki::Vector::external_interface::Jdoc& NamedJdoc::doc() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.NamedJdoc.doc)
  return _internal_doc();
}
inline void NamedJdoc::unsafe_arena_set_allocated_doc(
    ::Anki::Vector::external_interface::Jdoc* doc) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(doc_);
  }
  doc_ = doc;
  if (doc) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.NamedJdoc.doc)
}
inline ::Anki::Vector::external_interface::Jdoc* NamedJdoc::release_doc() {
  auto temp = unsafe_arena_release_doc();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::Jdoc* NamedJdoc::unsafe_arena_release_doc() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.NamedJdoc.doc)
  
  ::Anki::Vector::external_interface::Jdoc* temp = doc_;
  doc_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::Jdoc* NamedJdoc::_internal_mutable_doc() {
  
  if (doc_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::Jdoc>(GetArena());
    doc_ = p;
  }
  return doc_;
}
inline ::Anki::Vector::external_interface::Jdoc* NamedJdoc::mutable_doc() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.NamedJdoc.doc)
  return _internal_mutable_doc();
}
inline void NamedJdoc::set_allocated_doc(::Anki::Vector::external_interface::Jdoc* doc) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete doc_;
  }
  if (doc) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(doc);
    if (message_arena != submessage_arena) {
      doc = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, doc, submessage_arena);
    }
    
  } else {
    
  }
  doc_ = doc;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.NamedJdoc.doc)
}

// -------------------------------------------------------------------

// PullJdocsRequest

// repeated .Anki.Vector.external_interface.JdocType jdoc_types = 1;
inline int PullJdocsRequest::_internal_jdoc_types_size() const {
  return jdoc_types_.size();
}
inline int PullJdocsRequest::jdoc_types_size() const {
  return _internal_jdoc_types_size();
}
inline void PullJdocsRequest::clear_jdoc_types() {
  jdoc_types_.Clear();
}
inline ::Anki::Vector::external_interface::JdocType PullJdocsRequest::_internal_jdoc_types(int index) const {
  return static_cast< ::Anki::Vector::external_interface::JdocType >(jdoc_types_.Get(index));
}
inline ::Anki::Vector::external_interface::JdocType PullJdocsRequest::jdoc_types(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PullJdocsRequest.jdoc_types)
  return _internal_jdoc_types(index);
}
inline void PullJdocsRequest::set_jdoc_types(int index, ::Anki::Vector::external_interface::JdocType value) {
  jdoc_types_.Set(index, value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PullJdocsRequest.jdoc_types)
}
inline void PullJdocsRequest::_internal_add_jdoc_types(::Anki::Vector::external_interface::JdocType value) {
  jdoc_types_.Add(value);
}
inline void PullJdocsRequest::add_jdoc_types(::Anki::Vector::external_interface::JdocType value) {
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.PullJdocsRequest.jdoc_types)
  _internal_add_jdoc_types(value);
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>&
PullJdocsRequest::jdoc_types() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.PullJdocsRequest.jdoc_types)
  return jdoc_types_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
PullJdocsRequest::_internal_mutable_jdoc_types() {
  return &jdoc_types_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
PullJdocsRequest::mutable_jdoc_types() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.PullJdocsRequest.jdoc_types)
  return _internal_mutable_jdoc_types();
}

// -------------------------------------------------------------------

// PullJdocsResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool PullJdocsResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool PullJdocsResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& PullJdocsResponse::_internal_status() const {
  const ::Anki::Vector::external_interface::ResponseStatus* p = status_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ResponseStatus*>(
      &::Anki::Vector::external_interface::_ResponseStatus_default_instance_);
}
inline const ::Anki::Vector::external_interface::ResponseStatus& PullJdocsResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PullJdocsResponse.status)
  return _internal_status();
}
inline void PullJdocsResponse::unsafe_arena_set_allocated_status(
    ::Anki::Vector::external_interface::ResponseStatus* status) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(status_);
  }
  status_ = status;
  if (status) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.PullJdocsResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* PullJdocsResponse::release_status() {
  auto temp = unsafe_arena_release_status();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* PullJdocsResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PullJdocsResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* PullJdocsResponse::_internal_mutable_status() {
  
  if (status_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ResponseStatus>(GetArena());
    status_ = p;
  }
  return status_;
}
inline ::Anki::Vector::external_interface::ResponseStatus* PullJdocsResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PullJdocsResponse.status)
  return _internal_mutable_status();
}
inline void PullJdocsResponse::set_allocated_status(::Anki::Vector::external_interface::ResponseStatus* status) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(status_);
  }
  if (status) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(status)->GetArena();
    if (message_arena != submessage_arena) {
      status = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, status, submessage_arena);
    }
    
  } else {
    
  }
  status_ = status;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.PullJdocsResponse.status)
}

// repeated .Anki.Vector.external_interface.NamedJdoc named_jdocs = 2;
inline int PullJdocsResponse::_internal_named_jdocs_size() const {
  return named_jdocs_.size();
}
inline int PullJdocsResponse::named_jdocs_size() const {
  return _internal_named_jdocs_size();
}
inline void PullJdocsResponse::clear_named_jdocs() {
  named_jdocs_.Clear();
}
inline ::Anki::Vector::external_interface::NamedJdoc* PullJdocsResponse::mutable_named_jdocs(int index) {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PullJdocsResponse.named_jdocs)
  return named_jdocs_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::NamedJdoc >*
PullJdocsResponse::mutable_named_jdocs() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.PullJdocsResponse.named_jdocs)
  return &named_jdocs_;
}
inline const ::Anki::Vector::external_interface::NamedJdoc& PullJdocsResponse::_internal_named_jdocs(int index) const {
  return named_jdocs_.Get(index);
}
inline const ::Anki::Vector::external_interface::NamedJdoc& PullJdocsResponse::named_jdocs(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PullJdocsResponse.named_jdocs)
  return _internal_named_jdocs(index);
}
inline ::Anki::Vector::external_interface::NamedJdoc* PullJdocsResponse::_internal_add_named_jdocs() {
  return named_jdocs_.Add();
}
inline ::Anki::Vector::external_interface::NamedJdoc* PullJdocsResponse::add_named_jdocs() {
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.PullJdocsResponse.named_jdocs)
  return _internal_add_named_jdocs();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::NamedJdoc >&
PullJdocsResponse::named_jdocs() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.PullJdocsResponse.named_jdocs)
  return named_jdocs_;
}

// -------------------------------------------------------------------

// UpdateSettingsRequest

// .Anki.Vector.external_interface.RobotSettingsConfig settings = 1;
inline bool UpdateSettingsRequest::_internal_has_settings() const {
  return this != internal_default_instance() && settings_ != nullptr;
}
inline bool UpdateSettingsRequest::has_settings() const {
  return _internal_has_settings();
}
inline void UpdateSettingsRequest::clear_settings() {
  if (GetArena() == nullptr && settings_ != nullptr) {
    delete settings_;
  }
  settings_ = nullptr;
}
inline const ::Anki::Vector::external_interface::RobotSettingsConfig& UpdateSettingsRequest::_internal_settings() const {
  const ::Anki::Vector::external_interface::RobotSettingsConfig* p = settings_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::RobotSettingsConfig*>(
      &::Anki::Vector::external_interface::_RobotSettingsConfig_default_instance_);
}
inline const ::Anki::Vector::external_interface::RobotSettingsConfig& UpdateSettingsRequest::settings() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateSettingsRequest.settings)
  return _internal_settings();
}
inline void UpdateSettingsRequest::unsafe_arena_set_allocated_settings(
    ::Anki::Vector::external_interface::RobotSettingsConfig* settings) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(settings_);
  }
  settings_ = settings;
  if (settings) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.UpdateSettingsRequest.settings)
}
inline ::Anki::Vector::external_interface::RobotSettingsConfig* UpdateSettingsRequest::release_settings() {
  auto temp = unsafe_arena_release_settings();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::RobotSettingsConfig* UpdateSettingsRequest::unsafe_arena_release_settings() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UpdateSettingsRequest.settings)
  
  ::Anki::Vector::external_interface::RobotSettingsConfig* temp = settings_;
  settings_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::RobotSettingsConfig* UpdateSettingsRequest::_internal_mutable_settings() {
  
  if (settings_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::RobotSettingsConfig>(GetArena());
    settings_ = p;
  }
  return settings_;
}
inline ::Anki::Vector::external_interface::RobotSettingsConfig* UpdateSettingsRequest::mutable_settings() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UpdateSettingsRequest.settings)
  return _internal_mutable_settings();
}
inline void UpdateSettingsRequest::set_allocated_settings(::Anki::Vector::external_interface::RobotSettingsConfig* settings) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete settings_;
  }
  if (settings) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(settings);
    if (message_arena != submessage_arena) {
      settings = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, settings, submessage_arena);
    }
    
  } else {
    
  }
  settings_ = settings;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.UpdateSettingsRequest.settings)
}

// -------------------------------------------------------------------

// UpdateSettingsResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool UpdateSettingsResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool UpdateSettingsResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& UpdateSettingsResponse::_internal_status() const {
  const ::Anki::Vector::external_interface::ResponseStatus* p = status_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ResponseStatus*>(
      &::Anki::Vector::external_interface::_ResponseStatus_default_instance_);
}
inline const ::Anki::Vector::external_interface::ResponseStatus& UpdateSettingsResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateSettingsResponse.status)
  return _internal_status();
}
inline void UpdateSettingsResponse::unsafe_arena_set_allocated_status(
    ::Anki::Vector::external_interface::ResponseStatus* status) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(status_);
  }
  status_ = status;
  if (status) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.UpdateSettingsResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* UpdateSettingsResponse::release_status() {
  auto temp = unsafe_arena_release_status();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* UpdateSettingsResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UpdateSettingsResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* UpdateSettingsResponse::_internal_mutable_status() {
  
  if (status_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ResponseStatus>(GetArena());
    status_ = p;
  }
  return status_;
}
inline ::Anki::Vector::external_interface::ResponseStatus* UpdateSettingsResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UpdateSettingsResponse.status)
  return _internal_mutable_status();
}
inline void UpdateSettingsResponse::set_allocated_status(::Anki::Vector::external_interface::ResponseStatus* status) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(status_);
  }
  if (status) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(status)->GetArena();
    if (message_arena != submessage_arena) {
      status = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, status, submessage_arena);
    }
    
  } else {
    
  }
  status_ = status;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.UpdateSettingsResponse.status)
}

// .Anki.Vector.external_interface.ResultCode code = 2;
inline void UpdateSettingsResponse::clear_code() {
  code_ = 0;
}
inline ::Anki::Vector::external_interface::ResultCode UpdateSettingsResponse::_internal_code() const {
  return static_cast< ::Anki::Vector::external_interface::ResultCode >(code_);
}
inline ::Anki::Vector::external_interface::ResultCode UpdateSettingsResponse::code() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateSettingsResponse.code)
  return _internal_code();
}
inline void UpdateSettingsResponse::_internal_set_code(::Anki::Vector::external_interface::ResultCode value) {
  
  code_ = value;
}
inline void UpdateSettingsResponse::set_code(::Anki::Vector::external_interface::ResultCode value) {
  _internal_set_code(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.UpdateSettingsResponse.code)
}

// .Anki.Vector.external_interface.Jdoc doc = 3;
inline bool UpdateSettingsResponse::_internal_has_doc() const {
  return this != internal_default_instance() && doc_ != nullptr;
}
inline bool UpdateSettingsResponse::has_doc() const {
  return _internal_has_doc();
}
inline void UpdateSettingsResponse::clear_doc() {
  if (GetArena() == nullptr && doc_ != nullptr) {
    delete doc_;
  }
  doc_ = nullptr;
}
inline const ::Anki::Vector::external_interface::Jdoc& UpdateSettingsResponse::_internal_doc() const {
  const ::Anki::Vector::external_interface::Jdoc* p = doc_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::Jdoc*>(
      &::Anki::Vector::external_interface::_Jdoc_default_instance_);
}
inline const ::Anki::Vector::external_interface::Jdoc& UpdateSettingsResponse::doc() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateSettingsResponse.doc)
  return _internal_doc();
}
inline void UpdateSettingsResponse::unsafe_arena_set_allocated_doc(
    ::Anki::Vector::external_interface::Jdoc* doc) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(doc_);
  }
  doc_ = doc;
  if (doc) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.UpdateSettingsResponse.doc)
}
inline ::Anki::Vector::external_interface::Jdoc* UpdateSettingsResponse::release_doc() {
  auto temp = unsafe_arena_release_doc();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::Jdoc* UpdateSettingsResponse::unsafe_arena_release_doc() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UpdateSettingsResponse.doc)
  
  ::Anki::Vector::external_interface::Jdoc* temp = doc_;
  doc_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::Jdoc* UpdateSettingsResponse::_internal_mutable_doc() {
  
  if (doc_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::Jdoc>(GetArena());
    doc_ = p;
  }
  return doc_;
}
inline ::Anki::Vector::external_interface::Jdoc* UpdateSettingsResponse::mutable_doc() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UpdateSettingsResponse.doc)
  return _internal_mutable_doc();
}
inline void UpdateSettingsResponse::set_allocated_doc(::Anki::Vector::external_interface::Jdoc* doc) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete doc_;
  }
  if (doc) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(doc);
    if (message_arena != submessage_arena) {
      doc = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, doc, submessage_arena);
    }
    
  } else {
    
  }
  doc_ = doc;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.UpdateSettingsResponse.doc)
}

// -------------------------------------------------------------------

// UpdateAccountSettingsRequest

// .Anki.Vector.external_interface.AccountSettingsConfig account_settings = 1;
inline bool UpdateAccountSettingsRequest::_internal_has_account_settings() const {
  return this != internal_default_instance() && account_settings_ != nullptr;
}
inline bool UpdateAccountSettingsRequest::has_account_settings() const {
  return _internal_has_account_settings();
}
inline void UpdateAccountSettingsRequest::clear_account_settings() {
  if (GetArena() == nullptr && account_settings_ != nullptr) {
    delete account_settings_;
  }
  account_settings_ = nullptr;
}
inline const ::Anki::Vector::external_interface::AccountSettingsConfig& UpdateAccountSettingsRequest::_internal_account_settings() const {
  const ::Anki::Vector::external_interface::AccountSettingsConfig* p = account_settings_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::AccountSettingsConfig*>(
      &::Anki::Vector::external_interface::_AccountSettingsConfig_default_instance_);
}
inline const ::Anki::Vector::external_interface::AccountSettingsConfig& UpdateAccountSettingsRequest::account_settings() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateAccountSettingsRequest.account_settings)
  return _internal_account_settings();
}
inline void UpdateAccountSettingsRequest::unsafe_arena_set_allocated_account_settings(
    ::Anki::Vector::external_interface::AccountSettingsConfig* account_settings) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(account_settings_);
  }
  account_settings_ = account_settings;
  if (account_settings) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.UpdateAccountSettingsRequest.account_settings)
}
inline ::Anki::Vector::external_interface::AccountSettingsConfig* UpdateAccountSettingsRequest::release_account_settings() {
  auto temp = unsafe_arena_release_account_settings();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::AccountSettingsConfig* UpdateAccountSettingsRequest::unsafe_arena_release_account_settings() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UpdateAccountSettingsRequest.account_settings)
  
  ::Anki::Vector::external_interface::AccountSettingsConfig* temp = account_settings_;
  account_settings_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::AccountSettingsConfig* UpdateAccountSettingsRequest::_internal_mutable_account_settings() {
  
  if (account_settings_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::AccountSettingsConfig>(GetArena());
    account_settings_ = p;
  }
  return account_settings_;
}
inline ::Anki::Vector::external_interface::AccountSettingsConfig* UpdateAccountSettingsRequest::mutable_account_settings() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UpdateAccountSettingsRequest.account_settings)
  return _internal_mutable_account_settings();
}
inline void UpdateAccountSettingsRequest::set_allocated_account_settings(::Anki::Vector::external_interface::AccountSettingsConfig* account_settings) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete account_settings_;
  }
  if (account_settings) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(account_settings);
    if (message_arena != submessage_arena) {
      account_settings = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, account_settings, submessage_arena);
    }
    
  } else {
    
  }
  account_settings_ = account_settings;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.UpdateAccountSettingsRequest.account_settings)
}

// -------------------------------------------------------------------

// UpdateAccountSettingsResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool UpdateAccountSettingsResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool UpdateAccountSettingsResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& UpdateAccountSettingsResponse::_internal_status() const {
  const ::Anki::Vector::external_interface::ResponseStatus* p = status_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ResponseStatus*>(
      &::Anki::Vector::external_interface::_ResponseStatus_default_instance_);
}
inline const ::Anki::Vector::external_interface::ResponseStatus& UpdateAccountSettingsResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateAccountSettingsResponse.status)
  return _internal_status();
}
inline void UpdateAccountSettingsResponse::unsafe_arena_set_allocated_status(
    ::Anki::Vector::external_interface::ResponseStatus* status) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(status_);
  }
  status_ = status;
  if (status) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.UpdateAccountSettingsResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* UpdateAccountSettingsResponse::release_status() {
  auto temp = unsafe_arena_release_status();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* UpdateAccountSettingsResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UpdateAccountSettingsResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* UpdateAccountSettingsResponse::_internal_mutable_status() {
  
  if (status_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ResponseStatus>(GetArena());
    status_ = p;
  }
  return status_;
}
inline ::Anki::Vector::external_interface::ResponseStatus* UpdateAccountSettingsResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UpdateAccountSettingsResponse.status)
  return _internal_mutable_status();
}
inline void UpdateAccountSettingsResponse::set_allocated_status(::Anki::Vector::external_interface::ResponseStatus* status) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(status_);
  }
  if (status) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(status)->GetArena();
    if (message_arena != submessage_arena) {
      status = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, status, submessage_arena);
    }
    
  } else {
    
  }
  status_ = status;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.UpdateAccountSettingsResponse.status)
}

// .Anki.Vector.external_interface.ResultCode code = 2;
inline void UpdateAccountSettingsResponse::clear_code() {
  code_ = 0;
}
inline ::Anki::Vector::external_interface::ResultCode UpdateAccountSettingsResponse::_internal_code() const {
  return static_cast< ::Anki::Vector::external_interface::ResultCode >(code_);
}
inline ::Anki::Vector::external_interface::ResultCode UpdateAccountSettingsResponse::code() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateAccountSettingsResponse.code)
  return _internal_code();
}
inline void UpdateAccountSettingsResponse::_internal_set_code(::Anki::Vector::external_interface::ResultCode value) {
  
  code_ = value;
}
inline void UpdateAccountSettingsResponse::set_code(::Anki::Vector::external_interface::ResultCode value) {
  _internal_set_code(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.UpdateAccountSettingsResponse.code)
}

// .Anki.Vector.external_interface.Jdoc doc = 3;
inline bool UpdateAccountSettingsResponse::_internal_has_doc() const {
  return this != internal_default_instance() && doc_ != nullptr;
}
inline bool UpdateAccountSettingsResponse::has_doc() const {
  return _internal_has_doc();
}
inline void UpdateAccountSettingsResponse::clear_doc() {
  if (GetArena() == nullptr && doc_ != nullptr) {
    delete doc_;
  }
  doc_ = nullptr;
}
inline const ::Anki::Vector::external_interface::Jdoc& UpdateAccountSettingsResponse::_internal_doc() const {
  const ::Anki::Vector::external_interface::Jdoc* p = doc_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::Jdoc*>(
      &::Anki::Vector::external_interface::_Jdoc_default_instance_);
}
inline const ::Anki::Vector::external_interface::Jdoc& UpdateAccountSettingsResponse::doc() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateAccountSettingsResponse.doc)
  return _internal_doc();
}
inline void UpdateAccountSettingsResponse::unsafe_arena_set_allocated_doc(
    ::Anki::Vector::external_interface::Jdoc* doc) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(doc_);
  }
  doc_ = doc;
  if (doc) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.UpdateAccountSettingsResponse.doc)
}
inline ::Anki::Vector::external_interface::Jdoc* UpdateAccountSettingsResponse::release_doc() {
  auto temp = unsafe_arena_release_doc();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::Jdoc* UpdateAccountSettingsResponse::unsafe_arena_release_doc() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UpdateAccountSettingsResponse.doc)
  
  ::Anki::Vector::external_interface::Jdoc* temp = doc_;
  doc_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::Jdoc* UpdateAccountSettingsResponse::_internal_mutable_doc() {
  
  if (doc_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::Jdoc>(GetArena());
    doc_ = p;
  }
  return doc_;
}
inline ::Anki::Vector::external_interface::Jdoc* UpdateAccountSettingsResponse::mutable_doc() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UpdateAccountSettingsResponse.doc)
  return _internal_mutable_doc();
}
inline void UpdateAccountSettingsResponse::set_allocated_doc(::Anki::Vector::external_interface::Jdoc* doc) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete doc_;
  }
  if (doc) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(doc);
    if (message_arena != submessage_arena) {
      doc = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, doc, submessage_arena);
    }
    
  } else {
    
  }
  doc_ = doc;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.UpdateAccountSettingsResponse.doc)
}

// -------------------------------------------------------------------

// UpdateUserEntitlementsRequest

// .Anki.Vector.external_interface.UserEntitlementsConfig user_entitlements = 1;
inline bool UpdateUserEntitlementsRequest::_internal_has_user_entitlements() const {
  return this != internal_default_instance() && user_entitlements_ != nullptr;
}
inline bool UpdateUserEntitlementsRequest::has_user_entitlements() const {
  return _internal_has_user_entitlements();
}
inline void UpdateUserEntitlementsRequest::clear_user_entitlements() {
  if (GetArena() == nullptr && user_entitlements_ != nullptr) {
    delete user_entitlements_;
  }
  user_entitlements_ = nullptr;
}
inline const ::Anki::Vector::external_interface::UserEntitlementsConfig& UpdateUserEntitlementsRequest::_internal_user_entitlements() const {
  const ::Anki::Vector::external_interface::UserEntitlementsConfig* p = user_entitlements_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::UserEntitlementsConfig*>(
      &::Anki::Vector::external_interface::_UserEntitlementsConfig_default_instance_);
}
inline const ::Anki::Vector::external_interface::UserEntitlementsConfig& UpdateUserEntitlementsRequest::user_entitlements() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateUserEntitlementsRequest.user_entitlements)
  return _internal_user_entitlements();
}
inline void UpdateUserEntitlementsRequest::unsafe_arena_set_allocated_user_entitlements(
    ::Anki::Vector::external_interface::UserEntitlementsConfig* user_entitlements) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(user_entitlements_);
  }
  user_entitlements_ = user_entitlements;
  if (user_entitlements) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.UpdateUserEntitlementsRequest.user_entitlements)
}
inline ::Anki::Vector::external_interface::UserEntitlementsConfig* UpdateUserEntitlementsRequest::release_user_entitlements() {
  auto temp = unsafe_arena_release_user_entitlements();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::UserEntitlementsConfig* UpdateUserEntitlementsRequest::unsafe_arena_release_user_entitlements() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UpdateUserEntitlementsRequest.user_entitlements)
  
  ::Anki::Vector::external_interface::UserEntitlementsConfig* temp = user_entitlements_;
  user_entitlements_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::UserEntitlementsConfig* UpdateUserEntitlementsRequest::_internal_mutable_user_entitlements() {
  
  if (user_entitlements_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::UserEntitlementsConfig>(GetArena());
    user_entitlements_ = p;
  }
  return user_entitlements_;
}
inline ::Anki::Vector::external_interface::UserEntitlementsConfig* UpdateUserEntitlementsRequest::mutable_user_entitlements() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UpdateUserEntitlementsRequest.user_entitlements)
  return _internal_mutable_user_entitlements();
}
inline void UpdateUserEntitlementsRequest::set_allocated_user_entitlements(::Anki::Vector::external_interface::UserEntitlementsConfig* user_entitlements) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete user_entitlements_;
  }
  if (user_entitlements) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(user_entitlements);
    if (message_arena != submessage_arena) {
      user_entitlements = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, user_entitlements, submessage_arena);
    }
    
  } else {
    
  }
  user_entitlements_ = user_entitlements;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.UpdateUserEntitlementsRequest.user_entitlements)
}

// -------------------------------------------------------------------

// UpdateUserEntitlementsResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool UpdateUserEntitlementsResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool UpdateUserEntitlementsResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& UpdateUserEntitlementsResponse::_internal_status() const {
  const ::Anki::Vector::external_interface::ResponseStatus* p = status_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ResponseStatus*>(
      &::Anki::Vector::external_interface::_ResponseStatus_default_instance_);
}
inline const ::Anki::Vector::external_interface::ResponseStatus& UpdateUserEntitlementsResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateUserEntitlementsResponse.status)
  return _internal_status();
}
inline void UpdateUserEntitlementsResponse::unsafe_arena_set_allocated_status(
    ::Anki::Vector::external_interface::ResponseStatus* status) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(status_);
  }
  status_ = status;
  if (status) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.UpdateUserEntitlementsResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* UpdateUserEntitlementsResponse::release_status() {
  auto temp = unsafe_arena_release_status();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* UpdateUserEntitlementsResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UpdateUserEntitlementsResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* UpdateUserEntitlementsResponse::_internal_mutable_status() {
  
  if (status_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ResponseStatus>(GetArena());
    status_ = p;
  }
  return status_;
}
inline ::Anki::Vector::external_interface::ResponseStatus* UpdateUserEntitlementsResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UpdateUserEntitlementsResponse.status)
  return _internal_mutable_status();
}
inline void UpdateUserEntitlementsResponse::set_allocated_status(::Anki::Vector::external_interface::ResponseStatus* status) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(status_);
  }
  if (status) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(status)->GetArena();
    if (message_arena != submessage_arena) {
      status = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, status, submessage_arena);
    }
    
  } else {
    
  }
  status_ = status;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.UpdateUserEntitlementsResponse.status)
}

// .Anki.Vector.external_interface.ResultCode code = 2;
inline void UpdateUserEntitlementsResponse::clear_code() {
  code_ = 0;
}
inline ::Anki::Vector::external_interface::ResultCode UpdateUserEntitlementsResponse::_internal_code() const {
  return static_cast< ::Anki::Vector::external_interface::ResultCode >(code_);
}
inline ::Anki::Vector::external_interface::ResultCode UpdateUserEntitlementsResponse::code() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateUserEntitlementsResponse.code)
  return _internal_code();
}
inline void UpdateUserEntitlementsResponse::_internal_set_code(::Anki::Vector::external_interface::ResultCode value) {
  
  code_ = value;
}
inline void UpdateUserEntitlementsResponse::set_code(::Anki::Vector::external_interface::ResultCode value) {
  _internal_set_code(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.UpdateUserEntitlementsResponse.code)
}

// .Anki.Vector.external_interface.Jdoc doc = 3;
inline bool UpdateUserEntitlementsResponse::_internal_has_doc() const {
  return this != internal_default_instance() && doc_ != nullptr;
}
inline bool UpdateUserEntitlementsResponse::has_doc() const {
  return _internal_has_doc();
}
inline void UpdateUserEntitlementsResponse::clear_doc() {
  if (GetArena() == nullptr && doc_ != nullptr) {
    delete doc_;
  }
  doc_ = nullptr;
}
inline const ::Anki::Vector::external_interface::Jdoc& UpdateUserEntitlementsResponse::_internal_doc() const {
  const ::Anki::Vector::external_interface::Jdoc* p = doc_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::Jdoc*>(
      &::Anki::Vector::external_interface::_Jdoc_default_instance_);
}
inline const ::Anki::Vector::external_interface::Jdoc& UpdateUserEntitlementsResponse::doc() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateUserEntitlementsResponse.doc)
  return _internal_doc();
}
inline void UpdateUserEntitlementsResponse::unsafe_arena_set_allocated_doc(
    ::Anki::Vector::external_interface::Jdoc* doc) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(doc_);
  }
  doc_ = doc;
  if (doc) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.UpdateUserEntitlementsResponse.doc)
}
inline ::Anki::Vector::external_interface::Jdoc* UpdateUserEntitlementsResponse::release_doc() {
  auto temp = unsafe_arena_release_doc();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::Jdoc* UpdateUserEntitlementsResponse::unsafe_arena_release_doc() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UpdateUserEntitlementsResponse.doc)
  
  ::Anki::Vector::external_interface::Jdoc* temp = doc_;
  doc_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::Jdoc* UpdateUserEntitlementsResponse::_internal_mutable_doc() {
  
  if (doc_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::Jdoc>(GetArena());
    doc_ = p;
  }
  return doc_;
}
inline ::Anki::Vector::external_interface::Jdoc* UpdateUserEntitlementsResponse::mutable_doc() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UpdateUserEntitlementsResponse.doc)
  return _internal_mutable_doc();
}
inline void UpdateUserEntitlementsResponse::set_allocated_doc(::Anki::Vector::external_interface::Jdoc* doc) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete doc_;
  }
  if (doc) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(doc);
    if (message_arena != submessage_arena) {
      doc = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, doc, submessage_arena);
    }
    
  } else {
    
  }
  doc_ = doc;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.UpdateUserEntitlementsResponse.doc)
}

// -------------------------------------------------------------------

// JdocsChanged

// repeated .Anki.Vector.external_interface.JdocType jdoc_types = 1;
inline int JdocsChanged::_internal_jdoc_types_size() const {
  return jdoc_types_.size();
}
inline int JdocsChanged::jdoc_types_size() const {
  return _internal_jdoc_types_size();
}
inline void JdocsChanged::clear_jdoc_types() {
  jdoc_types_.Clear();
}
inline ::Anki::Vector::external_interface::JdocType JdocsChanged::_internal_jdoc_types(int index) const {
  return static_cast< ::Anki::Vector::external_interface::JdocType >(jdoc_types_.Get(index));
}
inline ::Anki::Vector::external_interface::JdocType JdocsChanged::jdoc_types(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.JdocsChanged.jdoc_types)
  return _internal_jdoc_types(index);
}
inline void JdocsChanged::set_jdoc_types(int index, ::Anki::Vector::external_interface::JdocType value) {
  jdoc_types_.Set(index, value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.JdocsChanged.jdoc_types)
}
inline void JdocsChanged::_internal_add_jdoc_types(::Anki::Vector::external_interface::JdocType value) {
  jdoc_types_.Add(value);
}
inline void JdocsChanged::add_jdoc_types(::Anki::Vector::external_interface::JdocType value) {
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.JdocsChanged.jdoc_types)
  _internal_add_jdoc_types(value);
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>&
JdocsChanged::jdoc_types() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.JdocsChanged.jdoc_types)
  return jdoc_types_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
JdocsChanged::_internal_mutable_jdoc_types() {
  return &jdoc_types_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
JdocsChanged::mutable_jdoc_types() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.JdocsChanged.jdoc_types)
  return _internal_mutable_jdoc_types();
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace external_interface
}  // namespace Vector
}  // namespace Anki

PROTOBUF_NAMESPACE_OPEN

template <> struct is_proto_enum< ::Anki::Vector::external_interface::ApiVersion> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::ApiVersion>() {
  return ::Anki::Vector::external_interface::ApiVersion_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::Volume> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::Volume>() {
  return ::Anki::Vector::external_interface::Volume_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::JdocType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::JdocType>() {
  return ::Anki::Vector::external_interface::JdocType_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::JdocResolveMethod> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::JdocResolveMethod>() {
  return ::Anki::Vector::external_interface::JdocResolveMethod_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::RobotSetting> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::RobotSetting>() {
  return ::Anki::Vector::external_interface::RobotSetting_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::EyeColor> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::EyeColor>() {
  return ::Anki::Vector::external_interface::EyeColor_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::ButtonWakeWord> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::ButtonWakeWord>() {
  return ::Anki::Vector::external_interface::ButtonWakeWord_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::AccountSetting> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::AccountSetting>() {
  return ::Anki::Vector::external_interface::AccountSetting_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::UserEntitlement> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::UserEntitlement>() {
  return ::Anki::Vector::external_interface::UserEntitlement_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::ResultCode> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::ResultCode>() {
  return ::Anki::Vector::external_interface::ResultCode_descriptor();
}

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include <google/protobuf/port_undef.inc>
#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_settings_2eproto
